<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[43447] trunk/src: TinyMCE: update to 4.8.0, changelog: https://www.tiny.cloud/docs/changelog/#version480july112018</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/43447">43447</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/43447","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>azaozz</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2018-07-16 08:06:32 +0000 (Mon, 16 Jul 2018)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>TinyMCE: update to 4.8.0, changelog: https://www.tiny.cloud/docs/changelog/#version480july112018

Fixes <a href="https://core.trac.wordpress.org/ticket/44134">#44134</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginscharmappluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/charmap/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginscolorpickerpluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/colorpicker/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginsdirectionalitypluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/directionality/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginsfullscreenpluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginshrpluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/hr/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginsimagepluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginsimagepluginminjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginslinkpluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginslistspluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginslistspluginminjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginsmediapluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/media/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginspastepluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginspastepluginminjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginstabfocuspluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginstabfocuspluginminjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginstextcolorpluginjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcepluginstextcolorpluginminjs">trunk/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.min.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymceskinslightgraycontentinlinemincss">trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.inline.min.css</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymceskinslightgraycontentmincss">trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.min.css</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymceskinslightgrayskinmincss">trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcethemesinlitethemejs">trunk/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcethemesinlitethememinjs">trunk/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.min.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcethemesmodernthemejs">trunk/src/js/_enqueues/vendor/tinymce/themes/modern/theme.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcethemesmodernthememinjs">trunk/src/js/_enqueues/vendor/tinymce/themes/modern/theme.min.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcetinymcejs">trunk/src/js/_enqueues/vendor/tinymce/tinymce.js</a></li>
<li><a href="#trunksrcjs_enqueuesvendortinymcetinymceminjs">trunk/src/js/_enqueues/vendor/tinymce/tinymce.min.js</a></li>
<li><a href="#trunksrcwpincludesversionphp">trunk/src/wp-includes/version.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcjs_enqueuesvendortinymcepluginscharmappluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/charmap/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/charmap/plugin.js   2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/charmap/plugin.js     2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7,13 +7,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fireInsertCustomChar = function (editor, chr) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.fire('insertCustomChar', { chr: chr });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_j6jbo95jfuw8onk = { fireInsertCustomChar: fireInsertCustomChar };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ce2ncy9qjjgwebhk = { fireInsertCustomChar: fireInsertCustomChar };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var insertChar = function (editor, chr) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var evtChr = $_j6jbo95jfuw8onk.fireInsertCustomChar(editor, chr).chr;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var evtChr = $_ce2ncy9qjjgwebhk.fireInsertCustomChar(editor, chr).chr;
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.execCommand('mceInsertContent', false, evtChr);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_apbezv94jfuw8onj = { insertChar: insertChar };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_el68bd9pjjgwebhj = { insertChar: insertChar };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23,7 +23,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getCharMapAppend = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.settings.charmap_append;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ae555o98jfuw8onx = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5e4nos9tjjgwebhr = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getCharMap: getCharMap,
</span><span class="cx" style="display: block; padding: 0 10px">     getCharMapAppend: getCharMapAppend
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1096,11 +1096,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return [];
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var extendCharMap = function (editor, charmap) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var userCharMap = $_ae555o98jfuw8onx.getCharMap(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var userCharMap = $_5e4nos9tjjgwebhr.getCharMap(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (userCharMap) {
</span><span class="cx" style="display: block; padding: 0 10px">       charmap = getCharsFromSetting(userCharMap);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var userCharMapAppend = $_ae555o98jfuw8onx.getCharMapAppend(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var userCharMapAppend = $_5e4nos9tjjgwebhr.getCharMapAppend(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (userCharMapAppend) {
</span><span class="cx" style="display: block; padding: 0 10px">       return [].concat(charmap).concat(getCharsFromSetting(userCharMapAppend));
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1109,14 +1109,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getCharMap$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return extendCharMap(editor, getDefaultCharMap());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_a0v8qq96jfuw8onl = { getCharMap: getCharMap$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_dc8shd9rjjgwebhl = { getCharMap: getCharMap$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var get = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var getCharMap = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_a0v8qq96jfuw8onl.getCharMap(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_dc8shd9rjjgwebhl.getCharMap(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var insertChar = function (chr) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_apbezv94jfuw8onj.insertChar(editor, chr);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_el68bd9pjjgwebhj.insertChar(editor, chr);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       getCharMap: getCharMap,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1123,7 +1123,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       insertChar: insertChar
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bi5zpv93jfuw8oni = { get: get };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_gbufu29ojjgwebhf = { get: get };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getHtml = function (charmap) {
</span><span class="cx" style="display: block; padding: 0 10px">     var gridHtml, x, y;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1148,7 +1148,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     gridHtml += '</tbody></table>';
</span><span class="cx" style="display: block; padding: 0 10px">     return gridHtml;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_gbsfov9bjfuw8oo2 = { getHtml: getHtml };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6avwgq9wjjgwebi2 = { getHtml: getHtml };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getParentTd = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     while (elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1162,7 +1162,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var win;
</span><span class="cx" style="display: block; padding: 0 10px">     var charMapPanel = {
</span><span class="cx" style="display: block; padding: 0 10px">       type: 'container',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      html: $_gbsfov9bjfuw8oo2.getHtml($_a0v8qq96jfuw8onl.getCharMap(editor)),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      html: $_6avwgq9wjjgwebi2.getHtml($_dc8shd9rjjgwebhl.getCharMap(editor)),
</ins><span class="cx" style="display: block; padding: 0 10px">       onclick: function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         var target = e.target;
</span><span class="cx" style="display: block; padding: 0 10px">         if (/^(TD|DIV)$/.test(target.nodeName)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1171,7 +1171,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             var charCodeString = charDiv.getAttribute('data-chr');
</span><span class="cx" style="display: block; padding: 0 10px">             var charCode = parseInt(charCodeString, 10);
</span><span class="cx" style="display: block; padding: 0 10px">             if (!isNaN(charCode)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              $_apbezv94jfuw8onj.insertChar(editor, String.fromCharCode(charCode));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              $_el68bd9pjjgwebhj.insertChar(editor, String.fromCharCode(charCode));
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             if (!e.ctrlKey) {
</span><span class="cx" style="display: block; padding: 0 10px">               win.close();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1237,14 +1237,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }]
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_apxwbz9ajfuw8oo0 = { open: open };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3eaa3c9vjjgwebht = { open: open };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceShowCharmap', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_apxwbz9ajfuw8oo0.open(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_3eaa3c9vjjgwebht.open(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_21ao9599jfuw8ony = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_b5cdu19ujjgwebhs = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addButton('charmap', {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1259,12 +1259,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       context: 'insert'
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9qh4i09cjfuw8oo4 = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_19iu2m9xjjgwebi3 = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('charmap', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_21ao9599jfuw8ony.register(editor);
-    $_9qh4i09cjfuw8oo4.register(editor);
-    return $_bi5zpv93jfuw8oni.get(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_b5cdu19ujjgwebhs.register(editor);
+    $_19iu2m9xjjgwebi3.register(editor);
+    return $_gbufu29ojjgwebhf.get(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginscolorpickerpluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/colorpicker/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/colorpicker/plugin.js       2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/colorpicker/plugin.js 2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -108,12 +108,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     setColor(win, value);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3y7nz6a1jfuw8osh = { open: open };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2gqaphanjjgwebmu = { open: open };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('colorpicker', function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (!editor.settings.color_picker_callback) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.settings.color_picker_callback = function (callback, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_3y7nz6a1jfuw8osh.open(editor, callback, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_2gqaphanjjgwebmu.open(editor, callback, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginsdirectionalitypluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/directionality/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/directionality/plugin.js    2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/directionality/plugin.js      2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20,17 +20,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3zbk8naijfuw8otk = { setDir: setDir };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fd54yfb4jjgwebo5 = { setDir: setDir };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceDirectionLTR', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_3zbk8naijfuw8otk.setDir(editor, 'ltr');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_fd54yfb4jjgwebo5.setDir(editor, 'ltr');
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceDirectionRTL', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_3zbk8naijfuw8otk.setDir(editor, 'rtl');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_fd54yfb4jjgwebo5.setDir(editor, 'rtl');
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_eltqhvahjfuw8otj = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cpb3fob3jjgwebo4 = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var generateSelector = function (dir) {
</span><span class="cx" style="display: block; padding: 0 10px">     var selector = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -51,11 +51,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       stateSelector: generateSelector('rtl')
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g7lfqakjfuw8otn = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8ch9fzb6jjgwebo7 = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('directionality', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_eltqhvahjfuw8otj.register(editor);
-    $_g7lfqakjfuw8otn.register(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_cpb3fob3jjgwebo4.register(editor);
+    $_8ch9fzb6jjgwebo7.register(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginsfullscreenpluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js        2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js  2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -29,7 +29,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2d5qbdbsjfuw8ozh = { get: get };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6qfcwucejjgwebu0 = { get: get };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -36,7 +36,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fireFullscreenStateChanged = function (editor, state) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.fire('FullscreenStateChanged', { state: state });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6m5hhtbwjfuw8ozm = { fireFullscreenStateChanged: fireFullscreenStateChanged };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_en5ltwcijjgwebu6 = { fireFullscreenStateChanged: fireFullscreenStateChanged };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM = global$1.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var getWindowSize = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -103,7 +103,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('remove', removeResize);
</span><span class="cx" style="display: block; padding: 0 10px">       resize();
</span><span class="cx" style="display: block; padding: 0 10px">       fullscreenState.set(newFullScreenInfo);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_6m5hhtbwjfuw8ozm.fireFullscreenStateChanged(editor, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_en5ltwcijjgwebu6.fireFullscreenStateChanged(editor, true);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       iframeStyle.width = fullscreenInfo.iframeWidth;
</span><span class="cx" style="display: block; padding: 0 10px">       iframeStyle.height = fullscreenInfo.iframeHeight;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -120,17 +120,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       DOM.unbind(window, 'resize', fullscreenInfo.resizeHandler);
</span><span class="cx" style="display: block; padding: 0 10px">       editor.off('remove', fullscreenInfo.removeHandler);
</span><span class="cx" style="display: block; padding: 0 10px">       fullscreenState.set(null);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_6m5hhtbwjfuw8ozm.fireFullscreenStateChanged(editor, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_en5ltwcijjgwebu6.fireFullscreenStateChanged(editor, false);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_e74zxhbujfuw8ozj = { toggleFullscreen: toggleFullscreen };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_dvg07kcgjjgwebu3 = { toggleFullscreen: toggleFullscreen };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor, fullscreenState) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceFullScreen', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_e74zxhbujfuw8ozj.toggleFullscreen(editor, fullscreenState);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_dvg07kcgjjgwebu3.toggleFullscreen(editor, fullscreenState);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_j53v2btjfuw8ozi = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_bebdcrcfjjgwebu1 = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var postRender = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -156,17 +156,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       onPostRender: postRender(editor)
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3ge8trbxjfuw8ozn = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_tne4sckjjgwebuo = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('fullscreen', function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var fullscreenState = Cell(null);
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.settings.inline) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_2d5qbdbsjfuw8ozh.get(fullscreenState);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_6qfcwucejjgwebu0.get(fullscreenState);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_j53v2btjfuw8ozi.register(editor, fullscreenState);
-    $_3ge8trbxjfuw8ozn.register(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_bebdcrcfjjgwebu1.register(editor, fullscreenState);
+    $_tne4sckjjgwebuo.register(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.addShortcut('Ctrl+Shift+F', '', 'mceFullScreen');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_2d5qbdbsjfuw8ozh.get(fullscreenState);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6qfcwucejjgwebu0.get(fullscreenState);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginshrpluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/hr/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/hr/plugin.js        2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/hr/plugin.js  2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9,7 +9,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.execCommand('mceInsertContent', false, '<hr />');
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_598wgdc0jfuw8p00 = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cqh592cnjjgwebvk = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addButton('hr', {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,11 +24,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       context: 'insert'
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7oq7jyc1jfuw8p02 = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_13g834cojjgwebvl = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('hr', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_598wgdc0jfuw8p00.register(editor);
-    $_7oq7jyc1jfuw8p02.register(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_cqh592cnjjgwebvk.register(editor);
+    $_13g834cojjgwebvl.register(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginsimagepluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js     2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js       2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -46,7 +46,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getUploadCredentials = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.getParam('images_upload_credentials');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9cq6y3c6jfuw8p0n = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1dn8wtctjjgwebvz = {
</ins><span class="cx" style="display: block; padding: 0 10px">     hasDimensions: hasDimensions,
</span><span class="cx" style="display: block; padding: 0 10px">     hasAdvTab: hasAdvTab,
</span><span class="cx" style="display: block; padding: 0 10px">     getPrependUrl: getPrependUrl,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -63,10 +63,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     getUploadCredentials: getUploadCredentials
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$1 = typeof window !== 'undefined' ? window : Function('return this;')();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Global = typeof window !== 'undefined' ? window : Function('return this;')();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var path = function (parts, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var o = scope !== undefined && scope !== null ? scope : global$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var o = scope !== undefined && scope !== null ? scope : Global;
</ins><span class="cx" style="display: block; padding: 0 10px">     for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
</span><span class="cx" style="display: block; padding: 0 10px">       o = o[parts[i]];
</span><span class="cx" style="display: block; padding: 0 10px">     return o;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -75,30 +75,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var parts = p.split('.');
</span><span class="cx" style="display: block; padding: 0 10px">     return path(parts, scope);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var step = function (o, part) {
-    if (o[part] === undefined || o[part] === null)
-      o[part] = {};
-    return o[part];
-  };
-  var forge = function (parts, target) {
-    var o = target !== undefined ? target : global$1;
-    for (var i = 0; i < parts.length; ++i)
-      o = step(o, parts[i]);
-    return o;
-  };
-  var namespace = function (name, target) {
-    var parts = name.split('.');
-    return forge(parts, target);
-  };
-  var $_5mb36jcajfuw8p19 = {
-    path: path,
-    resolve: resolve,
-    forge: forge,
-    namespace: namespace
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var unsafe = function (name, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5mb36jcajfuw8p19.resolve(name, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return resolve(name, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getOrDie = function (name, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var actual = unsafe(name, scope);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -106,18 +85,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">       throw name + ' not available on this browser';
</span><span class="cx" style="display: block; padding: 0 10px">     return actual;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ba69mec9jfuw8p15 = { getOrDie: getOrDie };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_oab1bcwjjgwebwl = { getOrDie: getOrDie };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function FileReader () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_ba69mec9jfuw8p15.getOrDie('FileReader');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_oab1bcwjjgwebwl.getOrDie('FileReader');
</ins><span class="cx" style="display: block; padding: 0 10px">     return new f();
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$2 = tinymce.util.Tools.resolve('tinymce.util.Promise');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$1 = tinymce.util.Tools.resolve('tinymce.util.Promise');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$3 = tinymce.util.Tools.resolve('tinymce.util.Tools');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$4 = tinymce.util.Tools.resolve('tinymce.util.XHR');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$3 = tinymce.util.Tools.resolve('tinymce.util.XHR');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var parseIntAndGetMax = function (val1, val2) {
</span><span class="cx" style="display: block; padding: 0 10px">     return Math.max(parseInt(val1, 10), parseInt(val2, 10));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -152,7 +131,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var buildListItems = function (inputList, itemCallback, startItems) {
</span><span class="cx" style="display: block; padding: 0 10px">     function appendItems(values, output) {
</span><span class="cx" style="display: block; padding: 0 10px">       output = output || [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$3.each(values, function (item) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$2.each(values, function (item) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var menuItem = { text: item.text || item.title };
</span><span class="cx" style="display: block; padding: 0 10px">         if (item.menu) {
</span><span class="cx" style="display: block; padding: 0 10px">           menuItem.menu = appendItems(item.menu);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -211,9 +190,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return css;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createImageList = function (editor, callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var imageList = $_9cq6y3c6jfuw8p0n.getImageList(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var imageList = $_1dn8wtctjjgwebvz.getImageList(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (typeof imageList === 'string') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$4.send({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$3.send({
</ins><span class="cx" style="display: block; padding: 0 10px">         url: imageList,
</span><span class="cx" style="display: block; padding: 0 10px">         success: function (text) {
</span><span class="cx" style="display: block; padding: 0 10px">           callback(JSON.parse(text));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -234,7 +213,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     imgElm.onload = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!data.width && !data.height && $_9cq6y3c6jfuw8p0n.hasDimensions(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!data.width && !data.height && $_1dn8wtctjjgwebvz.hasDimensions(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         editor.dom.setAttribs(imgElm, {
</span><span class="cx" style="display: block; padding: 0 10px">           width: imgElm.clientWidth,
</span><span class="cx" style="display: block; padding: 0 10px">           height: imgElm.clientHeight
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -245,7 +224,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     imgElm.onerror = selectImage;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var blobToDataUri = function (blob) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return new global$2(function (resolve, reject) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return new global$1(function (resolve, reject) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var reader = new FileReader();
</span><span class="cx" style="display: block; padding: 0 10px">       reader.onload = function () {
</span><span class="cx" style="display: block; padding: 0 10px">         resolve(reader.result);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -256,7 +235,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       reader.readAsDataURL(blob);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7v7yldc7jfuw8p0q = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1e8k4ncujjgwebw2 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getImageSize: getImageSize,
</span><span class="cx" style="display: block; padding: 0 10px">     buildListItems: buildListItems,
</span><span class="cx" style="display: block; padding: 0 10px">     removePixelSuffix: removePixelSuffix,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -267,41 +246,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     blobToDataUri: blobToDataUri
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$5 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var typeOf = function (x) {
-    if (x === null)
-      return 'null';
-    var t = typeof x;
-    if (t === 'object' && Array.prototype.isPrototypeOf(x))
-      return 'array';
-    if (t === 'object' && String.prototype.isPrototypeOf(x))
-      return 'string';
-    return t;
-  };
-  var isType = function (type) {
-    return function (value) {
-      return typeOf(value) === type;
-    };
-  };
-  var $_rbqovckjfuw8p27 = {
-    isString: isType('string'),
-    isObject: isType('object'),
-    isArray: isType('array'),
-    isNull: isType('null'),
-    isBoolean: isType('boolean'),
-    isUndefined: isType('undefined'),
-    isFunction: isType('function'),
-    isNumber: isType('number')
-  };
-
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var hasOwnProperty = Object.prototype.hasOwnProperty;
</ins><span class="cx" style="display: block; padding: 0 10px">   var shallow = function (old, nu) {
</span><span class="cx" style="display: block; padding: 0 10px">     return nu;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var deep = function (old, nu) {
-    var bothObjects = $_rbqovckjfuw8p27.isObject(old) && $_rbqovckjfuw8p27.isObject(nu);
-    return bothObjects ? deepMerge(old, nu) : nu;
-  };
</del><span class="cx" style="display: block; padding: 0 10px">   var baseMerge = function (merger) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var objects = new Array(arguments.length);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -313,7 +263,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       for (var j = 0; j < objects.length; j++) {
</span><span class="cx" style="display: block; padding: 0 10px">         var curObject = objects[j];
</span><span class="cx" style="display: block; padding: 0 10px">         for (var key in curObject)
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (curObject.hasOwnProperty(key)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (hasOwnProperty.call(curObject, key)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             ret[key] = merger(ret[key], curObject[key]);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -320,17 +270,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return ret;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var deepMerge = baseMerge(deep);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var merge = baseMerge(shallow);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ajpvnqcjjfuw8p25 = {
-    deepMerge: deepMerge,
-    merge: merge
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var DOM = global$5.DOM;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var DOM = global$4.DOM;
</ins><span class="cx" style="display: block; padding: 0 10px">   var getHspace = function (image) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_7v7yldc7jfuw8p0q.removePixelSuffix(image.style.marginLeft);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_1e8k4ncujjgwebw2.removePixelSuffix(image.style.marginLeft);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return '';
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -337,7 +283,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getVspace = function (image) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_7v7yldc7jfuw8p0q.removePixelSuffix(image.style.marginTop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_1e8k4ncujjgwebw2.removePixelSuffix(image.style.marginTop);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return '';
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -344,26 +290,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getBorder = function (image) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (image.style.borderWidth) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_7v7yldc7jfuw8p0q.removePixelSuffix(image.style.borderWidth);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_1e8k4ncujjgwebw2.removePixelSuffix(image.style.borderWidth);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return '';
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getAttrib = function (image, name) {
-    if (image.hasAttribute(name)) {
-      return image.getAttribute(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getAttrib = function (image, name$$1) {
+    if (image.hasAttribute(name$$1)) {
+      return image.getAttribute(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return '';
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getStyle = function (image, name) {
-    return image.style[name] ? image.style[name] : '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getStyle = function (image, name$$1) {
+    return image.style[name$$1] ? image.style[name$$1] : '';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasCaption = function (image) {
</span><span class="cx" style="display: block; padding: 0 10px">     return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setAttrib = function (image, name, value) {
-    image.setAttribute(name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setAttrib = function (image, name$$1, value) {
+    image.setAttribute(name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var wrapInFigure = function (image) {
</span><span class="cx" style="display: block; padding: 0 10px">     var figureElm = DOM.create('figure', { class: 'image' });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -394,35 +340,35 @@
</span><span class="cx" style="display: block; padding: 0 10px">       image.removeAttribute('style');
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setSize = function (name, normalizeCss) {
-    return function (image, name, value) {
-      if (image.style[name]) {
-        image.style[name] = $_7v7yldc7jfuw8p0q.addPixelSuffix(value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setSize = function (name$$1, normalizeCss) {
+    return function (image, name$$1, value) {
+      if (image.style[name$$1]) {
+        image.style[name$$1] = $_1e8k4ncujjgwebw2.addPixelSuffix(value);
</ins><span class="cx" style="display: block; padding: 0 10px">         normalizeStyle(image, normalizeCss);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        setAttrib(image, name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        setAttrib(image, name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getSize = function (image, name) {
-    if (image.style[name]) {
-      return $_7v7yldc7jfuw8p0q.removePixelSuffix(image.style[name]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getSize = function (image, name$$1) {
+    if (image.style[name$$1]) {
+      return $_1e8k4ncujjgwebw2.removePixelSuffix(image.style[name$$1]);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return getAttrib(image, name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return getAttrib(image, name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setHspace = function (image, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var pxValue = $_7v7yldc7jfuw8p0q.addPixelSuffix(value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var pxValue = $_1e8k4ncujjgwebw2.addPixelSuffix(value);
</ins><span class="cx" style="display: block; padding: 0 10px">     image.style.marginLeft = pxValue;
</span><span class="cx" style="display: block; padding: 0 10px">     image.style.marginRight = pxValue;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setVspace = function (image, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var pxValue = $_7v7yldc7jfuw8p0q.addPixelSuffix(value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var pxValue = $_1e8k4ncujjgwebw2.addPixelSuffix(value);
</ins><span class="cx" style="display: block; padding: 0 10px">     image.style.marginTop = pxValue;
</span><span class="cx" style="display: block; padding: 0 10px">     image.style.marginBottom = pxValue;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setBorder = function (image, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var pxValue = $_7v7yldc7jfuw8p0q.addPixelSuffix(value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var pxValue = $_1e8k4ncujjgwebw2.addPixelSuffix(value);
</ins><span class="cx" style="display: block; padding: 0 10px">     image.style.borderWidth = pxValue;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setBorderStyle = function (image, value) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -469,7 +415,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var create = function (normalizeCss, data) {
</span><span class="cx" style="display: block; padding: 0 10px">     var image = document.createElement('img');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    write(normalizeCss, $_ajpvnqcjjfuw8p25.merge(data, { caption: false }), image);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    write(normalizeCss, merge(data, { caption: false }), image);
</ins><span class="cx" style="display: block; padding: 0 10px">     setAttrib(image, 'alt', data.alt);
</span><span class="cx" style="display: block; padding: 0 10px">     if (data.caption) {
</span><span class="cx" style="display: block; padding: 0 10px">       var figure = DOM.create('figure', { class: 'image' });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -497,13 +443,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       borderStyle: getStyle(image, 'borderStyle')
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var updateProp = function (image, oldData, newData, name, set) {
-    if (newData[name] !== oldData[name]) {
-      set(image, name, newData[name]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var updateProp = function (image, oldData, newData, name$$1, set) {
+    if (newData[name$$1] !== oldData[name$$1]) {
+      set(image, name$$1, newData[name$$1]);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var normalized = function (set, normalizeCss) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return function (image, name, value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return function (image, name$$1, value) {
</ins><span class="cx" style="display: block; padding: 0 10px">       set(image, value);
</span><span class="cx" style="display: block; padding: 0 10px">       normalizeStyle(image, normalizeCss);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -530,7 +476,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var normalizeCss = function (editor, cssText) {
</span><span class="cx" style="display: block; padding: 0 10px">     var css = editor.dom.styles.parse(cssText);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var mergedCss = $_7v7yldc7jfuw8p0q.mergeMargins(css);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var mergedCss = $_1e8k4ncujjgwebw2.mergeMargins(css);
</ins><span class="cx" style="display: block; padding: 0 10px">     var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.dom.styles.serialize(compressed);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -605,7 +551,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.selection.select(image.parentNode);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.selection.select(image);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_7v7yldc7jfuw8p0q.waitLoadImage(editor, data, image);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_1e8k4ncujjgwebw2.waitLoadImage(editor, data, image);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertOrUpdateImage = function (editor, data) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -625,7 +571,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return function (evt) {
</span><span class="cx" style="display: block; padding: 0 10px">       var dom = editor.dom;
</span><span class="cx" style="display: block; padding: 0 10px">       var rootControl = evt.control.rootControl;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!$_9cq6y3c6jfuw8p0n.hasAdvTab(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!$_1dn8wtctjjgwebvz.hasAdvTab(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var data = rootControl.toJSON();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -632,21 +578,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var css = dom.parseStyle(data.style);
</span><span class="cx" style="display: block; padding: 0 10px">       rootControl.find('#vspace').value('');
</span><span class="cx" style="display: block; padding: 0 10px">       rootControl.find('#hspace').value('');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      css = $_7v7yldc7jfuw8p0q.mergeMargins(css);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      css = $_1e8k4ncujjgwebw2.mergeMargins(css);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (css['margin-top'] && css['margin-bottom'] || css['margin-right'] && css['margin-left']) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (css['margin-top'] === css['margin-bottom']) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          rootControl.find('#vspace').value($_7v7yldc7jfuw8p0q.removePixelSuffix(css['margin-top']));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          rootControl.find('#vspace').value($_1e8k4ncujjgwebw2.removePixelSuffix(css['margin-top']));
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           rootControl.find('#vspace').value('');
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (css['margin-right'] === css['margin-left']) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          rootControl.find('#hspace').value($_7v7yldc7jfuw8p0q.removePixelSuffix(css['margin-right']));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          rootControl.find('#hspace').value($_1e8k4ncujjgwebw2.removePixelSuffix(css['margin-right']));
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           rootControl.find('#hspace').value('');
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (css['border-width']) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        rootControl.find('#border').value($_7v7yldc7jfuw8p0q.removePixelSuffix(css['border-width']));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        rootControl.find('#border').value($_1e8k4ncujjgwebw2.removePixelSuffix(css['border-width']));
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         rootControl.find('#border').value('');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -662,7 +608,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     win.find('#style').each(function (ctrl) {
</span><span class="cx" style="display: block; padding: 0 10px">       var value = getStyleValue(function (css) {
</span><span class="cx" style="display: block; padding: 0 10px">         return normalizeCss(editor, css);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      }, $_ajpvnqcjjfuw8p25.merge(defaultData(), win.toJSON()));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      }, merge(defaultData(), win.toJSON()));
</ins><span class="cx" style="display: block; padding: 0 10px">       ctrl.value(value);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -765,7 +711,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dlliegcfjfuw8p1m = { makeTab: makeTab };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6dfy5vd3jjgwebxf = { makeTab: makeTab };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var doSyncSize = function (widthCtrl, heightCtrl) {
</span><span class="cx" style="display: block; padding: 0 10px">     widthCtrl.state.set('oldVal', widthCtrl.value());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -845,7 +791,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1ahiincmjfuw8p2c = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ftlz5pdajjgweby4 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     createUi: createUi,
</span><span class="cx" style="display: block; padding: 0 10px">     syncSize: syncSize,
</span><span class="cx" style="display: block; padding: 0 10px">     updateSize: updateSize
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -860,22 +806,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (imageListCtrl) {
</span><span class="cx" style="display: block; padding: 0 10px">       imageListCtrl.value(editor.convertURL(control.value(), 'src'));
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    global$3.each(meta, function (value, key) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    global$2.each(meta, function (value, key) {
</ins><span class="cx" style="display: block; padding: 0 10px">       rootControl.find('#' + key).value(value);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     if (!meta.width && !meta.height) {
</span><span class="cx" style="display: block; padding: 0 10px">       srcURL = editor.convertURL(control.value(), 'src');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      prependURL = $_9cq6y3c6jfuw8p0n.getPrependUrl(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      prependURL = $_1dn8wtctjjgwebvz.getPrependUrl(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       absoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i');
</span><span class="cx" style="display: block; padding: 0 10px">       if (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) {
</span><span class="cx" style="display: block; padding: 0 10px">         srcURL = prependURL + srcURL;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       control.value(srcURL);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_7v7yldc7jfuw8p0q.getImageSize(editor.documentBaseURI.toAbsolute(control.value()), function (data) {
-        if (data.width && data.height && $_9cq6y3c6jfuw8p0n.hasDimensions(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_1e8k4ncujjgwebw2.getImageSize(editor.documentBaseURI.toAbsolute(control.value()), function (data) {
+        if (data.width && data.height && $_1dn8wtctjjgwebvz.hasDimensions(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           rootControl.find('#width').value(data.width);
</span><span class="cx" style="display: block; padding: 0 10px">           rootControl.find('#height').value(data.height);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_1ahiincmjfuw8p2c.syncSize(rootControl);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_ftlz5pdajjgweby4.syncSize(rootControl);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -898,7 +844,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       imageListCtrl
</span><span class="cx" style="display: block; padding: 0 10px">     ];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9cq6y3c6jfuw8p0n.hasDescription(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1dn8wtctjjgwebvz.hasDescription(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       generalFormItems.push({
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'alt',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'textbox',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -905,7 +851,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         label: 'Image description'
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9cq6y3c6jfuw8p0n.hasImageTitle(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1dn8wtctjjgwebvz.hasImageTitle(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       generalFormItems.push({
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'title',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'textbox',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -912,15 +858,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">         label: 'Image Title'
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9cq6y3c6jfuw8p0n.hasDimensions(editor)) {
-      generalFormItems.push($_1ahiincmjfuw8p2c.createUi());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1dn8wtctjjgwebvz.hasDimensions(editor)) {
+      generalFormItems.push($_ftlz5pdajjgweby4.createUi());
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9cq6y3c6jfuw8p0n.getClassList(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1dn8wtctjjgwebvz.getClassList(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       generalFormItems.push({
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'class',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'listbox',
</span><span class="cx" style="display: block; padding: 0 10px">         label: 'Class',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        values: $_7v7yldc7jfuw8p0q.buildListItems($_9cq6y3c6jfuw8p0n.getClassList(editor), function (item) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        values: $_1e8k4ncujjgwebw2.buildListItems($_1dn8wtctjjgwebvz.getClassList(editor), function (item) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (item.value) {
</span><span class="cx" style="display: block; padding: 0 10px">             item.textStyle = function () {
</span><span class="cx" style="display: block; padding: 0 10px">               return editor.formatter.getCssText({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -932,7 +878,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         })
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9cq6y3c6jfuw8p0n.hasImageCaption(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1dn8wtctjjgwebvz.hasImageCaption(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       generalFormItems.push({
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'caption',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'checkbox',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -948,13 +894,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       items: getGeneralItems(editor, imageListCtrl)
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_e4gxykcljfuw8p29 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_78zck5d9jjgweby1 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     makeTab: makeTab$1,
</span><span class="cx" style="display: block; padding: 0 10px">     getGeneralItems: getGeneralItems
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var url = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ba69mec9jfuw8p15.getOrDie('URL');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_oab1bcwjjgwebwl.getOrDie('URL');
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createObjectURL = function (blob) {
</span><span class="cx" style="display: block; padding: 0 10px">     return url().createObjectURL(blob);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -962,15 +908,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var revokeObjectURL = function (u) {
</span><span class="cx" style="display: block; padding: 0 10px">     url().revokeObjectURL(u);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_52xhfhcojfuw8p2i = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_86i13edcjjgwebya = {
</ins><span class="cx" style="display: block; padding: 0 10px">     createObjectURL: createObjectURL,
</span><span class="cx" style="display: block; padding: 0 10px">     revokeObjectURL: revokeObjectURL
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$6 = tinymce.util.Tools.resolve('tinymce.ui.Factory');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$5 = tinymce.util.Tools.resolve('tinymce.ui.Factory');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function XMLHttpRequest () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_ba69mec9jfuw8p15.getOrDie('XMLHttpRequest');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_oab1bcwjjgwebwl.getOrDie('XMLHttpRequest');
</ins><span class="cx" style="display: block; padding: 0 10px">     return new f();
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1012,7 +958,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       xhr.send(formData);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var uploadBlob = function (blobInfo, handler) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return new global$2(function (resolve, reject) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return new global$1(function (resolve, reject) {
</ins><span class="cx" style="display: block; padding: 0 10px">         try {
</span><span class="cx" style="display: block; padding: 0 10px">           handler(blobInfo, resolve, reject, noop);
</span><span class="cx" style="display: block; padding: 0 10px">         } catch (ex) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1024,9 +970,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return handler === defaultHandler;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var upload = function (blobInfo) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return !settings.url && isDefaultHandler(settings.handler) ? global$2.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return !settings.url && isDefaultHandler(settings.handler) ? global$1.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    settings = global$3.extend({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    settings = global$2.extend({
</ins><span class="cx" style="display: block; padding: 0 10px">       credentials: false,
</span><span class="cx" style="display: block; padding: 0 10px">       handler: defaultHandler
</span><span class="cx" style="display: block; padding: 0 10px">     }, settings);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1035,23 +981,23 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var onFileInput = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var Throbber = global$6.get('Throbber');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var Throbber = global$5.get('Throbber');
</ins><span class="cx" style="display: block; padding: 0 10px">       var rootControl = evt.control.rootControl;
</span><span class="cx" style="display: block; padding: 0 10px">       var throbber = new Throbber(rootControl.getEl());
</span><span class="cx" style="display: block; padding: 0 10px">       var file = evt.control.value();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var blobUri = $_52xhfhcojfuw8p2i.createObjectURL(file);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var blobUri = $_86i13edcjjgwebya.createObjectURL(file);
</ins><span class="cx" style="display: block; padding: 0 10px">       var uploader = Uploader({
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        url: $_9cq6y3c6jfuw8p0n.getUploadUrl(editor),
-        basePath: $_9cq6y3c6jfuw8p0n.getUploadBasePath(editor),
-        credentials: $_9cq6y3c6jfuw8p0n.getUploadCredentials(editor),
-        handler: $_9cq6y3c6jfuw8p0n.getUploadHandler(editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        url: $_1dn8wtctjjgwebvz.getUploadUrl(editor),
+        basePath: $_1dn8wtctjjgwebvz.getUploadBasePath(editor),
+        credentials: $_1dn8wtctjjgwebvz.getUploadCredentials(editor),
+        handler: $_1dn8wtctjjgwebvz.getUploadHandler(editor)
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       var finalize = function () {
</span><span class="cx" style="display: block; padding: 0 10px">         throbber.hide();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_52xhfhcojfuw8p2i.revokeObjectURL(blobUri);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_86i13edcjjgwebya.revokeObjectURL(blobUri);
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       throbber.show();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_7v7yldc7jfuw8p0q.blobToDataUri(file).then(function (dataUrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_1e8k4ncujjgwebw2.blobToDataUri(file).then(function (dataUrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var blobInfo = editor.editorUpload.blobCache.create({
</span><span class="cx" style="display: block; padding: 0 10px">           blob: file,
</span><span class="cx" style="display: block; padding: 0 10px">           blobUri: blobUri,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1111,43 +1057,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9k5u99cnjfuw8p2f = { makeTab: makeTab$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_71qd7mdbjjgweby7 = { makeTab: makeTab$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var noop$1 = function () {
-    var x = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-      x[_i] = arguments[_i];
-    }
-  };
-  var noarg = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return f();
-    };
-  };
-  var compose = function (fa, fb) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return fa(fb.apply(null, arguments));
-    };
-  };
-  var constant = function (value) {
-    return function () {
-      return value;
-    };
-  };
-  var identity = function (x) {
-    return x;
-  };
-  var tripleEquals = function (a, b) {
-    return a === b;
-  };
</del><span class="cx" style="display: block; padding: 0 10px">   var curry = function (f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var x = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 1; _i < arguments.length; _i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1168,49 +1079,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return f.apply(null, all);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var not = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return !f.apply(null, arguments);
-    };
-  };
-  var die = function (msg) {
-    return function () {
-      throw new Error(msg);
-    };
-  };
-  var apply = function (f) {
-    return f();
-  };
-  var call = function (f) {
-    f();
-  };
-  var never = constant(false);
-  var always = constant(true);
-  var $_ajqvh7csjfuw8p2q = {
-    noop: noop$1,
-    noarg: noarg,
-    compose: compose,
-    constant: constant,
-    identity: identity,
-    tripleEquals: tripleEquals,
-    curry: curry,
-    not: not,
-    die: die,
-    apply: apply,
-    call: call,
-    never: never,
-    always: always
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var submitForm = function (editor, evt) {
</span><span class="cx" style="display: block; padding: 0 10px">     var win = evt.control.getRoot();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_1ahiincmjfuw8p2c.updateSize(win);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_ftlz5pdajjgweby4.updateSize(win);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.undoManager.transact(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var data = $_ajpvnqcjjfuw8p25.merge(readImageDataFromSelection(editor), win.toJSON());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var data = merge(readImageDataFromSelection(editor), win.toJSON());
</ins><span class="cx" style="display: block; padding: 0 10px">       insertOrUpdateImage(editor, data);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.editorUpload.uploadImagesAuto();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1224,7 +1098,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           type: 'listbox',
</span><span class="cx" style="display: block; padding: 0 10px">           label: 'Image list',
</span><span class="cx" style="display: block; padding: 0 10px">           name: 'image-list',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          values: $_7v7yldc7jfuw8p0q.buildListItems(imageList, function (item) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          values: $_1e8k4ncujjgwebw2.buildListItems(imageList, function (item) {
</ins><span class="cx" style="display: block; padding: 0 10px">             item.value = editor.convertURL(item.value || item.url, 'src');
</span><span class="cx" style="display: block; padding: 0 10px">           }, [{
</span><span class="cx" style="display: block; padding: 0 10px">               text: 'None',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1243,13 +1117,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_9cq6y3c6jfuw8p0n.hasAdvTab(editor) || $_9cq6y3c6jfuw8p0n.hasUploadUrl(editor) || $_9cq6y3c6jfuw8p0n.hasUploadHandler(editor)) {
-        var body = [$_e4gxykcljfuw8p29.makeTab(editor, imageListCtrl)];
-        if ($_9cq6y3c6jfuw8p0n.hasAdvTab(editor)) {
-          body.push($_dlliegcfjfuw8p1m.makeTab(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_1dn8wtctjjgwebvz.hasAdvTab(editor) || $_1dn8wtctjjgwebvz.hasUploadUrl(editor) || $_1dn8wtctjjgwebvz.hasUploadHandler(editor)) {
+        var body = [$_78zck5d9jjgweby1.makeTab(editor, imageListCtrl)];
+        if ($_1dn8wtctjjgwebvz.hasAdvTab(editor)) {
+          body.push($_6dfy5vd3jjgwebxf.makeTab(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_9cq6y3c6jfuw8p0n.hasUploadUrl(editor) || $_9cq6y3c6jfuw8p0n.hasUploadHandler(editor)) {
-          body.push($_9k5u99cnjfuw8p2f.makeTab(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_1dn8wtctjjgwebvz.hasUploadUrl(editor) || $_1dn8wtctjjgwebvz.hasUploadHandler(editor)) {
+          body.push($_71qd7mdbjjgweby7.makeTab(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         win = editor.windowManager.open({
</span><span class="cx" style="display: block; padding: 0 10px">           title: 'Insert/edit image',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1256,20 +1130,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">           data: data,
</span><span class="cx" style="display: block; padding: 0 10px">           bodyType: 'tabpanel',
</span><span class="cx" style="display: block; padding: 0 10px">           body: body,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          onSubmit: $_ajqvh7csjfuw8p2q.curry(submitForm, editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          onSubmit: curry(submitForm, editor)
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         win = editor.windowManager.open({
</span><span class="cx" style="display: block; padding: 0 10px">           title: 'Insert/edit image',
</span><span class="cx" style="display: block; padding: 0 10px">           data: data,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          body: $_e4gxykcljfuw8p29.getGeneralItems(editor, imageListCtrl),
-          onSubmit: $_ajqvh7csjfuw8p2q.curry(submitForm, editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          body: $_78zck5d9jjgweby1.getGeneralItems(editor, imageListCtrl),
+          onSubmit: curry(submitForm, editor)
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_1ahiincmjfuw8p2c.syncSize(win);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_ftlz5pdajjgweby4.syncSize(win);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function open() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_7v7yldc7jfuw8p0q.createImageList(editor, showDialog);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_1e8k4ncujjgwebw2.createImageList(editor, showDialog);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return { open: open };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1277,7 +1151,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceImage', Dialog(editor).open);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cbuvmdc4jfuw8p0d = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3lypdlcrjjgwebvs = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var hasImageClass = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     var className = node.attr('class');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1293,7 +1167,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         node = nodes[i];
</span><span class="cx" style="display: block; padding: 0 10px">         if (hasImageClass(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">           node.attr('contenteditable', state ? 'false' : null);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          global$3.each(node.getAll('figcaption'), toggleContentEditable);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          global$2.each(node.getAll('figcaption'), toggleContentEditable);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1304,7 +1178,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_191db6ctjfuw8p2t = { setup: setup };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5op6l2dhjjgwebym = { setup: setup };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addButton('image', {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1321,12 +1195,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       prependToContext: true
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9nl4e0cujfuw8p2v = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_dm869adijjgwebyn = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('image', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_191db6ctjfuw8p2t.setup(editor);
-    $_9nl4e0cujfuw8p2v.register(editor);
-    $_cbuvmdc4jfuw8p0d.register(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_5op6l2dhjjgwebym.setup(editor);
+    $_dm869adijjgwebyn.register(editor);
+    $_3lypdlcrjjgwebvs.register(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginsimagepluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js 2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js   2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d={hasDimensions:function(e){return!1!==e.settings.image_dimensions},hasAdvTab:function(e){return!0===e.settings.image_advtab},getPrependUrl:function(e){return e.getParam("image_prepend_url","")},getClassList:function(e){return e.getParam("image_class_list")},hasDescription:function(e){return!1!==e.settings.image_description},hasImageTitle:function(e){return!0===e.settings.image_title},hasImageCaption:function(e){return!0===e.settings.image_caption},getImageList:function(e){return e.getParam("image_list",!1)},hasUploadUrl:function(e){return e.getParam("images_upload_url",!1)},hasUploadHandler:function(e){return e.getParam("images_upload_handler",!1)},getUploadUrl:function(e){return e.getParam("images_upload_url")},get
 UploadHandler:function(e){return e.getParam("images_upload_handler")},getUploadBasePath:function(e){return e.getParam("images_upload_base_path")},getUploadCredentials:function(e){return e.getParam("images_upload_credentials")}},a="undefined"!=typeof window?window:Function("return this;")(),r=function(e,t){for(var n=t!==undefined&&null!==t?t:a,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n},i=function(e,t){var n=e.split(".");return r(n,t)},t={getOrDie:function(e,t){var n=i(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n}};function o(){return new(t.getOrDie("FileReader"))}var n=tinymce.util.Tools.resolve("tinymce.util.Promise"),f=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=tinymce.util.Tools.resolve("tinymce.util.XHR"),u=function(e,t){return Math.max(parseInt(e,10),parseInt(t,10))},g={getImageS
 ize:function(e,n){var r=document.createElement("img");function t(e,t){r.parentNode&&r.parentNode.removeChild(r),n({width:e,height:t})}r.onload=function(){t(u(r.width,r.clientWidth),u(r.height,r.clientHeight))},r.onerror=function(){t(0,0)};var a=r.style;a.visibility="hidden",a.position="fixed",a.bottom=a.left="0px",a.width=a.height="auto",document.body.appendChild(r),r.src=e},buildListItems:function(e,a,t){return function n(e,r){return r=r||[],f.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=n(e.menu):(t.value=e.value,a(t)),r.push(t)}),r}(e,t||[])},removePixelSuffix:function(e){return e&&(e=e.replace(/px$/,"")),e},addPixelSuffix:function(e){return 0<e.length&&/^[0-9]+$/.test(e)&&(e+="px"),e},mergeMargins:function(e){if(e.margin){var t=e.margin.split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right&
 quot;]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e},createImageList:function(e,t){var n
 =d.getImageList(e);"string"==typeof n?l.send({url:n,success:function(e){t(JSON.parse(e))}}):"function"==typeof n?n(t):t(n)},waitLoadImage:function(e,t,n){function r(){n.onload=n.onerror=null,e.selection&&(e.selection.select(n),e.nodeChanged())}n.onload=function(){t.width||t.height||!d.hasDimensions(e)||e.dom.setAttribs(n,{width:n.clientWidth,height:n.clientHeight}),r()},n.onerror=r},blobToDataUri:function(r){return new n(function(e,t){var n=new o;n.onload=function(){e(n.result)},n.onerror=function(){t(o.error.message)},n.readAsDataURL(r)})}},s=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},m={isString:c("string"),isObject:c("object"),isArr
 ay:c("array"),isNull:c("null"),isBoolean:c("boolean"),isUndefined:c("undefined"),isFunction:c("function"),isNumber:c("number")},p=function(o){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var a=e[r];for(var i in a)a.hasOwnProperty(i)&&(n[i]=o(n[i],a[i]))}return n}},h=p(function(e,t){return m.isObject(e)&&m.isObject(t)?h(e,t):t}),v=p(function(e,t){return t}),b={deepMerge:h,merge:v},y=s.DOM,x=function(e){return e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?g.removePixelSuffix(e.style.marginLeft):""},w=function(e){return e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?g.removePixelSuffix(e.style.marginTop):""},S=function(e){return e.style
 .borderWidth?g.removePixelSuffix(e.style.borderWidth):""},U=function(e,t){return e.hasAttribute(t)?e.getAttribute(t):""},C=function(e,t){return e.style[t]?e.style[t]:""},T=function(e){return null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName},P=function(e,t,n){e.setAttribute(t,n)},I=function(e){var t,n,r,a;T(e)?(a=(r=e).parentNode,y.insertAfter(r,a),y.remove(a)):(t=e,n=y.create("figure",{"class":"image"}),y.insertAfter(n,t),n.appendChild(t),n.appendChild(y.create("figcaption",{contentEditable:!0},"Caption")),n.contentEditable="false")},N=function(e,t){var n=e.getAttribute("style"),r=t(null!==n?n:"");0<r.length?(e.setAttribute("style",r),e.setAttribute("data-mce-style",r)):e.removeAttribute("style")},A=function(e,r){return function(e,t,n){e.style[t]?(e.style[t]=g.addPixelSuffix(n),N(e,r)):P(e,t,n)}},L=function(e,t){return 
 e.style[t]?g.removePixelSuffix(e.style[t]):U(e,t)},_=function(e,t){var n=g.addPixelSuffix(t);e.style.marginLeft=n,e.style.marginRight=n},O=function(e,t){var n=g.addPixelSuffix(t);e.style.marginTop=n,e.style.marginBottom=n},R=function(e,t){var n=g.addPixelSuffix(t);e.style.borderWidth=n},D=function(e,t){e.style.borderStyle=t},k=function(e){return"FIGURE"===e.nodeName},z=function(e,t){var n=document.createElement("img");return P(n,"style",t.style),(x(n)||""!==t.hspace)&&_(n,t.hspace),(w(n)||""!==t.vspace)&&O(n,t.vspace),(S(n)||""!==t.border)&&R(n,t.border),(C(n,"borderStyle")||""!==t.borderStyle)&&D(n,t.borderStyle),e(n.getAttribute("style"))},M=function(e,t){return{src:U(t,"src"),alt:U(t,"alt"),title:U(t,"title"),width:L(t,"width"),height:L(t,"height"),"class":U(t,"class"),style:e(U(t,"styl
 e")),caption:T(t),hspace:x(t),vspace:w(t),border:S(t),borderStyle:C(t,"borderStyle")}},E=function(e,t,n,r,a){n[r]!==t[r]&&a(e,r,n[r])},H=function(r,a){return function(e,t,n){r(e,n),N(e,a)}},j=function(e,t,n){var r=M(e,n);E(n,r,t,"caption",function(e,t,n){return I(e)}),E(n,r,t,"src",P),E(n,r,t,"alt",P),E(n,r,t,"title",P),E(n,r,t,"width",A(0,e)),E(n,r,t,"height",A(0,e)),E(n,r,t,"class",P),E(n,r,t,"style",H(function(e,t){return P(e,"style",t)},e)),E(n,r,t,"hspace",H(_,e)),E(n,r,t,"vspace",H(O,e)),E(n,r,t,"border",H(R,e)),E(n,r,t,"borderStyle",H(D,e))},B=function(e,t){var n=e.dom.styles.parse(t),r=g.mergeMargins(n),a=e.dom.styles.parse(e.dom.styles.serialize(r));return e.dom.styles.serialize(a)},F=function(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"figure.image");return n?e.dom.select("img",n)[0]:t&&
 ("IMG"!==t.nodeName||t.getAttribute("data-mce-object")||t.getAttribute("data-mce-placeholder"))?null:t},W=function(t,e){var n=t.dom,r=n.getParent(e.parentNode,function(e){return t.schema.getTextBlockElements()[e.nodeName]});return r?n.split(r,e):e},G=function(t){var e=F(t);return e?M(function(e){return B(t,e)},e):{src:"",alt:"",title:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:""}},J=function(t,e){var n=function(e,t){var n=document.createElement("img");if(j(e,b.merge(t,{caption:!1}),n),P(n,"alt",t.alt),t.caption){var r=y.create("figure",{"class":"image"});return r.appendChild(n),r.appendChild(y.create("figcaption",{contentEditable:!0},"Caption")),r.contentEditable="false",r}return n}(function(e){return B(t,
 e)},e);t.dom.setAttrib(n,"data-mce-id","__mcenew"),t.focus(),t.selection.setContent(n.outerHTML);var r=t.dom.select('*[data-mce-id="__mcenew"]')[0];if(t.dom.setAttrib(r,"data-mce-id",null),k(r)){var a=W(t,r);t.selection.select(a)}else t.selection.select(r)},V=function(e,t){var n=F(e);n?t.src?function(t,e){var n,r=F(t);if(j(function(e){return B(t,e)},e,r),n=r,t.dom.setAttrib(n,"src",n.getAttribute("src")),k(r.parentNode)){var a=r.parentNode;W(t,a),t.selection.select(r.parentNode)}else t.selection.select(r),g.waitLoadImage(t,e,r)}(e,t):function(e,t){if(t){var n=e.dom.is(t.parentNode,"figure.image")?t.parentNode:t;e.dom.remove(n),e.focus(),e.nodeChanged(),e.dom.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}}(e,n):t.src&&J(e,t)},$=function(n,r){r.find("#style").each(function(e){var t=z(function(e){return B(n,e)},b.merge({src:"",alt:"",t
 itle:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:""},r.toJSON()));e.value(t)})},X={makeTab:function(t){return{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox",onchange:(i=t,function(e){var t=i.dom,n=e.control.rootControl;if(d.hasAdvTab(i)){var r=n.toJSON(),a=t.parseStyle(r.style);n.find("#vspace").value(""),n.find("#hspace").value(""),((a=g.mergeMargins(a))["margin-top"]&&a["margin-bottom"]||a["margin-right"]&&a["margin-left"])&&(a["margin-top"]===a["margin-bottom"]?n.find("#vspace").value(g.removePixelSuffix(a["margin-top"])):n.find("#vspace").value(""),a["margin-rig
 ht"]===a["margin-left"]?n.find("#hspace").value(g.removePixelSuffix(a["margin-right"])):n.find("#hspace").value("")),a["border-width"]?n.find("#border").value(g.removePixelSuffix(a["border-width"])):n.find("#border").value(""),a["border-style"]?n.find("#borderStyle").value(a["border-style"]):n.find("#borderStyle").value(""),n.find("#style").value(t.serializeStyle(t.parseStyle(t.serializeStyle(a))))}})},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,defaults:{type:"textbox",maxWidth:50,onchange:function(e){$(t,e.control.rootControl)}},items:[{label:"Vertical space",name:"vspace"},{label:"Border width",name:"border"},{label:"Horizontal space",name:"hspace"},{label:"Border style",type:"listbox&quo
 t;,name:"borderStyle",width:90,maxWidth:90,onselect:function(e){$(t,e.control.rootControl)},values:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]};var i}},q=function(e,t){e.state.set("oldVal",e.value()),t.state.set("oldVal",t.value())},K=function(e,t){var n=e.find("#width")[0],r=e.find("#height")[0],a=e.find("#constrain")[0];n&&r&&a&&t(n,r,a.checked())},Q=function(e,t,n){var r=e.state.get("oldVal&q
 uot;),a=t.state.get("oldVal"),i=e.value(),o=t.value();n&&r&&a&&i&&o&&(i!==r?(o=Math.round(i/r*o),isNaN(o)||t.value(o)):(i=Math.round(o/a*i),isNaN(i)||e.value(i))),q(e,t)},Y=function(e){K(e,Q)},Z={createUi:function(){var e=function(e){Y(e.control.rootControl)};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}},syncSize:function(e){K(e,q)},updateSize:Y},ee=function(e){e.meta=e.control.rootControl.toJSON()},te=function(c,e){var t=[{name:"src",type:"filepicker",filetype:"im
 age",label:"Source",autofocus:!0,onchange:function(e){var t,n,r,a,i,o,l,u,s;n=c,o=(t=e).meta||{},l=t.control,u=l.rootControl,(s=u.find("#image-list")[0])&&s.value(n.convertURL(l.value(),"src")),f.each(o,function(e,t){u.find("#"+t).value(e)}),o.width||o.height||(r=n.convertURL(l.value(),"src"),a=d.getPrependUrl(n),i=new RegExp("^(?:[a-z]+:)?//","i"),a&&!i.test(r)&&r.substring(0,a.length)!==a&&(r=a+r),l.value(r),g.getImageSize(n.documentBaseURI.toAbsolute(l.value()),function(e){e.width&&e.height&&d.hasDimensions(n)&&(u.find("#width").value(e.width),u.find("#height").value(e.height),Z.syncSize(u))}))},onbeforecall:ee},e];return d.hasDescription(c)&&t.push({name:"alt",type:"textbox",label:"Image description"}),d.hasImageTitle(c)&&t.push({name:"title",type:"textbox",label:&q
 uot;Image Title"}),d.hasDimensions(c)&&t.push(Z.createUi()),d.getClassList(c)&&t.push({name:"class",type:"listbox",label:"Class",values:g.buildListItems(d.getClassList(c),function(e){e.value&&(e.textStyle=function(){return c.formatter.getCssText({inline:"img",classes:[e.value]})})})}),d.hasImageCaption(c)&&t.push({name:"caption",type:"checkbox",label:"Caption"}),t},ne={makeTab:function(e,t){return{title:"General",type:"form",items:te(e,t)}},getGeneralItems:te},re=function(){return t.getOrDie("URL")},ae=function(e){return re().createObjectURL(e)},ie=function(e){re().revokeObjectURL(e)},oe=tinymce.util.Tools.resolve("tinymce.ui.Factory");function le(){return new(t.getOrDie("XMLHttpRequest"))}var ue=function(){},se=function(e,t){return e?e.replace(/\/$/,"")+"/"+t.replace(/^\//,""):t};function ce(o){var
  t=function(e,t,n,r){var a,i;(a=new le).open("POST",o.url),a.withCredentials=o.credentials,a.upload.onprogress=function(e){r(e.loaded/e.total*100)},a.onerror=function(){n("Image upload failed due to a XHR Transport error. Code: "+a.status)},a.onload=function(){var e;a.status<200||300<=a.status?n("HTTP Error: "+a.status):(e=JSON.parse(a.responseText))&&"string"==typeof e.location?t(se(o.basePath,e.location)):n("Invalid JSON: "+a.responseText)},(i=new FormData).append("file",e.blob(),e.filename()),a.send(i)};return o=f.extend({credentials:!1,handler:t},o),{upload:function(e){return o.url||o.handler!==t?(r=e,a=o.handler,new n(function(e,t){try{a(r,e,t,ue)}catch(n){t(n.message)}})):n.reject("Upload url missing from the settings.");var r,a}}}var de=function(u){return function(e){var t=oe.get("Throbber"),n=e.control.rootControl,r=new t(n.getEl()),a=e.control.value(),i=ae(a),o=ce({url:d.getUploadU
 rl(u),basePath:d.getUploadBasePath(u),credentials:d.getUploadCredentials(u),handler:d.getUploadHandler(u)}),l=function(){r.hide(),ie(i)};return r.show(),g.blobToDataUri(a).then(function(e){var t=u.editorUpload.blobCache.create({blob:a,blobUri:i,name:a.name?a.name.replace(/\.[^\.]+$/,""):null,base64:e.split(",")[1]});return o.upload(t).then(function(e){var t=n.find("#src");return t.value(e),n.find("tabpanel")[0].activateTab(0),t.fire("change"),l(),e})})["catch"](function(e){u.windowManager.alert(e),l()})}},fe=".jpg,.jpeg,.png,.gif",ge={makeTab:function(e){return{title:"Upload",type:"form",layout:"flex",direction:"column",align:"stretch",padding:"20 20 20 20",items:[{type:"container",layout:"flex",direction:"column",align:"center",spacing:10,items:[{text:"Browse for an image",type:"browsebutton",ac
 cept:fe,onchange:de(e)},{text:"OR",type:"label"}]},{text:"Drop an image here",type:"dropzone",accept:fe,height:100,onchange:de(e)}]}}},me=function(e){return function(){return e}},pe={noop:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},noarg:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n()}},compose:function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,arguments))}},constant:me,identity:function(e){return e},tripleEquals:function(e,t){return e===t},curry:function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var o=new Array(arguments.length-1),n=1;n<arguments.length;n++)o[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var a=o.concat(n);return i.apply(null
 ,a)}},not:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,arguments)}},die:function(e){return function(){throw new Error(e)}},apply:function(e){return e()},call:function(e){e()},never:me(!1),always:me(!0)},he=function(t,e){var n=e.control.getRoot();Z.updateSize(n),t.undoManager.transact(function(){var e=b.merge(G(t),n.toJSON());V(t,e)}),t.editorUpload.uploadImagesAuto()};function ve(i){function e(e){var n,t,r=G(i);if(e&&(t={type:"listbox",label:"Image list",name:"image-list",values:g.buildListItems(e,function(e){e.value=i.convertURL(e.value||e.url,"src")},[{text:"None",value:""}]),value:r.src&&i.convertURL(r.src,"src"),onselect:function(e){var t=n.find("#alt");(!t.value()||e.lastControl&&t.value()===e.lastControl.text())&&t.value(e.control.text()),n.find("#src").value(e.control.value()).fire("cha
 nge")},onPostRender:function(){t=this}}),d.hasAdvTab(i)||d.hasUploadUrl(i)||d.hasUploadHandler(i)){var a=[ne.makeTab(i,t)];d.hasAdvTab(i)&&a.push(X.makeTab(i)),(d.hasUploadUrl(i)||d.hasUploadHandler(i))&&a.push(ge.makeTab(i)),n=i.windowManager.open({title:"Insert/edit image",data:r,bodyType:"tabpanel",body:a,onSubmit:pe.curry(he,i)})}else n=i.windowManager.open({title:"Insert/edit image",data:r,body:ne.getGeneralItems(i,t),onSubmit:pe.curry(he,i)});Z.syncSize(n)}return{open:function(){g.createImageList(i,e)}}}var be=function(e){e.addCommand("mceImage",ve(e).open)},ye=function(i){return function(e){for(var t,n,r=e.length,a=function(e){e.attr("contenteditable",i?"true":null)};r--;)t=e[r],(n=t.attr("class"))&&/\bimage\b/.test(n)&&(t.attr("contenteditable",i?"false":null),f.each(t.getAll("figcaption"),a))}},xe=function(e){e.on("preInit",funct
 ion(){e.parser.addNodeFilter("figure",ye(!0)),e.serializer.addNodeFilter("figure",ye(!1))})},we=function(e){e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:ve(e).open,stateSelector:"img:not([data-mce-object],[data-mce-placeholder]),figure.image"}),e.addMenuItem("image",{icon:"image",text:"Image",onclick:ve(e).open,context:"insert",prependToContext:!0})};e.add("image",function(e){xe(e),we(e),be(e)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=function(e){return!1!==e.settings.image_dimensions},i=function(e){return!0===e.settings.image_advtab},g=function(e){return e.getParam("image_prepend_url","")},n=function(e){return e.getParam("image_class_list")},r=function(e){return!1!==e.settings.image_description},a=function(e){return!0===e.settings.image_title},o=function(e){return!0===e.settings.image_caption},l=function(e){return e.getParam("image_list",!1)},u=function(e){return e.getParam("images_upload_url",!1)},c=function(e){return e.getParam("images_upload_handler",!1)},s=function(e){return e.getParam("images_upload_url")},m=function(e){return e.getParam("images_upload_handler")},f=function(e){return e.getParam("images_upload_base_path")
 },p=function(e){return e.getParam("images_upload_credentials")},h="undefined"!=typeof window?window:Function("return this;")(),v=function(e,t){return function(e,t){for(var n=t!==undefined&&null!==t?t:h,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n}(e.split("."),t)},t={getOrDie:function(e,t){var n=v(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n}};function b(){return new(t.getOrDie("FileReader"))}var y,x=tinymce.util.Tools.resolve("tinymce.util.Promise"),w=tinymce.util.Tools.resolve("tinymce.util.Tools"),C=tinymce.util.Tools.resolve("tinymce.util.XHR"),S=function(e,t){return Math.max(parseInt(e,10),parseInt(t,10))},N=function(e,n){var r=document.createElement("img");function t(e,t){r.parentNode&&r.parentNode.removeChild(r),n({width:e,height:t})}r.onload=function(){t(S(r.width,r.clientWidth),S(r.heigh
 t,r.clientHeight))},r.onerror=function(){t(0,0)};var a=r.style;a.visibility="hidden",a.position="fixed",a.bottom=a.left="0px",a.width=a.height="auto",document.body.appendChild(r),r.src=e},_=function(e,a,t){return function n(e,r){return r=r||[],w.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=n(e.menu):(t.value=e.value,a(t)),r.push(t)}),r}(e,t||[])},A=function(e){return e&&(e=e.replace(/px$/,"")),e},T=function(e){return 0<e.length&&/^[0-9]+$/.test(e)&&(e+="px"),e},R=function(e){if(e.margin){var t=e.margin.split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right&quot
 ;]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e},I=function(e,t){var n=l(e);"string"==typeof n?C.send({url:n,success:function(e){t(JSON.parse(e))}}):"function"==typeof n?n(t):t(n)},O=function(e,t,n){function r(){n.onload=n.onerror=null,e.selection&&(e.selection.select(n),e.nodeChanged())}n.onload=function(){t.width|
 |t.height||!d(e)||e.dom.setAttribs(n,{width:n.clientWidth,height:n.clientHeight}),r()},n.onerror=r},L=function(r){return new x(function(e,t){var n=new b;n.onload=function(){e(n.result)},n.onerror=function(){t(b.error.message)},n.readAsDataURL(r)})},P=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),U=Object.prototype.hasOwnProperty,E=(y=function(e,t){return t},function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var a=e[r];for(var o in a)U.call(a,o)&&(n[o]=y(n[o],a[o]))}return n}),k=P.DOM,M=function(e){return e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?A(e.style.marginLeft):""},D=function(e){return e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?A(e.style.marginTop):""},z=function(e){return e.style.bor
 derWidth?A(e.style.borderWidth):""},B=function(e,t){return e.hasAttribute(t)?e.getAttribute(t):""},H=function(e,t){return e.style[t]?e.style[t]:""},j=function(e){return null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName},F=function(e,t,n){e.setAttribute(t,n)},W=function(e){var t,n,r,a;j(e)?(a=(r=e).parentNode,k.insertAfter(r,a),k.remove(a)):(t=e,n=k.create("figure",{"class":"image"}),k.insertAfter(n,t),n.appendChild(t),n.appendChild(k.create("figcaption",{contentEditable:!0},"Caption")),n.contentEditable="false")},J=function(e,t){var n=e.getAttribute("style"),r=t(null!==n?n:"");0<r.length?(e.setAttribute("style",r),e.setAttribute("data-mce-style",r)):e.removeAttribute("style")},V=function(e,r){return function(e,t,n){e.style[t]?(e.style[t]=T(n),J(e,r)):F(e,t,n)}},G=function(e,t){return e.style[t]?A(e.style[t]):B(e,t)},$=fu
 nction(e,t){var n=T(t);e.style.marginLeft=n,e.style.marginRight=n},X=function(e,t){var n=T(t);e.style.marginTop=n,e.style.marginBottom=n},q=function(e,t){var n=T(t);e.style.borderWidth=n},K=function(e,t){e.style.borderStyle=t},Q=function(e){return"FIGURE"===e.nodeName},Y=function(e,t){var n=document.createElement("img");return F(n,"style",t.style),(M(n)||""!==t.hspace)&&$(n,t.hspace),(D(n)||""!==t.vspace)&&X(n,t.vspace),(z(n)||""!==t.border)&&q(n,t.border),(H(n,"borderStyle")||""!==t.borderStyle)&&K(n,t.borderStyle),e(n.getAttribute("style"))},Z=function(e,t){return{src:B(t,"src"),alt:B(t,"alt"),title:B(t,"title"),width:G(t,"width"),height:G(t,"height"),"class":B(t,"class"),style:e(B(t,"style")),caption:j(t),hspace:M(t),vspace:D(t),border:z(t),borderStyle:H(t,"borderStyle")}
 },ee=function(e,t,n,r,a){n[r]!==t[r]&&a(e,r,n[r])},te=function(r,a){return function(e,t,n){r(e,n),J(e,a)}},ne=function(e,t,n){var r=Z(e,n);ee(n,r,t,"caption",function(e,t,n){return W(e)}),ee(n,r,t,"src",F),ee(n,r,t,"alt",F),ee(n,r,t,"title",F),ee(n,r,t,"width",V(0,e)),ee(n,r,t,"height",V(0,e)),ee(n,r,t,"class",F),ee(n,r,t,"style",te(function(e,t){return F(e,"style",t)},e)),ee(n,r,t,"hspace",te($,e)),ee(n,r,t,"vspace",te(X,e)),ee(n,r,t,"border",te(q,e)),ee(n,r,t,"borderStyle",te(K,e))},re=function(e,t){var n=e.dom.styles.parse(t),r=R(n),a=e.dom.styles.parse(e.dom.styles.serialize(r));return e.dom.styles.serialize(a)},ae=function(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"figure.image");return n?e.dom.select("img",n)[0]:t&&("IMG"!==t.nodeName||t.getAttribute("data-mce-object")||t.getAttribute(
 "data-mce-placeholder"))?null:t},oe=function(t,e){var n=t.dom,r=n.getParent(e.parentNode,function(e){return t.schema.getTextBlockElements()[e.nodeName]});return r?n.split(r,e):e},ie=function(t){var e=ae(t);return e?Z(function(e){return re(t,e)},e):{src:"",alt:"",title:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:""}},le=function(t,e){var n=function(e,t){var n=document.createElement("img");if(ne(e,E(t,{caption:!1}),n),F(n,"alt",t.alt),t.caption){var r=k.create("figure",{"class":"image"});return r.appendChild(n),r.appendChild(k.create("figcaption",{contentEditable:!0},"Caption")),r.contentEditable="false",r}return n}(function(e){return re(t,e)},e);t.dom.setAttrib(n,"data-mce-id","__mcenew"),t.focus(),t.selecti
 on.setContent(n.outerHTML);var r=t.dom.select('*[data-mce-id="__mcenew"]')[0];if(t.dom.setAttrib(r,"data-mce-id",null),Q(r)){var a=oe(t,r);t.selection.select(a)}else t.selection.select(r)},ue=function(e,t){var n=ae(e);n?t.src?function(t,e){var n,r=ae(t);if(ne(function(e){return re(t,e)},e,r),n=r,t.dom.setAttrib(n,"src",n.getAttribute("src")),Q(r.parentNode)){var a=r.parentNode;oe(t,a),t.selection.select(r.parentNode)}else t.selection.select(r),O(t,e,r)}(e,t):function(e,t){if(t){var n=e.dom.is(t.parentNode,"figure.image")?t.parentNode:t;e.dom.remove(n),e.focus(),e.nodeChanged(),e.dom.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}}(e,n):t.src&&le(e,t)},ce=function(n,r){r.find("#style").each(function(e){var t=Y(function(e){return re(n,e)},E({src:"",alt:"",title:"",width:"",height:"","class":"",style:"
 ",caption:!1,hspace:"",vspace:"",border:"",borderStyle:""},r.toJSON()));e.value(t)})},se=function(t){return{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox",onchange:(o=t,function(e){var t=o.dom,n=e.control.rootControl;if(i(o)){var r=n.toJSON(),a=t.parseStyle(r.style);n.find("#vspace").value(""),n.find("#hspace").value(""),((a=R(a))["margin-top"]&&a["margin-bottom"]||a["margin-right"]&&a["margin-left"])&&(a["margin-top"]===a["margin-bottom"]?n.find("#vspace").value(A(a["margin-top"])):n.find("#vspace").value(""),a["margin-right"]===a["margin-left"]?n.find("#hspace").value(A(a["margin-right"])):n.find("#hspace").value("&quo
 t;)),a["border-width"]?n.find("#border").value(A(a["border-width"])):n.find("#border").value(""),a["border-style"]?n.find("#borderStyle").value(a["border-style"]):n.find("#borderStyle").value(""),n.find("#style").value(t.serializeStyle(t.parseStyle(t.serializeStyle(a))))}})},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,defaults:{type:"textbox",maxWidth:50,onchange:function(e){ce(t,e.control.rootControl)}},items:[{label:"Vertical space",name:"vspace"},{label:"Border width",name:"border"},{label:"Horizontal space",name:"hspace"},{label:"Border style",type:"listbox",name:"borderStyle",width:90,maxWidth:90,onselect:function(e){ce(t,e.control.rootControl)},values:[{text:"Select...",value:""},{text:"Solid",v
 alue:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]};var o},de=function(e,t){e.state.set("oldVal",e.value()),t.state.set("oldVal",t.value())},ge=function(e,t){var n=e.find("#width")[0],r=e.find("#height")[0],a=e.find("#constrain")[0];n&&r&&a&&t(n,r,a.checked())},me=function(e,t,n){var r=e.state.get("oldVal"),a=t.state.get("oldVal"),o=e.value(),i=t.value();n&&r&&a&&o&&i&&(o!==r?(i=Math.round(o/r*i),isNaN(i)||t.value(i)):(o=Math.roun
 d(i/a*o),isNaN(o)||e.value(o))),de(e,t)},fe=function(e){ge(e,me)},pe=function(){var e=function(e){fe(e.control.rootControl)};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}},he=function(e){ge(e,de)},ve=fe,be=function(e){e.meta=e.control.rootControl.toJSON()},ye=function(s,e){var t=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:function(e){var t,n,r,a,o,i,l,u,c;n=s,i=(t=e).meta||{},l=t.control,u=l.rootControl,(c=u.find("#image-list")[0])&&c.value(n
 .convertURL(l.value(),"src")),w.each(i,function(e,t){u.find("#"+t).value(e)}),i.width||i.height||(r=n.convertURL(l.value(),"src"),a=g(n),o=new RegExp("^(?:[a-z]+:)?//","i"),a&&!o.test(r)&&r.substring(0,a.length)!==a&&(r=a+r),l.value(r),N(n.documentBaseURI.toAbsolute(l.value()),function(e){e.width&&e.height&&d(n)&&(u.find("#width").value(e.width),u.find("#height").value(e.height),he(u))}))},onbeforecall:be},e];return r(s)&&t.push({name:"alt",type:"textbox",label:"Image description"}),a(s)&&t.push({name:"title",type:"textbox",label:"Image Title"}),d(s)&&t.push(pe()),n(s)&&t.push({name:"class",type:"listbox",label:"Class",values:_(n(s),function(e){e.value&&(e.textStyle=function(){return s.formatter.getCssText({inline:"img",classes:[
 e.value]})})})}),o(s)&&t.push({name:"caption",type:"checkbox",label:"Caption"}),t},xe=function(e,t){return{title:"General",type:"form",items:ye(e,t)}},we=ye,Ce=function(){return t.getOrDie("URL")},Se=function(e){return Ce().createObjectURL(e)},Ne=function(e){Ce().revokeObjectURL(e)},_e=tinymce.util.Tools.resolve("tinymce.ui.Factory");function Ae(){return new(t.getOrDie("XMLHttpRequest"))}var Te=function(){};function Re(i){var t=function(e,r,a,t){var o,n;(o=new Ae).open("POST",i.url),o.withCredentials=i.credentials,o.upload.onprogress=function(e){t(e.loaded/e.total*100)},o.onerror=function(){a("Image upload failed due to a XHR Transport error. Code: "+o.status)},o.onload=function(){var e,t,n;o.status<200||300<=o.status?a("HTTP Error: "+o.status):(e=JSON.parse(o.responseText))&&"string"==typeof e.location?r((t=i.basePath,n=e.location,t?t.replace
 (/\/$/,"")+"/"+n.replace(/^\//,""):n)):a("Invalid JSON: "+o.responseText)},(n=new FormData).append("file",e.blob(),e.filename()),o.send(n)};return i=w.extend({credentials:!1,handler:t},i),{upload:function(e){return i.url||i.handler!==t?(r=e,a=i.handler,new x(function(e,t){try{a(r,e,t,Te)}catch(n){t(n.message)}})):x.reject("Upload url missing from the settings.");var r,a}}}var Ie=function(u){return function(e){var t=_e.get("Throbber"),n=e.control.rootControl,r=new t(n.getEl()),a=e.control.value(),o=Se(a),i=Re({url:s(u),basePath:f(u),credentials:p(u),handler:m(u)}),l=function(){r.hide(),Ne(o)};return r.show(),L(a).then(function(e){var t=u.editorUpload.blobCache.create({blob:a,blobUri:o,name:a.name?a.name.replace(/\.[^\.]+$/,""):null,base64:e.split(",")[1]});return i.upload(t).then(function(e){var t=n.find("#src");return t.value(e),n.find("tabpanel")[0].activateTab(0),t.fire(&q
 uot;change"),l(),e})})["catch"](function(e){u.windowManager.alert(e),l()})}},Oe=".jpg,.jpeg,.png,.gif",Le=function(e){return{title:"Upload",type:"form",layout:"flex",direction:"column",align:"stretch",padding:"20 20 20 20",items:[{type:"container",layout:"flex",direction:"column",align:"center",spacing:10,items:[{text:"Browse for an image",type:"browsebutton",accept:Oe,onchange:Ie(e)},{text:"OR",type:"label"}]},{text:"Drop an image here",type:"dropzone",accept:Oe,height:100,onchange:Ie(e)}]}},Pe=function(o){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=new Array(arguments.length-1),n=1;n<arguments.length;n++)i[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=ar
 guments[r];var a=i.concat(n);return o.apply(null,a)}},Ue=function(t,e){var n=e.control.getRoot();ve(n),t.undoManager.transact(function(){var e=E(ie(t),n.toJSON());ue(t,e)}),t.editorUpload.uploadImagesAuto()};function Ee(o){function e(e){var n,t,r=ie(o);if(e&&(t={type:"listbox",label:"Image list",name:"image-list",values:_(e,function(e){e.value=o.convertURL(e.value||e.url,"src")},[{text:"None",value:""}]),value:r.src&&o.convertURL(r.src,"src"),onselect:function(e){var t=n.find("#alt");(!t.value()||e.lastControl&&t.value()===e.lastControl.text())&&t.value(e.control.text()),n.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){t=this}}),i(o)||u(o)||c(o)){var a=[xe(o,t)];i(o)&&a.push(se(o)),(u(o)||c(o))&&a.push(Le(o)),n=o.windowManager.open({title:"Insert/edit image",data:r,bodyType:"tabpanel",bo
 dy:a,onSubmit:Pe(Ue,o)})}else n=o.windowManager.open({title:"Insert/edit image",data:r,body:we(o,t),onSubmit:Pe(Ue,o)});he(n)}return{open:function(){I(o,e)}}}var ke=function(e){e.addCommand("mceImage",Ee(e).open)},Me=function(o){return function(e){for(var t,n,r=e.length,a=function(e){e.attr("contenteditable",o?"true":null)};r--;)t=e[r],(n=t.attr("class"))&&/\bimage\b/.test(n)&&(t.attr("contenteditable",o?"false":null),w.each(t.getAll("figcaption"),a))}},De=function(e){e.on("preInit",function(){e.parser.addNodeFilter("figure",Me(!0)),e.serializer.addNodeFilter("figure",Me(!1))})},ze=function(e){e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:Ee(e).open,stateSelector:"img:not([data-mce-object],[data-mce-placeholder]),figure.image"}),e.addMenuItem("image",{icon:"image",text:"I
 mage",onclick:Ee(e).open,context:"insert",prependToContext:!0})};e.add("image",function(e){De(e),ze(e),ke(e)})}();
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginslinkpluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js      2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js        2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -48,7 +48,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var allowUnsafeLinkTarget = function (editorSettings) {
</span><span class="cx" style="display: block; padding: 0 10px">     return typeof editorSettings.allow_unsafe_link_target === 'boolean' ? editorSettings.allow_unsafe_link_target : false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ae1yh4f3jfuw8pj4 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1b4wbxfvjjgwechi = {
</ins><span class="cx" style="display: block; padding: 0 10px">     assumeExternalTargets: assumeExternalTargets,
</span><span class="cx" style="display: block; padding: 0 10px">     hasContextToolbar: hasContextToolbar,
</span><span class="cx" style="display: block; padding: 0 10px">     getLinkList: getLinkList,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -74,7 +74,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     link.dispatchEvent(evt);
</span><span class="cx" style="display: block; padding: 0 10px">     document.body.removeChild(link);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var open = function (url) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var open$$1 = function (url) {
</ins><span class="cx" style="display: block; padding: 0 10px">     if (!global$3.ie || global$3.ie > 10) {
</span><span class="cx" style="display: block; padding: 0 10px">       var link = document.createElement('a');
</span><span class="cx" style="display: block; padding: 0 10px">       link.target = '_blank';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -94,7 +94,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2ksejbf4jfuw8pj6 = { open: open };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_du0gebfwjjgwechl = { open: open$$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -158,7 +158,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           class: data.class ? data.class : null,
</span><span class="cx" style="display: block; padding: 0 10px">           title: data.title ? data.title : null
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!$_ae1yh4f3jfuw8pj4.hasRelList(editor.settings) && $_ae1yh4f3jfuw8pj4.allowUnsafeLinkTarget(editor.settings) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!$_1b4wbxfvjjgwechi.hasRelList(editor.settings) && $_1b4wbxfvjjgwechi.allowUnsafeLinkTarget(editor.settings) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">           linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target === '_blank');
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (data.href === attachState.href) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -221,7 +221,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       a.appendChild(img);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fs5xf5f7jfuw8pjf = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5298ug0jjgweci0 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     link: link,
</span><span class="cx" style="display: block; padding: 0 10px">     unlink: unlink,
</span><span class="cx" style="display: block; padding: 0 10px">     isLink: isLink,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -238,7 +238,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var attachState = {};
</span><span class="cx" style="display: block; padding: 0 10px">   var createLinkList = function (editor, callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var linkList = $_ae1yh4f3jfuw8pj4.getLinkList(editor.settings);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var linkList = $_1b4wbxfvjjgwechi.getLinkList(editor.settings);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (typeof linkList === 'string') {
</span><span class="cx" style="display: block; padding: 0 10px">       global$6.send({
</span><span class="cx" style="display: block; padding: 0 10px">         url: linkList,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -355,14 +355,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var onBeforeCall = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       e.meta = win.toJSON();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    onlyText = $_fs5xf5f7jfuw8pjf.isOnlyTextSelected(selection.getContent());
-    anchorElm = $_fs5xf5f7jfuw8pjf.getAnchorElement(editor);
-    data.text = initialText = $_fs5xf5f7jfuw8pjf.getAnchorText(editor.selection, anchorElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    onlyText = $_5298ug0jjgweci0.isOnlyTextSelected(selection.getContent());
+    anchorElm = $_5298ug0jjgweci0.getAnchorElement(editor);
+    data.text = initialText = $_5298ug0jjgweci0.getAnchorText(editor.selection, anchorElm);
</ins><span class="cx" style="display: block; padding: 0 10px">     data.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : '';
</span><span class="cx" style="display: block; padding: 0 10px">     if (anchorElm) {
</span><span class="cx" style="display: block; padding: 0 10px">       data.target = dom.getAttrib(anchorElm, 'target');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_ae1yh4f3jfuw8pj4.hasDefaultLinkTarget(editor.settings)) {
-      data.target = $_ae1yh4f3jfuw8pj4.getDefaultLinkTarget(editor.settings);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_1b4wbxfvjjgwechi.hasDefaultLinkTarget(editor.settings)) {
+      data.target = $_1b4wbxfvjjgwechi.getDefaultLinkTarget(editor.settings);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (value = dom.getAttrib(anchorElm, 'rel')) {
</span><span class="cx" style="display: block; padding: 0 10px">       data.rel = value;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -401,9 +401,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ae1yh4f3jfuw8pj4.shouldShowTargetList(editor.settings)) {
-      if ($_ae1yh4f3jfuw8pj4.getTargetList(editor.settings) === undefined) {
-        $_ae1yh4f3jfuw8pj4.setTargetList(editor, [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1b4wbxfvjjgwechi.shouldShowTargetList(editor.settings)) {
+      if ($_1b4wbxfvjjgwechi.getTargetList(editor.settings) === undefined) {
+        $_1b4wbxfvjjgwechi.setTargetList(editor, [
</ins><span class="cx" style="display: block; padding: 0 10px">           {
</span><span class="cx" style="display: block; padding: 0 10px">             text: 'None',
</span><span class="cx" style="display: block; padding: 0 10px">             value: ''
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -418,27 +418,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'target',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'listbox',
</span><span class="cx" style="display: block; padding: 0 10px">         label: 'Target',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        values: buildListItems($_ae1yh4f3jfuw8pj4.getTargetList(editor.settings))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        values: buildListItems($_1b4wbxfvjjgwechi.getTargetList(editor.settings))
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ae1yh4f3jfuw8pj4.hasRelList(editor.settings)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1b4wbxfvjjgwechi.hasRelList(editor.settings)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       relListCtrl = {
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'rel',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'listbox',
</span><span class="cx" style="display: block; padding: 0 10px">         label: 'Rel',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        values: buildListItems($_ae1yh4f3jfuw8pj4.getRelList(editor.settings), function (item) {
-          if ($_ae1yh4f3jfuw8pj4.allowUnsafeLinkTarget(editor.settings) === false) {
-            item.value = $_fs5xf5f7jfuw8pjf.toggleTargetRules(item.value, data.target === '_blank');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        values: buildListItems($_1b4wbxfvjjgwechi.getRelList(editor.settings), function (item) {
+          if ($_1b4wbxfvjjgwechi.allowUnsafeLinkTarget(editor.settings) === false) {
+            item.value = $_5298ug0jjgweci0.toggleTargetRules(item.value, data.target === '_blank');
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         })
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ae1yh4f3jfuw8pj4.hasLinkClassList(editor.settings)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1b4wbxfvjjgwechi.hasLinkClassList(editor.settings)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       classListCtrl = {
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'class',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'listbox',
</span><span class="cx" style="display: block; padding: 0 10px">         label: 'Class',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        values: buildListItems($_ae1yh4f3jfuw8pj4.getLinkClassList(editor.settings), function (item) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        values: buildListItems($_1b4wbxfvjjgwechi.getLinkClassList(editor.settings), function (item) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (item.value) {
</span><span class="cx" style="display: block; padding: 0 10px">             item.textStyle = function () {
</span><span class="cx" style="display: block; padding: 0 10px">               return editor.formatter.getCssText({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -450,7 +450,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         })
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ae1yh4f3jfuw8pj4.shouldShowLinkTitle(editor.settings)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1b4wbxfvjjgwechi.shouldShowLinkTitle(editor.settings)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       linkTitleCtrl = {
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'title',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'textbox',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -483,9 +483,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         classListCtrl
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       onSubmit: function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var assumeExternalTargets = $_ae1yh4f3jfuw8pj4.assumeExternalTargets(editor.settings);
-        var insertLink = $_fs5xf5f7jfuw8pjf.link(editor, attachState);
-        var removeLink = $_fs5xf5f7jfuw8pjf.unlink(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var assumeExternalTargets = $_1b4wbxfvjjgwechi.assumeExternalTargets(editor.settings);
+        var insertLink = $_5298ug0jjgweci0.link(editor, attachState);
+        var removeLink = $_5298ug0jjgweci0.unlink(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         var resultData = global$4.extend({}, data, e.data);
</span><span class="cx" style="display: block; padding: 0 10px">         var href = resultData.href;
</span><span class="cx" style="display: block; padding: 0 10px">         if (!href) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -520,7 +520,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var open$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     createLinkList(editor, showDialog);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3kgdixf9jfuw8pjm = { open: open$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_dxaplrg2jjgweci6 = { open: open$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getLink = function (editor, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.dom.getParent(elm, 'a[href]');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -548,13 +548,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">           editor.selection.scrollIntoView(targetEl[0], true);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_2ksejbf4jfuw8pj6.open(a.href);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_du0gebfwjjgwechl.open(a.href);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var openDialog = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_3kgdixf9jfuw8pjm.open(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_dxaplrg2jjgweci6.open(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var gotoSelectedLink = function (editor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -565,7 +565,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var leftClickedOnAHref = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">       var sel, rng, node;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ae1yh4f3jfuw8pj4.hasContextToolbar(editor.settings) && !isContextMenuVisible(editor) && $_fs5xf5f7jfuw8pjf.isLink(elm)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_1b4wbxfvjjgwechi.hasContextToolbar(editor.settings) && !isContextMenuVisible(editor) && $_5298ug0jjgweci0.isLink(elm)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         sel = editor.selection;
</span><span class="cx" style="display: block; padding: 0 10px">         rng = sel.getRng();
</span><span class="cx" style="display: block; padding: 0 10px">         node = rng.startContainer;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -596,7 +596,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('nodechange', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.active(!editor.readonly && !!$_fs5xf5f7jfuw8pjf.getAnchorElement(editor, e.element));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.active(!editor.readonly && !!$_5298ug0jjgweci0.getAnchorElement(editor, e.element));
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -604,13 +604,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">       var toggleVisibility = function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_fs5xf5f7jfuw8pjf.hasLinks(e.parents)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_5298ug0jjgweci0.hasLinks(e.parents)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           self.show();
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           self.hide();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!$_fs5xf5f7jfuw8pjf.hasLinks(editor.dom.getParents(editor.selection.getStart()))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!$_5298ug0jjgweci0.hasLinks(editor.dom.getParents(editor.selection.getStart()))) {
</ins><span class="cx" style="display: block; padding: 0 10px">         self.hide();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('nodechange', toggleVisibility);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -619,7 +619,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_auu7ckf1jfuw8pj0 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8hceq8ftjjgweche = {
</ins><span class="cx" style="display: block; padding: 0 10px">     openDialog: openDialog,
</span><span class="cx" style="display: block; padding: 0 10px">     gotoSelectedLink: gotoSelectedLink,
</span><span class="cx" style="display: block; padding: 0 10px">     leftClickedOnAHref: leftClickedOnAHref,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -629,14 +629,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    editor.addCommand('mceLink', $_auu7ckf1jfuw8pj0.openDialog(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.addCommand('mceLink', $_8hceq8ftjjgweche.openDialog(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4bbs70f0jfuw8piz = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_bauc80fsjjgwechc = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setup = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    editor.addShortcut('Meta+K', '', $_auu7ckf1jfuw8pj0.openDialog(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.addShortcut('Meta+K', '', $_8hceq8ftjjgweche.openDialog(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7rlm6qfcjfuw8pjt = { setup: setup };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_49u4p1g5jjgwecie = { setup: setup };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setupButtons = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addButton('link', {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -643,21 +643,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">       active: false,
</span><span class="cx" style="display: block; padding: 0 10px">       icon: 'link',
</span><span class="cx" style="display: block; padding: 0 10px">       tooltip: 'Insert/edit link',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      onclick: $_auu7ckf1jfuw8pj0.openDialog(editor),
-      onpostrender: $_auu7ckf1jfuw8pj0.toggleActiveState(editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      onclick: $_8hceq8ftjjgweche.openDialog(editor),
+      onpostrender: $_8hceq8ftjjgweche.toggleActiveState(editor)
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addButton('unlink', {
</span><span class="cx" style="display: block; padding: 0 10px">       active: false,
</span><span class="cx" style="display: block; padding: 0 10px">       icon: 'unlink',
</span><span class="cx" style="display: block; padding: 0 10px">       tooltip: 'Remove link',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      onclick: $_fs5xf5f7jfuw8pjf.unlink(editor),
-      onpostrender: $_auu7ckf1jfuw8pj0.toggleActiveState(editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      onclick: $_5298ug0jjgweci0.unlink(editor),
+      onpostrender: $_8hceq8ftjjgweche.toggleActiveState(editor)
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.addContextToolbar) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.addButton('openlink', {
</span><span class="cx" style="display: block; padding: 0 10px">         icon: 'newtab',
</span><span class="cx" style="display: block; padding: 0 10px">         tooltip: 'Open link',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onclick: $_auu7ckf1jfuw8pj0.gotoSelectedLink(editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onclick: $_8hceq8ftjjgweche.gotoSelectedLink(editor)
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -665,8 +665,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addMenuItem('openlink', {
</span><span class="cx" style="display: block; padding: 0 10px">       text: 'Open link',
</span><span class="cx" style="display: block; padding: 0 10px">       icon: 'newtab',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      onclick: $_auu7ckf1jfuw8pj0.gotoSelectedLink(editor),
-      onPostRender: $_auu7ckf1jfuw8pj0.toggleViewLinkState(editor),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      onclick: $_8hceq8ftjjgweche.gotoSelectedLink(editor),
+      onPostRender: $_8hceq8ftjjgweche.toggleViewLinkState(editor),
</ins><span class="cx" style="display: block; padding: 0 10px">       prependToContext: true
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addMenuItem('link', {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -673,7 +673,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       icon: 'link',
</span><span class="cx" style="display: block; padding: 0 10px">       text: 'Link',
</span><span class="cx" style="display: block; padding: 0 10px">       shortcut: 'Meta+K',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      onclick: $_auu7ckf1jfuw8pj0.openDialog(editor),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      onclick: $_8hceq8ftjjgweche.openDialog(editor),
</ins><span class="cx" style="display: block; padding: 0 10px">       stateSelector: 'a[href]',
</span><span class="cx" style="display: block; padding: 0 10px">       context: 'insert',
</span><span class="cx" style="display: block; padding: 0 10px">       prependToContext: true
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -681,16 +681,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addMenuItem('unlink', {
</span><span class="cx" style="display: block; padding: 0 10px">       icon: 'unlink',
</span><span class="cx" style="display: block; padding: 0 10px">       text: 'Remove link',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      onclick: $_fs5xf5f7jfuw8pjf.unlink(editor),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      onclick: $_5298ug0jjgweci0.unlink(editor),
</ins><span class="cx" style="display: block; padding: 0 10px">       stateSelector: 'a[href]'
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setupContextToolbars = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.addContextToolbar) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.addContextToolbar($_auu7ckf1jfuw8pj0.leftClickedOnAHref(editor), 'openlink | link unlink');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.addContextToolbar($_8hceq8ftjjgweche.leftClickedOnAHref(editor), 'openlink | link unlink');
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dz7svyfdjfuw8pju = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_bn93cg6jjgwecif = {
</ins><span class="cx" style="display: block; padding: 0 10px">     setupButtons: setupButtons,
</span><span class="cx" style="display: block; padding: 0 10px">     setupMenuItems: setupMenuItems,
</span><span class="cx" style="display: block; padding: 0 10px">     setupContextToolbars: setupContextToolbars
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -697,12 +697,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('link', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_dz7svyfdjfuw8pju.setupButtons(editor);
-    $_dz7svyfdjfuw8pju.setupMenuItems(editor);
-    $_dz7svyfdjfuw8pju.setupContextToolbars(editor);
-    $_auu7ckf1jfuw8pj0.setupGotoLinks(editor);
-    $_4bbs70f0jfuw8piz.register(editor);
-    $_7rlm6qfcjfuw8pjt.setup(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_bn93cg6jjgwecif.setupButtons(editor);
+    $_bn93cg6jjgwecif.setupMenuItems(editor);
+    $_bn93cg6jjgwecif.setupContextToolbars(editor);
+    $_8hceq8ftjjgweche.setupGotoLinks(editor);
+    $_bauc80fsjjgwechc.register(editor);
+    $_49u4p1g5jjgwecie.setup(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginslistspluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js     2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js       2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -62,7 +62,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isChildOfBody = function (dom, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return dom.isChildOf(elm, dom.getRoot());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fmlqy7fsjfuw8plr = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_okk1ogljjgweckx = {
</ins><span class="cx" style="display: block; padding: 0 10px">     isTextNode: isTextNode,
</span><span class="cx" style="display: block; padding: 0 10px">     isListNode: isListNode,
</span><span class="cx" style="display: block; padding: 0 10px">     isListItemNode: isListItemNode,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -79,7 +79,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getNormalizedEndPoint = function (container, offset) {
</span><span class="cx" style="display: block; padding: 0 10px">     var node = global$1.getNode(container, offset);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isListItemNode(container) && $_fmlqy7fsjfuw8plr.isTextNode(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isListItemNode(container) && $_okk1ogljjgweckx.isTextNode(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var textNodeOffset = offset >= container.childNodes.length ? node.data.length : 0;
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         container: node,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -99,7 +99,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     outRng.setEnd(rangeEnd.container, rangeEnd.offset);
</span><span class="cx" style="display: block; padding: 0 10px">     return outRng;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_14fh94frjfuw8plp = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_a9cyhvgkjjgweckv = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getNormalizedEndPoint: getNormalizedEndPoint,
</span><span class="cx" style="display: block; padding: 0 10px">     normalizeRange: normalizeRange
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -174,9 +174,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (bookmark.endContainer) {
</span><span class="cx" style="display: block; padding: 0 10px">       rng.setEnd(bookmark.endContainer, bookmark.endOffset);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_14fh94frjfuw8plp.normalizeRange(rng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_a9cyhvgkjjgweckv.normalizeRange(rng);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3byghwfqjfuw8pln = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2nx1i4gjjjgweckt = {
</ins><span class="cx" style="display: block; padding: 0 10px">     createBookmark: createBookmark,
</span><span class="cx" style="display: block; padding: 0 10px">     resolveBookmark: resolveBookmark
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -189,7 +189,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       sibling = parentNode.previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">       if (sibling && sibling.nodeName === 'LI') {
</span><span class="cx" style="display: block; padding: 0 10px">         sibling.appendChild(ul);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_fmlqy7fsjfuw8plr.isEmpty(dom, parentNode)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_okk1ogljjgweckx.isEmpty(dom, parentNode)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           DOM$1.remove(parentNode);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -196,7 +196,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         DOM$1.setStyle(parentNode, 'listStyleType', 'none');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isListNode(parentNode)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isListNode(parentNode)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       sibling = parentNode.previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">       if (sibling && sibling.nodeName === 'LI') {
</span><span class="cx" style="display: block; padding: 0 10px">         sibling.appendChild(ul);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -208,7 +208,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       normalizeList(dom, ul);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7p90zmftjfuw8plu = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ekd4wzgmjjgwecl1 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     normalizeList: normalizeList,
</span><span class="cx" style="display: block; padding: 0 10px">     normalizeLists: normalizeLists
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -224,7 +224,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findSubLists = function (parentList) {
</span><span class="cx" style="display: block; padding: 0 10px">     return global$5.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_fmlqy7fsjfuw8plr.isListNode(elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_okk1ogljjgweckx.isListNode(elm);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getSelectedSubLists = function (editor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -234,7 +234,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return findSubLists(parentList);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return global$5.grep(selectedBlocks, function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_fmlqy7fsjfuw8plr.isListNode(elm) && parentList !== elm;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_okk1ogljjgweckx.isListNode(elm) && parentList !== elm;
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -248,7 +248,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getSelectedListItems = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var selectedBlocks = editor.selection.getSelectedBlocks();
</span><span class="cx" style="display: block; padding: 0 10px">     return global$5.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_fmlqy7fsjfuw8plr.isListItemNode(block);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_okk1ogljjgweckx.isListItemNode(block);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getClosestListRootElm = function (editor, elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -256,7 +256,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();
</span><span class="cx" style="display: block; padding: 0 10px">     return root;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2bncsnfujfuw8plw = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3xb1cggnjjgwecl3 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getParentList: getParentList,
</span><span class="cx" style="display: block; padding: 0 10px">     getSelectedSubLists: getSelectedSubLists,
</span><span class="cx" style="display: block; padding: 0 10px">     getSelectedListItems: getSelectedListItems,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -279,7 +279,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (textBlock.tagName === editor.settings.forced_root_block) {
</span><span class="cx" style="display: block; padding: 0 10px">         DOM$2.setAttribs(textBlock, editor.settings.forced_root_block_attrs);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!$_fmlqy7fsjfuw8plr.isBlock(contentNode.firstChild, blockElements)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!$_okk1ogljjgweckx.isBlock(contentNode.firstChild, blockElements)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         fragment.appendChild(textBlock);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -289,7 +289,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {
</span><span class="cx" style="display: block; padding: 0 10px">           hasContentNode = true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_fmlqy7fsjfuw8plr.isBlock(node, blockElements)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_okk1ogljjgweckx.isBlock(node, blockElements)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           fragment.appendChild(node);
</span><span class="cx" style="display: block; padding: 0 10px">           textBlock = null;
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -314,7 +314,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return fragment;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3c0i4zfxjfuw8pm1 = { createNewTextBlock: createNewTextBlock };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_kbc02gqjjgwecl9 = { createNewTextBlock: createNewTextBlock };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$3 = global$6.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var splitList = function (editor, ul, li, newBlock) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -326,7 +326,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       DOM$3.remove(targetNode);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     bookmarks = DOM$3.select('span[data-mce-type="bookmark"]', ul);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    newBlock = newBlock || $_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    newBlock = newBlock || $_kbc02gqjjgwecl9.createNewTextBlock(editor, li);
</ins><span class="cx" style="display: block; padding: 0 10px">     tmpRng = DOM$3.createRng();
</span><span class="cx" style="display: block; padding: 0 10px">     tmpRng.setStartAfter(li);
</span><span class="cx" style="display: block; padding: 0 10px">     tmpRng.setEndAfter(ul);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -341,19 +341,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">       DOM$3.insertAfter(fragment, ul);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     DOM$3.insertAfter(newBlock, ul);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isEmpty(editor.dom, li.parentNode)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isEmpty(editor.dom, li.parentNode)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       removeAndKeepBookmarks(li.parentNode);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     DOM$3.remove(li);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isEmpty(editor.dom, ul)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isEmpty(editor.dom, ul)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       DOM$3.remove(ul);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dbkw03fwjfuw8plz = { splitList: splitList };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fikiq7gpjjgwecl5 = { splitList: splitList };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$4 = global$6.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var removeEmptyLi = function (dom, li) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isEmpty(dom, li)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isEmpty(dom, li)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       DOM$4.remove(li);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -373,37 +373,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">       DOM$4.rename(li, 'DT');
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isFirstChild(li) && $_fmlqy7fsjfuw8plr.isLastChild(li)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isFirstChild(li) && $_okk1ogljjgweckx.isLastChild(li)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (ulParent.nodeName === 'LI') {
</span><span class="cx" style="display: block; padding: 0 10px">         DOM$4.insertAfter(li, ulParent);
</span><span class="cx" style="display: block; padding: 0 10px">         removeEmptyLi(editor.dom, ulParent);
</span><span class="cx" style="display: block; padding: 0 10px">         DOM$4.remove(ul);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if ($_fmlqy7fsjfuw8plr.isListNode(ulParent)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if ($_okk1ogljjgweckx.isListNode(ulParent)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         DOM$4.remove(ul, true);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        ulParent.insertBefore($_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li), ul);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        ulParent.insertBefore($_kbc02gqjjgwecl9.createNewTextBlock(editor, li), ul);
</ins><span class="cx" style="display: block; padding: 0 10px">         DOM$4.remove(ul);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_fmlqy7fsjfuw8plr.isFirstChild(li)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_okk1ogljjgweckx.isFirstChild(li)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (ulParent.nodeName === 'LI') {
</span><span class="cx" style="display: block; padding: 0 10px">         DOM$4.insertAfter(li, ulParent);
</span><span class="cx" style="display: block; padding: 0 10px">         li.appendChild(ul);
</span><span class="cx" style="display: block; padding: 0 10px">         removeEmptyLi(editor.dom, ulParent);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if ($_fmlqy7fsjfuw8plr.isListNode(ulParent)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if ($_okk1ogljjgweckx.isListNode(ulParent)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         ulParent.insertBefore(li, ul);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        ulParent.insertBefore($_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li), ul);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        ulParent.insertBefore($_kbc02gqjjgwecl9.createNewTextBlock(editor, li), ul);
</ins><span class="cx" style="display: block; padding: 0 10px">         DOM$4.remove(li);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_fmlqy7fsjfuw8plr.isLastChild(li)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_okk1ogljjgweckx.isLastChild(li)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (ulParent.nodeName === 'LI') {
</span><span class="cx" style="display: block; padding: 0 10px">         DOM$4.insertAfter(li, ulParent);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if ($_fmlqy7fsjfuw8plr.isListNode(ulParent)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if ($_okk1ogljjgweckx.isListNode(ulParent)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         DOM$4.insertAfter(li, ul);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        DOM$4.insertAfter($_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li), ul);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        DOM$4.insertAfter($_kbc02gqjjgwecl9.createNewTextBlock(editor, li), ul);
</ins><span class="cx" style="display: block; padding: 0 10px">         DOM$4.remove(li);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -410,22 +410,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (ulParent.nodeName === 'LI') {
</span><span class="cx" style="display: block; padding: 0 10px">       ul = ulParent;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      newBlock = $_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li, 'LI');
-    } else if ($_fmlqy7fsjfuw8plr.isListNode(ulParent)) {
-      newBlock = $_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li, 'LI');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      newBlock = $_kbc02gqjjgwecl9.createNewTextBlock(editor, li, 'LI');
+    } else if ($_okk1ogljjgweckx.isListNode(ulParent)) {
+      newBlock = $_kbc02gqjjgwecl9.createNewTextBlock(editor, li, 'LI');
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      newBlock = $_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      newBlock = $_kbc02gqjjgwecl9.createNewTextBlock(editor, li);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_dbkw03fwjfuw8plz.splitList(editor, ul, li, newBlock);
-    $_7p90zmftjfuw8plu.normalizeLists(editor.dom, ul.parentNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_fikiq7gpjjgwecl5.splitList(editor, ul, li, newBlock);
+    $_ekd4wzgmjjgwecl1.normalizeLists(editor.dom, ul.parentNode);
</ins><span class="cx" style="display: block; padding: 0 10px">     return true;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var outdentSelection = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var listElements = $_2bncsnfujfuw8plw.getSelectedListItems(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var listElements = $_3xb1cggnjjgwecl3.getSelectedListItems(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (listElements.length) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var bookmark = $_2nx1i4gjjjgweckt.createBookmark(editor.selection.getRng());
</ins><span class="cx" style="display: block; padding: 0 10px">       var i = void 0, y = void 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, editor.selection.getStart(true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var root = $_3xb1cggnjjgwecl3.getClosestListRootElm(editor, editor.selection.getStart(true));
</ins><span class="cx" style="display: block; padding: 0 10px">       i = listElements.length;
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><span class="cx" style="display: block; padding: 0 10px">         var node = listElements[i].parentNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -445,12 +445,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.selection.setRng($_2nx1i4gjjjgweckt.resolveBookmark(bookmark));
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_b067pwfojfuw8plj = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6pbactghjjgweckp = {
</ins><span class="cx" style="display: block; padding: 0 10px">     outdent: outdent,
</span><span class="cx" style="display: block; padding: 0 10px">     outdentSelection: outdentSelection
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -476,8 +476,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeStyles = function (dom, element, styles) {
</span><span class="cx" style="display: block; padding: 0 10px">     global$5.each(styles, function (style) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var _a;
</ins><span class="cx" style="display: block; padding: 0 10px">       return dom.setStyle(element, (_a = {}, _a[style] = '', _a));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var _a;
</del><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getEndPointNode = function (editor, rng, start, root) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -487,11 +487,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (container.nodeType === 1) {
</span><span class="cx" style="display: block; padding: 0 10px">       container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!start && $_fmlqy7fsjfuw8plr.isBr(container.nextSibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!start && $_okk1ogljjgweckx.isBr(container.nextSibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       container = container.nextSibling;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     while (container.parentNode !== root) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_fmlqy7fsjfuw8plr.isTextBlock(editor, container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_okk1ogljjgweckx.isTextBlock(editor, container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return container;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (/^(TD|TH)$/.test(container.parentNode.nodeName)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -514,13 +514,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     global$5.each(siblings, function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_fmlqy7fsjfuw8plr.isTextBlock(editor, node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_okk1ogljjgweckx.isTextBlock(editor, node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         textBlocks.push(node);
</span><span class="cx" style="display: block; padding: 0 10px">         block = null;
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (dom.isBlock(node) || $_fmlqy7fsjfuw8plr.isBr(node)) {
-        if ($_fmlqy7fsjfuw8plr.isBr(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (dom.isBlock(node) || $_okk1ogljjgweckx.isBr(node)) {
+        if ($_okk1ogljjgweckx.isBr(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           dom.remove(node);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         block = null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -528,7 +528,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var nextSibling = node.nextSibling;
</span><span class="cx" style="display: block; padding: 0 10px">       if (global$4.isBookmarkNode(node)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_fmlqy7fsjfuw8plr.isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_okk1ogljjgweckx.isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {
</ins><span class="cx" style="display: block; padding: 0 10px">           block = null;
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -555,7 +555,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var rng = editor.selection.getRng(true);
</span><span class="cx" style="display: block; padding: 0 10px">     var bookmark;
</span><span class="cx" style="display: block; padding: 0 10px">     var listItemName = 'LI';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, editor.selection.getStart(true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var root = $_3xb1cggnjjgwecl3.getClosestListRootElm(editor, editor.selection.getStart(true));
</ins><span class="cx" style="display: block; padding: 0 10px">     var dom = editor.dom;
</span><span class="cx" style="display: block; padding: 0 10px">     if (dom.getContentEditable(editor.selection.getNode()) === 'false') {
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -564,11 +564,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (listName === 'DL') {
</span><span class="cx" style="display: block; padding: 0 10px">       listItemName = 'DT';
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    bookmark = $_3byghwfqjfuw8pln.createBookmark(rng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    bookmark = $_2nx1i4gjjjgweckt.createBookmark(rng);
</ins><span class="cx" style="display: block; padding: 0 10px">     global$5.each(getSelectedTextBlocks(editor, rng, root), function (block) {
</span><span class="cx" style="display: block; padding: 0 10px">       var listBlock, sibling;
</span><span class="cx" style="display: block; padding: 0 10px">       sibling = block.previousSibling;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (sibling && $_fmlqy7fsjfuw8plr.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (sibling && $_okk1ogljjgweckx.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         listBlock = sibling;
</span><span class="cx" style="display: block; padding: 0 10px">         block = dom.rename(block, listItemName);
</span><span class="cx" style="display: block; padding: 0 10px">         sibling.appendChild(block);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -593,12 +593,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       updateListWithDetails(dom, listBlock, detail);
</span><span class="cx" style="display: block; padding: 0 10px">       mergeWithAdjacentLists(editor.dom, listBlock);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.selection.setRng($_2nx1i4gjjjgweckt.resolveBookmark(bookmark));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeList = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng(true));
-    var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, editor.selection.getStart(true));
-    var listItems = $_2bncsnfujfuw8plw.getSelectedListItems(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var bookmark = $_2nx1i4gjjjgweckt.createBookmark(editor.selection.getRng(true));
+    var root = $_3xb1cggnjjgwecl3.getClosestListRootElm(editor, editor.selection.getStart(true));
+    var listItems = $_3xb1cggnjjgwecl3.getSelectedListItems(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     var emptyListItems = global$5.grep(listItems, function (li) {
</span><span class="cx" style="display: block; padding: 0 10px">       return editor.dom.isEmpty(li);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -606,8 +606,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return !editor.dom.isEmpty(li);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     global$5.each(emptyListItems, function (li) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_fmlqy7fsjfuw8plr.isEmpty(editor.dom, li)) {
-        $_b067pwfojfuw8plj.outdent(editor, li);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_okk1ogljjgweckx.isEmpty(editor.dom, li)) {
+        $_6pbactghjjgweckp.outdent(editor, li);
</ins><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -617,17 +617,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       for (node = li; node && node !== root; node = node.parentNode) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_fmlqy7fsjfuw8plr.isListNode(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_okk1ogljjgweckx.isListNode(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           rootList = node;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_dbkw03fwjfuw8plz.splitList(editor, rootList, li);
-      $_7p90zmftjfuw8plu.normalizeLists(editor.dom, rootList.parentNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_fikiq7gpjjgwecl5.splitList(editor, rootList, li);
+      $_ekd4wzgmjjgwecl1.normalizeLists(editor.dom, rootList.parentNode);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.selection.setRng($_2nx1i4gjjjgweckt.resolveBookmark(bookmark));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isValidLists = function (list1, list2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return list1 && list2 && $_fmlqy7fsjfuw8plr.isListNode(list1) && list1.nodeName === list2.nodeName;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return list1 && list2 && $_okk1ogljjgweckx.isListNode(list1) && list1.nodeName === list2.nodeName;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasSameListStyle = function (dom, list1, list2) {
</span><span class="cx" style="display: block; padding: 0 10px">     var targetStyle = dom.getStyle(list1, 'list-style-type', true);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -669,11 +669,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (parentList.nodeName === listName && !hasListStyleDetail(detail)) {
</span><span class="cx" style="display: block; padding: 0 10px">       removeList(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng(true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var bookmark = $_2nx1i4gjjjgweckt.createBookmark(editor.selection.getRng(true));
</ins><span class="cx" style="display: block; padding: 0 10px">       global$5.each([parentList].concat(lists), function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">         updateList(editor.dom, elm, listName, detail);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.selection.setRng($_2nx1i4gjjjgweckt.resolveBookmark(bookmark));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasListStyleDetail = function (detail) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -687,10 +687,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (parentList.nodeName === listName && !hasListStyleDetail(detail)) {
</span><span class="cx" style="display: block; padding: 0 10px">         removeList(editor);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng(true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var bookmark = $_2nx1i4gjjjgweckt.createBookmark(editor.selection.getRng(true));
</ins><span class="cx" style="display: block; padding: 0 10px">         updateListWithDetails(editor.dom, parentList, detail);
</span><span class="cx" style="display: block; padding: 0 10px">         mergeWithAdjacentLists(editor.dom, editor.dom.rename(parentList, listName));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        editor.selection.setRng($_2nx1i4gjjjgweckt.resolveBookmark(bookmark));
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       applyList(editor, listName, detail);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -697,8 +697,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var toggleList = function (editor, listName, detail) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var parentList = $_2bncsnfujfuw8plw.getParentList(editor);
-    var selectedSubLists = $_2bncsnfujfuw8plw.getSelectedSubLists(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var parentList = $_3xb1cggnjjgwecl3.getParentList(editor);
+    var selectedSubLists = $_3xb1cggnjjgwecl3.getSelectedSubLists(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     detail = detail ? detail : {};
</span><span class="cx" style="display: block; padding: 0 10px">     if (parentList && selectedSubLists.length > 0) {
</span><span class="cx" style="display: block; padding: 0 10px">       toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -706,7 +706,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       toggleSingleList(editor, parentList, listName, detail);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8qbnsrfljfuw8plb = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_aek3i3gejjgwecki = {
</ins><span class="cx" style="display: block; padding: 0 10px">     toggleList: toggleList,
</span><span class="cx" style="display: block; padding: 0 10px">     removeList: removeList,
</span><span class="cx" style="display: block; padding: 0 10px">     mergeWithAdjacentLists: mergeWithAdjacentLists
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -725,7 +725,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     walker = new global$2(node, root);
</span><span class="cx" style="display: block; padding: 0 10px">     if (isForward) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_fmlqy7fsjfuw8plr.isBogusBr(editor.dom, node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_okk1ogljjgweckx.isBogusBr(editor.dom, node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         walker.next();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -743,7 +743,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasOnlyOneBlockChild = function (dom, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var childNodes = elm.childNodes;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return childNodes.length === 1 && !$_fmlqy7fsjfuw8plr.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return childNodes.length === 1 && !$_okk1ogljjgweckx.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var unwrapSingleBlockChild = function (dom, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (hasOnlyOneBlockChild(dom, elm)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -754,7 +754,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var node, targetElm;
</span><span class="cx" style="display: block; padding: 0 10px">     targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;
</span><span class="cx" style="display: block; padding: 0 10px">     unwrapSingleBlockChild(dom, fromElm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_fmlqy7fsjfuw8plr.isEmpty(dom, fromElm, true)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_okk1ogljjgweckx.isEmpty(dom, fromElm, true)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       while (node = fromElm.firstChild) {
</span><span class="cx" style="display: block; padding: 0 10px">         targetElm.appendChild(node);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -763,22 +763,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeLiElements = function (dom, fromElm, toElm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var node, listNode;
</span><span class="cx" style="display: block; padding: 0 10px">     var ul = fromElm.parentNode;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_fmlqy7fsjfuw8plr.isChildOfBody(dom, fromElm) || !$_fmlqy7fsjfuw8plr.isChildOfBody(dom, toElm)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_okk1ogljjgweckx.isChildOfBody(dom, fromElm) || !$_okk1ogljjgweckx.isChildOfBody(dom, toElm)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isListNode(toElm.lastChild)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isListNode(toElm.lastChild)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       listNode = toElm.lastChild;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (ul === toElm.lastChild) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_fmlqy7fsjfuw8plr.isBr(ul.previousSibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_okk1ogljjgweckx.isBr(ul.previousSibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         dom.remove(ul.previousSibling);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     node = toElm.lastChild;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (node && $_fmlqy7fsjfuw8plr.isBr(node) && fromElm.hasChildNodes()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (node && $_okk1ogljjgweckx.isBr(node) && fromElm.hasChildNodes()) {
</ins><span class="cx" style="display: block; padding: 0 10px">       dom.remove(node);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isEmpty(dom, toElm, true)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isEmpty(dom, toElm, true)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       dom.$(toElm).empty();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     moveChildren(dom, fromElm, toElm);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -786,7 +786,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       toElm.appendChild(listNode);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     dom.remove(fromElm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isEmpty(dom, ul) && ul !== dom.getRoot()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isEmpty(dom, ul) && ul !== dom.getRoot()) {
</ins><span class="cx" style="display: block; padding: 0 10px">       dom.remove(ul);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -800,29 +800,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (dom.isEmpty(toLi)) {
</span><span class="cx" style="display: block; padding: 0 10px">       mergeIntoEmptyLi(editor, fromLi, toLi);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var bookmark = $_3byghwfqjfuw8pln.createBookmark(rng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var bookmark = $_2nx1i4gjjjgweckt.createBookmark(rng);
</ins><span class="cx" style="display: block; padding: 0 10px">       mergeLiElements(dom, fromLi, toLi);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.selection.setRng($_2nx1i4gjjjgweckt.resolveBookmark(bookmark));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeBackward = function (editor, rng, fromLi, toLi) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var bookmark = $_3byghwfqjfuw8pln.createBookmark(rng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var bookmark = $_2nx1i4gjjjgweckt.createBookmark(rng);
</ins><span class="cx" style="display: block; padding: 0 10px">     mergeLiElements(editor.dom, fromLi, toLi);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var resolvedBookmark = $_3byghwfqjfuw8pln.resolveBookmark(bookmark);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var resolvedBookmark = $_2nx1i4gjjjgweckt.resolveBookmark(bookmark);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.selection.setRng(resolvedBookmark);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDeleteFromListToListCaret = function (editor, isForward) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = editor.dom, selection = editor.selection;
</span><span class="cx" style="display: block; padding: 0 10px">     var selectionStartElm = selection.getStart();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, selectionStartElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var root = $_3xb1cggnjjgwecl3.getClosestListRootElm(editor, selectionStartElm);
</ins><span class="cx" style="display: block; padding: 0 10px">     var li = dom.getParent(selection.getStart(), 'LI', root);
</span><span class="cx" style="display: block; padding: 0 10px">     var ul, rng, otherLi;
</span><span class="cx" style="display: block; padding: 0 10px">     if (li) {
</span><span class="cx" style="display: block; padding: 0 10px">       ul = li.parentNode;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (ul === editor.getBody() && $_fmlqy7fsjfuw8plr.isEmpty(dom, ul)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (ul === editor.getBody() && $_okk1ogljjgweckx.isEmpty(dom, ul)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      rng = $_14fh94frjfuw8plp.normalizeRange(selection.getRng(true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      rng = $_a9cyhvgkjjgweckv.normalizeRange(selection.getRng(true));
</ins><span class="cx" style="display: block; padding: 0 10px">       otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);
</span><span class="cx" style="display: block; padding: 0 10px">       if (otherLi && otherLi !== li) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (isForward) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -832,7 +832,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (!otherLi) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!isForward && $_8qbnsrfljfuw8plb.removeList(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!isForward && $_aek3i3gejjgwecki.removeList(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -849,15 +849,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDeleteIntoListCaret = function (editor, isForward) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = editor.dom;
</span><span class="cx" style="display: block; padding: 0 10px">     var selectionStartElm = editor.selection.getStart();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, selectionStartElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var root = $_3xb1cggnjjgwecl3.getClosestListRootElm(editor, selectionStartElm);
</ins><span class="cx" style="display: block; padding: 0 10px">     var block = dom.getParent(selectionStartElm, dom.isBlock, root);
</span><span class="cx" style="display: block; padding: 0 10px">     if (block && dom.isEmpty(block)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var rng = $_14fh94frjfuw8plp.normalizeRange(editor.selection.getRng(true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var rng = $_a9cyhvgkjjgweckv.normalizeRange(editor.selection.getRng(true));
</ins><span class="cx" style="display: block; padding: 0 10px">       var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);
</span><span class="cx" style="display: block; padding: 0 10px">       if (otherLi_1) {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.undoManager.transact(function () {
</span><span class="cx" style="display: block; padding: 0 10px">           removeBlock(dom, block, root);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_8qbnsrfljfuw8plb.mergeWithAdjacentLists(dom, otherLi_1.parentNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_aek3i3gejjgwecki.mergeWithAdjacentLists(dom, otherLi_1.parentNode);
</ins><span class="cx" style="display: block; padding: 0 10px">           editor.selection.select(otherLi_1, true);
</span><span class="cx" style="display: block; padding: 0 10px">           editor.selection.collapse(isForward);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -871,12 +871,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDeleteRange = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var selectionStartElm = editor.selection.getStart();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, selectionStartElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var root = $_3xb1cggnjjgwecl3.getClosestListRootElm(editor, selectionStartElm);
</ins><span class="cx" style="display: block; padding: 0 10px">     var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (startListParent || $_2bncsnfujfuw8plw.getSelectedListItems(editor).length > 0) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (startListParent || $_3xb1cggnjjgwecl3.getSelectedListItems(editor).length > 0) {
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.undoManager.transact(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.execCommand('Delete');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_7p90zmftjfuw8plu.normalizeLists(editor.dom, editor.getBody());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_ekd4wzgmjjgwecl1.normalizeLists(editor.dom, editor.getBody());
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -898,7 +898,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6qu3vpfhjfuw8pl2 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_brhyezgajjgweck7 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     setup: setup,
</span><span class="cx" style="display: block; padding: 0 10px">     backspaceDelete: backspaceDelete
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -906,16 +906,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var get = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       backspaceDelete: function (isForward) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_6qu3vpfhjfuw8pl2.backspaceDelete(editor, isForward);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_brhyezgajjgweck7.backspaceDelete(editor, isForward);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bgmttlfgjfuw8pl0 = { get: get };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_nb3yvg9jjgweck5 = { get: get };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$5 = global$6.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeLists = function (from, to) {
</span><span class="cx" style="display: block; padding: 0 10px">     var node;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_fmlqy7fsjfuw8plr.isListNode(from)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_okk1ogljjgweckx.isListNode(from)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       while (node = from.firstChild) {
</span><span class="cx" style="display: block; padding: 0 10px">         to.appendChild(node);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -929,17 +929,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     sibling = li.previousSibling;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (sibling && $_fmlqy7fsjfuw8plr.isListNode(sibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (sibling && $_okk1ogljjgweckx.isListNode(sibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       sibling.appendChild(li);
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (sibling && sibling.nodeName === 'LI' && $_fmlqy7fsjfuw8plr.isListNode(sibling.lastChild)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (sibling && sibling.nodeName === 'LI' && $_okk1ogljjgweckx.isListNode(sibling.lastChild)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       sibling.lastChild.appendChild(li);
</span><span class="cx" style="display: block; padding: 0 10px">       mergeLists(li.lastChild, sibling.lastChild);
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     sibling = li.nextSibling;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (sibling && $_fmlqy7fsjfuw8plr.isListNode(sibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (sibling && $_okk1ogljjgweckx.isListNode(sibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       sibling.insertBefore(li, sibling.firstChild);
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -958,20 +958,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var indentSelection = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var listElements = $_2bncsnfujfuw8plw.getSelectedListItems(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var listElements = $_3xb1cggnjjgwecl3.getSelectedListItems(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (listElements.length) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng(true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var bookmark = $_2nx1i4gjjjgweckt.createBookmark(editor.selection.getRng(true));
</ins><span class="cx" style="display: block; padding: 0 10px">       for (var i = 0; i < listElements.length; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!indent(listElements[i]) && i === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.selection.setRng($_2nx1i4gjjjgweckt.resolveBookmark(bookmark));
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4zf6mug0jfuw8pm7 = { indentSelection: indentSelection };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3rkwagtjjgweclf = { indentSelection: indentSelection };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var queryListCommandState = function (editor, listName) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -984,11 +984,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var cmd = e.command.toLowerCase();
</span><span class="cx" style="display: block; padding: 0 10px">       var isHandled;
</span><span class="cx" style="display: block; padding: 0 10px">       if (cmd === 'indent') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_4zf6mug0jfuw8pm7.indentSelection(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_3rkwagtjjgweclf.indentSelection(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           isHandled = true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (cmd === 'outdent') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_b067pwfojfuw8plj.outdentSelection(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_6pbactghjjgweckp.outdentSelection(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           isHandled = true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -999,24 +999,24 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('InsertUnorderedList', function (ui, detail) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_8qbnsrfljfuw8plb.toggleList(editor, 'UL', detail);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_aek3i3gejjgwecki.toggleList(editor, 'UL', detail);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('InsertOrderedList', function (ui, detail) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_8qbnsrfljfuw8plb.toggleList(editor, 'OL', detail);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_aek3i3gejjgwecki.toggleList(editor, 'OL', detail);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('InsertDefinitionList', function (ui, detail) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_8qbnsrfljfuw8plb.toggleList(editor, 'DL', detail);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_aek3i3gejjgwecki.toggleList(editor, 'DL', detail);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ci56e3fzjfuw8pm5 = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_blnfs1gsjjgwecld = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var shouldIndentOnTab = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.getParam('lists_indent_on_tab', true);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_e85xmvg2jfuw8pmc = { shouldIndentOnTab: shouldIndentOnTab };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8obsbgvjjgweclk = { shouldIndentOnTab: shouldIndentOnTab };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setupTabKey = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('keydown', function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1026,20 +1026,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (editor.dom.getParent(editor.selection.getStart(), 'LI,DT,DD')) {
</span><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">         if (e.shiftKey) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_b067pwfojfuw8plj.outdentSelection(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_6pbactghjjgweckp.outdentSelection(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_4zf6mug0jfuw8pm7.indentSelection(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_3rkwagtjjgweclf.indentSelection(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setup$1 = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_e85xmvg2jfuw8pmc.shouldIndentOnTab(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_8obsbgvjjgweclk.shouldIndentOnTab(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       setupTabKey(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_6qu3vpfhjfuw8pl2.setup(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_brhyezgajjgweck7.setup(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1iz32kg1jfuw8pma = { setup: setup$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ees9z9gujjgwecli = { setup: setup$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var findIndex = function (list, predicate) {
</span><span class="cx" style="display: block; padding: 0 10px">     for (var index = 0; index < list.length; index++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1054,9 +1054,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       var ctrl = e.control;
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('NodeChange', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var tableCellIndex = findIndex(e.parents, $_fmlqy7fsjfuw8plr.isTableCellNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var tableCellIndex = findIndex(e.parents, $_okk1ogljjgweckx.isTableCellNode);
</ins><span class="cx" style="display: block; padding: 0 10px">         var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var lists = global$5.grep(parents, $_fmlqy7fsjfuw8plr.isListNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var lists = global$5.grep(parents, $_okk1ogljjgweckx.isListNode);
</ins><span class="cx" style="display: block; padding: 0 10px">         ctrl.active(lists.length > 0 && lists[0].nodeName === listName);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1065,8 +1065,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       var ctrl = e.control;
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('nodechange', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var listItemBlocks = $_2bncsnfujfuw8plw.getSelectedListItems(editor);
-        var disable = listItemBlocks.length > 0 && $_fmlqy7fsjfuw8plr.isFirstChild(listItemBlocks[0]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var listItemBlocks = $_3xb1cggnjjgwecl3.getSelectedListItems(editor);
+        var disable = listItemBlocks.length > 0 && $_okk1ogljjgweckx.isFirstChild(listItemBlocks[0]);
</ins><span class="cx" style="display: block; padding: 0 10px">         ctrl.disabled(disable);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1097,13 +1097,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       onPostRender: indentPostRender(editor)
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fizi9xg3jfuw8pmd = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_s7o0sgwjjgweclm = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('lists', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_1iz32kg1jfuw8pma.setup(editor);
-    $_fizi9xg3jfuw8pmd.register(editor);
-    $_ci56e3fzjfuw8pm5.register(editor);
-    return $_bgmttlfgjfuw8pl0.get(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_ees9z9gujjgwecli.setup(editor);
+    $_s7o0sgwjjgweclm.register(editor);
+    $_blnfs1gsjjgwecld.register(editor);
+    return $_nb3yvg9jjgweck5.get(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginslistspluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js 2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js   2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),l=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),n=tinymce.util.Tools.resolve("tinymce.util.VK"),p=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),o=function(e){return e&&"BR"===e.nodeName},r=function(e){return e&&3===e.nodeType},h=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},i=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},a=function(e){return e&&/^(TH|TD)$/.test(e.nodeName)},C=o,s=function(e){return e.parentNode.firstChild===e},c=function(e){return e.parentNode.lastChild===e},y=function(
 e,t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]},f=function(e,t){return e&&e.nodeName in t},u=function(e,t){return!!o(t)&&!(!e.isBlock(t.nextSibling)||o(t.previousSibling))},m=function(e,t,n){var o=e.isEmpty(t);return!(n&&0<e.select("span[data-mce-type=bookmark]",t).length)&&o},g=function(e,t){return e.isChildOf(t,e.getRoot())},N=function(e,t){var n=d.getNode(e,t);return i(e)&&r(n)?{container:n,offset:t>=e.childNodes.length?n.data.length:0}:{container:e,offset:t}},L=function(e){var t=e.cloneRange(),n=N(e.startContainer,e.startOffset);t.setStart(n.container,n.offset);var o=N(e.endContainer,e.endOffset);return t.setEnd(o.container,o.offset),t},S=t.DOM,b=function(r){var i={},e=function(e){var t,n,o;n=r[e?"startContainer":"endContainer"],o=r[e?"startOffset":"endOffset"],1===n.nodeType&&(t=S.create("span",{"data-mce-type":"bookmark"}),
 n.hasChildNodes()?(o=Math.min(o,n.childNodes.length-1),e?n.insertBefore(t,n.childNodes[o]):S.insertAfter(t,n.childNodes[o])):n.appendChild(t),n=t,o=0),i[e?"startContainer":"endContainer"]=n,i[e?"startOffset":"endOffset"]=o};return e(!0),r.collapsed||e(),i},D=function(r){function e(e){var t,n,o;t=o=r[e?"startContainer":"endContainer"],n=r[e?"startOffset":"endOffset"],t&&(1===t.nodeType&&(n=function(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t===e)return n;1===t.nodeType&&"bookmark"===t.getAttribute("data-mce-type")||n++,t=t.nextSibling}return-1}(t),t=t.parentNode,S.remove(o),!t.hasChildNodes()&&S.isBlock(t)&&t.appendChild(S.create("br"))),r[e?"startContainer":"endContainer"]=t,r[e?"startOffset":"endOffset"]=n)}e(!0),e();var t=S.createRng();return t.setStart(r.startContainer,r.startOffset),r.e
 ndContainer&&t.setEnd(r.endContainer,r.endOffset),L(t)},k=t.DOM,T=function(e,t){var n,o=t.parentNode;"LI"===o.nodeName&&o.firstChild===t&&((n=o.previousSibling)&&"LI"===n.nodeName?(n.appendChild(t),m(e,o)&&k.remove(o)):k.setStyle(o,"listStyleType","none")),h(o)&&(n=o.previousSibling)&&"LI"===n.nodeName&&n.appendChild(t)},I=function(t,e){v.each(v.grep(t.select("ol,ul",e)),function(e){T(t,e)})},B=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),R=function(e){var t=e.selection.getStart(!0);return e.dom.getParent(t,"OL,UL,DL",O(e,t))},O=function(e,t){var n=e.dom.getParents(t,"TD,TH");return 0<n.length?n[0]:e.getBody()},E={getParentList:R,getSelectedSubLists:function(e){var t,n,o,r=R(e),i=e.selection.getSelectedBlocks();return o=i,(n=r)&&1===o.length&&o[0]===n?(t=r,v.grep(t.querySelectorAll("ol,ul,dl"),fun
 ction(e){return h(e)})):v.grep(i,function(e){return h(e)&&r!==e})},getSelectedListItems:function(e){var n,t,o,r=e.selection.getSelectedBlocks();return v.grep((n=e,t=r,o=v.map(t,function(e){var t=n.dom.getParent(e,"li,dd,dt",O(n,e));return t||e}),B.unique(o)),function(e){return i(e)})},getClosestListRootElm:O},A=tinymce.util.Tools.resolve("tinymce.Env"),P=t.DOM,x=function(e,t,n){var o,r,i,a=P.createFragment(),s=e.schema.getBlockElements();if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),n&&((r=P.create(n)).tagName===e.settings.forced_root_block&&P.setAttribs(r,e.settings.forced_root_block_attrs),f(t.firstChild,s)||a.appendChild(r)),t)for(;o=t.firstChild;){var d=o.nodeName;i||"SPAN"===d&&"bookmark"===o.getAttribute("data-mce-type")||(i=!0),f(o,s)?(a.appendChild(o),r=null):n?(r||(r=P.create(n),a.appendChild(r)),r.appendChild(o)):a.appendChild(o)}return e.settings.forced_root_bl
 ock?i||A.ie&&!(10<A.ie)||r.appendChild(P.create("br",{"data-mce-bogus":"1"})):a.appendChild(P.create("br")),a},_=t.DOM,M=function(e,t,n,o){var r,i,a,s,d;for(a=_.select('span[data-mce-type="bookmark"]',t),o=o||x(e,n),(r=_.createRng()).setStartAfter(n),r.setEndAfter(t),s=(i=r.extractContents()).firstChild;s;s=s.firstChild)if("LI"===s.nodeName&&e.dom.isEmpty(s)){_.remove(s);break}e.dom.isEmpty(i)||_.insertAfter(i,t),_.insertAfter(o,t),m(e.dom,n.parentNode)&&(d=n.parentNode,v.each(a,function(e){d.parentNode.insertBefore(e,n.parentNode)}),_.remove(d)),_.remove(n),m(e.dom,t)&&_.remove(t)},U=t.DOM,H=function(e,t){m(e,t)&&U.remove(t)},$=function(e,t){var n,o,r=t.parentNode;return r?(n=r.parentNode,r===e.getBody()||("DD"===t.nodeName?U.rename(t,"DT"):s(t)&&c(t)?"LI"===n.nodeName?(U.insertAfter(t,n),H(e.dom,n),U.remove(r)):h(n)?U.remove(r,!0):(n.insertBe
 fore(x(e,t),r),U.remove(r)):s(t)?"LI"===n.nodeName?(U.insertAfter(t,n),t.appendChild(r),H(e.dom,n)):h(n)?n.insertBefore(t,r):(n.insertBefore(x(e,t),r),U.remove(t)):c(t)?"LI"===n.nodeName?U.insertAfter(t,n):h(n)?U.insertAfter(t,r):(U.insertAfter(x(e,t),r),U.remove(t)):("LI"===n.nodeName?(r=n,o=x(e,t,"LI")):o=h(n)?x(e,t,"LI"):x(e,t),M(e,r,t,o),I(e.dom,r.parentNode)))):H(e.dom,t),!0},w=$,K=function(e){var t=E.getSelectedListItems(e);if(t.length){var n=b(e.selection.getRng()),o=void 0,r=void 0,i=E.getClosestListRootElm(e,e.selection.getStart(!0));for(o=t.length;o--;)for(var a=t[o].parentNode;a&&a!==i;){for(r=t.length;r--;)if(t[r]===a){t.splice(o,1);break}a=a.parentNode}for(o=0;o<t.length&&($(e,t[o])||0!==o);o++);return e.selection.setRng(D(n)),e.nodeChanged(),!0}},Q=function(n,e){v.each(e,function(e,t){n.setAttribute(t,e)})},W=function(e,t,n){var o,r,i,a,s,d,l;o=e,r=t,a=(i=n)["list-style-type"]?i["list-s
 tyle-type"]:null,o.setStyle(r,"list-style-type",a),s=e,Q(d=t,(l=n)["list-attributes"]),v.each(s.select("li",d),function(e){Q(e,l["list-item-attributes"])})},j=function(e,t,n,o){var r,i;for(r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1===r.nodeType&&(r=r.childNodes[Math.min(i,r.childNodes.length-1)]||r),!n&&C(r.nextSibling)&&(r=r.nextSibling);r.parentNode!==o;){if(y(e,r))return r;if(/^(TD|TH)$/.test(r.parentNode.nodeName))return r;r=r.parentNode}return r},q=function(c,f,u){void 0===u&&(u={});var e,t=c.selection.getRng(!0),m="LI",n=E.getClosestListRootElm(c,c.selection.getStart(!0)),g=c.dom;"false"!==g.getContentEditable(c.selection.getNode())&&("DL"===(f=f.toUpperCase())&&(m="DT"),e=b(t),v.each(function(n,e,o){for(var r,i=[],a=n.dom,t=j(n,e,!0,o),s=j(n,e,!1,o),d=[],l=t;l&&(d.pus
 h(l),l!==s);l=l.nextSibling);return v.each(d,function(e){if(y(n,e))return i.push(e),void(r=null);if(a.isBlock(e)||C(e))return C(e)&&a.remove(e),void(r=null);var t=e.nextSibling;p.isBookmarkNode(e)&&(y(n,t)||!t&&e.parentNode===o)?r=null:(r||(r=a.create("p"),e.parentNode.insertBefore(r,e),i.push(r)),r.appendChild(e))}),i}(c,t,n),function(e){var t,n,o,r,i,a,s,d,l;(n=e.previousSibling)&&h(n)&&n.nodeName===f&&(o=n,r=u,i=g.getStyle(o,"list-style-type"),a=r?r["list-style-type"]:"",i===(a=null===a?"":a))?(t=n,e=g.rename(e,m),n.appendChild(e)):(t=g.create(f),e.parentNode.insertBefore(t,e),t.appendChild(e),e=g.rename(e,m)),s=g,d=e,l=["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],v.each(l,function(e){return
  s.setStyle(d,((t={})[e]="",t));var t}),W(g,t,u),z(c.dom,t)}),c.selection.setRng(D(e)))},F=function(o){var e=b(o.selection.getRng(!0)),r=E.getClosestListRootElm(o,o.selection.getStart(!0)),t=E.getSelectedListItems(o),n=v.grep(t,function(e){return o.dom.isEmpty(e)});t=v.grep(t,function(e){return!o.dom.isEmpty(e)}),v.each(n,function(e){m(o.dom,e)&&w(o,e)}),v.each(t,function(e){var t,n;if(e.parentNode!==o.getBody()){for(t=e;t&&t!==r;t=t.parentNode)h(t)&&(n=t);M(o,n,e),I(o.dom,n.parentNode)}}),o.selection.setRng(D(e))},V=function(e,t,n){return d=n,(s=t)&&d&&h(s)&&s.nodeName===d.nodeName&&(i=t,a=n,(r=e).getStyle(i,"list-style-type",!0)===r.getStyle(a,"list-style-type",!0))&&(o=n,t.className===o.className);var o,r,i,a,s,d},z=function(e,t){var n,o;if(n=t.nextSibling,V(e,t,n)){for(;o=n.firstChild;)t.appendChild(o);e.remove(n)}if(n=t.previousSibling,V(e,t,n)){for(;o=n.lastChild;)t.insertBefore(o,t.f
 irstChild);e.remove(n)}},G=function(t,e,n,o,r){if(e.nodeName!==o||J(r)){var i=b(t.selection.getRng(!0));v.each([e].concat(n),function(e){!function(e,t,n,o){if(t.nodeName!==n){var r=e.rename(t,n);W(e,r,o)}else W(e,t,o)}(t.dom,e,o,r)}),t.selection.setRng(D(i))}else F(t)},J=function(e){return"list-style-type"in e},X={toggleList:function(e,t,n){var o=E.getParentList(e),r=E.getSelectedSubLists(e);n=n||{},o&&0<r.length?G(e,o,r,t,n):function(e,t,n,o){if(t!==e.getBody())if(t)if(t.nodeName!==n||J(o)){var r=b(e.selection.getRng(!0));W(e.dom,t,o),z(e.dom,e.dom.rename(t,n)),e.selection.setRng(D(r))}else F(e);else q(e,n,o)}(e,o,t,n)},removeList:F,mergeWithAdjacentLists:z},Y=function(e,t,n,o){var r,i,a=t.startContainer,s=t.startOffset;if(3===a.nodeType&&(n?s<a.data.length:0<s))return a;for(r=e.schema.getNonEmptyElements(),1===a.nodeType&&(a=d.getNode(a,s)),i=new l(a,o),n&&u(e.dom,a)&&i.next();a=i[n?"next":"prev2"]();){
 if("LI"===a.nodeName&&!a.hasChildNodes())return a;if(r[a.nodeName])return a;if(3===a.nodeType&&0<a.data.length)return a}},Z=function(e,t){var n=t.childNodes;return 1===n.length&&!h(n[0])&&e.isBlock(n[0])},ee=function(e,t,n){var o,r,i,a;if(r=Z(e,n)?n.firstChild:n,Z(i=e,a=t)&&i.remove(a.firstChild,!0),!m(e,t,!0))for(;o=t.firstChild;)r.appendChild(o)},te=function(e,t,n){var o,r,i=t.parentNode;g(e,t)&&g(e,n)&&(h(n.lastChild)&&(r=n.lastChild),i===n.lastChild&&C(i.previousSibling)&&e.remove(i.previousSibling),(o=n.lastChild)&&C(o)&&t.hasChildNodes()&&e.remove(o),m(e,n,!0)&&e.$(n).empty(),ee(e,t,n),r&&n.appendChild(r),e.remove(t),m(e,i)&&i!==e.getRoot()&&e.remove(i))},ne=function(e,t,n,o){var r,i,a,s=e.dom;if(s.isEmpty(o))i=n,a=o,(r=e).dom.$(a).empty(),te(r.dom,i,a),r.selection.setCursorLocation(a);else{var d=b(t);te(s,n,o),e.selection.setRng(
 D(d))}},oe=function(e,t){var n,o,r,i=e.dom,a=e.selection,s=a.getStart(),d=E.getClosestListRootElm(e,s),l=i.getParent(a.getStart(),"LI",d);if(l){if((n=l.parentNode)===e.getBody()&&m(i,n))return!0;if(o=L(a.getRng(!0)),(r=i.getParent(Y(e,o,t,d),"LI",d))&&r!==l)return t?ne(e,o,r,l):function(e,t,n,o){var r=b(t);te(e.dom,n,o);var i=D(r);e.selection.setRng(i)}(e,o,l,r),!0;if(!r&&!t&&X.removeList(e))return!0}return!1},re=function(e,t){return oe(e,t)||function(r,i){var a=r.dom,e=r.selection.getStart(),s=E.getClosestListRootElm(r,e),d=a.getParent(e,a.isBlock,s);if(d&&a.isEmpty(d)){var t=L(r.selection.getRng(!0)),l=a.getParent(Y(r,t,i,s),"LI",s);if(l)return r.undoManager.transact(function(){var e,t,n,o;t=d,n=s,o=(e=a).getParent(t.parentNode,e.isBlock,n),e.remove(t),o&&e.isEmpty(o)&&e.remove(o),X.mergeWithAdjacentLists(a,l.parentNode),r.selection.select(l,!0),r.selection.collapse(i)}),!0}return!1}(e,t)},ie=fun
 ction(e,t){return e.selection.isCollapsed()?re(e,t):(o=(n=e).selection.getStart(),r=E.getClosestListRootElm(n,o),!!(n.dom.getParent(o,"LI,DT,DD",r)||0<E.getSelectedListItems(n).length)&&(n.undoManager.transact(function(){n.execCommand("Delete"),I(n.dom,n.getBody())}),!0));var n,o,r},ae=function(t){t.on("keydown",function(e){e.keyCode===n.BACKSPACE?ie(t,!1)&&e.preventDefault():e.keyCode===n.DELETE&&ie(t,!0)&&e.preventDefault()})},se=ie,de=function(t){return{backspaceDelete:function(e){se(t,e)}}},le=t.DOM,ce=function(e,t){var n;if(h(e)){for(;n=e.firstChild;)t.appendChild(n);le.remove(e)}},fe=function(e){var t,n,o,r,i=E.getSelectedListItems(e);if(i.length){for(var a=b(e.selection.getRng(!0)),s=0;s<i.length&&(t=i[s],r=o=n=void 0,("DT"===t.nodeName?(le.rename(t,"DD"),1):(n=t.previousSibling)&&h(n)?(n.appendChild(t),1):n&&"LI"===n.nodeName&&h(n.lastChild)?(n.la
 stChild.appendChild(t),ce(t.lastChild,n.lastChild),1):(n=t.nextSibling)&&h(n)?(n.insertBefore(t,n.firstChild),1):(n=t.previousSibling)&&"LI"===n.nodeName&&(o=le.create(t.parentNode.nodeName),(r=le.getStyle(t.parentNode,"listStyleType"))&&le.setStyle(o,"listStyleType",r),n.appendChild(o),o.appendChild(t),ce(t.lastChild,o),1))||0!==s);s++);return e.selection.setRng(D(a)),e.nodeChanged(),!0}},ue=function(t,n){return function(){var e=t.dom.getParent(t.selection.getStart(),"UL,OL,DL");return e&&e.nodeName===n}},me=function(o){o.on("BeforeExecCommand",function(e){var t,n=e.command.toLowerCase();if("indent"===n?fe(o)&&(t=!0):"outdent"===n&&K(o)&&(t=!0),t)return o.fire("ExecCommand",{command:e.command}),e.preventDefault(),!0}),o.addCommand("InsertUnorderedList",function(e,t){X.toggleList(o,"UL",t)}),o.addCommand("InsertOrder
 edList",function(e,t){X.toggleList(o,"OL",t)}),o.addCommand("InsertDefinitionList",function(e,t){X.toggleList(o,"DL",t)}),o.addQueryStateHandler("InsertUnorderedList",ue(o,"UL")),o.addQueryStateHandler("InsertOrderedList",ue(o,"OL")),o.addQueryStateHandler("InsertDefinitionList",ue(o,"DL"))},ge=function(e){return e.getParam("lists_indent_on_tab",!0)},pe=function(e){var t;ge(e)&&(t=e).on("keydown",function(e){e.keyCode!==n.TAB||n.metaKeyPressed(e)||t.dom.getParent(t.selection.getStart(),"LI,DT,DD")&&(e.preventDefault(),e.shiftKey?K(t):fe(t))}),ae(e)},ve=function(t,i){return function(e){var r=e.control;t.on("NodeChange",function(e){var t=function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}(e.parents,a),n=-1!==t?e.parents.slice(0,t):e.parents,o=v.grep(n,h);r.active(0<o.length&&o[0].nodeName===i)})}},he=fun
 ction(e){var t,n,o,r;n="advlist",o=(t=e).settings.plugins?t.settings.plugins:"",-1===v.inArray(o.split(/[ ,]/),n)&&(e.addButton("numlist",{active:!1,title:"Numbered list",cmd:"InsertOrderedList",onPostRender:ve(e,"OL")}),e.addButton("bullist",{active:!1,title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:ve(e,"UL")})),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:(r=e,function(e){var n=e.control;r.on("nodechange",function(){var e=E.getSelectedListItems(r),t=0<e.length&&s(e[0]);n.disabled(t)})})})};e.add("lists",function(e){return pe(e),he(e),me(e),de(e)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),l=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),n=tinymce.util.Tools.resolve("tinymce.util.VK"),p=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),o=function(e){return e&&"BR"===e.nodeName},r=function(e){return e&&3===e.nodeType},h=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},i=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},a=function(e){return e&&/^(TH|TD)$/.test(e.nodeName)},C=o,s=function(e){return e.parentNode.firstChild===e},c=function(e){return e.parentNode.lastChild===e},y=function(
 e,t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]},f=function(e,t){return e&&e.nodeName in t},u=function(e,t){return!!o(t)&&!(!e.isBlock(t.nextSibling)||o(t.previousSibling))},m=function(e,t,n){var o=e.isEmpty(t);return!(n&&0<e.select("span[data-mce-type=bookmark]",t).length)&&o},g=function(e,t){return e.isChildOf(t,e.getRoot())},N=function(e,t){var n=d.getNode(e,t);return i(e)&&r(n)?{container:n,offset:t>=e.childNodes.length?n.data.length:0}:{container:e,offset:t}},L=function(e){var t=e.cloneRange(),n=N(e.startContainer,e.startOffset);t.setStart(n.container,n.offset);var o=N(e.endContainer,e.endOffset);return t.setEnd(o.container,o.offset),t},S=t.DOM,b=function(r){var i={},e=function(e){var t,n,o;n=r[e?"startContainer":"endContainer"],o=r[e?"startOffset":"endOffset"],1===n.nodeType&&(t=S.create("span",{"data-mce-type":"bookmark"}),
 n.hasChildNodes()?(o=Math.min(o,n.childNodes.length-1),e?n.insertBefore(t,n.childNodes[o]):S.insertAfter(t,n.childNodes[o])):n.appendChild(t),n=t,o=0),i[e?"startContainer":"endContainer"]=n,i[e?"startOffset":"endOffset"]=o};return e(!0),r.collapsed||e(),i},D=function(r){function e(e){var t,n,o;t=o=r[e?"startContainer":"endContainer"],n=r[e?"startOffset":"endOffset"],t&&(1===t.nodeType&&(n=function(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t===e)return n;1===t.nodeType&&"bookmark"===t.getAttribute("data-mce-type")||n++,t=t.nextSibling}return-1}(t),t=t.parentNode,S.remove(o),!t.hasChildNodes()&&S.isBlock(t)&&t.appendChild(S.create("br"))),r[e?"startContainer":"endContainer"]=t,r[e?"startOffset":"endOffset"]=n)}e(!0),e();var t=S.createRng();return t.setStart(r.startContainer,r.startOffset),r.e
 ndContainer&&t.setEnd(r.endContainer,r.endOffset),L(t)},k=t.DOM,T=function(e,t){var n,o=t.parentNode;"LI"===o.nodeName&&o.firstChild===t&&((n=o.previousSibling)&&"LI"===n.nodeName?(n.appendChild(t),m(e,o)&&k.remove(o)):k.setStyle(o,"listStyleType","none")),h(o)&&(n=o.previousSibling)&&"LI"===n.nodeName&&n.appendChild(t)},I=function(t,e){v.each(v.grep(t.select("ol,ul",e)),function(e){T(t,e)})},B=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),R=function(e){var t=e.selection.getStart(!0);return e.dom.getParent(t,"OL,UL,DL",O(e,t))},O=function(e,t){var n=e.dom.getParents(t,"TD,TH");return 0<n.length?n[0]:e.getBody()},E={getParentList:R,getSelectedSubLists:function(e){var t,n,o,r=R(e),i=e.selection.getSelectedBlocks();return o=i,(n=r)&&1===o.length&&o[0]===n?(t=r,v.grep(t.querySelectorAll("ol,ul,dl"),fun
 ction(e){return h(e)})):v.grep(i,function(e){return h(e)&&r!==e})},getSelectedListItems:function(e){var n,t,o,r=e.selection.getSelectedBlocks();return v.grep((n=e,t=r,o=v.map(t,function(e){var t=n.dom.getParent(e,"li,dd,dt",O(n,e));return t||e}),B.unique(o)),function(e){return i(e)})},getClosestListRootElm:O},A=tinymce.util.Tools.resolve("tinymce.Env"),P=t.DOM,x=function(e,t,n){var o,r,i,a=P.createFragment(),s=e.schema.getBlockElements();if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),n&&((r=P.create(n)).tagName===e.settings.forced_root_block&&P.setAttribs(r,e.settings.forced_root_block_attrs),f(t.firstChild,s)||a.appendChild(r)),t)for(;o=t.firstChild;){var d=o.nodeName;i||"SPAN"===d&&"bookmark"===o.getAttribute("data-mce-type")||(i=!0),f(o,s)?(a.appendChild(o),r=null):n?(r||(r=P.create(n),a.appendChild(r)),r.appendChild(o)):a.appendChild(o)}return e.settings.forced_root_bl
 ock?i||A.ie&&!(10<A.ie)||r.appendChild(P.create("br",{"data-mce-bogus":"1"})):a.appendChild(P.create("br")),a},_=t.DOM,M=function(e,t,n,o){var r,i,a,s,d;for(a=_.select('span[data-mce-type="bookmark"]',t),o=o||x(e,n),(r=_.createRng()).setStartAfter(n),r.setEndAfter(t),s=(i=r.extractContents()).firstChild;s;s=s.firstChild)if("LI"===s.nodeName&&e.dom.isEmpty(s)){_.remove(s);break}e.dom.isEmpty(i)||_.insertAfter(i,t),_.insertAfter(o,t),m(e.dom,n.parentNode)&&(d=n.parentNode,v.each(a,function(e){d.parentNode.insertBefore(e,n.parentNode)}),_.remove(d)),_.remove(n),m(e.dom,t)&&_.remove(t)},U=t.DOM,H=function(e,t){m(e,t)&&U.remove(t)},$=function(e,t){var n,o,r=t.parentNode;return r?(n=r.parentNode,r===e.getBody()||("DD"===t.nodeName?U.rename(t,"DT"):s(t)&&c(t)?"LI"===n.nodeName?(U.insertAfter(t,n),H(e.dom,n),U.remove(r)):h(n)?U.remove(r,!0):(n.insertBe
 fore(x(e,t),r),U.remove(r)):s(t)?"LI"===n.nodeName?(U.insertAfter(t,n),t.appendChild(r),H(e.dom,n)):h(n)?n.insertBefore(t,r):(n.insertBefore(x(e,t),r),U.remove(t)):c(t)?"LI"===n.nodeName?U.insertAfter(t,n):h(n)?U.insertAfter(t,r):(U.insertAfter(x(e,t),r),U.remove(t)):("LI"===n.nodeName?(r=n,o=x(e,t,"LI")):o=h(n)?x(e,t,"LI"):x(e,t),M(e,r,t,o),I(e.dom,r.parentNode)))):H(e.dom,t),!0},w=$,K=function(e){var t=E.getSelectedListItems(e);if(t.length){var n=b(e.selection.getRng()),o=void 0,r=void 0,i=E.getClosestListRootElm(e,e.selection.getStart(!0));for(o=t.length;o--;)for(var a=t[o].parentNode;a&&a!==i;){for(r=t.length;r--;)if(t[r]===a){t.splice(o,1);break}a=a.parentNode}for(o=0;o<t.length&&($(e,t[o])||0!==o);o++);return e.selection.setRng(D(n)),e.nodeChanged(),!0}},Q=function(n,e){v.each(e,function(e,t){n.setAttribute(t,e)})},W=function(e,t,n){var o,r,i,a,s,d,l;o=e,r=t,a=(i=n)["list-style-type"]?i["list-s
 tyle-type"]:null,o.setStyle(r,"list-style-type",a),s=e,Q(d=t,(l=n)["list-attributes"]),v.each(s.select("li",d),function(e){Q(e,l["list-item-attributes"])})},j=function(e,t,n,o){var r,i;for(r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1===r.nodeType&&(r=r.childNodes[Math.min(i,r.childNodes.length-1)]||r),!n&&C(r.nextSibling)&&(r=r.nextSibling);r.parentNode!==o;){if(y(e,r))return r;if(/^(TD|TH)$/.test(r.parentNode.nodeName))return r;r=r.parentNode}return r},q=function(c,f,u){void 0===u&&(u={});var e,t=c.selection.getRng(!0),m="LI",n=E.getClosestListRootElm(c,c.selection.getStart(!0)),g=c.dom;"false"!==g.getContentEditable(c.selection.getNode())&&("DL"===(f=f.toUpperCase())&&(m="DT"),e=b(t),v.each(function(n,e,o){for(var r,i=[],a=n.dom,t=j(n,e,!0,o),s=j(n,e,!1,o),d=[],l=t;l&&(d.pus
 h(l),l!==s);l=l.nextSibling);return v.each(d,function(e){if(y(n,e))return i.push(e),void(r=null);if(a.isBlock(e)||C(e))return C(e)&&a.remove(e),void(r=null);var t=e.nextSibling;p.isBookmarkNode(e)&&(y(n,t)||!t&&e.parentNode===o)?r=null:(r||(r=a.create("p"),e.parentNode.insertBefore(r,e),i.push(r)),r.appendChild(e))}),i}(c,t,n),function(e){var t,n,o,r,i,a,s,d,l;(n=e.previousSibling)&&h(n)&&n.nodeName===f&&(o=n,r=u,i=g.getStyle(o,"list-style-type"),a=r?r["list-style-type"]:"",i===(a=null===a?"":a))?(t=n,e=g.rename(e,m),n.appendChild(e)):(t=g.create(f),e.parentNode.insertBefore(t,e),t.appendChild(e),e=g.rename(e,m)),s=g,d=e,l=["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],v.each(l,function(e){var t;
 return s.setStyle(d,((t={})[e]="",t))}),W(g,t,u),z(c.dom,t)}),c.selection.setRng(D(e)))},F=function(o){var e=b(o.selection.getRng(!0)),r=E.getClosestListRootElm(o,o.selection.getStart(!0)),t=E.getSelectedListItems(o),n=v.grep(t,function(e){return o.dom.isEmpty(e)});t=v.grep(t,function(e){return!o.dom.isEmpty(e)}),v.each(n,function(e){m(o.dom,e)&&w(o,e)}),v.each(t,function(e){var t,n;if(e.parentNode!==o.getBody()){for(t=e;t&&t!==r;t=t.parentNode)h(t)&&(n=t);M(o,n,e),I(o.dom,n.parentNode)}}),o.selection.setRng(D(e))},V=function(e,t,n){return d=n,(s=t)&&d&&h(s)&&s.nodeName===d.nodeName&&(i=t,a=n,(r=e).getStyle(i,"list-style-type",!0)===r.getStyle(a,"list-style-type",!0))&&(o=n,t.className===o.className);var o,r,i,a,s,d},z=function(e,t){var n,o;if(n=t.nextSibling,V(e,t,n)){for(;o=n.firstChild;)t.appendChild(o);e.remove(n)}if(n=t.previousSibling,V(e,t,n)){for(;o=n.lastChild;)t.insertBefore(o,t.f
 irstChild);e.remove(n)}},G=function(t,e,n,o,r){if(e.nodeName!==o||J(r)){var i=b(t.selection.getRng(!0));v.each([e].concat(n),function(e){!function(e,t,n,o){if(t.nodeName!==n){var r=e.rename(t,n);W(e,r,o)}else W(e,t,o)}(t.dom,e,o,r)}),t.selection.setRng(D(i))}else F(t)},J=function(e){return"list-style-type"in e},X={toggleList:function(e,t,n){var o=E.getParentList(e),r=E.getSelectedSubLists(e);n=n||{},o&&0<r.length?G(e,o,r,t,n):function(e,t,n,o){if(t!==e.getBody())if(t)if(t.nodeName!==n||J(o)){var r=b(e.selection.getRng(!0));W(e.dom,t,o),z(e.dom,e.dom.rename(t,n)),e.selection.setRng(D(r))}else F(e);else q(e,n,o)}(e,o,t,n)},removeList:F,mergeWithAdjacentLists:z},Y=function(e,t,n,o){var r,i,a=t.startContainer,s=t.startOffset;if(3===a.nodeType&&(n?s<a.data.length:0<s))return a;for(r=e.schema.getNonEmptyElements(),1===a.nodeType&&(a=d.getNode(a,s)),i=new l(a,o),n&&u(e.dom,a)&&i.next();a=i[n?"next":"prev2"]();){
 if("LI"===a.nodeName&&!a.hasChildNodes())return a;if(r[a.nodeName])return a;if(3===a.nodeType&&0<a.data.length)return a}},Z=function(e,t){var n=t.childNodes;return 1===n.length&&!h(n[0])&&e.isBlock(n[0])},ee=function(e,t,n){var o,r,i,a;if(r=Z(e,n)?n.firstChild:n,Z(i=e,a=t)&&i.remove(a.firstChild,!0),!m(e,t,!0))for(;o=t.firstChild;)r.appendChild(o)},te=function(e,t,n){var o,r,i=t.parentNode;g(e,t)&&g(e,n)&&(h(n.lastChild)&&(r=n.lastChild),i===n.lastChild&&C(i.previousSibling)&&e.remove(i.previousSibling),(o=n.lastChild)&&C(o)&&t.hasChildNodes()&&e.remove(o),m(e,n,!0)&&e.$(n).empty(),ee(e,t,n),r&&n.appendChild(r),e.remove(t),m(e,i)&&i!==e.getRoot()&&e.remove(i))},ne=function(e,t,n,o){var r,i,a,s=e.dom;if(s.isEmpty(o))i=n,a=o,(r=e).dom.$(a).empty(),te(r.dom,i,a),r.selection.setCursorLocation(a);else{var d=b(t);te(s,n,o),e.selection.setRng(
 D(d))}},oe=function(e,t){var n,o,r,i=e.dom,a=e.selection,s=a.getStart(),d=E.getClosestListRootElm(e,s),l=i.getParent(a.getStart(),"LI",d);if(l){if((n=l.parentNode)===e.getBody()&&m(i,n))return!0;if(o=L(a.getRng(!0)),(r=i.getParent(Y(e,o,t,d),"LI",d))&&r!==l)return t?ne(e,o,r,l):function(e,t,n,o){var r=b(t);te(e.dom,n,o);var i=D(r);e.selection.setRng(i)}(e,o,l,r),!0;if(!r&&!t&&X.removeList(e))return!0}return!1},re=function(e,t){return oe(e,t)||function(r,i){var a=r.dom,e=r.selection.getStart(),s=E.getClosestListRootElm(r,e),d=a.getParent(e,a.isBlock,s);if(d&&a.isEmpty(d)){var t=L(r.selection.getRng(!0)),l=a.getParent(Y(r,t,i,s),"LI",s);if(l)return r.undoManager.transact(function(){var e,t,n,o;t=d,n=s,o=(e=a).getParent(t.parentNode,e.isBlock,n),e.remove(t),o&&e.isEmpty(o)&&e.remove(o),X.mergeWithAdjacentLists(a,l.parentNode),r.selection.select(l,!0),r.selection.collapse(i)}),!0}return!1}(e,t)},ie=fun
 ction(e,t){return e.selection.isCollapsed()?re(e,t):(o=(n=e).selection.getStart(),r=E.getClosestListRootElm(n,o),!!(n.dom.getParent(o,"LI,DT,DD",r)||0<E.getSelectedListItems(n).length)&&(n.undoManager.transact(function(){n.execCommand("Delete"),I(n.dom,n.getBody())}),!0));var n,o,r},ae=function(t){t.on("keydown",function(e){e.keyCode===n.BACKSPACE?ie(t,!1)&&e.preventDefault():e.keyCode===n.DELETE&&ie(t,!0)&&e.preventDefault()})},se=ie,de=function(t){return{backspaceDelete:function(e){se(t,e)}}},le=t.DOM,ce=function(e,t){var n;if(h(e)){for(;n=e.firstChild;)t.appendChild(n);le.remove(e)}},fe=function(e){var t,n,o,r,i=E.getSelectedListItems(e);if(i.length){for(var a=b(e.selection.getRng(!0)),s=0;s<i.length&&(t=i[s],r=o=n=void 0,("DT"===t.nodeName?(le.rename(t,"DD"),1):(n=t.previousSibling)&&h(n)?(n.appendChild(t),1):n&&"LI"===n.nodeName&&h(n.lastChild)?(n.la
 stChild.appendChild(t),ce(t.lastChild,n.lastChild),1):(n=t.nextSibling)&&h(n)?(n.insertBefore(t,n.firstChild),1):(n=t.previousSibling)&&"LI"===n.nodeName&&(o=le.create(t.parentNode.nodeName),(r=le.getStyle(t.parentNode,"listStyleType"))&&le.setStyle(o,"listStyleType",r),n.appendChild(o),o.appendChild(t),ce(t.lastChild,o),1))||0!==s);s++);return e.selection.setRng(D(a)),e.nodeChanged(),!0}},ue=function(t,n){return function(){var e=t.dom.getParent(t.selection.getStart(),"UL,OL,DL");return e&&e.nodeName===n}},me=function(o){o.on("BeforeExecCommand",function(e){var t,n=e.command.toLowerCase();if("indent"===n?fe(o)&&(t=!0):"outdent"===n&&K(o)&&(t=!0),t)return o.fire("ExecCommand",{command:e.command}),e.preventDefault(),!0}),o.addCommand("InsertUnorderedList",function(e,t){X.toggleList(o,"UL",t)}),o.addCommand("InsertOrder
 edList",function(e,t){X.toggleList(o,"OL",t)}),o.addCommand("InsertDefinitionList",function(e,t){X.toggleList(o,"DL",t)}),o.addQueryStateHandler("InsertUnorderedList",ue(o,"UL")),o.addQueryStateHandler("InsertOrderedList",ue(o,"OL")),o.addQueryStateHandler("InsertDefinitionList",ue(o,"DL"))},ge=function(e){return e.getParam("lists_indent_on_tab",!0)},pe=function(e){var t;ge(e)&&(t=e).on("keydown",function(e){e.keyCode!==n.TAB||n.metaKeyPressed(e)||t.dom.getParent(t.selection.getStart(),"LI,DT,DD")&&(e.preventDefault(),e.shiftKey?K(t):fe(t))}),ae(e)},ve=function(t,i){return function(e){var r=e.control;t.on("NodeChange",function(e){var t=function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}(e.parents,a),n=-1!==t?e.parents.slice(0,t):e.parents,o=v.grep(n,h);r.active(0<o.length&&o[0].nodeName===i)})}},he=fun
 ction(e){var t,n,o,r;n="advlist",o=(t=e).settings.plugins?t.settings.plugins:"",-1===v.inArray(o.split(/[ ,]/),n)&&(e.addButton("numlist",{active:!1,title:"Numbered list",cmd:"InsertOrderedList",onPostRender:ve(e,"OL")}),e.addButton("bullist",{active:!1,title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:ve(e,"UL")})),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:(r=e,function(e){var n=e.control;r.on("nodechange",function(){var e=E.getSelectedListItems(r),t=0<e.length&&s(e[0]);n.disabled(t)})})})};e.add("lists",function(e){return pe(e),he(e),me(e),de(e)})}();
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginsmediapluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/media/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/media/plugin.js     2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/media/plugin.js       2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -35,7 +35,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var hasDimensions = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.getParam('media_dimensions', true);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bmkzfegajfuw8pol = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_69rpmgh3jjgwecnr = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getScripts: getScripts,
</span><span class="cx" style="display: block; padding: 0 10px">     getAudioTemplateCallback: getAudioTemplateCallback,
</span><span class="cx" style="display: block; padding: 0 10px">     getVideoTemplateCallback: getVideoTemplateCallback,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -60,7 +60,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9fg1sigejfuw8poq = { getVideoScriptMatch: getVideoScriptMatch };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4q3fmh7jjgwecnw = { getVideoScriptMatch: getVideoScriptMatch };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var trimPx = function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">     return value.replace(/px$/, '');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -80,7 +80,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7rx1rygfjfuw8por = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_jbvx7h8jjgwecnx = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getMaxWidth: getSize('maxWidth'),
</span><span class="cx" style="display: block; padding: 0 10px">     getMaxHeight: getSize('maxHeight'),
</span><span class="cx" style="display: block; padding: 0 10px">     setMaxWidth: setSize('maxWidth'),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -112,7 +112,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           data = global$2.extend(attrs.map, data);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (name === 'script') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var videoScript = $_9fg1sigejfuw8poq.getVideoScriptMatch(prefixes, attrs.map.src);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var videoScript = $_4q3fmh7jjgwecnw.getVideoScriptMatch(prefixes, attrs.map.src);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!videoScript) {
</span><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -148,14 +148,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">       source1: getEphoxEmbedIri(div),
</span><span class="cx" style="display: block; padding: 0 10px">       source2: '',
</span><span class="cx" style="display: block; padding: 0 10px">       poster: '',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      width: $_7rx1rygfjfuw8por.getMaxWidth(div),
-      height: $_7rx1rygfjfuw8por.getMaxHeight(div)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      width: $_jbvx7h8jjgwecnx.getMaxWidth(div),
+      height: $_jbvx7h8jjgwecnx.getMaxHeight(div)
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var htmlToData = function (prefixes, html) {
</span><span class="cx" style="display: block; padding: 0 10px">     return isEphoxEmbed(html) ? ephoxEmbedHtmlToData(html) : htmlToDataSax(prefixes, html);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g969ozgbjfuw8pom = { htmlToData: htmlToData };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6mep3hh4jjgwecnt = { htmlToData: htmlToData };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$5 = tinymce.util.Tools.resolve('tinymce.util.Promise');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -172,7 +172,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var mime = mimes[fileEnd];
</span><span class="cx" style="display: block; padding: 0 10px">     return mime ? mime : '';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dq3p76gjjfuw8poy = { guess: guess };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d9gn6bhcjjgwecol = { guess: guess };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$6 = tinymce.util.Tools.resolve('tinymce.html.Writer');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -321,14 +321,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var updateEphoxEmbed = function (html, data) {
</span><span class="cx" style="display: block; padding: 0 10px">     var fragment = DOM$1.createFragment(html);
</span><span class="cx" style="display: block; padding: 0 10px">     var div = fragment.firstChild;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_7rx1rygfjfuw8por.setMaxWidth(div, data.width);
-    $_7rx1rygfjfuw8por.setMaxHeight(div, data.height);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_jbvx7h8jjgwecnx.setMaxWidth(div, data.width);
+    $_jbvx7h8jjgwecnx.setMaxHeight(div, data.height);
</ins><span class="cx" style="display: block; padding: 0 10px">     return normalizeHtml(div.outerHTML);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var updateHtml = function (html, data, updateAll) {
</span><span class="cx" style="display: block; padding: 0 10px">     return isEphoxEmbed$1(html) ? updateEphoxEmbed(html, data) : updateHtmlSax(html, data, updateAll);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9oq1mlgkjfuw8pp0 = { updateHtml: updateHtml };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_s3qkohdjjgwecon = { updateHtml: updateHtml };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var urlPatterns = [
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -452,7 +452,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var dataToHtml = function (editor, dataIn) {
</span><span class="cx" style="display: block; padding: 0 10px">     var data = global$2.extend({}, dataIn);
</span><span class="cx" style="display: block; padding: 0 10px">     if (!data.source1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$2.extend(data, $_g969ozgbjfuw8pom.htmlToData($_bmkzfegajfuw8pol.getScripts(editor), data.embed));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$2.extend(data, $_6mep3hh4jjgwecnt.htmlToData($_69rpmgh3jjgwecnr.getScripts(editor), data.embed));
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!data.source1) {
</span><span class="cx" style="display: block; padding: 0 10px">         return '';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -465,8 +465,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     data.source1 = editor.convertURL(data.source1, 'source');
</span><span class="cx" style="display: block; padding: 0 10px">     data.source2 = editor.convertURL(data.source2, 'source');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    data.source1mime = $_dq3p76gjjfuw8poy.guess(data.source1);
-    data.source2mime = $_dq3p76gjjfuw8poy.guess(data.source2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    data.source1mime = $_d9gn6bhcjjgwecol.guess(data.source1);
+    data.source2mime = $_d9gn6bhcjjgwecol.guess(data.source2);
</ins><span class="cx" style="display: block; padding: 0 10px">     data.poster = editor.convertURL(data.poster, 'poster');
</span><span class="cx" style="display: block; padding: 0 10px">     var pattern = matchPattern(data.source1);
</span><span class="cx" style="display: block; padding: 0 10px">     if (pattern) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -477,16 +477,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       data.height = data.height || pattern.h;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (data.embed) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_9oq1mlgkjfuw8pp0.updateHtml(data.embed, data, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_s3qkohdjjgwecon.updateHtml(data.embed, data, true);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var videoScript = $_9fg1sigejfuw8poq.getVideoScriptMatch($_bmkzfegajfuw8pol.getScripts(editor), data.source1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var videoScript = $_4q3fmh7jjgwecnw.getVideoScriptMatch($_69rpmgh3jjgwecnr.getScripts(editor), data.source1);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (videoScript) {
</span><span class="cx" style="display: block; padding: 0 10px">         data.type = 'script';
</span><span class="cx" style="display: block; padding: 0 10px">         data.width = videoScript.width;
</span><span class="cx" style="display: block; padding: 0 10px">         data.height = videoScript.height;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var audioTemplateCallback = $_bmkzfegajfuw8pol.getAudioTemplateCallback(editor);
-      var videoTemplateCallback = $_bmkzfegajfuw8pol.getVideoTemplateCallback(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var audioTemplateCallback = $_69rpmgh3jjgwecnr.getAudioTemplateCallback(editor);
+      var videoTemplateCallback = $_69rpmgh3jjgwecnr.getVideoTemplateCallback(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       data.width = data.width || 300;
</span><span class="cx" style="display: block; padding: 0 10px">       data.height = data.height || 150;
</span><span class="cx" style="display: block; padding: 0 10px">       global$2.each(data, function (value, key) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -505,7 +505,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ekbiypgijfuw8pov = { dataToHtml: dataToHtml };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_bc7nlthbjjgwecoh = { dataToHtml: dataToHtml };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var cache = {};
</span><span class="cx" style="display: block; padding: 0 10px">   var embedPromise = function (data, dataToHtml, handler) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -536,17 +536,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var loadedData = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (data) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_ekbiypgijfuw8pov.dataToHtml(editor, data);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_bc7nlthbjjgwecoh.dataToHtml(editor, data);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getEmbedHtml = function (editor, data) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var embedHandler = $_bmkzfegajfuw8pol.getUrlResolver(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var embedHandler = $_69rpmgh3jjgwecnr.getUrlResolver(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isCached = function (url) {
</span><span class="cx" style="display: block; padding: 0 10px">     return cache.hasOwnProperty(url);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6v4rhbggjfuw8pos = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cwvqyth9jjgweco9 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getEmbedHtml: getEmbedHtml,
</span><span class="cx" style="display: block; padding: 0 10px">     isCached: isCached
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -631,7 +631,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_32c8argojfuw8ppe = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ewaahuhhjjgwecow = {
</ins><span class="cx" style="display: block; padding: 0 10px">     createUi: createUi,
</span><span class="cx" style="display: block; padding: 0 10px">     syncSize: syncSize,
</span><span class="cx" style="display: block; padding: 0 10px">     updateSize: updateSize
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -654,11 +654,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         'source1': dataEmbed,
</span><span class="cx" style="display: block; padding: 0 10px">         'data-ephox-embed-iri': dataEmbed,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        'width': $_7rx1rygfjfuw8por.getMaxWidth(element),
-        'height': $_7rx1rygfjfuw8por.getMaxHeight(element)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        'width': $_jbvx7h8jjgwecnx.getMaxWidth(element),
+        'height': $_jbvx7h8jjgwecnx.getMaxHeight(element)
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return element.getAttribute('data-mce-object') ? $_g969ozgbjfuw8pom.htmlToData($_bmkzfegajfuw8pol.getScripts(editor), editor.serializer.serialize(element, { selection: true })) : {};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return element.getAttribute('data-mce-object') ? $_6mep3hh4jjgwecnt.htmlToData($_69rpmgh3jjgwecnr.getScripts(editor), editor.serializer.serialize(element, { selection: true })) : {};
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getSource = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elm = editor.selection.getNode();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -670,11 +670,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return function (response) {
</span><span class="cx" style="display: block; padding: 0 10px">       var html = response.html;
</span><span class="cx" style="display: block; padding: 0 10px">       var embed = win.find('#embed')[0];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var data = global$2.extend($_g969ozgbjfuw8pom.htmlToData($_bmkzfegajfuw8pol.getScripts(editor), html), { source1: response.url });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var data = global$2.extend($_6mep3hh4jjgwecnt.htmlToData($_69rpmgh3jjgwecnr.getScripts(editor), html), { source1: response.url });
</ins><span class="cx" style="display: block; padding: 0 10px">       win.fromJSON(data);
</span><span class="cx" style="display: block; padding: 0 10px">       if (embed) {
</span><span class="cx" style="display: block; padding: 0 10px">         embed.value(html);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_32c8argojfuw8ppe.updateSize(win);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_ewaahuhhjjgwecow.updateSize(win);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -699,11 +699,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var submitForm = function (win, editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var data = win.toJSON();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    data.embed = $_9oq1mlgkjfuw8pp0.updateHtml(data.embed, data);
-    if (data.embed && $_6v4rhbggjfuw8pos.isCached(data.source1)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    data.embed = $_s3qkohdjjgwecon.updateHtml(data.embed, data);
+    if (data.embed && $_cwvqyth9jjgweco9.isCached(data.source1)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       handleInsert(editor, data.embed);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_6v4rhbggjfuw8pos.getEmbedHtml(editor, data).then(function (response) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_cwvqyth9jjgweco9.getEmbedHtml(editor, data).then(function (response) {
</ins><span class="cx" style="display: block; padding: 0 10px">         handleInsert(editor, response.html);
</span><span class="cx" style="display: block; padding: 0 10px">       }).catch(handleError(editor));
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -725,11 +725,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         label: 'Source',
</span><span class="cx" style="display: block; padding: 0 10px">         onpaste: function () {
</span><span class="cx" style="display: block; padding: 0 10px">           setTimeout(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_6v4rhbggjfuw8pos.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_cwvqyth9jjgweco9.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">           }, 1);
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         onchange: function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_6v4rhbggjfuw8pos.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_cwvqyth9jjgweco9.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">           populateMeta(win, e.meta);
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         onbeforecall: function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -740,9 +740,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var reserialise = function (update) {
</span><span class="cx" style="display: block; padding: 0 10px">       update(win);
</span><span class="cx" style="display: block; padding: 0 10px">       data = win.toJSON();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      win.find('#embed').value($_9oq1mlgkjfuw8pp0.updateHtml(data.embed, data));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      win.find('#embed').value($_s3qkohdjjgwecon.updateHtml(data.embed, data));
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_bmkzfegajfuw8pol.hasAltSource(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_69rpmgh3jjgwecnr.hasAltSource(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       advancedFormItems.push({
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'source2',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'filepicker',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -751,7 +751,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         label: 'Alternative source'
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_bmkzfegajfuw8pol.hasPoster(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_69rpmgh3jjgwecnr.hasPoster(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       advancedFormItems.push({
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'poster',
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'filepicker',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -760,8 +760,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         label: 'Poster'
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_bmkzfegajfuw8pol.hasDimensions(editor)) {
-      var control = $_32c8argojfuw8ppe.createUi(reserialise);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_69rpmgh3jjgwecnr.hasDimensions(editor)) {
+      var control = $_ewaahuhhjjgwecow.createUi(reserialise);
</ins><span class="cx" style="display: block; padding: 0 10px">       generalFormItems.push(control);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     data = getData(editor);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -776,7 +776,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       label: 'Source'
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var updateValueOnChange = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      data = global$2.extend({}, $_g969ozgbjfuw8pom.htmlToData($_bmkzfegajfuw8pol.getScripts(editor), this.value()));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      data = global$2.extend({}, $_6mep3hh4jjgwecnt.htmlToData($_69rpmgh3jjgwecnr.getScripts(editor), this.value()));
</ins><span class="cx" style="display: block; padding: 0 10px">       this.parent().parent().fromJSON(data);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     embedTextBox[embedChange] = updateValueOnChange;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -817,34 +817,34 @@
</span><span class="cx" style="display: block; padding: 0 10px">       bodyType: 'tabpanel',
</span><span class="cx" style="display: block; padding: 0 10px">       body: body,
</span><span class="cx" style="display: block; padding: 0 10px">       onSubmit: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_32c8argojfuw8ppe.updateSize(win);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_ewaahuhhjjgwecow.updateSize(win);
</ins><span class="cx" style="display: block; padding: 0 10px">         submitForm(win, editor);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_32c8argojfuw8ppe.syncSize(win);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_ewaahuhhjjgwecow.syncSize(win);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_92htb0g7jfuw8pog = { showDialog: showDialog };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_e3lvjbh0jjgwecnm = { showDialog: showDialog };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var get = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var showDialog = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_92htb0g7jfuw8pog.showDialog(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_e3lvjbh0jjgwecnm.showDialog(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return { showDialog: showDialog };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4zi4sfg6jfuw8poe = { get: get };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9lh0mgzjjgwecnk = { get: get };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var showDialog = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_92htb0g7jfuw8pog.showDialog(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_e3lvjbh0jjgwecnm.showDialog(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceMedia', showDialog);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1si9ufgpjfuw8ppg = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3pne6fhijjgwecoz = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$8 = tinymce.util.Tools.resolve('tinymce.html.Node');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var sanitize = function (editor, html) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_bmkzfegajfuw8pol.shouldFilterHtml(editor) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_69rpmgh3jjgwecnr.shouldFilterHtml(editor) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return html;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     var writer = global$6();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -887,7 +887,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }, global$7({})).parse(html);
</span><span class="cx" style="display: block; padding: 0 10px">     return writer.getContent();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_77d5ybgtjfuw8ppp = { sanitize: sanitize };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_58i2qvhmjjgwecp7 = { sanitize: sanitize };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var createPlaceholderNode = function (editor, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     var placeHolder;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -954,7 +954,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     innerHtml = sourceNode.firstChild && sourceNode.firstChild.value;
</span><span class="cx" style="display: block; padding: 0 10px">     if (innerHtml) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      targetNode.attr('data-mce-html', escape($_77d5ybgtjfuw8ppp.sanitize(editor, innerHtml)));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      targetNode.attr('data-mce-html', escape($_58i2qvhmjjgwecp7.sanitize(editor, innerHtml)));
</ins><span class="cx" style="display: block; padding: 0 10px">       targetNode.firstChild = null;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -980,7 +980,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           continue;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (node.name === 'script') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          videoScript = $_9fg1sigejfuw8poq.getVideoScriptMatch($_bmkzfegajfuw8pol.getScripts(editor), node.attr('src'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          videoScript = $_4q3fmh7jjgwecnw.getVideoScriptMatch($_69rpmgh3jjgwecnr.getScripts(editor), node.attr('src'));
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!videoScript) {
</span><span class="cx" style="display: block; padding: 0 10px">             continue;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -993,7 +993,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             node.attr('height', videoScript.height.toString());
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (node.name === 'iframe' && $_bmkzfegajfuw8pol.hasLiveEmbeds(editor) && global$1.ceFalse) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (node.name === 'iframe' && $_69rpmgh3jjgwecnr.hasLiveEmbeds(editor) && global$1.ceFalse) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!isWithinEphoxEmbed(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">             node.replace(createPreviewIframeNode(editor, node));
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1005,7 +1005,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bp9pftgsjfuw8ppl = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ggjz3ehljjgwecp4 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     createPreviewIframeNode: createPreviewIframeNode,
</span><span class="cx" style="display: block; padding: 0 10px">     createPlaceholderNode: createPlaceholderNode,
</span><span class="cx" style="display: block; padding: 0 10px">     placeHolderConverter: placeHolderConverter
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1021,7 +1021,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       global$2.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) {
</span><span class="cx" style="display: block; padding: 0 10px">         boolAttrs[name] = {};
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', $_bp9pftgsjfuw8ppl.placeHolderConverter(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', $_ggjz3ehljjgwecp4.placeHolderConverter(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) {
</span><span class="cx" style="display: block; padding: 0 10px">         var i = nodes.length;
</span><span class="cx" style="display: block; padding: 0 10px">         var node;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1069,7 +1069,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           if (innerHtml) {
</span><span class="cx" style="display: block; padding: 0 10px">             innerNode = new global$8('#text', 3);
</span><span class="cx" style="display: block; padding: 0 10px">             innerNode.raw = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            innerNode.value = $_77d5ybgtjfuw8ppp.sanitize(editor, unescape(innerHtml));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            innerNode.value = $_58i2qvhmjjgwecp7.sanitize(editor, unescape(innerHtml));
</ins><span class="cx" style="display: block; padding: 0 10px">             realElm.append(innerNode);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           node.replace(realElm);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1085,7 +1085,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7xjmklgqjfuw8pph = { setup: setup };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4o7ga9hjjjgwecp0 = { setup: setup };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setup$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('ResolveName', function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1095,7 +1095,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8fr4logujfuw8ppr = { setup: setup$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1y6lb6hnjjgwecp9 = { setup: setup$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setup$2 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('click keyup', function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1119,7 +1119,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         html = target.getAttribute('data-mce-html');
</span><span class="cx" style="display: block; padding: 0 10px">         if (html) {
</span><span class="cx" style="display: block; padding: 0 10px">           html = unescape(html);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          target.setAttribute('data-mce-html', escape($_9oq1mlgkjfuw8pp0.updateHtml(html, {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          target.setAttribute('data-mce-html', escape($_s3qkohdjjgwecon.updateHtml(html, {
</ins><span class="cx" style="display: block; padding: 0 10px">             width: e.width,
</span><span class="cx" style="display: block; padding: 0 10px">             height: e.height
</span><span class="cx" style="display: block; padding: 0 10px">           })));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1127,7 +1127,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_b7skwpgvjfuw8pps = { setup: setup$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_dnm1d2hojjgwecpa = { setup: setup$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addButton('media', {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1147,15 +1147,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       prependToContext: true
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7zyd29gwjfuw8ppt = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_94c7u1hpjjgwecpc = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('media', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_1si9ufgpjfuw8ppg.register(editor);
-    $_7zyd29gwjfuw8ppt.register(editor);
-    $_8fr4logujfuw8ppr.setup(editor);
-    $_7xjmklgqjfuw8pph.setup(editor);
-    $_b7skwpgvjfuw8pps.setup(editor);
-    return $_4zi4sfg6jfuw8poe.get(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_3pne6fhijjgwecoz.register(editor);
+    $_94c7u1hpjjgwecpc.register(editor);
+    $_1y6lb6hnjjgwecp9.setup(editor);
+    $_4o7ga9hjjjgwecp0.setup(editor);
+    $_dnm1d2hojjgwecpa.setup(editor);
+    return $_9lh0mgzjjgwecnk.get(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginspastepluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js     2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js       2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -32,7 +32,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5e30n7hljfuw8pt8 = { hasProPlugin: hasProPlugin };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_15bf6siejjgwect1 = { hasProPlugin: hasProPlugin };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var get = function (clipboard, quirks) {
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -40,7 +40,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       quirks: quirks
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4xrki5hmjfuw8pta = { get: get };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6gtliyigjjgwecte = { get: get };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var firePastePreProcess = function (editor, html, internal, isWordHtml) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.fire('PastePreProcess', {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -62,7 +62,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var firePaste = function (editor, ieFake) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.fire('paste', { ieFake: ieFake });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ae0f8dhpjfuw8pte = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8tki3zijjjgwectj = {
</ins><span class="cx" style="display: block; padding: 0 10px">     firePastePreProcess: firePastePreProcess,
</span><span class="cx" style="display: block; padding: 0 10px">     firePastePostProcess: firePastePostProcess,
</span><span class="cx" style="display: block; padding: 0 10px">     firePastePlainTextToggle: firePastePlainTextToggle,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -115,7 +115,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var shouldUseDefaultFilters = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.getParam('paste_enable_default_filters', true);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dls6llhqjfuw8ptf = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_xr8b0ikjjgwectl = {
</ins><span class="cx" style="display: block; padding: 0 10px">     shouldPlainTextInform: shouldPlainTextInform,
</span><span class="cx" style="display: block; padding: 0 10px">     shouldBlockDrop: shouldBlockDrop,
</span><span class="cx" style="display: block; padding: 0 10px">     shouldPasteDataImages: shouldPasteDataImages,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -134,7 +134,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var shouldInformUserAboutPlainText = function (editor, userIsInformedState) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return userIsInformedState.get() === false && $_dls6llhqjfuw8ptf.shouldPlainTextInform(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return userIsInformedState.get() === false && $_xr8b0ikjjgwectl.shouldPlainTextInform(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var displayNotification = function (editor, message) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.notificationManager.open({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -145,10 +145,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var togglePlainTextPaste = function (editor, clipboard, userIsInformedState) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (clipboard.pasteFormat.get() === 'text') {
</span><span class="cx" style="display: block; padding: 0 10px">       clipboard.pasteFormat.set('html');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_ae0f8dhpjfuw8pte.firePastePlainTextToggle(editor, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_8tki3zijjjgwectj.firePastePlainTextToggle(editor, false);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       clipboard.pasteFormat.set('text');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_ae0f8dhpjfuw8pte.firePastePlainTextToggle(editor, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_8tki3zijjjgwectj.firePastePlainTextToggle(editor, true);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (shouldInformUserAboutPlainText(editor, userIsInformedState)) {
</span><span class="cx" style="display: block; padding: 0 10px">         displayNotification(editor, 'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.');
</span><span class="cx" style="display: block; padding: 0 10px">         userIsInformedState.set(true);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -156,11 +156,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     editor.focus();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_btm9r2hojfuw8ptc = { togglePlainTextPaste: togglePlainTextPaste };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2j7vw7iijjgwecti = { togglePlainTextPaste: togglePlainTextPaste };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor, clipboard, userIsInformedState) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceTogglePlainTextPaste', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_btm9r2hojfuw8ptc.togglePlainTextPaste(editor, clipboard, userIsInformedState);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_2j7vw7iijjgwecti.togglePlainTextPaste(editor, clipboard, userIsInformedState);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceInsertClipboardContent', function (ui, value) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (value.content) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -171,7 +171,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_a15l7thnjfuw8pta = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fldd1mihjjgwecth = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$1 = tinymce.util.Tools.resolve('tinymce.Env');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -192,7 +192,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isMarked = function (html) {
</span><span class="cx" style="display: block; padding: 0 10px">     return html.indexOf(internalMark) !== -1;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ceqsrthxjfuw8ptx = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4x13hjirjjgwecu1 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     mark: mark,
</span><span class="cx" style="display: block; padding: 0 10px">     unmark: unmark,
</span><span class="cx" style="display: block; padding: 0 10px">     isMarked: isMarked,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -240,7 +240,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var convert = function (text, rootTag, rootAttrs) {
</span><span class="cx" style="display: block; padding: 0 10px">     return rootTag ? toBlockElements(text, rootTag, rootAttrs) : toBRs(text);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7lc4hihyjfuw8pty = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4h3hnrisjjgwecu2 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     isPlainText: isPlainText,
</span><span class="cx" style="display: block; padding: 0 10px">     convert: convert,
</span><span class="cx" style="display: block; padding: 0 10px">     toBRs: toBRs,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -273,15 +273,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var ignoreElements = global$3.makeMap('script noscript style textarea video audio iframe object', ' ');
</span><span class="cx" style="display: block; padding: 0 10px">     var blockElements = schema.getBlockElements();
</span><span class="cx" style="display: block; padding: 0 10px">     function walk(node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var name = node.name, currentNode = node;
-      if (name === 'br') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var name$$1 = node.name, currentNode = node;
+      if (name$$1 === 'br') {
</ins><span class="cx" style="display: block; padding: 0 10px">         text += '\n';
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (shortEndedElements[name]) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (shortEndedElements[name$$1]) {
</ins><span class="cx" style="display: block; padding: 0 10px">         text += ' ';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (ignoreElements[name]) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (ignoreElements[name$$1]) {
</ins><span class="cx" style="display: block; padding: 0 10px">         text += ' ';
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -295,9 +295,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">           } while (node = node.next);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (blockElements[name] && currentNode.next) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (blockElements[name$$1] && currentNode.next) {
</ins><span class="cx" style="display: block; padding: 0 10px">         text += '\n';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (name === 'p') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (name$$1 === 'p') {
</ins><span class="cx" style="display: block; padding: 0 10px">           text += '\n';
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -334,7 +334,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isMsEdge = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return navigator.userAgent.indexOf(' Edge/') !== -1;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cedk7ri6jfuw8pud = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4bi2o9j0jjgwecui = {
</ins><span class="cx" style="display: block; padding: 0 10px">     filter: filter,
</span><span class="cx" style="display: block; padding: 0 10px">     innerText: innerText,
</span><span class="cx" style="display: block; padding: 0 10px">     trimHtml: trimHtml,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -529,7 +529,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (name.indexOf('mso-') === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_dls6llhqjfuw8ptf.getRetainStyleProps(editor) === 'all' || validStyles && validStyles[name]) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_xr8b0ikjjgwectl.getRetainStyleProps(editor) === 'all' || validStyles && validStyles[name]) {
</ins><span class="cx" style="display: block; padding: 0 10px">         outputStyles[name] = value;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -549,11 +549,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   var filterWordContent = function (editor, content) {
</span><span class="cx" style="display: block; padding: 0 10px">     var retainStyleProperties, validStyles;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    retainStyleProperties = $_dls6llhqjfuw8ptf.getRetainStyleProps(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    retainStyleProperties = $_xr8b0ikjjgwectl.getRetainStyleProps(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (retainStyleProperties) {
</span><span class="cx" style="display: block; padding: 0 10px">       validStyles = global$3.makeMap(retainStyleProperties.split(/[, ]/));
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    content = $_cedk7ri6jfuw8pud.filter(content, [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    content = $_4bi2o9j0jjgwecui.filter(content, [
</ins><span class="cx" style="display: block; padding: 0 10px">       /<br class="?Apple-interchange-newline"?>/gi,
</span><span class="cx" style="display: block; padding: 0 10px">       /<b[^>]+id="?docs-internal-[^>]*>/gi,
</span><span class="cx" style="display: block; padding: 0 10px">       /<!--[\s\S]+?-->/gi,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -573,7 +573,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     ]);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var validElements = $_dls6llhqjfuw8ptf.getWordValidElements(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var validElements = $_xr8b0ikjjgwectl.getWordValidElements(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     var schema = global$8({
</span><span class="cx" style="display: block; padding: 0 10px">       valid_elements: validElements,
</span><span class="cx" style="display: block; padding: 0 10px">       valid_children: '-li[p]'
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -647,7 +647,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     var rootNode = domParser.parse(content);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_dls6llhqjfuw8ptf.shouldConvertWordFakeLists(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_xr8b0ikjjgwectl.shouldConvertWordFakeLists(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       convertFakeListsToProperLists(rootNode);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     content = global$9({ validate: editor.settings.validate }, schema).serialize(rootNode);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -654,9 +654,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return content;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var preProcess = function (editor, content) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_dls6llhqjfuw8ptf.shouldUseDefaultFilters(editor) ? filterWordContent(editor, content) : content;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_xr8b0ikjjgwectl.shouldUseDefaultFilters(editor) ? filterWordContent(editor, content) : content;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8q8fy4i1jfuw8pu5 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_dfatuiivjjgwecu8 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     preProcess: preProcess,
</span><span class="cx" style="display: block; padding: 0 10px">     isWordContent: isWordContent
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -669,11 +669,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var postProcessFilter = function (editor, html, internal, isWordHtml) {
</span><span class="cx" style="display: block; padding: 0 10px">     var tempBody = editor.dom.create('div', { style: 'display:none' }, html);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var postProcessArgs = $_ae0f8dhpjfuw8pte.firePastePostProcess(editor, tempBody, internal, isWordHtml);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var postProcessArgs = $_8tki3zijjjgwectj.firePastePostProcess(editor, tempBody, internal, isWordHtml);
</ins><span class="cx" style="display: block; padding: 0 10px">     return processResult(postProcessArgs.node.innerHTML, postProcessArgs.isDefaultPrevented());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var filterContent = function (editor, content, internal, isWordHtml) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var preProcessArgs = $_ae0f8dhpjfuw8pte.firePastePreProcess(editor, content, internal, isWordHtml);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var preProcessArgs = $_8tki3zijjjgwectj.firePastePreProcess(editor, content, internal, isWordHtml);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (editor.hasEventListeners('PastePostProcess') && !preProcessArgs.isDefaultPrevented()) {
</span><span class="cx" style="display: block; padding: 0 10px">       return postProcessFilter(editor, preProcessArgs.content, internal, isWordHtml);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -681,15 +681,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var process = function (editor, html, internal) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isWordHtml = $_8q8fy4i1jfuw8pu5.isWordContent(html);
-    var content = isWordHtml ? $_8q8fy4i1jfuw8pu5.preProcess(editor, html) : html;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isWordHtml = $_dfatuiivjjgwecu8.isWordContent(html);
+    var content = isWordHtml ? $_dfatuiivjjgwecu8.preProcess(editor, html) : html;
</ins><span class="cx" style="display: block; padding: 0 10px">     return filterContent(editor, content, internal, isWordHtml);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g5r539i0jfuw8pu1 = { process: process };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3scw66iujjgwecu4 = { process: process };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var pasteHtml = function (editor, html) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.insertContent(html, {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      merge: $_dls6llhqjfuw8ptf.shouldMergeFormats(editor),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      merge: $_xr8b0ikjjgwectl.shouldMergeFormats(editor),
</ins><span class="cx" style="display: block; padding: 0 10px">       paste: true
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -732,13 +732,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertContent = function (editor, html) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_dls6llhqjfuw8ptf.isSmartPasteEnabled(editor) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_xr8b0ikjjgwectl.isSmartPasteEnabled(editor) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">       pasteHtml(editor, html);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       smartInsertContent(editor, html);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6s6wwwi7jfuw8puh = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d8pzpej1jjgwecum = {
</ins><span class="cx" style="display: block; padding: 0 10px">     isImageUrl: isImageUrl,
</span><span class="cx" style="display: block; padding: 0 10px">     isAbsoluteUrl: isAbsoluteUrl,
</span><span class="cx" style="display: block; padding: 0 10px">     insertContent: insertContent
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -745,15 +745,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var pasteHtml$1 = function (editor, html, internalFlag) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var internal = internalFlag ? internalFlag : $_ceqsrthxjfuw8ptx.isMarked(html);
-    var args = $_g5r539i0jfuw8pu1.process(editor, $_ceqsrthxjfuw8ptx.unmark(html), internal);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var internal = internalFlag ? internalFlag : $_4x13hjirjjgwecu1.isMarked(html);
+    var args = $_3scw66iujjgwecu4.process(editor, $_4x13hjirjjgwecu1.unmark(html), internal);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (args.cancelled === false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_6s6wwwi7jfuw8puh.insertContent(editor, args.content);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_d8pzpej1jjgwecum.insertContent(editor, args.content);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var pasteText = function (editor, text) {
</span><span class="cx" style="display: block; padding: 0 10px">     text = editor.dom.encode(text).replace(/\r\n/g, '\n');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    text = $_7lc4hihyjfuw8pty.convert(text, editor.settings.forced_root_block, editor.settings.forced_root_block_attrs);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    text = $_4h3hnrisjjgwecu2.convert(text, editor.settings.forced_root_block, editor.settings.forced_root_block_attrs);
</ins><span class="cx" style="display: block; padding: 0 10px">     pasteHtml$1(editor, text, false);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getDataTransferItems = function (dataTransfer) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -783,7 +783,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getClipboardContent = function (editor, clipboardEvent) {
</span><span class="cx" style="display: block; padding: 0 10px">     var content = getDataTransferItems(clipboardEvent.clipboardData || editor.getDoc().dataTransfer);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_cedk7ri6jfuw8pud.isMsEdge() ? global$3.extend(content, { 'text/html': '' }) : content;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_4bi2o9j0jjgwecui.isMsEdge() ? global$3.extend(content, { 'text/html': '' }) : content;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasContentType = function (clipboardContent, mimeType) {
</span><span class="cx" style="display: block; padding: 0 10px">     return mimeType in clipboardContent && clipboardContent[mimeType].length > 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -806,8 +806,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var m = str.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i);
</span><span class="cx" style="display: block; padding: 0 10px">     return m ? editor.dom.encode(m[1]) : null;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var uniqueId = $_4bi2o9j0jjgwecui.createIdGenerator('mceclip');
</ins><span class="cx" style="display: block; padding: 0 10px">   var pasteImage = function (editor, rng, reader, blob) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var uniqueId = $_cedk7ri6jfuw8pud.createIdGenerator('mceclip');
</del><span class="cx" style="display: block; padding: 0 10px">     if (rng) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.selection.setRng(rng);
</span><span class="cx" style="display: block; padding: 0 10px">       rng = null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -815,7 +815,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var dataUri = reader.result;
</span><span class="cx" style="display: block; padding: 0 10px">     var base64 = getBase64FromUri(dataUri);
</span><span class="cx" style="display: block; padding: 0 10px">     var id = uniqueId();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var name = editor.settings.images_reuse_filename && blob.name ? extractFilename(editor, blob.name) : id;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var name$$1 = editor.settings.images_reuse_filename && blob.name ? extractFilename(editor, blob.name) : id;
</ins><span class="cx" style="display: block; padding: 0 10px">     var img = new Image();
</span><span class="cx" style="display: block; padding: 0 10px">     img.src = dataUri;
</span><span class="cx" style="display: block; padding: 0 10px">     if (isValidDataUriImage(editor.settings, img)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -825,7 +825,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return cachedBlobInfo.base64() === base64;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (!existingBlobInfo) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        blobInfo = blobCache.create(id, blob, base64, name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        blobInfo = blobCache.create(id, blob, base64, name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         blobCache.add(blobInfo);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         blobInfo = existingBlobInfo;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -835,8 +835,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       pasteHtml$1(editor, '<img src="' + dataUri + '">', false);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isClipboardEvent = function (event) {
-    return event.type === 'paste';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isClipboardEvent = function (event$$1) {
+    return event$$1.type === 'paste';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var pasteImageData = function (editor, e, rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dataTransfer = isClipboardEvent(e) ? e.clipboardData : e.dataTransfer;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -886,7 +886,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         keyboardPasteTimeStamp = new Date().getTime();
</span><span class="cx" style="display: block; padding: 0 10px">         if (global$1.ie && keyboardPastePlainTextState) {
</span><span class="cx" style="display: block; padding: 0 10px">           e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_ae0f8dhpjfuw8pte.firePaste(editor, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_8tki3zijjjgwectj.firePaste(editor, true);
</ins><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         pasteBin.remove();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -903,14 +903,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         content = clipboardContent['text/html'];
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         content = pasteBin.getHtml();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        internal = internal ? internal : $_ceqsrthxjfuw8ptx.isMarked(content);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        internal = internal ? internal : $_4x13hjirjjgwecu1.isMarked(content);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (pasteBin.isDefaultContent(content)) {
</span><span class="cx" style="display: block; padding: 0 10px">           plainTextMode = true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      content = $_cedk7ri6jfuw8pud.trimHtml(content);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      content = $_4bi2o9j0jjgwecui.trimHtml(content);
</ins><span class="cx" style="display: block; padding: 0 10px">       pasteBin.remove();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      isPlainTextHtml = internal === false && $_7lc4hihyjfuw8pty.isPlainText(content);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      isPlainTextHtml = internal === false && $_4h3hnrisjjgwecu2.isPlainText(content);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!content.length || isPlainTextHtml) {
</span><span class="cx" style="display: block; padding: 0 10px">         plainTextMode = true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -918,7 +918,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (hasContentType(clipboardContent, 'text/plain') && isPlainTextHtml) {
</span><span class="cx" style="display: block; padding: 0 10px">           content = clipboardContent['text/plain'];
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          content = $_cedk7ri6jfuw8pud.innerText(content);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          content = $_4bi2o9j0jjgwecui.innerText(content);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (pasteBin.isDefaultContent(content)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -942,7 +942,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var clipboardDelay = new Date().getTime() - clipboardTimer;
</span><span class="cx" style="display: block; padding: 0 10px">       var isKeyBoardPaste = new Date().getTime() - keyboardPasteTimeStamp - clipboardDelay < 1000;
</span><span class="cx" style="display: block; padding: 0 10px">       var plainTextMode = pasteFormat.get() === 'text' || keyboardPastePlainTextState;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var internal = hasContentType(clipboardContent, $_ceqsrthxjfuw8ptx.internalHtmlMime());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var internal = hasContentType(clipboardContent, $_4x13hjirjjgwecu1.internalHtmlMime());
</ins><span class="cx" style="display: block; padding: 0 10px">       keyboardPastePlainTextState = false;
</span><span class="cx" style="display: block; padding: 0 10px">       if (e.isDefaultPrevented() || isBrokenAndroidClipboardEvent(e)) {
</span><span class="cx" style="display: block; padding: 0 10px">         pasteBin.remove();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -966,7 +966,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (hasContentType(clipboardContent, 'text/html')) {
</span><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">         if (!internal) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          internal = $_ceqsrthxjfuw8ptx.isMarked(clipboardContent['text/html']);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          internal = $_4x13hjirjjgwecu1.isMarked(clipboardContent['text/html']);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -979,7 +979,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var registerEventsAndFilters = function (editor, pasteBin, pasteFormat) {
</span><span class="cx" style="display: block; padding: 0 10px">     registerEventHandlers(editor, pasteBin, pasteFormat);
</span><span class="cx" style="display: block; padding: 0 10px">     var src;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    editor.parser.addNodeFilter('img', function (nodes, name, args) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.parser.addNodeFilter('img', function (nodes, name$$1, args) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var isPasteInsert = function (args) {
</span><span class="cx" style="display: block; padding: 0 10px">         return args.data && args.data.paste === true;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1011,72 +1011,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getPasteBinParent = function (editor) {
+    return global$1.ie && editor.inline ? document.body : editor.getBody();
+  };
+  var isExternalPasteBin = function (editor) {
+    return getPasteBinParent(editor) !== editor.getBody();
+  };
+  var delegatePasteEvents = function (editor, pasteBinElm) {
+    if (isExternalPasteBin(editor)) {
+      editor.dom.bind(pasteBinElm, 'paste keyup', function (e) {
+        setTimeout(function () {
+          editor.fire('paste');
+        }, 0);
+      });
+    }
+  };
</ins><span class="cx" style="display: block; padding: 0 10px">   var create = function (editor, lastRngCell, pasteBinDefaultContent) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = editor.dom, body = editor.getBody();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var viewport = editor.dom.getViewPort(editor.getWin());
-    var scrollTop = viewport.y, top = 20;
</del><span class="cx" style="display: block; padding: 0 10px">     var pasteBinElm;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var scrollContainer;
</del><span class="cx" style="display: block; padding: 0 10px">     lastRngCell.set(editor.selection.getRng());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var lastRng = lastRngCell.get();
-    if (editor.inline) {
-      scrollContainer = editor.selection.getScrollContainer();
-      if (scrollContainer && scrollContainer.scrollTop > 0) {
-        scrollTop = scrollContainer.scrollTop;
-      }
-    }
-    function getCaretRect(rng) {
-      var rects, textNode, node;
-      var container = rng.startContainer;
-      rects = rng.getClientRects();
-      if (rects.length) {
-        return rects[0];
-      }
-      if (!rng.collapsed || container.nodeType !== 1) {
-        return;
-      }
-      node = container.childNodes[lastRng.startOffset];
-      while (node && node.nodeType === 3 && !node.data.length) {
-        node = node.nextSibling;
-      }
-      if (!node) {
-        return;
-      }
-      if (node.tagName === 'BR') {
-        textNode = dom.doc.createTextNode('\uFEFF');
-        node.parentNode.insertBefore(textNode, node);
-        rng = dom.createRng();
-        rng.setStartBefore(textNode);
-        rng.setEndAfter(textNode);
-        rects = rng.getClientRects();
-        dom.remove(textNode);
-      }
-      if (rects.length) {
-        return rects[0];
-      }
-    }
-    if (lastRng.getClientRects) {
-      var rect = getCaretRect(lastRng);
-      if (rect) {
-        top = scrollTop + (rect.top - dom.getPos(body).y);
-      } else {
-        top = scrollTop;
-        var container = lastRng.startContainer;
-        if (container) {
-          if (container.nodeType === 3 && container.parentNode !== body) {
-            container = container.parentNode;
-          }
-          if (container.nodeType === 1) {
-            top = dom.getPos(container, scrollContainer || body).y;
-          }
-        }
-      }
-    }
-    pasteBinElm = editor.dom.add(editor.getBody(), 'div', {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    pasteBinElm = editor.dom.add(getPasteBinParent(editor), 'div', {
</ins><span class="cx" style="display: block; padding: 0 10px">       'id': 'mcepastebin',
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      'class': 'mce-pastebin',
</ins><span class="cx" style="display: block; padding: 0 10px">       'contentEditable': true,
</span><span class="cx" style="display: block; padding: 0 10px">       'data-mce-bogus': 'all',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      'style': 'position: absolute; top: ' + top + 'px; width: 10px; height: 10px; overflow: hidden; opacity: 0'
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      'style': 'position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0'
</ins><span class="cx" style="display: block; padding: 0 10px">     }, pasteBinDefaultContent);
</span><span class="cx" style="display: block; padding: 0 10px">     if (global$1.ie || global$1.gecko) {
</span><span class="cx" style="display: block; padding: 0 10px">       dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) === 'rtl' ? 65535 : -65535);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1084,6 +1043,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       e.stopPropagation();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    delegatePasteEvents(editor, pasteBinElm);
</ins><span class="cx" style="display: block; padding: 0 10px">     pasteBinElm.focus();
</span><span class="cx" style="display: block; padding: 0 10px">     editor.selection.select(pasteBinElm, true);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1110,7 +1070,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       toElm.appendChild(fromElm);
</span><span class="cx" style="display: block; padding: 0 10px">       editor.dom.remove(fromElm, true);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    pasteBinClones = global$3.grep(editor.getBody().childNodes, function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    pasteBinClones = global$3.grep(getPasteBinParent(editor).childNodes, function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return elm.id === 'mcepastebin';
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     pasteBinElm = pasteBinClones.shift();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1191,7 +1151,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var noop = function () {
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasWorkingClipboardApi = function (clipboardData) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return global$1.iOS === false && clipboardData !== undefined && typeof clipboardData.setData === 'function' && $_cedk7ri6jfuw8pud.isMsEdge() !== true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return global$1.iOS === false && clipboardData !== undefined && typeof clipboardData.setData === 'function' && $_4bi2o9j0jjgwecui.isMsEdge() !== true;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setHtml5Clipboard = function (clipboardData, html, text) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (hasWorkingClipboardApi(clipboardData)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1199,7 +1159,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         clipboardData.clearData();
</span><span class="cx" style="display: block; padding: 0 10px">         clipboardData.setData('text/html', html);
</span><span class="cx" style="display: block; padding: 0 10px">         clipboardData.setData('text/plain', text);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        clipboardData.setData($_ceqsrthxjfuw8ptx.internalHtmlMime(), html);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        clipboardData.setData($_4x13hjirjjgwecu1.internalHtmlMime(), html);
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       } catch (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         return false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1218,7 +1178,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fallback = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (html, done) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var markedHtml = $_ceqsrthxjfuw8ptx.mark(html);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var markedHtml = $_4x13hjirjjgwecu1.mark(html);
</ins><span class="cx" style="display: block; padding: 0 10px">       var outer = editor.dom.create('div', {
</span><span class="cx" style="display: block; padding: 0 10px">         'contenteditable': 'false',
</span><span class="cx" style="display: block; padding: 0 10px">         'data-mce-bogus': 'all'
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1273,7 +1233,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('cut', cut(editor));
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('copy', copy(editor));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cphe9ai9jfuw8puq = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_32blojj3jjgwecv4 = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$10 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1289,13 +1249,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.selection.setRng(rng);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setup = function (editor, clipboard, draggingInternallyState) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_dls6llhqjfuw8ptf.shouldBlockDrop(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_xr8b0ikjjgwectl.shouldBlockDrop(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.on('dragend dragover draggesture dragdrop drop drag', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">         e.stopPropagation();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_dls6llhqjfuw8ptf.shouldPasteDataImages(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_xr8b0ikjjgwectl.shouldPasteDataImages(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.on('drop', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         var dataTransfer = e.dataTransfer;
</span><span class="cx" style="display: block; padding: 0 10px">         if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1310,11 +1270,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       dropContent = clipboard.getDataTransferItems(e.dataTransfer);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var internal = clipboard.hasContentType(dropContent, $_ceqsrthxjfuw8ptx.internalHtmlMime());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var internal = clipboard.hasContentType(dropContent, $_4x13hjirjjgwecu1.internalHtmlMime());
</ins><span class="cx" style="display: block; padding: 0 10px">       if ((!clipboard.hasHtmlOrText(dropContent) || isPlainTextFileUrl(dropContent)) && clipboard.pasteImageData(e, rng)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (rng && $_dls6llhqjfuw8ptf.shouldFilterDrop(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (rng && $_xr8b0ikjjgwectl.shouldFilterDrop(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var content_1 = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain'];
</span><span class="cx" style="display: block; padding: 0 10px">         if (content_1) {
</span><span class="cx" style="display: block; padding: 0 10px">           e.preventDefault();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1324,7 +1284,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                 editor.execCommand('Delete');
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">               setFocusedRange(editor, rng);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              content_1 = $_cedk7ri6jfuw8pud.trimHtml(content_1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              content_1 = $_4bi2o9j0jjgwecui.trimHtml(content_1);
</ins><span class="cx" style="display: block; padding: 0 10px">               if (!dropContent['text/html']) {
</span><span class="cx" style="display: block; padding: 0 10px">                 clipboard.pasteText(content_1);
</span><span class="cx" style="display: block; padding: 0 10px">               } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1339,7 +1299,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       draggingInternallyState.set(true);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('dragover dragend', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_dls6llhqjfuw8ptf.shouldPasteDataImages(editor) && draggingInternallyState.get() === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_xr8b0ikjjgwectl.shouldPasteDataImages(editor) && draggingInternallyState.get() === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">         setFocusedRange(editor, getCaretRangeFromEvent(editor, e));
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1348,17 +1308,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2uhmpriajfuw8put = { setup: setup };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_b4etj0j4jjgwecv7 = { setup: setup };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setup$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var plugin = editor.plugins.paste;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var preProcess = $_dls6llhqjfuw8ptf.getPreProcess(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var preProcess = $_xr8b0ikjjgwectl.getPreProcess(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (preProcess) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('PastePreProcess', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         preProcess.call(plugin, plugin, e);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var postProcess = $_dls6llhqjfuw8ptf.getPostProcess(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var postProcess = $_xr8b0ikjjgwectl.getPostProcess(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (postProcess) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('PastePostProcess', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         postProcess.call(plugin, plugin, e);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1365,7 +1325,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_84oppricjfuw8pux = { setup: setup$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_c5bihmj6jjgwecva = { setup: setup$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function addPreProcessFilter(editor, filterFunc) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('PastePreProcess', function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1378,7 +1338,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   function removeExplorerBrElementsAfterBlocks(editor, html) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_8q8fy4i1jfuw8pu5.isWordContent(html)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_dfatuiivjjgwecu8.isWordContent(html)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return html;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     var blockElements = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1386,11 +1346,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       blockElements.push(blockName);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     var explorerBlocksRegExp = new RegExp('(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?(' + blockElements.join('|') + ')[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*', 'g');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    html = $_cedk7ri6jfuw8pud.filter(html, [[
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    html = $_4bi2o9j0jjgwecui.filter(html, [[
</ins><span class="cx" style="display: block; padding: 0 10px">         explorerBlocksRegExp,
</span><span class="cx" style="display: block; padding: 0 10px">         '$1'
</span><span class="cx" style="display: block; padding: 0 10px">       ]]);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    html = $_cedk7ri6jfuw8pud.filter(html, [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    html = $_4bi2o9j0jjgwecui.filter(html, [
</ins><span class="cx" style="display: block; padding: 0 10px">       [
</span><span class="cx" style="display: block; padding: 0 10px">         /<br><br>/g,
</span><span class="cx" style="display: block; padding: 0 10px">         '<BR><BR>'
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1410,9 +1370,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (isWordHtml || internal) {
</span><span class="cx" style="display: block; padding: 0 10px">       return content;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var webKitStylesSetting = $_dls6llhqjfuw8ptf.getWebkitStyles(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var webKitStylesSetting = $_xr8b0ikjjgwectl.getWebkitStyles(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     var webKitStyles;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_dls6llhqjfuw8ptf.shouldRemoveWebKitStyles(editor) === false || webKitStylesSetting === 'all') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_xr8b0ikjjgwectl.shouldRemoveWebKitStyles(editor) === false || webKitStylesSetting === 'all') {
</ins><span class="cx" style="display: block; padding: 0 10px">       return content;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (webKitStylesSetting) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1464,43 +1424,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       addPostProcessFilter(editor, removeUnderlineAndFontInAnchor);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6bnerjidjfuw8puz = { setup: setup$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_36tmgyj7jjgwecvc = { setup: setup$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var noop$1 = function () {
-    var x = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-      x[_i] = arguments[_i];
-    }
-  };
-  var noarg = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return f();
-    };
-  };
-  var compose = function (fa, fb) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return fa(fb.apply(null, arguments));
-    };
-  };
-  var constant = function (value) {
-    return function () {
-      return value;
-    };
-  };
-  var identity = function (x) {
-    return x;
-  };
-  var tripleEquals = function (a, b) {
-    return a === b;
-  };
</del><span class="cx" style="display: block; padding: 0 10px">   var curry = function (f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var x = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 1; _i < arguments.length; _i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1521,43 +1446,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return f.apply(null, all);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var not = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return !f.apply(null, arguments);
-    };
-  };
-  var die = function (msg) {
-    return function () {
-      throw new Error(msg);
-    };
-  };
-  var apply = function (f) {
-    return f();
-  };
-  var call = function (f) {
-    f();
-  };
-  var never = constant(false);
-  var always = constant(true);
-  var $_avmd1ifjfuw8pv5 = {
-    noop: noop$1,
-    noarg: noarg,
-    compose: compose,
-    constant: constant,
-    identity: identity,
-    tripleEquals: tripleEquals,
-    curry: curry,
-    not: not,
-    die: die,
-    apply: apply,
-    call: call,
-    never: never,
-    always: always
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var stateChange = function (editor, clipboard, e) {
</span><span class="cx" style="display: block; padding: 0 10px">     var ctrl = e.control;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1567,7 +1455,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var register$2 = function (editor, clipboard) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var postRender = $_avmd1ifjfuw8pv5.curry(stateChange, editor, clipboard);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var postRender = curry(stateChange, editor, clipboard);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.addButton('pastetext', {
</span><span class="cx" style="display: block; padding: 0 10px">       active: false,
</span><span class="cx" style="display: block; padding: 0 10px">       icon: 'pastetext',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1583,21 +1471,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">       onPostRender: postRender
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3d07oyiejfuw8pv2 = { register: register$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_g9yhwdj8jjgwecvf = { register: register$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('paste', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_5e30n7hljfuw8pt8.hasProPlugin(editor) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_15bf6siejjgwect1.hasProPlugin(editor) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var userIsInformedState = Cell(false);
</span><span class="cx" style="display: block; padding: 0 10px">       var draggingInternallyState = Cell(false);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var pasteFormat = Cell($_dls6llhqjfuw8ptf.isPasteAsTextEnabled(editor) ? 'text' : 'html');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var pasteFormat = Cell($_xr8b0ikjjgwectl.isPasteAsTextEnabled(editor) ? 'text' : 'html');
</ins><span class="cx" style="display: block; padding: 0 10px">       var clipboard = Clipboard(editor, pasteFormat);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var quirks = $_6bnerjidjfuw8puz.setup(editor);
-      $_3d07oyiejfuw8pv2.register(editor, clipboard);
-      $_a15l7thnjfuw8pta.register(editor, clipboard, userIsInformedState);
-      $_84oppricjfuw8pux.setup(editor);
-      $_cphe9ai9jfuw8puq.register(editor);
-      $_2uhmpriajfuw8put.setup(editor, clipboard, draggingInternallyState);
-      return $_4xrki5hmjfuw8pta.get(clipboard, quirks);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var quirks = $_36tmgyj7jjgwecvc.setup(editor);
+      $_g9yhwdj8jjgwecvf.register(editor, clipboard);
+      $_fldd1mihjjgwecth.register(editor, clipboard, userIsInformedState);
+      $_c5bihmj6jjgwecva.setup(editor);
+      $_32blojj3jjgwecv4.register(editor);
+      $_b4etj0j4jjgwecv7.setup(editor, clipboard, draggingInternallyState);
+      return $_6gtliyigjjgwecte.get(clipboard, quirks);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginspastepluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js 2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js   2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var o=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return o(n())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),s=function(e){return!(!/(^|[ ,])powerpaste([, ]|$)/.test(e.settings.plugins)||!t.get("powerpaste")||("undefined"!=typeof window.console&&window.console.log&&window.console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option."),0))},l=function(e,t){return{clipboard:e,quirks:t}},f=function(e,t,n,r){return e.fire("PastePreProcess",{content:t,internal:n,wordContent:r})},d=function(e,t,n,r){return e.fire("PastePostProcess",{node:t,internal:n,wordContent:r})},u=function(e,t){return e.fire("PastePlainTextToggle",{state:t})},n=function(e,t){return e.fire("paste&quo
 t;,{ieFake:t})},m={shouldPlainTextInform:function(e){return e.getParam("paste_plaintext_inform",!0)},shouldBlockDrop:function(e){return e.getParam("paste_block_drop",!1)},shouldPasteDataImages:function(e){return e.getParam("paste_data_images",!1)},shouldFilterDrop:function(e){return e.getParam("paste_filter_drop",!0)},getPreProcess:function(e){return e.getParam("paste_preprocess")},getPostProcess:function(e){return e.getParam("paste_postprocess")},getWebkitStyles:function(e){return e.getParam("paste_webkit_styles")},shouldRemoveWebKitStyles:function(e){return e.getParam("paste_remove_styles_if_webkit",!0)},shouldMergeFormats:function(e){return e.getParam("paste_merge_formats",!0)},isSmartPasteEnabled:function(e){return e.getParam("smart_paste",!0)},isPasteAsTextEnabled:function(e){return e.getParam("paste_as_text",!1)},getRetainStyleProps:function(e){return e.getParam("
 paste_retain_style_properties")},getWordValidElements:function(e){return e.getParam("paste_word_valid_elements","-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody")},shouldConvertWordFakeLists:function(e){return e.getParam("paste_convert_word_fake_lists",!0)},shouldUseDefaultFilters:function(e){return e.getParam("paste_enable_default_filters",!0)}},r=function(e,t,n){var r,a,i;"text"===t.pasteFormat.get()?(t.pasteFormat.set("html"),u(e,!1)):(t.pasteFormat.set("text"),u(e,!0),i=e,!1===n.get()&&m.shouldPlainTextInform(i)&&(a="Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.",(r=e).notificationManager.open({text:r.translate(a),type:"info"}),n.set(!0))),e.focus()},c=function(e,n,
 t){e.addCommand("mceTogglePlainTextPaste",function(){r(e,n,t)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&n.pasteHtml(t.content,t.internal),t.text&&n.pasteText(t.text)})},v=tinymce.util.Tools.resolve("tinymce.Env"),h=tinymce.util.Tools.resolve("tinymce.util.Delay"),y=tinymce.util.Tools.resolve("tinymce.util.Tools"),a=tinymce.util.Tools.resolve("tinymce.util.VK"),e="x-tinymce/html",i="\x3c!-- "+e+" --\x3e",b={mark:function(e){return i+e},unmark:function(e){return e.replace(i,"")},isMarked:function(e){return-1!==e.indexOf(i)},internalHtmlMime:function(){return e}},g=tinymce.util.Tools.resolve("tinymce.html.Entities"),p=function(e){return e.replace(/\r?\n/g,"<br>")},x=function(e,t,n){var r=e.split(/\n\n/),a=function(e,t){var n,r=[],a="<"+e;if("object"==typeof t){for(n in t)t.hasOwnProperty(n)&&am
 p;r.push(n+'="'+g.encodeAllRaw(t[n])+'"');r.length&&(a+=" "+r.join(" "))}return a+">"}(t,n),i="</"+t+">",o=y.map(r,function(e){return e.split(/\n/).join("<br />")});return 1===o.length?o[0]:y.map(o,function(e){return a+e+i}).join("")},P={isPlainText:function(e){return!/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(e)},convert:function(e,t,n){return t?x(e,t,n):p(e)},toBRs:p,toBlockElements:x},w=tinymce.util.Tools.resolve("tinymce.html.DomParser"),T=tinymce.util.Tools.resolve("tinymce.html.Node"),_=tinymce.util.Tools.resolve("tinymce.html.Schema"),C=tinymce.util.Tools.resolve("tinymce.html.Serializer");function D(t,e){return y.each(e,function(e){t=e.constructor===RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}var k={filter:D,innerText:function(t
 ){var n=_(),r=w({},n),a="",i=n.getShortEndedElements(),o=y.makeMap("script noscript style textarea video audio iframe object"," "),s=n.getBlockElements();return t=D(t,[/<!\[[^\]]+\]>/g]),function e(t){var n=t.name,r=t;if("br"!==n)if(i[n]&&(a+=" "),o[n])a+=" ";else{if(3===t.type&&(a+=t.value),!t.shortEnded&&(t=t.firstChild))for(;e(t),t=t.next;);s[n]&&r.next&&(a+="\n","p"===n&&(a+="\n"))}else a+="\n"}(r.parse(t)),a},trimHtml:function(e){return e=D(e,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,function(e,t,n){return t||n?"\xa0":" "}],/<br class="Apple-interchange-newline">/g,/<br>$/i])},createIdGenerator:function(e){var t=0;retur
 n function(){return e+t++}},isMsEdge:function(){return-1!==navigator.userAgent.indexOf(" Edge/")}};function R(t){var n,e;return e=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],t=t.replace(/^[\u00a0 ]+/,""),y.each(e,function(e){if(e.test(t))return!(n=!0)}),n}function E(e){var i,o,s=1;function n(e){var t="";if(3===e.type)return e.value;if(e=e.firstChild)for(;t+=n(e),e=e.next;);return t}function l(e,t){if(3===e.type&&t.test(e.value))return e.value=e.value.replace(t,""),!1;if(e=e.firstChild)do{if(!l(e,t))return!1}while(e=e.next);return!0}function t(t,n,r){var a=t._listLevel||s;a!==s&&(a<s?i&&(i=i.parent.parent):(o=i,i=null)),i&&i.name===n?i.append(t):(o=o||i,i=new T(n,
 1),1<r&&i.attr("start",""+r),t.wrap(i)),t.name="li",s<a&&o&&o.lastChild.append(i),s=a,function e(t){if(t._listIgnore)t.remove();else if(t=t.firstChild)for(;e(t),t=t.next;);}(t),l(t,/^\u00a0+/),l(t,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),l(t,/^\u00a0+/)}for(var r=[],a=e.firstChild;null!=a;)if(r.push(a),null!==(a=a.walk()))for(;void 0!==a&&a.parent!==e;)a=a.walk();for(var u=0;u<r.length;u++)if("p"===(e=r[u]).name&&e.firstChild){var c=n(e);if(/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(c)){t(e,"ul");continue}if(R(c)){var f=/([0-9]+)\./.exec(c),d=1;f&&(d=parseInt(f[1],10)),t(e,"ol",d);continue}if(e._listLevel){t(e,"ul",1);continue}i=null}else o=i,i=null}function M(n,r,a,i){var o,s={},e=n.dom.parseStyle(i);return y.each(e,function(e,t){switch(t){case"mso-list":(o=/\w+ \w+([0-9]+)/i.exec(i))&&(a._listLevel=parseInt(o[1],10)),/Ignore/i.test
 (e)&&a.firstChild&&(a._listIgnore=!0,a.firstChild._listIgnore=!0);break;case"horiz-align":t="text-align";break;case"vert-align":t="vertical-align";break;case"font-color":case"mso-foreground":t="color";break;case"mso-background":case"mso-highlight":t="background";break;case"font-weight":case"font-style":return void("normal"!==e&&(s[t]=e));case"mso-element":if(/^(comment|comment-list)$/i.test(e))return void a.remove()}0!==t.indexOf("mso-comment")?0!==t.indexOf("mso-")&&("all"===m.getRetainStyleProps(n)||r&&r[t])&&(s[t]=e):a.remove()}),/(bold)/i.test(s["font-weight"])&&(delete s["font-weight"],a.wrap(new T("b",1))),/(italic)/i.test(s["font-style"])&&(delete s["font-style"],a.wrap(new T("i",1))),(s
 =n.dom.serializeStyle(s,a.name))||null}var S={preProcess:function(e,t){return m.shouldUseDefaultFilters(e)?function(r,e){var t,a;(t=m.getRetainStyleProps(r))&&(a=y.makeMap(t.split(/[, ]/))),e=k.filter(e,[/<br class="?Apple-interchange-newline"?>/gi,/<b[^>]+id="?docs-internal-[^>]*>/gi,/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return 0<t.length?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var n=m.getWordValidElements(r),i=_({valid_elements:n,valid_children:"-li[p]"});y.each(i.elements,function(e){e.attributes["class"]||(e.attributes[&q
 uot;class"]={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var o=w({},i);o.addAttributeFilter("style",function(e){for(var t,n=e.length;n--;)(t=e[n]).attr("style",M(r,a,t,t.attr("style"))),"span"===t.name&&t.parent&&!t.attributes.length&&t.unwrap()}),o.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)n=(t=e[r]).attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(n)&&t.remove(),t.attr("class",null)}),o.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),o.addNodeFilter("a",function(e){for(var t,n,r,a=e.length;a--;)if(n=(t=e[a]).attr("href"),r=t.attr("name"),n&&-1!==n.indexOf("#_msocom_"))t.remove();else if(n&&0===n.indexOf("file://")&&(n=n.split("#"
 )[1])&&(n="#"+n),n||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){t.unwrap();continue}t.attr({href:n,name:r})}else t.unwrap()});var s=o.parse(e);return m.shouldConvertWordFakeLists(r)&&E(s),e=C({validate:r.settings.validate},i).serialize(s)}(e,t):t},isWordContent:function(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}},F=function(e,t){return{content:e,cancelled:t}},I=function(e,t,n,r){var a,i,o,s,l,u,c=f(e,t,n,r);return e.hasEventListeners("PastePostProcess")&&!c.isDefaultPrevented()?(a=e,i=c.content,o=n,s=r,l=a.dom.create("div",{style:"display:none"},i),u=d(a,l,o,s),F(u.node.innerHTML,u.isDefaultPrevented())):F(c.content,c.isDefaultPrevented())},O=function(e,t,n){var r=S.isWordContent(t),a=r?S.preProcess(e,t):t;return I(e,a,n,r)},A=function
 (e,t){return e.insertContent(t,{merge:m.shouldMergeFormats(e),paste:!0}),!0},B=function(e){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(e)},H=function(e){return B(e)&&/.(gif|jpe?g|png)$/.test(e)},N=function(e,t,n){return!(!1!==e.selection.isCollapsed()||!B(t)||(a=t,i=n,(r=e).undoManager.extra(function(){i(r,a)},function(){r.execCommand("mceInsertLink",!1,a)}),0));var r,a,i},L=function(e,t,n){return!!H(t)&&(a=t,i=n,(r=e).undoManager.extra(function(){i(r,a)},function(){r.insertContent('<img src="'+a+'">')}),!0);var r,a,i},$=function(e,t){var n,r;!1===m.isSmartPasteEnabled(e)?A(e,t):(n=e,r=t,y.each([N,L,A],function(e){return!0!==e(n,r,A)}))},W=function(e,t,n){var r=n||b.isMarked(t),a=O(e,b.unmark(t),r);!1===a.cancelled&&$(e,a.content)},j=function(e,t){t=e.dom.encode(t).replace(/\r\n/g,"\n"),t=P.convert(t,e.settings.forced_root_block,e.settings.forced_root_block_attrs),W(e,t,!1)},V=function(e){var t={};if(e){if(e.getData)
 {var n=e.getData("Text");n&&0<n.length&&-1===n.indexOf("data:text/mce-internal,")&&(t["text/plain"]=n)}if(e.types)for(var r=0;r<e.types.length;r++){var a=e.types[r];try{t[a]=e.getData(a)}catch(i){t[a]=""}}}return t},z=function(e,t){return t in e&&0<e[t].length},K=function(e){return z(e,"text/html")||z(e,"text/plain")},U=function(e,t,n,r){var a=k.createIdGenerator("mceclip");t&&(e.selection.setRng(t),t=null);var i,o,s,l,u,c,f,d=n.result,m=-1!==(o=(i=d).indexOf(","))?i.substr(o+1):null,g=a(),p=e.settings.images_reuse_filename&&r.name?(s=e,l=r.name,(u=l.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i))?s.dom.encode(u[1]):null):g,v=new Image;if(v.src=d,c=e.settings,f=v,!c.images_dataimg_filter||c.images_dataimg_filter(f)){var h,y=e.editorUpload.blobCache,b=void 0;(h=y.findFirst(function(e){return e.base64()===m}))?b=h:(b=y.create(g,r,m,p),y.add(b)),W(e,'&lt
 ;img src="'+b.blobUri()+'">',!1)}else W(e,'<img src="'+d+'">',!1)},G=function(o,s,l){var e="paste"===s.type?s.clipboardData:s.dataTransfer;function t(e){var t,n,r,a=!1;if(e)for(t=0;t<e.length;t++)if(n=e[t],/^image\/(jpeg|png|gif|bmp)$/.test(n.type)){var i=n.getAsFile?n.getAsFile():n;(r=new window.FileReader).onload=U.bind(null,o,l,r,i),r.readAsDataURL(i),s.preventDefault(),a=!0}return a}if(o.settings.paste_data_images&&e)return t(e.items)||t(e.files)},X=function(e){return a.metaKeyPressed(e)&&86===e.keyCode||e.shiftKey&&45===e.keyCode},q=function(c,f,d){var m,g=0;function p(e,t,n,r){var a,i;z(e,"text/html")?a=e["text/html"]:(a=f.getHtml(),r=r||b.isMarked(a),f.isDefaultContent(a)&&(n=!0)),a=k.trimHtml(a),f.remove(),i=!1===r&&P.isPlainText(a),a.length&&!i||(n=!0),n&&(a=z(e,"text/plain")&&i?e["text/plain"]:k.innerText(a)),f.isDefaultContent(a
 )?t||c.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."):n?j(c,a):W(c,a,r)}c.on("keydown",function(e){function t(e){X(e)&&!e.isDefaultPrevented()&&f.remove()}if(X(e)&&!e.isDefaultPrevented()){if((m=e.shiftKey&&86===e.keyCode)&&v.webkit&&-1!==navigator.userAgent.indexOf("Version/"))return;if(e.stopImmediatePropagation(),g=(new Date).getTime(),v.ie&&m)return e.preventDefault(),void n(c,!0);f.remove(),f.create(),c.once("keyup",t),c.once("paste",function(){c.off("keyup",t)})}}),c.on("paste",function(e){var t,n,r,a=(new Date).getTime(),i=(t=c,n=V(e.clipboardData||t.getDoc().dataTransfer),k.isMsEdge()?y.extend(n,{"text/html":""}):n),o=(new Date).getTime()-a,s=(new Date).getTime()-g-o<1e3,l="text"===d.get()||m,u=z(i,b.internalHtmlMime());m=!1,e.isDefaultPrevented()||(r=e.clipboardData,-1!==navigator
 .userAgent.indexOf("Android")&&r&&r.items&&0===r.items.length)?f.remove():K(i)||!G(c,e,f.getLastRng()||c.selection.getRng())?(s||e.preventDefault(),!v.ie||s&&!e.ieFake||z(i,"text/html")||(f.create(),c.dom.bind(f.getEl(),"paste",function(e){e.stopPropagation()}),c.getDoc().execCommand("Paste",!1,null),i["text/html"]=f.getHtml()),z(i,"text/html")?(e.preventDefault(),u||(u=b.isMarked(i["text/html"])),p(i,s,l,u)):h.setEditorTimeout(c,function(){p(i,s,l,u)},0)):f.remove()})},Y=function(e){return e.dom.get("mcepastebin")},Z=function(e,t){return t===e},J=function(r){var e=o(null),a="%MCEPASTEBIN%";return{create:function(){return function(e,t,n){var r,a,i=e.dom,o=e.getBody(),s=e.dom.getViewPort(e.getWin()).y,l=20;t.set(e.selection.getRng());var u=t.get();if(e.inline&&(a=e.selection.getScrollContainer())&&0<a.scrollTop&&(s=a.scrollTop),u.getClie
 ntRects){var c=function(e){var t,n,r,a=e.startContainer;if((t=e.getClientRects()).length)return t[0];if(e.collapsed&&1===a.nodeType){for(r=a.childNodes[u.startOffset];r&&3===r.nodeType&&!r.data.length;)r=r.nextSibling;if(r)return"BR"===r.tagName&&(n=i.doc.createTextNode("\ufeff"),r.parentNode.insertBefore(n,r),(e=i.createRng()).setStartBefore(n),e.setEndAfter(n),t=e.getClientRects(),i.remove(n)),t.length?t[0]:void 0}}(u);if(c)l=s+(c.top-i.getPos(o).y);else{l=s;var f=u.startContainer;f&&(3===f.nodeType&&f.parentNode!==o&&(f=f.parentNode),1===f.nodeType&&(l=i.getPos(f,a||o).y))}}r=e.dom.add(e.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+l+"px; width: 10px; height: 10px; overflow: hidden; opacity: 0"},n),(v.ie||v.gecko)&&i.setStyle(r,"left","rtl"===i.ge
 tStyle(o,"direction",!0)?65535:-65535),i.bind(r,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),r.focus(),e.selection.select(r,!0)}(r,e,a)},remove:function(){return function(e,t){if(Y(e)){for(var n=void 0,r=t.get();n=e.dom.get("mcepastebin");)e.dom.remove(n),e.dom.unbind(n);r&&e.selection.setRng(r)}t.set(null)}(r,e)},getEl:function(){return Y(r)},getHtml:function(){return function(n){var t,e,r,a,i,o=function(e,t){e.appendChild(t),n.dom.remove(t,!0)};for(e=y.grep(n.getBody().childNodes,function(e){return"mcepastebin"===e.id}),t=e.shift(),y.each(e,function(e){o(t,e)}),r=(a=n.dom.select("div[id=mcepastebin]",t)).length-1;0<=r;r--)i=n.dom.create("div"),t.insertBefore(i,a[r]),o(i,a[r]);return t?t.innerHTML:""}(r)},getLastRng:function(){return e.get()},isDefault:function(){return e=a,n=Y(r),(t=n)&&"mcepastebin"===t.id&&Z(e,n.innerHTML);var e,t,n},isDefaultConten
 t:function(e){return Z(a,e)}}},Q=function(n,e){var t=J(n);return n.on("preInit",function(){return q(o=n,t,e),void o.parser.addNodeFilter("img",function(e,t,n){var r,a=function(e){e.attr("data-mce-object")||s===v.transparentSrc||e.remove()};if(!o.settings.paste_data_images&&(r=n).data&&!0===r.data.paste)for(var i=e.length;i--;)(s=e[i].attributes.map.src)&&(0===s.indexOf("webkit-fake-url")?a(e[i]):o.settings.allow_html_data_urls||0!==s.indexOf("data:")||a(e[i]))});var o,s}),{pasteFormat:e,pasteHtml:function(e,t){return W(n,e,t)},pasteText:function(e){return j(n,e)},pasteImageData:function(e,t){return G(n,e,t)},getDataTransferItems:V,hasHtmlOrText:K,hasContentType:z}},ee=function(){},te=function(e,t,n){if(r=e,!1!==v.iOS||r===undefined||"function"!=typeof r.setData||!0===k.isMsEdge())return!1;try{return e.clearData(),e.setData("text/html",t),e.setData("text/plain",n),e.setData(b.inter
 nalHtmlMime(),t),!0}catch(a){return!1}var r},ne=function(e,t,n,r){te(e.clipboardData,t.html,t.text)?(e.preventDefault(),r()):n(t.html,r)},re=function(s){return function(e,t){var n=b.mark(e),r=s.dom.create("div",{contenteditable:"false","data-mce-bogus":"all"}),a=s.dom.create("div",{contenteditable:"true"},n);s.dom.setStyles(r,{position:"fixed",top:"0",left:"-3000px",width:"1000px",overflow:"hidden"}),r.appendChild(a),s.dom.add(s.getBody(),r);var i=s.selection.getRng();a.focus();var o=s.dom.createRng();o.selectNodeContents(a),s.selection.setRng(o),setTimeout(function(){s.selection.setRng(i),r.parentNode.removeChild(r),t()},0)}},ae=function(e){return{html:e.selection.getContent({contextual:!0}),text:e.selection.getContent({format:"text"})}},ie=function(e){var t,n;e.on("cut",(t=e,function(e){!1===t.selection.isCollapsed()&&ne(e,ae(t),re(t),function()
 {setTimeout(function(){t.execCommand("Delete")},0)})})),e.on("copy",(n=e,function(e){!1===n.selection.isCollapsed()&&ne(e,ae(n),re(n),ee)}))},oe=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),se=function(e,t){return oe.getCaretRangeFromPoint(t.clientX,t.clientY,e.getDoc())},le=function(e,t){e.focus(),e.selection.setRng(t)},ue=function(o,s,l){m.shouldBlockDrop(o)&&o.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),m.shouldPasteDataImages(o)||o.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&0<t.files.length&&e.preventDefault()}),o.on("drop",function(e){var t,n;if(n=se(o,e),!e.isDefaultPrevented()&&!l.get()){t=s.getDataTransferItems(e.dataTransfer);var r,a=s.hasContentType(t,b.internalHtmlMime());if((s.hasHtmlOrText(t)&&(!(r=t["text/plain"])||0!==r.indexOf("file://"))||!s.pasteIm
 ageData(e,n))&&n&&m.shouldFilterDrop(o)){var i=t["mce-internal"]||t["text/html"]||t["text/plain"];i&&(e.preventDefault(),h.setEditorTimeout(o,function(){o.undoManager.transact(function(){t["mce-internal"]&&o.execCommand("Delete"),le(o,n),i=k.trimHtml(i),t["text/html"]?s.pasteHtml(i,a):s.pasteText(i)})}))}}}),o.on("dragstart",function(e){l.set(!0)}),o.on("dragover dragend",function(e){m.shouldPasteDataImages(o)&&!1===l.get()&&(e.preventDefault(),le(o,se(o,e))),"dragend"===e.type&&l.set(!1)})},ce=function(e){var t=e.plugins.paste,n=m.getPreProcess(e);n&&e.on("PastePreProcess",function(e){n.call(t,t,e)});var r=m.getPostProcess(e);r&&e.on("PastePostProcess",function(e){r.call(t,t,e)})};function fe(t,n){t.on("PastePreProcess",function(e){e.content=n(t,e.content,e.internal,e.wordContent)})}function d
 e(e,t){if(!S.isWordContent(t))return t;var n=[];y.each(e.schema.getBlockElements(),function(e,t){n.push(t)});var r=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+n.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return t=k.filter(t,[[r,"$1"]]),t=k.filter(t,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function me(e,t,n,r){if(r||n)return t;var u,a=m.getWebkitStyles(e);if(!1===m.shouldRemoveWebKitStyles(e)||"all"===a)return t;if(a&&(u=a.split(/[, ]/)),u){var c=e.dom,f=e.selection.getNode();t=t.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(e,t,n,r){var a=c.parseStyle(c.decode(n)),i={};if("none"===u)return t+r;for(var o=0;o<u.length;o++){var s=a[u[o]],l=c.getStyle(f,u[o],!0);/color/.test(u[o])&&(s=c.toHex(s),l=c.toH
 ex(l)),l!==s&&(i[u[o]]=s)}return(i=c.serializeStyle(i,"span"))?t+' style="'+i+'"'+r:t+r})}else t=t.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return t=t.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,r){return t+' style="'+n+'"'+r})}function ge(n,e){n.$("a",e).find("font,u").each(function(e,t){n.dom.remove(t,!0)})}var pe=function(e){var t,n;v.webkit&&fe(e,me),v.ie&&(fe(e,de),n=ge,(t=e).on("PastePostProcess",function(e){n(t,e.node)}))},ve=function(e){return function(){return e}},he=(ve(!1),ve(!0),function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var o=new Array(arguments.length-1),n=1;n<arguments.length;n++)o[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=argumen
 ts[r];var a=o.concat(n);return i.apply(null,a)}}),ye=function(e,t,n){var r=n.control;r.active("text"===t.pasteFormat.get()),e.on("PastePlainTextToggle",function(e){r.active(e.state)})},be=function(e,t){var n=he(ye,e,t);e.addButton("pastetext",{active:!1,icon:"pastetext",tooltip:"Paste as text",cmd:"mceTogglePlainTextPaste",onPostRender:n}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:t.pasteFormat,cmd:"mceTogglePlainTextPaste",onPostRender:n})};t.add("paste",function(e){if(!1===s(e)){var t=o(!1),n=o(!1),r=o(m.isPasteAsTextEnabled(e)?"text":"html"),a=Q(e,r),i=pe(e);return be(e,a),c(e,a,t),ce(e),ie(e),ue(e,a,n),l(a,i)}})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(){"use strict";var u=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return u(n())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=function(e){return!(!/(^|[ ,])powerpaste([, ]|$)/.test(e.settings.plugins)||!t.get("powerpaste")||("undefined"!=typeof window.console&&window.console.log&&window.console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option."),0))},s=function(e,t){return{clipboard:e,quirks:t}},f=function(e,t,n,r){return e.fire("PastePreProcess",{content:t,internal:n,wordContent:r})},d=function(e,t,n,r){return e.fire("PastePostProcess",{node:t,internal:n,wordContent:r})},l=function(e,t){return e.fire("PastePlainTextToggle",{state:t})},n=function(e,t){return e.fire("paste&quo
 t;,{ieFake:t})},m={shouldPlainTextInform:function(e){return e.getParam("paste_plaintext_inform",!0)},shouldBlockDrop:function(e){return e.getParam("paste_block_drop",!1)},shouldPasteDataImages:function(e){return e.getParam("paste_data_images",!1)},shouldFilterDrop:function(e){return e.getParam("paste_filter_drop",!0)},getPreProcess:function(e){return e.getParam("paste_preprocess")},getPostProcess:function(e){return e.getParam("paste_postprocess")},getWebkitStyles:function(e){return e.getParam("paste_webkit_styles")},shouldRemoveWebKitStyles:function(e){return e.getParam("paste_remove_styles_if_webkit",!0)},shouldMergeFormats:function(e){return e.getParam("paste_merge_formats",!0)},isSmartPasteEnabled:function(e){return e.getParam("smart_paste",!0)},isPasteAsTextEnabled:function(e){return e.getParam("paste_as_text",!1)},getRetainStyleProps:function(e){return e.getParam("
 paste_retain_style_properties")},getWordValidElements:function(e){return e.getParam("paste_word_valid_elements","-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody")},shouldConvertWordFakeLists:function(e){return e.getParam("paste_convert_word_fake_lists",!0)},shouldUseDefaultFilters:function(e){return e.getParam("paste_enable_default_filters",!0)}},r=function(e,t,n){var r,a,i;"text"===t.pasteFormat.get()?(t.pasteFormat.set("html"),l(e,!1)):(t.pasteFormat.set("text"),l(e,!0),i=e,!1===n.get()&&m.shouldPlainTextInform(i)&&(a="Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.",(r=e).notificationManager.open({text:r.translate(a),type:"info"}),n.set(!0))),e.focus()},c=function(e,n,
 t){e.addCommand("mceTogglePlainTextPaste",function(){r(e,n,t)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&n.pasteHtml(t.content,t.internal),t.text&&n.pasteText(t.text)})},v=tinymce.util.Tools.resolve("tinymce.Env"),h=tinymce.util.Tools.resolve("tinymce.util.Delay"),b=tinymce.util.Tools.resolve("tinymce.util.Tools"),a=tinymce.util.Tools.resolve("tinymce.util.VK"),e="x-tinymce/html",i="\x3c!-- "+e+" --\x3e",p=function(e){return i+e},g=function(e){return e.replace(i,"")},y=function(e){return-1!==e.indexOf(i)},x=function(){return e},P=tinymce.util.Tools.resolve("tinymce.html.Entities"),w=function(e){return e.replace(/\r?\n/g,"<br>")},_=function(e,t,n){var r=e.split(/\n\n/),a=function(e,t){var n,r=[],a="<"+e;if("object"==typeof t){for(n in t)t.hasOwnProperty(n)&&r.push(n+'="'+P.encodeAllRa
 w(t[n])+'"');r.length&&(a+=" "+r.join(" "))}return a+">"}(t,n),i="</"+t+">",o=b.map(r,function(e){return e.split(/\n/).join("<br />")});return 1===o.length?o[0]:b.map(o,function(e){return a+e+i}).join("")},D=function(e){return!/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(e)},T=function(e,t,n){return t?_(e,t,n):w(e)},C=tinymce.util.Tools.resolve("tinymce.html.DomParser"),k=tinymce.util.Tools.resolve("tinymce.html.Node"),R=tinymce.util.Tools.resolve("tinymce.html.Schema"),F=tinymce.util.Tools.resolve("tinymce.html.Serializer");function E(t,e){return b.each(e,function(e){t=e.constructor===RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}var S={filter:E,innerText:function(t){var n=R(),r=C({},n),a="",i=n.getShortEndedElements(),o=b.makeMap(&qu
 ot;script noscript style textarea video audio iframe object"," "),s=n.getBlockElements();return t=E(t,[/<!\[[^\]]+\]>/g]),function e(t){var n=t.name,r=t;if("br"!==n)if(i[n]&&(a+=" "),o[n])a+=" ";else{if(3===t.type&&(a+=t.value),!t.shortEnded&&(t=t.firstChild))for(;e(t),t=t.next;);s[n]&&r.next&&(a+="\n","p"===n&&(a+="\n"))}else a+="\n"}(r.parse(t)),a},trimHtml:function(e){return e=E(e,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,function(e,t,n){return t||n?"\xa0":" "}],/<br class="Apple-interchange-newline">/g,/<br>$/i])},createIdGenerator:function(e){var t=0;return function(){return e+t++}},isMsEdge:function(){return-1!==navigator.userAgent.i
 ndexOf(" Edge/")}};function I(t){var n,e;return e=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],t=t.replace(/^[\u00a0 ]+/,""),b.each(e,function(e){if(e.test(t))return!(n=!0)}),n}function M(e){var i,o,s=1;function n(e){var t="";if(3===e.type)return e.value;if(e=e.firstChild)for(;t+=n(e),e=e.next;);return t}function l(e,t){if(3===e.type&&t.test(e.value))return e.value=e.value.replace(t,""),!1;if(e=e.firstChild)do{if(!l(e,t))return!1}while(e=e.next);return!0}function t(t,n,r){var a=t._listLevel||s;a!==s&&(a<s?i&&(i=i.parent.parent):(o=i,i=null)),i&&i.name===n?i.append(t):(o=o||i,i=new k(n,1),1<r&&i.attr("start",""+r),t.wrap(i)),t.name=&q
 uot;li",s<a&&o&&o.lastChild.append(i),s=a,function e(t){if(t._listIgnore)t.remove();else if(t=t.firstChild)for(;e(t),t=t.next;);}(t),l(t,/^\u00a0+/),l(t,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),l(t,/^\u00a0+/)}for(var r=[],a=e.firstChild;null!=a;)if(r.push(a),null!==(a=a.walk()))for(;void 0!==a&&a.parent!==e;)a=a.walk();for(var u=0;u<r.length;u++)if("p"===(e=r[u]).name&&e.firstChild){var c=n(e);if(/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(c)){t(e,"ul");continue}if(I(c)){var f=/([0-9]+)\./.exec(c),d=1;f&&(d=parseInt(f[1],10)),t(e,"ol",d);continue}if(e._listLevel){t(e,"ul",1);continue}i=null}else o=i,i=null}function O(n,r,a,i){var o,s={},e=n.dom.parseStyle(i);return b.each(e,function(e,t){switch(t){case"mso-list":(o=/\w+ \w+([0-9]+)/i.exec(i))&&(a._listLevel=parseInt(o[1],10)),/Ignore/i.test(e)&&a.firstChild&&(a._listIgnore=!0,a.firstChild._listIgnore=!0
 );break;case"horiz-align":t="text-align";break;case"vert-align":t="vertical-align";break;case"font-color":case"mso-foreground":t="color";break;case"mso-background":case"mso-highlight":t="background";break;case"font-weight":case"font-style":return void("normal"!==e&&(s[t]=e));case"mso-element":if(/^(comment|comment-list)$/i.test(e))return void a.remove()}0!==t.indexOf("mso-comment")?0!==t.indexOf("mso-")&&("all"===m.getRetainStyleProps(n)||r&&r[t])&&(s[t]=e):a.remove()}),/(bold)/i.test(s["font-weight"])&&(delete s["font-weight"],a.wrap(new k("b",1))),/(italic)/i.test(s["font-style"])&&(delete s["font-style"],a.wrap(new k("i",1))),(s=n.dom.serializeStyle(s,a.name))||null}var A={preProcess:function(e,t){return m.
 shouldUseDefaultFilters(e)?function(r,e){var t,a;(t=m.getRetainStyleProps(r))&&(a=b.makeMap(t.split(/[, ]/))),e=S.filter(e,[/<br class="?Apple-interchange-newline"?>/gi,/<b[^>]+id="?docs-internal-[^>]*>/gi,/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return 0<t.length?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var n=m.getWordValidElements(r),i=R({valid_elements:n,valid_children:"-li[p]"});b.each(i.elements,function(e){e.attributes["class"]||(e.attributes["class"]={},e.attributesOrder.push("class")),e.attributes.styl
 e||(e.attributes.style={},e.attributesOrder.push("style"))});var o=C({},i);o.addAttributeFilter("style",function(e){for(var t,n=e.length;n--;)(t=e[n]).attr("style",O(r,a,t,t.attr("style"))),"span"===t.name&&t.parent&&!t.attributes.length&&t.unwrap()}),o.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)n=(t=e[r]).attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(n)&&t.remove(),t.attr("class",null)}),o.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),o.addNodeFilter("a",function(e){for(var t,n,r,a=e.length;a--;)if(n=(t=e[a]).attr("href"),r=t.attr("name"),n&&-1!==n.indexOf("#_msocom_"))t.remove();else if(n&&0===n.indexOf("file://")&&(n=n.split("#")[1])&&(n="#"+n),n||r){if(r&&!/^_?(?:toc|edn|ftn)/i.te
 st(r)){t.unwrap();continue}t.attr({href:n,name:r})}else t.unwrap()});var s=o.parse(e);return m.shouldConvertWordFakeLists(r)&&M(s),e=F({validate:r.settings.validate},i).serialize(s)}(e,t):t},isWordContent:function(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}},H=function(e,t){return{content:e,cancelled:t}},B=function(e,t,n,r){var a,i,o,s,l,u,c=f(e,t,n,r);return e.hasEventListeners("PastePostProcess")&&!c.isDefaultPrevented()?(a=e,i=c.content,o=n,s=r,l=a.dom.create("div",{style:"display:none"},i),u=d(a,l,o,s),H(u.node.innerHTML,u.isDefaultPrevented())):H(c.content,c.isDefaultPrevented())},L=function(e,t,n){var r=A.isWordContent(t),a=r?A.preProcess(e,t):t;return B(e,a,n,r)},$=function(e,t){return e.insertContent(t,{merge:m.shouldMergeFormats(e),paste:!0}),!0},j=f
 unction(e){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(e)},W=function(e){return j(e)&&/.(gif|jpe?g|png)$/.test(e)},N=function(e,t,n){return!(!1!==e.selection.isCollapsed()||!j(t)||(a=t,i=n,(r=e).undoManager.extra(function(){i(r,a)},function(){r.execCommand("mceInsertLink",!1,a)}),0));var r,a,i},V=function(e,t,n){return!!W(t)&&(a=t,i=n,(r=e).undoManager.extra(function(){i(r,a)},function(){r.insertContent('<img src="'+a+'">')}),!0);var r,a,i},z=function(e,t){var n,r;!1===m.isSmartPasteEnabled(e)?$(e,t):(n=e,r=t,b.each([N,V,$],function(e){return!0!==e(n,r,$)}))},K=function(e,t,n){var r=n||y(t),a=L(e,g(t),r);!1===a.cancelled&&z(e,a.content)},U=function(e,t){t=e.dom.encode(t).replace(/\r\n/g,"\n"),t=T(t,e.settings.forced_root_block,e.settings.forced_root_block_attrs),K(e,t,!1)},G=function(e){var t={};if(e){if(e.getData){var n=e.getData("Text");n&&0<n.length&&-1===n.indexOf("data:text/mce-
 internal,")&&(t["text/plain"]=n)}if(e.types)for(var r=0;r<e.types.length;r++){var a=e.types[r];try{t[a]=e.getData(a)}catch(i){t[a]=""}}}return t},X=function(e,t){return t in e&&0<e[t].length},q=function(e){return X(e,"text/html")||X(e,"text/plain")},Y=S.createIdGenerator("mceclip"),Z=function(e,t,n,r){t&&(e.selection.setRng(t),t=null);var a,i,o,s,l,u,c,f=n.result,d=-1!==(i=(a=f).indexOf(","))?a.substr(i+1):null,m=Y(),p=e.settings.images_reuse_filename&&r.name?(o=e,s=r.name,(l=s.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i))?o.dom.encode(l[1]):null):m,g=new Image;if(g.src=f,u=e.settings,c=g,!u.images_dataimg_filter||u.images_dataimg_filter(c)){var v,h=e.editorUpload.blobCache,b=void 0;(v=h.findFirst(function(e){return e.base64()===d}))?b=v:(b=h.create(m,r,d,p),h.add(b)),K(e,'<img src="'+b.blobUri()+'">',!1)}else K(e,'<img src="'+f+'">',!1)},J=function(o
 ,s,l){var e="paste"===s.type?s.clipboardData:s.dataTransfer;function t(e){var t,n,r,a=!1;if(e)for(t=0;t<e.length;t++)if(n=e[t],/^image\/(jpeg|png|gif|bmp)$/.test(n.type)){var i=n.getAsFile?n.getAsFile():n;(r=new window.FileReader).onload=Z.bind(null,o,l,r,i),r.readAsDataURL(i),s.preventDefault(),a=!0}return a}if(o.settings.paste_data_images&&e)return t(e.items)||t(e.files)},Q=function(e){return a.metaKeyPressed(e)&&86===e.keyCode||e.shiftKey&&45===e.keyCode},ee=function(c,f,d){var m,p=0;function g(e,t,n,r){var a,i;X(e,"text/html")?a=e["text/html"]:(a=f.getHtml(),r=r||y(a),f.isDefaultContent(a)&&(n=!0)),a=S.trimHtml(a),f.remove(),i=!1===r&&D(a),a.length&&!i||(n=!0),n&&(a=X(e,"text/plain")&&i?e["text/plain"]:S.innerText(a)),f.isDefaultContent(a)?t||c.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."):n?U(c,a):K(c,a,r)}c.on(&qu
 ot;keydown",function(e){function t(e){Q(e)&&!e.isDefaultPrevented()&&f.remove()}if(Q(e)&&!e.isDefaultPrevented()){if((m=e.shiftKey&&86===e.keyCode)&&v.webkit&&-1!==navigator.userAgent.indexOf("Version/"))return;if(e.stopImmediatePropagation(),p=(new Date).getTime(),v.ie&&m)return e.preventDefault(),void n(c,!0);f.remove(),f.create(),c.once("keyup",t),c.once("paste",function(){c.off("keyup",t)})}}),c.on("paste",function(e){var t,n,r,a=(new Date).getTime(),i=(t=c,n=G(e.clipboardData||t.getDoc().dataTransfer),S.isMsEdge()?b.extend(n,{"text/html":""}):n),o=(new Date).getTime()-a,s=(new Date).getTime()-p-o<1e3,l="text"===d.get()||m,u=X(i,x());m=!1,e.isDefaultPrevented()||(r=e.clipboardData,-1!==navigator.userAgent.indexOf("Android")&&r&&r.items&&0===r.items.length)?f.remove():q(i)||!J(c,e,f.getLastRng()||c.select
 ion.getRng())?(s||e.preventDefault(),!v.ie||s&&!e.ieFake||X(i,"text/html")||(f.create(),c.dom.bind(f.getEl(),"paste",function(e){e.stopPropagation()}),c.getDoc().execCommand("Paste",!1,null),i["text/html"]=f.getHtml()),X(i,"text/html")?(e.preventDefault(),u||(u=y(i["text/html"])),g(i,s,l,u)):h.setEditorTimeout(c,function(){g(i,s,l,u)},0)):f.remove()})},te=function(e){return v.ie&&e.inline?document.body:e.getBody()},ne=function(t,e){var n;te(n=t)!==n.getBody()&&t.dom.bind(e,"paste keyup",function(e){setTimeout(function(){t.fire("paste")},0)})},re=function(e){return e.dom.get("mcepastebin")},ae=function(e,t){return t===e},ie=function(o){var s=u(null),l="%MCEPASTEBIN%";return{create:function(){return t=s,n=l,a=(e=o).dom,i=e.getBody(),t.set(e.selection.getRng()),r=e.dom.add(te(e),"div",{id:"mcepastebin","class":"mce-pastebin"
 ,contentEditable:!0,"data-mce-bogus":"all",style:"position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0"},n),(v.ie||v.gecko)&&a.setStyle(r,"left","rtl"===a.getStyle(i,"direction",!0)?65535:-65535),a.bind(r,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),ne(e,r),r.focus(),void e.selection.select(r,!0);var e,t,n,r,a,i},remove:function(){return function(e,t){if(re(e)){for(var n=void 0,r=t.get();n=e.dom.get("mcepastebin");)e.dom.remove(n),e.dom.unbind(n);r&&e.selection.setRng(r)}t.set(null)}(o,s)},getEl:function(){return re(o)},getHtml:function(){return function(n){var t,e,r,a,i,o=function(e,t){e.appendChild(t),n.dom.remove(t,!0)};for(e=b.grep(te(n).childNodes,function(e){return"mcepastebin"===e.id}),t=e.shift(),b.each(e,function(e){o(t,e)}),r=(a=n.dom.select("div[id=mcepastebin]",t)).length-1;0<=r;r--)i=n.dom.create(&q
 uot;div"),t.insertBefore(i,a[r]),o(i,a[r]);return t?t.innerHTML:""}(o)},getLastRng:function(){return s.get()},isDefault:function(){return e=l,n=re(o),(t=n)&&"mcepastebin"===t.id&&ae(e,n.innerHTML);var e,t,n},isDefaultContent:function(e){return ae(l,e)}}},oe=function(n,e){var t=ie(n);return n.on("preInit",function(){return ee(o=n,t,e),void o.parser.addNodeFilter("img",function(e,t,n){var r,a=function(e){e.attr("data-mce-object")||s===v.transparentSrc||e.remove()};if(!o.settings.paste_data_images&&(r=n).data&&!0===r.data.paste)for(var i=e.length;i--;)(s=e[i].attributes.map.src)&&(0===s.indexOf("webkit-fake-url")?a(e[i]):o.settings.allow_html_data_urls||0!==s.indexOf("data:")||a(e[i]))});var o,s}),{pasteFormat:e,pasteHtml:function(e,t){return K(n,e,t)},pasteText:function(e){return U(n,e)},pasteImageData:function(e,t){return J(n,e,t)},getDataTransferItems:G,hasHtmlOrText:q,
 hasContentType:X}},se=function(){},le=function(e,t,n){if(r=e,!1!==v.iOS||r===undefined||"function"!=typeof r.setData||!0===S.isMsEdge())return!1;try{return e.clearData(),e.setData("text/html",t),e.setData("text/plain",n),e.setData(x(),t),!0}catch(a){return!1}var r},ue=function(e,t,n,r){le(e.clipboardData,t.html,t.text)?(e.preventDefault(),r()):n(t.html,r)},ce=function(s){return function(e,t){var n=p(e),r=s.dom.create("div",{contenteditable:"false","data-mce-bogus":"all"}),a=s.dom.create("div",{contenteditable:"true"},n);s.dom.setStyles(r,{position:"fixed",top:"0",left:"-3000px",width:"1000px",overflow:"hidden"}),r.appendChild(a),s.dom.add(s.getBody(),r);var i=s.selection.getRng();a.focus();var o=s.dom.createRng();o.selectNodeContents(a),s.selection.setRng(o),setTimeout(function(){s.selection.setRng(i),r.parentNode.removeChild(r),t()},0)}},fe=fun
 ction(e){return{html:e.selection.getContent({contextual:!0}),text:e.selection.getContent({format:"text"})}},de=function(e){var t,n;e.on("cut",(t=e,function(e){!1===t.selection.isCollapsed()&&ue(e,fe(t),ce(t),function(){setTimeout(function(){t.execCommand("Delete")},0)})})),e.on("copy",(n=e,function(e){!1===n.selection.isCollapsed()&&ue(e,fe(n),ce(n),se)}))},me=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),pe=function(e,t){return me.getCaretRangeFromPoint(t.clientX,t.clientY,e.getDoc())},ge=function(e,t){e.focus(),e.selection.setRng(t)},ve=function(o,s,l){m.shouldBlockDrop(o)&&o.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),m.shouldPasteDataImages(o)||o.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&0<t.files.length&&e.preventDefault()}),o.on("drop",function(e){var t,n;if(n=pe(o,e)
 ,!e.isDefaultPrevented()&&!l.get()){t=s.getDataTransferItems(e.dataTransfer);var r,a=s.hasContentType(t,x());if((s.hasHtmlOrText(t)&&(!(r=t["text/plain"])||0!==r.indexOf("file://"))||!s.pasteImageData(e,n))&&n&&m.shouldFilterDrop(o)){var i=t["mce-internal"]||t["text/html"]||t["text/plain"];i&&(e.preventDefault(),h.setEditorTimeout(o,function(){o.undoManager.transact(function(){t["mce-internal"]&&o.execCommand("Delete"),ge(o,n),i=S.trimHtml(i),t["text/html"]?s.pasteHtml(i,a):s.pasteText(i)})}))}}}),o.on("dragstart",function(e){l.set(!0)}),o.on("dragover dragend",function(e){m.shouldPasteDataImages(o)&&!1===l.get()&&(e.preventDefault(),ge(o,pe(o,e))),"dragend"===e.type&&l.set(!1)})},he=function(e){var t=e.plugins.paste,n=m.getPreProcess(e);n&&e.on("PastePreProcess",function(e){n.call(t,t,
 e)});var r=m.getPostProcess(e);r&&e.on("PastePostProcess",function(e){r.call(t,t,e)})};function be(t,n){t.on("PastePreProcess",function(e){e.content=n(t,e.content,e.internal,e.wordContent)})}function ye(e,t){if(!A.isWordContent(t))return t;var n=[];b.each(e.schema.getBlockElements(),function(e,t){n.push(t)});var r=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+n.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return t=S.filter(t,[[r,"$1"]]),t=S.filter(t,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function xe(e,t,n,r){if(r||n)return t;var u,a=m.getWebkitStyles(e);if(!1===m.shouldRemoveWebKitStyles(e)||"all"===a)return t;if(a&&(u=a.split(/[, ]/)),u){var c=e.dom,f=e.selection.getNode();t=t.replace(/(<[^>]+) style="([^"]*)&qu
 ot;([^>]*>)/gi,function(e,t,n,r){var a=c.parseStyle(c.decode(n)),i={};if("none"===u)return t+r;for(var o=0;o<u.length;o++){var s=a[u[o]],l=c.getStyle(f,u[o],!0);/color/.test(u[o])&&(s=c.toHex(s),l=c.toHex(l)),l!==s&&(i[u[o]]=s)}return(i=c.serializeStyle(i,"span"))?t+' style="'+i+'"'+r:t+r})}else t=t.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return t=t.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,r){return t+' style="'+n+'"'+r})}function Pe(n,e){n.$("a",e).find("font,u").each(function(e,t){n.dom.remove(t,!0)})}var we=function(e){var t,n;v.webkit&&be(e,xe),v.ie&&(be(e,ye),n=Pe,(t=e).on("PastePostProcess",function(e){n(t,e.node)}))},_e=function(e,t,n){var r=n.control;r.active("text"===t.pasteFormat.get()),e.on("PastePlainTextToggle",function(e){r.active(e.stat
 e)})},De=function(e,t){var n=function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var o=new Array(arguments.length-1),n=1;n<arguments.length;n++)o[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var a=o.concat(n);return i.apply(null,a)}}(_e,e,t);e.addButton("pastetext",{active:!1,icon:"pastetext",tooltip:"Paste as text",cmd:"mceTogglePlainTextPaste",onPostRender:n}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:t.pasteFormat,cmd:"mceTogglePlainTextPaste",onPostRender:n})};t.add("paste",function(e){if(!1===o(e)){var t=u(!1),n=u(!1),r=u(m.isPasteAsTextEnabled(e)?"text":"html"),a=oe(e,r),i=we(e);return De(e,a),c(e,a,t),he(e),de(e),ve(e,a,n),s(a,i)}})}();
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginstabfocuspluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js  2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js    2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22,7 +22,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getTabFocus = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.getParam('tab_focus', getTabFocusElements(editor));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_54igvnk1jfuw8q35 = { getTabFocus: getTabFocus };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8rita4kwjjgwed4m = { getTabFocus: getTabFocus };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM = global$1.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var tabCancel = function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -65,7 +65,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      v = global$5.explode($_54igvnk1jfuw8q35.getTabFocus(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      v = global$5.explode($_8rita4kwjjgwed4m.getTabFocus(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">       if (v.length === 1) {
</span><span class="cx" style="display: block; padding: 0 10px">         v[1] = v[0];
</span><span class="cx" style="display: block; padding: 0 10px">         v[0] = ':prev';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -110,10 +110,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4nj741jujfuw8q2z = { setup: setup };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6zogdykpjjgwed4h = { setup: setup };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('tabfocus', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_4nj741jujfuw8q2z.setup(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_6zogdykpjjgwed4h.setup(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginstabfocuspluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js      2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js        2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.EditorManager"),s=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Delay"),y=tinymce.util.Tools.resolve("tinymce.util.Tools"),f=tinymce.util.Tools.resolve("tinymce.util.VK"),d={getTabFocus:function(e){return e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))}},m=t.DOM,n=function(e){e.keyCode!==f.TAB||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()},i=function(r){function e(n){var i,o,e,l;if(!(n.keyCode!==f.TAB||n.ctrlKey||n.altKey||n.metaKey||n.isDefaultPrevented())&&(1===(e=y.explode(d.getTabFocus(r))).length&&(e[1]=e[0],e[0]=":pr
 ev"),o=n.shiftKey?":prev"===e[0]?u(-1):m.get(e[0]):":next"===e[1]?u(1):m.get(e[1]))){var t=c.get(o.id||o.name);o.id&&t?t.focus():a.setTimeout(function(){s.webkit||window.focus(),o.focus()},10),n.preventDefault()}function u(e){function t(t){return/INPUT|TEXTAREA|BUTTON/.test(t.tagName)&&c.get(n.id)&&-1!==t.tabIndex&&function e(t){return"BODY"===t.nodeName||"hidden"!==t.type&&"none"!==t.style.display&&"hidden"!==t.style.visibility&&e(t.parentNode)}(t)}if(o=m.select(":input:enabled,*[tabindex]:not(iframe)"),y.each(o,function(e,t){if(e.id===r.id)return i=t,!1}),0<e){for(l=i+1;l<o.length;l++)if(t(o[l]))return o[l]}else for(l=i-1;0<=l;l--)if(t(o[l]))return o[l];return null}}r.on("init",function(){r.inline&&m.setAttrib(r.getBody(),"tabIndex",null),r.on("keyup",n),s.gecko?r.on("keypress keydown",e):r.on(&q
 uot;keydown",e)})};e.add("tabfocus",function(e){i(e)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.EditorManager"),s=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Delay"),y=tinymce.util.Tools.resolve("tinymce.util.Tools"),f=tinymce.util.Tools.resolve("tinymce.util.VK"),d=function(e){return e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))},m=t.DOM,n=function(e){e.keyCode!==f.TAB||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()},i=function(r){function e(n){var i,o,e,l;if(!(n.keyCode!==f.TAB||n.ctrlKey||n.altKey||n.metaKey||n.isDefaultPrevented())&&(1===(e=y.explode(d(r))).length&&(e[1]=e[0],e[0]=":prev"),o=n.shiftKey?&qu
 ot;:prev"===e[0]?u(-1):m.get(e[0]):":next"===e[1]?u(1):m.get(e[1]))){var t=c.get(o.id||o.name);o.id&&t?t.focus():a.setTimeout(function(){s.webkit||window.focus(),o.focus()},10),n.preventDefault()}function u(e){function t(t){return/INPUT|TEXTAREA|BUTTON/.test(t.tagName)&&c.get(n.id)&&-1!==t.tabIndex&&function e(t){return"BODY"===t.nodeName||"hidden"!==t.type&&"none"!==t.style.display&&"hidden"!==t.style.visibility&&e(t.parentNode)}(t)}if(o=m.select(":input:enabled,*[tabindex]:not(iframe)"),y.each(o,function(e,t){if(e.id===r.id)return i=t,!1}),0<e){for(l=i+1;l<o.length;l++)if(t(o[l]))return o[l]}else for(l=i-1;0<=l;l--)if(t(o[l]))return o[l];return null}}r.on("init",function(){r.inline&&m.setAttrib(r.getBody(),"tabIndex",null),r.on("keyup",n),s.gecko?r.on("keypress keydown",e):r.on("keydown",e)})};e.
 add("tabfocus",function(e){i(e)})}();
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginstextcolorpluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.js 2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.js   2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -39,7 +39,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4zaeklqljfuw8rym = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_b0p88yrijjgwefd2 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getCurrentColor: getCurrentColor,
</span><span class="cx" style="display: block; padding: 0 10px">     mapColors: mapColors,
</span><span class="cx" style="display: block; padding: 0 10px">     applyFormat: applyFormat,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -48,13 +48,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceApplyTextcolor', function (format, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_4zaeklqljfuw8rym.applyFormat(editor, format, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_b0p88yrijjgwefd2.applyFormat(editor, format, value);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addCommand('mceRemoveTextcolor', function (format) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_4zaeklqljfuw8rym.removeFormat(editor, format);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_b0p88yrijjgwefd2.removeFormat(editor, format);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5bxwpcqkjfuw8ryl = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_g2o2pirhjjgwefd1 = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -173,7 +173,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var hasColorPicker = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return typeof getColorPickerCallback(editor) === 'function';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_92xy2xqpjfuw8ryt = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2rfqb7rmjjgwefd9 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getForeColorMap: getForeColorMap,
</span><span class="cx" style="display: block; padding: 0 10px">     getBackColorMap: getBackColorMap,
</span><span class="cx" style="display: block; padding: 0 10px">     getForeColorRows: getForeColorRows,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -193,7 +193,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var isNoColor = color === 'transparent';
</span><span class="cx" style="display: block; padding: 0 10px">       return '<td class="mce-grid-cell' + (isNoColor ? ' mce-colorbtn-trans' : '') + '">' + '<div id="' + id + '-' + count++ + '"' + ' data-mce-color="' + (color ? color : '') + '"' + ' role="option"' + ' tabIndex="-1"' + ' style="' + (color ? 'background-color: ' + color : '') + '"' + ' title="' + global$3.translate(title) + '">' + (isNoColor ? '&#215;' : '') + '</div>' + '</td>';
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    colors = $_4zaeklqljfuw8rym.mapColors(colorMap);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    colors = $_b0p88yrijjgwefd2.mapColors(colorMap);
</ins><span class="cx" style="display: block; padding: 0 10px">     colors.push({
</span><span class="cx" style="display: block; padding: 0 10px">       text: global$3.translate('No color'),
</span><span class="cx" style="display: block; padding: 0 10px">       color: 'transparent'
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -224,7 +224,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     html += '</tbody></table>';
</span><span class="cx" style="display: block; padding: 0 10px">     return html;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2vokwrqqjfuw8ryv = { getHtml: getHtml };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fihh7qrnjjgwefdb = { getHtml: getHtml };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setDivColor = function setDivColor(div, value) {
</span><span class="cx" style="display: block; padding: 0 10px">     div.style.background = value;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -244,20 +244,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       var buttonCtrl = this.parent();
</span><span class="cx" style="display: block; padding: 0 10px">       var value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var currentColor = $_4zaeklqljfuw8rym.getCurrentColor(editor, buttonCtrl.settings.format);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var currentColor = $_b0p88yrijjgwefd2.getCurrentColor(editor, buttonCtrl.settings.format);
</ins><span class="cx" style="display: block; padding: 0 10px">       var selectColor = function (value) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        editor.execCommand('mceApplyTextcolor', buttonCtrl.settings.format, value);
</ins><span class="cx" style="display: block; padding: 0 10px">         buttonCtrl.hidePanel();
</span><span class="cx" style="display: block; padding: 0 10px">         buttonCtrl.color(value);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        editor.execCommand('mceApplyTextcolor', buttonCtrl.settings.format, value);
</del><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var resetColor = function () {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        editor.execCommand('mceRemoveTextcolor', buttonCtrl.settings.format);
</ins><span class="cx" style="display: block; padding: 0 10px">         buttonCtrl.hidePanel();
</span><span class="cx" style="display: block; padding: 0 10px">         buttonCtrl.resetColor();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        editor.execCommand('mceRemoveTextcolor', buttonCtrl.settings.format);
</del><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       if (global$1.DOM.getParent(e.target, '.mce-custom-color-btn')) {
</span><span class="cx" style="display: block; padding: 0 10px">         buttonCtrl.hidePanel();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var colorPickerCallback = $_92xy2xqpjfuw8ryt.getColorPickerCallback(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var colorPickerCallback = $_2rfqb7rmjjgwefd9.getColorPickerCallback(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         colorPickerCallback.call(editor, function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">           var tableElm = buttonCtrl.panel.getEl().getElementsByTagName('table')[0];
</span><span class="cx" style="display: block; padding: 0 10px">           var customColorCells, div, i;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -298,11 +298,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var renderColorPicker = function (editor, foreColor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var cols = foreColor ? $_92xy2xqpjfuw8ryt.getForeColorCols(editor) : $_92xy2xqpjfuw8ryt.getBackColorCols(editor);
-      var rows = foreColor ? $_92xy2xqpjfuw8ryt.getForeColorRows(editor) : $_92xy2xqpjfuw8ryt.getBackColorRows(editor);
-      var colorMap = foreColor ? $_92xy2xqpjfuw8ryt.getForeColorMap(editor) : $_92xy2xqpjfuw8ryt.getBackColorMap(editor);
-      var hasColorPicker = $_92xy2xqpjfuw8ryt.hasColorPicker(editor);
-      return $_2vokwrqqjfuw8ryv.getHtml(cols, rows, colorMap, hasColorPicker);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var cols = foreColor ? $_2rfqb7rmjjgwefd9.getForeColorCols(editor) : $_2rfqb7rmjjgwefd9.getBackColorCols(editor);
+      var rows = foreColor ? $_2rfqb7rmjjgwefd9.getForeColorRows(editor) : $_2rfqb7rmjjgwefd9.getBackColorRows(editor);
+      var colorMap = foreColor ? $_2rfqb7rmjjgwefd9.getForeColorMap(editor) : $_2rfqb7rmjjgwefd9.getBackColorMap(editor);
+      var hasColorPicker = $_2rfqb7rmjjgwefd9.hasColorPicker(editor);
+      return $_fihh7qrnjjgwefdb.getHtml(cols, rows, colorMap, hasColorPicker);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var register$1 = function (editor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -314,7 +314,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         role: 'application',
</span><span class="cx" style="display: block; padding: 0 10px">         ariaRemember: true,
</span><span class="cx" style="display: block; padding: 0 10px">         html: renderColorPicker(editor, true),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onclick: onPanelClick(editor, $_92xy2xqpjfuw8ryt.getForeColorCols(editor))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onclick: onPanelClick(editor, $_2rfqb7rmjjgwefd9.getForeColorCols(editor))
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       onclick: onButtonClick(editor)
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -326,16 +326,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">         role: 'application',
</span><span class="cx" style="display: block; padding: 0 10px">         ariaRemember: true,
</span><span class="cx" style="display: block; padding: 0 10px">         html: renderColorPicker(editor, false),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onclick: onPanelClick(editor, $_92xy2xqpjfuw8ryt.getBackColorCols(editor))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onclick: onPanelClick(editor, $_2rfqb7rmjjgwefd9.getBackColorCols(editor))
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       onclick: onButtonClick(editor)
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_f806lqqmjfuw8ryo = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8npvswrjjjgwefd5 = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('textcolor', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_5bxwpcqkjfuw8ryl.register(editor);
-    $_f806lqqmjfuw8ryo.register(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_g2o2pirhjjgwefd1.register(editor);
+    $_8npvswrjjjgwefd5.register(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Plugin () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcepluginstextcolorpluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.min.js     2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.min.js       2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(t,o){var r;return t.dom.getParents(t.selection.getStart(),function(t){var e;(e=t.style["forecolor"===o?"color":"background-color"])&&(r=e)}),r},g=function(t){var e,o=[];for(e=0;e<t.length;e+=2)o.push({text:t[e+1],color:"#"+t[e]});return o},r=function(t,e,o){t.undoManager.transact(function(){t.focus(),t.formatter.apply(e,{value:o}),t.nodeChanged()})},e=function(t,e){t.undoManager.transact(function(){t.focus(),t.formatter.remove(e,{value:null},null,!0),t.nodeChanged()})},o=function(o){o.addCommand("mceApplyTextcolor",function(t,e){r(o,t,e)}),o.addCommand("mceRemoveTextcolor",function(t){e(o,t)})},F=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.util.To
 ols"),a=["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Mag
 enta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],l=function(t){return t.getParam("textcolor_map",a)},c=function(t){return t.getParam("textcolor_rows",5)},u=function(t){return t.getParam("textcolor_cols",8)},m=function(t){return t.getParam("color_picker_callback",null)},s=function(t){return t.getParam("forecolor_map",l(t))},d=function(t){return t.getParam("backcolor_map",l(t))},f=function(t){return t.getParam("forecolor
 _rows",c(t))},b=function(t){return t.getParam("backcolor_rows",c(t))},p=function(t){return t.getParam("forecolor_cols",u(t))},C=function(t){return t.getParam("backcolor_cols",u(t))},y=m,v=function(t){return"function"==typeof m(t)},h=tinymce.util.Tools.resolve("tinymce.util.I18n"),P=function(t,e,o,r){var n,a,l,c,i,u,m,s=0,d=F.DOM.uniqueId("mcearia"),f=function(t,e){var o="transparent"===t;return'<td class="mce-grid-cell'+(o?" mce-colorbtn-trans":"")+'"><div id="'+d+"-"+s+++'" data-mce-color="'+(t||"")+'" role="option" tabIndex="-1" style="'+(t?"background-color: "+t:"")+'" title="'+h.translate(e)+'">'+(o?"&#215;":"")+"</div></td>"};for((n=g(o)).push({text:h.translate("No color"),color:"transparent"}),l='&l
 t;table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',c=n.length-1,u=0;u<e;u++){for(l+="<tr>",i=0;i<t;i++)l+=c<(m=u*t+i)?"<td></td>":f((a=n[m]).color,a.text);l+="</tr>"}if(r){for(l+='<tr><td colspan="'+t+'" class="mce-custom-color-btn"><div id="'+d+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+d+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+h.translate("Custom...")+"</button></div></td></tr>",l+="<tr>",i=0;i<t;i++)l+=f("","Custom color");l+="</tr>"}return l+="</tbody></table>"},k=function(t,e)
 {t.style.background=e,t.setAttribute("data-mce-color",e)},x=function(o){return function(t){var e=t.control;e._color?o.execCommand("mceApplyTextcolor",e.settings.format,e._color):o.execCommand("mceRemoveTextcolor",e.settings.format)}},T=function(r,c){return function(t){var e,a=this.parent(),o=n(r,a.settings.format),l=function(t){a.hidePanel(),a.color(t),r.execCommand("mceApplyTextcolor",a.settings.format,t)};F.DOM.getParent(t.target,".mce-custom-color-btn")&&(a.hidePanel(),y(r).call(r,function(t){var e,o,r,n=a.panel.getEl().getElementsByTagName("table")[0];for(e=i.map(n.rows[n.rows.length-1].childNodes,function(t){return t.firstChild}),r=0;r<e.length&&(o=e[r]).getAttribute("data-mce-color");r++);if(r===c)for(r=0;r<c-1;r++)k(e[r],e[r+1].getAttribute("data-mce-color"));k(o,t),l(t)},o)),(e=t.target.getAttribute("data-mce-color"))?(this.lastId&&F.DOM.get(this.lastId).se
 tAttribute("aria-selected","false"),t.target.setAttribute("aria-selected",!0),this.lastId=t.target.id,"transparent"===e?(a.hidePanel(),a.resetColor(),r.execCommand("mceRemoveTextcolor",a.settings.format)):l(e)):null!==e&&a.hidePanel()}},_=function(n,a){return function(){var t=a?p(n):C(n),e=a?f(n):b(n),o=a?s(n):d(n),r=v(n);return P(t,e,o,r)}},A=function(t){t.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:_(t,!0),onclick:T(t,p(t))},onclick:x(t)}),t.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:_(t,!1),onclick:T(t,C(t))},onclick:x(t)})};t.add("textcolor",function(t){o(t),A(t)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(t,o){var r;return t.dom.getParents(t.selection.getStart(),function(t){var e;(e=t.style["forecolor"===o?"color":"background-color"])&&(r=e)}),r},g=function(t){var e,o=[];for(e=0;e<t.length;e+=2)o.push({text:t[e+1],color:"#"+t[e]});return o},r=function(t,e,o){t.undoManager.transact(function(){t.focus(),t.formatter.apply(e,{value:o}),t.nodeChanged()})},e=function(t,e){t.undoManager.transact(function(){t.focus(),t.formatter.remove(e,{value:null},null,!0),t.nodeChanged()})},o=function(o){o.addCommand("mceApplyTextcolor",function(t,e){r(o,t,e)}),o.addCommand("mceRemoveTextcolor",function(t){e(o,t)})},F=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.util.To
 ols"),a=["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Mag
 enta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],l=function(t){return t.getParam("textcolor_map",a)},c=function(t){return t.getParam("textcolor_rows",5)},u=function(t){return t.getParam("textcolor_cols",8)},m=function(t){return t.getParam("color_picker_callback",null)},s=function(t){return t.getParam("forecolor_map",l(t))},d=function(t){return t.getParam("backcolor_map",l(t))},f=function(t){return t.getParam("forecolor
 _rows",c(t))},b=function(t){return t.getParam("backcolor_rows",c(t))},p=function(t){return t.getParam("forecolor_cols",u(t))},C=function(t){return t.getParam("backcolor_cols",u(t))},y=m,v=function(t){return"function"==typeof m(t)},h=tinymce.util.Tools.resolve("tinymce.util.I18n"),P=function(t,e,o,r){var n,a,l,c,i,u,m,s=0,d=F.DOM.uniqueId("mcearia"),f=function(t,e){var o="transparent"===t;return'<td class="mce-grid-cell'+(o?" mce-colorbtn-trans":"")+'"><div id="'+d+"-"+s+++'" data-mce-color="'+(t||"")+'" role="option" tabIndex="-1" style="'+(t?"background-color: "+t:"")+'" title="'+h.translate(e)+'">'+(o?"&#215;":"")+"</div></td>"};for((n=g(o)).push({text:h.translate("No color"),color:"transparent"}),l='&l
 t;table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',c=n.length-1,u=0;u<e;u++){for(l+="<tr>",i=0;i<t;i++)l+=c<(m=u*t+i)?"<td></td>":f((a=n[m]).color,a.text);l+="</tr>"}if(r){for(l+='<tr><td colspan="'+t+'" class="mce-custom-color-btn"><div id="'+d+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+d+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+h.translate("Custom...")+"</button></div></td></tr>",l+="<tr>",i=0;i<t;i++)l+=f("","Custom color");l+="</tr>"}return l+="</tbody></table>"},k=function(t,e)
 {t.style.background=e,t.setAttribute("data-mce-color",e)},x=function(o){return function(t){var e=t.control;e._color?o.execCommand("mceApplyTextcolor",e.settings.format,e._color):o.execCommand("mceRemoveTextcolor",e.settings.format)}},T=function(r,c){return function(t){var e,a=this.parent(),o=n(r,a.settings.format),l=function(t){r.execCommand("mceApplyTextcolor",a.settings.format,t),a.hidePanel(),a.color(t)};F.DOM.getParent(t.target,".mce-custom-color-btn")&&(a.hidePanel(),y(r).call(r,function(t){var e,o,r,n=a.panel.getEl().getElementsByTagName("table")[0];for(e=i.map(n.rows[n.rows.length-1].childNodes,function(t){return t.firstChild}),r=0;r<e.length&&(o=e[r]).getAttribute("data-mce-color");r++);if(r===c)for(r=0;r<c-1;r++)k(e[r],e[r+1].getAttribute("data-mce-color"));k(o,t),l(t)},o)),(e=t.target.getAttribute("data-mce-color"))?(this.lastId&&F.DOM.get(this.lastId).se
 tAttribute("aria-selected","false"),t.target.setAttribute("aria-selected",!0),this.lastId=t.target.id,"transparent"===e?(r.execCommand("mceRemoveTextcolor",a.settings.format),a.hidePanel(),a.resetColor()):l(e)):null!==e&&a.hidePanel()}},_=function(n,a){return function(){var t=a?p(n):C(n),e=a?f(n):b(n),o=a?s(n):d(n),r=v(n);return P(t,e,o,r)}},A=function(t){t.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:_(t,!0),onclick:T(t,p(t))},onclick:x(t)}),t.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:_(t,!1),onclick:T(t,C(t))},onclick:x(t)})};t.add("textcolor",function(t){o(t),A(t)})}();
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymceskinslightgraycontentinlinemincss"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.inline.min.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.inline.min.css      2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.inline.min.css        2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected=&quo
 t;2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-
 only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected=&qu
 ot;inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected=&quo
 t;2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-
 only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[
 contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3}
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymceskinslightgraycontentmincss"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.min.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.min.css     2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.min.css       2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:nor
 mal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{bor
 der:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data
 -mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:nor
 mal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{bor
 der:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data
 -mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snook
 er-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymceskinslightgrayskinmincss"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css        2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css  2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#595959;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto
 ;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-statusbar>.mce-container-body{display:flex;padding-right:16px}.mce-statusbar>.mce-container-body .mce-path{flex:1}.mce-wordcount{font-size:inherit;text-transform:uppercase;padding:8px 0}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative;font-size:11px}.mce-fullscreen .mce-resizehandle{display:none}.mce-statusbar .mce-flow-layout-item{margin:0}.mce-charmap{bo
 rder-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:white}.mce-grid td.mce-grid-cell div{border:1px solid #c5c5c5;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#91bbe9}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#91bbe9}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#c5c5c5;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#91bbe9;background:#bdd6f2}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;lin
 e-height:16px;color:#8b8b8b}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-container b{font-weight:bold}.mce-container p{margin-bottom:5px}.mce-container a{cursor:pointer;color:#2276d2}.mce-container a:hover{text-decoration:underline}.mce-container ul{margin-left:15px}.mce-container .mce-table-striped{border-collapse:collapse;margin:10px}.mce-container .mce-table-striped thead>tr{background-color:#fafafa}.mce-container .mce-table-striped thead>tr th{font-weight:bold}.mce-container .mce-table-striped td,.mce-container .mce-table-striped th{padding:5px}.mce-container .mce-table-striped tr:nth-child(even){background-color:#fafafa}.mce-container .mce-table-striped tbody>tr:hover{background-color:#e1e1e1}.mce-branding{font-size:inherit;text-transform:uppercase;white-space:pre;padding:8px 0}.mce-branding a{font-size:inherit;color:inherit}.mce-top-part{position:relative}.mce-top-part::before{content:
 '';position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;right:0;bottom:0;left:0;pointer-events:none}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-rtl .mce-statusbar>.mce-container-body>*:last-child{padding-right:0;padding-left:10px}.mce-rtl .mce-path{text-align:right;padding-right:16px}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-cro
 prect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.5;filter:alpha(opacity=50);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#2276d2}.mce-croprect-handle-move:focus{outline:1px solid #2276d2}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:#c5c5c5;border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bott
 om:-9px;border-top-color:#c5c5c5;border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#fff;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#fff;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:#c5c5c5;border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#fff;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-c
 enter.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:#c5c5c5;border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#fff;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-edit-aria-container>.mce-container-body{display:flex}.mce-edit-aria-container>.mce-container-body .mce-edit-area{flex:1}.mce-edit-aria-container>.mce-container-body .mce-sidebar>.mce-container-body{display:flex;align-items:stretch;height:100%}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel{min-width:250px;max-width:250px;position:relative}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel>.mce-container-body{position:absolute;width:100%;height:100%;overflow:auto;top:0;left:0}.mce-sidebar-toolbar{border:0 solid #c5c5c5;border-left-width:1px}.mce-sidebar-toolbar .mce-btn{border-left:0;border-r
 ight:0}.mce-sidebar-toolbar .mce-btn.mce-active,.mce-sidebar-toolbar .mce-btn.mce-active:hover{background-color:#555c66}.mce-sidebar-toolbar .mce-btn.mce-active button,.mce-sidebar-toolbar .mce-btn.mce-active:hover button,.mce-sidebar-toolbar .mce-btn.mce-active button i,.mce-sidebar-toolbar .mce-btn.mce-active:hover button i{color:white;text-shadow:1px 1px none}.mce-sidebar-panel{border:0 solid #c5c5c5;border-left-width:1px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(op
 acity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #f3f3f3;border:0 solid #c5c5c5;background-color:#fff}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;left:0;background:#FFF;border:1px solid #c5c5c5;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px
 ;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#c5c5c5;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-top{margin-top:-10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-top>.mce-arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#c5c5c5;top:auto;bottom:-11px}.mce-floatpanel.mce-popover.mce-top>.mce-arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start,.mce-floatpanel.mce-popover.mce-top.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end,.mce-floatpanel.mce-popover.mce-top.mce-end{
 margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#FFF}#mce-modal-block.mce-in{opacity:.5;filter:alpha(opacity=50);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.m
 ce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#9b9b9b}.mce-close:hover i{color:#bdbdbd}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#e2e4e7}.mce-window .mce-btn:hover{border-color:#c5c5c5}.mce-window .mce-btn:focus{border-color:#2276d2}.mce-window-body .mce-btn,.mce-foot .mce-btn{border-color:#c5c5c5}.mce-foot .mce-btn.mce-primary{border-color:transparent}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:0}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-he
 ad .mce-title{direction:rtl;text-align:right;padding-right:0;padding-left:20px}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1;margin-top:1px}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;bord
 er-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:sol
 id;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#595959}.mce-bar{display:block;width:0;height:100%;background-color:#dfdfdf;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#fff;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#c5c5c5;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0;box-sizing:border-box}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color
 :#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#595959}.mce-notification .mce-progress .mce-bar-container{border-color:#c5c5c5}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#595959}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-prog
 ress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font
 -weight:bold;line-height:20px;color:#9b9b9b;cursor:pointer}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b3b3b3;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);background:white;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn:hover,.mce-btn:active{background:white;color:#595959;border-color:#e2e4e7}.mce-btn:focus{background:white;color:#595959;border-color:#e2e4e7}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover,.mce-btn.mce-active:focus,.mce-btn.mce-active:active{-webkit-box-shadow:none;-moz-box-shadow:none;box-
 shadow:none;background:#555c66;color:white;border-color:transparent}.mce-btn.mce-active button,.mce-btn.mce-active:hover button,.mce-btn.mce-active i,.mce-btn.mce-active:hover i{color:white}.mce-btn:hover .mce-caret{border-top-color:#b5bcc2}.mce-btn.mce-active .mce-caret,.mce-btn.mce-active:hover .mce-caret{border-top-color:white}.mce-btn button{padding:4px 6px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#595959;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:white;border:1px solid transparent;border-color:transparent;background-color:#2276d2}.mce-primary:hover,.mce-primary:focus{background-color:#1e6abc;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alp
 ha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#1e6abc;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-primary button,.mce-primary button i{color:white;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #b5bcc2;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px 
 solid #b5bcc2;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-toolbar .mce-btn-group{margin:0;padding:2px 0}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:0;margin-left:2px}.mce-btn-group{margin-left:2px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox
 {margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:white;text-indent:-10em;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#595959;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid #2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#bdbdbd}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#bdbdbd}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:
 0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text,.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu
 -item-link b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-
 overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;bo
 rder-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid black;background:white;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal;font-size:inherit}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#595959;font-size:inherit;text-transform:uppercase}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#555c66;color:white}.mce-path .mce-divider{display:inline;font-size:inherit}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}
 .mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #e2e4e7}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{d
 isplay:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar{border:1px solid #e2e4e7}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar .mce-menubt
 n button span{color:#595959}.mce-menubar .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-active .mce-caret,.mce-menubar .mce-menubtn:hover .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#e2e4e7;background:white;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubar .mce-menubtn.mce-active{border-bottom:none;z-index:65537}div.mce-menubtn.mce-opened{border-bottom-color:white;z-index:65537}.mce-menubtn button{color:#595959}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-rtl .mce-menubtn.mce-fixed-width span{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 4px 6
 px 4px;clear:both;font-weight:normal;line-height:20px;color:#595959;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-text,.mce-menu-item .mce-text b{line-height:1;vertical-align:initial}.mce-menu-item .mce-caret{margin-top:4px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #595959}.mce-menu-item .mce-menu-shortcut{display:inline-block;padding:0 10px 0 20px;color:#aaa}.mce-menu-item .mce-ico{padding-right:4px}.mce-menu-item:hover,.mce-menu-item:focus{background:#ededee}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#aaa}.mce-menu-item:hover .mce-text,.mce-menu-item:focus .mce-text,.mce-menu-item:hover .mce-ico,.mce-menu-item:focus .mce-ico{color:#595959}.mce-menu-item.mce-selected{background:#ededee}.mce-menu-item.mce-selected .mce-text,.mce-menu-item.mce-selected .mce-ico{color:#595959}.mce-menu-item.mce-activ
 e.mce-menu-item-normal{background:#555c66}.mce-menu-item.mce-active.mce-menu-item-normal .mce-text,.mce-menu-item.mce-active.mce-menu-item-normal .mce-ico{color:white}.mce-menu-item.mce-active.mce-menu-item-checkbox .mce-ico{visibility:visible}.mce-menu-item.mce-disabled,.mce-menu-item.mce-disabled:hover{background:white}.mce-menu-item.mce-disabled:focus,.mce-menu-item.mce-disabled:hover:focus{background:#ededee}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled:hover .mce-text,.mce-menu-item.mce-disabled .mce-ico,.mce-menu-item.mce-disabled:hover .mce-ico{color:#aaa}.mce-menu-item.mce-menu-item-preview.mce-active{border-left:5px solid #555c66;background:white}.mce-menu-item.mce-menu-item-preview.mce-active .mce-text,.mce-menu-item.mce-menu-item-preview.mce-active .mce-ico{color:#595959}.mce-menu-item.mce-menu-item-preview.mce-active:hover{background:#ededee}.mce-menu-item-link{color:#093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mce-menu-item-link b{
 color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:#595959}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #595959;border-left:0}.mce-rtl .mce-menu-item.mce
 -selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#595959}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:180px;background:white;border:1px solid #c5c9cf;border:1px solid #e2e4e7;z-index:1002;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);max-height:500px;overflow:auto;overflow-x:hidden}.mce-menu.mce-animate{op
 acity:.01;transform:rotateY(10deg) rotateX(-10deg);transform-origin:left top}.mce-menu.mce-menu-align .mce-menu-shortcut,.mce-menu.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block}.mce-menu.mce-in.mce-animate{opacity:1;transform:rotateY(0) rotateX(0);transition:opacity .075s ease,transform .1s ease}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-rtl.mce-menu-align .mce-caret,.mce-rtl .mce-menu-shortcut{right:auto;left:0}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:abso
 lute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#595959}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #c5c5c5;background:#fff;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #c5c5c5;background:#e6e6e6;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{border-color:#2276d2}.mce-spacer{visibility:hidden}.mce-splitbtn:hover .mce-open{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open{border-left:1px solid transparent;padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open:focus{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open:hover,.mce-splitbtn .mce-open:active{border-left:1px solid #e2e4e7}.mce-splitbtn.mce-active:hover .mce-open{border-left:1px soli
 d white}.mce-splitbtn.mce-opened{border-color:#e2e4e7}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#fff}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#fff;padding:8px 15px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-tab:focus{color:#2276d2}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shad
 ow:none;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#595959}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#bdbdbd}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-dropzone{border:3px dashed gray;text-align:center}.mce-dropzone span{text-transform:uppercase;display:inline-block;vertical-align:middle}.mce-dropzone:after{content:"";height:100%;display:inline-block;vertical-align:middle}.mce-dropzone.mce-disabled{opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-dropzone.mce-disabled.mce-dragenter{cursor:not-allowed}.mce-browsebutton{position:relative;overflow:hidden}.mce-browsebutton button{positi
 on:relative;z-index:1}.mce-browsebutton input{opacity:0;filter:alpha(opacity=0);zoom:1;position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:
 grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#595959}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{conte
 nt:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:b
 efore{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{content:"\eaa9"}.mce-i-crop:before{content:
 "\ee78"}.mce-i-editimage:before{content:"\e915"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\e93c"}.mce-i-drop:before{content:"\e935"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecellprops:before{content:"\e605"}.mce-i-table2
 :before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-fill:before{content:"\e902"}.mce-i-borderwidth:before{content:"\e903"}.mce-i-line:before{content:"\e904"}.mce-i-count:before{content:"\e905"}.mce-i-translate:before{content:"\e907"}.mce-i-drag:before{content:"\e908"}.m
 ce-i-home:before{content:"\e90b"}.mce-i-upload:before{content:"\e914"}.mce-i-bubble:before{content:"\e91c"}.mce-i-user:before{content:"\e91d"}.mce-i-lock:before{content:"\e926"}.mce-i-unlock:before{content:"\e927"}.mce-i-settings:before{content:"\e928"}.mce-i-remove2:before{content:"\e92a"}.mce-i-menu:before{content:"\e92d"}.mce-i-warning:before{content:"\e930"}.mce-i-question:before{content:"\e931"}.mce-i-pluscircle:before{content:"\e932"}.mce-i-info:before{content:"\e933"}.mce-i-notice:before{content:"\e934"}.mce-i-arrowup:before{content:"\e93b"}.mce-i-arrowdown:before{content:"\e93d"}.mce-i-arrowup2:before{content:"\e93f"}.mce-i-arrowdown2:before{content:"\e940"}.mce-i-menu2:before{content:"\e941"}.mce-i-newtab:before{content:"\e961"}.mce-i-a11y:before{content:"\e900"}.mce-
 i-plus:before{content:"\e93a"}.mce-i-insert:before{content:"\e93a"}.mce-i-minus:before{content:"\e939"}.mce-i-books:before{content:"\e911"}.mce-i-reload:before{content:"\e906"}.mce-i-toc:before{content:"\e901"}.mce-i-checkmark:before{content:"\e033"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-insert{font-size:14px}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB}.mce-rtl .mce-filepicker input{direction:ltr}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#595959;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto
 ;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-statusbar>.mce-container-body{display:flex;padding-right:16px}.mce-statusbar>.mce-container-body .mce-path{flex:1}.mce-wordcount{font-size:inherit;text-transform:uppercase;padding:8px 0}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative;font-size:11px}.mce-fullscreen .mce-resizehandle{display:none}.mce-statusbar .mce-flow-layout-item{margin:0}.mce-charmap{bo
 rder-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:white}.mce-grid td.mce-grid-cell div{border:1px solid #c5c5c5;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#91bbe9}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#91bbe9}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#c5c5c5;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#91bbe9;background:#bdd6f2}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;lin
 e-height:16px;color:#8b8b8b}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-container b{font-weight:bold}.mce-container p{margin-bottom:5px}.mce-container a{cursor:pointer;color:#2276d2}.mce-container a:hover{text-decoration:underline}.mce-container ul{margin-left:15px}.mce-container .mce-table-striped{border-collapse:collapse;margin:10px}.mce-container .mce-table-striped thead>tr{background-color:#fafafa}.mce-container .mce-table-striped thead>tr th{font-weight:bold}.mce-container .mce-table-striped td,.mce-container .mce-table-striped th{padding:5px}.mce-container .mce-table-striped tr:nth-child(even){background-color:#fafafa}.mce-container .mce-table-striped tbody>tr:hover{background-color:#e1e1e1}.mce-branding{font-size:inherit;text-transform:uppercase;white-space:pre;padding:8px 0}.mce-branding a{font-size:inherit;color:inherit}.mce-top-part{position:relative}.mce-top-part::before{content:
 '';position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;right:0;bottom:0;left:0;pointer-events:none}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-rtl .mce-statusbar>.mce-container-body>*:last-child{padding-right:0;padding-left:10px}.mce-rtl .mce-path{text-align:right;padding-right:16px}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-cro
 prect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.5;filter:alpha(opacity=50);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#2276d2}.mce-croprect-handle-move:focus{outline:1px solid #2276d2}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:#c5c5c5;border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bott
 om:-9px;border-top-color:#c5c5c5;border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#fff;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#fff;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:#c5c5c5;border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#fff;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-c
 enter.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:#c5c5c5;border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#fff;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-edit-aria-container>.mce-container-body{display:flex}.mce-edit-aria-container>.mce-container-body .mce-edit-area{flex:1}.mce-edit-aria-container>.mce-container-body .mce-sidebar>.mce-container-body{display:flex;align-items:stretch;height:100%}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel{min-width:250px;max-width:250px;position:relative}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel>.mce-container-body{position:absolute;width:100%;height:100%;overflow:auto;top:0;left:0}.mce-sidebar-toolbar{border:0 solid #c5c5c5;border-left-width:1px}.mce-sidebar-toolbar .mce-btn{border-left:0;border-r
 ight:0}.mce-sidebar-toolbar .mce-btn.mce-active,.mce-sidebar-toolbar .mce-btn.mce-active:hover{background-color:#555c66}.mce-sidebar-toolbar .mce-btn.mce-active button,.mce-sidebar-toolbar .mce-btn.mce-active:hover button,.mce-sidebar-toolbar .mce-btn.mce-active button i,.mce-sidebar-toolbar .mce-btn.mce-active:hover button i{color:white;text-shadow:1px 1px none}.mce-sidebar-panel{border:0 solid #c5c5c5;border-left-width:1px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(op
 acity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #f3f3f3;border:0 solid #c5c5c5;background-color:#fff}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;left:0;background:#FFF;border:1px solid #c5c5c5;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px
 ;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#c5c5c5;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-top{margin-top:-10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-top>.mce-arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#c5c5c5;top:auto;bottom:-11px}.mce-floatpanel.mce-popover.mce-top>.mce-arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start,.mce-floatpanel.mce-popover.mce-top.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end,.mce-floatpanel.mce-popover.mce-top.mce-end{
 margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#FFF}#mce-modal-block.mce-in{opacity:.5;filter:alpha(opacity=50);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.m
 ce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#9b9b9b}.mce-close:hover i{color:#bdbdbd}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#e2e4e7}.mce-window .mce-btn:hover{border-color:#c5c5c5}.mce-window .mce-btn:focus{border-color:#2276d2}.mce-window-body .mce-btn,.mce-foot .mce-btn{border-color:#c5c5c5}.mce-foot .mce-btn.mce-primary{border-color:transparent}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:0}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-he
 ad .mce-title{direction:rtl;text-align:right;padding-right:0;padding-left:20px}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1;margin-top:1px}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;bord
 er-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:sol
 id;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#595959}.mce-bar{display:block;width:0;height:100%;background-color:#dfdfdf;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#fff;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#c5c5c5;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0;box-sizing:border-box}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color
 :#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#595959}.mce-notification .mce-progress .mce-bar-container{border-color:#c5c5c5}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#595959}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-prog
 ress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font
 -weight:bold;line-height:20px;color:#9b9b9b;cursor:pointer}.mce-abs-layout{position:relative}html .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b3b3b3;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);background:white;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn:hover,.mce-btn:active{background:white;color:#595959;border-color:#e2e4e7}.mce-btn:focus{background:white;color:#595959;border-color:#e2e4e7}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover,.mce-btn.mce-active:focus,.mce-btn.mce-active:active{-webkit-box-shadow:none;-moz-box-shadow:none;box-
 shadow:none;background:#555c66;color:white;border-color:transparent}.mce-btn.mce-active button,.mce-btn.mce-active:hover button,.mce-btn.mce-active i,.mce-btn.mce-active:hover i{color:white}.mce-btn:hover .mce-caret{border-top-color:#b5bcc2}.mce-btn.mce-active .mce-caret,.mce-btn.mce-active:hover .mce-caret{border-top-color:white}.mce-btn button{padding:4px 6px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#595959;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:white;border:1px solid transparent;border-color:transparent;background-color:#2276d2}.mce-primary:hover,.mce-primary:focus{background-color:#1e6abc;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alp
 ha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#1e6abc;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-primary button,.mce-primary button i{color:white;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #b5bcc2;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px 
 solid #b5bcc2;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-toolbar .mce-btn-group{margin:0;padding:2px 0}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:0;margin-left:2px}.mce-btn-group{margin-left:2px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox
 {margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:white;text-indent:-10em;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#595959;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid #2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#bdbdbd}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#bdbdbd}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:
 0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text,.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu
 -item-link b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-
 overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;bo
 rder-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid black;background:white;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal;font-size:inherit}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#595959;font-size:inherit;text-transform:uppercase}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#555c66;color:white}.mce-path .mce-divider{display:inline;font-size:inherit}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}
 .mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #e2e4e7}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{d
 isplay:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar{border:1px solid #e2e4e7}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar .mce-menubt
 n button span{color:#595959}.mce-menubar .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-active .mce-caret,.mce-menubar .mce-menubtn:hover .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#e2e4e7;background:white;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubar .mce-menubtn.mce-active{border-bottom:none;z-index:65537}div.mce-menubtn.mce-opened{border-bottom-color:white;z-index:65537}.mce-menubtn button{color:#595959}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-rtl .mce-menubtn.mce-fixed-width span{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 4px 6
 px 4px;clear:both;font-weight:normal;line-height:20px;color:#595959;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-text,.mce-menu-item .mce-text b{line-height:1;vertical-align:initial}.mce-menu-item .mce-caret{margin-top:4px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #595959}.mce-menu-item .mce-menu-shortcut{display:inline-block;padding:0 10px 0 20px;color:#aaa}.mce-menu-item .mce-ico{padding-right:4px}.mce-menu-item:hover,.mce-menu-item:focus{background:#ededee}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#aaa}.mce-menu-item:hover .mce-text,.mce-menu-item:focus .mce-text,.mce-menu-item:hover .mce-ico,.mce-menu-item:focus .mce-ico{color:#595959}.mce-menu-item.mce-selected{background:#ededee}.mce-menu-item.mce-selected .mce-text,.mce-menu-item.mce-selected .mce-ico{color:#595959}.mce-menu-item.mce-activ
 e.mce-menu-item-normal{background:#555c66}.mce-menu-item.mce-active.mce-menu-item-normal .mce-text,.mce-menu-item.mce-active.mce-menu-item-normal .mce-ico{color:white}.mce-menu-item.mce-active.mce-menu-item-checkbox .mce-ico{visibility:visible}.mce-menu-item.mce-disabled,.mce-menu-item.mce-disabled:hover{background:white}.mce-menu-item.mce-disabled:focus,.mce-menu-item.mce-disabled:hover:focus{background:#ededee}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled:hover .mce-text,.mce-menu-item.mce-disabled .mce-ico,.mce-menu-item.mce-disabled:hover .mce-ico{color:#aaa}.mce-menu-item.mce-menu-item-preview.mce-active{border-left:5px solid #555c66;background:white}.mce-menu-item.mce-menu-item-preview.mce-active .mce-text,.mce-menu-item.mce-menu-item-preview.mce-active .mce-ico{color:#595959}.mce-menu-item.mce-menu-item-preview.mce-active:hover{background:#ededee}.mce-menu-item-link{color:#093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mce-menu-item-link b{
 color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:#595959}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #595959;border-left:0}.mce-rtl .mce-menu-item.mce
 -selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#595959}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:180px;background:white;border:1px solid #c5c9cf;border:1px solid #e2e4e7;z-index:1002;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);max-height:500px;overflow:auto;overflow-x:hidden}.mce-menu.mce-animate{op
 acity:.01;transform:rotateY(10deg) rotateX(-10deg);transform-origin:left top}.mce-menu.mce-menu-align .mce-menu-shortcut,.mce-menu.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block}.mce-menu.mce-in.mce-animate{opacity:1;transform:rotateY(0) rotateX(0);transition:opacity .075s ease,transform .1s ease}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-rtl.mce-menu-align .mce-caret,.mce-rtl .mce-menu-shortcut{right:auto;left:0}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:abso
 lute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#595959}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #c5c5c5;background:#fff;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #c5c5c5;background:#e6e6e6;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{border-color:#2276d2}.mce-spacer{visibility:hidden}.mce-splitbtn:hover .mce-open{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open{border-left:1px solid transparent;padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open:focus{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open:hover,.mce-splitbtn .mce-open:active{border-left:1px solid #e2e4e7}.mce-splitbtn.mce-active:hover .mce-open{border-left:1px soli
 d white}.mce-splitbtn.mce-opened{border-color:#e2e4e7}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#fff}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#fff;padding:8px 15px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-tab:focus{color:#2276d2}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shad
 ow:none;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#595959}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#bdbdbd}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-dropzone{border:3px dashed gray;text-align:center}.mce-dropzone span{text-transform:uppercase;display:inline-block;vertical-align:middle}.mce-dropzone:after{content:"";height:100%;display:inline-block;vertical-align:middle}.mce-dropzone.mce-disabled{opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-dropzone.mce-disabled.mce-dragenter{cursor:not-allowed}.mce-browsebutton{position:relative;overflow:hidden}.mce-browsebutton button{positi
 on:relative;z-index:1}.mce-browsebutton input{opacity:0;filter:alpha(opacity=0);zoom:1;position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:
 grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#595959}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{conte
 nt:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:b
 efore{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{content:"\eaa9"}.mce-i-crop:before{content:
 "\ee78"}.mce-i-editimage:before{content:"\e915"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\e93c"}.mce-i-drop:before{content:"\e935"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecellprops:before{content:"\e605"}.mce-i-table2
 :before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-fill:before{content:"\e902"}.mce-i-borderwidth:before{content:"\e903"}.mce-i-line:before{content:"\e904"}.mce-i-count:before{content:"\e905"}.mce-i-translate:before{content:"\e907"}.mce-i-drag:before{content:"\e908"}.m
 ce-i-home:before{content:"\e90b"}.mce-i-upload:before{content:"\e914"}.mce-i-bubble:before{content:"\e91c"}.mce-i-user:before{content:"\e91d"}.mce-i-lock:before{content:"\e926"}.mce-i-unlock:before{content:"\e927"}.mce-i-settings:before{content:"\e928"}.mce-i-remove2:before{content:"\e92a"}.mce-i-menu:before{content:"\e92d"}.mce-i-warning:before{content:"\e930"}.mce-i-question:before{content:"\e931"}.mce-i-pluscircle:before{content:"\e932"}.mce-i-info:before{content:"\e933"}.mce-i-notice:before{content:"\e934"}.mce-i-arrowup:before{content:"\e93b"}.mce-i-arrowdown:before{content:"\e93d"}.mce-i-arrowup2:before{content:"\e93f"}.mce-i-arrowdown2:before{content:"\e940"}.mce-i-menu2:before{content:"\e941"}.mce-i-newtab:before{content:"\e961"}.mce-i-a11y:before{content:"\e900"}.mce-
 i-plus:before{content:"\e93a"}.mce-i-insert:before{content:"\e93a"}.mce-i-minus:before{content:"\e939"}.mce-i-books:before{content:"\e911"}.mce-i-reload:before{content:"\e906"}.mce-i-toc:before{content:"\e901"}.mce-i-checkmark:before{content:"\e033"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-insert{font-size:14px}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB}.mce-rtl .mce-filepicker input{direction:ltr}/*# sourceMappingURL=skin.min.css.map */
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcethemesinlitethemejs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js      2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js        2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15,7 +15,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return Array.isArray(item) ? results.concat(flatten(item)) : results.concat(item);
</span><span class="cx" style="display: block; padding: 0 10px">     }, []);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5c3vrp16xjfuw8wdu = { flatten: flatten };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ccn98l17xjjgwejz7 = { flatten: flatten };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var result = function (id, rect) {
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,7 +33,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return null;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8rky1516zjfuw8wdx = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6lg87517zjjgwejza = {
</ins><span class="cx" style="display: block; padding: 0 10px">     match: match,
</span><span class="cx" style="display: block; padding: 0 10px">     result: result
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -56,7 +56,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       bottom: geomRect.y + geomRect.h
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1tf7l3171jfuw8we0 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1x174x181jjgwejzd = {
</ins><span class="cx" style="display: block; padding: 0 10px">     fromClientRect: fromClientRect,
</span><span class="cx" style="display: block; padding: 0 10px">     toClientRect: toClientRect
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -90,9 +90,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getSelectionRect = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var clientRect = editor.selection.getBoundingClientRect();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return clientRect ? toAbsolute($_1tf7l3171jfuw8we0.fromClientRect(clientRect)) : null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return clientRect ? toAbsolute($_1x174x181jjgwejzd.fromClientRect(clientRect)) : null;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_eiro29170jfuw8wdy = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_51qgo2180jjgwejzb = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getElementRect: getElementRect,
</span><span class="cx" style="display: block; padding: 0 10px">     getPageAreaRect: getPageAreaRect,
</span><span class="cx" style="display: block; padding: 0 10px">     getContentAreaRect: getContentAreaRect,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -103,7 +103,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">       for (var i = 0; i < predicateIds.length; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (predicateIds[i].predicate(element)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var result = $_8rky1516zjfuw8wdx.result(predicateIds[i].id, $_eiro29170jfuw8wdy.getElementRect(editor, element));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var result = $_6lg87517zjjgwejza.result(predicateIds[i].id, $_51qgo2180jjgwejzb.getElementRect(editor, element));
</ins><span class="cx" style="display: block; padding: 0 10px">           return result;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -115,7 +115,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       for (var i = 0; i < elements.length; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">         for (var x = 0; x < predicateIds.length; x++) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (predicateIds[x].predicate(elements[i])) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return $_8rky1516zjfuw8wdx.result(predicateIds[x].id, $_eiro29170jfuw8wdy.getElementRect(editor, elements[i]));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return $_6lg87517zjjgwejza.result(predicateIds[x].id, $_51qgo2180jjgwejzb.getElementRect(editor, elements[i]));
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -122,7 +122,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return null;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9pht4216yjfuw8wdv = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_egsucq17yjjgwejz9 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     element: element,
</span><span class="cx" style="display: block; padding: 0 10px">     parent: parent
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -140,7 +140,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return create(toolbar.id, toolbar.predicate);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g3lgux172jfuw8we1 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9rj8kx182jjgwejze = {
</ins><span class="cx" style="display: block; padding: 0 10px">     create: create,
</span><span class="cx" style="display: block; padding: 0 10px">     fromContextToolbars: fromContextToolbars
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -148,7 +148,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var textSelection = function (id) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!editor.selection.isCollapsed()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var result = $_8rky1516zjfuw8wdx.result(id, $_eiro29170jfuw8wdy.getSelectionRect(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var result = $_6lg87517zjjgwejza.result(id, $_51qgo2180jjgwejzb.getSelectionRect(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">         return result;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -166,7 +166,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       for (i = 0; i < elements.length; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (elements[i].nodeName in textBlockElementsMap) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (editor.dom.isEmpty(elements[i])) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return $_8rky1516zjfuw8wdx.result(id, $_eiro29170jfuw8wdy.getSelectionRect(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return $_6lg87517zjjgwejza.result(id, $_51qgo2180jjgwejzb.getSelectionRect(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           return null;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -174,7 +174,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return null;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9xiw90174jfuw8we2 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fhwgeg184jjgwejzf = {
</ins><span class="cx" style="display: block; padding: 0 10px">     textSelection: textSelection,
</span><span class="cx" style="display: block; padding: 0 10px">     emptyTextBlock: emptyTextBlock
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -185,7 +185,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fireBeforeRenderUI = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.fire('BeforeRenderUI');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5f627b176jfuw8we5 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_77u64d186jjgwejzi = {
</ins><span class="cx" style="display: block; padding: 0 10px">     fireSkinLoaded: fireSkinLoaded,
</span><span class="cx" style="display: block; padding: 0 10px">     fireBeforeRenderUI: fireBeforeRenderUI
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -220,7 +220,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isBoolean = function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">     return isType('boolean')(value);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8t6wb917ajfuw8wec = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_e4npq318ajjgwejzo = {
</ins><span class="cx" style="display: block; padding: 0 10px">     isString: isString,
</span><span class="cx" style="display: block; padding: 0 10px">     isNumber: isNumber,
</span><span class="cx" style="display: block; padding: 0 10px">     isBoolean: isBoolean,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -255,11 +255,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var boolToItemsArray = function (value, defaultValue) {
</span><span class="cx" style="display: block; padding: 0 10px">       return value === false ? [] : defaultValue;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_8t6wb917ajfuw8wec.isArray(value)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_e4npq318ajjgwejzo.isArray(value)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_8t6wb917ajfuw8wec.isString(value)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_e4npq318ajjgwejzo.isString(value)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return stringToItemsArray(value);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_8t6wb917ajfuw8wec.isBoolean(value)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_e4npq318ajjgwejzo.isBoolean(value)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return boolToItemsArray(value, defaultValue);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return defaultValue;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -271,12 +271,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return itemsToArray(value, defaultValue);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_r1zl2179jfuw8we9 = {
-    getStringOr: getByTypeOr($_8t6wb917ajfuw8wec.isString),
-    getBoolOr: getByTypeOr($_8t6wb917ajfuw8wec.isBoolean),
-    getNumberOr: getByTypeOr($_8t6wb917ajfuw8wec.isNumber),
-    getHandlerOr: getByTypeOr($_8t6wb917ajfuw8wec.isFunction),
-    getToolbarItemsOr: getToolbarItemsOr($_8t6wb917ajfuw8wec.isArray)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_c8umh189jjgwejzm = {
+    getStringOr: getByTypeOr($_e4npq318ajjgwejzo.isString),
+    getBoolOr: getByTypeOr($_e4npq318ajjgwejzo.isBoolean),
+    getNumberOr: getByTypeOr($_e4npq318ajjgwejzo.isNumber),
+    getHandlerOr: getByTypeOr($_e4npq318ajjgwejzo.isFunction),
+    getToolbarItemsOr: getToolbarItemsOr($_e4npq318ajjgwejzo.isArray)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$6 = tinymce.util.Tools.resolve('tinymce.geom.Rect');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -354,11 +354,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var userConstrainedPanelRect;
</span><span class="cx" style="display: block; padding: 0 10px">     if (typeof handler === 'function') {
</span><span class="cx" style="display: block; padding: 0 10px">       userConstrainedPanelRect = handler({
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        elementRect: $_1tf7l3171jfuw8we0.toClientRect(targetRect),
-        contentAreaRect: $_1tf7l3171jfuw8we0.toClientRect(contentAreaRect),
-        panelRect: $_1tf7l3171jfuw8we0.toClientRect(panelRect)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        elementRect: $_1x174x181jjgwejzd.toClientRect(targetRect),
+        contentAreaRect: $_1x174x181jjgwejzd.toClientRect(contentAreaRect),
+        panelRect: $_1x174x181jjgwejzd.toClientRect(panelRect)
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_1tf7l3171jfuw8we0.fromClientRect(userConstrainedPanelRect);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_1x174x181jjgwejzd.fromClientRect(userConstrainedPanelRect);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return panelRect;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -365,7 +365,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var defaultHandler = function (rects) {
</span><span class="cx" style="display: block; padding: 0 10px">     return rects.panelRect;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4f0zwc17bjfuw8wee = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_gir42l18bjjgwejzq = {
</ins><span class="cx" style="display: block; padding: 0 10px">     calcInsert: calcInsert,
</span><span class="cx" style="display: block; padding: 0 10px">     calc: calc,
</span><span class="cx" style="display: block; padding: 0 10px">     userConstrain: userConstrain,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -380,7 +380,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return name ? prefix + name : prefix + 'lightgray';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getTextSelectionToolbarItems = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_r1zl2179jfuw8we9.getToolbarItemsOr(editor, 'selection_toolbar', [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_c8umh189jjgwejzm.getToolbarItemsOr(editor, 'selection_toolbar', [
</ins><span class="cx" style="display: block; padding: 0 10px">       'bold',
</span><span class="cx" style="display: block; padding: 0 10px">       'italic',
</span><span class="cx" style="display: block; padding: 0 10px">       '|',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -391,13 +391,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     ]);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getInsertToolbarItems = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_r1zl2179jfuw8we9.getToolbarItemsOr(editor, 'insert_toolbar', [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_c8umh189jjgwejzm.getToolbarItemsOr(editor, 'insert_toolbar', [
</ins><span class="cx" style="display: block; padding: 0 10px">       'quickimage',
</span><span class="cx" style="display: block; padding: 0 10px">       'quicktable'
</span><span class="cx" style="display: block; padding: 0 10px">     ]);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getPositionHandler = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_r1zl2179jfuw8we9.getHandlerOr(editor, 'inline_toolbar_position_handler', $_4f0zwc17bjfuw8wee.defaultHandler);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_c8umh189jjgwejzm.getHandlerOr(editor, 'inline_toolbar_position_handler', $_gir42l18bjjgwejzq.defaultHandler);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getSkinUrl = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var settings = editor.settings;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -406,7 +406,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isSkinDisabled = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.settings.skin === false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_44ho17177jfuw8we6 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4j2h42187jjgwejzk = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getTextSelectionToolbarItems: getTextSelectionToolbarItems,
</span><span class="cx" style="display: block; padding: 0 10px">     getInsertToolbarItems: getInsertToolbarItems,
</span><span class="cx" style="display: block; padding: 0 10px">     getPositionHandler: getPositionHandler,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -417,7 +417,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fireSkinLoaded$1 = function (editor, callback) {
</span><span class="cx" style="display: block; padding: 0 10px">     var done = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       editor._skinLoaded = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_5f627b176jfuw8we5.fireSkinLoaded(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_77u64d186jjgwejzi.fireSkinLoaded(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       callback();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.initialized) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -427,11 +427,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var load = function (editor, callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var skinUrl = $_44ho17177jfuw8we6.getSkinUrl(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var skinUrl = $_4j2h42187jjgwejzk.getSkinUrl(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     var done = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       fireSkinLoaded$1(editor, callback);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_44ho17177jfuw8we6.isSkinDisabled(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_4j2h42187jjgwejzk.isSkinDisabled(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       done();
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       global$2.DOM.styleSheetLoader.load(skinUrl + '/skin.min.css', done);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -438,7 +438,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.contentCSS.push(skinUrl + '/content.inline.min.css');
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5qgx51175jfuw8we4 = { load: load };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_93v08q185jjgwejzh = { load: load };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getSelectionElements = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var node = editor.selection.getNode();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -457,7 +457,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getToolbars = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var contextToolbars = editor.contextToolbars;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5c3vrp16xjfuw8wdu.flatten([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ccn98l17xjjgwejz7.flatten([
</ins><span class="cx" style="display: block; padding: 0 10px">       contextToolbars ? contextToolbars : [],
</span><span class="cx" style="display: block; padding: 0 10px">       createToolbar(editor, 'img', 'image', 'alignleft aligncenter alignright')
</span><span class="cx" style="display: block; padding: 0 10px">     ]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -465,12 +465,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var findMatchResult = function (editor, toolbars) {
</span><span class="cx" style="display: block; padding: 0 10px">     var result, elements, contextToolbarsPredicateIds;
</span><span class="cx" style="display: block; padding: 0 10px">     elements = getSelectionElements(editor);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    contextToolbarsPredicateIds = $_g3lgux172jfuw8we1.fromContextToolbars(toolbars);
-    result = $_8rky1516zjfuw8wdx.match(editor, [
-      $_9pht4216yjfuw8wdv.element(elements[0], contextToolbarsPredicateIds),
-      $_9xiw90174jfuw8we2.textSelection('text'),
-      $_9xiw90174jfuw8we2.emptyTextBlock(elements, 'insert'),
-      $_9pht4216yjfuw8wdv.parent(elements, contextToolbarsPredicateIds)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    contextToolbarsPredicateIds = $_9rj8kx182jjgwejze.fromContextToolbars(toolbars);
+    result = $_6lg87517zjjgwejza.match(editor, [
+      $_egsucq17yjjgwejz9.element(elements[0], contextToolbarsPredicateIds),
+      $_fhwgeg184jjgwejzf.textSelection('text'),
+      $_fhwgeg184jjgwejzf.emptyTextBlock(elements, 'insert'),
+      $_egsucq17yjjgwejz9.parent(elements, contextToolbarsPredicateIds)
</ins><span class="cx" style="display: block; padding: 0 10px">     ]);
</span><span class="cx" style="display: block; padding: 0 10px">     return result && result.rect ? result : null;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -529,7 +529,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.shortcuts.remove('meta+k');
</span><span class="cx" style="display: block; padding: 0 10px">     editor.shortcuts.add('meta+k', '', function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var toolbars = getToolbars(editor);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var result = $_8rky1516zjfuw8wdx.match(editor, [$_9xiw90174jfuw8we2.textSelection('quicklink')]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var result = $_6lg87517zjjgwejza.match(editor, [$_fhwgeg184jjgwejzf.textSelection('quicklink')]);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (result) {
</span><span class="cx" style="display: block; padding: 0 10px">         panel.show(editor, result.id, result.rect, toolbars);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -536,7 +536,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var renderInlineUI = function (editor, panel) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_5qgx51175jfuw8we4.load(editor, function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_93v08q185jjgwejzh.load(editor, function () {
</ins><span class="cx" style="display: block; padding: 0 10px">       bindContextualToolbarsEvents(editor, panel);
</span><span class="cx" style="display: block; padding: 0 10px">       overrideLinkShortcut(editor, panel);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -548,7 +548,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var renderUI = function (editor, panel) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.inline ? renderInlineUI(editor, panel) : fail('inlite theme only supports inline mode.');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_gf138c16tjfuw8wdo = { renderUI: renderUI };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_b0wxh217tjjgwejyx = { renderUI: renderUI };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var noop = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     var x = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -556,15 +556,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       x[_i] = arguments[_i];
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var noarg = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return f();
-    };
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var compose = function (fa, fb) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var x = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -579,12 +571,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return value;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var identity = function (x) {
-    return x;
-  };
-  var tripleEquals = function (a, b) {
-    return a === b;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var curry = function (f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var x = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 1; _i < arguments.length; _i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -605,46 +593,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return f.apply(null, all);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var not = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return !f.apply(null, arguments);
-    };
-  };
-  var die = function (msg) {
-    return function () {
-      throw new Error(msg);
-    };
-  };
-  var apply = function (f) {
-    return f();
-  };
-  var call = function (f) {
-    f();
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var never = constant(false);
</span><span class="cx" style="display: block; padding: 0 10px">   var always = constant(true);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_d9fl1s17gjfuw8wew = {
-    noop: noop,
-    noarg: noarg,
-    compose: compose,
-    constant: constant,
-    identity: identity,
-    tripleEquals: tripleEquals,
-    curry: curry,
-    not: not,
-    die: die,
-    apply: apply,
-    call: call,
-    never: never,
-    always: always
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var never$1 = $_d9fl1s17gjfuw8wew.never;
-  var always$1 = $_d9fl1s17gjfuw8wew.always;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var never$1 = never;
+  var always$1 = always;
</ins><span class="cx" style="display: block; padding: 0 10px">   var none = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return NONE;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -652,14 +609,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var eq = function (o) {
</span><span class="cx" style="display: block; padding: 0 10px">       return o.isNone();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var call = function (thunk) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var call$$1 = function (thunk) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return thunk();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var id = function (n) {
</span><span class="cx" style="display: block; padding: 0 10px">       return n;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var noop = function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var noop$$1 = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var nul = function () {
+      return null;
+    };
+    var undef = function () {
+      return undefined;
+    };
</ins><span class="cx" style="display: block; padding: 0 10px">     var me = {
</span><span class="cx" style="display: block; padding: 0 10px">       fold: function (n, s) {
</span><span class="cx" style="display: block; padding: 0 10px">         return n();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -668,15 +631,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       isSome: never$1,
</span><span class="cx" style="display: block; padding: 0 10px">       isNone: always$1,
</span><span class="cx" style="display: block; padding: 0 10px">       getOr: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      getOrThunk: call,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getOrThunk: call$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       getOrDie: function (msg) {
</span><span class="cx" style="display: block; padding: 0 10px">         throw new Error(msg || 'error: getOrDie called on none.');
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getOrNull: nul,
+      getOrUndefined: undef,
</ins><span class="cx" style="display: block; padding: 0 10px">       or: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      orThunk: call,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      orThunk: call$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       map: none,
</span><span class="cx" style="display: block; padding: 0 10px">       ap: none,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each: noop,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each: noop$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       bind: none,
</span><span class="cx" style="display: block; padding: 0 10px">       flatten: none,
</span><span class="cx" style="display: block; padding: 0 10px">       exists: never$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -687,7 +652,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       toArray: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return [];
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      toString: $_d9fl1s17gjfuw8wew.constant('none()')
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      toString: constant('none()')
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     if (Object.freeze)
</span><span class="cx" style="display: block; padding: 0 10px">       Object.freeze(me);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -718,6 +683,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       getOr: constant_a,
</span><span class="cx" style="display: block; padding: 0 10px">       getOrThunk: constant_a,
</span><span class="cx" style="display: block; padding: 0 10px">       getOrDie: constant_a,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getOrNull: constant_a,
+      getOrUndefined: constant_a,
</ins><span class="cx" style="display: block; padding: 0 10px">       or: self,
</span><span class="cx" style="display: block; padding: 0 10px">       orThunk: self,
</span><span class="cx" style="display: block; padding: 0 10px">       map: map,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -777,17 +744,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return typeOf(value) === type;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_d02u5u17hjfuw8wey = {
-    isString: isType$1('string'),
-    isObject: isType$1('object'),
-    isArray: isType$1('array'),
-    isNull: isType$1('null'),
-    isBoolean: isType$1('boolean'),
-    isUndefined: isType$1('undefined'),
-    isFunction: isType$1('function'),
-    isNumber: isType$1('number')
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
+
+
+
+  var isFunction$1 = isType$1('function');
+  var isNumber$1 = isType$1('number');
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var rawIndexOf = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     var pIndexOf = Array.prototype.indexOf;
</span><span class="cx" style="display: block; padding: 0 10px">     var fastIndex = function (xs, x) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -802,27 +767,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var r = rawIndexOf(xs, x);
</span><span class="cx" style="display: block; padding: 0 10px">     return r === -1 ? Option.none() : Option.some(r);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var contains = function (xs, x) {
-    return rawIndexOf(xs, x) > -1;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var exists = function (xs, pred) {
</span><span class="cx" style="display: block; padding: 0 10px">     return findIndex(xs, pred).isSome();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var range = function (num, f) {
-    var r = [];
-    for (var i = 0; i < num; i++) {
-      r.push(f(i));
-    }
-    return r;
-  };
-  var chunk = function (array, size) {
-    var r = [];
-    for (var i = 0; i < array.length; i += size) {
-      var s = array.slice(i, i + size);
-      r.push(s);
-    }
-    return r;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var map = function (xs, f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var len = xs.length;
</span><span class="cx" style="display: block; padding: 0 10px">     var r = new Array(len);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -838,25 +788,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       f(x, i, xs);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var eachr = function (xs, f) {
-    for (var i = xs.length - 1; i >= 0; i--) {
-      var x = xs[i];
-      f(x, i, xs);
-    }
-  };
-  var partition = function (xs, pred) {
-    var pass = [];
-    var fail = [];
-    for (var i = 0, len = xs.length; i < len; i++) {
-      var x = xs[i];
-      var arr = pred(x, i, xs) ? pass : fail;
-      arr.push(x);
-    }
-    return {
-      pass: pass,
-      fail: fail
-    };
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var filter = function (xs, pred) {
</span><span class="cx" style="display: block; padding: 0 10px">     var r = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var i = 0, len = xs.length; i < len; i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -867,35 +800,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var groupBy = function (xs, f) {
-    if (xs.length === 0) {
-      return [];
-    } else {
-      var wasType = f(xs[0]);
-      var r = [];
-      var group = [];
-      for (var i = 0, len = xs.length; i < len; i++) {
-        var x = xs[i];
-        var type = f(x);
-        if (type !== wasType) {
-          r.push(group);
-          group = [];
-        }
-        wasType = type;
-        group.push(x);
-      }
-      if (group.length !== 0) {
-        r.push(group);
-      }
-      return r;
-    }
-  };
-  var foldr = function (xs, f, acc) {
-    eachr(xs, function (x) {
-      acc = f(acc, x);
-    });
-    return acc;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var foldl = function (xs, f, acc) {
</span><span class="cx" style="display: block; padding: 0 10px">     each(xs, function (x) {
</span><span class="cx" style="display: block; padding: 0 10px">       acc = f(acc, x);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -938,24 +844,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var bind = function (xs, f) {
-    var output = map(xs, f);
-    return flatten$1(output);
-  };
-  var forall = function (xs, pred) {
-    for (var i = 0, len = xs.length; i < len; ++i) {
-      var x = xs[i];
-      if (pred(x, i, xs) !== true) {
-        return false;
-      }
-    }
-    return true;
-  };
-  var equal = function (a1, a2) {
-    return a1.length === a2.length && forall(a1, function (x, i) {
-      return x === a2[i];
-    });
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var slice = Array.prototype.slice;
</span><span class="cx" style="display: block; padding: 0 10px">   var reverse = function (xs) {
</span><span class="cx" style="display: block; padding: 0 10px">     var r = slice.call(xs, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -962,65 +853,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     r.reverse();
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var difference = function (a1, a2) {
-    return filter(a1, function (x) {
-      return !contains(a2, x);
-    });
-  };
-  var mapToObject = function (xs, f) {
-    var r = {};
-    for (var i = 0, len = xs.length; i < len; i++) {
-      var x = xs[i];
-      r[String(x)] = f(x, i);
-    }
-    return r;
-  };
-  var pure = function (x) {
-    return [x];
-  };
-  var sort = function (xs, comparator) {
-    var copy = slice.call(xs, 0);
-    copy.sort(comparator);
-    return copy;
-  };
-  var head = function (xs) {
-    return xs.length === 0 ? Option.none() : Option.some(xs[0]);
-  };
-  var last = function (xs) {
-    return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
-  };
-  var from$1 = $_d02u5u17hjfuw8wey.isFunction(Array.from) ? Array.from : function (x) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
+
+
+
+
+  var from$1 = isFunction$1(Array.from) ? Array.from : function (x) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return slice.call(x);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1doq1817ejfuw8wen = {
-    map: map,
-    each: each,
-    eachr: eachr,
-    partition: partition,
-    filter: filter,
-    groupBy: groupBy,
-    indexOf: indexOf,
-    foldr: foldr,
-    foldl: foldl,
-    find: find,
-    findIndex: findIndex,
-    flatten: flatten$1,
-    bind: bind,
-    forall: forall,
-    exists: exists,
-    contains: contains,
-    equal: equal,
-    reverse: reverse,
-    chunk: chunk,
-    difference: difference,
-    mapToObject: mapToObject,
-    pure: pure,
-    sort: sort,
-    range: range,
-    head: head,
-    last: last,
-    from: from$1
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var count = 0;
</span><span class="cx" style="display: block; padding: 0 10px">   var funcs = {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1027,8 +868,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     id: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return 'mceu_' + count++;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    create: function (name, attrs, children) {
-      var elm = document.createElement(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    create: function (name$$1, attrs, children) {
+      var elm = document.createElement(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       global$2.DOM.setAttribs(elm, attrs);
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof children === 'string') {
</span><span class="cx" style="display: block; padding: 0 10px">         elm.innerHTML = children;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1086,20 +927,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     toggleClass: function (elm, cls, state) {
</span><span class="cx" style="display: block; padding: 0 10px">       return global$2.DOM.toggleClass(elm, cls, state);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    css: function (elm, name, value) {
-      return global$2.DOM.setStyle(elm, name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    css: function (elm, name$$1, value) {
+      return global$2.DOM.setStyle(elm, name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    getRuntimeStyle: function (elm, name) {
-      return global$2.DOM.getStyle(elm, name, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    getRuntimeStyle: function (elm, name$$1) {
+      return global$2.DOM.getStyle(elm, name$$1, true);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    on: function (target, name, callback, scope) {
-      return global$2.DOM.bind(target, name, callback, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    on: function (target, name$$1, callback, scope) {
+      return global$2.DOM.bind(target, name$$1, callback, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    off: function (target, name, callback) {
-      return global$2.DOM.unbind(target, name, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    off: function (target, name$$1, callback) {
+      return global$2.DOM.unbind(target, name$$1, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    fire: function (target, name, args) {
-      return global$2.DOM.fire(target, name, args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    fire: function (target, name$$1, args) {
+      return global$2.DOM.fire(target, name$$1, args);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     innerHtml: function (elm, html) {
</span><span class="cx" style="display: block; padding: 0 10px">       global$2.DOM.setHTML(elm, html);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1112,7 +953,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$9 = tinymce.util.Tools.resolve('tinymce.util.EventDispatcher');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_b17qji17ojfuw8wg0 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4kbuyt18pjjgwek1w = {
</ins><span class="cx" style="display: block; padding: 0 10px">     parseBox: function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">       var len;
</span><span class="cx" style="display: block; padding: 0 10px">       var radix = 10;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1729,15 +1570,15 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var dirtyCtrls = {};
</span><span class="cx" style="display: block; padding: 0 10px">   var animationFrameRequested;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_13g7tw17vjfuw8wgk = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cqjgb518wjjgwek2f = {
</ins><span class="cx" style="display: block; padding: 0 10px">     add: function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parent = ctrl.parent();
-      if (parent) {
-        if (!parent._layout || parent._layout.isNative()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parent$$1 = ctrl.parent();
+      if (parent$$1) {
+        if (!parent$$1._layout || parent$$1._layout.isNative()) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!dirtyCtrls[parent._id]) {
-          dirtyCtrls[parent._id] = parent;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!dirtyCtrls[parent$$1._id]) {
+          dirtyCtrls[parent$$1._id] = parent$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (!animationFrameRequested) {
</span><span class="cx" style="display: block; padding: 0 10px">           animationFrameRequested = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1786,7 +1627,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var inheritUiContainer = function (fromCtrl, toCtrl) {
</span><span class="cx" style="display: block; padding: 0 10px">     return toCtrl.uiContainer = getUiContainer(fromCtrl);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dbjzo817wjfuw8wgl = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_egt6ye18xjjgwek2h = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getUiContainerDelta: getUiContainerDelta,
</span><span class="cx" style="display: block; padding: 0 10px">     setUiContainer: setUiContainer,
</span><span class="cx" style="display: block; padding: 0 10px">     getUiContainer: getUiContainer,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1805,37 +1646,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     classPrefix: classPrefix,
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var classes, defaultClasses;
</span><span class="cx" style="display: block; padding: 0 10px">       function applyClasses(classes) {
</span><span class="cx" style="display: block; padding: 0 10px">         var i;
</span><span class="cx" style="display: block; padding: 0 10px">         classes = classes.split(' ');
</span><span class="cx" style="display: block; padding: 0 10px">         for (i = 0; i < classes.length; i++) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.classes.add(classes[i]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.classes.add(classes[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.settings = settings = global$4.extend({}, self.Defaults, settings);
-      self._id = settings.id || 'mceu_' + idCounter++;
-      self._aria = { role: settings.role };
-      self._elmCache = {};
-      self.$ = global$7;
-      self.state = new ObservableObject({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.settings = settings = global$4.extend({}, self$$1.Defaults, settings);
+      self$$1._id = settings.id || 'mceu_' + idCounter++;
+      self$$1._aria = { role: settings.role };
+      self$$1._elmCache = {};
+      self$$1.$ = global$7;
+      self$$1.state = new ObservableObject({
</ins><span class="cx" style="display: block; padding: 0 10px">         visible: true,
</span><span class="cx" style="display: block; padding: 0 10px">         active: false,
</span><span class="cx" style="display: block; padding: 0 10px">         disabled: false,
</span><span class="cx" style="display: block; padding: 0 10px">         value: ''
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.data = new ObservableObject(settings.data);
-      self.classes = new ClassList(function () {
-        if (self.state.get('rendered')) {
-          self.getEl().className = this.toString();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.data = new ObservableObject(settings.data);
+      self$$1.classes = new ClassList(function () {
+        if (self$$1.state.get('rendered')) {
+          self$$1.getEl().className = this.toString();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.classes.prefix = self.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.classes.prefix = self$$1.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">       classes = settings.classes;
</span><span class="cx" style="display: block; padding: 0 10px">       if (classes) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self.Defaults) {
-          defaultClasses = self.Defaults.classes;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1.Defaults) {
+          defaultClasses = self$$1.Defaults.classes;
</ins><span class="cx" style="display: block; padding: 0 10px">           if (defaultClasses && classes !== defaultClasses) {
</span><span class="cx" style="display: block; padding: 0 10px">             applyClasses(defaultClasses);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1842,27 +1683,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         applyClasses(classes);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$4.each('title text name visible disabled active value'.split(' '), function (name) {
-        if (name in settings) {
-          self[name](settings[name]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$4.each('title text name visible disabled active value'.split(' '), function (name$$1) {
+        if (name$$1 in settings) {
+          self$$1[name$$1](settings[name$$1]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('click', function () {
-        if (self.disabled()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('click', function () {
+        if (self$$1.disabled()) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.settings = settings;
-      self.borderBox = $_b17qji17ojfuw8wg0.parseBox(settings.border);
-      self.paddingBox = $_b17qji17ojfuw8wg0.parseBox(settings.padding);
-      self.marginBox = $_b17qji17ojfuw8wg0.parseBox(settings.margin);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.settings = settings;
+      self$$1.borderBox = $_4kbuyt18pjjgwek1w.parseBox(settings.border);
+      self$$1.paddingBox = $_4kbuyt18pjjgwek1w.parseBox(settings.padding);
+      self$$1.marginBox = $_4kbuyt18pjjgwek1w.parseBox(settings.margin);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.hidden) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.hide();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.hide();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     Properties: 'parent,name',
</span><span class="cx" style="display: block; padding: 0 10px">     getContainerElm: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var uiContainer = $_dbjzo817wjfuw8wgl.getUiContainer(this);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var uiContainer = $_egt6ye18xjjgwek2h.getUiContainer(this);
</ins><span class="cx" style="display: block; padding: 0 10px">       return uiContainer ? uiContainer : funcs.getContainer();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     getParentCtrl: function (elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1878,15 +1719,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     initLayoutRect: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var borderBox, layoutRect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var elm = self.getEl();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var elm = self$$1.getEl();
</ins><span class="cx" style="display: block; padding: 0 10px">       var width, height, minWidth, minHeight, autoResize;
</span><span class="cx" style="display: block; padding: 0 10px">       var startMinWidth, startMinHeight, initialSize;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      borderBox = self.borderBox = self.borderBox || $_b17qji17ojfuw8wg0.measureBox(elm, 'border');
-      self.paddingBox = self.paddingBox || $_b17qji17ojfuw8wg0.measureBox(elm, 'padding');
-      self.marginBox = self.marginBox || $_b17qji17ojfuw8wg0.measureBox(elm, 'margin');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      borderBox = self$$1.borderBox = self$$1.borderBox || $_4kbuyt18pjjgwek1w.measureBox(elm, 'border');
+      self$$1.paddingBox = self$$1.paddingBox || $_4kbuyt18pjjgwek1w.measureBox(elm, 'padding');
+      self$$1.marginBox = self$$1.marginBox || $_4kbuyt18pjjgwek1w.measureBox(elm, 'margin');
</ins><span class="cx" style="display: block; padding: 0 10px">       initialSize = funcs.getSize(elm);
</span><span class="cx" style="display: block; padding: 0 10px">       startMinWidth = settings.minWidth;
</span><span class="cx" style="display: block; padding: 0 10px">       startMinHeight = settings.minHeight;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1902,7 +1743,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var deltaH = borderBox.top + borderBox.bottom;
</span><span class="cx" style="display: block; padding: 0 10px">       var maxW = settings.maxWidth || 65535;
</span><span class="cx" style="display: block; padding: 0 10px">       var maxH = settings.maxHeight || 65535;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._layoutRect = layoutRect = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._layoutRect = layoutRect = {
</ins><span class="cx" style="display: block; padding: 0 10px">         x: settings.x || 0,
</span><span class="cx" style="display: block; padding: 0 10px">         y: settings.y || 0,
</span><span class="cx" style="display: block; padding: 0 10px">         w: width,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1922,14 +1763,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         autoResize: autoResize,
</span><span class="cx" style="display: block; padding: 0 10px">         scrollW: 0
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._lastLayoutRect = {};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._lastLayoutRect = {};
</ins><span class="cx" style="display: block; padding: 0 10px">       return layoutRect;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     layoutRect: function (newRect) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var curRect = self._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, repaintControls;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var curRect = self$$1._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, repaintControls;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!curRect) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        curRect = self.initLayoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        curRect = self$$1.initLayoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (newRect) {
</span><span class="cx" style="display: block; padding: 0 10px">         deltaWidth = curRect.deltaW;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1980,13 +1821,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (newRect.contentH !== undefined) {
</span><span class="cx" style="display: block; padding: 0 10px">           curRect.contentH = newRect.contentH;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        lastLayoutRect = self._lastLayoutRect;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        lastLayoutRect = self$$1._lastLayoutRect;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) {
</span><span class="cx" style="display: block; padding: 0 10px">           repaintControls = Control.repaintControls;
</span><span class="cx" style="display: block; padding: 0 10px">           if (repaintControls) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if (repaintControls.map && !repaintControls.map[self._id]) {
-              repaintControls.push(self);
-              repaintControls.map[self._id] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if (repaintControls.map && !repaintControls.map[self$$1._id]) {
+              repaintControls.push(self$$1);
+              repaintControls.map[self$$1._id] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           lastLayoutRect.x = curRect.x;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1994,21 +1835,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">           lastLayoutRect.w = curRect.w;
</span><span class="cx" style="display: block; padding: 0 10px">           lastLayoutRect.h = curRect.h;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return curRect;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     repaint: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var style, bodyStyle, bodyElm, rect, borderBox;
</span><span class="cx" style="display: block; padding: 0 10px">       var borderW, borderH, lastRepaintRect, round, value;
</span><span class="cx" style="display: block; padding: 0 10px">       round = !document.createRange ? Math.round : function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">         return value;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      style = self.getEl().style;
-      rect = self._layoutRect;
-      lastRepaintRect = self._lastRepaintRect || {};
-      borderBox = self.borderBox;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      style = self$$1.getEl().style;
+      rect = self$$1._layoutRect;
+      lastRepaintRect = self$$1._lastRepaintRect || {};
+      borderBox = self$$1.borderBox;
</ins><span class="cx" style="display: block; padding: 0 10px">       borderW = borderBox.left + borderBox.right;
</span><span class="cx" style="display: block; padding: 0 10px">       borderH = borderBox.top + borderBox.bottom;
</span><span class="cx" style="display: block; padding: 0 10px">       if (rect.x !== lastRepaintRect.x) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2029,9 +1870,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         style.height = (value >= 0 ? value : 0) + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.h = rect.h;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._hasBody && rect.innerW !== lastRepaintRect.innerW) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._hasBody && rect.innerW !== lastRepaintRect.innerW) {
</ins><span class="cx" style="display: block; padding: 0 10px">         value = round(rect.innerW);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        bodyElm = self.getEl('body');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        bodyElm = self$$1.getEl('body');
</ins><span class="cx" style="display: block; padding: 0 10px">         if (bodyElm) {
</span><span class="cx" style="display: block; padding: 0 10px">           bodyStyle = bodyElm.style;
</span><span class="cx" style="display: block; padding: 0 10px">           bodyStyle.width = (value >= 0 ? value : 0) + 'px';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2038,9 +1879,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.innerW = rect.innerW;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._hasBody && rect.innerH !== lastRepaintRect.innerH) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._hasBody && rect.innerH !== lastRepaintRect.innerH) {
</ins><span class="cx" style="display: block; padding: 0 10px">         value = round(rect.innerH);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        bodyElm = bodyElm || self.getEl('body');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        bodyElm = bodyElm || self$$1.getEl('body');
</ins><span class="cx" style="display: block; padding: 0 10px">         if (bodyElm) {
</span><span class="cx" style="display: block; padding: 0 10px">           bodyStyle = bodyStyle || bodyElm.style;
</span><span class="cx" style="display: block; padding: 0 10px">           bodyStyle.height = (value >= 0 ? value : 0) + 'px';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2047,31 +1888,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.innerH = rect.innerH;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._lastRepaintRect = lastRepaintRect;
-      self.fire('repaint', {}, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._lastRepaintRect = lastRepaintRect;
+      self$$1.fire('repaint', {}, false);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     updateLayoutRect: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.parent()._lastRect = null;
-      funcs.css(self.getEl(), {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.parent()._lastRect = null;
+      funcs.css(self$$1.getEl(), {
</ins><span class="cx" style="display: block; padding: 0 10px">         width: '',
</span><span class="cx" style="display: block; padding: 0 10px">         height: ''
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._layoutRect = self._lastRepaintRect = self._lastLayoutRect = null;
-      self.initLayoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._layoutRect = self$$1._lastRepaintRect = self$$1._lastLayoutRect = null;
+      self$$1.initLayoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    on: function (name, callback) {
-      var self = this;
-      function resolveCallbackName(name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    on: function (name$$1, callback) {
+      var self$$1 = this;
+      function resolveCallbackName(name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var callback, scope;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (typeof name !== 'string') {
-          return name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (typeof name$$1 !== 'string') {
+          return name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (!callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.parentsAndSelf().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.parentsAndSelf().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">               var callbacks = ctrl.settings.callbacks;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              if (callbacks && (callback = callbacks[name])) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              if (callbacks && (callback = callbacks[name$$1])) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 scope = ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">                 return false;
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2078,7 +1919,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           if (!callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            e.action = name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            e.action = name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">             this.fire('execute', e);
</span><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2085,36 +1926,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">           return callback.call(scope, e);
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      getEventDispatcher(self).on(name, resolveCallbackName(callback));
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getEventDispatcher(self$$1).on(name$$1, resolveCallbackName(callback));
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    off: function (name, callback) {
-      getEventDispatcher(this).off(name, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    off: function (name$$1, callback) {
+      getEventDispatcher(this).off(name$$1, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    fire: function (name, args, bubble) {
-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    fire: function (name$$1, args, bubble) {
+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       args = args || {};
</span><span class="cx" style="display: block; padding: 0 10px">       if (!args.control) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        args.control = self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        args.control = self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      args = getEventDispatcher(self).fire(name, args);
-      if (bubble !== false && self.parent) {
-        var parent_1 = self.parent();
-        while (parent_1 && !args.isPropagationStopped()) {
-          parent_1.fire(name, args, false);
-          parent_1 = parent_1.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      args = getEventDispatcher(self$$1).fire(name$$1, args);
+      if (bubble !== false && self$$1.parent) {
+        var parent$$1 = self$$1.parent();
+        while (parent$$1 && !args.isPropagationStopped()) {
+          parent$$1.fire(name$$1, args, false);
+          parent$$1 = parent$$1.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return args;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    hasEventListeners: function (name) {
-      return getEventDispatcher(this).has(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    hasEventListeners: function (name$$1) {
+      return getEventDispatcher(this).has(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     parents: function (selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var ctrl, parents = new Collection$2();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (ctrl = self$$1.parent(); ctrl; ctrl = ctrl.parent()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         parents.add(ctrl);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (selector) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2161,16 +2002,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this.getEl().blur();
</span><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    aria: function (name, value) {
-      var self = this, elm = self.getEl(self.ariaTarget);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    aria: function (name$$1, value) {
+      var self$$1 = this, elm = self$$1.getEl(self$$1.ariaTarget);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (typeof value === 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self._aria[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1._aria[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._aria[name] = value;
-      if (self.state.get('rendered')) {
-        elm.setAttribute(name === 'role' ? name : 'aria-' + name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._aria[name$$1] = value;
+      if (self$$1.state.get('rendered')) {
+        elm.setAttribute(name$$1 === 'role' ? name$$1 : 'aria-' + name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     encode: function (text, translate) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (translate !== false) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2184,55 +2025,55 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return Control.translate ? Control.translate(text) : text;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     before: function (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, parent = self.parent();
-      if (parent) {
-        parent.insert(items, parent.items().indexOf(self), true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, parent$$1 = self$$1.parent();
+      if (parent$$1) {
+        parent$$1.insert(items, parent$$1.items().indexOf(self$$1), true);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     after: function (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, parent = self.parent();
-      if (parent) {
-        parent.insert(items, parent.items().indexOf(self));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, parent$$1 = self$$1.parent();
+      if (parent$$1) {
+        parent$$1.insert(items, parent$$1.items().indexOf(self$$1));
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var elm = self.getEl();
-      var parent = self.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var elm = self$$1.getEl();
+      var parent$$1 = self$$1.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">       var newItems, i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.items) {
-        var controls = self.items().toArray();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.items) {
+        var controls = self$$1.items().toArray();
</ins><span class="cx" style="display: block; padding: 0 10px">         i = controls.length;
</span><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><span class="cx" style="display: block; padding: 0 10px">           controls[i].remove();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (parent && parent.items) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (parent$$1 && parent$$1.items) {
</ins><span class="cx" style="display: block; padding: 0 10px">         newItems = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        parent.items().each(function (item) {
-          if (item !== self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        parent$$1.items().each(function (item) {
+          if (item !== self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">             newItems.push(item);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        parent.items().set(newItems);
-        parent._lastRect = null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        parent$$1.items().set(newItems);
+        parent$$1._lastRect = null;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._eventsRoot && self._eventsRoot === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._eventsRoot && self$$1._eventsRoot === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         global$7(elm).off();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var lookup = self.getRoot().controlIdLookup;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var lookup = self$$1.getRoot().controlIdLookup;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (lookup) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        delete lookup[self._id];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        delete lookup[self$$1._id];
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (elm && elm.parentNode) {
</span><span class="cx" style="display: block; padding: 0 10px">         elm.parentNode.removeChild(elm);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.set('rendered', false);
-      self.state.destroy();
-      self.fire('remove');
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.set('rendered', false);
+      self$$1.state.destroy();
+      self$$1.fire('remove');
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderBefore: function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">       global$7(elm).before(this.renderHtml());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2252,37 +2093,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return '<div id="' + this._id + '" class="' + this.classes + '"></div>';
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var settings = self.settings;
-      var elm, box, parent, name, parentEventsRoot;
-      self.$el = global$7(self.getEl());
-      self.state.set('rendered', true);
-      for (name in settings) {
-        if (name.indexOf('on') === 0) {
-          self.on(name.substr(2), settings[name]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var settings = self$$1.settings;
+      var elm, box, parent$$1, name$$1, parentEventsRoot;
+      self$$1.$el = global$7(self$$1.getEl());
+      self$$1.state.set('rendered', true);
+      for (name$$1 in settings) {
+        if (name$$1.indexOf('on') === 0) {
+          self$$1.on(name$$1.substr(2), settings[name$$1]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._eventsRoot) {
-        for (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) {
-          parentEventsRoot = parent._eventsRoot;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._eventsRoot) {
+        for (parent$$1 = self$$1.parent(); !parentEventsRoot && parent$$1; parent$$1 = parent$$1.parent()) {
+          parentEventsRoot = parent$$1._eventsRoot;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (parentEventsRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          for (name in parentEventsRoot._nativeEvents) {
-            self._nativeEvents[name] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          for (name$$1 in parentEventsRoot._nativeEvents) {
+            self$$1._nativeEvents[name$$1] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      bindPendingEvents(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      bindPendingEvents(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.style) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        elm = self.getEl();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        elm = self$$1.getEl();
</ins><span class="cx" style="display: block; padding: 0 10px">         if (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">           elm.setAttribute('style', settings.style);
</span><span class="cx" style="display: block; padding: 0 10px">           elm.style.cssText = settings.style;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.settings.border) {
-        box = self.borderBox;
-        self.$el.css({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.settings.border) {
+        box = self$$1.borderBox;
+        self$$1.$el.css({
</ins><span class="cx" style="display: block; padding: 0 10px">           'border-top-width': box.top,
</span><span class="cx" style="display: block; padding: 0 10px">           'border-right-width': box.right,
</span><span class="cx" style="display: block; padding: 0 10px">           'border-bottom-width': box.bottom,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2289,44 +2130,44 @@
</span><span class="cx" style="display: block; padding: 0 10px">           'border-left-width': box.left
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var root = self.getRoot();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var root = self$$1.getRoot();
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!root.controlIdLookup) {
</span><span class="cx" style="display: block; padding: 0 10px">         root.controlIdLookup = {};
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      root.controlIdLookup[self._id] = self;
-      for (var key in self._aria) {
-        self.aria(key, self._aria[key]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      root.controlIdLookup[self$$1._id] = self$$1;
+      for (var key in self$$1._aria) {
+        self$$1.aria(key, self$$1._aria[key]);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.state.get('visible') === false) {
-        self.getEl().style.display = 'none';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.state.get('visible') === false) {
+        self$$1.getEl().style.display = 'none';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.bindStates();
-      self.state.on('change:visible', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.bindStates();
+      self$$1.state.on('change:visible', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var state = e.value;
</span><span class="cx" style="display: block; padding: 0 10px">         var parentCtrl;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self.state.get('rendered')) {
-          self.getEl().style.display = state === false ? 'none' : '';
-          self.getEl().getBoundingClientRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1.state.get('rendered')) {
+          self$$1.getEl().style.display = state === false ? 'none' : '';
+          self$$1.getEl().getBoundingClientRect();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        parentCtrl = self.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        parentCtrl = self$$1.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">         if (parentCtrl) {
</span><span class="cx" style="display: block; padding: 0 10px">           parentCtrl._lastRect = null;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.fire(state ? 'show' : 'hide');
-        $_13g7tw17vjfuw8wgk.add(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.fire(state ? 'show' : 'hide');
+        $_cqjgb518wjjgwek2f.add(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.fire('postrender', {}, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.fire('postrender', {}, false);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     scrollIntoView: function (align) {
</span><span class="cx" style="display: block; padding: 0 10px">       function getOffset(elm, rootElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var x, y, parent = elm;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var x, y, parent$$1 = elm;
</ins><span class="cx" style="display: block; padding: 0 10px">         x = y = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        while (parent && parent !== rootElm && parent.nodeType) {
-          x += parent.offsetLeft || 0;
-          y += parent.offsetTop || 0;
-          parent = parent.offsetParent;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        while (parent$$1 && parent$$1 !== rootElm && parent$$1.nodeType) {
+          x += parent$$1.offsetLeft || 0;
+          y += parent$$1.offsetTop || 0;
+          parent$$1 = parent$$1.offsetParent;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return {
</span><span class="cx" style="display: block; padding: 0 10px">           x: x,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2375,21 +2216,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return rootControl;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     reflow: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_13g7tw17vjfuw8wgk.remove(this);
-      var parent = this.parent();
-      if (parent && parent._layout && !parent._layout.isNative()) {
-        parent.reflow();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_cqjgb518wjjgwek2f.remove(this);
+      var parent$$1 = this.parent();
+      if (parent$$1 && parent$$1._layout && !parent$$1._layout.isNative()) {
+        parent$$1.reflow();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  global$4.each('text title visible disabled active value'.split(' '), function (name) {
-    proto$1[name] = function (value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  global$4.each('text title visible disabled active value'.split(' '), function (name$$1) {
+    proto$1[name$$1] = function (value) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (arguments.length === 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return this.state.get(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return this.state.get(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof value !== 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        this.state.set(name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        this.state.set(name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2399,12 +2240,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (!obj._eventDispatcher) {
</span><span class="cx" style="display: block; padding: 0 10px">       obj._eventDispatcher = new global$9({
</span><span class="cx" style="display: block; padding: 0 10px">         scope: obj,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        toggleEvent: function (name, state) {
-          if (state && global$9.isNative(name)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        toggleEvent: function (name$$1, state) {
+          if (state && global$9.isNative(name$$1)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (!obj._nativeEvents) {
</span><span class="cx" style="display: block; padding: 0 10px">               obj._nativeEvents = {};
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            obj._nativeEvents[name] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            obj._nativeEvents[name$$1] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">             if (obj.state.get('rendered')) {
</span><span class="cx" style="display: block; padding: 0 10px">               bindPendingEvents(obj);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2415,7 +2256,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return obj._eventDispatcher;
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   function bindPendingEvents(eventCtrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var i, l, parents, eventRootCtrl, nativeEvents, name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var i, l, parents, eventRootCtrl, nativeEvents, name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     function delegate(e) {
</span><span class="cx" style="display: block; padding: 0 10px">       var control = eventCtrl.getParentCtrl(e.target);
</span><span class="cx" style="display: block; padding: 0 10px">       if (control) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2488,11 +2329,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!eventRootDelegates) {
</span><span class="cx" style="display: block; padding: 0 10px">         eventRootDelegates = eventRootCtrl._delegates = {};
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (name in nativeEvents) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (name$$1 in nativeEvents) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!nativeEvents) {
</span><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (name === 'wheel' && !hasWheelEventSupport) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (name$$1 === 'wheel' && !hasWheelEventSupport) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (hasMouseWheelEventSupport) {
</span><span class="cx" style="display: block; padding: 0 10px">             global$7(eventCtrl.getEl()).on('mousewheel', fixWheelEvent);
</span><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2500,16 +2341,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           continue;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (name === 'mouseenter' || name === 'mouseleave') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (name$$1 === 'mouseenter' || name$$1 === 'mouseleave') {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!eventRootCtrl._hasMouseEnter) {
</span><span class="cx" style="display: block; padding: 0 10px">             global$7(eventRootCtrl.getEl()).on('mouseleave', mouseLeaveHandler).on('mouseover', mouseEnterHandler);
</span><span class="cx" style="display: block; padding: 0 10px">             eventRootCtrl._hasMouseEnter = 1;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        } else if (!eventRootDelegates[name]) {
-          global$7(eventRootCtrl.getEl()).on(name, delegate);
-          eventRootDelegates[name] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        } else if (!eventRootDelegates[name$$1]) {
+          global$7(eventRootCtrl.getEl()).on(name$$1, delegate);
+          eventRootDelegates[name$$1] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        nativeEvents[name] = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        nativeEvents[name$$1] = false;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2524,7 +2365,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   function calculateRelativePosition(ctrl, targetElm, rel) {
</span><span class="cx" style="display: block; padding: 0 10px">     var ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size;
</span><span class="cx" style="display: block; padding: 0 10px">     viewport = getWindowViewPort();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    pos = funcs.getPos(targetElm, $_dbjzo817wjfuw8wgl.getUiContainer(ctrl));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    pos = funcs.getPos(targetElm, $_egt6ye18xjjgwek2h.getUiContainer(ctrl));
</ins><span class="cx" style="display: block; padding: 0 10px">     x = pos.x;
</span><span class="cx" style="display: block; padding: 0 10px">     y = pos.y;
</span><span class="cx" style="display: block; padding: 0 10px">     if (isFixed(ctrl) && isStatic(document.body)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2592,10 +2433,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getViewPortRect = function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var customUiContainer = $_dbjzo817wjfuw8wgl.getUiContainer(ctrl);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var customUiContainer = $_egt6ye18xjjgwek2h.getUiContainer(ctrl);
</ins><span class="cx" style="display: block; padding: 0 10px">     return customUiContainer && !isFixed(ctrl) ? getUiContainerViewPort(customUiContainer) : getWindowViewPort();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cn53y617xjfuw8wgp = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8zu82i18yjjgwek2l = {
</ins><span class="cx" style="display: block; padding: 0 10px">     testMoveRel: function (elm, rels) {
</span><span class="cx" style="display: block; padding: 0 10px">       var viewPortRect = getViewPortRect(this);
</span><span class="cx" style="display: block; padding: 0 10px">       for (var i = 0; i < rels.length; i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2620,12 +2461,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.moveTo(pos.x, pos.y);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     moveBy: function (dx, dy) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, rect = self.layoutRect();
-      self.moveTo(rect.x + dx, rect.y + dy);
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, rect = self$$1.layoutRect();
+      self$$1.moveTo(rect.x + dx, rect.y + dy);
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     moveTo: function (x, y) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       function constrain(value, max, size) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (value < 0) {
</span><span class="cx" style="display: block; padding: 0 10px">           return 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2636,14 +2477,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return value;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.settings.constrainToViewport) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.settings.constrainToViewport) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var viewPortRect = getViewPortRect(this);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var layoutRect = self.layoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var layoutRect = self$$1.layoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">         x = constrain(x, viewPortRect.w, layoutRect.w);
</span><span class="cx" style="display: block; padding: 0 10px">         y = constrain(y, viewPortRect.h, layoutRect.h);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var uiContainer = $_dbjzo817wjfuw8wgl.getUiContainer(self);
-      if (uiContainer && isStatic(uiContainer) && !isFixed(self)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var uiContainer = $_egt6ye18xjjgwek2h.getUiContainer(self$$1);
+      if (uiContainer && isStatic(uiContainer) && !isFixed(self$$1)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         x -= uiContainer.scrollLeft;
</span><span class="cx" style="display: block; padding: 0 10px">         y -= uiContainer.scrollTop;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2651,25 +2492,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">         x += 1;
</span><span class="cx" style="display: block; padding: 0 10px">         y += 1;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.state.get('rendered')) {
-        self.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.state.get('rendered')) {
+        self$$1.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">           x: x,
</span><span class="cx" style="display: block; padding: 0 10px">           y: y
</span><span class="cx" style="display: block; padding: 0 10px">         }).repaint();
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.settings.x = x;
-        self.settings.y = y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.settings.x = x;
+        self$$1.settings.y = y;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.fire('move', {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.fire('move', {
</ins><span class="cx" style="display: block; padding: 0 10px">         x: x,
</span><span class="cx" style="display: block; padding: 0 10px">         y: y
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var Tooltip = Control$1.extend({
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    Mixins: [$_cn53y617xjfuw8wgp],
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    Mixins: [$_8zu82i18yjjgwek2l],
</ins><span class="cx" style="display: block; padding: 0 10px">     Defaults: { classes: 'widget tooltip tooltip-n' },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this, prefix = self.classPrefix;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2726,7 +2567,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     tooltip: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!this._tooltip) {
</span><span class="cx" style="display: block; padding: 0 10px">         this._tooltip = new Tooltip({ type: 'tooltip' });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_dbjzo817wjfuw8wgl.inheritUiContainer(this, this._tooltip);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_egt6ye18xjjgwek2h.inheritUiContainer(this, this._tooltip);
</ins><span class="cx" style="display: block; padding: 0 10px">         this._tooltip.renderTo();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return this._tooltip;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2816,7 +2657,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     ctx.getEl().lastChild.textContent = text + (ctx.progressBar ? ' ' + ctx.progressBar.value() + '%' : '');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var Notification = Control$1.extend({
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    Mixins: [$_cn53y617xjfuw8wgp],
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    Mixins: [$_8zu82i18yjjgwek2l],
</ins><span class="cx" style="display: block; padding: 0 10px">     Defaults: { classes: 'widget notification' },
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2914,7 +2755,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return funcs.getSize(container).width;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var prePositionNotifications = function (notifications) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_1doq1817ejfuw8wen.each(notifications, function (notification) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(notifications, function (notification) {
</ins><span class="cx" style="display: block; padding: 0 10px">         notification.moveTo(0, 0);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2923,7 +2764,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var firstItem = notifications.slice(0, 1)[0];
</span><span class="cx" style="display: block; padding: 0 10px">         var container = getEditorContainer(editor);
</span><span class="cx" style="display: block; padding: 0 10px">         firstItem.moveRel(container, 'tc-tc');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_1doq1817ejfuw8wen.each(notifications, function (notification, index) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each(notifications, function (notification, index) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (index > 0) {
</span><span class="cx" style="display: block; padding: 0 10px">             notification.moveRel(notifications[index - 1].getEl(), 'bc-tc');
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2994,7 +2835,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var $eventOverlay;
</span><span class="cx" style="display: block; padding: 0 10px">     var doc = settings.document || document;
</span><span class="cx" style="display: block; padding: 0 10px">     var downButton;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var start, stop, drag, startX, startY;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var start, stop$$1, drag, startX, startY;
</ins><span class="cx" style="display: block; padding: 0 10px">     settings = settings || {};
</span><span class="cx" style="display: block; padding: 0 10px">     var handleElement = doc.getElementById(settings.handle || id);
</span><span class="cx" style="display: block; padding: 0 10px">     start = function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3021,13 +2862,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         opacity: 0.0001,
</span><span class="cx" style="display: block; padding: 0 10px">         cursor: cursor
</span><span class="cx" style="display: block; padding: 0 10px">       }).appendTo(doc.body);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$7(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$7(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       settings.start(e);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     drag = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       updateWithTouchData(e);
</span><span class="cx" style="display: block; padding: 0 10px">       if (e.button !== downButton) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return stop(e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return stop$$1(e);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       e.deltaX = e.screenX - startX;
</span><span class="cx" style="display: block; padding: 0 10px">       e.deltaY = e.screenY - startY;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3034,9 +2875,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">       settings.drag(e);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    stop = function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    stop$$1 = function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">       updateWithTouchData(e);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$7(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$7(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       $eventOverlay.remove();
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.stop) {
</span><span class="cx" style="display: block; padding: 0 10px">         settings.stop(e);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3073,17 +2914,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return null;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function getParentRole(elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var role, parent = elm || focusedElement;
-      while (parent = parent.parentNode) {
-        if (role = getRole(parent)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var role, parent$$1 = elm || focusedElement;
+      while (parent$$1 = parent$$1.parentNode) {
+        if (role = getRole(parent$$1)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return role;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    function getAriaProp(name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    function getAriaProp(name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var elm = focusedElement;
</span><span class="cx" style="display: block; padding: 0 10px">       if (isElement(elm)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return elm.getAttribute('aria-' + name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return elm.getAttribute('aria-' + name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function isTextInputElement(elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3395,7 +3236,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             global$7(containerElm).append(ctrl.renderHtml());
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           ctrl.postRender();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_13g7tw17vjfuw8wgk.add(ctrl);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_cqjgb518wjjgwek2f.add(ctrl);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       self._layout.applyClasses(self.items().filter(':visible'));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3427,8 +3268,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     fromJSON: function (data) {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (var name_1 in data) {
-        self.find('#' + name_1).value(data[name_1]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (var name in data) {
+        self.find('#' + name).value(data[name]);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return self;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3495,7 +3336,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     reflow: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_13g7tw17vjfuw8wgk.remove(this);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_cqjgb518wjjgwek2f.remove(this);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (this.visible()) {
</span><span class="cx" style="display: block; padding: 0 10px">         Control$1.repaintControls = [];
</span><span class="cx" style="display: block; padding: 0 10px">         Control$1.repaintControls.map = {};
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3513,7 +3354,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7kg51q189jfuw8wiq = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8woeth19ajjgwek4b = {
</ins><span class="cx" style="display: block; padding: 0 10px">     init: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">       self.on('repaint', self.renderScroll);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3609,7 +3450,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       layout: 'fit',
</span><span class="cx" style="display: block; padding: 0 10px">       containerCls: 'panel'
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    Mixins: [$_7kg51q189jfuw8wiq],
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    Mixins: [$_8woeth19ajjgwek4b],
</ins><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">       var layout = self._layout;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3628,7 +3469,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_f8jegf18ajfuw8wit = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_20hy1119bjjgwek4f = {
</ins><span class="cx" style="display: block; padding: 0 10px">     resizeToContent: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       this._layoutRect.autoResize = true;
</span><span class="cx" style="display: block; padding: 0 10px">       this._lastRect = null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3660,9 +3501,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var visiblePanels = [];
</span><span class="cx" style="display: block; padding: 0 10px">   var zOrder = [];
</span><span class="cx" style="display: block; padding: 0 10px">   var hasModal;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function isChildOf(ctrl, parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  function isChildOf(ctrl, parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">     while (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (ctrl === parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (ctrl === parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       ctrl = ctrl.parent();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3723,14 +3564,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   function repositionPanel$1(panel) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var scrollY = funcs.getViewPort().y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var scrollY$$1 = funcs.getViewPort().y;
</ins><span class="cx" style="display: block; padding: 0 10px">     function toggleFixedChildPanels(fixed, deltaY) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parent;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parent$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       for (var i = 0; i < visiblePanels.length; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (visiblePanels[i] !== panel) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          parent = visiblePanels[i].parent();
-          while (parent && (parent = parent.parent())) {
-            if (parent === panel) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          parent$$1 = visiblePanels[i].parent();
+          while (parent$$1 && (parent$$1 = parent$$1.parent())) {
+            if (parent$$1 === panel) {
</ins><span class="cx" style="display: block; padding: 0 10px">               visiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint();
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3740,14 +3581,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (panel.settings.autofix) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!panel.state.get('fixed')) {
</span><span class="cx" style="display: block; padding: 0 10px">         panel._autoFixY = panel.layoutRect().y;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (panel._autoFixY < scrollY) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (panel._autoFixY < scrollY$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           panel.fixed(true).layoutRect({ y: 0 }).repaint();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          toggleFixedChildPanels(true, scrollY - panel._autoFixY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          toggleFixedChildPanels(true, scrollY$$1 - panel._autoFixY);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (panel._autoFixY > scrollY) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (panel._autoFixY > scrollY$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           panel.fixed(false).layoutRect({ y: panel._autoFixY }).repaint();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          toggleFixedChildPanels(false, panel._autoFixY - scrollY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          toggleFixedChildPanels(false, panel._autoFixY - scrollY$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3786,87 +3627,87 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   var FloatPanel = Panel.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     Mixins: [
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_cn53y617xjfuw8wgp,
-      $_f8jegf18ajfuw8wit
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_8zu82i18yjjgwek2l,
+      $_20hy1119bjjgwek4f
</ins><span class="cx" style="display: block; padding: 0 10px">     ],
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      self._eventsRoot = self;
-      self.classes.add('floatpanel');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      self$$1._eventsRoot = self$$1;
+      self$$1.classes.add('floatpanel');
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.autohide) {
</span><span class="cx" style="display: block; padding: 0 10px">         bindDocumentClickHandler();
</span><span class="cx" style="display: block; padding: 0 10px">         bindWindowResizeHandler();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        visiblePanels.push(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        visiblePanels.push(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.autofix) {
</span><span class="cx" style="display: block; padding: 0 10px">         bindDocumentScrollHandler();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.on('move', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.on('move', function () {
</ins><span class="cx" style="display: block; padding: 0 10px">           repositionPanel$1(this);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('postrender show', function (e) {
-        if (e.control === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('postrender show', function (e) {
+        if (e.control === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var $modalBlockEl_1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var prefix_1 = self.classPrefix;
-          if (self.modal && !hasModal) {
-            $modalBlockEl_1 = global$7('#' + prefix_1 + 'modal-block', self.getContainerElm());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var prefix_1 = self$$1.classPrefix;
+          if (self$$1.modal && !hasModal) {
+            $modalBlockEl_1 = global$7('#' + prefix_1 + 'modal-block', self$$1.getContainerElm());
</ins><span class="cx" style="display: block; padding: 0 10px">             if (!$modalBlockEl_1[0]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              $modalBlockEl_1 = global$7('<div id="' + prefix_1 + 'modal-block" class="' + prefix_1 + 'reset ' + prefix_1 + 'fade"></div>').appendTo(self.getContainerElm());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              $modalBlockEl_1 = global$7('<div id="' + prefix_1 + 'modal-block" class="' + prefix_1 + 'reset ' + prefix_1 + 'fade"></div>').appendTo(self$$1.getContainerElm());
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             global$3.setTimeout(function () {
</span><span class="cx" style="display: block; padding: 0 10px">               $modalBlockEl_1.addClass(prefix_1 + 'in');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              global$7(self.getEl()).addClass(prefix_1 + 'in');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              global$7(self$$1.getEl()).addClass(prefix_1 + 'in');
</ins><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="cx" style="display: block; padding: 0 10px">             hasModal = true;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          addRemove(true, self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          addRemove(true, self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('show', function () {
-        self.parents().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('show', function () {
+        self$$1.parents().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (ctrl.state.get('fixed')) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.fixed(true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.fixed(true);
</ins><span class="cx" style="display: block; padding: 0 10px">             return false;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.popover) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self._preBodyHtml = '<div class="' + self.classPrefix + 'arrow"></div>';
-        self.classes.add('popover').add('bottom').add(self.isRtl() ? 'end' : 'start');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1._preBodyHtml = '<div class="' + self$$1.classPrefix + 'arrow"></div>';
+        self$$1.classes.add('popover').add('bottom').add(self$$1.isRtl() ? 'end' : 'start');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.aria('label', settings.ariaLabel);
-      self.aria('labelledby', self._id);
-      self.aria('describedby', self.describedBy || self._id + '-none');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.aria('label', settings.ariaLabel);
+      self$$1.aria('labelledby', self$$1._id);
+      self$$1.aria('describedby', self$$1.describedBy || self$$1._id + '-none');
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     fixed: function (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (self.state.get('fixed') !== state) {
-        if (self.state.get('rendered')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (self$$1.state.get('fixed') !== state) {
+        if (self$$1.state.get('rendered')) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var viewport = funcs.getViewPort();
</span><span class="cx" style="display: block; padding: 0 10px">           if (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.layoutRect().y -= viewport.y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.layoutRect().y -= viewport.y;
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.layoutRect().y += viewport.y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.layoutRect().y += viewport.y;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.toggle('fixed', state);
-        self.state.set('fixed', state);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.toggle('fixed', state);
+        self$$1.state.set('fixed', state);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     show: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var state = self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var state = self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">       i = visiblePanels.length;
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (visiblePanels[i] === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (visiblePanels[i] === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (i === -1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        visiblePanels.push(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        visiblePanels.push(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return state;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3879,12 +3720,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       FloatPanel.hideAll();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     close: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (!self.fire('close').isDefaultPrevented()) {
-        self.remove();
-        addRemove(false, self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (!self$$1.fire('close').isDefaultPrevented()) {
+        self$$1.remove();
+        addRemove(false, self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       removeVisiblePanel(this);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3891,11 +3732,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this._super();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (self.settings.bodyRole) {
-        this.getEl('body').setAttribute('role', self.settings.bodyRole);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (self$$1.settings.bodyRole) {
+        this.getEl('body').setAttribute('role', self$$1.settings.bodyRole);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   FloatPanel.hideAll = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3987,7 +3828,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     global$7(window).on('resize', reposition);
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var Window = FloatPanel.extend({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Window$$1 = FloatPanel.extend({
</ins><span class="cx" style="display: block; padding: 0 10px">     modal: true,
</span><span class="cx" style="display: block; padding: 0 10px">     Defaults: {
</span><span class="cx" style="display: block; padding: 0 10px">       border: 1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4004,61 +3845,61 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      if (self.isRtl()) {
-        self.classes.add('rtl');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      if (self$$1.isRtl()) {
+        self$$1.classes.add('rtl');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.classes.add('window');
-      self.bodyClasses.add('window-body');
-      self.state.set('fixed', true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.classes.add('window');
+      self$$1.bodyClasses.add('window-body');
+      self$$1.state.set('fixed', true);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.buttons) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.statusbar = new Panel({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.statusbar = new Panel({
</ins><span class="cx" style="display: block; padding: 0 10px">           layout: 'flex',
</span><span class="cx" style="display: block; padding: 0 10px">           border: '1 0 0 0',
</span><span class="cx" style="display: block; padding: 0 10px">           spacing: 3,
</span><span class="cx" style="display: block; padding: 0 10px">           padding: 10,
</span><span class="cx" style="display: block; padding: 0 10px">           align: 'center',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          pack: self.isRtl() ? 'start' : 'end',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          pack: self$$1.isRtl() ? 'start' : 'end',
</ins><span class="cx" style="display: block; padding: 0 10px">           defaults: { type: 'button' },
</span><span class="cx" style="display: block; padding: 0 10px">           items: settings.buttons
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.statusbar.classes.add('foot');
-        self.statusbar.parent(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.statusbar.classes.add('foot');
+        self$$1.statusbar.parent(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('click', function (e) {
-        var closeClass = self.classPrefix + 'close';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('click', function (e) {
+        var closeClass = self$$1.classPrefix + 'close';
</ins><span class="cx" style="display: block; padding: 0 10px">         if (funcs.hasClass(e.target, closeClass) || funcs.hasClass(e.target.parentNode, closeClass)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.close();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('cancel', function () {
-        self.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('cancel', function () {
+        self$$1.close();
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('move', function (e) {
-        if (e.control === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('move', function (e) {
+        if (e.control === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           FloatPanel.hideAll();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.aria('describedby', self.describedBy || self._id + '-none');
-      self.aria('label', settings.title);
-      self._fullscreen = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.aria('describedby', self$$1.describedBy || self$$1._id + '-none');
+      self$$1.aria('label', settings.title);
+      self$$1._fullscreen = false;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     recalc: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var statusbar = self.statusbar;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var statusbar$$1 = self$$1.statusbar;
</ins><span class="cx" style="display: block; padding: 0 10px">       var layoutRect, width, x, needsRecalc;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._fullscreen) {
-        self.layoutRect(funcs.getWindowSize());
-        self.layoutRect().contentH = self.layoutRect().innerH;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._fullscreen) {
+        self$$1.layoutRect(funcs.getWindowSize());
+        self$$1.layoutRect().contentH = self$$1.layoutRect().innerH;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super();
-      layoutRect = self.layoutRect();
-      if (self.settings.title && !self._fullscreen) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super();
+      layoutRect = self$$1.layoutRect();
+      if (self$$1.settings.title && !self$$1._fullscreen) {
</ins><span class="cx" style="display: block; padding: 0 10px">         width = layoutRect.headerW;
</span><span class="cx" style="display: block; padding: 0 10px">         if (width > layoutRect.w) {
</span><span class="cx" style="display: block; padding: 0 10px">           x = layoutRect.x - Math.max(0, width / 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">             w: width,
</span><span class="cx" style="display: block; padding: 0 10px">             x: x
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4065,12 +3906,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">           needsRecalc = true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (statusbar) {
-        statusbar.layoutRect({ w: self.layoutRect().innerW }).recalc();
-        width = statusbar.layoutRect().minW + layoutRect.deltaW;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (statusbar$$1) {
+        statusbar$$1.layoutRect({ w: self$$1.layoutRect().innerW }).recalc();
+        width = statusbar$$1.layoutRect().minW + layoutRect.deltaW;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (width > layoutRect.w) {
</span><span class="cx" style="display: block; padding: 0 10px">           x = layoutRect.x - Math.max(0, width - layoutRect.w);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">             w: width,
</span><span class="cx" style="display: block; padding: 0 10px">             x: x
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4078,141 +3919,141 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (needsRecalc) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.recalc();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.recalc();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     initLayoutRect: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var layoutRect = self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var layoutRect = self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">       var deltaH = 0, headEl;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.settings.title && !self._fullscreen) {
-        headEl = self.getEl('head');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.settings.title && !self$$1._fullscreen) {
+        headEl = self$$1.getEl('head');
</ins><span class="cx" style="display: block; padding: 0 10px">         var size = funcs.getSize(headEl);
</span><span class="cx" style="display: block; padding: 0 10px">         layoutRect.headerW = size.width;
</span><span class="cx" style="display: block; padding: 0 10px">         layoutRect.headerH = size.height;
</span><span class="cx" style="display: block; padding: 0 10px">         deltaH += layoutRect.headerH;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.statusbar) {
-        deltaH += self.statusbar.layoutRect().h;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.statusbar) {
+        deltaH += self$$1.statusbar.layoutRect().h;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       layoutRect.deltaH += deltaH;
</span><span class="cx" style="display: block; padding: 0 10px">       layoutRect.minH += deltaH;
</span><span class="cx" style="display: block; padding: 0 10px">       layoutRect.h += deltaH;
</span><span class="cx" style="display: block; padding: 0 10px">       var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      layoutRect.x = self.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2);
-      layoutRect.y = self.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      layoutRect.x = self$$1.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2);
+      layoutRect.y = self$$1.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2);
</ins><span class="cx" style="display: block; padding: 0 10px">       return layoutRect;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, layout = self._layout, id = self._id, prefix = self.classPrefix;
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, layout = self$$1._layout, id = self$$1._id, prefix = self$$1.classPrefix;
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var headerHtml = '', footerHtml = '', html = settings.html;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.preRender();
-      layout.preRender(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.preRender();
+      layout.preRender(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.title) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        headerHtml = '<div id="' + id + '-head" class="' + prefix + 'window-head">' + '<div id="' + id + '-title" class="' + prefix + 'title">' + self.encode(settings.title) + '</div>' + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + '<button type="button" class="' + prefix + 'close" aria-hidden="true">' + '<i class="mce-ico mce-i-remove"></i>' + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        headerHtml = '<div id="' + id + '-head" class="' + prefix + 'window-head">' + '<div id="' + id + '-title" class="' + prefix + 'title">' + self$$1.encode(settings.title) + '</div>' + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + '<button type="button" class="' + prefix + 'close" aria-hidden="true">' + '<i class="mce-ico mce-i-remove"></i>' + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.url) {
</span><span class="cx" style="display: block; padding: 0 10px">         html = '<iframe src="' + settings.url + '" tabindex="-1"></iframe>';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof html === 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        html = layout.renderHtml(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        html = layout.renderHtml(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.statusbar) {
-        footerHtml = self.statusbar.renderHtml();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.statusbar) {
+        footerHtml = self$$1.statusbar.renderHtml();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return '<div id="' + id + '" class="' + self.classes + '" hidefocus="1">' + '<div class="' + self.classPrefix + 'reset" role="application">' + headerHtml + '<div id="' + id + '-body" class="' + self.bodyClasses + '">' + html + '</div>' + footerHtml + '</div>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return '<div id="' + id + '" class="' + self$$1.classes + '" hidefocus="1">' + '<div class="' + self$$1.classPrefix + 'reset" role="application">' + headerHtml + '<div id="' + id + '-body" class="' + self$$1.bodyClasses + '">' + html + '</div>' + footerHtml + '</div>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     fullscreen: function (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var documentElement = document.documentElement;
</span><span class="cx" style="display: block; padding: 0 10px">       var slowRendering;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var prefix = self.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var prefix = self$$1.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">       var layoutRect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (state !== self._fullscreen) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (state !== self$$1._fullscreen) {
</ins><span class="cx" style="display: block; padding: 0 10px">         global$7(window).on('resize', function () {
</span><span class="cx" style="display: block; padding: 0 10px">           var time;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (self._fullscreen) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (self$$1._fullscreen) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (!slowRendering) {
</span><span class="cx" style="display: block; padding: 0 10px">               time = new Date().getTime();
</span><span class="cx" style="display: block; padding: 0 10px">               var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              self.moveTo(0, 0).resizeTo(rect.w, rect.h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);
</ins><span class="cx" style="display: block; padding: 0 10px">               if (new Date().getTime() - time > 50) {
</span><span class="cx" style="display: block; padding: 0 10px">                 slowRendering = true;
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              if (!self._timer) {
-                self._timer = global$3.setTimeout(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              if (!self$$1._timer) {
+                self$$1._timer = global$3.setTimeout(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">                   var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                  self.moveTo(0, 0).resizeTo(rect.w, rect.h);
-                  self._timer = 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                  self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);
+                  self$$1._timer = 0;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }, 50);
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        layoutRect = self.layoutRect();
-        self._fullscreen = state;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        layoutRect = self$$1.layoutRect();
+        self$$1._fullscreen = state;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.borderBox = $_b17qji17ojfuw8wg0.parseBox(self.settings.border);
-          self.getEl('head').style.display = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.borderBox = $_4kbuyt18pjjgwek1w.parseBox(self$$1.settings.border);
+          self$$1.getEl('head').style.display = '';
</ins><span class="cx" style="display: block; padding: 0 10px">           layoutRect.deltaH += layoutRect.headerH;
</span><span class="cx" style="display: block; padding: 0 10px">           global$7([
</span><span class="cx" style="display: block; padding: 0 10px">             documentElement,
</span><span class="cx" style="display: block; padding: 0 10px">             document.body
</span><span class="cx" style="display: block; padding: 0 10px">           ]).removeClass(prefix + 'fullscreen');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.classes.remove('fullscreen');
-          self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.classes.remove('fullscreen');
+          self$$1.moveTo(self$$1._initial.x, self$$1._initial.y).resizeTo(self$$1._initial.w, self$$1._initial.h);
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self._initial = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1._initial = {
</ins><span class="cx" style="display: block; padding: 0 10px">             x: layoutRect.x,
</span><span class="cx" style="display: block; padding: 0 10px">             y: layoutRect.y,
</span><span class="cx" style="display: block; padding: 0 10px">             w: layoutRect.w,
</span><span class="cx" style="display: block; padding: 0 10px">             h: layoutRect.h
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.borderBox = $_b17qji17ojfuw8wg0.parseBox('0');
-          self.getEl('head').style.display = 'none';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.borderBox = $_4kbuyt18pjjgwek1w.parseBox('0');
+          self$$1.getEl('head').style.display = 'none';
</ins><span class="cx" style="display: block; padding: 0 10px">           layoutRect.deltaH -= layoutRect.headerH + 2;
</span><span class="cx" style="display: block; padding: 0 10px">           global$7([
</span><span class="cx" style="display: block; padding: 0 10px">             documentElement,
</span><span class="cx" style="display: block; padding: 0 10px">             document.body
</span><span class="cx" style="display: block; padding: 0 10px">           ]).addClass(prefix + 'fullscreen');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.classes.add('fullscreen');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.classes.add('fullscreen');
</ins><span class="cx" style="display: block; padding: 0 10px">           var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.moveTo(0, 0).resizeTo(rect.w, rect.h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self.reflow();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1.reflow();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var startPos;
</span><span class="cx" style="display: block; padding: 0 10px">       setTimeout(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('in');
-        self.fire('open');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('in');
+        self$$1.fire('open');
</ins><span class="cx" style="display: block; padding: 0 10px">       }, 0);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super();
-      if (self.statusbar) {
-        self.statusbar.postRender();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super();
+      if (self$$1.statusbar) {
+        self$$1.statusbar.postRender();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.focus();
-      this.dragHelper = new DragHelper(self._id + '-dragh', {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.focus();
+      this.dragHelper = new DragHelper(self$$1._id + '-dragh', {
</ins><span class="cx" style="display: block; padding: 0 10px">         start: function () {
</span><span class="cx" style="display: block; padding: 0 10px">           startPos = {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            x: self.layoutRect().x,
-            y: self.layoutRect().y
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            x: self$$1.layoutRect().x,
+            y: self$$1.layoutRect().y
</ins><span class="cx" style="display: block; padding: 0 10px">           };
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         drag: function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('submit', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('submit', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!e.isDefaultPrevented()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.close();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      windows.push(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      windows.push(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       toggleFullScreenState(true);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     submit: function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4219,17 +4060,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.fire('submit', { data: this.toJSON() });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.dragHelper.destroy();
-      self._super();
-      if (self.statusbar) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.dragHelper.destroy();
+      self$$1._super();
+      if (self$$1.statusbar) {
</ins><span class="cx" style="display: block; padding: 0 10px">         this.statusbar.remove();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      toggleBodyFullScreenClasses(self.classPrefix, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      toggleBodyFullScreenClasses(self$$1.classPrefix, false);
</ins><span class="cx" style="display: block; padding: 0 10px">       i = windows.length;
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (windows[i] === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (windows[i] === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           windows.splice(i, 1);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4242,7 +4083,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   handleWindowResize();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var MessageBox = Window.extend({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var MessageBox = Window$$1.extend({
</ins><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><span class="cx" style="display: block; padding: 0 10px">       settings = {
</span><span class="cx" style="display: block; padding: 0 10px">         border: 1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4275,7 +4116,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var buttons;
</span><span class="cx" style="display: block; padding: 0 10px">         var callback = settings.callback || function () {
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        function createButton(text, status, primary) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        function createButton(text, status$$1, primary) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return {
</span><span class="cx" style="display: block; padding: 0 10px">             type: 'button',
</span><span class="cx" style="display: block; padding: 0 10px">             text: text,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4282,7 +4123,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             subtype: primary ? 'primary' : '',
</span><span class="cx" style="display: block; padding: 0 10px">             onClick: function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">               e.control.parents()[1].close();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              callback(status);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              callback(status$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4307,7 +4148,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           buttons = [createButton('Ok', true, true)];
</span><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return new Window({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return new Window$$1({
</ins><span class="cx" style="display: block; padding: 0 10px">           padding: 20,
</span><span class="cx" style="display: block; padding: 0 10px">           x: settings.x,
</span><span class="cx" style="display: block; padding: 0 10px">           y: settings.y,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4354,7 +4195,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function WindowManagerImpl (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var open = function (args, params, closeCallback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var open$$1 = function (args, params, closeCallback) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var win;
</span><span class="cx" style="display: block; padding: 0 10px">       args.title = args.title || ' ';
</span><span class="cx" style="display: block; padding: 0 10px">       args.url = args.url || args.file;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4388,7 +4229,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         ];
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      win = new Window(args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      win = new Window$$1(args);
</ins><span class="cx" style="display: block; padding: 0 10px">       win.on('close', function () {
</span><span class="cx" style="display: block; padding: 0 10px">         closeCallback(win);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4395,9 +4236,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (args.data) {
</span><span class="cx" style="display: block; padding: 0 10px">         win.on('postRender', function () {
</span><span class="cx" style="display: block; padding: 0 10px">           this.find('*').each(function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            var name = ctrl.name();
-            if (name in args.data) {
-              ctrl.value(args.data[name]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            var name$$1 = ctrl.name();
+            if (name$$1 in args.data) {
+              ctrl.value(args.data[name$$1]);
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4407,7 +4248,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       win = win.renderTo(document.body).reflow();
</span><span class="cx" style="display: block; padding: 0 10px">       return win;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var alert = function (message, choiceCallback, closeCallback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var alert$$1 = function (message, choiceCallback, closeCallback) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var win;
</span><span class="cx" style="display: block; padding: 0 10px">       win = MessageBox.alert(message, function () {
</span><span class="cx" style="display: block; padding: 0 10px">         choiceCallback();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4417,7 +4258,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return win;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var confirm = function (message, choiceCallback, closeCallback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var confirm$$1 = function (message, choiceCallback, closeCallback) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var win;
</span><span class="cx" style="display: block; padding: 0 10px">       win = MessageBox.confirm(message, function (state) {
</span><span class="cx" style="display: block; padding: 0 10px">         choiceCallback(state);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4427,20 +4268,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return win;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var close = function (window) {
-      window.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var close$$1 = function (window$$1) {
+      window$$1.close();
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getParams = function (window) {
-      return window.params;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getParams = function (window$$1) {
+      return window$$1.params;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var setParams = function (window, params) {
-      window.params = params;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var setParams = function (window$$1, params) {
+      window$$1.params = params;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      open: open,
-      alert: alert,
-      confirm: confirm,
-      close: close,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      open: open$$1,
+      alert: alert$$1,
+      confirm: confirm$$1,
+      close: close$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       getParams: getParams,
</span><span class="cx" style="display: block; padding: 0 10px">       setParams: setParams
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4448,7 +4289,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var get = function (editor, panel) {
</span><span class="cx" style="display: block; padding: 0 10px">     var renderUI = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_gf138c16tjfuw8wdo.renderUI(editor, panel);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_b0wxh217tjjgwejyx.renderUI(editor, panel);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       renderUI: renderUI,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4460,12 +4301,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5lg8ed16sjfuw8wdm = { get: get };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_7y4x3k17sjjgwejyw = { get: get };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$12 = typeof window !== 'undefined' ? window : Function('return this;')();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Global = typeof window !== 'undefined' ? window : Function('return this;')();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var path = function (parts, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var o = scope !== undefined && scope !== null ? scope : global$12;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var o = scope !== undefined && scope !== null ? scope : Global;
</ins><span class="cx" style="display: block; padding: 0 10px">     for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
</span><span class="cx" style="display: block; padding: 0 10px">       o = o[parts[i]];
</span><span class="cx" style="display: block; padding: 0 10px">     return o;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4474,30 +4315,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var parts = p.split('.');
</span><span class="cx" style="display: block; padding: 0 10px">     return path(parts, scope);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var step = function (o, part) {
-    if (o[part] === undefined || o[part] === null)
-      o[part] = {};
-    return o[part];
-  };
-  var forge = function (parts, target) {
-    var o = target !== undefined ? target : global$12;
-    for (var i = 0; i < parts.length; ++i)
-      o = step(o, parts[i]);
-    return o;
-  };
-  var namespace = function (name, target) {
-    var parts = name.split('.');
-    return forge(parts, target);
-  };
-  var $_a30ijl18gjfuw8wjm = {
-    path: path,
-    resolve: resolve,
-    forge: forge,
-    namespace: namespace
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var unsafe = function (name, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_a30ijl18gjfuw8wjm.resolve(name, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return resolve(name, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getOrDie = function (name, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var actual = unsafe(name, scope);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4505,17 +4325,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       throw name + ' not available on this browser';
</span><span class="cx" style="display: block; padding: 0 10px">     return actual;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_clbxy018fjfuw8wjj = { getOrDie: getOrDie };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8wnjhx19gjjgwek54 = { getOrDie: getOrDie };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function FileReader () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_clbxy018fjfuw8wjj.getOrDie('FileReader');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_8wnjhx19gjjgwek54.getOrDie('FileReader');
</ins><span class="cx" style="display: block; padding: 0 10px">     return new f();
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$13 = tinymce.util.Tools.resolve('tinymce.util.Promise');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$12 = tinymce.util.Tools.resolve('tinymce.util.Promise');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var blobToBase64 = function (blob) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return new global$13(function (resolve) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return new global$12(function (resolve) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var reader = new FileReader();
</span><span class="cx" style="display: block; padding: 0 10px">       reader.onloadend = function () {
</span><span class="cx" style="display: block; padding: 0 10px">         resolve(reader.result.split(',')[1]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4523,10 +4343,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       reader.readAsDataURL(blob);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ajs38u18djfuw8wjf = { blobToBase64: blobToBase64 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_c292419ejjgwek4z = { blobToBase64: blobToBase64 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var pickFile = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return new global$13(function (resolve) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return new global$12(function (resolve) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var fileInput;
</span><span class="cx" style="display: block; padding: 0 10px">       fileInput = document.createElement('input');
</span><span class="cx" style="display: block; padding: 0 10px">       fileInput.type = 'file';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4542,7 +4362,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       fileInput.parentNode.removeChild(fileInput);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4b877v18jjfuw8wjp = { pickFile: pickFile };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_edjfwb19kjjgwek5a = { pickFile: pickFile };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var count$1 = 0;
</span><span class="cx" style="display: block; padding: 0 10px">   var seed = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4554,7 +4374,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var uuid = function (prefix) {
</span><span class="cx" style="display: block; padding: 0 10px">     return prefix + count$1++ + seed();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ex7l8618ljfuw8wjt = { uuid: uuid };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_49gxzf19mjjgwek5f = { uuid: uuid };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var create$1 = function (dom, rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     var bookmark = {};
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4624,19 +4444,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return rng;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8jsybd18njfuw8wjw = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3b24e19ojjgwek5i = {
</ins><span class="cx" style="display: block; padding: 0 10px">     create: create$1,
</span><span class="cx" style="display: block; padding: 0 10px">     resolve: resolve$1
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$14 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$13 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$15 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$14 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getSelectedElements = function (rootElm, startNode, endNode) {
</span><span class="cx" style="display: block; padding: 0 10px">     var walker, node;
</span><span class="cx" style="display: block; padding: 0 10px">     var elms = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    walker = new global$14(startNode, rootElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    walker = new global$13(startNode, rootElm);
</ins><span class="cx" style="display: block; padding: 0 10px">     for (node = startNode; node; node = walker.next()) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (node.nodeType === 1) {
</span><span class="cx" style="display: block; padding: 0 10px">         elms.push(node);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4651,11 +4471,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var bookmark, dom, selection;
</span><span class="cx" style="display: block; padding: 0 10px">     dom = editor.dom;
</span><span class="cx" style="display: block; padding: 0 10px">     selection = editor.selection;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    bookmark = $_8jsybd18njfuw8wjw.create(dom, selection.getRng());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    bookmark = $_3b24e19ojjgwek5i.create(dom, selection.getRng());
</ins><span class="cx" style="display: block; padding: 0 10px">     global$4.each(elms, function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.dom.remove(elm, true);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    selection.setRng($_8jsybd18njfuw8wjw.resolve(dom, bookmark));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    selection.setRng($_3b24e19ojjgwek5i.resolve(dom, bookmark));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isLink = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return elm.nodeName === 'A' && elm.hasAttribute('href');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4669,8 +4489,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     selection = editor.selection;
</span><span class="cx" style="display: block; padding: 0 10px">     dom = editor.dom;
</span><span class="cx" style="display: block; padding: 0 10px">     rng = selection.getRng();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    startElm = getParentAnchorOrSelf(dom, global$15.getNode(rng.startContainer, rng.startOffset));
-    endElm = global$15.getNode(rng.endContainer, rng.endOffset);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    startElm = getParentAnchorOrSelf(dom, global$14.getNode(rng.startContainer, rng.startOffset));
+    endElm = global$14.getNode(rng.endContainer, rng.endOffset);
</ins><span class="cx" style="display: block; padding: 0 10px">     rootElm = editor.getBody();
</span><span class="cx" style="display: block; padding: 0 10px">     anchorElms = global$4.grep(getSelectedElements(rootElm, startElm, endElm), isLink);
</span><span class="cx" style="display: block; padding: 0 10px">     return anchorElms;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4678,7 +4498,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var unlinkSelection = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     unwrapElements(editor, getSelectedAnchors(editor));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1tu4nv18mjfuw8wju = { unlinkSelection: unlinkSelection };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_aunbnv19njjgwek5g = { unlinkSelection: unlinkSelection };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var createTableHtml = function (cols, rows) {
</span><span class="cx" style="display: block; padding: 0 10px">     var x, y, html;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4718,7 +4538,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var insertBlob = function (editor, base64, blob) {
</span><span class="cx" style="display: block; padding: 0 10px">     var blobCache, blobInfo;
</span><span class="cx" style="display: block; padding: 0 10px">     blobCache = editor.editorUpload.blobCache;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    blobInfo = blobCache.create($_ex7l8618ljfuw8wjt.uuid('mceu'), blob, base64);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    blobInfo = blobCache.create($_49gxzf19mjjgwek5f.uuid('mceu'), blob, base64);
</ins><span class="cx" style="display: block; padding: 0 10px">     blobCache.add(blobInfo);
</span><span class="cx" style="display: block; padding: 0 10px">     editor.insertContent(editor.dom.createHTML('img', { src: blobInfo.blobUri() }));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4727,7 +4547,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var unlink = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.focus();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_1tu4nv18mjfuw8wju.unlinkSelection(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_aunbnv19njjgwek5g.unlinkSelection(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     collapseSelectionToEnd(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var changeHref = function (editor, elm, url) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4746,7 +4566,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var createLink = function (editor, url) {
</span><span class="cx" style="display: block; padding: 0 10px">     url.trim().length === 0 ? unlink(editor) : updateOrInsertLink(editor, url);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bjueuw18kjfuw8wjq = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_elxm3u19ljjgwek5d = {
</ins><span class="cx" style="display: block; padding: 0 10px">     insertTable: insertTable,
</span><span class="cx" style="display: block; padding: 0 10px">     formatBlock: formatBlock,
</span><span class="cx" style="display: block; padding: 0 10px">     insertBlob: insertBlob,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4757,16 +4577,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var addHeaderButtons = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var formatBlock = function (name) {
</span><span class="cx" style="display: block; padding: 0 10px">       return function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_bjueuw18kjfuw8wjq.formatBlock(editor, name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_elxm3u19ljjgwek5d.formatBlock(editor, name);
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     for (var i = 1; i < 6; i++) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var name_1 = 'h' + i;
-      editor.addButton(name_1, {
-        text: name_1.toUpperCase(),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var name = 'h' + i;
+      editor.addButton(name, {
+        text: name.toUpperCase(),
</ins><span class="cx" style="display: block; padding: 0 10px">         tooltip: 'Heading ' + i,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        stateSelector: name_1,
-        onclick: formatBlock(name_1),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        stateSelector: name,
+        onclick: formatBlock(name),
</ins><span class="cx" style="display: block; padding: 0 10px">         onPostRender: function () {
</span><span class="cx" style="display: block; padding: 0 10px">           var span = this.getEl().firstChild.firstChild;
</span><span class="cx" style="display: block; padding: 0 10px">           span.style.fontWeight = 'bold';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4787,10 +4607,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       icon: 'image',
</span><span class="cx" style="display: block; padding: 0 10px">       tooltip: 'Insert image',
</span><span class="cx" style="display: block; padding: 0 10px">       onclick: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_4b877v18jjfuw8wjp.pickFile().then(function (files) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_edjfwb19kjjgwek5a.pickFile().then(function (files) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var blob = files[0];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_ajs38u18djfuw8wjf.blobToBase64(blob).then(function (base64) {
-            $_bjueuw18kjfuw8wjq.insertBlob(editor, base64, blob);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_c292419ejjgwek4z.blobToBase64(blob).then(function (base64) {
+            $_elxm3u19ljjgwek5d.insertBlob(editor, base64, blob);
</ins><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4800,12 +4620,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       tooltip: 'Insert table',
</span><span class="cx" style="display: block; padding: 0 10px">       onclick: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         panel.hide();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_bjueuw18kjfuw8wjq.insertTable(editor, 2, 2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_elxm3u19ljjgwek5d.insertTable(editor, 2, 2);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     addHeaderButtons(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cb0m4418cjfuw8wiy = { addToEditor: addToEditor };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_epdxt419djjgwek4l = { addToEditor: addToEditor };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getUiContainerDelta$1 = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     var uiContainer = global$1.container;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4821,7 +4641,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1lziwq18rjfuw8wk4 = { getUiContainerDelta: getUiContainerDelta$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9hbv4x19sjjgwek5q = { getUiContainerDelta: getUiContainerDelta$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var isDomainLike = function (href) {
</span><span class="cx" style="display: block; padding: 0 10px">     return /^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(href.trim());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4829,7 +4649,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isAbsolute = function (href) {
</span><span class="cx" style="display: block; padding: 0 10px">     return /^https?:\/\//.test(href.trim());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7ouuxp18tjfuw8wkn = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5y05uk19ujjgwek5w = {
</ins><span class="cx" style="display: block; padding: 0 10px">     isDomainLike: isDomainLike,
</span><span class="cx" style="display: block; padding: 0 10px">     isAbsolute: isAbsolute
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4857,7 +4677,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return state ? ctrl.show() : ctrl.hide();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var askAboutPrefix = function (editor, href) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return new global$13(function (resolve) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return new global$12(function (resolve) {
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.windowManager.confirm('The URL you entered seems to be an external link. Do you want to add the required http:// prefix?', function (result) {
</span><span class="cx" style="display: block; padding: 0 10px">         var output = result === true ? 'http://' + href : href;
</span><span class="cx" style="display: block; padding: 0 10px">         resolve(output);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4865,13 +4685,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var convertLinkToAbsolute = function (editor, href) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return !$_7ouuxp18tjfuw8wkn.isAbsolute(href) && $_7ouuxp18tjfuw8wkn.isDomainLike(href) ? askAboutPrefix(editor, href) : global$13.resolve(href);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return !$_5y05uk19ujjgwek5w.isAbsolute(href) && $_5y05uk19ujjgwek5w.isDomainLike(href) ? askAboutPrefix(editor, href) : global$12.resolve(href);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createQuickLinkForm = function (editor, hide) {
</span><span class="cx" style="display: block; padding: 0 10px">     var attachState = {};
</span><span class="cx" style="display: block; padding: 0 10px">     var unlink = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.focus();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_bjueuw18kjfuw8wjq.unlink(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_elxm3u19ljjgwek5d.unlink(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       hide();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var onChangeHandler = function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4927,7 +4747,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">               attachState.attach();
</span><span class="cx" style="display: block; padding: 0 10px">               attachState = {};
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_bjueuw18kjfuw8wjq.createLink(editor, url);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_elxm3u19ljjgwek5d.createLink(editor, url);
</ins><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">           hide();
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4934,7 +4754,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8xajew18sjfuw8wkl = { createQuickLinkForm: createQuickLinkForm };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_amewps19tjjgwek5t = { createQuickLinkForm: createQuickLinkForm };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getSelectorStateResult = function (itemName, item) {
</span><span class="cx" style="display: block; padding: 0 10px">     var result = function (selector, handler) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4966,9 +4786,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var itemsToArray$1 = function (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_8t6wb917ajfuw8wec.isArray(items)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_e4npq318ajjgwejzo.isArray(items)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return items;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_8t6wb917ajfuw8wec.isString(items)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_e4npq318ajjgwejzo.isString(items)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return items.split(/[ ,]/);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4992,7 +4812,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             toolbarItems.push(buttonGroup);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           var button = editor.buttons[item];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ($_8t6wb917ajfuw8wec.isFunction(button)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ($_e4npq318ajjgwejzo.isFunction(button)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             button = button();
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           button.type = button.type || 'button';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5009,13 +4829,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       items: toolbarItems
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8elil818ujfuw8wko = { create: create$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_797pa819vjjgwek5x = { create: create$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var create$3 = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     var panel, currentRect;
</span><span class="cx" style="display: block; padding: 0 10px">     var createToolbars = function (editor, toolbars) {
</span><span class="cx" style="display: block; padding: 0 10px">       return global$4.map(toolbars, function (toolbar) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_8elil818ujfuw8wko.create(editor, toolbar.id, toolbar.items);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_797pa819vjjgwek5x.create(editor, toolbar.id, toolbar.items);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var hasToolbarItems = function (toolbar) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5023,9 +4843,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var create = function (editor, toolbars) {
</span><span class="cx" style="display: block; padding: 0 10px">       var items = createToolbars(editor, toolbars).concat([
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_8elil818ujfuw8wko.create(editor, 'text', $_44ho17177jfuw8we6.getTextSelectionToolbarItems(editor)),
-        $_8elil818ujfuw8wko.create(editor, 'insert', $_44ho17177jfuw8we6.getInsertToolbarItems(editor)),
-        $_8xajew18sjfuw8wkl.createQuickLinkForm(editor, hide)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_797pa819vjjgwek5x.create(editor, 'text', $_4j2h42187jjgwejzk.getTextSelectionToolbarItems(editor)),
+        $_797pa819vjjgwek5x.create(editor, 'insert', $_4j2h42187jjgwejzk.getInsertToolbarItems(editor)),
+        $_amewps19tjjgwek5t.createQuickLinkForm(editor, hide)
</ins><span class="cx" style="display: block; padding: 0 10px">       ]);
</span><span class="cx" style="display: block; padding: 0 10px">       return global$11.create({
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'floatpanel',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5088,16 +4908,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var repositionPanelAt = function (panel, id, editor, targetRect) {
</span><span class="cx" style="display: block; padding: 0 10px">       var contentAreaRect, panelRect, result, userConstainHandler;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      userConstainHandler = $_44ho17177jfuw8we6.getPositionHandler(editor);
-      contentAreaRect = $_eiro29170jfuw8wdy.getContentAreaRect(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      userConstainHandler = $_4j2h42187jjgwejzk.getPositionHandler(editor);
+      contentAreaRect = $_51qgo2180jjgwejzb.getContentAreaRect(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       panelRect = global$2.DOM.getRect(panel.getEl());
</span><span class="cx" style="display: block; padding: 0 10px">       if (id === 'insert') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        result = $_4f0zwc17bjfuw8wee.calcInsert(targetRect, contentAreaRect, panelRect);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        result = $_gir42l18bjjgwejzq.calcInsert(targetRect, contentAreaRect, panelRect);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        result = $_4f0zwc17bjfuw8wee.calc(targetRect, contentAreaRect, panelRect);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        result = $_gir42l18bjjgwejzq.calc(targetRect, contentAreaRect, panelRect);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (result) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var delta = $_1lziwq18rjfuw8wk4.getUiContainerDelta().getOr({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var delta = $_9hbv4x19sjjgwek5q.getUiContainerDelta().getOr({
</ins><span class="cx" style="display: block; padding: 0 10px">           x: 0,
</span><span class="cx" style="display: block; padding: 0 10px">           y: 0
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5108,7 +4928,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           h: result.rect.h
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">         currentRect = targetRect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        movePanelTo(panel, $_4f0zwc17bjfuw8wee.userConstrain(userConstainHandler, targetRect, contentAreaRect, transposedPanelRect));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        movePanelTo(panel, $_gir42l18bjjgwejzq.userConstrain(userConstainHandler, targetRect, contentAreaRect, transposedPanelRect));
</ins><span class="cx" style="display: block; padding: 0 10px">         togglePositionClass(panel, result.position);
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5140,13 +4960,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         showPanel(panel);
</span><span class="cx" style="display: block; padding: 0 10px">         panel.items().hide();
</span><span class="cx" style="display: block; padding: 0 10px">         showToolbar(panel, id);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        userConstainHandler = $_44ho17177jfuw8we6.getPositionHandler(editor);
-        contentAreaRect = $_eiro29170jfuw8wdy.getContentAreaRect(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        userConstainHandler = $_4j2h42187jjgwejzk.getPositionHandler(editor);
+        contentAreaRect = $_51qgo2180jjgwejzb.getContentAreaRect(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         panelRect = global$2.DOM.getRect(panel.getEl());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        result = $_4f0zwc17bjfuw8wee.calc(currentRect, contentAreaRect, panelRect);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        result = $_gir42l18bjjgwejzq.calc(currentRect, contentAreaRect, panelRect);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (result) {
</span><span class="cx" style="display: block; padding: 0 10px">           panelRect = result.rect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          movePanelTo(panel, $_4f0zwc17bjfuw8wee.userConstrain(userConstainHandler, currentRect, contentAreaRect, panelRect));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          movePanelTo(panel, $_gir42l18bjjgwejzq.userConstrain(userConstainHandler, currentRect, contentAreaRect, panelRect));
</ins><span class="cx" style="display: block; padding: 0 10px">           togglePositionClass(panel, result.position);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5153,7 +4973,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var show = function (editor, id, targetRect, toolbars) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!panel) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_5f627b176jfuw8we5.fireBeforeRenderUI(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_77u64d186jjgwejzi.fireBeforeRenderUI(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         panel = create(editor, toolbars);
</span><span class="cx" style="display: block; padding: 0 10px">         panel.renderTo().reflow().moveTo(targetRect.x, targetRect.y);
</span><span class="cx" style="display: block; padding: 0 10px">         editor.nodeChanged();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5278,26 +5098,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">       role: 'button'
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var size;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super(settings);
-      settings = self.settings;
-      size = self.settings.size;
-      self.on('click mousedown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super(settings);
+      settings = self$$1.settings;
+      size = self$$1.settings.size;
+      self$$1.on('click mousedown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('touchstart', function (e) {
-        self.fire('click', e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('touchstart', function (e) {
+        self$$1.fire('click', e);
</ins><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.subtype) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add(settings.subtype);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add(settings.subtype);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (size) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('btn-' + size);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('btn-' + size);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.icon) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.icon(settings.icon);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.icon(settings.icon);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     icon: function (icon) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5317,12 +5137,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this._super();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, id = self._id, prefix = self.classPrefix;
-      var icon = self.state.get('icon'), image;
-      var text = self.state.get('text');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;
+      var icon = self$$1.state.get('icon'), image;
+      var text = self$$1.state.get('text');
</ins><span class="cx" style="display: block; padding: 0 10px">       var textHtml = '';
</span><span class="cx" style="display: block; padding: 0 10px">       var ariaPressed;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       image = settings.image;
</span><span class="cx" style="display: block; padding: 0 10px">       if (image) {
</span><span class="cx" style="display: block; padding: 0 10px">         icon = 'none';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5334,37 +5154,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">         image = '';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('btn-has-text');
-        textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('btn-has-text');
+        textHtml = '<span class="' + prefix + 'txt">' + self$$1.encode(text) + '</span>';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       icon = icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
</span><span class="cx" style="display: block; padding: 0 10px">       ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed="' + settings.active + '"' : '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1"' + ariaPressed + '>' + '<button id="' + id + '-button" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return '<div id="' + id + '" class="' + self$$1.classes + '" tabindex="-1"' + ariaPressed + '>' + '<button id="' + id + '-button" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, $ = self.$, textCls = self.classPrefix + 'txt';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, $ = self$$1.$, textCls = self$$1.classPrefix + 'txt';
</ins><span class="cx" style="display: block; padding: 0 10px">       function setButtonText(text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var $span = $('span.' + textCls, self.getEl());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var $span = $('span.' + textCls, self$$1.getEl());
</ins><span class="cx" style="display: block; padding: 0 10px">         if (text) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (!$span[0]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $('button:first', self.getEl()).append('<span class="' + textCls + '"></span>');
-            $span = $('span.' + textCls, self.getEl());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $('button:first', self$$1.getEl()).append('<span class="' + textCls + '"></span>');
+            $span = $('span.' + textCls, self$$1.getEl());
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $span.html(self.encode(text));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $span.html(self$$1.encode(text));
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           $span.remove();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.toggle('btn-has-text', !!text);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.toggle('btn-has-text', !!text);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:text', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:text', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         setButtonText(e.value);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:icon', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:icon', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var icon = e.value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var prefix = self.classPrefix;
-        self.settings.icon = icon;
-        icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';
-        var btnElm = self.getEl().firstChild;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var prefix = self$$1.classPrefix;
+        self$$1.settings.icon = icon;
+        icon = icon ? prefix + 'ico ' + prefix + 'i-' + self$$1.settings.icon : '';
+        var btnElm = self$$1.getEl().firstChild;
</ins><span class="cx" style="display: block; padding: 0 10px">         var iconElm = btnElm.getElementsByTagName('i')[0];
</span><span class="cx" style="display: block; padding: 0 10px">         if (icon) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (!iconElm || iconElm !== btnElm.firstChild) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5375,9 +5195,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         } else if (iconElm) {
</span><span class="cx" style="display: block; padding: 0 10px">           btnElm.removeChild(iconElm);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        setButtonText(self.state.get('text'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        setButtonText(self$$1.state.get('text'));
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5456,18 +5276,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">       checked: false
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      self.on('click mousedown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      self$$1.on('click mousedown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('click', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('click', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!self.disabled()) {
-          self.checked(!self.checked());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!self$$1.disabled()) {
+          self$$1.checked(!self$$1.checked());
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.checked(self.settings.checked);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.checked(self$$1.settings.checked);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     checked: function (state) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!arguments.length) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5483,31 +5303,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.checked(state);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, id = self._id, prefix = self.classPrefix;
-      return '<div id="' + id + '" class="' + self.classes + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + '<span id="' + id + '-al" class="' + prefix + 'label">' + self.encode(self.state.get('text')) + '</span>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;
+      return '<div id="' + id + '" class="' + self$$1.classes + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + '<span id="' + id + '-al" class="' + prefix + 'label">' + self$$1.encode(self$$1.state.get('text')) + '</span>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       function checked(state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.toggle('checked', state);
-        self.aria('checked', state);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.toggle('checked', state);
+        self$$1.aria('checked', state);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:text', function (e) {
-        self.getEl('al').firstChild.data = self.translate(e.value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:text', function (e) {
+        self$$1.getEl('al').firstChild.data = self$$1.translate(e.value);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:checked change:value', function (e) {
-        self.fire('change');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:checked change:value', function (e) {
+        self$$1.fire('change');
</ins><span class="cx" style="display: block; padding: 0 10px">         checked(e.value);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:icon', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:icon', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var icon = e.value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var prefix = self.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var prefix = self$$1.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (typeof icon === 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return self.settings.icon;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return self$$1.settings.icon;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.settings.icon = icon;
-        icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';
-        var btnElm = self.getEl().firstChild;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.settings.icon = icon;
+        icon = icon ? prefix + 'ico ' + prefix + 'i-' + self$$1.settings.icon : '';
+        var btnElm = self$$1.getEl().firstChild;
</ins><span class="cx" style="display: block; padding: 0 10px">         var iconElm = btnElm.getElementsByTagName('i')[0];
</span><span class="cx" style="display: block; padding: 0 10px">         if (icon) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (!iconElm || iconElm !== btnElm.firstChild) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5519,40 +5339,40 @@
</span><span class="cx" style="display: block; padding: 0 10px">           btnElm.removeChild(iconElm);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.state.get('checked')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.state.get('checked')) {
</ins><span class="cx" style="display: block; padding: 0 10px">         checked(true);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$16 = tinymce.util.Tools.resolve('tinymce.util.VK');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$15 = tinymce.util.Tools.resolve('tinymce.util.VK');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var ComboBox = Widget.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      settings = self.settings;
-      self.classes.add('combobox');
-      self.subinput = true;
-      self.ariaTarget = 'inp';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      settings = self$$1.settings;
+      self$$1.classes.add('combobox');
+      self$$1.subinput = true;
+      self$$1.ariaTarget = 'inp';
</ins><span class="cx" style="display: block; padding: 0 10px">       settings.menu = settings.menu || settings.values;
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.menu) {
</span><span class="cx" style="display: block; padding: 0 10px">         settings.icon = 'caret';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('click', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('click', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var elm = e.target;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var root = self.getEl();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var root = self$$1.getEl();
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!global$7.contains(root, elm) && elm !== root) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         while (elm && elm !== root) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (elm.id && elm.id.indexOf('-open') !== -1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.fire('action');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.fire('action');
</ins><span class="cx" style="display: block; padding: 0 10px">             if (settings.menu) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              self.showMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              self$$1.showMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">               if (e.aria) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                self.menu.items()[0].focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                self$$1.menu.items()[0].focus();
</ins><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5559,33 +5379,33 @@
</span><span class="cx" style="display: block; padding: 0 10px">           elm = elm.parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('keydown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('keydown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var rootControl;
</span><span class="cx" style="display: block; padding: 0 10px">         if (e.keyCode === 13 && e.target.nodeName === 'INPUT') {
</span><span class="cx" style="display: block; padding: 0 10px">           e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.parents().reverse().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.parents().reverse().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (ctrl.toJSON) {
</span><span class="cx" style="display: block; padding: 0 10px">               rootControl = ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">               return false;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.fire('submit', { data: rootControl.toJSON() });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.fire('submit', { data: rootControl.toJSON() });
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('keyup', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('keyup', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (e.target.nodeName === 'INPUT') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var oldValue = self.state.get('value');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var oldValue = self$$1.state.get('value');
</ins><span class="cx" style="display: block; padding: 0 10px">           var newValue = e.target.value;
</span><span class="cx" style="display: block; padding: 0 10px">           if (newValue !== oldValue) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.state.set('value', newValue);
-            self.fire('autocomplete', e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.state.set('value', newValue);
+            self$$1.fire('autocomplete', e);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('mouseover', function (e) {
-        var tooltip = self.tooltip().moveTo(-65535);
-        if (self.statusLevel() && e.target.className.indexOf(self.classPrefix + 'status') !== -1) {
-          var statusMessage = self.statusMessage() || 'Ok';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('mouseover', function (e) {
+        var tooltip = self$$1.tooltip().moveTo(-65535);
+        if (self$$1.statusLevel() && e.target.className.indexOf(self$$1.classPrefix + 'status') !== -1) {
+          var statusMessage = self$$1.statusMessage() || 'Ok';
</ins><span class="cx" style="display: block; padding: 0 10px">           var rel = tooltip.text(statusMessage).show().testMoveRel(e.target, [
</span><span class="cx" style="display: block; padding: 0 10px">             'bc-tc',
</span><span class="cx" style="display: block; padding: 0 10px">             'bc-tl',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5611,10 +5431,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.state.get('statusMessage');
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     showMenu: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var menu;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.menu) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.menu) {
</ins><span class="cx" style="display: block; padding: 0 10px">         menu = settings.menu || [];
</span><span class="cx" style="display: block; padding: 0 10px">         if (menu.length) {
</span><span class="cx" style="display: block; padding: 0 10px">           menu = {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5624,32 +5444,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           menu.type = menu.type || 'menu';
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu = global$11.create(menu).parent(self).renderTo(self.getContainerElm());
-        self.fire('createmenu');
-        self.menu.reflow();
-        self.menu.on('cancel', function (e) {
-          if (e.control === self.menu) {
-            self.focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu = global$11.create(menu).parent(self$$1).renderTo(self$$1.getContainerElm());
+        self$$1.fire('createmenu');
+        self$$1.menu.reflow();
+        self$$1.menu.on('cancel', function (e) {
+          if (e.control === self$$1.menu) {
+            self$$1.focus();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.on('show hide', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.on('show hide', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.control.items().each(function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            ctrl.active(ctrl.value() === self.value());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            ctrl.active(ctrl.value() === self$$1.value());
</ins><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }).fire('show');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.on('select', function (e) {
-          self.value(e.control.value());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.on('select', function (e) {
+          self$$1.value(e.control.value());
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.on('focusin', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.on('focusin', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (e.target.tagName.toUpperCase() === 'INPUT') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.menu.hide();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.menu.hide();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.aria('expanded', true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.aria('expanded', true);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.show();
-      self.menu.layoutRect({ w: self.layoutRect().w });
-      self.menu.moveRel(self.getEl(), self.isRtl() ? [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.show();
+      self$$1.menu.layoutRect({ w: self$$1.layoutRect().w });
+      self$$1.menu.moveRel(self$$1.getEl(), self$$1.isRtl() ? [
</ins><span class="cx" style="display: block; padding: 0 10px">         'br-tr',
</span><span class="cx" style="display: block; padding: 0 10px">         'tr-br'
</span><span class="cx" style="display: block; padding: 0 10px">       ] : [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5661,10 +5481,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this.getEl('inp').focus();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     repaint: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, elm = self.getEl(), openElm = self.getEl('open'), rect = self.layoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, elm = self$$1.getEl(), openElm = self$$1.getEl('open'), rect = self$$1.layoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">       var width, lineHeight, innerPadding = 0;
</span><span class="cx" style="display: block; padding: 0 10px">       var inputElm = elm.firstChild;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.statusLevel() && self.statusLevel() !== 'none') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.statusLevel() && self$$1.statusLevel() !== 'none') {
</ins><span class="cx" style="display: block; padding: 0 10px">         innerPadding = parseInt(funcs.getRuntimeStyle(inputElm, 'padding-right'), 10) - parseInt(funcs.getRuntimeStyle(inputElm, 'padding-left'), 10);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (openElm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5674,26 +5494,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var doc = document;
</span><span class="cx" style="display: block; padding: 0 10px">       if (doc.all && (!doc.documentMode || doc.documentMode <= 8)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        lineHeight = self.layoutRect().h - 2 + 'px';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        lineHeight = self$$1.layoutRect().h - 2 + 'px';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       global$7(inputElm).css({
</span><span class="cx" style="display: block; padding: 0 10px">         width: width - innerPadding,
</span><span class="cx" style="display: block; padding: 0 10px">         lineHeight: lineHeight
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super();
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super();
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       global$7(this.getEl('inp')).on('change', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.state.set('value', e.target.value);
-        self.fire('change', e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.state.set('value', e.target.value);
+        self$$1.fire('change', e);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix;
-      var value = self.state.get('value') || '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, id = self$$1._id, settings = self$$1.settings, prefix = self$$1.classPrefix;
+      var value = self$$1.state.get('value') || '';
</ins><span class="cx" style="display: block; padding: 0 10px">       var icon, text, openBtnHtml = '', extraAttrs = '', statusHtml = '';
</span><span class="cx" style="display: block; padding: 0 10px">       if ('spellcheck' in settings) {
</span><span class="cx" style="display: block; padding: 0 10px">         extraAttrs += ' spellcheck="' + settings.spellcheck + '"';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5708,7 +5528,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         extraAttrs += ' type="' + settings.subtype + '"';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       statusHtml = '<i id="' + id + '-status" class="mce-status mce-ico" style="display: none"></i>';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.disabled()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.disabled()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         extraAttrs += ' disabled="disabled"';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       icon = settings.icon;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5715,12 +5535,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (icon && icon !== 'caret') {
</span><span class="cx" style="display: block; padding: 0 10px">         icon = prefix + 'ico ' + prefix + 'i-' + settings.icon;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      text = self.state.get('text');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      text = self$$1.state.get('text');
</ins><span class="cx" style="display: block; padding: 0 10px">       if (icon || text) {
</span><span class="cx" style="display: block; padding: 0 10px">         openBtnHtml = '<div id="' + id + '-open" class="' + prefix + 'btn ' + prefix + 'open" tabIndex="-1" role="button">' + '<button id="' + id + '-action" type="button" hidefocus="1" tabindex="-1">' + (icon !== 'caret' ? '<i class="' + icon + '"></i>' : '<i class="' + prefix + 'caret"></i>') + (text ? (icon ? ' ' : '') + text : '') + '</button>' + '</div>';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('has-open');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('has-open');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return '<div id="' + id + '" class="' + self.classes + '">' + '<input id="' + id + '-inp" class="' + prefix + 'textbox" value="' + self.encode(value, false) + '" hidefocus="1"' + extraAttrs + ' placeholder="' + self.encode(settings.placeholder) + '" />' + statusHtml + openBtnHtml + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return '<div id="' + id + '" class="' + self$$1.classes + '">' + '<input id="' + id + '-inp" class="' + prefix + 'textbox" value="' + self$$1.encode(value, false) + '" hidefocus="1"' + extraAttrs + ' placeholder="' + self$$1.encode(settings.placeholder) + '" />' + statusHtml + openBtnHtml + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     value: function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (arguments.length) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5733,30 +5553,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.state.get('value');
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     showAutoComplete: function (items, term) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (items.length === 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var insert = function (value, title) {
</span><span class="cx" style="display: block; padding: 0 10px">         return function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.fire('selectitem', {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.fire('selectitem', {
</ins><span class="cx" style="display: block; padding: 0 10px">             title: title,
</span><span class="cx" style="display: block; padding: 0 10px">             value: value
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.menu) {
-        self.menu.items().remove();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.menu) {
+        self$$1.menu.items().remove();
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu = global$11.create({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu = global$11.create({
</ins><span class="cx" style="display: block; padding: 0 10px">           type: 'menu',
</span><span class="cx" style="display: block; padding: 0 10px">           classes: 'combobox-menu',
</span><span class="cx" style="display: block; padding: 0 10px">           layout: 'flow'
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        }).parent(self).renderTo();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        }).parent(self$$1).renderTo();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       global$4.each(items, function (item) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.add({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.add({
</ins><span class="cx" style="display: block; padding: 0 10px">           text: item.title,
</span><span class="cx" style="display: block; padding: 0 10px">           url: item.previewUrl,
</span><span class="cx" style="display: block; padding: 0 10px">           match: term,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5764,28 +5584,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">           onclick: insert(item.value, item.title)
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.renderNew();
-      self.hideMenu();
-      self.menu.on('cancel', function (e) {
-        if (e.control.parent() === self.menu) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.renderNew();
+      self$$1.hideMenu();
+      self$$1.menu.on('cancel', function (e) {
+        if (e.control.parent() === self$$1.menu) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.stopPropagation();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.focus();
-          self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.focus();
+          self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.on('select', function () {
-        self.focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.on('select', function () {
+        self$$1.focus();
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var maxW = self.layoutRect().w;
-      self.menu.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var maxW = self$$1.layoutRect().w;
+      self$$1.menu.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">         w: maxW,
</span><span class="cx" style="display: block; padding: 0 10px">         minW: 0,
</span><span class="cx" style="display: block; padding: 0 10px">         maxW: maxW
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.repaint();
-      self.menu.reflow();
-      self.menu.show();
-      self.menu.moveRel(self.getEl(), self.isRtl() ? [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.repaint();
+      self$$1.menu.reflow();
+      self$$1.menu.show();
+      self$$1.menu.moveRel(self$$1.getEl(), self$$1.isRtl() ? [
</ins><span class="cx" style="display: block; padding: 0 10px">         'br-tr',
</span><span class="cx" style="display: block; padding: 0 10px">         'tr-br'
</span><span class="cx" style="display: block; padding: 0 10px">       ] : [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5799,32 +5619,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.state.on('change:value', function (e) {
-        if (self.getEl('inp').value !== e.value) {
-          self.getEl('inp').value = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.state.on('change:value', function (e) {
+        if (self$$1.getEl('inp').value !== e.value) {
+          self$$1.getEl('inp').value = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:disabled', function (e) {
-        self.getEl('inp').disabled = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:disabled', function (e) {
+        self$$1.getEl('inp').disabled = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:statusLevel', function (e) {
-        var statusIconElm = self.getEl('status');
-        var prefix = self.classPrefix, value = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:statusLevel', function (e) {
+        var statusIconElm = self$$1.getEl('status');
+        var prefix = self$$1.classPrefix, value = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">         funcs.css(statusIconElm, 'display', value === 'none' ? 'none' : '');
</span><span class="cx" style="display: block; padding: 0 10px">         funcs.toggleClass(statusIconElm, prefix + 'i-checkmark', value === 'ok');
</span><span class="cx" style="display: block; padding: 0 10px">         funcs.toggleClass(statusIconElm, prefix + 'i-warning', value === 'warn');
</span><span class="cx" style="display: block; padding: 0 10px">         funcs.toggleClass(statusIconElm, prefix + 'i-error', value === 'error');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.toggle('has-status', value !== 'none');
-        self.repaint();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.toggle('has-status', value !== 'none');
+        self$$1.repaint();
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      funcs.on(self.getEl('status'), 'mouseleave', function () {
-        self.tooltip().hide();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      funcs.on(self$$1.getEl('status'), 'mouseleave', function () {
+        self$$1.tooltip().hide();
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('cancel', function (e) {
-        if (self.menu && self.menu.visible()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('cancel', function (e) {
+        if (self$$1.menu && self$$1.menu.visible()) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.stopPropagation();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       var focusIdx = function (idx, menu) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5832,20 +5652,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">           menu.items().eq(idx)[0].focus();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('keydown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('keydown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var keyCode = e.keyCode;
</span><span class="cx" style="display: block; padding: 0 10px">         if (e.target.nodeName === 'INPUT') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (keyCode === global$16.DOWN) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (keyCode === global$15.DOWN) {
</ins><span class="cx" style="display: block; padding: 0 10px">             e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.fire('autocomplete');
-            focusIdx(0, self.menu);
-          } else if (keyCode === global$16.UP) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.fire('autocomplete');
+            focusIdx(0, self$$1.menu);
+          } else if (keyCode === global$15.UP) {
</ins><span class="cx" style="display: block; padding: 0 10px">             e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            focusIdx(-1, self.menu);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            focusIdx(-1, self$$1.menu);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       global$7(this.getEl('inp')).off();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6016,7 +5836,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$17 = tinymce.util.Tools.resolve('tinymce.util.Color');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var global$16 = tinymce.util.Tools.resolve('tinymce.util.Color');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var ColorPicker = Widget.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     Defaults: { classes: 'widget colorpicker' },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6052,7 +5872,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             top: 100 - hsv.v + '%'
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        svRootElm.style.background = global$17({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        svRootElm.style.background = global$16({
</ins><span class="cx" style="display: block; padding: 0 10px">           s: 100,
</span><span class="cx" style="display: block; padding: 0 10px">           v: 100,
</span><span class="cx" style="display: block; padding: 0 10px">           h: hsv.h
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6110,7 +5930,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     color: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!this._color) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        this._color = global$17();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        this._color = global$16();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return this._color;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6454,7 +6274,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">     unique$1++;
</span><span class="cx" style="display: block; padding: 0 10px">     return prefix + '_' + random + unique$1 + String(time);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2kv8f219hjfuw8wmw = { generate: generate };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var fromHtml = function (html, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var doc = scope || document;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6479,12 +6298,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fromDom = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (node === null || node === undefined)
</span><span class="cx" style="display: block; padding: 0 10px">       throw new Error('Node cannot be null or undefined');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return { dom: $_d9fl1s17gjfuw8wew.constant(node) };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return { dom: constant(node) };
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var fromPoint = function (doc, x, y) {
-    return Option.from(doc.dom().elementFromPoint(x, y)).map(fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var fromPoint = function (docElm, x, y) {
+    var doc = docElm.dom();
+    return Option.from(doc.elementFromPoint(x, y)).map(fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fmubbj19ijfuw8wmy = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Element$$1 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     fromHtml: fromHtml,
</span><span class="cx" style="display: block; padding: 0 10px">     fromTag: fromTag,
</span><span class="cx" style="display: block; padding: 0 10px">     fromText: fromText,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6496,28 +6316,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var called = false;
</span><span class="cx" style="display: block; padding: 0 10px">     var r;
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var args = [];
+      for (var _i = 0; _i < arguments.length; _i++) {
+        args[_i] = arguments[_i];
+      }
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!called) {
</span><span class="cx" style="display: block; padding: 0 10px">         called = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        r = f.apply(null, arguments);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        r = f.apply(null, args);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return r;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7dlbos19mjfuw8wnb = { cached: cached };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8v84g119ojfuw8wnd = {
-    ATTRIBUTE: 2,
-    CDATA_SECTION: 4,
-    COMMENT: 8,
-    DOCUMENT: 9,
-    DOCUMENT_TYPE: 10,
-    DOCUMENT_FRAGMENT: 11,
-    ELEMENT: 1,
-    TEXT: 3,
-    PROCESSING_INSTRUCTION: 7,
-    ENTITY_REFERENCE: 5,
-    ENTITY: 6,
-    NOTATION: 12
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2jrgnk1apjjgwek8y = {
+    ATTRIBUTE: Node.ATTRIBUTE_NODE,
+    CDATA_SECTION: Node.CDATA_SECTION_NODE,
+    COMMENT: Node.COMMENT_NODE,
+    DOCUMENT: Node.DOCUMENT_NODE,
+    DOCUMENT_TYPE: Node.DOCUMENT_TYPE_NODE,
+    DOCUMENT_FRAGMENT: Node.DOCUMENT_FRAGMENT_NODE,
+    ELEMENT: Node.ELEMENT_NODE,
+    TEXT: Node.TEXT_NODE,
+    PROCESSING_INSTRUCTION: Node.PROCESSING_INSTRUCTION_NODE,
+    ENTITY_REFERENCE: Node.ENTITY_REFERENCE_NODE,
+    ENTITY: Node.ENTITY_NODE,
+    NOTATION: Node.NOTATION_NODE
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var name = function (element) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6536,12 +6359,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isComment = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return type(element) === $_8v84g119ojfuw8wnd.COMMENT || name(element) === '#comment';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return type(element) === $_2jrgnk1apjjgwek8y.COMMENT || name(element) === '#comment';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isElement = isType$2($_8v84g119ojfuw8wnd.ELEMENT);
-  var isText = isType$2($_8v84g119ojfuw8wnd.TEXT);
-  var isDocument = isType$2($_8v84g119ojfuw8wnd.DOCUMENT);
-  var $_a06ojb19njfuw8wnc = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isElement = isType$2($_2jrgnk1apjjgwek8y.ELEMENT);
+  var isText = isType$2($_2jrgnk1apjjgwek8y.TEXT);
+  var isDocument = isType$2($_2jrgnk1apjjgwek8y.DOCUMENT);
+  var $_fv3as1aojjgwek8x = {
</ins><span class="cx" style="display: block; padding: 0 10px">     name: name,
</span><span class="cx" style="display: block; padding: 0 10px">     type: type,
</span><span class="cx" style="display: block; padding: 0 10px">     value: value,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6552,25 +6375,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var inBody = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var dom = $_a06ojb19njfuw8wnc.isText(element) ? element.dom().parentNode : element.dom();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var dom = $_fv3as1aojjgwek8x.isText(element) ? element.dom().parentNode : element.dom();
</ins><span class="cx" style="display: block; padding: 0 10px">     return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var body = $_7dlbos19mjfuw8wnb.cached(function () {
-    return getBody($_fmubbj19ijfuw8wmy.fromDom(document));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var body = cached(function () {
+    return getBody(Element$$1.fromDom(document));
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   var getBody = function (doc) {
</span><span class="cx" style="display: block; padding: 0 10px">     var body = doc.dom().body;
</span><span class="cx" style="display: block; padding: 0 10px">     if (body === null || body === undefined)
</span><span class="cx" style="display: block; padding: 0 10px">       throw 'Body is not available yet';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_fmubbj19ijfuw8wmy.fromDom(body);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(body);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9dfew519ljfuw8wn8 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d2glpe1amjjgwek8t = {
</ins><span class="cx" style="display: block; padding: 0 10px">     body: body,
</span><span class="cx" style="display: block; padding: 0 10px">     getBody: getBody,
</span><span class="cx" style="display: block; padding: 0 10px">     inBody: inBody
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function Immutable () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Immutable = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     var fields = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 0; _i < arguments.length; _i++) {
</span><span class="cx" style="display: block; padding: 0 10px">       fields[_i] = arguments[_i];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6584,173 +6407,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var struct = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_1doq1817ejfuw8wen.each(fields, function (name, i) {
-        struct[name] = $_d9fl1s17gjfuw8wew.constant(values[i]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(fields, function (name, i) {
+        struct[name] = constant(values[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return struct;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  }
-
-  var keys = function () {
-    var fastKeys = Object.keys;
-    var slowKeys = function (o) {
-      var r = [];
-      for (var i in o) {
-        if (o.hasOwnProperty(i)) {
-          r.push(i);
-        }
-      }
-      return r;
-    };
-    return fastKeys === undefined ? slowKeys : fastKeys;
-  }();
-  var each$1 = function (obj, f) {
-    var props = keys(obj);
-    for (var k = 0, len = props.length; k < len; k++) {
-      var i = props[k];
-      var x = obj[i];
-      f(x, i, obj);
-    }
</del><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var objectMap = function (obj, f) {
-    return tupleMap(obj, function (x, i, obj) {
-      return {
-        k: i,
-        v: f(x, i, obj)
-      };
-    });
-  };
-  var tupleMap = function (obj, f) {
-    var r = {};
-    each$1(obj, function (x, i) {
-      var tuple = f(x, i, obj);
-      r[tuple.k] = tuple.v;
-    });
-    return r;
-  };
-  var bifilter = function (obj, pred) {
-    var t = {};
-    var f = {};
-    each$1(obj, function (x, i) {
-      var branch = pred(x, i) ? t : f;
-      branch[i] = x;
-    });
-    return {
-      t: t,
-      f: f
-    };
-  };
-  var mapToArray = function (obj, f) {
-    var r = [];
-    each$1(obj, function (value, name) {
-      r.push(f(value, name));
-    });
-    return r;
-  };
-  var find$1 = function (obj, pred) {
-    var props = keys(obj);
-    for (var k = 0, len = props.length; k < len; k++) {
-      var i = props[k];
-      var x = obj[i];
-      if (pred(x, i, obj)) {
-        return Option.some(x);
-      }
-    }
-    return Option.none();
-  };
-  var values = function (obj) {
-    return mapToArray(obj, function (v) {
-      return v;
-    });
-  };
-  var size = function (obj) {
-    return values(obj).length;
-  };
-  var $_al3re919tjfuw8wo6 = {
-    bifilter: bifilter,
-    each: each$1,
-    map: objectMap,
-    mapToArray: mapToArray,
-    tupleMap: tupleMap,
-    find: find$1,
-    keys: keys,
-    values: values,
-    size: size
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var sort$1 = function (arr) {
-    return arr.slice(0).sort();
-  };
-  var reqMessage = function (required, keys) {
-    throw new Error('All required keys (' + sort$1(required).join(', ') + ') were not specified. Specified keys were: ' + sort$1(keys).join(', ') + '.');
-  };
-  var unsuppMessage = function (unsupported) {
-    throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', '));
-  };
-  var validateStrArr = function (label, array) {
-    if (!$_d02u5u17hjfuw8wey.isArray(array))
-      throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');
-    $_1doq1817ejfuw8wen.each(array, function (a) {
-      if (!$_d02u5u17hjfuw8wey.isString(a))
-        throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');
-    });
-  };
-  var invalidTypeMessage = function (incorrect, type) {
-    throw new Error('All values need to be of type: ' + type + '. Keys (' + sort$1(incorrect).join(', ') + ') were not.');
-  };
-  var checkDupes = function (everything) {
-    var sorted = sort$1(everything);
-    var dupe = $_1doq1817ejfuw8wen.find(sorted, function (s, i) {
-      return i < sorted.length - 1 && s === sorted[i + 1];
-    });
-    dupe.each(function (d) {
-      throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');
-    });
-  };
-  var $_2f7evl19ujfuw8wo9 = {
-    sort: sort$1,
-    reqMessage: reqMessage,
-    unsuppMessage: unsuppMessage,
-    validateStrArr: validateStrArr,
-    invalidTypeMessage: invalidTypeMessage,
-    checkDupes: checkDupes
-  };
-
-  function MixedBag (required, optional) {
-    var everything = required.concat(optional);
-    if (everything.length === 0)
-      throw new Error('You must specify at least one required or optional field.');
-    $_2f7evl19ujfuw8wo9.validateStrArr('required', required);
-    $_2f7evl19ujfuw8wo9.validateStrArr('optional', optional);
-    $_2f7evl19ujfuw8wo9.checkDupes(everything);
-    return function (obj) {
-      var keys = $_al3re919tjfuw8wo6.keys(obj);
-      var allReqd = $_1doq1817ejfuw8wen.forall(required, function (req) {
-        return $_1doq1817ejfuw8wen.contains(keys, req);
-      });
-      if (!allReqd)
-        $_2f7evl19ujfuw8wo9.reqMessage(required, keys);
-      var unsupported = $_1doq1817ejfuw8wen.filter(keys, function (key) {
-        return !$_1doq1817ejfuw8wen.contains(everything, key);
-      });
-      if (unsupported.length > 0)
-        $_2f7evl19ujfuw8wo9.unsuppMessage(unsupported);
-      var r = {};
-      $_1doq1817ejfuw8wen.each(required, function (req) {
-        r[req] = $_d9fl1s17gjfuw8wew.constant(obj[req]);
-      });
-      $_1doq1817ejfuw8wen.each(optional, function (opt) {
-        r[opt] = $_d9fl1s17gjfuw8wew.constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none());
-      });
-      return r;
-    };
-  }
-
-  var $_f4h5y919qjfuw8wnr = {
-    immutable: Immutable,
-    immutableBag: MixedBag
-  };
-
</del><span class="cx" style="display: block; padding: 0 10px">   var toArray = function (target, f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var r = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var recurse = function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6763,10 +6426,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     } while (cur.isSome());
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_alx4av19vjfuw8woa = { toArray: toArray };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_607sf01awjjgweka0 = { toArray: toArray };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var node = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_clbxy018fjfuw8wjj.getOrDie('Node');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_8wnjhx19gjjgwek54.getOrDie('Node');
</ins><span class="cx" style="display: block; padding: 0 10px">     return f;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var compareDocumentPosition = function (a, b, match) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6778,7 +6441,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var documentPositionContainedBy = function (a, b) {
</span><span class="cx" style="display: block; padding: 0 10px">     return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8mu6t19xjfuw8wol = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d0o64o1ayjjgwekaa = {
</ins><span class="cx" style="display: block; padding: 0 10px">     documentPositionPreceding: documentPositionPreceding,
</span><span class="cx" style="display: block; padding: 0 10px">     documentPositionContainedBy: documentPositionContainedBy
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6818,7 +6481,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       minor: minor
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g5cbf01a1jfuw8wou = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_bhlk9t1b2jjgwekaq = {
</ins><span class="cx" style="display: block; padding: 0 10px">     nu: nu,
</span><span class="cx" style="display: block; padding: 0 10px">     detect: detect,
</span><span class="cx" style="display: block; padding: 0 10px">     unknown: unknown
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6838,7 +6501,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var unknown$1 = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return nu$1({
</span><span class="cx" style="display: block; padding: 0 10px">       current: undefined,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      version: $_g5cbf01a1jfuw8wou.unknown()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      version: $_bhlk9t1b2jjgwekaq.unknown()
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nu$1 = function (info) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6855,15 +6518,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       isSafari: isBrowser(safari, current)
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ddjyrg1a0jfuw8wor = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3j4jht1b1jjgwekal = {
</ins><span class="cx" style="display: block; padding: 0 10px">     unknown: unknown$1,
</span><span class="cx" style="display: block; padding: 0 10px">     nu: nu$1,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    edge: $_d9fl1s17gjfuw8wew.constant(edge),
-    chrome: $_d9fl1s17gjfuw8wew.constant(chrome),
-    ie: $_d9fl1s17gjfuw8wew.constant(ie),
-    opera: $_d9fl1s17gjfuw8wew.constant(opera),
-    firefox: $_d9fl1s17gjfuw8wew.constant(firefox),
-    safari: $_d9fl1s17gjfuw8wew.constant(safari)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    edge: constant(edge),
+    chrome: constant(chrome),
+    ie: constant(ie),
+    opera: constant(opera),
+    firefox: constant(firefox),
+    safari: constant(safari)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var windows$1 = 'Windows';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6881,7 +6544,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var unknown$2 = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return nu$2({
</span><span class="cx" style="display: block; padding: 0 10px">       current: undefined,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      version: $_g5cbf01a1jfuw8wou.unknown()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      version: $_bhlk9t1b2jjgwekaq.unknown()
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nu$2 = function (info) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6899,16 +6562,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       isFreeBSD: isOS(freebsd, current)
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2otgg1a2jfuw8wow = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_7je60a1b3jjgwekar = {
</ins><span class="cx" style="display: block; padding: 0 10px">     unknown: unknown$2,
</span><span class="cx" style="display: block; padding: 0 10px">     nu: nu$2,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    windows: $_d9fl1s17gjfuw8wew.constant(windows$1),
-    ios: $_d9fl1s17gjfuw8wew.constant(ios),
-    android: $_d9fl1s17gjfuw8wew.constant(android),
-    linux: $_d9fl1s17gjfuw8wew.constant(linux),
-    osx: $_d9fl1s17gjfuw8wew.constant(osx),
-    solaris: $_d9fl1s17gjfuw8wew.constant(solaris),
-    freebsd: $_d9fl1s17gjfuw8wew.constant(freebsd)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    windows: constant(windows$1),
+    ios: constant(ios),
+    android: constant(android),
+    linux: constant(linux),
+    osx: constant(osx),
+    solaris: constant(solaris),
+    freebsd: constant(freebsd)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function DeviceType (os, browser, userAgent) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6921,26 +6584,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var isPhone = isTouch && !isTablet;
</span><span class="cx" style="display: block; padding: 0 10px">     var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      isiPad: $_d9fl1s17gjfuw8wew.constant(isiPad),
-      isiPhone: $_d9fl1s17gjfuw8wew.constant(isiPhone),
-      isTablet: $_d9fl1s17gjfuw8wew.constant(isTablet),
-      isPhone: $_d9fl1s17gjfuw8wew.constant(isPhone),
-      isTouch: $_d9fl1s17gjfuw8wew.constant(isTouch),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      isiPad: constant(isiPad),
+      isiPhone: constant(isiPhone),
+      isTablet: constant(isTablet),
+      isPhone: constant(isPhone),
+      isTouch: constant(isTouch),
</ins><span class="cx" style="display: block; padding: 0 10px">       isAndroid: os.isAndroid,
</span><span class="cx" style="display: block; padding: 0 10px">       isiOS: os.isiOS,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      isWebView: $_d9fl1s17gjfuw8wew.constant(iOSwebview)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      isWebView: constant(iOSwebview)
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var detect$1 = function (candidates, userAgent) {
</span><span class="cx" style="display: block; padding: 0 10px">     var agent = String(userAgent).toLowerCase();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.find(candidates, function (candidate) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return find(candidates, function (candidate) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return candidate.search(agent);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var detectBrowser = function (browsers, userAgent) {
</span><span class="cx" style="display: block; padding: 0 10px">     return detect$1(browsers, userAgent).map(function (browser) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var version = $_g5cbf01a1jfuw8wou.detect(browser.versionRegexes, userAgent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var version = $_bhlk9t1b2jjgwekaq.detect(browser.versionRegexes, userAgent);
</ins><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         current: browser.name,
</span><span class="cx" style="display: block; padding: 0 10px">         version: version
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6949,7 +6612,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var detectOs = function (oses, userAgent) {
</span><span class="cx" style="display: block; padding: 0 10px">     return detect$1(oses, userAgent).map(function (os) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var version = $_g5cbf01a1jfuw8wou.detect(os.versionRegexes, userAgent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var version = $_bhlk9t1b2jjgwekaq.detect(os.versionRegexes, userAgent);
</ins><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         current: os.name,
</span><span class="cx" style="display: block; padding: 0 10px">         version: version
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6956,123 +6619,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_kiexy1a4jfuw8wp2 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1uo66k1b5jjgwekb9 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     detectBrowser: detectBrowser,
</span><span class="cx" style="display: block; padding: 0 10px">     detectOs: detectOs
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var addToStart = function (str, prefix) {
-    return prefix + str;
-  };
-  var addToEnd = function (str, suffix) {
-    return str + suffix;
-  };
-  var removeFromStart = function (str, numChars) {
-    return str.substring(numChars);
-  };
-  var removeFromEnd = function (str, numChars) {
-    return str.substring(0, str.length - numChars);
-  };
-  var $_52l0y51a7jfuw8wpe = {
-    addToStart: addToStart,
-    addToEnd: addToEnd,
-    removeFromStart: removeFromStart,
-    removeFromEnd: removeFromEnd
-  };
-
-  var first = function (str, count) {
-    return str.substr(0, count);
-  };
-  var last$1 = function (str, count) {
-    return str.substr(str.length - count, str.length);
-  };
-  var head$1 = function (str) {
-    return str === '' ? Option.none() : Option.some(str.substr(0, 1));
-  };
-  var tail = function (str) {
-    return str === '' ? Option.none() : Option.some(str.substring(1));
-  };
-  var $_7llj9o1a8jfuw8wpf = {
-    first: first,
-    last: last$1,
-    head: head$1,
-    tail: tail
-  };
-
-  var checkRange = function (str, substr, start) {
-    if (substr === '')
-      return true;
-    if (str.length < substr.length)
-      return false;
-    var x = str.substr(start, start + substr.length);
-    return x === substr;
-  };
-  var supplant = function (str, obj) {
-    var isStringOrNumber = function (a) {
-      var t = typeof a;
-      return t === 'string' || t === 'number';
-    };
-    return str.replace(/\${([^{}]*)}/g, function (a, b) {
-      var value = obj[b];
-      return isStringOrNumber(value) ? value : a;
-    });
-  };
-  var removeLeading = function (str, prefix) {
-    return startsWith(str, prefix) ? $_52l0y51a7jfuw8wpe.removeFromStart(str, prefix.length) : str;
-  };
-  var removeTrailing = function (str, prefix) {
-    return endsWith(str, prefix) ? $_52l0y51a7jfuw8wpe.removeFromEnd(str, prefix.length) : str;
-  };
-  var ensureLeading = function (str, prefix) {
-    return startsWith(str, prefix) ? str : $_52l0y51a7jfuw8wpe.addToStart(str, prefix);
-  };
-  var ensureTrailing = function (str, prefix) {
-    return endsWith(str, prefix) ? str : $_52l0y51a7jfuw8wpe.addToEnd(str, prefix);
-  };
</del><span class="cx" style="display: block; padding: 0 10px">   var contains$1 = function (str, substr) {
</span><span class="cx" style="display: block; padding: 0 10px">     return str.indexOf(substr) !== -1;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var capitalize = function (str) {
-    return $_7llj9o1a8jfuw8wpf.head(str).bind(function (head) {
-      return $_7llj9o1a8jfuw8wpf.tail(str).map(function (tail) {
-        return head.toUpperCase() + tail;
-      });
-    }).getOr(str);
-  };
-  var startsWith = function (str, prefix) {
-    return checkRange(str, prefix, 0);
-  };
-  var endsWith = function (str, suffix) {
-    return checkRange(str, suffix, str.length - suffix.length);
-  };
-  var trim = function (str) {
-    return str.replace(/^\s+|\s+$/g, '');
-  };
-  var lTrim = function (str) {
-    return str.replace(/^\s+/g, '');
-  };
-  var rTrim = function (str) {
-    return str.replace(/\s+$/g, '');
-  };
-  var $_1vh2q91a6jfuw8wpc = {
-    supplant: supplant,
-    startsWith: startsWith,
-    removeLeading: removeLeading,
-    removeTrailing: removeTrailing,
-    ensureLeading: ensureLeading,
-    ensureTrailing: ensureTrailing,
-    endsWith: endsWith,
-    contains: contains$1,
-    trim: trim,
-    lTrim: lTrim,
-    rTrim: rTrim,
-    capitalize: capitalize
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
</span><span class="cx" style="display: block; padding: 0 10px">   var checkContains = function (target) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_1vh2q91a6jfuw8wpc.contains(uastring, target);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return contains$1(uastring, target);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var browsers = [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7080,7 +6639,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       name: 'Edge',
</span><span class="cx" style="display: block; padding: 0 10px">       versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var monstrosity = $_1vh2q91a6jfuw8wpc.contains(uastring, 'edge/') && $_1vh2q91a6jfuw8wpc.contains(uastring, 'chrome') && $_1vh2q91a6jfuw8wpc.contains(uastring, 'safari') && $_1vh2q91a6jfuw8wpc.contains(uastring, 'applewebkit');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var monstrosity = contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');
</ins><span class="cx" style="display: block; padding: 0 10px">         return monstrosity;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7091,7 +6650,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         normalVersionRegex
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_1vh2q91a6jfuw8wpc.contains(uastring, 'chrome') && !$_1vh2q91a6jfuw8wpc.contains(uastring, 'chromeframe');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7101,7 +6660,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         /.*?rv:([0-9]+)\.([0-9]+).*/
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_1vh2q91a6jfuw8wpc.contains(uastring, 'msie') || $_1vh2q91a6jfuw8wpc.contains(uastring, 'trident');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7124,7 +6683,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         /.*?cpu os ([0-9]+)_([0-9]+).*/
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return ($_1vh2q91a6jfuw8wpc.contains(uastring, 'safari') || $_1vh2q91a6jfuw8wpc.contains(uastring, 'mobile/')) && $_1vh2q91a6jfuw8wpc.contains(uastring, 'applewebkit');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   ];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7137,7 +6696,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">       name: 'iOS',
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_1vh2q91a6jfuw8wpc.contains(uastring, 'iphone') || $_1vh2q91a6jfuw8wpc.contains(uastring, 'ipad');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       versionRegexes: [
</span><span class="cx" style="display: block; padding: 0 10px">         /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7171,16 +6730,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       versionRegexes: []
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   ];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bavmlr1a5jfuw8wp6 = {
-    browsers: $_d9fl1s17gjfuw8wew.constant(browsers),
-    oses: $_d9fl1s17gjfuw8wew.constant(oses)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4f7v971b6jjgwekbd = {
+    browsers: constant(browsers),
+    oses: constant(oses)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var detect$2 = function (userAgent) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var browsers = $_bavmlr1a5jfuw8wp6.browsers();
-    var oses = $_bavmlr1a5jfuw8wp6.oses();
-    var browser = $_kiexy1a4jfuw8wp2.detectBrowser(browsers, userAgent).fold($_ddjyrg1a0jfuw8wor.unknown, $_ddjyrg1a0jfuw8wor.nu);
-    var os = $_kiexy1a4jfuw8wp2.detectOs(oses, userAgent).fold($_2otgg1a2jfuw8wow.unknown, $_2otgg1a2jfuw8wow.nu);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var browsers = $_4f7v971b6jjgwekbd.browsers();
+    var oses = $_4f7v971b6jjgwekbd.oses();
+    var browser = $_1uo66k1b5jjgwekb9.detectBrowser(browsers, userAgent).fold($_3j4jht1b1jjgwekal.unknown, $_3j4jht1b1jjgwekal.nu);
+    var os = $_1uo66k1b5jjgwekb9.detectOs(oses, userAgent).fold($_7je60a1b3jjgwekar.unknown, $_7je60a1b3jjgwekar.nu);
</ins><span class="cx" style="display: block; padding: 0 10px">     var deviceType = DeviceType(os, browser, userAgent);
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       browser: browser,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7188,16 +6747,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       deviceType: deviceType
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5balgb19zjfuw8woq = { detect: detect$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d71emz1b0jjgwekak = { detect: detect$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var detect$3 = $_7dlbos19mjfuw8wnb.cached(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var detect$3 = cached(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     var userAgent = navigator.userAgent;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5balgb19zjfuw8woq.detect(userAgent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_d71emz1b0jjgwekak.detect(userAgent);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_44fif19yjfuw8wom = { detect: detect$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9xrxmy1azjjgwekac = { detect: detect$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var ELEMENT = $_8v84g119ojfuw8wnd.ELEMENT;
-  var DOCUMENT = $_8v84g119ojfuw8wnd.DOCUMENT;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var ELEMENT = $_2jrgnk1apjjgwek8y.ELEMENT;
+  var DOCUMENT = $_2jrgnk1apjjgwek8y.DOCUMENT;
</ins><span class="cx" style="display: block; padding: 0 10px">   var is = function (element, selector) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elem = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     if (elem.nodeType !== ELEMENT)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7218,13 +6777,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var all = function (selector, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var base = scope === undefined ? document : scope.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return bypassSelector(base) ? [] : $_1doq1817ejfuw8wen.map(base.querySelectorAll(selector), $_fmubbj19ijfuw8wmy.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var one = function (selector, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var base = scope === undefined ? document : scope.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map($_fmubbj19ijfuw8wmy.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9hz7rv1a9jfuw8wpg = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_e63uk51bajjgwekbq = {
</ins><span class="cx" style="display: block; padding: 0 10px">     all: all,
</span><span class="cx" style="display: block; padding: 0 10px">     is: is,
</span><span class="cx" style="display: block; padding: 0 10px">     one: one
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7237,7 +6796,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return e1.dom().isEqualNode(e2.dom());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var member = function (element, elements) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.exists(elements, $_d9fl1s17gjfuw8wew.curry(eq, element));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return exists(elements, curry(eq, element));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var regularContains = function (e1, e2) {
</span><span class="cx" style="display: block; padding: 0 10px">     var d1 = e1.dom(), d2 = e2.dom();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7244,49 +6803,48 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return d1 === d2 ? false : d1.contains(d2);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ieContains = function (e1, e2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_8mu6t19xjfuw8wol.documentPositionContainedBy(e1.dom(), e2.dom());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_d0o64o1ayjjgwekaa.documentPositionContainedBy(e1.dom(), e2.dom());
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var browser = $_44fif19yjfuw8wom.detect().browser;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var browser = $_9xrxmy1azjjgwekac.detect().browser;
</ins><span class="cx" style="display: block; padding: 0 10px">   var contains$2 = browser.isIE() ? ieContains : regularContains;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ab91p919wjfuw8woc = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_36s5ie1axjjgweka1 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     eq: eq,
</span><span class="cx" style="display: block; padding: 0 10px">     isEqualNode: isEqualNode,
</span><span class="cx" style="display: block; padding: 0 10px">     member: member,
</span><span class="cx" style="display: block; padding: 0 10px">     contains: contains$2,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    is: $_9hz7rv1a9jfuw8wpg.is
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    is: $_e63uk51bajjgwekbq.is
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var owner = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_fmubbj19ijfuw8wmy.fromDom(element.dom().ownerDocument);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(element.dom().ownerDocument);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var documentElement = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var doc = owner(element);
-    return $_fmubbj19ijfuw8wmy.fromDom(doc.dom().documentElement);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(element.dom().ownerDocument.documentElement);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var defaultView = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var el = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     var defaultView = el.ownerDocument.defaultView;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_fmubbj19ijfuw8wmy.fromDom(defaultView);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(defaultView);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var parent$1 = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.parentNode).map($_fmubbj19ijfuw8wmy.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.parentNode).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findIndex$1 = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return parent$1(element).bind(function (p) {
</span><span class="cx" style="display: block; padding: 0 10px">       var kin = children(p);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_1doq1817ejfuw8wen.findIndex(kin, function (elem) {
-        return $_ab91p919wjfuw8woc.eq(element, elem);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return findIndex(kin, function (elem) {
+        return $_36s5ie1axjjgweka1.eq(element, elem);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var parents = function (element, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var stop = $_d02u5u17hjfuw8wey.isFunction(isRoot) ? isRoot : $_d9fl1s17gjfuw8wew.constant(false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var stop = isFunction$1(isRoot) ? isRoot : constant(false);
</ins><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     var ret = [];
</span><span class="cx" style="display: block; padding: 0 10px">     while (dom.parentNode !== null && dom.parentNode !== undefined) {
</span><span class="cx" style="display: block; padding: 0 10px">       var rawParent = dom.parentNode;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parent = $_fmubbj19ijfuw8wmy.fromDom(rawParent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parent = Element$$1.fromDom(rawParent);
</ins><span class="cx" style="display: block; padding: 0 10px">       ret.push(parent);
</span><span class="cx" style="display: block; padding: 0 10px">       if (stop(parent) === true)
</span><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7297,8 +6855,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var siblings = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var filterSelf = function (elements) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_1doq1817ejfuw8wen.filter(elements, function (x) {
-        return !$_ab91p919wjfuw8woc.eq(element, x);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return filter(elements, function (x) {
+        return !$_36s5ie1axjjgweka1.eq(element, x);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return parent$1(element).map(children).map(filterSelf).getOr([]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7305,29 +6863,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var offsetParent = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.offsetParent).map($_fmubbj19ijfuw8wmy.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.offsetParent).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var prevSibling = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.previousSibling).map($_fmubbj19ijfuw8wmy.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.previousSibling).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nextSibling = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.nextSibling).map($_fmubbj19ijfuw8wmy.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.nextSibling).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var prevSiblings = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.reverse($_alx4av19vjfuw8woa.toArray(element, prevSibling));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return reverse($_607sf01awjjgweka0.toArray(element, prevSibling));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nextSiblings = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_alx4av19vjfuw8woa.toArray(element, nextSibling);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_607sf01awjjgweka0.toArray(element, nextSibling);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var children = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.map(dom.childNodes, $_fmubbj19ijfuw8wmy.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(dom.childNodes, Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var child = function (element, index) {
</span><span class="cx" style="display: block; padding: 0 10px">     var children = element.dom().childNodes;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(children[index]).map($_fmubbj19ijfuw8wmy.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(children[index]).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var firstChild = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return child(element, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7341,12 +6899,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var hasChildNodes = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return element.dom().hasChildNodes();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var spot = $_f4h5y919qjfuw8wnr.immutable('element', 'offset');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var spot = Immutable('element', 'offset');
</ins><span class="cx" style="display: block; padding: 0 10px">   var leaf = function (element, offset) {
</span><span class="cx" style="display: block; padding: 0 10px">     var cs = children(element);
</span><span class="cx" style="display: block; padding: 0 10px">     return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g7tj5v19pjfuw8wnf = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fk3hdw1aqjjgwek91 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     owner: owner,
</span><span class="cx" style="display: block; padding: 0 10px">     defaultView: defaultView,
</span><span class="cx" style="display: block; padding: 0 10px">     documentElement: documentElement,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7369,20 +6927,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var all$1 = function (predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return descendants($_9dfew519ljfuw8wn8.body(), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return descendants($_d2glpe1amjjgwek8t.body(), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestors = function (scope, predicate, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.filter($_g7tj5v19pjfuw8wnf.parents(scope, isRoot), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter($_fk3hdw1aqjjgwek91.parents(scope, isRoot), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var siblings$1 = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.filter($_g7tj5v19pjfuw8wnf.siblings(scope), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter($_fk3hdw1aqjjgwek91.siblings(scope), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var children$1 = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.filter($_g7tj5v19pjfuw8wnf.children(scope), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter($_fk3hdw1aqjjgwek91.children(scope), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendants = function (scope, predicate) {
</span><span class="cx" style="display: block; padding: 0 10px">     var result = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_1doq1817ejfuw8wen.each($_g7tj5v19pjfuw8wnf.children(scope), function (x) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each($_fk3hdw1aqjjgwek91.children(scope), function (x) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (predicate(x)) {
</span><span class="cx" style="display: block; padding: 0 10px">         result = result.concat([x]);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7390,7 +6948,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return result;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bavy9s19kjfuw8wn5 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4re57m1aljjgwek8p = {
</ins><span class="cx" style="display: block; padding: 0 10px">     all: all$1,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestors: ancestors,
</span><span class="cx" style="display: block; padding: 0 10px">     siblings: siblings$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7399,27 +6957,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var all$2 = function (selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9hz7rv1a9jfuw8wpg.all(selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_e63uk51bajjgwekbq.all(selector);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestors$1 = function (scope, selector, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_bavy9s19kjfuw8wn5.ancestors(scope, function (e) {
-      return $_9hz7rv1a9jfuw8wpg.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_4re57m1aljjgwek8p.ancestors(scope, function (e) {
+      return $_e63uk51bajjgwekbq.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     }, isRoot);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var siblings$2 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_bavy9s19kjfuw8wn5.siblings(scope, function (e) {
-      return $_9hz7rv1a9jfuw8wpg.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_4re57m1aljjgwek8p.siblings(scope, function (e) {
+      return $_e63uk51bajjgwekbq.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var children$2 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_bavy9s19kjfuw8wn5.children(scope, function (e) {
-      return $_9hz7rv1a9jfuw8wpg.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_4re57m1aljjgwek8p.children(scope, function (e) {
+      return $_e63uk51bajjgwekbq.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendants$1 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9hz7rv1a9jfuw8wpg.all(selector, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_e63uk51bajjgwekbq.all(selector, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_b2no8419jjfuw8wn4 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1jc9su1akjjgwek8o = {
</ins><span class="cx" style="display: block; padding: 0 10px">     all: all$2,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestors: ancestors$1,
</span><span class="cx" style="display: block; padding: 0 10px">     siblings: siblings$2,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7462,7 +7020,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var select = function (selector, root) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.map($_b2no8419jjfuw8wn4.descendants($_fmubbj19ijfuw8wmy.fromDom(root), selector), function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map($_1jc9su1akjjgwek8o.descendants(Element$$1.fromDom(root), selector), function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7470,7 +7028,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return elm.innerText || elm.textContent;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getOrGenerateId = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return elm.id ? elm.id : $_2kv8f219hjfuw8wmw.generate('h');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return elm.id ? elm.id : generate('h');
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isAnchor = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return elm && elm.nodeName === 'A' && (elm.id || elm.name);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7500,13 +7058,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var anchorTarget = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var anchorId = elm.id || elm.name;
</span><span class="cx" style="display: block; padding: 0 10px">     var anchorText = getElementText(elm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return create$4('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, $_d9fl1s17gjfuw8wew.noop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return create$4('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getHeaderTargets = function (elms) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.map($_1doq1817ejfuw8wen.filter(elms, isValidHeader), headerTarget);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(filter(elms, isValidHeader), headerTarget);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getAnchorTargets = function (elms) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.map($_1doq1817ejfuw8wen.filter(elms, isValidAnchor), anchorTarget);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(filter(elms, isValidAnchor), anchorTarget);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getTargetElements = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7517,9 +7075,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var find$3 = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elms = getTargetElements(elm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bmqeu519gjfuw8wmn = { find: find$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5ia43q1ahjjgwek7u = { find: find$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getActiveEditor = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return window.tinymce ? window.tinymce.activeEditor : global$5.activeEditor;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7548,12 +7106,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       value: {
</span><span class="cx" style="display: block; padding: 0 10px">         title: title,
</span><span class="cx" style="display: block; padding: 0 10px">         url: url,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        attach: $_d9fl1s17gjfuw8wew.noop
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        attach: noop
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isUniqueUrl = function (url, targets) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var foundTarget = $_1doq1817ejfuw8wen.exists(targets, function (target) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var foundTarget = exists(targets, function (target) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return target.url === url;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return !foundTarget;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7566,7 +7124,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var separator = { title: '-' };
</span><span class="cx" style="display: block; padding: 0 10px">     var fromHistoryMenuItems = function (history) {
</span><span class="cx" style="display: block; padding: 0 10px">       var historyItems = history.hasOwnProperty(fileType) ? history[fileType] : [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var uniqueHistory = $_1doq1817ejfuw8wen.filter(historyItems, function (url) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var uniqueHistory = filter(historyItems, function (url) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return isUniqueUrl(url, targets);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return global$4.map(uniqueHistory, function (url) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7575,13 +7133,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">           value: {
</span><span class="cx" style="display: block; padding: 0 10px">             title: url,
</span><span class="cx" style="display: block; padding: 0 10px">             url: url,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            attach: $_d9fl1s17gjfuw8wew.noop
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            attach: noop
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var fromMenuItems = function (type) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var filteredTargets = $_1doq1817ejfuw8wen.filter(targets, function (target) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var filteredTargets = filter(targets, function (target) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return target.type === type;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return toMenuItems(filteredTargets);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7599,7 +7157,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return anchorMenuItems;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var join = function (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_1doq1817ejfuw8wen.foldl(items, function (a, b) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return foldl(items, function (a, b) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var bothEmpty = a.length === 0 || b.length === 0;
</span><span class="cx" style="display: block; padding: 0 10px">         return bothEmpty ? a.concat(b) : a.concat(separator, b);
</span><span class="cx" style="display: block; padding: 0 10px">       }, []);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7619,7 +7177,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_1doq1817ejfuw8wen.indexOf(items, url).isNone()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (indexOf(items, url).isNone()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         history[fileType] = items.slice(0, HISTORY_LENGTH).concat(url);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7639,7 +7197,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setupAutoCompleteHandler = function (ctrl, editorSettings, bodyElm, fileType) {
</span><span class="cx" style="display: block; padding: 0 10px">     var autocomplete = function (term) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var linkTargets = $_bmqeu519gjfuw8wmn.find(bodyElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var linkTargets = $_5ia43q1ahjjgwek7u.find(bodyElm);
</ins><span class="cx" style="display: block; padding: 0 10px">       var menuItems = createMenuItems(term, linkTargets, fileType, editorSettings);
</span><span class="cx" style="display: block; padding: 0 10px">       ctrl.showAutoComplete(menuItems, term);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7966,18 +7524,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return is(scope, a) ? Option.some(scope) : $_d02u5u17hjfuw8wey.isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return is(scope, a) ? Option.some(scope) : isFunction$1(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);
</ins><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var first$1 = function (predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return descendant($_9dfew519ljfuw8wn8.body(), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return descendant($_d2glpe1amjjgwek8t.body(), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestor = function (scope, predicate, isRoot) {
</span><span class="cx" style="display: block; padding: 0 10px">     var element = scope.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var stop = $_d02u5u17hjfuw8wey.isFunction(isRoot) ? isRoot : $_d9fl1s17gjfuw8wew.constant(false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var stop = isFunction$1(isRoot) ? isRoot : constant(false);
</ins><span class="cx" style="display: block; padding: 0 10px">     while (element.parentNode) {
</span><span class="cx" style="display: block; padding: 0 10px">       element = element.parentNode;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var el = $_fmubbj19ijfuw8wmy.fromDom(element);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var el = Element$$1.fromDom(element);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (predicate(el))
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.some(el);
</span><span class="cx" style="display: block; padding: 0 10px">       else if (stop(el))
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7995,20 +7553,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var element = scope.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     if (!element.parentNode)
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.none();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return child$1($_fmubbj19ijfuw8wmy.fromDom(element.parentNode), function (x) {
-      return !$_ab91p919wjfuw8woc.eq(scope, x) && predicate(x);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return child$1(Element$$1.fromDom(element.parentNode), function (x) {
+      return !$_36s5ie1axjjgweka1.eq(scope, x) && predicate(x);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var child$1 = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var result = $_1doq1817ejfuw8wen.find(scope.dom().childNodes, $_d9fl1s17gjfuw8wew.compose(predicate, $_fmubbj19ijfuw8wmy.fromDom));
-    return result.map($_fmubbj19ijfuw8wmy.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var result = find(scope.dom().childNodes, compose(predicate, Element$$1.fromDom));
+    return result.map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendant = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var descend = function (element) {
-      for (var i = 0; i < element.childNodes.length; i++) {
-        if (predicate($_fmubbj19ijfuw8wmy.fromDom(element.childNodes[i])))
-          return Option.some($_fmubbj19ijfuw8wmy.fromDom(element.childNodes[i]));
-        var res = descend(element.childNodes[i]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var descend = function (node) {
+      for (var i = 0; i < node.childNodes.length; i++) {
+        if (predicate(Element$$1.fromDom(node.childNodes[i])))
+          return Option.some(Element$$1.fromDom(node.childNodes[i]));
+        var res = descend(node.childNodes[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (res.isSome())
</span><span class="cx" style="display: block; padding: 0 10px">           return res;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8016,7 +7574,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return descend(scope.dom());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7vqge21afjfuw8wq8 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_df9cwz1bgjjgwekcd = {
</ins><span class="cx" style="display: block; padding: 0 10px">     first: first$1,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestor: ancestor,
</span><span class="cx" style="display: block; padding: 0 10px">     closest: closest,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8026,30 +7584,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var first$2 = function (selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9hz7rv1a9jfuw8wpg.one(selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_e63uk51bajjgwekbq.one(selector);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestor$1 = function (scope, selector, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_7vqge21afjfuw8wq8.ancestor(scope, function (e) {
-      return $_9hz7rv1a9jfuw8wpg.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_df9cwz1bgjjgwekcd.ancestor(scope, function (e) {
+      return $_e63uk51bajjgwekbq.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     }, isRoot);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var sibling$1 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_7vqge21afjfuw8wq8.sibling(scope, function (e) {
-      return $_9hz7rv1a9jfuw8wpg.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_df9cwz1bgjjgwekcd.sibling(scope, function (e) {
+      return $_e63uk51bajjgwekbq.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var child$2 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_7vqge21afjfuw8wq8.child(scope, function (e) {
-      return $_9hz7rv1a9jfuw8wpg.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_df9cwz1bgjjgwekcd.child(scope, function (e) {
+      return $_e63uk51bajjgwekbq.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendant$1 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9hz7rv1a9jfuw8wpg.one(selector, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_e63uk51bajjgwekbq.one(selector, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var closest$1 = function (scope, selector, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return ClosestOrAncestor($_9hz7rv1a9jfuw8wpg.is, ancestor$1, scope, selector, isRoot);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return ClosestOrAncestor($_e63uk51bajjgwekbq.is, ancestor$1, scope, selector, isRoot);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fms31h1aejfuw8wq6 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6nlstg1bfjjgwekcb = {
</ins><span class="cx" style="display: block; padding: 0 10px">     first: first$2,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestor: ancestor$1,
</span><span class="cx" style="display: block; padding: 0 10px">     sibling: sibling$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8063,53 +7621,84 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.execCommand('mceToggleFormat', false, fmt);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var postRenderFormat = function (editor, name) {
-    return function () {
-      var self = this;
-      if (editor.formatter) {
-        editor.formatter.formatChanged(name, function (state) {
-          self.active(state);
-        });
-      } else {
-        editor.on('init', function () {
-          editor.formatter.formatChanged(name, function (state) {
-            self.active(state);
-          });
-        });
-      }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var addFormatChangedListener = function (editor, name, changed) {
+    var handler = function (state) {
+      changed(state, name);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (editor.formatter) {
+      editor.formatter.formatChanged(name, handler);
+    } else {
+      editor.on('init', function () {
+        editor.formatter.formatChanged(name, handler);
+      });
+    }
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ihu3w1aijfuw8wqo = {
-    toggleFormat: toggleFormat,
-    postRenderFormat: postRenderFormat
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var postRenderFormatToggle = function (editor, name) {
+    return function (e) {
+      addFormatChangedListener(editor, name, function (state) {
+        e.control.active(state);
+      });
+    };
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var alignFormats = [
+      'alignleft',
+      'aligncenter',
+      'alignright',
+      'alignjustify'
+    ];
+    var defaultAlign = 'alignleft';
+    var alignMenuItems = [
+      {
+        text: 'Left',
+        icon: 'alignleft',
+        onclick: toggleFormat(editor, 'alignleft')
+      },
+      {
+        text: 'Center',
+        icon: 'aligncenter',
+        onclick: toggleFormat(editor, 'aligncenter')
+      },
+      {
+        text: 'Right',
+        icon: 'alignright',
+        onclick: toggleFormat(editor, 'alignright')
+      },
+      {
+        text: 'Justify',
+        icon: 'alignjustify',
+        onclick: toggleFormat(editor, 'alignjustify')
+      }
+    ];
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.addMenuItem('align', {
</span><span class="cx" style="display: block; padding: 0 10px">       text: 'Align',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      menu: [
-        {
-          text: 'Left',
-          icon: 'alignleft',
-          onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'alignleft')
-        },
-        {
-          text: 'Center',
-          icon: 'aligncenter',
-          onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'aligncenter')
-        },
-        {
-          text: 'Right',
-          icon: 'alignright',
-          onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'alignright')
-        },
-        {
-          text: 'Justify',
-          icon: 'alignjustify',
-          onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'alignjustify')
-        }
-      ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      menu: alignMenuItems
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.addButton('align', {
+      type: 'menubutton',
+      icon: defaultAlign,
+      menu: alignMenuItems,
+      onShowMenu: function (e) {
+        var menu = e.control.menu;
+        global$4.each(alignFormats, function (formatName, idx) {
+          menu.items().eq(idx).each(function (item) {
+            return item.active(editor.formatter.match(formatName));
+          });
+        });
+      },
+      onPostRender: function (e) {
+        var ctrl = e.control;
+        global$4.each(alignFormats, function (formatName, idx) {
+          addFormatChangedListener(editor, formatName, function (state) {
+            ctrl.icon(defaultAlign);
+            if (state) {
+              ctrl.icon(formatName);
+            }
+          });
+        });
+      }
+    });
</ins><span class="cx" style="display: block; padding: 0 10px">     global$4.each({
</span><span class="cx" style="display: block; padding: 0 10px">       alignleft: [
</span><span class="cx" style="display: block; padding: 0 10px">         'Align left',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8136,24 +7725,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">         active: false,
</span><span class="cx" style="display: block; padding: 0 10px">         tooltip: item[0],
</span><span class="cx" style="display: block; padding: 0 10px">         cmd: item[1],
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onPostRender: $_ihu3w1aijfuw8wqo.postRenderFormat(editor, name)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onPostRender: postRenderFormatToggle(editor, name)
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ezm9hv1ahjfuw8wqn = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_7uh4c31bijjgwekcw = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getFirstFont = function (fontFamily) {
</span><span class="cx" style="display: block; padding: 0 10px">     return fontFamily ? fontFamily.split(',')[0] : '';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findMatchingValue = function (items, fontFamily) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var font = fontFamily ? fontFamily.toLowerCase() : '';
</ins><span class="cx" style="display: block; padding: 0 10px">     var value;
</span><span class="cx" style="display: block; padding: 0 10px">     global$4.each(items, function (item) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (item.value.toLowerCase() === fontFamily.toLowerCase()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (item.value.toLowerCase() === font) {
</ins><span class="cx" style="display: block; padding: 0 10px">         value = item.value;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     global$4.each(items, function (item) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!value && getFirstFont(item.value).toLowerCase() === getFirstFont(fontFamily).toLowerCase()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!value && getFirstFont(item.value).toLowerCase() === getFirstFont(font).toLowerCase()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         value = item.value;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8162,6 +7752,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var createFontNameListBoxChangeHandler = function (editor, items) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self.state.set('value', null);
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.on('init nodeChange', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         var fontFamily = editor.queryCommandValue('FontName');
</span><span class="cx" style="display: block; padding: 0 10px">         var match = findMatchingValue(items, fontFamily);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8212,7 +7803,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var register$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1fynbv1ajjfuw8wqp = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2g5ce1bkjjgwekcz = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var round = function (number, precision) {
</span><span class="cx" style="display: block; padding: 0 10px">     var factor = Math.pow(10, precision);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8291,7 +7882,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var register$2 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$1(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4s7fmc1akjfuw8wqs = { register: register$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_b15nsk1bljjgwekd9 = { register: register$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var hideMenuObjects = function (editor, menu) {
</span><span class="cx" style="display: block; padding: 0 10px">     var count = menu.length;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8521,7 +8112,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         onclick: function () {
</span><span class="cx" style="display: block; padding: 0 10px">           if (this.settings.format) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_ihu3w1aijfuw8wqo.toggleFormat(editor, this.settings.format)();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            toggleFormat(editor, this.settings.format)();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           if (this.settings.cmd) {
</span><span class="cx" style="display: block; padding: 0 10px">             editor.execCommand(this.settings.cmd);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8553,7 +8144,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     registerMenuItems(editor, formatMenu);
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$2(editor, formatMenu);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2dqx6v1aljfuw8wqv = { register: register$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9qaa1r1bmjjgwekdc = { register: register$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var defaultBlocks = 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre';
</span><span class="cx" style="display: block; padding: 0 10px">   var createFormats$1 = function (formats) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8613,7 +8204,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         onselect: function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (e.control) {
</span><span class="cx" style="display: block; padding: 0 10px">             var fmt = e.control.value();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_ihu3w1aijfuw8wqo.toggleFormat(editor, fmt)();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            toggleFormat(editor, fmt)();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         onPostRender: createListBoxChangeHandler(editor, items)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8624,7 +8215,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return global$4.map(blocks, function (block) {
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         text: block[0],
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, block[1]),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onclick: toggleFormat(editor, block[1]),
</ins><span class="cx" style="display: block; padding: 0 10px">         textStyle: function () {
</span><span class="cx" style="display: block; padding: 0 10px">           return editor.formatter.getCssText(block[1]);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8639,7 +8230,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addButton('formatselect', lazyFormatSelectBoxItems(editor, blocks));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8bezlh1amjfuw8wqz = { register: register$4 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_a3xw9u1bnjjgwekdh = { register: register$4 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var createCustomMenuItems = function (editor, names) {
</span><span class="cx" style="display: block; padding: 0 10px">     var items, nameList;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8646,7 +8237,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (typeof names === 'string') {
</span><span class="cx" style="display: block; padding: 0 10px">       nameList = names.split(' ');
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (global$4.isArray(names)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_1doq1817ejfuw8wen.flatten(global$4.map(names, function (names) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return flatten$1(global$4.map(names, function (names) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return createCustomMenuItems(editor, names);
</span><span class="cx" style="display: block; padding: 0 10px">       }));
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8661,10 +8252,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return menuItem && menuItem.text === '-';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimMenuItems = function (menuItems) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var menuItems2 = $_1doq1817ejfuw8wen.filter(menuItems, function (menuItem, i, menuItems) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var menuItems2 = filter(menuItems, function (menuItem, i, menuItems) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return !isSeparator(menuItem) || !isSeparator(menuItems[i - 1]);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1doq1817ejfuw8wen.filter(menuItems2, function (menuItem, i, menuItems) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter(menuItems2, function (menuItem, i, menuItems) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return !isSeparator(menuItem) || i > 0 && i < menuItems.length - 1;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8710,7 +8301,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var register$5 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$3(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_46740k1anjfuw8wr1 = { register: register$5 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_dvqvtt1bojjgwekdj = { register: register$5 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var registerFormatButtons = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     global$4.each({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8724,8 +8315,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.addButton(name, {
</span><span class="cx" style="display: block; padding: 0 10px">         active: false,
</span><span class="cx" style="display: block; padding: 0 10px">         tooltip: text,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onPostRender: $_ihu3w1aijfuw8wqo.postRenderFormat(editor, name),
-        onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, name)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onPostRender: postRenderFormatToggle(editor, name),
+        onclick: toggleFormat(editor, name)
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8801,7 +8392,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         active: false,
</span><span class="cx" style="display: block; padding: 0 10px">         tooltip: item[0],
</span><span class="cx" style="display: block; padding: 0 10px">         cmd: item[1],
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onPostRender: $_ihu3w1aijfuw8wqo.postRenderFormat(editor, name)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onPostRender: postRenderFormatToggle(editor, name)
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8878,7 +8469,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addMenuItem('codeformat', {
</span><span class="cx" style="display: block; padding: 0 10px">       text: 'Code',
</span><span class="cx" style="display: block; padding: 0 10px">       icon: 'code',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'code')
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      onclick: toggleFormat(editor, 'code')
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var register$6 = function (editor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8885,7 +8476,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$4(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     registerMenuItems$1(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bith3p1aojfuw8wr6 = { register: register$6 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2ywvy11bpjjgwekdn = { register: register$6 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var toggleUndoRedoState = function (editor, type) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8932,7 +8523,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     registerMenuItems$2(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$5(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2t0cyf1apjfuw8wr8 = { register: register$7 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5qfrkx1bqjjgwekdq = { register: register$7 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var toggleVisualAidState = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8954,7 +8545,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var register$8 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     registerMenuItems$3(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7bn4in1aqjfuw8wra = { register: register$8 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ebb6rc1brjjgwekdr = { register: register$8 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setupEnvironment = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     Widget.tooltips = !global$1.iOS;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8964,7 +8555,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setupUiContainer = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.settings.ui_container) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$1.container = $_fms31h1aejfuw8wq6.descendant($_fmubbj19ijfuw8wmy.fromDom(document.body), editor.settings.ui_container).fold($_d9fl1s17gjfuw8wew.constant(null), function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$1.container = $_6nlstg1bfjjgwekcb.descendant(Element$$1.fromDom(document.body), editor.settings.ui_container).fold(constant(null), function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return elm.dom();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8984,17 +8575,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">     setupHideFloatPanels(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     setupUiContainer(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     setupEnvironment();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_8bezlh1amjfuw8wqz.register(editor);
-    $_ezm9hv1ahjfuw8wqn.register(editor);
-    $_bith3p1aojfuw8wr6.register(editor);
-    $_2t0cyf1apjfuw8wr8.register(editor);
-    $_4s7fmc1akjfuw8wqs.register(editor);
-    $_1fynbv1ajjfuw8wqp.register(editor);
-    $_2dqx6v1aljfuw8wqv.register(editor);
-    $_7bn4in1aqjfuw8wra.register(editor);
-    $_46740k1anjfuw8wr1.register(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_a3xw9u1bnjjgwekdh.register(editor);
+    $_7uh4c31bijjgwekcw.register(editor);
+    $_2ywvy11bpjjgwekdn.register(editor);
+    $_5qfrkx1bqjjgwekdq.register(editor);
+    $_b15nsk1bljjgwekd9.register(editor);
+    $_2g5ce1bkjjgwekcz.register(editor);
+    $_9qaa1r1bmjjgwekdc.register(editor);
+    $_ebb6rc1brjjgwekdr.register(editor);
+    $_dvqvtt1bojjgwekdj.register(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5jc0r41adjfuw8wpt = { setup: setup };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_gg6ikw1bejjgwekc5 = { setup: setup };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var GridLayout = AbsoluteLayout.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     recalc: function (container) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9301,9 +8892,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function isChildOf$1(node, parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  function isChildOf$1(node, parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">     while (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (parent === node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (parent$$1 === node) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       node = node.parentNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9312,26 +8903,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   var MenuButton = Button.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._renderOpen = true;
-      self._super(settings);
-      settings = self.settings;
-      self.classes.add('menubtn');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._renderOpen = true;
+      self$$1._super(settings);
+      settings = self$$1.settings;
+      self$$1.classes.add('menubtn');
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.fixedWidth) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('fixed-width');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('fixed-width');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.aria('haspopup', true);
-      self.state.set('menu', settings.menu || self.render());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.aria('haspopup', true);
+      self$$1.state.set('menu', settings.menu || self$$1.render());
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     showMenu: function (toggle) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var menu;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.menu && self.menu.visible() && toggle !== false) {
-        return self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.menu && self$$1.menu.visible() && toggle !== false) {
+        return self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.menu) {
-        menu = self.state.get('menu') || [];
-        self.classes.add('opened');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.menu) {
+        menu = self$$1.state.get('menu') || [];
+        self$$1.classes.add('opened');
</ins><span class="cx" style="display: block; padding: 0 10px">         if (menu.length) {
</span><span class="cx" style="display: block; padding: 0 10px">           menu = {
</span><span class="cx" style="display: block; padding: 0 10px">             type: 'menu',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9343,34 +8934,34 @@
</span><span class="cx" style="display: block; padding: 0 10px">           menu.animate = true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (!menu.renderTo) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.menu = global$11.create(menu).parent(self).renderTo();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.menu = global$11.create(menu).parent(self$$1).renderTo();
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.menu = menu.parent(self).show().renderTo();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.menu = menu.parent(self$$1).show().renderTo();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.fire('createmenu');
-        self.menu.reflow();
-        self.menu.on('cancel', function (e) {
-          if (e.control.parent() === self.menu) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.fire('createmenu');
+        self$$1.menu.reflow();
+        self$$1.menu.on('cancel', function (e) {
+          if (e.control.parent() === self$$1.menu) {
</ins><span class="cx" style="display: block; padding: 0 10px">             e.stopPropagation();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.focus();
-            self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.focus();
+            self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.on('select', function () {
-          self.focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.on('select', function () {
+          self$$1.focus();
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.on('show hide', function (e) {
-          if (e.control === self.menu) {
-            self.activeMenu(e.type === 'show');
-            self.classes.toggle('opened', e.type === 'show');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.on('show hide', function (e) {
+          if (e.control === self$$1.menu) {
+            self$$1.activeMenu(e.type === 'show');
+            self$$1.classes.toggle('opened', e.type === 'show');
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.aria('expanded', e.type === 'show');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.aria('expanded', e.type === 'show');
</ins><span class="cx" style="display: block; padding: 0 10px">         }).fire('show');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.show();
-      self.menu.layoutRect({ w: self.layoutRect().w });
-      self.menu.repaint();
-      self.menu.moveRel(self.getEl(), self.isRtl() ? [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.show();
+      self$$1.menu.layoutRect({ w: self$$1.layoutRect().w });
+      self$$1.menu.repaint();
+      self$$1.menu.moveRel(self$$1.getEl(), self$$1.isRtl() ? [
</ins><span class="cx" style="display: block; padding: 0 10px">         'br-tr',
</span><span class="cx" style="display: block; padding: 0 10px">         'tr-br'
</span><span class="cx" style="display: block; padding: 0 10px">       ] : [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9377,17 +8968,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">         'bl-tl',
</span><span class="cx" style="display: block; padding: 0 10px">         'tl-bl'
</span><span class="cx" style="display: block; padding: 0 10px">       ]);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.fire('showmenu');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.fire('showmenu');
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     hideMenu: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (self.menu) {
-        self.menu.items().each(function (item) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (self$$1.menu) {
+        self$$1.menu.items().each(function (item) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (item.hideMenu) {
</span><span class="cx" style="display: block; padding: 0 10px">             item.hideMenu();
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.hide();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.hide();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     activeMenu: function (state) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9394,11 +8985,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this.classes.toggle('active', state);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, id = self._id, prefix = self.classPrefix;
-      var icon = self.settings.icon, image;
-      var text = self.state.get('text');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;
+      var icon = self$$1.settings.icon, image;
+      var text = self$$1.state.get('text');
</ins><span class="cx" style="display: block; padding: 0 10px">       var textHtml = '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      image = self.settings.image;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      image = self$$1.settings.image;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (image) {
</span><span class="cx" style="display: block; padding: 0 10px">         icon = 'none';
</span><span class="cx" style="display: block; padding: 0 10px">         if (typeof image !== 'string') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9409,30 +9000,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">         image = '';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('btn-has-text');
-        textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('btn-has-text');
+        textHtml = '<span class="' + prefix + 'txt">' + self$$1.encode(text) + '</span>';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
-      self.aria('role', self.parent() instanceof MenuBar ? 'menuitem' : 'button');
-      return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1" aria-labelledby="' + id + '">' + '<button id="' + id + '-open" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      icon = self$$1.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
+      self$$1.aria('role', self$$1.parent() instanceof MenuBar ? 'menuitem' : 'button');
+      return '<div id="' + id + '" class="' + self$$1.classes + '" tabindex="-1" aria-labelledby="' + id + '">' + '<button id="' + id + '-open" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.on('click', function (e) {
-        if (e.control === self && isChildOf$1(e.target, self.getEl())) {
-          self.focus();
-          self.showMenu(!e.aria);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.on('click', function (e) {
+        if (e.control === self$$1 && isChildOf$1(e.target, self$$1.getEl())) {
+          self$$1.focus();
+          self$$1.showMenu(!e.aria);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (e.aria) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.menu.items().filter(':visible')[0].focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.menu.items().filter(':visible')[0].focus();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('mouseenter', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('mouseenter', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var overCtrl = e.control;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var parent = self.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var parent$$1 = self$$1.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">         var hasVisibleSiblingMenu;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (overCtrl && parent && overCtrl instanceof MenuButton && overCtrl.parent() === parent) {
-          parent.items().filter('MenuButton').each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (overCtrl && parent$$1 && overCtrl instanceof MenuButton && overCtrl.parent() === parent$$1) {
+          parent$$1.items().filter('MenuButton').each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (ctrl.hideMenu && ctrl !== overCtrl) {
</span><span class="cx" style="display: block; padding: 0 10px">               if (ctrl.menu && ctrl.menu.visible()) {
</span><span class="cx" style="display: block; padding: 0 10px">                 hasVisibleSiblingMenu = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9446,17 +9037,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.state.on('change:menu', function () {
-        if (self.menu) {
-          self.menu.remove();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.state.on('change:menu', function () {
+        if (self$$1.menu) {
+          self$$1.menu.remove();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu = null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu = null;
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       this._super();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10131,8 +9722,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.orientation === 'v') {
</span><span class="cx" style="display: block; padding: 0 10px">         self.classes.add('vertical');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._minValue = $_d02u5u17hjfuw8wey.isNumber(settings.minValue) ? settings.minValue : 0;
-      self._maxValue = $_d02u5u17hjfuw8wey.isNumber(settings.maxValue) ? settings.maxValue : 100;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self._minValue = isNumber$1(settings.minValue) ? settings.minValue : 0;
+      self._maxValue = isNumber$1(settings.maxValue) ? settings.maxValue : 100;
</ins><span class="cx" style="display: block; padding: 0 10px">       self._initValue = self.state.get('value');
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10245,11 +9836,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       role: 'button'
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     repaint: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var elm = self.getEl();
-      var rect = self.layoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var elm = self$$1.getEl();
+      var rect = self$$1.layoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">       var mainButtonElm, menuButtonElm;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">       mainButtonElm = elm.firstChild;
</span><span class="cx" style="display: block; padding: 0 10px">       menuButtonElm = elm.lastChild;
</span><span class="cx" style="display: block; padding: 0 10px">       global$7(mainButtonElm).css({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10257,20 +9848,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">         height: rect.h - 2
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       global$7(menuButtonElm).css({ height: rect.h - 2 });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     activeMenu: function (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      global$7(self.getEl().lastChild).toggleClass(self.classPrefix + 'active', state);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      global$7(self$$1.getEl().lastChild).toggleClass(self$$1.classPrefix + 'active', state);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var id = self._id;
-      var prefix = self.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var id = self$$1._id;
+      var prefix = self$$1.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">       var image;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var icon = self.state.get('icon');
-      var text = self.state.get('text');
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var icon = self$$1.state.get('icon');
+      var text = self$$1.state.get('text');
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var textHtml = '', ariaPressed;
</span><span class="cx" style="display: block; padding: 0 10px">       image = settings.image;
</span><span class="cx" style="display: block; padding: 0 10px">       if (image) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10284,15 +9875,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       icon = settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
</span><span class="cx" style="display: block; padding: 0 10px">       if (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('btn-has-text');
-        textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('btn-has-text');
+        textHtml = '<span class="' + prefix + 'txt">' + self$$1.encode(text) + '</span>';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed="' + settings.active + '"' : '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return '<div id="' + id + '" class="' + self.classes + '" role="button"' + ariaPressed + ' tabindex="-1">' + '<button type="button" hidefocus="1" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '<button type="button" class="' + prefix + 'open" hidefocus="1" tabindex="-1">' + (self._menuBtnText ? (icon ? '\xA0' : '') + self._menuBtnText : '') + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return '<div id="' + id + '" class="' + self$$1.classes + '" role="button"' + ariaPressed + ' tabindex="-1">' + '<button type="button" hidefocus="1" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '<button type="button" class="' + prefix + 'open" hidefocus="1" tabindex="-1">' + (self$$1._menuBtnText ? (icon ? '\xA0' : '') + self$$1._menuBtnText : '') + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, onClickHandler = self.settings.onclick;
-      self.on('click', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, onClickHandler = self$$1.settings.onclick;
+      self$$1.on('click', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var node = e.target;
</span><span class="cx" style="display: block; padding: 0 10px">         if (e.control === this) {
</span><span class="cx" style="display: block; padding: 0 10px">           while (node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10307,8 +9898,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      delete self.settings.onclick;
-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      delete self$$1.settings.onclick;
+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10413,43 +10004,43 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var TextBox = Widget.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      self.classes.add('textbox');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      self$$1.classes.add('textbox');
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.multiline) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('multiline');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('multiline');
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.on('keydown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.on('keydown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var rootControl;
</span><span class="cx" style="display: block; padding: 0 10px">           if (e.keyCode === 13) {
</span><span class="cx" style="display: block; padding: 0 10px">             e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.parents().reverse().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.parents().reverse().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">               if (ctrl.toJSON) {
</span><span class="cx" style="display: block; padding: 0 10px">                 rootControl = ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">                 return false;
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.fire('submit', { data: rootControl.toJSON() });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.fire('submit', { data: rootControl.toJSON() });
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.on('keyup', function (e) {
-          self.state.set('value', e.target.value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.on('keyup', function (e) {
+          self$$1.state.set('value', e.target.value);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     repaint: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var style, rect, borderBox, borderW, borderH = 0, lastRepaintRect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      style = self.getEl().style;
-      rect = self._layoutRect;
-      lastRepaintRect = self._lastRepaintRect || {};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      style = self$$1.getEl().style;
+      rect = self$$1._layoutRect;
+      lastRepaintRect = self$$1._lastRepaintRect || {};
</ins><span class="cx" style="display: block; padding: 0 10px">       var doc = document;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         style.lineHeight = rect.h - borderH + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      borderBox = self.borderBox;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      borderBox = self$$1.borderBox;
</ins><span class="cx" style="display: block; padding: 0 10px">       borderW = borderBox.left + borderBox.right + 8;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      borderH = borderBox.top + borderBox.bottom + (self.settings.multiline ? 8 : 0);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      borderH = borderBox.top + borderBox.bottom + (self$$1.settings.multiline ? 8 : 0);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (rect.x !== lastRepaintRect.x) {
</span><span class="cx" style="display: block; padding: 0 10px">         style.left = rect.x + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.x = rect.x;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10466,16 +10057,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">         style.height = rect.h - borderH + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.h = rect.h;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._lastRepaintRect = lastRepaintRect;
-      self.fire('repaint', {}, false);
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._lastRepaintRect = lastRepaintRect;
+      self$$1.fire('repaint', {}, false);
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var attrs, elm;
</span><span class="cx" style="display: block; padding: 0 10px">       attrs = {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        id: self._id,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        id: self$$1._id,
</ins><span class="cx" style="display: block; padding: 0 10px">         hidefocus: '1'
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       global$4.each([
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10492,10 +10083,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         'placeholder',
</span><span class="cx" style="display: block; padding: 0 10px">         'required',
</span><span class="cx" style="display: block; padding: 0 10px">         'multiple'
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      ], function (name) {
-        attrs[name] = settings[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      ], function (name$$1) {
+        attrs[name$$1] = settings[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.disabled()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.disabled()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         attrs.disabled = 'disabled';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.subtype) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10502,8 +10093,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         attrs.type = settings.subtype;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       elm = funcs.create(settings.multiline ? 'textarea' : 'input', attrs);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      elm.value = self.state.get('value');
-      elm.className = self.classes;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      elm.value = self$$1.state.get('value');
+      elm.className = self$$1.classes.toString();
</ins><span class="cx" style="display: block; padding: 0 10px">       return elm.outerHTML;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     value: function (value) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10517,25 +10108,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.state.get('value');
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.getEl().value = self.state.get('value');
-      self._super();
-      self.$el.on('change', function (e) {
-        self.state.set('value', e.target.value);
-        self.fire('change', e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.getEl().value = self$$1.state.get('value');
+      self$$1._super();
+      self$$1.$el.on('change', function (e) {
+        self$$1.state.set('value', e.target.value);
+        self$$1.fire('change', e);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.state.on('change:value', function (e) {
-        if (self.getEl().value !== e.value) {
-          self.getEl().value = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.state.on('change:value', function (e) {
+        if (self$$1.getEl().value !== e.value) {
+          self$$1.getEl().value = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:disabled', function (e) {
-        self.getEl().disabled = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:disabled', function (e) {
+        self$$1.getEl().disabled = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       this.$el.off();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10547,18 +10138,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       Selector: Selector,
</span><span class="cx" style="display: block; padding: 0 10px">       Collection: Collection$2,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      ReflowQueue: $_13g7tw17vjfuw8wgk,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      ReflowQueue: $_cqjgb518wjjgwek2f,
</ins><span class="cx" style="display: block; padding: 0 10px">       Control: Control$1,
</span><span class="cx" style="display: block; padding: 0 10px">       Factory: global$11,
</span><span class="cx" style="display: block; padding: 0 10px">       KeyboardNavigation: KeyboardNavigation,
</span><span class="cx" style="display: block; padding: 0 10px">       Container: Container,
</span><span class="cx" style="display: block; padding: 0 10px">       DragHelper: DragHelper,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Scrollable: $_7kg51q189jfuw8wiq,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Scrollable: $_8woeth19ajjgwek4b,
</ins><span class="cx" style="display: block; padding: 0 10px">       Panel: Panel,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Movable: $_cn53y617xjfuw8wgp,
-      Resizable: $_f8jegf18ajfuw8wit,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Movable: $_8zu82i18yjjgwek2l,
+      Resizable: $_20hy1119bjjgwek4f,
</ins><span class="cx" style="display: block; padding: 0 10px">       FloatPanel: FloatPanel,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Window: Window,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Window: Window$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       MessageBox: MessageBox,
</span><span class="cx" style="display: block; padding: 0 10px">       Tooltip: Tooltip,
</span><span class="cx" style="display: block; padding: 0 10px">       Widget: Widget,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10583,7 +10174,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       FitLayout: FitLayout,
</span><span class="cx" style="display: block; padding: 0 10px">       FlexLayout: FlexLayout,
</span><span class="cx" style="display: block; padding: 0 10px">       FlowLayout: FlowLayout,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      FormatControls: $_5jc0r41adjfuw8wpt,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      FormatControls: $_gg6ikw1bejjgwekc5,
</ins><span class="cx" style="display: block; padding: 0 10px">       GridLayout: GridLayout,
</span><span class="cx" style="display: block; padding: 0 10px">       Iframe: Iframe,
</span><span class="cx" style="display: block; padding: 0 10px">       InfoBox: InfoBox,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10631,9 +10222,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   Api.appendTo(window.tinymce ? window.tinymce : {});
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('inlite', function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var panel = create$3();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_5jc0r41adjfuw8wpt.setup(editor);
-    $_cb0m4418cjfuw8wiy.addToEditor(editor, panel);
-    return $_5lg8ed16sjfuw8wdm.get(editor, panel);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_gg6ikw1bejjgwekc5.setup(editor);
+    $_epdxt419djjgwek4l.addToEditor(editor, panel);
+    return $_7y4x3k17sjjgwejyw.get(editor, panel);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Theme () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcethemesinlitethememinjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.min.js  2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.min.js    2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var u,t,e,n,i,r,o=tinymce.util.Tools.resolve("tinymce.ThemeManager"),h=tinymce.util.Tools.resolve("tinymce.Env"),v=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.util.Delay"),s=function(t){return t.reduce(function(t,e){return Array.isArray(e)?t.concat(s(e)):t.concat(e)},[])},a={flatten:s},l=function(t,e){for(var n=0;n<e.length;n++){var i=(0,e[n])(t);if(i)return i}return null},d=function(t,e){return{id:t,rect:e}},f=function(t){return{x:t.left,y:t.top,w:t.width,h:t.height}},m=function(t){return{left:t.x,top:t.y,width:t.w,height:t.h,right:t.x+t.w,bottom:t.y+t.h}},g=function(t){var e=v.DOM.getViewPort();return{x:t.x+e.x,y:t.y+e.y,w:t.w,h:t.h}},p=function(t){var e=t.getBoundingClientRect();return g({x:e.left,y:e.top,w:Math.max(t.clientWidth,t.offsetWidth),h:Math.max(t.client
 Height,t.offsetHeight)})},y=function(t,e){return p(e)},b=function(t){return p(t.getContentAreaContainer()||t.getBody())},x=function(t){var e=t.selection.getBoundingClientRect();return e?g(f(e)):null},w=function(n,i){return function(t){for(var e=0;e<i.length;e++)if(i[e].predicate(n))return d(i[e].id,y(t,n));return null}},_=function(i,r){return function(t){for(var e=0;e<i.length;e++)for(var n=0;n<r.length;n++)if(r[n].predicate(i[e]))return d(r[n].id,y(t,i[e]));return null}},R=tinymce.util.Tools.resolve("tinymce.util.Tools"),C=function(t,e){return{id:t,predicate:e}},k=function(t){return R.map(t,function(t){return C(t.id,t.predicate)})},E=function(e){return function(t){return t.selection.isCollapsed()?null:d(e,x(t))}},H=function(i,r){return function(t){var e,n=t.schema.getTextBlockElements();for(e=0;e<i.length;e++)if("TABLE"===i[e].nodeName)return null;for(e=0;e<i.length;e++)if(i[e].nodeName in n)return t.dom.isEmpty(i[e])?d(r,x(t)):null;return null}},
 S=function(t){t.fire("SkinLoaded")},M=function(t){return t.fire("BeforeRenderUI")},T=tinymce.util.Tools.resolve("tinymce.EditorManager"),W=function(e){return function(t){return typeof t===e}},P=function(t){return Array.isArray(t)},N=function(t){return W("string")(t)},O=function(t){return W("number")(t)},D=function(t){return W("boolean")(t)},A=function(t){return W("function")(t)},B=(W("object"),P),L=function(t,e){if(e(t))return!0;throw new Error("Default value doesn't match requested type.")},I=function(r){return function(t,e,n){var i=t.settings;return L(n,r),e in i&&r(i[e])?i[e]:n}},z={getStringOr:I(N),getBoolOr:I(D),getNumberOr:I(O),getHandlerOr:I(A),getToolbarItemsOr:(u=B,function(t,e,n){var i,r,o,s,a,l=e in t.settings?t.settings[e]:n;return L(n,u),r=n,B(i=l)?i:N(i)?"string"==typeof(s=i)?(a=/[ ,]/,s.split(a).filter(function(t){return 0<t.length})):s:D(i)?(o=r,!1===i?[]:o)
 :r})},F=tinymce.util.Tools.resolve("tinymce.geom.Rect"),V=function(t,e){return{rect:t,position:e}},q=function(t,e){return{x:e.x,y:e.y,w:t.w,h:t.h}},U=function(t,e,n,i,r){var o,s,a,l={x:i.x,y:i.y,w:i.w+(i.w<r.w+n.w?r.w:0),h:i.h+(i.h<r.h+n.h?r.h:0)};return o=F.findBestRelativePosition(r,n,l,t),n=F.clamp(n,l),o?(s=F.relativePosition(r,n,o),a=q(r,s),V(a,o)):(n=F.intersect(l,n))?((o=F.findBestRelativePosition(r,n,l,e))?(s=F.relativePosition(r,n,o),a=q(r,s)):a=q(r,n),V(a,o)):null},j=function(t,e,n){return U(["cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr"],t,e,n)},$=function(t,e,n){return U(["tc-bc","bc-tc","tl-bl","bl-tl","tr-br","br-tr","cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr","cr-cl"],t,e,n)},Y=function(t,e,n,i){var r;return"function"==typeof t?(r=t({elementRect:m(e),contentAreaRect:m(n),panelRect:
 m(i)}),f(r)):i},X=function(t){return t.panelRect},J=function(t){return z.getToolbarItemsOr(t,"selection_toolbar",["bold","italic","|","quicklink","h2","h3","blockquote"])},G=function(t){return z.getToolbarItemsOr(t,"insert_toolbar",["quickimage","quicktable"])},K=function(t){return z.getHandlerOr(t,"inline_toolbar_position_handler",X)},Z=function(t){var e,n,i,r,o=t.settings;return o.skin_url?(i=t,r=o.skin_url,i.documentBaseURI.toAbsolute(r)):(e=o.skin,n=T.baseURL+"/skins/",e?n+e:n+"lightgray")},Q=function(t){return!1===t.settings.skin},tt=function(i,r){var t=Z(i),e=function(){var t,e,n;e=r,n=function(){t._skinLoaded=!0,S(t),e()},(t=i).initialized?n():t.on("init",n)};Q(i)?e():(v.DOM.styleSheetLoader.load(t+"/skin.min.css",e),i.contentCSS.push(t+"/content.inline.min.css"))},et=function(t){var e,n,i,r,o=t.contextToolba
 rs;return a.flatten([o||[],(e=t,n="img",i="image",r="alignleft aligncenter alignright",{predicate:function(t){return e.dom.is(t,n)},id:i,items:r})])},nt=function(t,e){var n,i,r,o,s;return s=(o=t).selection.getNode(),i=o.dom.getParents(s,"*"),r=k(e),(n=l(t,[w(i[0],r),E("text"),H(i,"insert"),_(i,r)]))&&n.rect?n:null},it=function(i,r){return function(){var t,e,n;i.removed||(n=i,document.activeElement!==n.getBody())||(t=et(i),(e=nt(i,t))?r.show(i,e.id,e.rect,t):r.hide())}},rt=function(t,e){var n,i,r,o,s,a=c.throttle(it(t,e),0),l=c.throttle((r=it(n=t,i=e),function(){n.removed||i.inForm()||r()}),0),u=(o=t,s=e,function(){var t=et(o),e=nt(o,t);e&&s.reposition(o,e.id,e.rect)});t.on("blur hide ObjectResizeStart",e.hide),t.on("click",a),t.on("nodeChange mouseup",l),t.on("ResizeEditor keyup",a),t.on("ResizeWindow",u),v.DOM.bind(h.container,"scroll",u),t.on(&quo
 t;remove",function(){v.DOM.unbind(h.container,"scroll",u),e.remove()}),t.shortcuts.add("Alt+F10,F10","",e.focus)},ot=function(t,e){return tt(t,function(){var n,i;rt(t,e),i=e,(n=t).shortcuts.remove("meta+k"),n.shortcuts.add("meta+k","",function(){var t=et(n),e=l(n,[E("quicklink")]);e&&i.show(n,e.id,e.rect,t)})}),{}},st=function(t,e){return t.inline?ot(t,e):function(t){throw new Error(t)}("inlite theme only supports inline mode.")},at=function(t){return function(){return t}},lt={noop:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e]},noarg:function(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return n()}},compose:function(n,i){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return n(i.apply(null,arguments))}},constant:at,identity:function(t){return t},tripleEquals:function(t,e){return t===e},curry:functio
 n(o){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];for(var s=new Array(arguments.length-1),n=1;n<arguments.length;n++)s[n-1]=arguments[n];return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];var r=s.concat(n);return o.apply(null,r)}},not:function(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(null,arguments)}},die:function(t){return function(){throw new Error(t)}},apply:function(t){return t()},call:function(t){t()},never:at(!1),always:at(!0)},ut=lt.never,ct=lt.always,dt=function(){return ft},ft=(i={fold:function(t,e){return t()},is:ut,isSome:ut,isNone:ct,getOr:n=function(t){return t},getOrThunk:e=function(t){return t()},getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},or:n,orThunk:e,map:dt,ap:dt,each:function(){},bind:dt,flatten:dt,exists:ut,forall:ct,filter:dt,equals:t=funct
 ion(t){return t.isNone()},equals_:t,toArray:function(){return[]},toString:lt.constant("none()")},Object.freeze&&Object.freeze(i),i),ht=function(n){var t=function(){return n},e=function(){return r},i=function(t){return t(n)},r={fold:function(t,e){return e(n)},is:function(t){return n===t},isSome:ct,isNone:ut,getOr:t,getOrThunk:t,getOrDie:t,or:e,orThunk:e,map:function(t){return ht(t(n))},ap:function(t){return t.fold(dt,function(t){return ht(t(n))})},each:function(t){t(n)},bind:i,flatten:t,exists:i,forall:i,filter:function(t){return t(n)?r:ft},equals:function(t){return t.is(n)},equals_:function(t,e){return t.fold(ut,function(t){return e(n,t)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return r},mt={some:ht,none:dt,from:function(t){return null===t||t===undefined?ft:ht(t)}},gt=function(e){return function(t){return function(t){if(null===t)return"null";var e=typeof t;return"object"===e&&Array.pr
 ototype.isPrototypeOf(t)?"array":"object"===e&&String.prototype.isPrototypeOf(t)?"string":e}(t)===e}},pt={isString:gt("string"),isObject:gt("object"),isArray:gt("array"),isNull:gt("null"),isBoolean:gt("boolean"),isUndefined:gt("undefined"),isFunction:gt("function"),isNumber:gt("number")},vt=(r=Array.prototype.indexOf)===undefined?function(t,e){return Ct(t,e)}:function(t,e){return r.call(t,e)},yt=function(t,e){return-1<vt(t,e)},bt=function(t,e){for(var n=t.length,i=new Array(n),r=0;r<n;r++){var o=t[r];i[r]=e(o,r,t)}return i},xt=function(t,e){for(var n=0,i=t.length;n<i;n++)e(t[n],n,t)},wt=function(t,e){for(var n=t.length-1;0<=n;n--)e(t[n],n,t)},_t=function(t,e){for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i];e(o,i,t)&&n.push(o)}return n},Rt=function(t,e){for(var n=0,i=t.length;n<i;n++)if(e(t[n],n,t))return mt.some(n);return mt.none()},Ct=funct
 ion(t,e){for(var n=0,i=t.length;n<i;++n)if(t[n]===e)return n;return-1},kt=Array.prototype.push,Et=function(t){for(var e=[],n=0,i=t.length;n<i;++n){if(!Array.prototype.isPrototypeOf(t[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+t);kt.apply(e,t[n])}return e},Ht=function(t,e){for(var n=0,i=t.length;n<i;++n)if(!0!==e(t[n],n,t))return!1;return!0},St=Array.prototype.slice,Mt=pt.isFunction(Array.from)?Array.from:function(t){return St.call(t)},Tt={map:bt,each:xt,eachr:wt,partition:function(t,e){for(var n=[],i=[],r=0,o=t.length;r<o;r++){var s=t[r];(e(s,r,t)?n:i).push(s)}return{pass:n,fail:i}},filter:_t,groupBy:function(t,e){if(0===t.length)return[];for(var n=e(t[0]),i=[],r=[],o=0,s=t.length;o<s;o++){var a=t[o],l=e(a);l!==n&&(i.push(r),r=[]),n=l,r.push(a)}return 0!==r.length&&i.push(r),i},indexOf:function(t,e){var n=vt(t,e);return-1===n?mt.none():mt.some(n)},foldr:function(t,e,n){return wt(t,function(t){n=e(n,t)}),n
 },foldl:function(t,e,n){return xt(t,function(t){n=e(n,t)}),n},find:function(t,e){for(var n=0,i=t.length;n<i;n++){var r=t[n];if(e(r,n,t))return mt.some(r)}return mt.none()},findIndex:Rt,flatten:Et,bind:function(t,e){var n=bt(t,e);return Et(n)},forall:Ht,exists:function(t,e){return Rt(t,e).isSome()},contains:yt,equal:function(t,n){return t.length===n.length&&Ht(t,function(t,e){return t===n[e]})},reverse:function(t){var e=St.call(t,0);return e.reverse(),e},chunk:function(t,e){for(var n=[],i=0;i<t.length;i+=e){var r=t.slice(i,i+e);n.push(r)}return n},difference:function(t,e){return _t(t,function(t){return!yt(e,t)})},mapToObject:function(t,e){for(var n={},i=0,r=t.length;i<r;i++){var o=t[i];n[String(o)]=e(o,i)}return n},pure:function(t){return[t]},sort:function(t,e){var n=St.call(t,0);return n.sort(e),n},range:function(t,e){for(var n=[],i=0;i<t;i++)n.push(e(i));return n},head:function(t){return 0===t.length?mt.none():mt.some(t[0])},last:function(t){return 0===t.length?
 mt.none():mt.some(t[t.length-1])},from:Mt},Wt=0,Pt={id:function(){return"mceu_"+Wt++},create:function(t,e,n){var i=document.createElement(t);return v.DOM.setAttribs(i,e),"string"==typeof n?i.innerHTML=n:R.each(n,function(t){t.nodeType&&i.appendChild(t)}),i},createFragment:function(t){return v.DOM.createFragment(t)},getWindowSize:function(){return v.DOM.getViewPort()},getSize:function(t){var e,n;if(t.getBoundingClientRect){var i=t.getBoundingClientRect();e=Math.max(i.width||i.right-i.left,t.offsetWidth),n=Math.max(i.height||i.bottom-i.bottom,t.offsetHeight)}else e=t.offsetWidth,n=t.offsetHeight;return{width:e,height:n}},getPos:function(t,e){return v.DOM.getPos(t,e||Pt.getContainer())},getContainer:function(){return h.container?h.container:document.body},getViewPort:function(t){return v.DOM.getViewPort(t)},get:function(t){return document.getElementById(t)},addClass:function(t,e){return v.DOM.addClass(t,e)},removeClass:function(t,e){return v.DOM.removeClass(
 t,e)},hasClass:function(t,e){return v.DOM.hasClass(t,e)},toggleClass:function(t,e,n){return v.DOM.toggleClass(t,e,n)},css:function(t,e,n){return v.DOM.setStyle(t,e,n)},getRuntimeStyle:function(t,e){return v.DOM.getStyle(t,e,!0)},on:function(t,e,n,i){return v.DOM.bind(t,e,n,i)},off:function(t,e,n){return v.DOM.unbind(t,e,n)},fire:function(t,e,n){return v.DOM.fire(t,e,n)},innerHtml:function(t,e){v.DOM.setHTML(t,e)}},Nt=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),Ot=tinymce.util.Tools.resolve("tinymce.util.Class"),Dt=tinymce.util.Tools.resolve("tinymce.util.EventDispatcher"),At=function(t){var e;if(t)return"number"==typeof t?{top:t=t||0,left:t,bottom:t,right:t}:(1===(e=(t=t.split(" ")).length)?t[1]=t[2]=t[3]=t[0]:2===e?(t[2]=t[0],t[3]=t[1]):3===e&&(t[3]=t[1]),{top:parseInt(t[0],10)||0,right:parseInt(t[1],10)||0,bottom:parseInt(t[2],10)||0,left:parseInt(t[3],10)||0})},Bt=function(i,t){function e(t){var e=parseFloat(functio
 n(t){var e=i.ownerDocument.defaultView;if(e){var n=e.getComputedStyle(i,null);return n?(t=t.replace(/[A-Z]/g,function(t){return"-"+t}),n.getPropertyValue(t)):null}return i.currentStyle[t]}(t));return isNaN(e)?0:e}return{top:e(t+"TopWidth"),right:e(t+"RightWidth"),bottom:e(t+"BottomWidth"),left:e(t+"LeftWidth")}};function Lt(){}function It(t){this.cls=[],this.cls._map={},this.onchange=t||Lt,this.prefix=""}R.extend(It.prototype,{add:function(t){return t&&!this.contains(t)&&(this.cls._map[t]=!0,this.cls.push(t),this._change()),this},remove:function(t){if(this.contains(t)){var e=void 0;for(e=0;e<this.cls.length&&this.cls[e]!==t;e++);this.cls.splice(e,1),delete this.cls._map[t],this._change()}return this},toggle:function(t,e){var n=this.contains(t);return n!==e&&(n?this.remove(t):this.add(t),this._change()),this},contains:function(t){return!!this.cls._map[t]},_change:function(){delete this.clsV
 alue,this.onchange.call(this)}}),It.prototype.toString=function(){var t;if(this.clsValue)return this.clsValue;t="";for(var e=0;e<this.cls.length;e++)0<e&&(t+=" "),t+=this.prefix+this.cls[e];return t};var zt,Ft,Vt,qt=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,Ut=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,jt=/^\s*|\s*$/g,$t=Ot.extend({init:function(t){var o=this.match;function s(t,e,n){var i;function r(t){t&&e.push(t)}return r(function(e){if(e)return e=e.toLowerCase(),function(t){return"*"===e||t.type===e}}((i=qt.exec(t.replace(jt,"")))[1])),r(function(e){if(e)return function(t){return t._name===e}}(i[2])),r(function(n){if(n)return n=n.split("."),function(t){for(var e=n.length;e--;)if(!t.classes.contains(n[e]))return!1;return!0}}(i[3])),
 r(function(n,i,r){if(n)return function(t){var e=t[n]?t[n]():"";return i?"="===i?e===r:"*="===i?0<=e.indexOf(r):"~="===i?0<=(" "+e+" ").indexOf(" "+r+" "):"!="===i?e!==r:"^="===i?0===e.indexOf(r):"$="===i&&e.substr(e.length-r.length)===r:!!r}}(i[4],i[5],i[6])),r(function(i){var e;if(i)return(i=/(?:not\((.+)\))|(.+)/i.exec(i))[1]?(e=a(i[1],[]),function(t){return!o(t,e)}):(i=i[2],function(t,e,n){return"first"===i?0===e:"last"===i?e===n-1:"even"===i?e%2==0:"odd"===i?e%2==1:!!t[i]&&t[i]()})}(i[7])),e.pseudo=!!i[7],e.direct=n,e}function a(t,e){var n,i,r,o=[];do{if(Ut.exec(""),(i=Ut.exec(t))&&(t=i[3],o.push(i[1]),i[2])){n=i[3];break}}while(i);for(n&&a(n,e),t=[],r=0;r<o.length;r++)">"!==o[r]&&t.push(s(o[r],[],">"===o[r-1]));return e.push(t),e}this._selectors=a
 (t,[])},match:function(t,e){var n,i,r,o,s,a,l,u,c,d,f,h,m;for(n=0,i=(e=e||this._selectors).length;n<i;n++){for(m=t,h=0,r=(o=(s=e[n]).length)-1;0<=r;r--)for(u=s[r];m;){if(u.pseudo)for(c=d=(f=m.parent().items()).length;c--&&f[c]!==m;);for(a=0,l=u.length;a<l;a++)if(!u[a](m,c,d)){a=l+1;break}if(a===l){h++;break}if(r===o-1)break;m=m.parent()}if(h===o)return!0}return!1},find:function(t){var e,n,u=[],i=this._selectors;function c(t,e,n){var i,r,o,s,a,l=e[n];for(i=0,r=t.length;i<r;i++){for(a=t[i],o=0,s=l.length;o<s;o++)if(!l[o](a,i,r)){o=s+1;break}if(o===s)n===e.length-1?u.push(a):a.items&&c(a.items(),e,n+1);else if(l.direct)return;a.items&&c(a.items(),e,n)}}if(t.items){for(e=0,n=i.length;e<n;e++)c(t.items(),i[e],0);1<n&&(u=function(t){for(var e,n=[],i=t.length;i--;)(e=t[i]).__checked||(n.push(e),e.__checked=1);for(i=n.length;i--;)delete n[i].__checked;return n}(u))}return zt||(zt=$t.Collection),new zt(u)}}),Yt=Array.prototype.push,Xt=Arra
 y.prototype.slice;Vt={length:0,init:function(t){t&&this.add(t)},add:function(t){return R.isArray(t)?Yt.apply(this,t):t instanceof Ft?this.add(t.toArray()):Yt.call(this,t),this},set:function(t){var e,n=this,i=n.length;for(n.length=0,n.add(t),e=n.length;e<i;e++)delete n[e];return n},filter:function(e){var t,n,i,r,o=[];for("string"==typeof e?(e=new $t(e),r=function(t){return e.match(t)}):r=e,t=0,n=this.length;t<n;t++)r(i=this[t])&&o.push(i);return new Ft(o)},slice:function(){return new Ft(Xt.apply(this,arguments))},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},each:function(t){return R.each(this,t),this},toArray:function(){return R.toArray(this)},indexOf:function(t){for(var e=this.length;e--&&this[e]!==t;);return e},reverse:function(){return new Ft(R.toArray(this).reverse())},hasClass:function(t){return!!this[0]&&this[0].classes.contains(t)},prop:function(e,n){var t;return n!==undefined?(this.each(function(t){t[e]&&amp
 ;t[e](n)}),this):(t=this[0])&&t[e]?t[e]():void 0},exec:function(e){var n=R.toArray(arguments).slice(1);return this.each(function(t){t[e]&&t[e].apply(t,n)}),this},remove:function(){for(var t=this.length;t--;)this[t].remove();return this},addClass:function(e){return this.each(function(t){t.classes.add(e)})},removeClass:function(e){return this.each(function(t){t.classes.remove(e)})}},R.each("fire on off show hide append prepend before after reflow".split(" "),function(n){Vt[n]=function(){var e=R.toArray(arguments);return this.each(function(t){n in t&&t[n].apply(t,e)}),this}}),R.each("text name disabled active selected checked visible parent value data".split(" "),function(e){Vt[e]=function(t){return this.prop(e,t)}}),Ft=Ot.extend(Vt);var Jt=$t.Collection=Ft,Gt=function(t){this.create=t.create};Gt.create=function(r,o){return new Gt({create:function(e,n){var i,t=function(t){e.set(n,t.value)};return e.on("change:"+n
 ,function(t){r.set(o,t.value)}),r.on("change:"+o,t),(i=e._bindings)||(i=e._bindings=[],e.on("destroy",function(){for(var t=i.length;t--;)i[t]()})),i.push(function(){r.off("change:"+o,t)}),r.get(o)}})};var Kt=tinymce.util.Tools.resolve("tinymce.util.Observable");function Zt(t){return 0<t.nodeType}var Qt,te,ee=Ot.extend({Mixins:[Kt],init:function(t){var e,n;for(e in t=t||{})(n=t[e])instanceof Gt&&(t[e]=n.create(this,e));this.data=t},set:function(e,n){var i,r,o=this.data[e];if(n instanceof Gt&&(n=n.create(this,e)),"object"==typeof e){for(i in e)this.set(i,e[i]);return this}return function t(e,n){var i,r;if(e===n)return!0;if(null===e||null===n)return e===n;if("object"!=typeof e||"object"!=typeof n)return e===n;if(R.isArray(n)){if(e.length!==n.length)return!1;for(i=e.length;i--;)if(!t(e[i],n[i]))return!1}if(Zt(e)||Zt(n))return e===n;for(i in r={},n){if(!t(e[i],n[i]))return!1;r[i]=!0}for(i in e)if(!r[
 i]&&!t(e[i],n[i]))return!1;return!0}(o,n)||(this.data[e]=n,r={target:this,name:e,value:n,oldValue:o},this.fire("change:"+e,r),this.fire("change",r)),this},get:function(t){return this.data[t]},has:function(t){return t in this.data},bind:function(t){return Gt.create(this,t)},destroy:function(){this.fire("destroy")}}),ne={},ie={add:function(t){var e=t.parent();if(e){if(!e._layout||e._layout.isNative())return;ne[e._id]||(ne[e._id]=e),Qt||(Qt=!0,c.requestAnimationFrame(function(){var t,e;for(t in Qt=!1,ne)(e=ne[t]).state.get("rendered")&&e.reflow();ne={}},document.body))}},remove:function(t){ne[t._id]&&delete ne[t._id]}},re=function(t){return t?t.getRoot().uiContainer:null},oe={getUiContainerDelta:function(t){var e=re(t);if(e&&"static"!==v.DOM.getStyle(e,"position",!0)){var n=v.DOM.getPos(e),i=e.scrollLeft-n.x,r=e.scrollTop-n.y;return mt.some({x:i,y:r})}return mt.none()},setUiContainer:function(t,
 e){var n=v.DOM.select(t.settings.ui_container)[0];e.getRoot().uiContainer=n},getUiContainer:re,inheritUiContainer:function(t,e){return e.uiContainer=re(t)}},se="onmousewheel"in document,ae=!1,le=0,ue={Statics:{classPrefix:"mce-"},isRtl:function(){return te.rtl},classPrefix:"mce-",init:function(e){var t,n,i=this;function r(t){var e;for(t=t.split(" "),e=0;e<t.length;e++)i.classes.add(t[e])}i.settings=e=R.extend({},i.Defaults,e),i._id=e.id||"mceu_"+le++,i._aria={role:e.role},i._elmCache={},i.$=Nt,i.state=new ee({visible:!0,active:!1,disabled:!1,value:""}),i.data=new ee(e.data),i.classes=new It(function(){i.state.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,(t=e.classes)&&(i.Defaults&&(n=i.Defaults.classes)&&t!==n&&r(n),r(t)),R.each("title text name visible disabled active value".split(" "),function(t){t in e&
 &i[t](e[t])}),i.on("click",function(){if(i.disabled())return!1}),i.settings=e,i.borderBox=At(e.border),i.paddingBox=At(e.padding),i.marginBox=At(e.margin),e.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){var t=oe.getUiContainer(this);return t||Pt.getContainer()},getParentCtrl:function(t){for(var e,n=this.getRoot().controlIdLookup;t&&n&&!(e=n[t.id]);)t=t.parentNode;return e},initLayoutRect:function(){var t,e,n,i,r,o,s,a,l,u,c=this,d=c.settings,f=c.getEl();t=c.borderBox=c.borderBox||Bt(f,"border"),c.paddingBox=c.paddingBox||Bt(f,"padding"),c.marginBox=c.marginBox||Bt(f,"margin"),u=Pt.getSize(f),a=d.minWidth,l=d.minHeight,r=a||u.width,o=l||u.height,n=d.width,i=d.height,s=void 0!==(s=d.autoResize)?s:!n&&!i,n=n||r,i=i||o;var h=t.left+t.right,m=t.top+t.bottom,g=d.maxWidth||65535,p=d.maxHeight||65535;return c._layoutRect=e={x:d.x||0,y:d.y||0,w:n,h:i,deltaW:h,deltaH:m,contentW:n-h,co
 ntentH:i-m,innerW:n-h,innerH:i-m,startMinWidth:a||0,startMinHeight:l||0,minW:Math.min(r,g),minH:Math.min(o,p),maxW:g,maxH:p,autoResize:s,scrollW:0},c._lastLayoutRect={},e},layoutRect:function(t){var e,n,i,r,o,s=this,a=s._layoutRect;return a||(a=s.initLayoutRect()),t?(i=a.deltaW,r=a.deltaH,t.x!==undefined&&(a.x=t.x),t.y!==undefined&&(a.y=t.y),t.minW!==undefined&&(a.minW=t.minW),t.minH!==undefined&&(a.minH=t.minH),(n=t.w)!==undefined&&(n=(n=n<a.minW?a.minW:n)>a.maxW?a.maxW:n,a.w=n,a.innerW=n-i),(n=t.h)!==undefined&&(n=(n=n<a.minH?a.minH:n)>a.maxH?a.maxH:n,a.h=n,a.innerH=n-r),(n=t.innerW)!==undefined&&(n=(n=n<a.minW-i?a.minW-i:n)>a.maxW-i?a.maxW-i:n,a.innerW=n,a.w=n+i),(n=t.innerH)!==undefined&&(n=(n=n<a.minH-r?a.minH-r:n)>a.maxH-r?a.maxH-r:n,a.innerH=n,a.h=n+r),t.contentW!==undefined&&(a.contentW=t.contentW),t.contentH!==undefined&&(a.contentH=t.contentH),(e=s._lastLayoutRect).x===a
 .x&&e.y===a.y&&e.w===a.w&&e.h===a.h||((o=te.repaintControls)&&o.map&&!o.map[s._id]&&(o.push(s),o.map[s._id]=!0),e.x=a.x,e.y=a.y,e.w=a.w,e.h=a.h),s):a},repaint:function(){var t,e,n,i,r,o,s,a,l,u,c=this;l=document.createRange?function(t){return t}:Math.round,t=c.getEl().style,i=c._layoutRect,a=c._lastRepaintRect||{},o=(r=c.borderBox).left+r.right,s=r.top+r.bottom,i.x!==a.x&&(t.left=l(i.x)+"px",a.x=i.x),i.y!==a.y&&(t.top=l(i.y)+"px",a.y=i.y),i.w!==a.w&&(u=l(i.w-o),t.width=(0<=u?u:0)+"px",a.w=i.w),i.h!==a.h&&(u=l(i.h-s),t.height=(0<=u?u:0)+"px",a.h=i.h),c._hasBody&&i.innerW!==a.innerW&&(u=l(i.innerW),(n=c.getEl("body"))&&((e=n.style).width=(0<=u?u:0)+"px"),a.innerW=i.innerW),c._hasBody&&i.innerH!==a.innerH&&(u=l(i.innerH),(n=n||c.getEl("body"))&&((e=e||n.style).height=(0<=u?u:0)+&
 quot;px"),a.innerH=i.innerH),c._lastRepaintRect=a,c.fire("repaint",{},!1)},updateLayoutRect:function(){var t=this;t.parent()._lastRect=null,Pt.css(t.getEl(),{width:"",height:""}),t._layoutRect=t._lastRepaintRect=t._lastLayoutRect=null,t.initLayoutRect()},on:function(t,e){var n,i,r,o=this;return ce(o).on(t,"string"!=typeof(n=e)?n:function(t){return i||o.parentsAndSelf().each(function(t){var e=t.settings.callbacks;if(e&&(i=e[n]))return r=t,!1}),i?i.call(r,t):(t.action=n,void this.fire("execute",t))}),o},off:function(t,e){return ce(this).off(t,e),this},fire:function(t,e,n){if((e=e||{}).control||(e.control=this),e=ce(this).fire(t,e),!1!==n&&this.parent)for(var i=this.parent();i&&!e.isPropagationStopped();)i.fire(t,e,!1),i=i.parent();return e},hasEventListeners:function(t){return ce(this).has(t)},parents:function(t){var e,n=new Jt;for(e=this.parent();e;e=e.parent())n.add(e);return t&&(n=n.filter(t)),n}
 ,parentsAndSelf:function(t){return new Jt(this).add(this.parents(t))},next:function(){var t=this.parent().items();return t[t.indexOf(this)+1]},prev:function(){var t=this.parent().items();return t[t.indexOf(this)-1]},innerHtml:function(t){return this.$el.html(t),this},getEl:function(t){var e=t?this._id+"-"+t:this._id;return this._elmCache[e]||(this._elmCache[e]=Nt("#"+e)[0]),this._elmCache[e]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(t){}return this},blur:function(){return this.getEl().blur(),this},aria:function(t,e){var n=this,i=n.getEl(n.ariaTarget);return void 0===e?n._aria[t]:(n._aria[t]=e,n.state.get("rendered")&&i.setAttribute("role"===t?t:"aria-"+t,e),n)},encode:function(t,e){return!1!==e&&(t=this.translate(t)),(t||"").replace(/[&<>"]/g,function(t){return"&#"+t.charCodeAt(0)+";&quo
 t;})},translate:function(t){return te.translate?te.translate(t):t},before:function(t){var e=this.parent();return e&&e.insert(t,e.items().indexOf(this),!0),this},after:function(t){var e=this.parent();return e&&e.insert(t,e.items().indexOf(this)),this},remove:function(){var e,t,n=this,i=n.getEl(),r=n.parent();if(n.items){var o=n.items().toArray();for(t=o.length;t--;)o[t].remove()}r&&r.items&&(e=[],r.items().each(function(t){t!==n&&e.push(t)}),r.items().set(e),r._lastRect=null),n._eventsRoot&&n._eventsRoot===n&&Nt(i).off();var s=n.getRoot().controlIdLookup;return s&&delete s[n._id],i&&i.parentNode&&i.parentNode.removeChild(i),n.state.set("rendered",!1),n.state.destroy(),n.fire("remove"),n},renderBefore:function(t){return Nt(t).before(this.renderHtml()),this.postRender(),this},renderTo:function(t){return Nt(t||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRe
 nder:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var t,e,n,i,r,o=this,s=o.settings;for(i in o.$el=Nt(o.getEl()),o.state.set("rendered",!0),s)0===i.indexOf("on")&&o.on(i.substr(2),s[i]);if(o._eventsRoot){for(n=o.parent();!r&&n;n=n.parent())r=n._eventsRoot;if(r)for(i in r._nativeEvents)o._nativeEvents[i]=!0}de(o),s.style&&(t=o.getEl())&&(t.setAttribute("style",s.style),t.style.cssText=s.style),o.settings.border&&(e=o.borderBox,o.$el.css({"border-top-width":e.top,"border-right-width":e.right,"border-bottom-width":e.bottom,"border-left-width":e.left}));var a=o.getRoot();for(var l in a.controlIdLookup||(a.controlIdLookup={}),(a.controlIdLookup[o._id]=o)._aria)o.aria(l,o._aria[l]);!1===o.state.get("visible")&&(o.getEl().style.display=&q
 uot;none"),o.bindStates(),o.state.on("change:visible",function(t){var e,n=t.value;o.state.get("rendered")&&(o.getEl().style.display=!1===n?"none":"",o.getEl().getBoundingClientRect()),(e=o.parent())&&(e._lastRect=null),o.fire(n?"show":"hide"),ie.add(o)}),o.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(t){var e,n,i,r,o,s,a=this.getEl(),l=a.parentNode,u=function(t,e){var n,i,r=t;for(n=i=0;r&&r!==e&&r.nodeType;)n+=r.offsetLeft||0,i+=r.offsetTop||0,r=r.offsetParent;return{x:n,y:i}}(a,l);return e=u.x,n=u.y,i=a.offsetWidth,r=a.offsetHeight,o=l.clientWidth,s=l.clientHeight,"end"===t?(e-=o-i,n-=s-r):"center"===t&&(e-=o/2-i/2,n-=s/2-r/2),l.scrollLeft=e,l.scrollTop=n,this},getRoot:function(){for(var t,e=this,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),e=(t=e).parent()}t||(t=this);for(var i=n.length;i--;)n[i].rootContr
 ol=t;return t},reflow:function(){ie.remove(this);var t=this.parent();return t&&t._layout&&!t._layout.isNative()&&t.reflow(),this}};function ce(n){return n._eventDispatcher||(n._eventDispatcher=new Dt({scope:n,toggleEvent:function(t,e){e&&Dt.isNative(t)&&(n._nativeEvents||(n._nativeEvents={}),n._nativeEvents[t]=!0,n.state.get("rendered")&&de(n))}})),n._eventDispatcher}function de(a){var t,e,n,l,i,r;function o(t){var e=a.getParentCtrl(t.target);e&&e.fire(t.type,t)}function s(){var t=l._lastHoverCtrl;t&&(t.fire("mouseleave",{target:t.getEl()}),t.parents().each(function(t){t.fire("mouseleave",{target:t.getEl()})}),l._lastHoverCtrl=null)}function u(t){var e,n,i,r=a.getParentCtrl(t.target),o=l._lastHoverCtrl,s=0;if(r!==o){if((n=(l._lastHoverCtrl=r).parents().toArray().reverse()).push(r),o){for((i=o.parents().toArray().reverse()).push(o),s=0;s<i.length&&n[s]===i[s];s++);for(e=i.length-1
 ;s<=e;e--)(o=i[e]).fire("mouseleave",{target:o.getEl()})}for(e=s;e<n.length;e++)(r=n[e]).fire("mouseenter",{target:r.getEl()})}}function c(t){t.preventDefault(),"mousewheel"===t.type?(t.deltaY=-.025*t.wheelDelta,t.wheelDeltaX&&(t.deltaX=-.025*t.wheelDeltaX)):(t.deltaX=0,t.deltaY=t.detail),t=a.fire("wheel",t)}if(i=a._nativeEvents){for((n=a.parents().toArray()).unshift(a),t=0,e=n.length;!l&&t<e;t++)l=n[t]._eventsRoot;for(l||(l=n[n.length-1]||a),a._eventsRoot=l,e=t,t=0;t<e;t++)n[t]._eventsRoot=l;var d=l._delegates;for(r in d||(d=l._delegates={}),i){if(!i)return!1;"wheel"!==r||ae?("mouseenter"===r||"mouseleave"===r?l._hasMouseEnter||(Nt(l.getEl()).on("mouseleave",s).on("mouseover",u),l._hasMouseEnter=1):d[r]||(Nt(l.getEl()).on(r,o),d[r]=!0),i[r]=!1):se?Nt(a.getEl()).on("mousewheel",c):Nt(a.getEl()).on("DOMMouseScroll",c)}}}R.each("text title visi
 ble disabled active value".split(" "),function(e){ue[e]=function(t){return 0===arguments.length?this.state.get(e):(void 0!==t&&this.state.set(e,t),this)}});var fe=te=Ot.extend(ue),he=function(t){return"static"===Pt.getRuntimeStyle(t,"position")},me=function(t){return t.state.get("fixed")};function ge(t,e,n){var i,r,o,s,a,l,u,c,d,f;return d=pe(),o=(r=Pt.getPos(e,oe.getUiContainer(t))).x,s=r.y,me(t)&&he(document.body)&&(o-=d.x,s-=d.y),i=t.getEl(),a=(f=Pt.getSize(i)).width,l=f.height,u=(f=Pt.getSize(e)).width,c=f.height,"b"===(n=(n||"").split(""))[0]&&(s+=c),"r"===n[1]&&(o+=u),"c"===n[0]&&(s+=Math.round(c/2)),"c"===n[1]&&(o+=Math.round(u/2)),"b"===n[3]&&(s-=l),"r"===n[4]&&(o-=a),"c"===n[3]&&(s-=Math.round(l/2)),"c"===n[4]&&(o-=Math.round(a/2)),{x:o,y:s,w:a,
 h:l}}var pe=function(){var t=window,e=Math.max(t.pageXOffset,document.body.scrollLeft,document.documentElement.scrollLeft),n=Math.max(t.pageYOffset,document.body.scrollTop,document.documentElement.scrollTop);return{x:e,y:n,w:e+(t.innerWidth||document.documentElement.clientWidth),h:n+(t.innerHeight||document.documentElement.clientHeight)}},ve=function(t){var e,n=oe.getUiContainer(t);return n&&!me(t)?{x:0,y:0,w:(e=n).scrollWidth-1,h:e.scrollHeight-1}:pe()},ye={testMoveRel:function(t,e){for(var n=ve(this),i=0;i<e.length;i++){var r=ge(this,t,e[i]);if(me(this)){if(0<r.x&&r.x+r.w<n.w&&0<r.y&&r.y+r.h<n.h)return e[i]}else if(r.x>n.x&&r.x+r.w<n.w&&r.y>n.y&&r.y+r.h<n.h)return e[i]}return e[0]},moveRel:function(t,e){"string"!=typeof e&&(e=this.testMoveRel(t,e));var n=ge(this,t,e);return this.moveTo(n.x,n.y)},moveBy:function(t,e){var n=this.layoutRect();return this.moveTo(n.x+t,n.y+e),this},move
 To:function(t,e){var n=this;function i(t,e,n){return t<0?0:e<t+n&&(t=e-n)<0?0:t}if(n.settings.constrainToViewport){var r=ve(this),o=n.layoutRect();t=i(t,r.w,o.w),e=i(e,r.h,o.h)}var s=oe.getUiContainer(n);return s&&he(s)&&!me(n)&&(t-=s.scrollLeft,e-=s.scrollTop),s&&(t+=1,e+=1),n.state.get("rendered")?n.layoutRect({x:t,y:e}).repaint():(n.settings.x=t,n.settings.y=e),n.fire("move",{x:t,y:e}),n}},be=fe.extend({Mixins:[ye],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var t=this,e=t.classPrefix;return'<div id="'+t._id+'" class="'+t.classes+'" role="presentation"><div class="'+e+'tooltip-arrow"></div><div class="'+e+'tooltip-inner">'+t.encode(t.state.get("text"))+"</div></div>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().lastChild.i
 nnerHTML=e.encode(t.value)}),e._super()},repaint:function(){var t,e;t=this.getEl().style,e=this._layoutRect,t.left=e.x+"px",t.top=e.y+"px",t.zIndex=131070}}),xe=fe.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.canFocus=!0,i.tooltip&&!1!==xe.tooltips&&(r.on("mouseenter",function(t){var e=r.tooltip().moveTo(-65535);if(t.control===r){var n=e.text(i.tooltip).show().testMoveRel(r.getEl(),["bc-tc","bc-tl","bc-tr"]);e.classes.toggle("tooltip-n","bc-tc"===n),e.classes.toggle("tooltip-nw","bc-tl"===n),e.classes.toggle("tooltip-ne","bc-tr"===n),e.moveRel(r.getEl(),n)}else e.hide()}),r.on("mouseleave mousedown click",function(){r.tooltip().remove(),r._tooltip=null})),r.aria("label",i.ariaLabel||i.tooltip)},tooltip:function(){return this._tooltip||(this._tooltip=new be({type:"tooltip"}),oe.inheritUiContainer(this,t
 his._tooltip),this._tooltip.renderTo()),this._tooltip},postRender:function(){var t=this,e=t.settings;t._super(),t.parent()||!e.width&&!e.height||(t.initLayoutRect(),t.repaint()),e.autofocus&&t.focus()},bindStates:function(){var e=this;function n(t){e.aria("disabled",t),e.classes.toggle("disabled",t)}function i(t){e.aria("pressed",t),e.classes.toggle("active",t)}return e.state.on("change:disabled",function(t){n(t.value)}),e.state.on("change:active",function(t){i(t.value)}),e.state.get("disabled")&&n(!0),e.state.get("active")&&i(!0),e._super()},remove:function(){this._super(),this._tooltip&&(this._tooltip.remove(),this._tooltip=null)}}),we=xe.extend({Defaults:{value:0},init:function(t){this._super(t),this.classes.add("progress"),this.settings.filter||(this.settings.filter=function(t){return Math.round(t)})},renderHtml:function(){var t=this._id,e=this.classP
 refix;return'<div id="'+t+'" class="'+this.classes+'"><div class="'+e+'bar-container"><div class="'+e+'bar"></div></div><div class="'+e+'text">0%</div></div>'},postRender:function(){return this._super(),this.value(this.settings.value),this},bindStates:function(){var e=this;function n(t){t=e.settings.filter(t),e.getEl().lastChild.innerHTML=t+"%",e.getEl().firstChild.firstChild.style.width=t+"%"}return e.state.on("change:value",function(t){n(t.value)}),n(e.state.get("value")),e._super()}}),_e=function(t,e){t.getEl().lastChild.textContent=e+(t.progressBar?" "+t.progressBar.value()+"%":"")},Re=fe.extend({Mixins:[ye],Defaults:{classes:"widget notification"},init:function(t){var e=this;e._super(t),e.maxWidth=t.maxWidth,t.text&&e.text(t.text),t.icon&&(e.icon=t.icon),t.color&&(e.color=t.color
 ),t.type&&e.classes.add("notification-"+t.type),t.timeout&&(t.timeout<0||0<t.timeout)&&!t.closeButton?e.closeButton=!1:(e.classes.add("has-close"),e.closeButton=!0),t.progressBar&&(e.progressBar=new we),e.on("click",function(t){-1!==t.target.className.indexOf(e.classPrefix+"close")&&e.close()})},renderHtml:function(){var t,e=this,n=e.classPrefix,i="",r="",o="";return e.icon&&(i='<i class="'+n+"ico "+n+"i-"+e.icon+'"></i>'),t=' style="max-width: '+e.maxWidth+"px;"+(e.color?"background-color: "+e.color+';"':'"'),e.closeButton&&(r='<button type="button" class="'+n+'close" aria-hidden="true">\xd7</button>'),e.progressBar&&(o=e.progressBar.renderHtml()),'<div id="'+e._id+'" class="'+e.classes+'"'+t+' role=&quot
 ;presentation">'+i+'<div class="'+n+'notification-inner">'+e.state.get("text")+"</div>"+o+r+'<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;" aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div></div>'},postRender:function(){var t=this;return c.setTimeout(function(){t.$el.addClass(t.classPrefix+"in"),_e(t,t.state.get("text"))},100),t._super()},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().firstChild.innerHTML=t.value,_e(e,t.value)}),e.progressBar&&(e.progressBar.bindStates(),e.progressBar.state.on("change:value",function(t){_e(e,e.state.get("text"))})),e._super()},close:function(){return this.fire("close").isDefaultPrevented()||this.remove(),this},repaint:function(){var t,e;t=this.getEl().style,
 e=this._layoutRect,t.left=e.x+"px",t.top=e.y+"px",t.zIndex=65534}});function Ce(o){var s=function(t){return t.inline?t.getElement():t.getContentAreaContainer()};return{open:function(t,e){var n,i=R.extend(t,{maxWidth:(n=s(o),Pt.getSize(n).width)}),r=new Re(i);return 0<(r.args=i).timeout&&(r.timer=setTimeout(function(){r.close(),e()},i.timeout)),r.on("close",function(){e()}),r.renderTo(),r},close:function(t){t.close()},reposition:function(t){var e;e=t,Tt.each(e,function(t){t.moveTo(0,0)}),function(n){if(0<n.length){var t=n.slice(0,1)[0],e=s(o);t.moveRel(e,"tc-tc"),Tt.each(n,function(t,e){0<e&&t.moveRel(n[e-1].getEl(),"bc-tc")})}}(t)},getArgs:function(t){return t.args}}}function ke(t){var e,n;if(t.changedTouches)for(e="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<e.length;n++)t[e[n]]=t.changedTouches[0][e[n]]}function Ee(t,h){var m,g,e,p,v,y,b,x=h.document||document;h=h||{
 };var w=x.getElementById(h.handle||t);e=function(t){var e,n,i,r,o,s,a,l,u,c,d,f=(e=x,u=Math.max,n=e.documentElement,i=e.body,r=u(n.scrollWidth,i.scrollWidth),o=u(n.clientWidth,i.clientWidth),s=u(n.offsetWidth,i.offsetWidth),a=u(n.scrollHeight,i.scrollHeight),l=u(n.clientHeight,i.clientHeight),{width:r<s?o:r,height:a<u(n.offsetHeight,i.offsetHeight)?l:a});ke(t),t.preventDefault(),g=t.button,c=w,y=t.screenX,b=t.screenY,d=window.getComputedStyle?window.getComputedStyle(c,null).getPropertyValue("cursor"):c.runtimeStyle.cursor,m=Nt("<div></div>").css({position:"absolute",top:0,left:0,width:f.width,height:f.height,zIndex:2147483647,opacity:1e-4,cursor:d}).appendTo(x.body),Nt(x).on("mousemove touchmove",v).on("mouseup touchend",p),h.start(t)},v=function(t){if(ke(t),t.button!==g)return p(t);t.deltaX=t.screenX-y,t.deltaY=t.screenY-b,t.preventDefault(),h.drag(t)},p=function(t){ke(t),Nt(x).off("mousemove touchmove",v
 ).off("mouseup touchend",p),m.remove(),h.stop&&h.stop(t)},this.destroy=function(){Nt(w).off()},Nt(w).on("mousedown touchstart",e)}var He=tinymce.util.Tools.resolve("tinymce.ui.Factory"),Se=function(t){return!!t.getAttribute("data-mce-tabstop")};function Me(t){var o,r,n=t.root;function i(t){return t&&1===t.nodeType}try{o=document.activeElement}catch(e){o=document.body}function s(t){return i(t=t||o)?t.getAttribute("role"):null}function a(t){for(var e,n=t||o;n=n.parentNode;)if(e=s(n))return e}function l(t){var e=o;if(i(e))return e.getAttribute("aria-"+t)}function u(t){var e=t.tagName.toUpperCase();return"INPUT"===e||"TEXTAREA"===e||"SELECT"===e}function c(e){var r=[];return function t(e){if(1===e.nodeType&&"none"!==e.style.display&&!e.disabled){var n;(u(n=e)&&!n.hidden||Se(n)||/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)
 $/.test(s(n)))&&r.push(e);for(var i=0;i<e.childNodes.length;i++)t(e.childNodes[i])}}(e||n.getEl()),r}function d(t){var e,n;(n=(t=t||r).parents().toArray()).unshift(t);for(var i=0;i<n.length&&!(e=n[i]).settings.ariaRoot;i++);return e}function f(t,e){return t<0?t=e.length-1:t>=e.length&&(t=0),e[t]&&e[t].focus(),t}function h(t,e){var n=-1,i=d();e=e||c(i.getEl());for(var r=0;r<e.length;r++)e[r]===o&&(n=r);n+=t,i.lastAriaIndex=f(n,e)}function m(){"tablist"===a()?h(-1,c(o.parentNode)):r.parent().submenu?y():h(-1)}function g(){var t=s(),e=a();"tablist"===e?h(1,c(o.parentNode)):"menuitem"===t&&"menu"===e&&l("haspopup")?b():h(1)}function p(){h(-1)}function v(){var t=s(),e=a();"menuitem"===t&&"menubar"===e?b():"button"===t&&l("haspopup")?b({key:"down"}):h(1)}function y(){r.fire("cancel")}function b(
 t){t=t||{},r.fire("click",{target:o,aria:t})}return r=n.getParentCtrl(o),n.on("keydown",function(t){function e(t,e){u(o)||Se(o)||"slider"!==s(o)&&!1!==e(t)&&t.preventDefault()}if(!t.isDefaultPrevented())switch(t.keyCode){case 37:e(t,m);break;case 39:e(t,g);break;case 38:e(t,p);break;case 40:e(t,v);break;case 27:y();break;case 14:case 13:case 32:e(t,b);break;case 9:!function(t){if("tablist"===a()){var e=c(r.getEl("body"))[0];e&&e.focus()}else h(t.shiftKey?-1:1)}(t),t.preventDefault()}}),n.on("focusin",function(t){o=t.target,r=t.control}),{focusFirst:function(t){var e=d(t),n=c(e.getEl());e.settings.ariaRemember&&"lastAriaIndex"in e?f(e.lastAriaIndex,n):f(0,n)}}}var Te,We,Pe,Ne,Oe={},De=fe.extend({init:function(t){var e=this;e._super(t),(t=e.settings).fixed&&e.state.set("fixed",!0),e._items=new Jt,e.isRtl()&&e.classes.add("rtl"),e.bodyClasses=new It(
 function(){e.state.get("rendered")&&(e.getEl("body").className=this.toString())}),e.bodyClasses.prefix=e.classPrefix,e.classes.add("container"),e.bodyClasses.add("container-body"),t.containerCls&&e.classes.add(t.containerCls),e._layout=He.create((t.layout||"")+"layout"),e.settings.items?e.add(e.settings.items):e.add(e.render()),e._hasBody=!0},items:function(){return this._items},find:function(t){return(t=Oe[t]=Oe[t]||new $t(t)).find(this)},add:function(t){return this.items().add(this.create(t)).parent(this),this},focus:function(t){var e,n,i,r=this;if(!t||!(n=r.keyboardNav||r.parents().eq(-1)[0].keyboardNav))return i=r.find("*"),r.statusbar&&i.add(r.statusbar.items()),i.each(function(t){if(t.settings.autofocus)return e=null,!1;t.canFocus&&(e=e||t)}),e&&e.focus(),r;n.focusFirst(r)},replace:function(t,e){for(var n,i=this.items(),r=i.length;r--;)if(i[r]===t){i[r]=e;break}0<=r
 &&((n=e.getEl())&&n.parentNode.removeChild(n),(n=t.getEl())&&n.parentNode.removeChild(n)),e.parent(this)},create:function(t){var e,n=this,i=[];return R.isArray(t)||(t=[t]),R.each(t,function(t){t&&(t instanceof fe||("string"==typeof t&&(t={type:t}),e=R.extend({},n.settings.defaults,t),t.type=e.type=e.type||t.type||n.settings.defaultType||(e.defaults?e.defaults.type:null),t=He.create(e)),i.push(t))}),i},renderNew:function(){var i=this;return i.items().each(function(t,e){var n;t.parent(i),t.state.get("rendered")||((n=i.getEl("body")).hasChildNodes()&&e<=n.childNodes.length-1?Nt(n.childNodes[e]).before(t.renderHtml()):Nt(n).append(t.renderHtml()),t.postRender(),ie.add(t))}),i._layout.applyClasses(i.items().filter(":visible")),i._lastRect=null,i},append:function(t){return this.add(t).renderNew()},prepend:function(t){return this.items().set(this.create(t).concat(this.items().toArray())),this.renderN
 ew()},insert:function(t,e,n){var i,r,o;return t=this.create(t),i=this.items(),!n&&e<i.length-1&&(e+=1),0<=e&&e<i.length&&(r=i.slice(0,e).toArray(),o=i.slice(e).toArray(),i.set(r.concat(t,o))),this.renderNew()},fromJSON:function(t){for(var e in t)this.find("#"+e).value(t[e]);return this},toJSON:function(){var i={};return this.find("*").each(function(t){var e=t.name(),n=t.value();e&&void 0!==n&&(i[e]=n)}),i},renderHtml:function(){var t=this,e=t._layout,n=this.settings.role;return t.preRender(),e.preRender(t),'<div id="'+t._id+'" class="'+t.classes+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+(t.settings.html||"")+e.renderHtml(t)+"</div></div>"},postRender:function(){var t,e=this;return e.items().exec("postRender"),e._super(),e._layout.postRende
 r(e),e.state.set("rendered",!0),e.settings.style&&e.$el.css(e.settings.style),e.settings.border&&(t=e.borderBox,e.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=Me({root:e})),e},initLayoutRect:function(){var t=this._super();return this._layout.recalc(this),t},recalc:function(){var t=this,e=t._layoutRect,n=t._lastRect;if(!n||n.w!==e.w||n.h!==e.h)return t._layout.recalc(t),e=t.layoutRect(),t._lastRect={x:e.x,y:e.y,w:e.w,h:e.h},!0},reflow:function(){var t;if(ie.remove(this),this.visible()){for(fe.repaintControls=[],fe.repaintControls.map={},this.recalc(),t=fe.repaintControls.length;t--;)fe.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),fe.repaintControls=[]}return this}}),Ae={init:function(){this.on("repaint",this.
 renderScroll)},renderScroll:function(){var p=this,v=2;function n(){var m,g,t;function e(t,e,n,i,r,o){var s,a,l,u,c,d,f,h;if(a=p.getEl("scroll"+t)){if(f=e.toLowerCase(),h=n.toLowerCase(),Nt(p.getEl("absend")).css(f,p.layoutRect()[i]-1),!r)return void Nt(a).css("display","none");Nt(a).css("display","block"),s=p.getEl("body"),l=p.getEl("scroll"+t+"t"),u=s["client"+n]-2*v,c=(u-=m&&g?a["client"+o]:0)/s["scroll"+n],(d={})[f]=s["offset"+e]+v,d[h]=u,Nt(a).css(d),(d={})[f]=s["scroll"+e]*c,d[h]=u*c,Nt(l).css(d)}}t=p.getEl("body"),m=t.scrollWidth>t.clientWidth,g=t.scrollHeight>t.clientHeight,e("h","Left","Width","contentW",m,"Height"),e("v","Top","Height","contentH",g,"Width")}p.settings.autoScroll&&(p._hasScroll||(p._hasScrol
 l=!0,function(){function t(s,a,l,u,c){var d,t=p._id+"-scroll"+s,e=p.classPrefix;Nt(p.getEl()).append('<div id="'+t+'" class="'+e+"scrollbar "+e+"scrollbar-"+s+'"><div id="'+t+'t" class="'+e+'scrollbar-thumb"></div></div>'),p.draghelper=new Ee(t+"t",{start:function(){d=p.getEl("body")["scroll"+a],Nt("#"+t).addClass(e+"active")},drag:function(t){var e,n,i,r,o=p.layoutRect();n=o.contentW>o.innerW,i=o.contentH>o.innerH,r=p.getEl("body")["client"+l]-2*v,e=(r-=n&&i?p.getEl("scroll"+s)["client"+c]:0)/p.getEl("body")["scroll"+l],p.getEl("body")["scroll"+a]=d+t["delta"+u]/e},stop:function(){Nt("#"+t).removeClass(e+"active")}})}p.classes.add("scroll"),t("v","Top","Height","Y",&quo
 t;Width"),t("h","Left","Width","X","Height")}(),p.on("wheel",function(t){var e=p.getEl("body");e.scrollLeft+=10*(t.deltaX||0),e.scrollTop+=10*t.deltaY,n()}),Nt(p.getEl("body")).on("scroll",n)),n())}},Be=De.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[Ae],renderHtml:function(){var t=this,e=t._layout,n=t.settings.html;return t.preRender(),e.preRender(t),void 0===n?n='<div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+e.renderHtml(t)+"</div>":("function"==typeof n&&(n=n.call(t)),t._hasBody=!1),'<div id="'+t._id+'" class="'+t.classes+'" hidefocus="1" tabindex="-1" role="group">'+(t._preBodyHtml||"")+n+"</div>"}}),Le={resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo
 :function(t,e){if(t<=1||e<=1){var n=Pt.getWindowSize();t=t<=1?t*n.w:t,e=e<=1?e*n.h:e}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:e,w:t,h:e}).reflow()},resizeBy:function(t,e){var n=this.layoutRect();return this.resizeTo(n.w+t,n.h+e)}},Ie=[],ze=[];function Fe(t,e){for(;t;){if(t===e)return!0;t=t.parent()}}function Ve(){Te||(Te=function(t){2!==t.button&&function(t){for(var e=Ie.length;e--;){var n=Ie[e],i=n.getParentCtrl(t.target);if(n.settings.autohide){if(i&&(Fe(i,n)||n.parent()===i))continue;(t=n.fire("autohide",{target:t.target})).isDefaultPrevented()||n.hide()}}}(t)},Nt(document).on("click touchstart",Te))}function qe(r){var t=Pt.getViewPort().y;function e(t,e){for(var n,i=0;i<Ie.length;i++)if(Ie[i]!==r)for(n=Ie[i].parent();n&&(n=n.parent());)n===r&&Ie[i].fixed(t).moveBy(0,e).repaint()}r.settings.autofix&&(r.state.get("fixed")?r._autoFixY>t&&(r.fixed(!1).layoutRect(
 {y:r._autoFixY}).repaint(),e(!1,r._autoFixY-t)):(r._autoFixY=r.layoutRect().y,r._autoFixY<t&&(r.fixed(!0).layoutRect({y:0}).repaint(),e(!0,t-r._autoFixY))))}function Ue(t,e){var n,i,r=je.zIndex||65535;if(t)ze.push(e);else for(n=ze.length;n--;)ze[n]===e&&ze.splice(n,1);if(ze.length)for(n=0;n<ze.length;n++)ze[n].modal&&(r++,i=ze[n]),ze[n].getEl().style.zIndex=r,ze[n].zIndex=r,r++;var o=Nt("#"+e.classPrefix+"modal-block",e.getContainerElm())[0];i?Nt(o).css("z-index",i.zIndex-1):o&&(o.parentNode.removeChild(o),Ne=!1),je.currentZIndex=r}var je=Be.extend({Mixins:[ye,Le],init:function(t){var i=this;i._super(t),(i._eventsRoot=i).classes.add("floatpanel"),t.autohide&&(Ve(),function(){if(!Pe){var t=document.documentElement,e=t.clientWidth,n=t.clientHeight;Pe=function(){document.all&&e===t.clientWidth&&n===t.clientHeight||(e=t.clientWidth,n=t.clientHeight,je.hideAll())},Nt(window).on("res
 ize",Pe)}}(),Ie.push(i)),t.autofix&&(We||(We=function(){var t;for(t=Ie.length;t--;)qe(Ie[t])},Nt(window).on("scroll",We)),i.on("move",function(){qe(this)})),i.on("postrender show",function(t){if(t.control===i){var e,n=i.classPrefix;i.modal&&!Ne&&((e=Nt("#"+n+"modal-block",i.getContainerElm()))[0]||(e=Nt('<div id="'+n+'modal-block" class="'+n+"reset "+n+'fade"></div>').appendTo(i.getContainerElm())),c.setTimeout(function(){e.addClass(n+"in"),Nt(i.getEl()).addClass(n+"in")}),Ne=!0),Ue(!0,i)}}),i.on("show",function(){i.parents().each(function(t){if(t.state.get("fixed"))return i.fixed(!0),!1})}),t.popover&&(i._preBodyHtml='<div class="'+i.classPrefix+'arrow"></div>',i.classes.add("popover").add("bottom").add(i.isRtl()?"end":"start")),i.aria("label",t
 .ariaLabel),i.aria("labelledby",i._id),i.aria("describedby",i.describedBy||i._id+"-none")},fixed:function(t){var e=this;if(e.state.get("fixed")!==t){if(e.state.get("rendered")){var n=Pt.getViewPort();t?e.layoutRect().y-=n.y:e.layoutRect().y+=n.y}e.classes.toggle("fixed",t),e.state.set("fixed",t)}return e},show:function(){var t,e=this._super();for(t=Ie.length;t--&&Ie[t]!==this;);return-1===t&&Ie.push(this),e},hide:function(){return $e(this),Ue(!1,this),this._super()},hideAll:function(){je.hideAll()},close:function(){return this.fire("close").isDefaultPrevented()||(this.remove(),Ue(!1,this)),this},remove:function(){$e(this),this._super()},postRender:function(){return this.settings.bodyRole&&this.getEl("body").setAttribute("role",this.settings.bodyRole),this._super()}});function $e(t){var e;for(e=Ie.length;e--;)Ie[e]===t&&Ie.splice(e,1);for(e=ze.length;e--
 ;)ze[e]===t&&ze.splice(e,1)}je.hideAll=function(){for(var t=Ie.length;t--;){var e=Ie[t];e&&e.settings.autohide&&(e.hide(),Ie.splice(t,1))}};var Ye=[],Xe="";function Je(t){var e,n=Nt("meta[name=viewport]")[0];!1!==h.overrideViewPort&&(n||((n=document.createElement("meta")).setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),(e=n.getAttribute("content"))&&void 0!==Xe&&(Xe=e),n.setAttribute("content",t?"width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0":Xe))}function Ge(t,e){(function(){for(var t=0;t<Ye.length;t++)if(Ye[t]._fullscreen)return!0;return!1})()&&!1===e&&Nt([document.documentElement,document.body]).removeClass(t+"fullscreen")}var Ke=je.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"
 dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(t){var n=this;n._super(t),n.isRtl()&&n.classes.add("rtl"),n.classes.add("window"),n.bodyClasses.add("window-body"),n.state.set("fixed",!0),t.buttons&&(n.statusbar=new Be({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:t.buttons}),n.statusbar.classes.add("foot"),n.statusbar.parent(n)),n.on("click",function(t){var e=n.classPrefix+"close";(Pt.hasClass(t.target,e)||Pt.hasClass(t.target.parentNode,e))&&n.close()}),n.on("cancel",function(){n.close()}),n.on("move",function(t){t.control===n&&je.hideAll()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label&
 quot;,t.title),n._fullscreen=!1},recalc:function(){var t,e,n,i,r=this,o=r.statusbar;r._fullscreen&&(r.layoutRect(Pt.getWindowSize()),r.layoutRect().contentH=r.layoutRect().innerH),r._super(),t=r.layoutRect(),r.settings.title&&!r._fullscreen&&(e=t.headerW)>t.w&&(n=t.x-Math.max(0,e/2),r.layoutRect({w:e,x:n}),i=!0),o&&(o.layoutRect({w:r.layoutRect().innerW}).recalc(),(e=o.layoutRect().minW+t.deltaW)>t.w&&(n=t.x-Math.max(0,e-t.w),r.layoutRect({w:e,x:n}),i=!0)),i&&r.recalc()},initLayoutRect:function(){var t,e=this,n=e._super(),i=0;if(e.settings.title&&!e._fullscreen){t=e.getEl("head");var r=Pt.getSize(t);n.headerW=r.width,n.headerH=r.height,i+=n.headerH}e.statusbar&&(i+=e.statusbar.layoutRect().h),n.deltaH+=i,n.minH+=i,n.h+=i;var o=Pt.getWindowSize();return n.x=e.settings.x||Math.max(0,o.w/2-n.w/2),n.y=e.settings.y||Math.max(0,o.h/2-n.h/2),n},renderHtml:function(){var t=this,e=t._layout,n=t._id,i=t.cl
 assPrefix,r=t.settings,o="",s="",a=r.html;return t.preRender(),e.preRender(t),r.title&&(o='<div id="'+n+'-head" class="'+i+'window-head"><div id="'+n+'-title" class="'+i+'title">'+t.encode(r.title)+'</div><div id="'+n+'-dragh" class="'+i+'dragh"></div><button type="button" class="'+i+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),r.url&&(a='<iframe src="'+r.url+'" tabindex="-1"></iframe>'),void 0===a&&(a=e.renderHtml(t)),t.statusbar&&(s=t.statusbar.renderHtml()),'<div id="'+n+'" class="'+t.classes+'" hidefocus="1"><div class="'+t.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+t.bodyClasses+'">'+a+
 "</div>"+s+"</div></div>"},fullscreen:function(t){var n,e,i=this,r=document.documentElement,o=i.classPrefix;if(t!==i._fullscreen)if(Nt(window).on("resize",function(){var t;if(i._fullscreen)if(n)i._timer||(i._timer=c.setTimeout(function(){var t=Pt.getWindowSize();i.moveTo(0,0).resizeTo(t.w,t.h),i._timer=0},50));else{t=(new Date).getTime();var e=Pt.getWindowSize();i.moveTo(0,0).resizeTo(e.w,e.h),50<(new Date).getTime()-t&&(n=!0)}}),e=i.layoutRect(),i._fullscreen=t){i._initial={x:e.x,y:e.y,w:e.w,h:e.h},i.borderBox=At("0"),i.getEl("head").style.display="none",e.deltaH-=e.headerH+2,Nt([r,document.body]).addClass(o+"fullscreen"),i.classes.add("fullscreen");var s=Pt.getWindowSize();i.moveTo(0,0).resizeTo(s.w,s.h)}else i.borderBox=At(i.settings.border),i.getEl("head").style.display="",e.deltaH+=e.headerH,Nt([r,document.body]).removeClass(o+"fullscreen"),
 i.classes.remove("fullscreen"),i.moveTo(i._initial.x,i._initial.y).resizeTo(i._initial.w,i._initial.h);return i.reflow()},postRender:function(){var e,n=this;setTimeout(function(){n.classes.add("in"),n.fire("open")},0),n._super(),n.statusbar&&n.statusbar.postRender(),n.focus(),this.dragHelper=new Ee(n._id+"-dragh",{start:function(){e={x:n.layoutRect().x,y:n.layoutRect().y}},drag:function(t){n.moveTo(e.x+t.deltaX,e.y+t.deltaY)}}),n.on("submit",function(t){t.isDefaultPrevented()||n.close()}),Ye.push(n),Je(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var t,e=this;for(e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),Ge(e.classPrefix,!1),t=Ye.length;t--;)Ye[t]===e&&Ye.splice(t,1);Je(0<Ye.length)},getContentWindow:function(){var t=this.getEl().getElementsByTagName("iframe")[0];return t?t.contentWindow:null}});!function(){if(!h.d
 esktop){var n={w:window.innerWidth,h:window.innerHeight};c.setInterval(function(){var t=window.innerWidth,e=window.innerHeight;n.w===t&&n.h===e||(n={w:t,h:e},Nt(window).trigger("resize"))},100)}Nt(window).on("resize",function(){var t,e,n=Pt.getWindowSize();for(t=0;t<Ye.length;t++)e=Ye[t].layoutRect(),Ye[t].moveTo(Ye[t].settings.x||Math.max(0,n.w/2-e.w/2),Ye[t].settings.y||Math.max(0,n.h/2-e.h/2))})}();var Ze=Ke.extend({init:function(t){t={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(t)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(t){var e,i=t.callback||function(){};function n(t,e,n){return{type:"button",text:t,subtype:n?"primary":"",onClick:function(t)
 {t.control.parents()[1].close(),i(e)}}}switch(t.buttons){case Ze.OK_CANCEL:e=[n("Ok",!0,!0),n("Cancel",!1)];break;case Ze.YES_NO:case Ze.YES_NO_CANCEL:e=[n("Yes",1,!0),n("No",0)],t.buttons===Ze.YES_NO_CANCEL&&e.push(n("Cancel",-1));break;default:e=[n("Ok",!0,!0)]}return new Ke({padding:20,x:t.x,y:t.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:e,title:t.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:t.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:t.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(t,e){return"string"==typeof t&&(t={text:t}),t.callback=e,Ze.msgBox(t)},confirm:function(t,e){return"string"==typeof t&&(t={text:t}),t.callback=e,t.buttons=Ze.OK_CANCEL,Ze.msgBox(t
 )}}}),Qe=function(t,e){return{renderUI:function(){return st(t,e)},getNotificationManagerImpl:function(){return Ce(t)},getWindowManagerImpl:function(){return{open:function(n,t,e){var i;return n.title=n.title||" ",n.url=n.url||n.file,n.url&&(n.width=parseInt(n.width||320,10),n.height=parseInt(n.height||240,10)),n.body&&(n.items={defaults:n.defaults,type:n.bodyType||"form",items:n.body,data:n.data,callbacks:n.commands}),n.url||n.buttons||(n.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),(i=new Ke(n)).on("close",function(){e(i)}),n.data&&i.on("postRender",function(){this.find("*").each(function(t){var e=t.name();e in n.data&&t.value(n.data[e])})}),i.features=n||{},i.params=t||{},i=i.renderTo(document.body).reflow()},alert:function(t,e,n){var i;return(i=Ze.alert(t,function(){e()})).
 on("close",function(){n(i)}),i},confirm:function(t,e,n){var i;return(i=Ze.confirm(t,function(t){e(t)})).on("close",function(){n(i)}),i},close:function(t){t.close()},getParams:function(t){return t.params},setParams:function(t,e){t.params=e}}}}},tn="undefined"!=typeof window?window:Function("return this;")(),en=function(t,e){for(var n=e!==undefined&&null!==e?e:tn,i=0;i<t.length&&n!==undefined&&null!==n;++i)n=n[t[i]];return n},nn=function(t,e){var n=t.split(".");return en(n,e)},rn={getOrDie:function(t,e){var n=nn(t,e);if(n===undefined||null===n)throw t+" not available on this browser";return n}};function on(){return new(rn.getOrDie("FileReader"))}var sn,an=tinymce.util.Tools.resolve("tinymce.util.Promise"),ln=function(n){return new an(function(t){var e=new on;e.onloadend=function(){t(e.result.split(",")[1])},e.readAsDataURL(n)})},un=function(){return new an(function(e){v
 ar t;(t=document.createElement("input")).type="file",t.style.position="fixed",t.style.left=0,t.style.top=0,t.style.opacity=.001,document.body.appendChild(t),t.onchange=function(t){e(Array.prototype.slice.call(t.target.files))},t.click(),t.parentNode.removeChild(t)})},cn=0,dn=function(t){return t+cn+++(e=function(){return Math.round(4294967295*Math.random()).toString(36)},"s"+Date.now().toString(36)+e()+e()+e());var e},fn=function(r,o){var s={};function t(t){var e,n,i;n=o[t?"startContainer":"endContainer"],i=o[t?"startOffset":"endOffset"],1===n.nodeType&&(e=r.create("span",{"data-mce-type":"bookmark"}),n.hasChildNodes()?(i=Math.min(i,n.childNodes.length-1),t?n.insertBefore(e,n.childNodes[i]):r.insertAfter(e,n.childNodes[i])):n.appendChild(e),n=e,i=0),s[t?"startContainer":"endContainer"]=n,s[t?"startOffset":"endOffset"]=i}return 
 t(!0),o.collapsed||t(),s},hn=function(r,o){function t(t){var e,n,i;e=i=o[t?"startContainer":"endContainer"],n=o[t?"startOffset":"endOffset"],e&&(1===e.nodeType&&(n=function(t){for(var e=t.parentNode.firstChild,n=0;e;){if(e===t)return n;1===e.nodeType&&"bookmark"===e.getAttribute("data-mce-type")||n++,e=e.nextSibling}return-1}(e),e=e.parentNode,r.remove(i)),o[t?"startContainer":"endContainer"]=e,o[t?"startOffset":"endOffset"]=n)}t(!0),t();var e=r.createRng();return e.setStart(o.startContainer,o.startOffset),o.endContainer&&e.setEnd(o.endContainer,o.endOffset),e},mn=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),gn=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),pn=function(t){return"A"===t.nodeName&&t.hasAttribute("href")},vn=function(t){var e,n,i,r,o,s,a,l;return r=t.selection,o=t.dom,s=r.getRng
 (),a=o,l=gn.getNode(s.startContainer,s.startOffset),e=a.getParent(l,pn)||l,n=gn.getNode(s.endContainer,s.endOffset),i=t.getBody(),R.grep(function(t,e,n){var i,r,o=[];for(i=new mn(e,t),r=e;r&&(1===r.nodeType&&o.push(r),r!==n);r=i.next());return o}(i,e,n),pn)},yn=function(t){var e,n,i,r,o;n=vn(e=t),r=e.dom,o=e.selection,i=fn(r,o.getRng()),R.each(n,function(t){e.dom.remove(t,!0)}),o.setRng(hn(r,i))},bn=function(t){t.selection.collapse(!1)},xn=function(t){t.focus(),yn(t),bn(t)},wn=function(t,e){var n,i,r,o,s,a=t.dom.getParent(t.selection.getStart(),"a[href]");a?(o=a,s=e,(r=t).focus(),r.dom.setAttrib(o,"href",s),bn(r)):(i=e,(n=t).execCommand("mceInsertLink",!1,{href:i}),bn(n))},_n=function(t,e,n){var i,r,o;t.plugins.table?t.plugins.table.insertTable(e,n):(r=e,o=n,(i=t).undoManager.transact(function(){var t,e;i.insertContent(function(t,e){var n,i,r;for(r='<table data-mce-id="mce" style="width: 100%">',r+="<tbo
 dy>",i=0;i<e;i++){for(r+="<tr>",n=0;n<t;n++)r+="<td><br></td>";r+="</tr>"}return r+="</tbody>",r+="</table>"}(r,o)),(t=i.dom.select("*[data-mce-id]")[0]).removeAttribute("data-mce-id"),e=i.dom.select("td,th",t),i.selection.setCursorLocation(e[0],0)}))},Rn=function(t,e){t.execCommand("FormatBlock",!1,e)},Cn=function(t,e,n){var i,r;r=(i=t.editorUpload.blobCache).create(dn("mceu"),n,e),i.add(r),t.insertContent(t.dom.createHTML("img",{src:r.blobUri()}))},kn=function(t,e){0===e.trim().length?xn(t):wn(t,e)},En=xn,Hn=function(n,t){n.addButton("quicklink",{icon:"link",tooltip:"Insert/Edit link",stateSelector:"a[href]",onclick:function(){t.showForm(n,"quicklink")}}),n.addButton("quickimage",{icon:"image",tooltip:"Insert image",onclick:function(){un()
 .then(function(t){var e=t[0];ln(e).then(function(t){Cn(n,t,e)})})}}),n.addButton("quicktable",{icon:"table",tooltip:"Insert table",onclick:function(){t.hide(),_n(n,2,2)}}),function(e){for(var t=function(t){return function(){Rn(e,t)}},n=1;n<6;n++){var i="h"+n;e.addButton(i,{text:i.toUpperCase(),tooltip:"Heading "+n,stateSelector:i,onclick:t(i),onPostRender:function(){this.getEl().firstChild.firstChild.style.fontWeight="bold"}})}}(n)},Sn=function(){var t=h.container;if(t&&"static"!==v.DOM.getStyle(t,"position",!0)){var e=v.DOM.getPos(t),n=e.x-t.scrollLeft,i=e.y-t.scrollTop;return mt.some({x:n,y:i})}return mt.none()},Mn=function(t){return/^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(t.trim())},Tn=function(t){return/^https?:\/\//.test(t.trim())},Wn=function(t,e){return!Tn(e)&&Mn(e)?(n=t,i=e,new an(function(e){n.windowManager.confirm("The URL you
  entered seems to be an external link. Do you want to add the required http:// prefix?",function(t){e(!0===t?"http://"+i:i)})})):an.resolve(e);var n,i},Pn=function(r,e){var t,n,i,o={};return t="quicklink",n={items:[{type:"button",name:"unlink",icon:"unlink",onclick:function(){r.focus(),En(r),e()},tooltip:"Remove link"},{type:"filepicker",name:"linkurl",placeholder:"Paste or type a link",filetype:"file",onchange:function(t){var e=t.meta;e&&e.attach&&(o={href:this.value(),attach:e.attach})}},{type:"button",icon:"checkmark",subtype:"primary",tooltip:"Ok",onclick:"submit"}],onshow:function(t){if(t.control===this){var e,n="";(e=r.dom.getParent(r.selection.getStart(),"a[href]"))&&(n=r.dom.getAttrib(e,"href")),this.fromJSON({linkurl:n}),i=this.find("#unlink"),e?i.show():i.hi
 de(),this.find("#linkurl")[0].focus()}var i},onsubmit:function(t){Wn(r,t.data.linkurl).then(function(t){r.undoManager.transact(function(){t===o.href&&(o.attach(),o={}),kn(r,t)}),e()})}},(i=He.create(R.extend({type:"form",layout:"flex",direction:"row",padding:5,name:t,spacing:3},n))).on("show",function(){i.find("textbox").eq(0).each(function(t){t.focus()})}),i},Nn=function(n,t,e){var o,i,s=[];if(e)return R.each(B(i=e)?i:N(i)?i.split(/[ ,]/):[],function(t){if("|"===t)o=null;else if(n.buttons[t]){o||(o={type:"buttongroup",items:[]},s.push(o));var e=n.buttons[t];A(e)&&(e=e()),e.type=e.type||"button",(e=He.create(e)).on("postRender",(i=n,r=e,function(){var e,t,n=(t=function(t,e){return{selector:t,handler:e}},(e=r).settings.stateSelector?t(e.settings.stateSelector,function(t){e.active(t)}):e.settings.disabledStateSelector?t(e.settings.disabledStateSelector,function(t){e.disa
 bled(t)}):null);null!==n&&i.selection.selectorChanged(n.selector,n.handler)})),o.items.push(e)}var i,r}),He.create({type:"toolbar",layout:"flow",name:t,items:s})},On=function(){var l,c,o=function(t){return 0<t.items().length},u=function(t,e){var n,i,r=(n=t,i=e,R.map(i,function(t){return Nn(n,t.id,t.items)})).concat([Nn(t,"text",J(t)),Nn(t,"insert",G(t)),Pn(t,p)]);return He.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:R.grep(r,o),oncancel:function(){t.focus()}})},d=function(t){t&&t.show()},f=function(t,e){t.moveTo(e.x,e.y)},h=function(n,i){i=i?i.substr(0,2):"",R.each({t:"down",b:"up",c:"center"},function(t,e){n.classes.toggle("arrow-"+t,e===i.substr(0,1)
 )}),"cr"===i?(n.classes.toggle("arrow-left",!0),n.classes.toggle("arrow-right",!1)):"cl"===i?(n.classes.toggle("arrow-left",!0),n.classes.toggle("arrow-right",!0)):R.each({l:"left",r:"right"},function(t,e){n.classes.toggle("arrow-"+t,e===i.substr(1,1))})},m=function(t,e){var n=t.items().filter("#"+e);return 0<n.length&&(n[0].show(),t.reflow(),!0)},g=function(t,e,n,i){var r,o,s,a;if(a=K(n),r=b(n),o=v.DOM.getRect(t.getEl()),s="insert"===e?j(i,r,o):$(i,r,o)){var l=Sn().getOr({x:0,y:0}),u={x:s.rect.x-l.x,y:s.rect.y-l.y,w:s.rect.w,h:s.rect.h};return f(t,Y(a,c=i,r,u)),h(t,s.position),!0}return!1},p=function(){l&&l.hide()};return{show:function(t,e,n,i){var r,o,s,a;l||(M(t),(l=u(t,i)).renderTo().reflow().moveTo(n.x,n.y),t.nodeChanged()),o=e,s=t,a=n,d(r=l),r.items().hide(),m(r,o)?!1===g(r,o,s,a)&&p():p()},showForm:function(t,e){if(l){if(l.items().hide(),!m(
 l,e))return void p();var n,i,r,o=void 0;d(l),l.items().hide(),m(l,e),r=K(t),n=b(t),o=v.DOM.getRect(l.getEl()),(i=$(c,n,o))&&(o=i.rect,f(l,Y(r,c,n,o)),h(l,i.position))}},reposition:function(t,e,n){l&&g(l,e,t,n)},inForm:function(){return l&&l.visible()&&0<l.items().filter("form:visible").length},hide:p,focus:function(){l&&l.find("toolbar:visible").eq(0).each(function(t){t.focus(!0)})},remove:function(){l&&(l.remove(),l=null)}}},Dn=Ot.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(t){this.settings=R.extend({},this.Defaults,t)},preRender:function(t){t.bodyClasses.add(this.settings.containerClass)},applyClasses:function(t){var e,n,i,r,o=this.settings;e=o.firstControlClass,n=o.lastControlClass,t.each(function(t){t.classes.remove(e).remove(n).add(o.controlClass),t.visible()&&(i||(i=t),r=t)}),i&&i.classes.add(e),r&&r.classes.add(n)},renderHtm
 l:function(t){var e="";return this.applyClasses(t.items()),t.items().each(function(t){e+=t.renderHtml()}),e},recalc:function(){},postRender:function(){},isNative:function(){return!1}}),An=Dn.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(t){t.items().filter(":visible").each(function(t){var e=t.settings;t.layoutRect({x:e.x,y:e.y,w:e.w,h:e.h}),t.recalc&&t.recalc()})},renderHtml:function(t){return'<div id="'+t._id+'-absend" class="'+t.classPrefix+'abs-end"></div>'+this._super(t)}}),Bn=xe.extend({Defaults:{classes:"widget btn",role:"button"},init:function(t){var e,n=this;n._super(t),t=n.settings,e=n.settings.size,n.on("click mousedown",function(t){t.preventDefault()}),n.on("touchstart",function(t){n.fire("click",t),t.preventDefault()}),t.subtype&&n.classes.add(t.subtype),e&&n.classes.add("btn
 -"+e),t.icon&&n.icon(t.icon)},icon:function(t){return arguments.length?(this.state.set("icon",t),this):this.state.get("icon")},repaint:function(){var t,e=this.getEl().firstChild;e&&((t=e.style).width=t.height="100%"),this._super()},renderHtml:function(){var t,e,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a="",l=n.settings;return(t=l.image)?(o="none","string"!=typeof t&&(t=window.getSelection?t[0]:t[1]),t=" style=\"background-image: url('"+t+"')\""):t="",s&&(n.classes.add("btn-has-text"),a='<span class="'+r+'txt">'+n.encode(s)+"</span>"),o=o?r+"ico "+r+"i-"+o:"",e="boolean"==typeof l.active?' aria-pressed="'+l.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" tabindex=&quot
 ;-1"'+e+'><button id="'+i+'-button" role="presentation" type="button" tabindex="-1">'+(o?'<i class="'+o+'"'+t+"></i>":"")+a+"</button></div>"},bindStates:function(){var o=this,n=o.$,i=o.classPrefix+"txt";function s(t){var e=n("span."+i,o.getEl());t?(e[0]||(n("button:first",o.getEl()).append('<span class="'+i+'"></span>'),e=n("span."+i,o.getEl())),e.html(o.encode(t))):e.remove(),o.classes.toggle("btn-has-text",!!t)}return o.state.on("change:text",function(t){s(t.value)}),o.state.on("change:icon",function(t){var e=t.value,n=o.classPrefix;e=(o.settings.icon=e)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];e?(r&&r===i.firstChild||(r=document.createElement("i"),i.insertBefore(
 r,i.firstChild)),r.className=e):r&&i.removeChild(r),s(o.state.get("text"))}),o._super()}}),Ln=Bn.extend({init:function(t){t=R.extend({text:"Browse...",multiple:!1,accept:null},t),this._super(t),this.classes.add("browsebutton"),t.multiple&&this.classes.add("multiple")},postRender:function(){var n=this,e=Pt.create("input",{type:"file",id:n._id+"-browse",accept:n.settings.accept});n._super(),Nt(e).on("change",function(t){var e=t.target.files;n.value=function(){return e.length?n.settings.multiple?e:e[0]:null},t.preventDefault(),e.length&&n.fire("change",t)}),Nt(e).on("click",function(t){t.stopPropagation()}),Nt(n.getEl("button")).on("click",function(t){t.stopPropagation(),e.click()}),n.getEl().appendChild(e)},remove:function(){Nt(this.getEl("button")).off(),Nt(this.getEl("input")).off(),this._super()}}),In=De.extend({Defaults
 :{defaultType:"button",role:"group"},renderHtml:function(){var t=this,e=t._layout;return t.classes.add("btn-group"),t.preRender(),e.preRender(t),'<div id="'+t._id+'" class="'+t.classes+'"><div id="'+t._id+'-body">'+(t.settings.html||"")+e.renderHtml(t)+"</div></div>"}}),zn=xe.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(t){var e=this;e._super(t),e.on("click mousedown",function(t){t.preventDefault()}),e.on("click",function(t){t.preventDefault(),e.disabled()||e.checked(!e.checked())}),e.checked(e.settings.checked)},checked:function(t){return arguments.length?(this.state.set("checked",t),this):this.state.get("checked")},value:function(t){return arguments.length?this.checked(t):this.checked()},renderHtml:function(){var t=this,e=t._id,n=t.classPrefix;return'<div id="'+e+'" class=&
 quot;'+t.classes+'" unselectable="on" aria-labelledby="'+e+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+e+'-al" class="'+n+'label">'+t.encode(t.state.get("text"))+"</span></div>"},bindStates:function(){var o=this;function e(t){o.classes.toggle("checked",t),o.aria("checked",t)}return o.state.on("change:text",function(t){o.getEl("al").firstChild.data=o.translate(t.value)}),o.state.on("change:checked change:value",function(t){o.fire("change"),e(t.value)}),o.state.on("change:icon",function(t){var e=t.value,n=o.classPrefix;if(void 0===e)return o.settings.icon;e=(o.settings.icon=e)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];e?(r&&r===i.firstChild||(r=document.createElem
 ent("i"),i.insertBefore(r,i.firstChild)),r.className=e):r&&i.removeChild(r)}),o.state.get("checked")&&e(!0),o._super()}}),Fn=tinymce.util.Tools.resolve("tinymce.util.VK"),Vn=xe.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.classes.add("combobox"),r.subinput=!0,r.ariaTarget="inp",i.menu=i.menu||i.values,i.menu&&(i.icon="caret"),r.on("click",function(t){var e=t.target,n=r.getEl();if(Nt.contains(n,e)||e===n)for(;e&&e!==n;)e.id&&-1!==e.id.indexOf("-open")&&(r.fire("action"),i.menu&&(r.showMenu(),t.aria&&r.menu.items()[0].focus())),e=e.parentNode}),r.on("keydown",function(t){var e;13===t.keyCode&&"INPUT"===t.target.nodeName&&(t.preventDefault(),r.parents().reverse().each(function(t){if(t.toJSON)return e=t,!1}),r.fire("submit",{data:e.toJSON()}))}),r.on("keyup",func
 tion(t){if("INPUT"===t.target.nodeName){var e=r.state.get("value"),n=t.target.value;n!==e&&(r.state.set("value",n),r.fire("autocomplete",t))}}),r.on("mouseover",function(t){var e=r.tooltip().moveTo(-65535);if(r.statusLevel()&&-1!==t.target.className.indexOf(r.classPrefix+"status")){var n=r.statusMessage()||"Ok",i=e.text(n).show().testMoveRel(t.target,["bc-tc","bc-tl","bc-tr"]);e.classes.toggle("tooltip-n","bc-tc"===i),e.classes.toggle("tooltip-nw","bc-tl"===i),e.classes.toggle("tooltip-ne","bc-tr"===i),e.moveRel(t.target,i)}})},statusLevel:function(t){return 0<arguments.length&&this.state.set("statusLevel",t),this.state.get("statusLevel")},statusMessage:function(t){return 0<arguments.length&&this.state.set("statusMessage",t),this.state.get("statusMessage
 ")},showMenu:function(){var t,e=this,n=e.settings;e.menu||((t=n.menu||[]).length?t={type:"menu",items:t}:t.type=t.type||"menu",e.menu=He.create(t).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()===e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"===t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var t,e,n=this,i=n.getEl(),r=n.getEl("open"),o=n.layo
 utRect(),s=0,a=i.firstChild;n.statusLevel()&&"none"!==n.statusLevel()&&(s=parseInt(Pt.getRuntimeStyle(a,"padding-right"),10)-parseInt(Pt.getRuntimeStyle(a,"padding-left"),10)),t=r?o.w-Pt.getSize(r).width-10:o.w-10;var l=document;return l.all&&(!l.documentMode||l.documentMode<=8)&&(e=n.layoutRect().h-2+"px"),Nt(a).css({width:t-s,lineHeight:e}),n._super(),n},postRender:function(){var e=this;return Nt(this.getEl("inp")).on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)}),e._super()},renderHtml:function(){var t,e,n,i=this,r=i._id,o=i.settings,s=i.classPrefix,a=i.state.get("value")||"",l="",u="";return"spellcheck"in o&&(u+=' spellcheck="'+o.spellcheck+'"'),o.maxLength&&(u+=' maxlength="'+o.maxLength+'"'),o.size&&(u+=' size="'+o.size+'"'),o.subt
 ype&&(u+=' type="'+o.subtype+'"'),n='<i id="'+r+'-status" class="mce-status mce-ico" style="display: none"></i>',i.disabled()&&(u+=' disabled="disabled"'),(t=o.icon)&&"caret"!==t&&(t=s+"ico "+s+"i-"+o.icon),e=i.state.get("text"),(t||e)&&(l='<div id="'+r+'-open" class="'+s+"btn "+s+'open" tabIndex="-1" role="button"><button id="'+r+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!==t?'<i class="'+t+'"></i>':'<i class="'+s+'caret"></i>')+(e?(t?" ":"")+e:"")+"</button></div>",i.classes.add("has-open")),'<div id="'+r+'" class="'+i.classes+'"><input id="'+r+'-inp" class="'+s+'t
 extbox" value="'+i.encode(a,!1)+'" hidefocus="1"'+u+' placeholder="'+i.encode(o.placeholder)+'" />'+n+l+"</div>"},value:function(t){return arguments.length?(this.state.set("value",t),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},showAutoComplete:function(t,i){var r=this;if(0!==t.length){r.menu?r.menu.items().remove():r.menu=He.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),R.each(t,function(t){var e,n;r.menu.add({text:t.title,url:t.previewUrl,match:i,classes:"menu-item-ellipsis",onclick:(e=t.value,n=t.title,function(){r.fire("selectitem",{title:n,value:e})})})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(t){t.control.parent()===r.menu&&(t.stopPropagation(),r.focus(),r.hideMenu())}),r.menu.on(&q
 uot;select",function(){r.focus()});var e=r.layoutRect().w;r.menu.layoutRect({w:e,minW:0,maxW:e}),r.menu.repaint(),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])}else r.hideMenu()},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var r=this;r.state.on("change:value",function(t){r.getEl("inp").value!==t.value&&(r.getEl("inp").value=t.value)}),r.state.on("change:disabled",function(t){r.getEl("inp").disabled=t.value}),r.state.on("change:statusLevel",function(t){var e=r.getEl("status"),n=r.classPrefix,i=t.value;Pt.css(e,"display","none"===i?"none":""),Pt.toggleClass(e,n+"i-checkmark","ok"===i),Pt.toggleClass(e,n+"i-warning","warn"===i),Pt.toggleClass(e,n+"i-error","error"===i),r.classe
 s.toggle("has-status","none"!==i),r.repaint()}),Pt.on(r.getEl("status"),"mouseleave",function(){r.tooltip().hide()}),r.on("cancel",function(t){r.menu&&r.menu.visible()&&(t.stopPropagation(),r.hideMenu())});var n=function(t,e){e&&0<e.items().length&&e.items().eq(t)[0].focus()};return r.on("keydown",function(t){var e=t.keyCode;"INPUT"===t.target.nodeName&&(e===Fn.DOWN?(t.preventDefault(),r.fire("autocomplete"),n(0,r.menu)):e===Fn.UP&&(t.preventDefault(),n(-1,r.menu)))}),r._super()},remove:function(){Nt(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}}),qn=Vn.extend({init:function(t){var e=this;t.spellcheck=!1,t.onaction&&(t.icon="none"),e._super(t),e.classes.add("colorbox"),e.on("change keyup postrender",function(){e.repaintColor(e.value())})},repaintColor:function(t){var e=this.g
 etEl("open"),n=e?e.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=t}catch(i){}},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.state.get("rendered")&&e.repaintColor(t.value)}),e._super()}}),Un=Bn.extend({showPanel:function(){var e=this,t=e.settings;if(e.classes.add("opened"),e.panel)e.panel.show();else{var n=t.panel;n.type&&(n={layout:"grid",items:n}),n.role=n.role||"dialog",n.popover=!0,n.autohide=!0,n.ariaRoot=!0,e.panel=new je(n).on("hide",function(){e.classes.remove("opened")}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}var i=e.panel.testMoveRel(e.getEl(),t.popoverAlign||(e.isRtl()?["bc-tc","bc-tl","bc-tr"]:["bc-tc","bc-tr","bc-tl","tc-bc&qu
 ot;,"tc-br","tc-bl"]));e.panel.classes.toggle("start","l"===i.substr(-1)),e.panel.classes.toggle("end","r"===i.substr(-1));var r="t"===i.substr(0,1);e.panel.classes.toggle("bottom",!r),e.panel.classes.toggle("top",r),e.panel.moveRel(e.getEl(),i)},hidePanel:function(){this.panel&&this.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}}),jn=v.DOM,$n=Un.extend({init:function(t){this._super(t),this.classes.add("splitbtn"),this.classes.add("colorbutton")},color:function(t){return t?(this._color=t,this.getEl("preview").style.backgroundColor=t,this):this._color},resetColor:
 function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var t=this,e=t._id,n=t.classPrefix,i=t.state.get("text"),r=t.settings.icon?n+"ico "+n+"i-"+t.settings.icon:"",o=t.settings.image?" style=\"background-image: url('"+t.settings.image+"')\"":"",s="";return i&&(t.classes.add("btn-has-text"),s='<span class="'+n+'txt">'+t.encode(i)+"</span>"),'<div id="'+e+'" class="'+t.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+o+"></i>":"")+'<span id="'+e+'-preview" class="'+n+'preview"></span>'+s+'</button>&
 lt;button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,n=e.settings.onclick;return e.on("click",function(t){t.aria&&"down"===t.aria.key||t.control!==e||jn.getParent(t.target,"."+e.classPrefix+"open")||(t.stopImmediatePropagation(),n.call(e,t))}),delete e.settings.onclick,e._super()}}),Yn=tinymce.util.Tools.resolve("tinymce.util.Color"),Xn=xe.extend({Defaults:{classes:"widget colorpicker"},init:function(t){this._super(t)},postRender:function(){var n,i,r,o,s,a=this,l=a.color();function u(t,e){var n,i,r=Pt.getPos(t);return n=e.pageX-r.x,i=e.pageY-r.y,{x:n=Math.max(0,Math.min(n/t.clientWidth,1)),y:i=Math.max(0,Math.min(i/t.clientHeight,1))}}function c(t,e){var n=(360-t.h)/360;Pt.css(r,{top:100*n+"%"}),e||Pt.css(s,{left:t.s+"%",top:10
 0-t.v+"%"}),o.style.background=Yn({s:100,v:100,h:t.h}).toHex(),a.color().parse({s:t.s,v:t.v,h:t.h})}function t(t){var e;e=u(o,t),n.s=100*e.x,n.v=100*(1-e.y),c(n),a.fire("change")}function e(t){var e;e=u(i,t),(n=l.toHsv()).h=360*(1-e.y),c(n,!0),a.fire("change")}i=a.getEl("h"),r=a.getEl("hp"),o=a.getEl("sv"),s=a.getEl("svp"),a._repaint=function(){c(n=l.toHsv())},a._super(),a._svdraghelper=new Ee(a._id+"-sv",{start:t,drag:t}),a._hdraghelper=new Ee(a._id+"-h",{start:e,drag:e}),a._repaint()},rgb:function(){return this.color().toRgb()},value:function(t){if(!arguments.length)return this.color().toHex();this.color().parse(t),this._rendered&&this._repaint()},color:function(){return this._color||(this._color=Yn()),this._color},renderHtml:function(){var t,e=this._id,o=this.classPrefix,s="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000&qu
 ot;;return t='<div id="'+e+'-h" class="'+o+'colorpicker-h" style="background: -ms-linear-gradient(top,'+s+");background: linear-gradient(to bottom,"+s+');">'+function(){var t,e,n,i,r="";for(n="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",t=0,e=(i=s.split(",")).length-1;t<e;t++)r+='<div class="'+o+'colorpicker-h-chunk" style="height:'+100/e+"%;"+n+i[t]+",endColorstr="+i[t+1]+");-ms-"+n+i[t]+",endColorstr="+i[t+1]+')"></div>';return r}()+'<div id="'+e+'-hp" class="'+o+'colorpicker-h-marker"></div></div>','<div id="'+e+'" class="'+this.classes+'"><div id="'+e+'-sv" class="'+o+'colorpicker-sv"><div class="'+o+'colorpicker-overlay1"><div class="'+o+'colorpicker-overlay2"><div id=&q
 uot;'+e+'-svp" class="'+o+'colorpicker-selector1"><div class="'+o+'colorpicker-selector2"></div></div></div></div></div>'+t+"</div>"}}),Jn=xe.extend({init:function(t){t=R.extend({height:100,text:"Drop an image here",multiple:!1,accept:null},t),this._super(t),this.classes.add("dropzone"),t.multiple&&this.classes.add("multiple")},renderHtml:function(){var t,e,n=this.settings;return t={id:this._id,hidefocus:"1"},e=Pt.create("div",t,"<span>"+this.translate(n.text)+"</span>"),n.height&&Pt.css(e,"height",n.height+"px"),n.width&&Pt.css(e,"width",n.width+"px"),e.className=this.classes,e.outerHTML},postRender:function(){var i=this,t=function(t){t.preventDefault(),i.classes.toggle("dragenter"),i.getEl().className=i.classes};i._super(),i.$el.on("dragover&qu
 ot;,function(t){t.preventDefault()}),i.$el.on("dragenter",t),i.$el.on("dragleave",t),i.$el.on("drop",function(t){if(t.preventDefault(),!i.state.get("disabled")){var e=function(t){var e=i.settings.accept;if("string"!=typeof e)return t;var n=new RegExp("("+e.split(/\s*,\s*/).join("|")+")$","i");return R.grep(t,function(t){return n.test(t.name)})}(t.dataTransfer.files);i.value=function(){return e.length?i.settings.multiple?e:e[0]:null},e.length&&i.fire("change",t)}})},remove:function(){this.$el.off(),this._super()}}),Gn=xe.extend({init:function(t){var n=this;t.delimiter||(t.delimiter="\xbb"),n._super(t),n.classes.add("path"),n.canFocus=!0,n.on("click",function(t){var e;(e=t.target.getAttribute("data-index"))&&n.fire("select",{value:n.row()[e],index:e})}),n.row(n.settings.row)},focus:function(){return this.getEl().firstChil
 d.focus(),this},row:function(t){return arguments.length?(this.state.set("row",t),this):this.state.get("row")},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'">'+this._getDataPathHtml(this.state.get("row"))+"</div>"},bindStates:function(){var e=this;return e.state.on("change:row",function(t){e.innerHtml(e._getDataPathHtml(t.value))}),e._super()},_getDataPathHtml:function(t){var e,n,i=t||[],r="",o=this.classPrefix;for(e=0,n=i.length;e<n;e++)r+=(0<e?'<div class="'+o+'divider" aria-hidden="true"> '+this.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(e===n-1?" "+o+"last":"")+'" data-index="'+e+'" tabindex="-1" id="'+this._id+"-"+e+'" aria-level="'+(e+1)+'">'+i[e].name+&
 quot;</div>";return r||(r='<div class="'+o+'path-item">\xa0</div>'),r}}),Kn=Gn.extend({postRender:function(){var o=this,s=o.settings.editor;function a(t){if(1===t.nodeType){if("BR"===t.nodeName||t.getAttribute("data-mce-bogus"))return!0;if("bookmark"===t.getAttribute("data-mce-type"))return!0}return!1}return!1!==s.settings.elementpath&&(o.on("select",function(t){s.focus(),s.selection.select(this.row()[t.index].element),s.nodeChanged()}),s.on("nodeChange",function(t){for(var e=[],n=t.parents,i=n.length;i--;)if(1===n[i].nodeType&&!a(n[i])){var r=s.fire("ResolveName",{name:n[i].nodeName.toLowerCase(),target:n[i]});if(r.isDefaultPrevented()||e.push({name:r.name,element:n[i]}),r.isPropagationStopped())break}o.row(e)})),o._super()}}),Zn=De.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var t=this,e=t._layout,n=t
 .classPrefix;return t.classes.add("formitem"),e.preRender(t),'<div id="'+t._id+'" class="'+t.classes+'" hidefocus="1" tabindex="-1">'+(t.settings.title?'<div id="'+t._id+'-title" class="'+n+'title">'+t.settings.title+"</div>":"")+'<div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+(t.settings.html||"")+e.renderHtml(t)+"</div></div>"}}),Qn=De.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:15,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var i=this,t=i.items();i.settings.formItemDefaults||(i.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),t.each(function(t){var e,n=t.settings.label;n&&((e=new Zn(R.extend({items:{type:&quo
 t;label",id:t._id+"-l",text:n,flex:0,forId:t._id,disabled:t.disabled()}},i.settings.formItemDefaults))).type="formitem",t.aria("labelledby",t._id+"-l"),"undefined"==typeof t.settings.flex&&(t.settings.flex=1),i.replace(t,e),e.add(t))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){this._super(),this.fromJSON(this.settings.data)},bindStates:function(){var n=this;function t(){var t,e,i=0,r=[];if(!1!==n.settings.labelGapCalc)for(("children"===n.settings.labelGapCalc?n.find("formitem"):n.items()).filter("formitem").each(function(t){var e=t.items()[0],n=e.getEl().clientWidth;i=i<n?n:i,r.push(e)}),e=n.settings.labelGap||0,t=r.length;t--;)r[t].settings.minWidth=i+e}n._super(),n.on("show",t),t()}}),ti=Qn.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",
 flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var t=this,e=t._layout,n=t.classPrefix;return t.preRender(),e.preRender(t),'<fieldset id="'+t._id+'" class="'+t.classes+'" hidefocus="1" tabindex="-1">'+(t.settings.title?'<legend id="'+t._id+'-title" class="'+n+'fieldset-title">'+t.settings.title+"</legend>":"")+'<div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+(t.settings.html||"")+e.renderHtml(t)+"</div></fieldset>"}}),ei=0,ni=function(t){var e=(new Date).getTime();return t+"_"+Math.floor(1e9*Math.random())+ ++ei+String(e)},ii=function(t){if(null===t||t===undefined)throw new Error("Node cannot be null or undefined");return{dom:lt.constant(t)}},ri={fromHtml:function(t,e){var n=(e||document).createElement("div");if(n.innerHTML=t,!n.hasChildNodes()||1<
 n.childNodes.length)throw console.error("HTML does not have a single root node",t),"HTML must have a single root node";return ii(n.childNodes[0])},fromTag:function(t,e){var n=(e||document).createElement(t);return ii(n)},fromText:function(t,e){var n=(e||document).createTextNode(t);return ii(n)},fromDom:ii,fromPoint:function(t,e,n){return mt.from(t.dom().elementFromPoint(e,n)).map(ii)}},oi=function(t){var e,n=!1;return function(){return n||(n=!0,e=t.apply(null,arguments)),e}},si=9,ai=1,li=3,ui=function(t){return t.dom().nodeType},ci=function(e){return function(t){return ui(t)===e}},di=(ci(ai),ci(li),ci(si),oi(function(){return di(ri.fromDom(document))}),function(t){var e=t.dom().body;if(null===e||e===undefined)throw"Body is not available yet";return ri.fromDom(e)}),fi=(sn=Object.keys)===undefined?function(t){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}:sn,hi=function(t,e){for(var n=fi(t),i=0,r=n.length;i<r;i++){var o=n[i];e(
 t[o],o,t)}},mi=function(i,r){var o={};return hi(i,function(t,e){var n=r(t,e,i);o[n.k]=n.v}),o},gi=function(t,n){var i=[];return hi(t,function(t,e){i.push(n(t,e))}),i},pi=function(t){return gi(t,function(t){return t})},vi={bifilter:function(t,n){var i={},r={};return hi(t,function(t,e){(n(t,e)?i:r)[e]=t}),{t:i,f:r}},each:hi,map:function(t,i){return mi(t,function(t,e,n){return{k:e,v:i(t,e,n)}})},mapToArray:gi,tupleMap:mi,find:function(t,e){for(var n=fi(t),i=0,r=n.length;i<r;i++){var o=n[i],s=t[o];if(e(s,o,t))return mt.some(s)}return mt.none()},keys:fi,values:pi,size:function(t){return pi(t).length}},yi=function(t){return t.slice(0).sort()},bi={sort:yi,reqMessage:function(t,e){throw new Error("All required keys ("+yi(t).join(", ")+") were not specified. Specified keys were: "+yi(e).join(", ")+".")},unsuppMessage:function(t){throw new Error("Unsupported keys for object: "+yi(t).join(", "))},validateStrArr:function(e
 ,t){if(!pt.isArray(t))throw new Error("The "+e+" fields must be an array. Was: "+t+".");Tt.each(t,function(t){if(!pt.isString(t))throw new Error("The value "+t+" in the "+e+" fields was not a string.")})},invalidTypeMessage:function(t,e){throw new Error("All values need to be of type: "+e+". Keys ("+yi(t).join(", ")+") were not.")},checkDupes:function(t){var n=yi(t);Tt.find(n,function(t,e){return e<n.length-1&&t===n[e+1]}).each(function(t){throw new Error("The field: "+t+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})}},xi={immutable:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];if(e.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+e.length+']", got '+n.length+&q
 uot; arguments");var i={};return Tt.each(e,function(t,e){i[t]=lt.constant(n[e])}),i}},immutableBag:function(r,o){var s=r.concat(o);if(0===s.length)throw new Error("You must specify at least one required or optional field.");return bi.validateStrArr("required",r),bi.validateStrArr("optional",o),bi.checkDupes(s),function(e){var n=vi.keys(e);Tt.forall(r,function(t){return Tt.contains(n,t)})||bi.reqMessage(r,n);var t=Tt.filter(n,function(t){return!Tt.contains(s,t)});0<t.length&&bi.unsuppMessage(t);var i={};return Tt.each(r,function(t){i[t]=lt.constant(e[t])}),Tt.each(o,function(t){i[t]=lt.constant(Object.prototype.hasOwnProperty.call(e,t)?mt.some(e[t]):mt.none())}),i}}},wi=function(t,e){var n=function(t,e){for(var n=0;n<t.length;n++){var i=t[n];if(i.test(e))return i}return undefined}(t,e);if(!n)return{major:0,minor:0};var i=function(t){return Number(e.replace(n,"$"+t))};return Ri(i(1),i(2))},_i=function(){return Ri(0,0)},Ri=func
 tion(t,e){return{major:t,minor:e}},Ci={nu:Ri,detect:function(t,e){var n=String(e).toLowerCase();return 0===t.length?_i():wi(t,n)},unknown:_i},ki="Firefox",Ei=function(t,e){return function(){return e===t}},Hi=function(t){var e=t.current;return{current:e,version:t.version,isEdge:Ei("Edge",e),isChrome:Ei("Chrome",e),isIE:Ei("IE",e),isOpera:Ei("Opera",e),isFirefox:Ei(ki,e),isSafari:Ei("Safari",e)}},Si={unknown:function(){return Hi({current:undefined,version:Ci.unknown()})},nu:Hi,edge:lt.constant("Edge"),chrome:lt.constant("Chrome"),ie:lt.constant("IE"),opera:lt.constant("Opera"),firefox:lt.constant(ki),safari:lt.constant("Safari")},Mi="Windows",Ti="Android",Wi="Solaris",Pi="FreeBSD",Ni=function(t,e){return function(){return e===t}},Oi=function(t){var e=t.current;return{current:e,version:t.version,isWindows:Ni(Mi,e),isiOS:Ni("iOS"
 ,e),isAndroid:Ni(Ti,e),isOSX:Ni("OSX",e),isLinux:Ni("Linux",e),isSolaris:Ni(Wi,e),isFreeBSD:Ni(Pi,e)}},Di={unknown:function(){return Oi({current:undefined,version:Ci.unknown()})},nu:Oi,windows:lt.constant(Mi),ios:lt.constant("iOS"),android:lt.constant(Ti),linux:lt.constant("Linux"),osx:lt.constant("OSX"),solaris:lt.constant(Wi),freebsd:lt.constant(Pi)},Ai=function(t,e){var n=String(e).toLowerCase();return Tt.find(t,function(t){return t.search(n)})},Bi=function(t,n){return Ai(t,n).map(function(t){var e=Ci.detect(t.versionRegexes,n);return{current:t.name,version:e}})},Li=function(t,n){return Ai(t,n).map(function(t){var e=Ci.detect(t.versionRegexes,n);return{current:t.name,version:e}})},Ii=function(t,e){return-1!==t.indexOf(e)},zi=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Fi=function(e){return function(t){return Ii(t,e)}},Vi=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(t){return Ii(t,"edge/&
 quot;)&&Ii(t,"chrome")&&Ii(t,"safari")&&Ii(t,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,zi],search:function(t){return Ii(t,"chrome")&&!Ii(t,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(t){return Ii(t,"msie")||Ii(t,"trident")}},{name:"Opera",versionRegexes:[zi,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Fi("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Fi("firefox")},{name:"Safari",versionRegexes:[zi,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(t){return(Ii(t,"safari")||Ii(t,"mobile/"))&&Ii(t,"applewebkit")}}],qi=[{name:"Windows",search:Fi("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]
 },{name:"iOS",search:function(t){return Ii(t,"iphone")||Ii(t,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Fi("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Fi("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Fi("linux"),versionRegexes:[]},{name:"Solaris",search:Fi("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Fi("freebsd"),versionRegexes:[]}],Ui={browsers:lt.constant(Vi),oses:lt.constant(qi)},ji=function(t){var e,n,i,r,o,s,a,l,u,c,d,f=Ui.browsers(),h=Ui.oses(),m=Bi(f,t).fold(Si.unknown,Si.nu),g=Li(h,t).fold(Di.unknown,Di.nu);return{browser:m,os:g,deviceType:(n=m,i=t,r=(e=g).isiOS()&&!0===/ipad/i.test(i),o=e.isiOS()&&!r,s=e.isAndroid()&&3===e.version.
 major,a=e.isAndroid()&&4===e.version.major,l=r||s||a&&!0===/mobile/i.test(i),u=e.isiOS()||e.isAndroid(),c=u&&!l,d=n.isSafari()&&e.isiOS()&&!1===/safari/i.test(i),{isiPad:lt.constant(r),isiPhone:lt.constant(o),isTablet:lt.constant(l),isPhone:lt.constant(c),isTouch:lt.constant(u),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:lt.constant(d)})}},$i=oi(function(){var t=navigator.userAgent;return ji(t)}),Yi=ai,Xi=si,Ji=function(t){return t.nodeType!==Yi&&t.nodeType!==Xi||0===t.childElementCount},Gi={all:function(t,e){var n=e===undefined?document:e.dom();return Ji(n)?[]:Tt.map(n.querySelectorAll(t),ri.fromDom)},is:function(t,e){var n=t.dom();if(n.nodeType!==Yi)return!1;if(n.matches!==undefined)return n.matches(e);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(e);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(e);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(e);throw new Error("Browse
 r lacks native selectors")},one:function(t,e){var n=e===undefined?document:e.dom();return Ji(n)?mt.none():mt.from(n.querySelector(t)).map(ri.fromDom)}},Ki=($i().browser.isIE(),xi.immutable("element","offset"),function(t,e){return Gi.all(e,t)}),Zi=R.trim,Qi=function(e){return function(t){if(t&&1===t.nodeType){if(t.contentEditable===e)return!0;if(t.getAttribute("data-mce-contenteditable")===e)return!0}return!1}},tr=Qi("true"),er=Qi("false"),nr=function(t,e,n,i,r){return{type:t,title:e,url:n,level:i,attach:r}},ir=function(t){return t.innerText||t.textContent},rr=function(t){return(e=t)&&"A"===e.nodeName&&(e.id||e.name)&&sr(t);var e},or=function(t){return t&&/^(H[1-6])$/.test(t.nodeName)},sr=function(t){return function(t){for(;t=t.parentNode;){var e=t.contentEditable;if(e&&"inherit"!==e)return tr(t)}return!1}(t)&&!er(t)},ar=function(t){return or(t)&&
 sr(t)},lr=function(t){var e,n,i=(e=t).id?e.id:ni("h");return nr("header",ir(t),"#"+i,or(n=t)?parseInt(n.nodeName.substr(1),10):0,function(){t.id=i})},ur=function(t){var e=t.id||t.name,n=ir(t);return nr("anchor",n||"#"+e,"#"+e,0,lt.noop)},cr=function(t){var e,n;return e="h1,h2,h3,h4,h5,h6,a:not([href])",n=t,Tt.map(Ki(ri.fromDom(n),e),function(t){return t.dom()})},dr=function(t){return 0<Zi(t.title).length},fr=function(t){var e,n,i=cr(t);return Tt.filter((n=i,Tt.map(Tt.filter(n,ar),lr)).concat((e=i,Tt.map(Tt.filter(e,rr),ur))),dr)},hr={},mr=function(t){return{title:t.title,value:{title:{raw:t.title},url:t.url,attach:t.attach}}},gr=function(t,e){return{title:t,value:{title:t,url:e,attach:lt.noop}}},pr=function(t,e,n){var i=e in t?t[e]:n;return!1===i?null:i},vr=function(t,i,r,e){var n,o,s,a,l={title:"-"},u=function(t){var e=t.hasOwnProperty(r)?t[r]:[],n=Tt.filter(e,function(t){return e=t,n=i,!Tt.exists(n,
 function(t){return t.url===e});var e,n});return R.map(n,function(t){return{title:t,value:{title:t,url:t,attach:lt.noop}}})},c=function(e){var t,n=Tt.filter(i,function(t){return t.type===e});return t=n,R.map(t,mr)};return!1===e.typeahead_urls?[]:"file"===r?(n=[yr(t,u(hr)),yr(t,c("header")),yr(t,(o=c("anchor"),s=pr(e,"anchor_top","#top"),a=pr(e,"anchor_bottom","#bottom"),null!==s&&o.unshift(gr("<top>",s)),null!==a&&o.push(gr("<bottom>",a)),o))],Tt.foldl(n,function(t,e){return 0===t.length||0===e.length?t.concat(e):t.concat(l,e)},[])):yr(t,u(hr))},yr=function(t,e){var n=t.toLowerCase(),i=R.grep(e,function(t){return-1!==t.title.toLowerCase().indexOf(n)});return 1===i.length&&i[0].title===t?[]:i},br=function(r,i,o,s){var e=function(t){var e=fr(o),n=vr(t,e,s,i);r.showAutoComplete(n,t)};r.on("autocomplete",function(){e(r.value())}),r.on("selectitem&qu
 ot;,function(t){var e=t.value;r.value(e.url);var n,i=(n=e.title).raw?n.raw:n;"image"===s?r.fire("change",{meta:{alt:i,attach:e.attach}}):r.fire("change",{meta:{text:i,attach:e.attach}}),r.focus()}),r.on("click",function(t){0===r.value().length&&"INPUT"===t.target.nodeName&&e("")}),r.on("PostRender",function(){r.getRoot().on("submit",function(t){var e,n,i;t.isDefaultPrevented()||(e=r.value(),i=hr[n=s],/^https?/.test(e)&&(i?Tt.indexOf(i,e).isNone()&&(hr[n]=i.slice(0,5).concat(e)):hr[n]=[e]))})})},xr=function(o,t,n){var i=t.filepicker_validator_handler;i&&o.state.on("change:value",function(t){var e;0!==(e=t.value).length?i({url:e,type:n},function(t){var e,n,i,r=(n=(e=t).status,i=e.message,"valid"===n?{status:"ok",message:i}:"unknown"===n?{status:"warn",message:i}:"invalid"===n?{status:"warn",message
 :i}:{status:"none",message:""});o.statusMessage(r.message),o.statusLevel(r.status)}):o.statusLevel("none")})},wr=Vn.extend({Statics:{clearHistory:function(){hr={}}},init:function(t){var e,n,i,r=this,o=window.tinymce?window.tinymce.activeEditor:T.activeEditor,s=o.settings,a=t.filetype;t.spellcheck=!1,(i=s.file_picker_types||s.file_browser_callback_types)&&(i=R.makeMap(i,/[, ]/)),i&&!i[a]||(!(n=s.file_picker_callback)||i&&!i[a]?!(n=s.file_browser_callback)||i&&!i[a]||(e=function(){n(r.getEl("inp").id,r.value(),a,window)}):e=function(){var t=r.fire("beforecall").meta;t=R.extend({filetype:a},t),n.call(o,function(t,e){r.value(t).fire("change",{meta:e})},r.value(),t)}),e&&(t.icon="browse",t.onaction=e),r._super(t),r.classes.add("filepicker"),br(r,s,o.getBody(),a),xr(r,s,a)}}),_r=An.extend({recalc:function(t){var e=t.layoutRect(),n=t.paddingBox;t.items().filter(":vis
 ible").each(function(t){t.layoutRect({x:n.left,y:n.top,w:e.innerW-n.right-n.left,h:e.innerH-n.top-n.bottom}),t.recalc&&t.recalc()})}}),Rr=An.extend({recalc:function(t){var e,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,y,b,x,w,_,R,C,k,E,H,S,M,T,W,P,N,O,D,A,B,L=[],I=Math.max,z=Math.min;for(i=t.items().filter(":visible"),r=t.layoutRect(),o=t.paddingBox,s=t.settings,f=t.isRtl()?s.direction||"row-reversed":s.direction,a=s.align,l=t.isRtl()?s.pack||"end":s.pack,u=s.spacing||0,"row-reversed"!==f&&"column-reverse"!==f||(i=i.set(i.toArray().reverse()),f=f.split("-")[0]),"column"===f?(C="y",_="h",R="minH",k="maxH",H="innerH",E="top",S="deltaH",M="contentH",O="left",P="w",T="x",W="innerW",N="minW",D="right",A="deltaW",B="contentW"):(C="x",_="w&
 quot;,R="minW",k="maxW",H="innerW",E="left",S="deltaW",M="contentW",O="top",P="h",T="y",W="innerH",N="minH",D="bottom",A="deltaH",B="contentH"),d=r[H]-o[E]-o[E],w=c=0,e=0,n=i.length;e<n;e++)m=(h=i[e]).layoutRect(),d-=e<n-1?u:0,0<(g=h.settings.flex)&&(c+=g,m[k]&&L.push(h),m.flex=g),d-=m[R],w<(p=o[O]+m[N]+o[D])&&(w=p);if((b={})[R]=d<0?r[R]-d+r[S]:r[H]-d+r[S],b[N]=w+r[A],b[M]=r[H]-d,b[B]=w,b.minW=z(b.minW,r.maxW),b.minH=z(b.minH,r.maxH),b.minW=I(b.minW,r.startMinWidth),b.minH=I(b.minH,r.startMinHeight),!r.autoResize||b.minW===r.minW&&b.minH===r.minH){for(y=d/c,e=0,n=L.length;e<n;e++)(v=(m=(h=L[e]).layoutRect())[k])<(p=m[R]+m.flex*y)?(d-=m[k]-m[R],c-=m.flex,m.flex=0,m.maxFlexSize=v):m.maxFlexSize=0;for(y=d/c,x=o[E],b={},0===c&&("end"===l?x=d+o[E]:"center"===l?(x=Math.ro
 und(r[H]/2-(r[H]-d)/2)+o[E])<0&&(x=o[E]):"justify"===l&&(x=o[E],u=Math.floor(d/(i.length-1)))),b[T]=o[O],e=0,n=i.length;e<n;e++)p=(m=(h=i[e]).layoutRect()).maxFlexSize||m[R],"center"===a?b[T]=Math.round(r[W]/2-m[P]/2):"stretch"===a?(b[P]=I(m[N]||0,r[W]-o[O]-o[D]),b[T]=o[O]):"end"===a&&(b[T]=r[W]-m[P]-o.top),0<m.flex&&(p+=m.flex*y),b[_]=p,b[C]=x,h.layoutRect(b),h.recalc&&h.recalc(),x+=p+u}else if(b.w=b.minW,b.h=b.minH,t.layoutRect(b),this.recalc(t),null===t._lastRect){var F=t.parent();F&&(F._lastRect=null,F.recalc())}}}),Cr=Dn.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(t){t.items().filter(":visible").each(function(t){t.recalc&&t.recalc()})},isNative:function(){return!0}}),kr=function(t,e){return Gi.one(e,t)},Er=function(t,e){return function(){t.execCommand("mceToggleF
 ormat",!1,e)}},Hr=function(t,n){return function(){var e=this;t.formatter?t.formatter.formatChanged(n,function(t){e.active(t)}):t.on("init",function(){t.formatter.formatChanged(n,function(t){e.active(t)})})}},Sr=function(n){n.addMenuItem("align",{text:"Align",menu:[{text:"Left",icon:"alignleft",onclick:Er(n,"alignleft")},{text:"Center",icon:"aligncenter",onclick:Er(n,"aligncenter")},{text:"Right",icon:"alignright",onclick:Er(n,"alignright")},{text:"Justify",icon:"alignjustify",onclick:Er(n,"alignjustify")}]}),R.each({alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(t,e)
 {n.addButton(e,{active:!1,tooltip:t[0],cmd:t[1],onPostRender:Hr(n,e)})})},Mr=function(t){return t?t.split(",")[0]:""},Tr=function(a,l){return function(){var s=this;a.on("init nodeChange",function(t){var e,n,i,r=a.queryCommandValue("FontName"),o=(e=l,n=r,R.each(e,function(t){t.value.toLowerCase()===n.toLowerCase()&&(i=t.value)}),R.each(e,function(t){i||Mr(t.value).toLowerCase()!==Mr(n).toLowerCase()||(i=t.value)}),i);s.value(o||null),!o&&r&&s.text(Mr(r))})}},Wr=function(n){n.addButton("fontselect",function(){var t,e=(t=function(t){for(var e=(t=t.replace(/;$/,"").split(";")).length;e--;)t[e]=t[e].split("=");return t}(n.settings.font_formats||"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia
 ,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats"),R.map(t,function(t){return{text:{raw:t[0]},value:t[1],textStyle:-1===t[1].indexOf("dings")?"font-family:"+t[1]:""}}));return{type:"listbox",text:"Font Family",tooltip:"Font Family",values:e,fixedWidth:!0,onPostRender:Tr(n,e),onselect:function(t){t.control.settings.value&&n.execCommand("FontName",!1,t.control.settings.value)}}})},Pr=function(t){Wr(t)},Nr=function(t,e){return/[0-9.]+px$/.test(t)?(n=72*parseInt(t,10)/96,i=e||0,r=Math.pow(10,i),Math.round(n*r)/r+"pt"):t;var n,i,r},Or=function(t,e,n){var i;return R.each(t,function(t){t.value===n?i=n:t.value==
 =e&&(i=e)}),i},Dr=function(n){n.addButton("fontsizeselect",function(){var t,s,a,e=(t=n.settings.fontsize_formats||"8pt 10pt 12pt 14pt 18pt 24pt 36pt",R.map(t.split(" "),function(t){var e=t,n=t,i=t.split("=");return 1<i.length&&(e=i[0],n=i[1]),{text:e,value:n}}));return{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:e,fixedWidth:!0,onPostRender:(s=n,a=e,function(){var o=this;s.on("init nodeChange",function(t){var e,n,i,r;if(e=s.queryCommandValue("FontSize"))for(i=3;!r&&0<=i;i--)n=Nr(e,i),r=Or(a,n,e);o.value(r||null),r||o.text(n)})}),onclick:function(t){t.control.settings.value&&n.execCommand("FontSize",!1,t.control.settings.value)}}})},Ar=function(t){Dr(t)},Br=function(n,t){var i=t.length;return R.each(t,function(t){t.menu&&(t.hidden=0===Br(n,t.menu));var e=t.format;e&&(t.hidden=!n.formatter.canApply(e)),t.hidden&&
 amp;i--}),i},Lr=function(n,t){var i=t.items().length;return t.items().each(function(t){t.menu&&t.visible(0<Lr(n,t.menu)),!t.menu&&t.settings.menu&&t.visible(0<Br(n,t.settings.menu));var e=t.settings.format;e&&t.visible(n.formatter.canApply(e)),t.visible()||i--}),i},Ir=function(t){var i,r,o,e,s,n,a,l,u=(r=0,o=[],e=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough&
 quot;,icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}],s=function(t){var i=[];if(t)return R.each(t,function(
 t){var e={text:t.title,icon:t.icon};if(t.items)e.menu=s(t.items);else{var n=t.format||"custom"+r++;t.format||(t.name=n,o.push(t)),e.format=n,e.cmd=t.cmd}i.push(e)}),i},(i=t).on("init",function(){R.each(o,function(t){i.formatter.register(t.name,t)})}),{type:"menu",items:i.settings.style_formats_merge?i.settings.style_formats?s(e.concat(i.settings.style_formats)):s(e):s(i.settings.style_formats||e),onPostRender:function(t){i.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return i.formatter.getCssText(this.settings.format)},onPostRender:function(){var n=this;n.parent().on("show",function(){var t,e;(t=n.settings.format)&&(n.disabled(!i.formatter.canApply(t)),n.active(i.formatter.match(t))),(e=n.settings.cmd)&&n.active(i.queryCommandState(e))})},onclick:function(){this.settings.format&&Er(i,this.settings.format)(),this.settings.cmd&&i.exe
 cCommand(this.settings.cmd)}}});n=u,t.addMenuItem("formats",{text:"Formats",menu:n}),l=u,(a=t).addButton("styleselect",{type:"menubutton",text:"Formats",menu:l,onShowMenu:function(){a.settings.style_formats_autohide&&Lr(a,this.menu)}})},zr=function(n,t){return function(){var r,o,s,e=[];return R.each(t,function(t){e.push({text:t[0],value:t[1],textStyle:function(){return n.formatter.getCssText(t[1])}})}),{type:"listbox",text:t[0][0],values:e,fixedWidth:!0,onselect:function(t){if(t.control){var e=t.control.value();Er(n,e)()}},onPostRender:(r=n,o=e,function(){var e=this;r.on("nodeChange",function(t){var n=r.formatter,i=null;R.each(t.parents,function(e){if(R.each(o,function(t){if(s?n.matchNode(e,s,{value:t.value})&&(i=t.value):n.matchNode(e,t.value)&&(i=t.value),i)return!1}),i)return!1}),e.value(i)})})}}},Fr=function(t){var e,n,i=function(t){for(var e=(t=t.replace(/;$/,"").split("
 ;")).length;e--;)t[e]=t[e].split("=");return t}(t.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");t.addMenuItem("blockformats",{text:"Blocks",menu:(e=t,n=i,R.map(n,function(t){return{text:t[0],onclick:Er(e,t[1]),textStyle:function(){return e.formatter.getCssText(t[1])}}}))}),t.addButton("formatselect",zr(t,i))},Vr=function(e,t){var n,i;if("string"==typeof t)i=t.split(" ");else if(R.isArray(t))return Tt.flatten(R.map(t,function(t){return Vr(e,t)}));return n=R.grep(i,function(t){return"|"===t||t in e.menuItems}),R.map(n,function(t){return"|"===t?{text:"-"}:e.menuItems[t]})},qr=function(t){return t&&"-"===t.text},Ur=function(t){var e=Tt.filter(t,function(t,e,n){return!qr(t)||!qr(n[e-1])});return Tt.filter(e,function(t,e,n){return!qr(t)||0<e&&e<n.length-1})},jr=functi
 on(t){var e,n,i,r,o=t.settings.insert_button_items;return Ur(o?Vr(t,o):(e=t,n="insert",i=[{text:"-"}],r=R.grep(e.menuItems,function(t){return t.context===n}),R.each(r,function(t){"before"===t.separator&&i.push({text:"|"}),t.prependToContext?i.unshift(t):i.push(t),"after"===t.separator&&i.push({text:"|"})}),i))},$r=function(t){var e;(e=t).addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(jr(e)),this.menu.renderNew()}})},Yr=function(t){var n,i,r;n=t,R.each({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,e){n.addButton(e,{active:!1,tooltip:t,onPostRender:Hr(n,e),onclick:Er(n,e)})}),i=t,R.each({outdent:["Decrease indent","Outdent"],indent:["Increase indent&quot
 ;,"Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"],removeformat:["Clear formatting","RemoveFormat"],remove:["Remove","Delete"]},function(t,e){i.addButton(e,{tooltip:t[0],cmd:t[1]})}),r=t,R.each({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"]},function(t,e){r.addButton(e,{active:!1,tooltip:t[0],cmd:t[1],onPostRender:Hr(r,e)})})},Xr=function(t){var n;Yr(t),n=t,R.each({bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],u
 nderline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"],newdocument:["New document","mceNewDocument"],cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"]},function(t,e){n.addMenuItem(e,{text:t[0],icon:e,shortcut:t[2],cmd:t[1]})}),n.addMenuItem("codeformat",{text:"Code",icon:"code",onclick:Er(n,"code")})},Jr=function(n,i){return function(){var t=this,e=function(){var t="redo"===i?"hasRedo":"hasUndo";return!!n.undoManager&&a
 mp;n.undoManager[t]()};t.disabled(!e()),n.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){t.disabled(n.readonly||!e())})}},Gr=function(t){var e,n;(e=t).addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:Jr(e,"undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:Jr(e,"redo"),cmd:"redo"}),(n=t).addButton("undo",{tooltip:"Undo",onPostRender:Jr(n,"undo"),cmd:"undo"}),n.addButton("redo",{tooltip:"Redo",onPostRender:Jr(n,"redo"),cmd:"redo"})},Kr=function(t){var e,n;(e=t).addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:(n=e,function(){var e=this;n.on("VisualAid",function(t){e.active(t.hasVisual)}),e.active(n.hasVisual)}),cmd:"mceToggleVisual
 Aid"})},Zr={setup:function(t){var e;t.rtl&&(fe.rtl=!0),t.on("mousedown",function(){je.hideAll()}),(e=t).settings.ui_container&&(h.container=kr(ri.fromDom(document.body),e.settings.ui_container).fold(lt.constant(null),function(t){return t.dom()})),xe.tooltips=!h.iOS,fe.translate=function(t){return T.translate(t)},Fr(t),Sr(t),Xr(t),Gr(t),Ar(t),Pr(t),Ir(t),Kr(t),$r(t)}},Qr=An.extend({recalc:function(t){var e,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,y,b,x,w,_,R,C,k,E,H,S,M=[],T=[];e=t.settings,r=t.items().filter(":visible"),o=t.layoutRect(),i=e.columns||Math.ceil(Math.sqrt(r.length)),n=Math.ceil(r.length/i),y=e.spacingH||e.spacing||0,b=e.spacingV||e.spacing||0,x=e.alignH||e.align,w=e.alignV||e.align,p=t.paddingBox,S="reverseRows"in e?e.reverseRows:t.isRtl(),x&&"string"==typeof x&&(x=[x]),w&&"string"==typeof w&&(w=[w]);for(d=0;d<i;d++)M.push(0);for(f=0;f<n;f++)T.push(0);for(f=0;f<n;f++)
 for(d=0;d<i&&(c=r[f*i+d]);d++)C=(u=c.layoutRect()).minW,k=u.minH,M[d]=C>M[d]?C:M[d],T[f]=k>T[f]?k:T[f];for(E=o.innerW-p.left-p.right,d=_=0;d<i;d++)_+=M[d]+(0<d?y:0),E-=(0<d?y:0)+M[d];for(H=o.innerH-p.top-p.bottom,f=R=0;f<n;f++)R+=T[f]+(0<f?b:0),H-=(0<f?b:0)+T[f];if(_+=p.left+p.right,R+=p.top+p.bottom,(l={}).minW=_+(o.w-o.innerW),l.minH=R+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW===o.minW&&l.minH===o.minH){var W;o.autoResize&&((l=t.layoutRect(l)).contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH),W="start"===e.packV?0:0<H?Math.floor(H/n):0;var P=0,N=e.flexWidths;if(N)for(d=0;d<N.length;d++)P+=N[d];else P=i;var O=E/P;for(d=0;d<i;d++)M[d]+=N?N[d]*O:O;for(m=p.top,f=0;f<n;f++){for(h=p.left,a=T[f]+W,d=0;d<i&&(c=r[S?
 f*i+i-1-d:f*i+d]);d++)g=c.settings,u=c.layoutRect(),s=Math.max(M[d],u.startMinWidth),u.x=h,u.y=m,"center"===(v=g.alignH||(x?x[d]||x[0]:null))?u.x=h+s/2-u.w/2:"right"===v?u.x=h+s-u.w:"stretch"===v&&(u.w=s),"center"===(v=g.alignV||(w?w[d]||w[0]:null))?u.y=m+a/2-u.h/2:"bottom"===v?u.y=m+a-u.h:"stretch"===v&&(u.h=a),c.layoutRect(u),h+=s+y,c.recalc&&c.recalc();m+=a+b}}else if(l.w=l.minW,l.h=l.minH,t.layoutRect(l),this.recalc(t),null===t._lastRect){var D=t.parent();D&&(D._lastRect=null,D.recalc())}}}),to=xe.extend({renderHtml:function(){var t=this;return t.classes.add("iframe"),t.canFocus=!1,'<iframe id="'+t._id+'" class="'+t.classes+'" tabindex="-1" src="'+(t.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(t){this.getEl().src=t},html:function(t,e){var n=this,i=this.getEl().contentWindow.doc
 ument.body;return i?(i.innerHTML=t,e&&e()):c.setTimeout(function(){n.html(t)}),this}}),eo=xe.extend({init:function(t){this._super(t),this.classes.add("widget").add("infobox"),this.canFocus=!1},severity:function(t){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(t)},help:function(t){this.state.set("help",t)},renderHtml:function(){var t=this,e=t.classPrefix;return'<div id="'+t._id+'" class="'+t.classes+'"><div id="'+t._id+'-body">'+t.encode(t.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+e+"ico "+e+'i-help"></i></button></div></div>'},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl("body").firstChild.data=e.encode(t.value),e.state.get("rendered")
 &&e.updateLayoutRect()}),e.state.on("change:help",function(t){e.classes.toggle("has-help",t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}}),no=xe.extend({init:function(t){var e=this;e._super(t),e.classes.add("widget").add("label"),e.canFocus=!1,t.multiline&&e.classes.add("autoscroll"),t.strong&&e.classes.add("strong")},initLayoutRect:function(){var t=this,e=t._super();return t.settings.multiline&&(Pt.getSize(t.getEl()).width>e.maxW&&(e.minW=e.maxW,t.classes.add("multiline")),t.getEl().style.width=e.minW+"px",e.startMinH=e.h=e.minH=Math.min(e.maxH,Pt.getSize(t.getEl()).height)),e},repaint:function(){return this.settings.multiline||(this.getEl().style.lineHeight=this.layoutRect().h+"px"),this._super()},severity:function(t){this.classes.remove("error"),this.classes.remove("warning"),this.classes.r
 emove("success"),this.classes.add(t)},renderHtml:function(){var t,e,n=this,i=n.settings.forId,r=n.settings.html?n.settings.html:n.encode(n.state.get("text"));return!i&&(e=n.settings.forName)&&(t=n.getRoot().find("#"+e)[0])&&(i=t._id),i?'<label id="'+n._id+'" class="'+n.classes+'"'+(i?' for="'+i+'"':"")+">"+r+"</label>":'<span id="'+n._id+'" class="'+n.classes+'">'+r+"</span>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.innerHtml(e.encode(t.value)),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}}),io=De.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(t){this._super(t),this.classes.add("toolbar")},postRender:function(){return this.items().each(function(t){t.classes.add("toolbar-item")}),this.
 _super()}}),ro=io.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}}),oo=Bn.extend({init:function(t){var e=this;e._renderOpen=!0,e._super(t),t=e.settings,e.classes.add("menubtn"),t.fixedWidth&&e.classes.add("fixed-width"),e.aria("haspopup",!0),e.state.set("menu",t.menu||e.render())},showMenu:function(t){var e,n=this;if(n.menu&&n.menu.visible()&&!1!==t)return n.hideMenu();n.menu||(e=n.state.get("menu")||[],n.classes.add("opened"),e.length?e={type:"menu",animate:!0,items:e}:(e.type=e.type||"menu",e.animate=!0),e.renderTo?n.menu=e.parent(n).show().renderTo():n.menu=He.create(e).parent(n).renderTo(),n.fire("createmenu"),n.menu.reflow(),n.menu.on("cancel",function(t){t.control.parent()===n.menu&&(t.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){
 n.focus()}),n.menu.on("show hide",function(t){t.control===n.menu&&(n.activeMenu("show"===t.type),n.classes.toggle("opened","show"===t.type)),n.aria("expanded","show"===t.type)}).fire("show")),n.menu.show(),n.menu.layoutRect({w:n.layoutRect().w}),n.menu.repaint(),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),n.fire("showmenu")},hideMenu:function(){this.menu&&(this.menu.items().each(function(t){t.hideMenu&&t.hideMenu()}),this.menu.hide())},activeMenu:function(t){this.classes.toggle("active",t)},renderHtml:function(){var t,e=this,n=e._id,i=e.classPrefix,r=e.settings.icon,o=e.state.get("text"),s="";return(t=e.settings.image)?(r="none","string"!=typeof t&&(t=window.getSelection?t[0]:t[1]),t=" style=\"background-image: url('"+t+"')\"")
 :t="",o&&(e.classes.add("btn-has-text"),s='<span class="'+i+'txt">'+e.encode(o)+"</span>"),r=e.settings.icon?i+"ico "+i+"i-"+r:"",e.aria("role",e.parent()instanceof ro?"menuitem":"button"),'<div id="'+n+'" class="'+e.classes+'" tabindex="-1" aria-labelledby="'+n+'"><button id="'+n+'-open" role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+t+"></i>":"")+s+' <i class="'+i+'caret"></i></button></div>'},postRender:function(){var r=this;return r.on("click",function(t){t.control===r&&function(t,e){for(;t;){if(e===t)return!0;t=t.parentNode}return!1}(t.target,r.getEl())&&(r.focus(),r.showMenu(!t.aria),t.aria&&r.menu.items().filter(":visible")[0
 ].focus())}),r.on("mouseenter",function(t){var e,n=t.control,i=r.parent();n&&i&&n instanceof oo&&n.parent()===i&&(i.items().filter("MenuButton").each(function(t){t.hideMenu&&t!==n&&(t.menu&&t.menu.visible()&&(e=!0),t.hideMenu())}),e&&(n.focus(),n.showMenu()))}),r._super()},bindStates:function(){var t=this;return t.state.on("change:menu",function(){t.menu&&t.menu.remove(),t.menu=null}),t._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}});function so(i,r){var o,s,a=this,l=fe.classPrefix;a.show=function(t,e){function n(){o&&(Nt(i).append('<div class="'+l+"throbber"+(r?" "+l+"throbber-inline":"")+'"></div>'),e&&e())}return a.hide(),o=!0,t?s=c.setTimeout(n,t):n(),a},a.hide=function(){var t=i.lastChild;return c.clearTimeout(s),t&&-1!==t.className.indexOf("thro
 bber")&&t.parentNode.removeChild(t),o=!1,a}}var ao=je.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(t){if(t.autohide=!0,t.constrainToViewport=!0,"function"==typeof t.items&&(t.itemsFactory=t.items,t.items=[]),t.itemDefaults)for(var e=t.items,n=e.length;n--;)e[n]=R.extend({},t.itemDefaults,e[n]);this._super(t),this.classes.add("menu"),t.animate&&11!==h.ie&&this.classes.add("animate")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){this.hideAll(),this.fire("select")},load:function(){var e,n=this;function i(){n.throbber&&(n.throbber.hide(),n.throbber=null)}n.settings.itemsFactory&&(n.throbber||(n.throbber=new so(n.getEl(
 "body"),!0),0===n.items().length?(n.throbber.show(),n.fire("loading")):n.throbber.show(100,function(){n.items().remove(),n.fire("loading")}),n.on("hide close",i)),n.requestTime=e=(new Date).getTime(),n.settings.itemsFactory(function(t){0!==t.length?n.requestTime===e&&(n.getEl().style.width="",n.getEl("body").style.width="",i(),n.items().remove(),n.getEl("body").innerHTML="",n.add(t),n.renderNew(),n.fire("loaded")):n.hide()}))},hideAll:function(){return this.find("menuitem").exec("hideMenu"),this._super()},preRender:function(){var n=this;return n.items().each(function(t){var e=t.settings;if(e.icon||e.image||e.selectable)return!(n._hasIcons=!0)}),n.settings.itemsFactory&&n.on("postrender",function(){n.settings.itemsFactory&&n.load()}),n.on("show hide",function(t){t.control===n&&("show"===t.type?c.setTimeou
 t(function(){n.classes.add("in")},0):n.classes.remove("in"))}),n._super()}}),lo=oo.extend({init:function(i){var e,r,o,n,s=this;s._super(i),i=s.settings,s._values=e=i.values,e&&("undefined"!=typeof i.value&&function t(e){for(var n=0;n<e.length;n++){if(r=e[n].selected||i.value===e[n].value)return o=o||e[n].text,s.state.set("value",e[n].value),!0;if(e[n].menu&&t(e[n].menu))return!0}}(e),!r&&0<e.length&&(o=e[0].text,s.state.set("value",e[0].value)),s.state.set("menu",e)),s.state.set("text",i.text||o),s.classes.add("listbox"),s.on("select",function(t){var e=t.control;n&&(t.lastControl=n),i.multiple?e.active(!e.active()):s.value(t.control.value()),n=e})},value:function(e){return 0===arguments.length?this.state.get("value"):(void 0===e||(this.settings.values?0<R.grep(this.settings.values,function(t){return t.value===e}).length?this.sta
 te.set("value",e):null===e&&this.state.set("value",null):this.state.set("value",e)),this)},bindStates:function(){var i=this;return i.on("show",function(t){var e,n;e=t.control,n=i.value(),e instanceof ao&&e.items().each(function(t){t.hasMenus()||t.active(t.value()===n)})}),i.state.on("change:value",function(e){var n=function t(e,n){var i;if(e)for(var r=0;r<e.length;r++){if(e[r].value===n)return e[r];if(e[r].menu&&(i=t(e[r].menu,n)))return i}}(i.state.get("menu"),e.value);n?i.text(n.text):i.text(i.settings.text)}),i._super()}}),uo=xe.extend({Defaults:{border:0,role:"menuitem"},init:function(t){var e,n=this;n._super(t),t=n.settings,n.classes.add("menu-item"),t.menu&&n.classes.add("menu-item-expand"),t.preview&&n.classes.add("menu-item-preview"),"-"!==(e=n.state.get("text"))&&"|"!==e||(n.classes.add("men
 u-item-sep"),n.aria("role","separator"),n.state.set("text","-")),t.selectable&&(n.aria("role","menuitemcheckbox"),n.classes.add("menu-item-checkbox"),t.icon="selected"),t.preview||t.selectable||n.classes.add("menu-item-normal"),n.on("mousedown",function(t){t.preventDefault()}),t.menu&&!t.ariaHideMenu&&n.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e,n=this,t=n.settings,i=n.parent();if(i.items().each(function(t){t!==n&&t.hideMenu()}),t.menu){(e=n.menu)?e.show():((e=t.menu).length?e={type:"menu",items:e}:e.type=e.type||"menu",i.settings.itemDefaults&&(e.itemDefaults=i.settings.itemDefaults),(e=n.menu=He.create(e).parent(n).renderTo()).reflow(),e.on("cancel",function(t){t.stopPropagation(),n.focus(),e.hide()}),e.on("show hide",function(t){t.contro
 l.items&&t.control.items().each(function(t){t.active(t.settings.selected)})}).fire("show"),e.on("hide",function(t){t.control===e&&n.classes.remove("selected")}),e.submenu=!0),e._parentMenu=i,e.classes.add("menu-sub");var r=e.testMoveRel(n.getEl(),n.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);e.moveRel(n.getEl(),r),r="menu-sub-"+(e.rel=r),e.classes.remove(e._lastRel).add(r),e._lastRel=r,n.classes.add("selected"),n.aria("expanded",!0)}},hideMenu:function(){var t=this;return t.menu&&(t.menu.items().each(function(t){t.hideMenu&&t.hideMenu()}),t.menu.hide(),t.aria("expanded",!1)),t},renderHtml:function(){var t,e=this,n=e._id,i=e.settings,r=e.classPrefix,o=e.state.get("text"),s=e.settings.icon,a="",l=i.shortcut,u=e.encode(i.url);function c(t){retur
 n t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function d(t){var e=i.match||"";return e?t.replace(new RegExp(c(e),"gi"),function(t){return"!mce~match["+t+"]mce~match!"}):t}function f(t){return t.replace(new RegExp(c("!mce~match["),"g"),"<b>").replace(new RegExp(c("]mce~match!"),"g"),"</b>")}return s&&e.parent().classes.add("menu-has-icons"),i.image&&(a=" style=\"background-image: url('"+i.image+"')\""),l&&(l=function(t){var e,n,i={};for(i=h.mac?{alt:"&#x2325;",ctrl:"&#x2318;",shift:"&#x21E7;",meta:"&#x2318;"}:{meta:"Ctrl"},t=t.split("+"),e=0;e<t.length;e++)(n=i[t[e].toLowerCase()])&&(t[e]=n);return t.join("+")}(l)),s=r+"ico "+r+"i-"+(e.settings.icon||"none"),t="-"!==
 o?'<i class="'+s+'"'+a+"></i>\xa0":"",o=f(e.encode(d(o))),u=f(e.encode(d(u))),'<div id="'+n+'" class="'+e.classes+'" tabindex="-1">'+t+("-"!==o?'<span id="'+n+'-text" class="'+r+'text">'+o+"</span>":"")+(l?'<div id="'+n+'-shortcut" class="'+r+'menu-shortcut">'+l+"</div>":"")+(i.menu?'<div class="'+r+'caret"></div>':"")+(u?'<div class="'+r+'menu-item-link">'+u+"</div>":"")+"</div>"},postRender:function(){var e=this,n=e.settings,t=n.textStyle;if("function"==typeof t&&(t=t.call(this)),t){var i=e.getEl("text");i&&(i.setAttribute("style",t),e._textStyle=t)}return e.on("mouseenter click",function(t){t.control===e&&(n.menu||"click"!==t.type
 ?(e.showMenu(),t.aria&&e.menu.focus(!0)):(e.fire("select"),c.requestAnimationFrame(function(){e.parent().hideAll()})))}),e._super(),e},hover:function(){return this.parent().items().each(function(t){t.classes.remove("selected")}),this.classes.toggle("selected",!0),this},active:function(t){return function(t,e){var n=t._textStyle;if(n){var i=t.getEl("text");i.setAttribute("style",n),e&&(i.style.color="",i.style.backgroundColor="")}}(this,t),void 0!==t&&this.aria("checked",t),this._super(t)},remove:function(){this._super(),this.menu&&this.menu.remove()}}),co=zn.extend({Defaults:{classes:"radio",role:"radio"}}),fo=xe.extend({renderHtml:function(){var t=this,e=t.classPrefix;return t.classes.add("resizehandle"),"both"===t.settings.direction&&t.classes.add("resizehandle-both"),t.canFocus=!1,'<div id="'+t._id+'"
  class="'+t.classes+'"><i class="'+e+"ico "+e+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new Ee(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!==e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}});function ho(t){var e="";if(t)for(var n=0;n<t.length;n++)e+='<option value="'+t[n]+'">'+t[n]+"</option>";return e}var mo=xe.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(t){var n=this;n._super(t),n.settings.size&&(n.size=n.settings.size),n.settings.options&&(n._options=n.settings.options),n.on("keydown",function(t){var e;13===t.keyCode&&(t.prevent
 Default(),n.parents().reverse().each(function(t){if(t.toJSON)return e=t,!1}),n.fire("submit",{data:e.toJSON()}))})},options:function(t){return arguments.length?(this.state.set("options",t),this):this.state.get("options")},renderHtml:function(){var t,e=this,n="";return t=ho(e._options),e.size&&(n=' size = "'+e.size+'"'),'<select id="'+e._id+'" class="'+e.classes+'"'+n+">"+t+"</select>"},bindStates:function(){var e=this;return e.state.on("change:options",function(t){e.getEl().innerHTML=ho(t.value)}),e._super()}});function go(t,e,n){return t<e&&(t=e),n<t&&(t=n),t}function po(t,e,n){t.setAttribute("aria-"+e,n)}function vo(t,e){var n,i,r,o,s;"v"===t.settings.orientation?(r="top",i="height",n="h"):(r="left",i="width",n="w"),s=t.getEl("handle"),o=((t.layoutRect(
 )[n]||100)-Pt.getSize(s)[i])*((e-t._minValue)/(t._maxValue-t._minValue))+"px",s.style[r]=o,s.style.height=t.layoutRect().h+"px",po(s,"valuenow",e),po(s,"valuetext",""+t.settings.previewFilter(e)),po(s,"valuemin",t._minValue),po(s,"valuemax",t._maxValue)}var yo=xe.extend({init:function(t){var e=this;t.previewFilter||(t.previewFilter=function(t){return Math.round(100*t)/100}),e._super(t),e.classes.add("slider"),"v"===t.orientation&&e.classes.add("vertical"),e._minValue=pt.isNumber(t.minValue)?t.minValue:0,e._maxValue=pt.isNumber(t.maxValue)?t.maxValue:100,e._initValue=e.state.get("value")},renderHtml:function(){var t=this._id,e=this.classPrefix;return'<div id="'+t+'" class="'+this.classes+'"><div id="'+t+'-handle" class="'+e+'slider-handle" role="slider" tabindex="-1"></div></div>'},res
 et:function(){this.value(this._initValue).repaint()},postRender:function(){var t,e,n,i,r,o,s,a,l,u,c,d,f,h,m=this;t=m._minValue,e=m._maxValue,"v"===m.settings.orientation?(n="screenY",i="top",r="height",o="h"):(n="screenX",i="left",r="width",o="w"),m._super(),function(o,s){function e(t){var e,n,i,r;e=go(e=(((e=m.value())+(r=n=o))/((i=s)-r)+.05*t)*(i-n)-n,o,s),m.value(e),m.fire("dragstart",{value:e}),m.fire("drag",{value:e}),m.fire("dragend",{value:e})}m.on("keydown",function(t){switch(t.keyCode){case 37:case 38:e(-1);break;case 39:case 40:e(1)}})}(t,e),s=t,a=e,l=m.getEl("handle"),m._dragHelper=new Ee(m._id,{handle:m._id+"-handle",start:function(t){u=t[n],c=parseInt(m.getEl("handle").style[i],10),d=(m.layoutRect()[o]||100)-Pt.getSize(l)[r],m.fire("dragstart",{value:h})},drag:function(t){var e=t[n]-u;f=go(c+e,0,d),l.s
 tyle[i]=f+"px",h=s+f/d*(a-s),m.value(h),m.tooltip().text(""+m.settings.previewFilter(h)).show().moveRel(l,"bc tc"),m.fire("drag",{value:h})},stop:function(){m.tooltip().hide(),m.fire("dragend",{value:h})}})},repaint:function(){this._super(),vo(this,this.value())},bindStates:function(){var e=this;return e.state.on("change:value",function(t){vo(e,t.value)}),e._super()}}),bo=xe.extend({renderHtml:function(){return this.classes.add("spacer"),this.canFocus=!1,'<div id="'+this._id+'" class="'+this.classes+'"></div>'}}),xo=oo.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var t,e,n=this.getEl(),i=this.layoutRect();return this._super(),t=n.firstChild,e=n.lastChild,Nt(t).css({width:i.w-Pt.getSize(e).width,height:i.h-2}),Nt(e).css({height:i.h-2}),this},activeMenu:function(t){Nt(this.getEl().lastChild).toggleClass(this.classPrefix+"ac
 tive",t)},renderHtml:function(){var t,e,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a=n.settings,l="";return(t=a.image)?(o="none","string"!=typeof t&&(t=window.getSelection?t[0]:t[1]),t=" style=\"background-image: url('"+t+"')\""):t="",o=a.icon?r+"ico "+r+"i-"+o:"",s&&(n.classes.add("btn-has-text"),l='<span class="'+r+'txt">'+n.encode(s)+"</span>"),e="boolean"==typeof a.active?' aria-pressed="'+a.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" role="button"'+e+' tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(o?'<i class="'+o+'"'+t+"></i>":"")+l+'</button><button type="button" cl
 ass="'+r+'open" hidefocus="1" tabindex="-1">'+(n._menuBtnText?(o?"\xa0":"")+n._menuBtnText:"")+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var n=this.settings.onclick;return this.on("click",function(t){var e=t.target;if(t.control===this)for(;e;){if(t.aria&&"down"!==t.aria.key||"BUTTON"===e.nodeName&&-1===e.className.indexOf("open"))return t.stopImmediatePropagation(),void(n&&n.call(this,t));e=e.parentNode}}),delete this.settings.onclick,this._super()}}),wo=Cr.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}}),_o=Be.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(n){var t;this.activeTabId&&(t=this.getEl(this.activeTabId),Nt(t).remove
 Class(this.classPrefix+"active"),t.setAttribute("aria-selected","false")),this.activeTabId="t"+n,(t=this.getEl("t"+n)).setAttribute("aria-selected","true"),Nt(t).addClass(this.classPrefix+"active"),this.items()[n].show().fire("showtab"),this.reflow(),this.items().each(function(t,e){n!==e&&t.hide()})},renderHtml:function(){var i=this,t=i._layout,r="",o=i.classPrefix;return i.preRender(),t.preRender(i),i.items().each(function(t,e){var n=i._id+"-t"+e;t.aria("role","tabpanel"),t.aria("labelledby",n),r+='<div id="'+n+'" class="'+o+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+i.encode(t.settings.title)+"</div>"}),'<div id="'+i._id+'" class="'+i.classes+'" hidefocus="1&quot
 ; tabindex="-1"><div id="'+i._id+'-head" class="'+o+'tabs" role="tablist">'+r+'</div><div id="'+i._id+'-body" class="'+i.bodyClasses+'">'+t.renderHtml(i)+"</div></div>"},postRender:function(){var i=this;i._super(),i.settings.activeTab=i.settings.activeTab||0,i.activateTab(i.settings.activeTab),this.on("click",function(t){var e=t.target.parentNode;if(e&&e.id===i._id+"-head")for(var n=e.childNodes.length;n--;)e.childNodes[n]===t.target&&i.activateTab(n)})},initLayoutRect:function(){var t,e,n,i=this;e=(e=Pt.getSize(i.getEl("head")).width)<0?0:e,n=0,i.items().each(function(t){e=Math.max(e,t.layoutRect().minW),n=Math.max(n,t.layoutRect().minH)}),i.items().each(function(t){t.settings.x=0,t.settings.y=0,t.settings.w=e,t.settings.h=n,t.layoutRect({x:0,y:0,w:e,h:n})});var r=Pt.getSize(i.getEl("head")).height;return i.settings.minWid
 th=e,i.settings.minHeight=n+r,(t=i._super()).deltaH+=r,t.innerH=t.h-t.deltaH,t}}),Ro=xe.extend({init:function(t){var n=this;n._super(t),n.classes.add("textbox"),t.multiline?n.classes.add("multiline"):(n.on("keydown",function(t){var e;13===t.keyCode&&(t.preventDefault(),n.parents().reverse().each(function(t){if(t.toJSON)return e=t,!1}),n.fire("submit",{data:e.toJSON()}))}),n.on("keyup",function(t){n.state.set("value",t.target.value)}))},repaint:function(){var t,e,n,i,r,o=this,s=0;t=o.getEl().style,e=o._layoutRect,r=o._lastRepaintRect||{};var a=document;return!o.settings.multiline&&a.all&&(!a.documentMode||a.documentMode<=8)&&(t.lineHeight=e.h-s+"px"),i=(n=o.borderBox).left+n.right+8,s=n.top+n.bottom+(o.settings.multiline?8:0),e.x!==r.x&&(t.left=e.x+"px",r.x=e.x),e.y!==r.y&&(t.top=e.y+"px",r.y=e.y),e.w!==r.w&&(t.width=e.w-i+"px"
 ,r.w=e.w),e.h!==r.h&&(t.height=e.h-s+"px",r.h=e.h),o._lastRepaintRect=r,o.fire("repaint",{},!1),o},renderHtml:function(){var e,t,n=this,i=n.settings;return e={id:n._id,hidefocus:"1"},R.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(t){e[t]=i[t]}),n.disabled()&&(e.disabled="disabled"),i.subtype&&(e.type=i.subtype),(t=Pt.create(i.multiline?"textarea":"input",e)).value=n.state.get("value"),t.className=n.classes,t.outerHTML},value:function(t){return arguments.length?(this.state.set("value",t),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var e=this;e.g
 etEl().value=e.state.get("value"),e._super(),e.$el.on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)})},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl().value!==t.value&&(e.getEl().value=t.value)}),e.state.on("change:disabled",function(t){e.getEl().disabled=t.value}),e._super()},remove:function(){this.$el.off(),this._super()}}),Co=function(){return{Selector:$t,Collection:Jt,ReflowQueue:ie,Control:fe,Factory:He,KeyboardNavigation:Me,Container:De,DragHelper:Ee,Scrollable:Ae,Panel:Be,Movable:ye,Resizable:Le,FloatPanel:je,Window:Ke,MessageBox:Ze,Tooltip:be,Widget:xe,Progress:we,Notification:Re,Layout:Dn,AbsoluteLayout:An,Button:Bn,ButtonGroup:In,Checkbox:zn,ComboBox:Vn,ColorBox:qn,PanelButton:Un,ColorButton:$n,ColorPicker:Xn,Path:Gn,ElementPath:Kn,FormItem:Zn,Form:Qn,FieldSet:ti,FilePicker:wr,FitLayout:_r,FlexLayout:Rr,FlowLayout:Cr,FormatControls:Zr,Gr
 idLayout:Qr,Iframe:to,InfoBox:eo,Label:no,Toolbar:io,MenuBar:ro,MenuButton:oo,MenuItem:uo,Throbber:so,Menu:ao,ListBox:lo,Radio:co,ResizeHandle:fo,SelectBox:mo,Slider:yo,Spacer:bo,SplitButton:xo,StackLayout:wo,TabPanel:_o,TextBox:Ro,DropZone:Jn,BrowseButton:Ln}},ko=function(n){n.ui?R.each(Co(),function(t,e){n.ui[e]=t}):n.ui=Co()};R.each(Co(),function(t,e){He.add(e,t)}),ko(window.tinymce?window.tinymce:{}),o.add("inlite",function(t){var e=On();return Zr.setup(t),Hn(t,e),Qe(t,e)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(){"use strict";var u,t,e,n,i,r,o=tinymce.util.Tools.resolve("tinymce.ThemeManager"),h=tinymce.util.Tools.resolve("tinymce.Env"),v=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.util.Delay"),s=function(t){return t.reduce(function(t,e){return Array.isArray(e)?t.concat(s(e)):t.concat(e)},[])},a={flatten:s},l=function(t,e){for(var n=0;n<e.length;n++){var i=(0,e[n])(t);if(i)return i}return null},d=function(t,e){return{id:t,rect:e}},f=function(t){return{x:t.left,y:t.top,w:t.width,h:t.height}},m=function(t){return{left:t.x,top:t.y,width:t.w,height:t.h,right:t.x+t.w,bottom:t.y+t.h}},g=function(t){var e=v.DOM.getViewPort();return{x:t.x+e.x,y:t.y+e.y,w:t.w,h:t.h}},p=function(t){var e=t.getBoundingClientRect();return g({x:e.left,y:e.top,w:Math.max(t.clientWidth,t.offsetWidth),h:Math.max(t.client
 Height,t.offsetHeight)})},b=function(t,e){return p(e)},y=function(t){return p(t.getContentAreaContainer()||t.getBody())},x=function(t){var e=t.selection.getBoundingClientRect();return e?g(f(e)):null},w=function(n,i){return function(t){for(var e=0;e<i.length;e++)if(i[e].predicate(n))return d(i[e].id,b(t,n));return null}},_=function(i,r){return function(t){for(var e=0;e<i.length;e++)for(var n=0;n<r.length;n++)if(r[n].predicate(i[e]))return d(r[n].id,b(t,i[e]));return null}},C=tinymce.util.Tools.resolve("tinymce.util.Tools"),R=function(t,e){return{id:t,predicate:e}},E=function(t){return C.map(t,function(t){return R(t.id,t.predicate)})},k=function(e){return function(t){return t.selection.isCollapsed()?null:d(e,x(t))}},T=function(i,r){return function(t){var e,n=t.schema.getTextBlockElements();for(e=0;e<i.length;e++)if("TABLE"===i[e].nodeName)return null;for(e=0;e<i.length;e++)if(i[e].nodeName in n)return t.dom.isEmpty(i[e])?d(r,x(t)):null;return null}},
 H=function(t){t.fire("SkinLoaded")},M=function(t){return t.fire("BeforeRenderUI")},S=tinymce.util.Tools.resolve("tinymce.EditorManager"),N=function(e){return function(t){return typeof t===e}},O=function(t){return Array.isArray(t)},D=function(t){return N("string")(t)},P=function(t){return N("number")(t)},W=function(t){return N("boolean")(t)},A=function(t){return N("function")(t)},B=(N("object"),O),L=function(t,e){if(e(t))return!0;throw new Error("Default value doesn't match requested type.")},I=function(r){return function(t,e,n){var i=t.settings;return L(n,r),e in i&&r(i[e])?i[e]:n}},z={getStringOr:I(D),getBoolOr:I(W),getNumberOr:I(P),getHandlerOr:I(A),getToolbarItemsOr:(u=B,function(t,e,n){var i,r,o,s,a,l=e in t.settings?t.settings[e]:n;return L(n,u),r=n,B(i=l)?i:D(i)?"string"==typeof(s=i)?(a=/[ ,]/,s.split(a).filter(function(t){return 0<t.length})):s:W(i)?(o=r,!1===i?[]:o)
 :r})},F=tinymce.util.Tools.resolve("tinymce.geom.Rect"),U=function(t,e){return{rect:t,position:e}},V=function(t,e){return{x:e.x,y:e.y,w:t.w,h:t.h}},q=function(t,e,n,i,r){var o,s,a,l={x:i.x,y:i.y,w:i.w+(i.w<r.w+n.w?r.w:0),h:i.h+(i.h<r.h+n.h?r.h:0)};return o=F.findBestRelativePosition(r,n,l,t),n=F.clamp(n,l),o?(s=F.relativePosition(r,n,o),a=V(r,s),U(a,o)):(n=F.intersect(l,n))?((o=F.findBestRelativePosition(r,n,l,e))?(s=F.relativePosition(r,n,o),a=V(r,s)):a=V(r,n),U(a,o)):null},Y=function(t,e,n){return q(["cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr"],t,e,n)},$=function(t,e,n){return q(["tc-bc","bc-tc","tl-bl","bl-tl","tr-br","br-tr","cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr","cr-cl"],t,e,n)},X=function(t,e,n,i){var r;return"function"==typeof t?(r=t({elementRect:m(e),contentAreaRect:m(n),panelRect:
 m(i)}),f(r)):i},j=function(t){return t.panelRect},J=function(t){return z.getToolbarItemsOr(t,"selection_toolbar",["bold","italic","|","quicklink","h2","h3","blockquote"])},G=function(t){return z.getToolbarItemsOr(t,"insert_toolbar",["quickimage","quicktable"])},K=function(t){return z.getHandlerOr(t,"inline_toolbar_position_handler",j)},Z=function(t){var e,n,i,r,o=t.settings;return o.skin_url?(i=t,r=o.skin_url,i.documentBaseURI.toAbsolute(r)):(e=o.skin,n=S.baseURL+"/skins/",e?n+e:n+"lightgray")},Q=function(t){return!1===t.settings.skin},tt=function(i,r){var t=Z(i),e=function(){var t,e,n;e=r,n=function(){t._skinLoaded=!0,H(t),e()},(t=i).initialized?n():t.on("init",n)};Q(i)?e():(v.DOM.styleSheetLoader.load(t+"/skin.min.css",e),i.contentCSS.push(t+"/content.inline.min.css"))},et=function(t){var e,n,i,r,o=t.contextToolba
 rs;return a.flatten([o||[],(e=t,n="img",i="image",r="alignleft aligncenter alignright",{predicate:function(t){return e.dom.is(t,n)},id:i,items:r})])},nt=function(t,e){var n,i,r,o,s;return s=(o=t).selection.getNode(),i=o.dom.getParents(s,"*"),r=E(e),(n=l(t,[w(i[0],r),k("text"),T(i,"insert"),_(i,r)]))&&n.rect?n:null},it=function(i,r){return function(){var t,e,n;i.removed||(n=i,document.activeElement!==n.getBody())||(t=et(i),(e=nt(i,t))?r.show(i,e.id,e.rect,t):r.hide())}},rt=function(t,e){var n,i,r,o,s,a=c.throttle(it(t,e),0),l=c.throttle((r=it(n=t,i=e),function(){n.removed||i.inForm()||r()}),0),u=(o=t,s=e,function(){var t=et(o),e=nt(o,t);e&&s.reposition(o,e.id,e.rect)});t.on("blur hide ObjectResizeStart",e.hide),t.on("click",a),t.on("nodeChange mouseup",l),t.on("ResizeEditor keyup",a),t.on("ResizeWindow",u),v.DOM.bind(h.container,"scroll",u),t.on(&quo
 t;remove",function(){v.DOM.unbind(h.container,"scroll",u),e.remove()}),t.shortcuts.add("Alt+F10,F10","",e.focus)},ot=function(t,e){return tt(t,function(){var n,i;rt(t,e),i=e,(n=t).shortcuts.remove("meta+k"),n.shortcuts.add("meta+k","",function(){var t=et(n),e=l(n,[k("quicklink")]);e&&i.show(n,e.id,e.rect,t)})}),{}},st=function(t,e){return t.inline?ot(t,e):function(t){throw new Error(t)}("inlite theme only supports inline mode.")},at=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e]},lt=function(t){return function(){return t}},ut=lt(!1),ct=lt(!0),dt=ut,ft=ct,ht=function(){return mt},mt=(i={fold:function(t,e){return t()},is:dt,isSome:dt,isNone:ft,getOr:n=function(t){return t},getOrThunk:e=function(t){return t()},getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined
 },or:n,orThunk:e,map:ht,ap:ht,each:function(){},bind:ht,flatten:ht,exists:dt,forall:ft,filter:ht,equals:t=function(t){return t.isNone()},equals_:t,toArray:function(){return[]},toString:lt("none()")},Object.freeze&&Object.freeze(i),i),gt=function(n){var t=function(){return n},e=function(){return r},i=function(t){return t(n)},r={fold:function(t,e){return e(n)},is:function(t){return n===t},isSome:ft,isNone:dt,getOr:t,getOrThunk:t,getOrDie:t,getOrNull:t,getOrUndefined:t,or:e,orThunk:e,map:function(t){return gt(t(n))},ap:function(t){return t.fold(ht,function(t){return gt(t(n))})},each:function(t){t(n)},bind:i,flatten:t,exists:i,forall:i,filter:function(t){return t(n)?r:mt},equals:function(t){return t.is(n)},equals_:function(t,e){return t.fold(dt,function(t){return e(n,t)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return r},pt={some:gt,none:ht,from:function(t){return null===t||t===undefined?mt:gt(t)}},vt=function(e){ret
 urn function(t){return function(t){if(null===t)return"null";var e=typeof t;return"object"===e&&Array.prototype.isPrototypeOf(t)?"array":"object"===e&&String.prototype.isPrototypeOf(t)?"string":e}(t)===e}},bt=vt("function"),yt=vt("number"),xt=(r=Array.prototype.indexOf)===undefined?function(t,e){return Tt(t,e)}:function(t,e){return r.call(t,e)},wt=function(t,e){return kt(t,e).isSome()},_t=function(t,e){for(var n=t.length,i=new Array(n),r=0;r<n;r++){var o=t[r];i[r]=e(o,r,t)}return i},Ct=function(t,e){for(var n=0,i=t.length;n<i;n++)e(t[n],n,t)},Rt=function(t,e){for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i];e(o,i,t)&&n.push(o)}return n},Et=function(t,e){for(var n=0,i=t.length;n<i;n++){var r=t[n];if(e(r,n,t))return pt.some(r)}return pt.none()},kt=function(t,e){for(var n=0,i=t.length;n<i;n++)if(e(t[n],n,t))return pt.some(n);return pt.none()},Tt=function(t,e){for(var n=0,i=t.lengt
 h;n<i;++n)if(t[n]===e)return n;return-1},Ht=Array.prototype.push,Mt=(Array.prototype.slice,bt(Array.from)&&Array.from,0),St={id:function(){return"mceu_"+Mt++},create:function(t,e,n){var i=document.createElement(t);return v.DOM.setAttribs(i,e),"string"==typeof n?i.innerHTML=n:C.each(n,function(t){t.nodeType&&i.appendChild(t)}),i},createFragment:function(t){return v.DOM.createFragment(t)},getWindowSize:function(){return v.DOM.getViewPort()},getSize:function(t){var e,n;if(t.getBoundingClientRect){var i=t.getBoundingClientRect();e=Math.max(i.width||i.right-i.left,t.offsetWidth),n=Math.max(i.height||i.bottom-i.bottom,t.offsetHeight)}else e=t.offsetWidth,n=t.offsetHeight;return{width:e,height:n}},getPos:function(t,e){return v.DOM.getPos(t,e||St.getContainer())},getContainer:function(){return h.container?h.container:document.body},getViewPort:function(t){return v.DOM.getViewPort(t)},get:function(t){return document.getElementById(t)},addClass:function(
 t,e){return v.DOM.addClass(t,e)},removeClass:function(t,e){return v.DOM.removeClass(t,e)},hasClass:function(t,e){return v.DOM.hasClass(t,e)},toggleClass:function(t,e,n){return v.DOM.toggleClass(t,e,n)},css:function(t,e,n){return v.DOM.setStyle(t,e,n)},getRuntimeStyle:function(t,e){return v.DOM.getStyle(t,e,!0)},on:function(t,e,n,i){return v.DOM.bind(t,e,n,i)},off:function(t,e,n){return v.DOM.unbind(t,e,n)},fire:function(t,e,n){return v.DOM.fire(t,e,n)},innerHtml:function(t,e){v.DOM.setHTML(t,e)}},Nt=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),Ot=tinymce.util.Tools.resolve("tinymce.util.Class"),Dt=tinymce.util.Tools.resolve("tinymce.util.EventDispatcher"),Pt=function(t){var e;if(t)return"number"==typeof t?{top:t=t||0,left:t,bottom:t,right:t}:(1===(e=(t=t.split(" ")).length)?t[1]=t[2]=t[3]=t[0]:2===e?(t[2]=t[0],t[3]=t[1]):3===e&&(t[3]=t[1]),{top:parseInt(t[0],10)||0,right:parseInt(t[1],10)||0,bottom:parseInt(t[2],10)||0,
 left:parseInt(t[3],10)||0})},Wt=function(i,t){function e(t){var e=parseFloat(function(t){var e=i.ownerDocument.defaultView;if(e){var n=e.getComputedStyle(i,null);return n?(t=t.replace(/[A-Z]/g,function(t){return"-"+t}),n.getPropertyValue(t)):null}return i.currentStyle[t]}(t));return isNaN(e)?0:e}return{top:e(t+"TopWidth"),right:e(t+"RightWidth"),bottom:e(t+"BottomWidth"),left:e(t+"LeftWidth")}};function At(){}function Bt(t){this.cls=[],this.cls._map={},this.onchange=t||At,this.prefix=""}C.extend(Bt.prototype,{add:function(t){return t&&!this.contains(t)&&(this.cls._map[t]=!0,this.cls.push(t),this._change()),this},remove:function(t){if(this.contains(t)){var e=void 0;for(e=0;e<this.cls.length&&this.cls[e]!==t;e++);this.cls.splice(e,1),delete this.cls._map[t],this._change()}return this},toggle:function(t,e){var n=this.contains(t);return n!==e&&(n?this.remove(t):this.add(t),this._change()),this
 },contains:function(t){return!!this.cls._map[t]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),Bt.prototype.toString=function(){var t;if(this.clsValue)return this.clsValue;t="";for(var e=0;e<this.cls.length;e++)0<e&&(t+=" "),t+=this.prefix+this.cls[e];return t};var Lt,It,zt,Ft=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,Ut=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,Vt=/^\s*|\s*$/g,qt=Ot.extend({init:function(t){var o=this.match;function s(t,e,n){var i;function r(t){t&&e.push(t)}return r(function(e){if(e)return e=e.toLowerCase(),function(t){return"*"===e||t.type===e}}((i=Ft.exec(t.replace(Vt,"")))[1])),r(function(e){if(e)return function(t){return t._name===e}}(i[2])),r(function(n){if(n)return n=n.split("."),function
 (t){for(var e=n.length;e--;)if(!t.classes.contains(n[e]))return!1;return!0}}(i[3])),r(function(n,i,r){if(n)return function(t){var e=t[n]?t[n]():"";return i?"="===i?e===r:"*="===i?0<=e.indexOf(r):"~="===i?0<=(" "+e+" ").indexOf(" "+r+" "):"!="===i?e!==r:"^="===i?0===e.indexOf(r):"$="===i&&e.substr(e.length-r.length)===r:!!r}}(i[4],i[5],i[6])),r(function(i){var e;if(i)return(i=/(?:not\((.+)\))|(.+)/i.exec(i))[1]?(e=a(i[1],[]),function(t){return!o(t,e)}):(i=i[2],function(t,e,n){return"first"===i?0===e:"last"===i?e===n-1:"even"===i?e%2==0:"odd"===i?e%2==1:!!t[i]&&t[i]()})}(i[7])),e.pseudo=!!i[7],e.direct=n,e}function a(t,e){var n,i,r,o=[];do{if(Ut.exec(""),(i=Ut.exec(t))&&(t=i[3],o.push(i[1]),i[2])){n=i[3];break}}while(i);for(n&&a(n,e),t=[],r=0;r<o.length;r++)">"!==o[r]&&a
 mp;t.push(s(o[r],[],">"===o[r-1]));return e.push(t),e}this._selectors=a(t,[])},match:function(t,e){var n,i,r,o,s,a,l,u,c,d,f,h,m;for(n=0,i=(e=e||this._selectors).length;n<i;n++){for(m=t,h=0,r=(o=(s=e[n]).length)-1;0<=r;r--)for(u=s[r];m;){if(u.pseudo)for(c=d=(f=m.parent().items()).length;c--&&f[c]!==m;);for(a=0,l=u.length;a<l;a++)if(!u[a](m,c,d)){a=l+1;break}if(a===l){h++;break}if(r===o-1)break;m=m.parent()}if(h===o)return!0}return!1},find:function(t){var e,n,u=[],i=this._selectors;function c(t,e,n){var i,r,o,s,a,l=e[n];for(i=0,r=t.length;i<r;i++){for(a=t[i],o=0,s=l.length;o<s;o++)if(!l[o](a,i,r)){o=s+1;break}if(o===s)n===e.length-1?u.push(a):a.items&&c(a.items(),e,n+1);else if(l.direct)return;a.items&&c(a.items(),e,n)}}if(t.items){for(e=0,n=i.length;e<n;e++)c(t.items(),i[e],0);1<n&&(u=function(t){for(var e,n=[],i=t.length;i--;)(e=t[i]).__checked||(n.push(e),e.__checked=1);for(i=n.length;i--;)delete n[i].__checked;retu
 rn n}(u))}return Lt||(Lt=qt.Collection),new Lt(u)}}),Yt=Array.prototype.push,$t=Array.prototype.slice;zt={length:0,init:function(t){t&&this.add(t)},add:function(t){return C.isArray(t)?Yt.apply(this,t):t instanceof It?this.add(t.toArray()):Yt.call(this,t),this},set:function(t){var e,n=this,i=n.length;for(n.length=0,n.add(t),e=n.length;e<i;e++)delete n[e];return n},filter:function(e){var t,n,i,r,o=[];for("string"==typeof e?(e=new qt(e),r=function(t){return e.match(t)}):r=e,t=0,n=this.length;t<n;t++)r(i=this[t])&&o.push(i);return new It(o)},slice:function(){return new It($t.apply(this,arguments))},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},each:function(t){return C.each(this,t),this},toArray:function(){return C.toArray(this)},indexOf:function(t){for(var e=this.length;e--&&this[e]!==t;);return e},reverse:function(){return new It(C.toArray(this).reverse())},hasClass:function(t){return!!this[0]&&this[0].classes.contains(t)
 },prop:function(e,n){var t;return n!==undefined?(this.each(function(t){t[e]&&t[e](n)}),this):(t=this[0])&&t[e]?t[e]():void 0},exec:function(e){var n=C.toArray(arguments).slice(1);return this.each(function(t){t[e]&&t[e].apply(t,n)}),this},remove:function(){for(var t=this.length;t--;)this[t].remove();return this},addClass:function(e){return this.each(function(t){t.classes.add(e)})},removeClass:function(e){return this.each(function(t){t.classes.remove(e)})}},C.each("fire on off show hide append prepend before after reflow".split(" "),function(n){zt[n]=function(){var e=C.toArray(arguments);return this.each(function(t){n in t&&t[n].apply(t,e)}),this}}),C.each("text name disabled active selected checked visible parent value data".split(" "),function(e){zt[e]=function(t){return this.prop(e,t)}}),It=Ot.extend(zt);var Xt=qt.Collection=It,jt=function(t){this.create=t.create};jt.create=function(r,o){return new jt({create:f
 unction(e,n){var i,t=function(t){e.set(n,t.value)};return e.on("change:"+n,function(t){r.set(o,t.value)}),r.on("change:"+o,t),(i=e._bindings)||(i=e._bindings=[],e.on("destroy",function(){for(var t=i.length;t--;)i[t]()})),i.push(function(){r.off("change:"+o,t)}),r.get(o)}})};var Jt=tinymce.util.Tools.resolve("tinymce.util.Observable");function Gt(t){return 0<t.nodeType}var Kt,Zt,Qt=Ot.extend({Mixins:[Jt],init:function(t){var e,n;for(e in t=t||{})(n=t[e])instanceof jt&&(t[e]=n.create(this,e));this.data=t},set:function(e,n){var i,r,o=this.data[e];if(n instanceof jt&&(n=n.create(this,e)),"object"==typeof e){for(i in e)this.set(i,e[i]);return this}return function t(e,n){var i,r;if(e===n)return!0;if(null===e||null===n)return e===n;if("object"!=typeof e||"object"!=typeof n)return e===n;if(C.isArray(n)){if(e.length!==n.length)return!1;for(i=e.length;i--;)if(!t(e[i],n[i]))return!1}if(Gt(e)||Gt(
 n))return e===n;for(i in r={},n){if(!t(e[i],n[i]))return!1;r[i]=!0}for(i in e)if(!r[i]&&!t(e[i],n[i]))return!1;return!0}(o,n)||(this.data[e]=n,r={target:this,name:e,value:n,oldValue:o},this.fire("change:"+e,r),this.fire("change",r)),this},get:function(t){return this.data[t]},has:function(t){return t in this.data},bind:function(t){return jt.create(this,t)},destroy:function(){this.fire("destroy")}}),te={},ee={add:function(t){var e=t.parent();if(e){if(!e._layout||e._layout.isNative())return;te[e._id]||(te[e._id]=e),Kt||(Kt=!0,c.requestAnimationFrame(function(){var t,e;for(t in Kt=!1,te)(e=te[t]).state.get("rendered")&&e.reflow();te={}},document.body))}},remove:function(t){te[t._id]&&delete te[t._id]}},ne=function(t){return t?t.getRoot().uiContainer:null},ie={getUiContainerDelta:function(t){var e=ne(t);if(e&&"static"!==v.DOM.getStyle(e,"position",!0)){var n=v.DOM.getPos(e),i=e.scrollLeft-n.x,r=e.
 scrollTop-n.y;return pt.some({x:i,y:r})}return pt.none()},setUiContainer:function(t,e){var n=v.DOM.select(t.settings.ui_container)[0];e.getRoot().uiContainer=n},getUiContainer:ne,inheritUiContainer:function(t,e){return e.uiContainer=ne(t)}},re="onmousewheel"in document,oe=!1,se=0,ae={Statics:{classPrefix:"mce-"},isRtl:function(){return Zt.rtl},classPrefix:"mce-",init:function(e){var t,n,i=this;function r(t){var e;for(t=t.split(" "),e=0;e<t.length;e++)i.classes.add(t[e])}i.settings=e=C.extend({},i.Defaults,e),i._id=e.id||"mceu_"+se++,i._aria={role:e.role},i._elmCache={},i.$=Nt,i.state=new Qt({visible:!0,active:!1,disabled:!1,value:""}),i.data=new Qt(e.data),i.classes=new Bt(function(){i.state.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,(t=e.classes)&&(i.Defaults&&(n=i.Defaults.classes)&&t!==n&&r(n),r(t)),C.each("title text n
 ame visible disabled active value".split(" "),function(t){t in e&&i[t](e[t])}),i.on("click",function(){if(i.disabled())return!1}),i.settings=e,i.borderBox=Pt(e.border),i.paddingBox=Pt(e.padding),i.marginBox=Pt(e.margin),e.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){var t=ie.getUiContainer(this);return t||St.getContainer()},getParentCtrl:function(t){for(var e,n=this.getRoot().controlIdLookup;t&&n&&!(e=n[t.id]);)t=t.parentNode;return e},initLayoutRect:function(){var t,e,n,i,r,o,s,a,l,u,c=this,d=c.settings,f=c.getEl();t=c.borderBox=c.borderBox||Wt(f,"border"),c.paddingBox=c.paddingBox||Wt(f,"padding"),c.marginBox=c.marginBox||Wt(f,"margin"),u=St.getSize(f),a=d.minWidth,l=d.minHeight,r=a||u.width,o=l||u.height,n=d.width,i=d.height,s=void 0!==(s=d.autoResize)?s:!n&&!i,n=n||r,i=i||o;var h=t.left+t.right,m=t.top+t.bottom,g=d.maxWidth||65535,p=d.maxHeight||65535
 ;return c._layoutRect=e={x:d.x||0,y:d.y||0,w:n,h:i,deltaW:h,deltaH:m,contentW:n-h,contentH:i-m,innerW:n-h,innerH:i-m,startMinWidth:a||0,startMinHeight:l||0,minW:Math.min(r,g),minH:Math.min(o,p),maxW:g,maxH:p,autoResize:s,scrollW:0},c._lastLayoutRect={},e},layoutRect:function(t){var e,n,i,r,o,s=this,a=s._layoutRect;return a||(a=s.initLayoutRect()),t?(i=a.deltaW,r=a.deltaH,t.x!==undefined&&(a.x=t.x),t.y!==undefined&&(a.y=t.y),t.minW!==undefined&&(a.minW=t.minW),t.minH!==undefined&&(a.minH=t.minH),(n=t.w)!==undefined&&(n=(n=n<a.minW?a.minW:n)>a.maxW?a.maxW:n,a.w=n,a.innerW=n-i),(n=t.h)!==undefined&&(n=(n=n<a.minH?a.minH:n)>a.maxH?a.maxH:n,a.h=n,a.innerH=n-r),(n=t.innerW)!==undefined&&(n=(n=n<a.minW-i?a.minW-i:n)>a.maxW-i?a.maxW-i:n,a.innerW=n,a.w=n+i),(n=t.innerH)!==undefined&&(n=(n=n<a.minH-r?a.minH-r:n)>a.maxH-r?a.maxH-r:n,a.innerH=n,a.h=n+r),t.contentW!==undefined&&(a.contentW=t.contentW)
 ,t.contentH!==undefined&&(a.contentH=t.contentH),(e=s._lastLayoutRect).x===a.x&&e.y===a.y&&e.w===a.w&&e.h===a.h||((o=Zt.repaintControls)&&o.map&&!o.map[s._id]&&(o.push(s),o.map[s._id]=!0),e.x=a.x,e.y=a.y,e.w=a.w,e.h=a.h),s):a},repaint:function(){var t,e,n,i,r,o,s,a,l,u,c=this;l=document.createRange?function(t){return t}:Math.round,t=c.getEl().style,i=c._layoutRect,a=c._lastRepaintRect||{},o=(r=c.borderBox).left+r.right,s=r.top+r.bottom,i.x!==a.x&&(t.left=l(i.x)+"px",a.x=i.x),i.y!==a.y&&(t.top=l(i.y)+"px",a.y=i.y),i.w!==a.w&&(u=l(i.w-o),t.width=(0<=u?u:0)+"px",a.w=i.w),i.h!==a.h&&(u=l(i.h-s),t.height=(0<=u?u:0)+"px",a.h=i.h),c._hasBody&&i.innerW!==a.innerW&&(u=l(i.innerW),(n=c.getEl("body"))&&((e=n.style).width=(0<=u?u:0)+"px"),a.innerW=i.innerW),c._hasBody&&i.innerH!==a.innerH&&(u=l(i.inne
 rH),(n=n||c.getEl("body"))&&((e=e||n.style).height=(0<=u?u:0)+"px"),a.innerH=i.innerH),c._lastRepaintRect=a,c.fire("repaint",{},!1)},updateLayoutRect:function(){var t=this;t.parent()._lastRect=null,St.css(t.getEl(),{width:"",height:""}),t._layoutRect=t._lastRepaintRect=t._lastLayoutRect=null,t.initLayoutRect()},on:function(t,e){var n,i,r,o=this;return le(o).on(t,"string"!=typeof(n=e)?n:function(t){return i||o.parentsAndSelf().each(function(t){var e=t.settings.callbacks;if(e&&(i=e[n]))return r=t,!1}),i?i.call(r,t):(t.action=n,void this.fire("execute",t))}),o},off:function(t,e){return le(this).off(t,e),this},fire:function(t,e,n){if((e=e||{}).control||(e.control=this),e=le(this).fire(t,e),!1!==n&&this.parent)for(var i=this.parent();i&&!e.isPropagationStopped();)i.fire(t,e,!1),i=i.parent();return e},hasEventListeners:function(t){return le(this).has(t)},parents:function(t){var e,n=new
  Xt;for(e=this.parent();e;e=e.parent())n.add(e);return t&&(n=n.filter(t)),n},parentsAndSelf:function(t){return new Xt(this).add(this.parents(t))},next:function(){var t=this.parent().items();return t[t.indexOf(this)+1]},prev:function(){var t=this.parent().items();return t[t.indexOf(this)-1]},innerHtml:function(t){return this.$el.html(t),this},getEl:function(t){var e=t?this._id+"-"+t:this._id;return this._elmCache[e]||(this._elmCache[e]=Nt("#"+e)[0]),this._elmCache[e]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(t){}return this},blur:function(){return this.getEl().blur(),this},aria:function(t,e){var n=this,i=n.getEl(n.ariaTarget);return void 0===e?n._aria[t]:(n._aria[t]=e,n.state.get("rendered")&&i.setAttribute("role"===t?t:"aria-"+t,e),n)},encode:function(t,e){return!1!==e&&(t=this.translate(t)),(t||"").replace(/[&am
 p;<>"]/g,function(t){return"&#"+t.charCodeAt(0)+";"})},translate:function(t){return Zt.translate?Zt.translate(t):t},before:function(t){var e=this.parent();return e&&e.insert(t,e.items().indexOf(this),!0),this},after:function(t){var e=this.parent();return e&&e.insert(t,e.items().indexOf(this)),this},remove:function(){var e,t,n=this,i=n.getEl(),r=n.parent();if(n.items){var o=n.items().toArray();for(t=o.length;t--;)o[t].remove()}r&&r.items&&(e=[],r.items().each(function(t){t!==n&&e.push(t)}),r.items().set(e),r._lastRect=null),n._eventsRoot&&n._eventsRoot===n&&Nt(i).off();var s=n.getRoot().controlIdLookup;return s&&delete s[n._id],i&&i.parentNode&&i.parentNode.removeChild(i),n.state.set("rendered",!1),n.state.destroy(),n.fire("remove"),n},renderBefore:function(t){return Nt(t).before(this.renderHtml()),this.postRender(),this},renderTo:function(t){return N
 t(t||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var t,e,n,i,r,o=this,s=o.settings;for(i in o.$el=Nt(o.getEl()),o.state.set("rendered",!0),s)0===i.indexOf("on")&&o.on(i.substr(2),s[i]);if(o._eventsRoot){for(n=o.parent();!r&&n;n=n.parent())r=n._eventsRoot;if(r)for(i in r._nativeEvents)o._nativeEvents[i]=!0}ue(o),s.style&&(t=o.getEl())&&(t.setAttribute("style",s.style),t.style.cssText=s.style),o.settings.border&&(e=o.borderBox,o.$el.css({"border-top-width":e.top,"border-right-width":e.right,"border-bottom-width":e.bottom,"border-left-width":e.left}));var a=o.getRoot();for(var l in a.controlIdLookup||(a.controlIdLookup={}),(a.controlIdLookup[o._id]=o)._aria)o.aria(l,o.
 _aria[l]);!1===o.state.get("visible")&&(o.getEl().style.display="none"),o.bindStates(),o.state.on("change:visible",function(t){var e,n=t.value;o.state.get("rendered")&&(o.getEl().style.display=!1===n?"none":"",o.getEl().getBoundingClientRect()),(e=o.parent())&&(e._lastRect=null),o.fire(n?"show":"hide"),ee.add(o)}),o.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(t){var e,n,i,r,o,s,a=this.getEl(),l=a.parentNode,u=function(t,e){var n,i,r=t;for(n=i=0;r&&r!==e&&r.nodeType;)n+=r.offsetLeft||0,i+=r.offsetTop||0,r=r.offsetParent;return{x:n,y:i}}(a,l);return e=u.x,n=u.y,i=a.offsetWidth,r=a.offsetHeight,o=l.clientWidth,s=l.clientHeight,"end"===t?(e-=o-i,n-=s-r):"center"===t&&(e-=o/2-i/2,n-=s/2-r/2),l.scrollLeft=e,l.scrollTop=n,this},getRoot:function(){for(var t,e=this,n=[];e;){if(e.rootControl){t=e.rootControl
 ;break}n.push(e),e=(t=e).parent()}t||(t=this);for(var i=n.length;i--;)n[i].rootControl=t;return t},reflow:function(){ee.remove(this);var t=this.parent();return t&&t._layout&&!t._layout.isNative()&&t.reflow(),this}};function le(n){return n._eventDispatcher||(n._eventDispatcher=new Dt({scope:n,toggleEvent:function(t,e){e&&Dt.isNative(t)&&(n._nativeEvents||(n._nativeEvents={}),n._nativeEvents[t]=!0,n.state.get("rendered")&&ue(n))}})),n._eventDispatcher}function ue(a){var t,e,n,l,i,r;function o(t){var e=a.getParentCtrl(t.target);e&&e.fire(t.type,t)}function s(){var t=l._lastHoverCtrl;t&&(t.fire("mouseleave",{target:t.getEl()}),t.parents().each(function(t){t.fire("mouseleave",{target:t.getEl()})}),l._lastHoverCtrl=null)}function u(t){var e,n,i,r=a.getParentCtrl(t.target),o=l._lastHoverCtrl,s=0;if(r!==o){if((n=(l._lastHoverCtrl=r).parents().toArray().reverse()).push(r),o){for((i=o.parents().toArr
 ay().reverse()).push(o),s=0;s<i.length&&n[s]===i[s];s++);for(e=i.length-1;s<=e;e--)(o=i[e]).fire("mouseleave",{target:o.getEl()})}for(e=s;e<n.length;e++)(r=n[e]).fire("mouseenter",{target:r.getEl()})}}function c(t){t.preventDefault(),"mousewheel"===t.type?(t.deltaY=-.025*t.wheelDelta,t.wheelDeltaX&&(t.deltaX=-.025*t.wheelDeltaX)):(t.deltaX=0,t.deltaY=t.detail),t=a.fire("wheel",t)}if(i=a._nativeEvents){for((n=a.parents().toArray()).unshift(a),t=0,e=n.length;!l&&t<e;t++)l=n[t]._eventsRoot;for(l||(l=n[n.length-1]||a),a._eventsRoot=l,e=t,t=0;t<e;t++)n[t]._eventsRoot=l;var d=l._delegates;for(r in d||(d=l._delegates={}),i){if(!i)return!1;"wheel"!==r||oe?("mouseenter"===r||"mouseleave"===r?l._hasMouseEnter||(Nt(l.getEl()).on("mouseleave",s).on("mouseover",u),l._hasMouseEnter=1):d[r]||(Nt(l.getEl()).on(r,o),d[r]=!0),i[r]=!1):re?Nt(a.getEl()).on("mousewheel&qu
 ot;,c):Nt(a.getEl()).on("DOMMouseScroll",c)}}}C.each("text title visible disabled active value".split(" "),function(e){ae[e]=function(t){return 0===arguments.length?this.state.get(e):(void 0!==t&&this.state.set(e,t),this)}});var ce=Zt=Ot.extend(ae),de=function(t){return"static"===St.getRuntimeStyle(t,"position")},fe=function(t){return t.state.get("fixed")};function he(t,e,n){var i,r,o,s,a,l,u,c,d,f;return d=me(),o=(r=St.getPos(e,ie.getUiContainer(t))).x,s=r.y,fe(t)&&de(document.body)&&(o-=d.x,s-=d.y),i=t.getEl(),a=(f=St.getSize(i)).width,l=f.height,u=(f=St.getSize(e)).width,c=f.height,"b"===(n=(n||"").split(""))[0]&&(s+=c),"r"===n[1]&&(o+=u),"c"===n[0]&&(s+=Math.round(c/2)),"c"===n[1]&&(o+=Math.round(u/2)),"b"===n[3]&&(s-=l),"r"===n[4]&&(o-=a),"c"===n[3]&&(
 s-=Math.round(l/2)),"c"===n[4]&&(o-=Math.round(a/2)),{x:o,y:s,w:a,h:l}}var me=function(){var t=window,e=Math.max(t.pageXOffset,document.body.scrollLeft,document.documentElement.scrollLeft),n=Math.max(t.pageYOffset,document.body.scrollTop,document.documentElement.scrollTop);return{x:e,y:n,w:e+(t.innerWidth||document.documentElement.clientWidth),h:n+(t.innerHeight||document.documentElement.clientHeight)}},ge=function(t){var e,n=ie.getUiContainer(t);return n&&!fe(t)?{x:0,y:0,w:(e=n).scrollWidth-1,h:e.scrollHeight-1}:me()},pe={testMoveRel:function(t,e){for(var n=ge(this),i=0;i<e.length;i++){var r=he(this,t,e[i]);if(fe(this)){if(0<r.x&&r.x+r.w<n.w&&0<r.y&&r.y+r.h<n.h)return e[i]}else if(r.x>n.x&&r.x+r.w<n.w&&r.y>n.y&&r.y+r.h<n.h)return e[i]}return e[0]},moveRel:function(t,e){"string"!=typeof e&&(e=this.testMoveRel(t,e));var n=he(this,t,e);return this.moveTo(n.x,n.y)},mov
 eBy:function(t,e){var n=this.layoutRect();return this.moveTo(n.x+t,n.y+e),this},moveTo:function(t,e){var n=this;function i(t,e,n){return t<0?0:e<t+n&&(t=e-n)<0?0:t}if(n.settings.constrainToViewport){var r=ge(this),o=n.layoutRect();t=i(t,r.w,o.w),e=i(e,r.h,o.h)}var s=ie.getUiContainer(n);return s&&de(s)&&!fe(n)&&(t-=s.scrollLeft,e-=s.scrollTop),s&&(t+=1,e+=1),n.state.get("rendered")?n.layoutRect({x:t,y:e}).repaint():(n.settings.x=t,n.settings.y=e),n.fire("move",{x:t,y:e}),n}},ve=ce.extend({Mixins:[pe],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var t=this,e=t.classPrefix;return'<div id="'+t._id+'" class="'+t.classes+'" role="presentation"><div class="'+e+'tooltip-arrow"></div><div class="'+e+'tooltip-inner">'+t.encode(t.state.get("text"))+"</div></div>"},bindStates:function(){va
 r e=this;return e.state.on("change:text",function(t){e.getEl().lastChild.innerHTML=e.encode(t.value)}),e._super()},repaint:function(){var t,e;t=this.getEl().style,e=this._layoutRect,t.left=e.x+"px",t.top=e.y+"px",t.zIndex=131070}}),be=ce.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.canFocus=!0,i.tooltip&&!1!==be.tooltips&&(r.on("mouseenter",function(t){var e=r.tooltip().moveTo(-65535);if(t.control===r){var n=e.text(i.tooltip).show().testMoveRel(r.getEl(),["bc-tc","bc-tl","bc-tr"]);e.classes.toggle("tooltip-n","bc-tc"===n),e.classes.toggle("tooltip-nw","bc-tl"===n),e.classes.toggle("tooltip-ne","bc-tr"===n),e.moveRel(r.getEl(),n)}else e.hide()}),r.on("mouseleave mousedown click",function(){r.tooltip().remove(),r._tooltip=null})),r.aria("label",i.ariaLabel||i.tooltip)},tooltip:function(){return this._too
 ltip||(this._tooltip=new ve({type:"tooltip"}),ie.inheritUiContainer(this,this._tooltip),this._tooltip.renderTo()),this._tooltip},postRender:function(){var t=this,e=t.settings;t._super(),t.parent()||!e.width&&!e.height||(t.initLayoutRect(),t.repaint()),e.autofocus&&t.focus()},bindStates:function(){var e=this;function n(t){e.aria("disabled",t),e.classes.toggle("disabled",t)}function i(t){e.aria("pressed",t),e.classes.toggle("active",t)}return e.state.on("change:disabled",function(t){n(t.value)}),e.state.on("change:active",function(t){i(t.value)}),e.state.get("disabled")&&n(!0),e.state.get("active")&&i(!0),e._super()},remove:function(){this._super(),this._tooltip&&(this._tooltip.remove(),this._tooltip=null)}}),ye=be.extend({Defaults:{value:0},init:function(t){this._super(t),this.classes.add("progress"),this.settings.filter||(this.settings.filter=fu
 nction(t){return Math.round(t)})},renderHtml:function(){var t=this._id,e=this.classPrefix;return'<div id="'+t+'" class="'+this.classes+'"><div class="'+e+'bar-container"><div class="'+e+'bar"></div></div><div class="'+e+'text">0%</div></div>'},postRender:function(){return this._super(),this.value(this.settings.value),this},bindStates:function(){var e=this;function n(t){t=e.settings.filter(t),e.getEl().lastChild.innerHTML=t+"%",e.getEl().firstChild.firstChild.style.width=t+"%"}return e.state.on("change:value",function(t){n(t.value)}),n(e.state.get("value")),e._super()}}),xe=function(t,e){t.getEl().lastChild.textContent=e+(t.progressBar?" "+t.progressBar.value()+"%":"")},we=ce.extend({Mixins:[pe],Defaults:{classes:"widget notification"},init:function(t){var e=this;e._super(t),e.maxWidth=t.maxWidth,t.text&&
 amp;e.text(t.text),t.icon&&(e.icon=t.icon),t.color&&(e.color=t.color),t.type&&e.classes.add("notification-"+t.type),t.timeout&&(t.timeout<0||0<t.timeout)&&!t.closeButton?e.closeButton=!1:(e.classes.add("has-close"),e.closeButton=!0),t.progressBar&&(e.progressBar=new ye),e.on("click",function(t){-1!==t.target.className.indexOf(e.classPrefix+"close")&&e.close()})},renderHtml:function(){var t,e=this,n=e.classPrefix,i="",r="",o="";return e.icon&&(i='<i class="'+n+"ico "+n+"i-"+e.icon+'"></i>'),t=' style="max-width: '+e.maxWidth+"px;"+(e.color?"background-color: "+e.color+';"':'"'),e.closeButton&&(r='<button type="button" class="'+n+'close" aria-hidden="true">\xd7</button>'),e.progressBar&&(o=e.progressBar.renderHtml(
 )),'<div id="'+e._id+'" class="'+e.classes+'"'+t+' role="presentation">'+i+'<div class="'+n+'notification-inner">'+e.state.get("text")+"</div>"+o+r+'<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;" aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div></div>'},postRender:function(){var t=this;return c.setTimeout(function(){t.$el.addClass(t.classPrefix+"in"),xe(t,t.state.get("text"))},100),t._super()},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().firstChild.innerHTML=t.value,xe(e,t.value)}),e.progressBar&&(e.progressBar.bindStates(),e.progressBar.state.on("change:value",function(t){xe(e,e.state.get("text"))})),e._super()},close:function(){return this.fire("close").isDefa
 ultPrevented()||this.remove(),this},repaint:function(){var t,e;t=this.getEl().style,e=this._layoutRect,t.left=e.x+"px",t.top=e.y+"px",t.zIndex=65534}});function _e(o){var s=function(t){return t.inline?t.getElement():t.getContentAreaContainer()};return{open:function(t,e){var n,i=C.extend(t,{maxWidth:(n=s(o),St.getSize(n).width)}),r=new we(i);return 0<(r.args=i).timeout&&(r.timer=setTimeout(function(){r.close(),e()},i.timeout)),r.on("close",function(){e()}),r.renderTo(),r},close:function(t){t.close()},reposition:function(t){Ct(t,function(t){t.moveTo(0,0)}),function(n){if(0<n.length){var t=n.slice(0,1)[0],e=s(o);t.moveRel(e,"tc-tc"),Ct(n,function(t,e){0<e&&t.moveRel(n[e-1].getEl(),"bc-tc")})}}(t)},getArgs:function(t){return t.args}}}function Ce(t){var e,n;if(t.changedTouches)for(e="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<e.length;n++)t[e[n]]=t.changedTouches[0][e[n]]}
 function Re(t,h){var m,g,e,p,v,b,y,x=h.document||document;h=h||{};var w=x.getElementById(h.handle||t);e=function(t){var e,n,i,r,o,s,a,l,u,c,d,f=(e=x,u=Math.max,n=e.documentElement,i=e.body,r=u(n.scrollWidth,i.scrollWidth),o=u(n.clientWidth,i.clientWidth),s=u(n.offsetWidth,i.offsetWidth),a=u(n.scrollHeight,i.scrollHeight),l=u(n.clientHeight,i.clientHeight),{width:r<s?o:r,height:a<u(n.offsetHeight,i.offsetHeight)?l:a});Ce(t),t.preventDefault(),g=t.button,c=w,b=t.screenX,y=t.screenY,d=window.getComputedStyle?window.getComputedStyle(c,null).getPropertyValue("cursor"):c.runtimeStyle.cursor,m=Nt("<div></div>").css({position:"absolute",top:0,left:0,width:f.width,height:f.height,zIndex:2147483647,opacity:1e-4,cursor:d}).appendTo(x.body),Nt(x).on("mousemove touchmove",v).on("mouseup touchend",p),h.start(t)},v=function(t){if(Ce(t),t.button!==g)return p(t);t.deltaX=t.screenX-b,t.deltaY=t.screenY-y,t.preventDefault(),h.drag(t)}
 ,p=function(t){Ce(t),Nt(x).off("mousemove touchmove",v).off("mouseup touchend",p),m.remove(),h.stop&&h.stop(t)},this.destroy=function(){Nt(w).off()},Nt(w).on("mousedown touchstart",e)}var Ee=tinymce.util.Tools.resolve("tinymce.ui.Factory"),ke=function(t){return!!t.getAttribute("data-mce-tabstop")};function Te(t){var o,r,n=t.root;function i(t){return t&&1===t.nodeType}try{o=document.activeElement}catch(e){o=document.body}function s(t){return i(t=t||o)?t.getAttribute("role"):null}function a(t){for(var e,n=t||o;n=n.parentNode;)if(e=s(n))return e}function l(t){var e=o;if(i(e))return e.getAttribute("aria-"+t)}function u(t){var e=t.tagName.toUpperCase();return"INPUT"===e||"TEXTAREA"===e||"SELECT"===e}function c(e){var r=[];return function t(e){if(1===e.nodeType&&"none"!==e.style.display&&!e.disabled){var n;(u(n=e)&&!n.hidden||ke(n)||/^(butto
 n|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(s(n)))&&r.push(e);for(var i=0;i<e.childNodes.length;i++)t(e.childNodes[i])}}(e||n.getEl()),r}function d(t){var e,n;(n=(t=t||r).parents().toArray()).unshift(t);for(var i=0;i<n.length&&!(e=n[i]).settings.ariaRoot;i++);return e}function f(t,e){return t<0?t=e.length-1:t>=e.length&&(t=0),e[t]&&e[t].focus(),t}function h(t,e){var n=-1,i=d();e=e||c(i.getEl());for(var r=0;r<e.length;r++)e[r]===o&&(n=r);n+=t,i.lastAriaIndex=f(n,e)}function m(){"tablist"===a()?h(-1,c(o.parentNode)):r.parent().submenu?b():h(-1)}function g(){var t=s(),e=a();"tablist"===e?h(1,c(o.parentNode)):"menuitem"===t&&"menu"===e&&l("haspopup")?y():h(1)}function p(){h(-1)}function v(){var t=s(),e=a();"menuitem"===t&&"menubar"===e?y():"button"===t&&l("haspopup")?y({key:"down&
 quot;}):h(1)}function b(){r.fire("cancel")}function y(t){t=t||{},r.fire("click",{target:o,aria:t})}return r=n.getParentCtrl(o),n.on("keydown",function(t){function e(t,e){u(o)||ke(o)||"slider"!==s(o)&&!1!==e(t)&&t.preventDefault()}if(!t.isDefaultPrevented())switch(t.keyCode){case 37:e(t,m);break;case 39:e(t,g);break;case 38:e(t,p);break;case 40:e(t,v);break;case 27:b();break;case 14:case 13:case 32:e(t,y);break;case 9:!function(t){if("tablist"===a()){var e=c(r.getEl("body"))[0];e&&e.focus()}else h(t.shiftKey?-1:1)}(t),t.preventDefault()}}),n.on("focusin",function(t){o=t.target,r=t.control}),{focusFirst:function(t){var e=d(t),n=c(e.getEl());e.settings.ariaRemember&&"lastAriaIndex"in e?f(e.lastAriaIndex,n):f(0,n)}}}var He,Me,Se,Ne,Oe={},De=ce.extend({init:function(t){var e=this;e._super(t),(t=e.settings).fixed&&e.state.set("fixed",!0),e._items=new Xt,e.isRtl
 ()&&e.classes.add("rtl"),e.bodyClasses=new Bt(function(){e.state.get("rendered")&&(e.getEl("body").className=this.toString())}),e.bodyClasses.prefix=e.classPrefix,e.classes.add("container"),e.bodyClasses.add("container-body"),t.containerCls&&e.classes.add(t.containerCls),e._layout=Ee.create((t.layout||"")+"layout"),e.settings.items?e.add(e.settings.items):e.add(e.render()),e._hasBody=!0},items:function(){return this._items},find:function(t){return(t=Oe[t]=Oe[t]||new qt(t)).find(this)},add:function(t){return this.items().add(this.create(t)).parent(this),this},focus:function(t){var e,n,i,r=this;if(!t||!(n=r.keyboardNav||r.parents().eq(-1)[0].keyboardNav))return i=r.find("*"),r.statusbar&&i.add(r.statusbar.items()),i.each(function(t){if(t.settings.autofocus)return e=null,!1;t.canFocus&&(e=e||t)}),e&&e.focus(),r;n.focusFirst(r)},replace:function(t,e){for(var n,
 i=this.items(),r=i.length;r--;)if(i[r]===t){i[r]=e;break}0<=r&&((n=e.getEl())&&n.parentNode.removeChild(n),(n=t.getEl())&&n.parentNode.removeChild(n)),e.parent(this)},create:function(t){var e,n=this,i=[];return C.isArray(t)||(t=[t]),C.each(t,function(t){t&&(t instanceof ce||("string"==typeof t&&(t={type:t}),e=C.extend({},n.settings.defaults,t),t.type=e.type=e.type||t.type||n.settings.defaultType||(e.defaults?e.defaults.type:null),t=Ee.create(e)),i.push(t))}),i},renderNew:function(){var i=this;return i.items().each(function(t,e){var n;t.parent(i),t.state.get("rendered")||((n=i.getEl("body")).hasChildNodes()&&e<=n.childNodes.length-1?Nt(n.childNodes[e]).before(t.renderHtml()):Nt(n).append(t.renderHtml()),t.postRender(),ee.add(t))}),i._layout.applyClasses(i.items().filter(":visible")),i._lastRect=null,i},append:function(t){return this.add(t).renderNew()},prepend:function(t){return this.items()
 .set(this.create(t).concat(this.items().toArray())),this.renderNew()},insert:function(t,e,n){var i,r,o;return t=this.create(t),i=this.items(),!n&&e<i.length-1&&(e+=1),0<=e&&e<i.length&&(r=i.slice(0,e).toArray(),o=i.slice(e).toArray(),i.set(r.concat(t,o))),this.renderNew()},fromJSON:function(t){for(var e in t)this.find("#"+e).value(t[e]);return this},toJSON:function(){var i={};return this.find("*").each(function(t){var e=t.name(),n=t.value();e&&void 0!==n&&(i[e]=n)}),i},renderHtml:function(){var t=this,e=t._layout,n=this.settings.role;return t.preRender(),e.preRender(t),'<div id="'+t._id+'" class="'+t.classes+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+(t.settings.html||"")+e.renderHtml(t)+"</div></div>"},postRender:function(){var t,e=this;return e.ite
 ms().exec("postRender"),e._super(),e._layout.postRender(e),e.state.set("rendered",!0),e.settings.style&&e.$el.css(e.settings.style),e.settings.border&&(t=e.borderBox,e.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=Te({root:e})),e},initLayoutRect:function(){var t=this._super();return this._layout.recalc(this),t},recalc:function(){var t=this,e=t._layoutRect,n=t._lastRect;if(!n||n.w!==e.w||n.h!==e.h)return t._layout.recalc(t),e=t.layoutRect(),t._lastRect={x:e.x,y:e.y,w:e.w,h:e.h},!0},reflow:function(){var t;if(ee.remove(this),this.visible()){for(ce.repaintControls=[],ce.repaintControls.map={},this.recalc(),t=ce.repaintControls.length;t--;)ce.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),ce.repaintControls=[]}retu
 rn this}}),Pe={init:function(){this.on("repaint",this.renderScroll)},renderScroll:function(){var p=this,v=2;function n(){var m,g,t;function e(t,e,n,i,r,o){var s,a,l,u,c,d,f,h;if(a=p.getEl("scroll"+t)){if(f=e.toLowerCase(),h=n.toLowerCase(),Nt(p.getEl("absend")).css(f,p.layoutRect()[i]-1),!r)return void Nt(a).css("display","none");Nt(a).css("display","block"),s=p.getEl("body"),l=p.getEl("scroll"+t+"t"),u=s["client"+n]-2*v,c=(u-=m&&g?a["client"+o]:0)/s["scroll"+n],(d={})[f]=s["offset"+e]+v,d[h]=u,Nt(a).css(d),(d={})[f]=s["scroll"+e]*c,d[h]=u*c,Nt(l).css(d)}}t=p.getEl("body"),m=t.scrollWidth>t.clientWidth,g=t.scrollHeight>t.clientHeight,e("h","Left","Width","contentW",m,"Height"),e("v","Top","Height","contentH",g,"Width&q
 uot;)}p.settings.autoScroll&&(p._hasScroll||(p._hasScroll=!0,function(){function t(s,a,l,u,c){var d,t=p._id+"-scroll"+s,e=p.classPrefix;Nt(p.getEl()).append('<div id="'+t+'" class="'+e+"scrollbar "+e+"scrollbar-"+s+'"><div id="'+t+'t" class="'+e+'scrollbar-thumb"></div></div>'),p.draghelper=new Re(t+"t",{start:function(){d=p.getEl("body")["scroll"+a],Nt("#"+t).addClass(e+"active")},drag:function(t){var e,n,i,r,o=p.layoutRect();n=o.contentW>o.innerW,i=o.contentH>o.innerH,r=p.getEl("body")["client"+l]-2*v,e=(r-=n&&i?p.getEl("scroll"+s)["client"+c]:0)/p.getEl("body")["scroll"+l],p.getEl("body")["scroll"+a]=d+t["delta"+u]/e},stop:function(){Nt("#"+t).removeClass(e+"active")}})}p.classes.add("scroll"),t(&qu
 ot;v","Top","Height","Y","Width"),t("h","Left","Width","X","Height")}(),p.on("wheel",function(t){var e=p.getEl("body");e.scrollLeft+=10*(t.deltaX||0),e.scrollTop+=10*t.deltaY,n()}),Nt(p.getEl("body")).on("scroll",n)),n())}},We=De.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[Pe],renderHtml:function(){var t=this,e=t._layout,n=t.settings.html;return t.preRender(),e.preRender(t),void 0===n?n='<div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+e.renderHtml(t)+"</div>":("function"==typeof n&&(n=n.call(t)),t._hasBody=!1),'<div id="'+t._id+'" class="'+t.classes+'" hidefocus="1" tabindex="-1" role="group">'+(t._preBodyHtml||"")+n+"</div>"}}),Ae={resizeToContent:function(){this._layo
 utRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,e){if(t<=1||e<=1){var n=St.getWindowSize();t=t<=1?t*n.w:t,e=e<=1?e*n.h:e}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:e,w:t,h:e}).reflow()},resizeBy:function(t,e){var n=this.layoutRect();return this.resizeTo(n.w+t,n.h+e)}},Be=[],Le=[];function Ie(t,e){for(;t;){if(t===e)return!0;t=t.parent()}}function ze(){He||(He=function(t){2!==t.button&&function(t){for(var e=Be.length;e--;){var n=Be[e],i=n.getParentCtrl(t.target);if(n.settings.autohide){if(i&&(Ie(i,n)||n.parent()===i))continue;(t=n.fire("autohide",{target:t.target})).isDefaultPrevented()||n.hide()}}}(t)},Nt(document).on("click touchstart",He))}function Fe(r){var t=St.getViewPort().y;function e(t,e){for(var n,i=0;i<Be.length;i++)if(Be[i]!==r)for(n=Be[i].parent();n&&(n=n.parent());)n===r&&Be[i].fixed(t).moveBy(0,e).repaint()}r.settings.autofix&&(r.state.get(&quot
 ;fixed")?r._autoFixY>t&&(r.fixed(!1).layoutRect({y:r._autoFixY}).repaint(),e(!1,r._autoFixY-t)):(r._autoFixY=r.layoutRect().y,r._autoFixY<t&&(r.fixed(!0).layoutRect({y:0}).repaint(),e(!0,t-r._autoFixY))))}function Ue(t,e){var n,i,r=Ve.zIndex||65535;if(t)Le.push(e);else for(n=Le.length;n--;)Le[n]===e&&Le.splice(n,1);if(Le.length)for(n=0;n<Le.length;n++)Le[n].modal&&(r++,i=Le[n]),Le[n].getEl().style.zIndex=r,Le[n].zIndex=r,r++;var o=Nt("#"+e.classPrefix+"modal-block",e.getContainerElm())[0];i?Nt(o).css("z-index",i.zIndex-1):o&&(o.parentNode.removeChild(o),Ne=!1),Ve.currentZIndex=r}var Ve=We.extend({Mixins:[pe,Ae],init:function(t){var i=this;i._super(t),(i._eventsRoot=i).classes.add("floatpanel"),t.autohide&&(ze(),function(){if(!Se){var t=document.documentElement,e=t.clientWidth,n=t.clientHeight;Se=function(){document.all&&e===t.clientWidth&&n===t.clientHeight||(e=t.cli
 entWidth,n=t.clientHeight,Ve.hideAll())},Nt(window).on("resize",Se)}}(),Be.push(i)),t.autofix&&(Me||(Me=function(){var t;for(t=Be.length;t--;)Fe(Be[t])},Nt(window).on("scroll",Me)),i.on("move",function(){Fe(this)})),i.on("postrender show",function(t){if(t.control===i){var e,n=i.classPrefix;i.modal&&!Ne&&((e=Nt("#"+n+"modal-block",i.getContainerElm()))[0]||(e=Nt('<div id="'+n+'modal-block" class="'+n+"reset "+n+'fade"></div>').appendTo(i.getContainerElm())),c.setTimeout(function(){e.addClass(n+"in"),Nt(i.getEl()).addClass(n+"in")}),Ne=!0),Ue(!0,i)}}),i.on("show",function(){i.parents().each(function(t){if(t.state.get("fixed"))return i.fixed(!0),!1})}),t.popover&&(i._preBodyHtml='<div class="'+i.classPrefix+'arrow"></div>',i.classes.add("popover").add("bottom").add(i.isRtl(
 )?"end":"start")),i.aria("label",t.ariaLabel),i.aria("labelledby",i._id),i.aria("describedby",i.describedBy||i._id+"-none")},fixed:function(t){var e=this;if(e.state.get("fixed")!==t){if(e.state.get("rendered")){var n=St.getViewPort();t?e.layoutRect().y-=n.y:e.layoutRect().y+=n.y}e.classes.toggle("fixed",t),e.state.set("fixed",t)}return e},show:function(){var t,e=this._super();for(t=Be.length;t--&&Be[t]!==this;);return-1===t&&Be.push(this),e},hide:function(){return qe(this),Ue(!1,this),this._super()},hideAll:function(){Ve.hideAll()},close:function(){return this.fire("close").isDefaultPrevented()||(this.remove(),Ue(!1,this)),this},remove:function(){qe(this),this._super()},postRender:function(){return this.settings.bodyRole&&this.getEl("body").setAttribute("role",this.settings.bodyRole),this._super()}});function qe(t){var e;for(e=Be.l
 ength;e--;)Be[e]===t&&Be.splice(e,1);for(e=Le.length;e--;)Le[e]===t&&Le.splice(e,1)}Ve.hideAll=function(){for(var t=Be.length;t--;){var e=Be[t];e&&e.settings.autohide&&(e.hide(),Be.splice(t,1))}};var Ye=[],$e="";function Xe(t){var e,n=Nt("meta[name=viewport]")[0];!1!==h.overrideViewPort&&(n||((n=document.createElement("meta")).setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),(e=n.getAttribute("content"))&&void 0!==$e&&($e=e),n.setAttribute("content",t?"width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0":$e))}function je(t,e){(function(){for(var t=0;t<Ye.length;t++)if(Ye[t]._fullscreen)return!0;return!1})()&&!1===e&&Nt([document.documentElement,document.body]).removeClass(t+"fullscreen")}var Je=Ve.extend({modal:!0,Defaults:{border:1,la
 yout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(t){var n=this;n._super(t),n.isRtl()&&n.classes.add("rtl"),n.classes.add("window"),n.bodyClasses.add("window-body"),n.state.set("fixed",!0),t.buttons&&(n.statusbar=new We({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:t.buttons}),n.statusbar.classes.add("foot"),n.statusbar.parent(n)),n.on("click",function(t){var e=n.classPrefix+"close";(St.hasClass(t.target,e)||St.hasClass(t.target.parentNode,e))&&n.close()}),n.on("cancel",function(){n.close()}),n.on("move",function(t){t.control===n&&Ve.hideAll()}),n.aria("describedby&q
 uot;,n.describedBy||n._id+"-none"),n.aria("label",t.title),n._fullscreen=!1},recalc:function(){var t,e,n,i,r=this,o=r.statusbar;r._fullscreen&&(r.layoutRect(St.getWindowSize()),r.layoutRect().contentH=r.layoutRect().innerH),r._super(),t=r.layoutRect(),r.settings.title&&!r._fullscreen&&(e=t.headerW)>t.w&&(n=t.x-Math.max(0,e/2),r.layoutRect({w:e,x:n}),i=!0),o&&(o.layoutRect({w:r.layoutRect().innerW}).recalc(),(e=o.layoutRect().minW+t.deltaW)>t.w&&(n=t.x-Math.max(0,e-t.w),r.layoutRect({w:e,x:n}),i=!0)),i&&r.recalc()},initLayoutRect:function(){var t,e=this,n=e._super(),i=0;if(e.settings.title&&!e._fullscreen){t=e.getEl("head");var r=St.getSize(t);n.headerW=r.width,n.headerH=r.height,i+=n.headerH}e.statusbar&&(i+=e.statusbar.layoutRect().h),n.deltaH+=i,n.minH+=i,n.h+=i;var o=St.getWindowSize();return n.x=e.settings.x||Math.max(0,o.w/2-n.w/2),n.y=e.settings.y||Math.max(0,o.h/2-n.h/2
 ),n},renderHtml:function(){var t=this,e=t._layout,n=t._id,i=t.classPrefix,r=t.settings,o="",s="",a=r.html;return t.preRender(),e.preRender(t),r.title&&(o='<div id="'+n+'-head" class="'+i+'window-head"><div id="'+n+'-title" class="'+i+'title">'+t.encode(r.title)+'</div><div id="'+n+'-dragh" class="'+i+'dragh"></div><button type="button" class="'+i+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),r.url&&(a='<iframe src="'+r.url+'" tabindex="-1"></iframe>'),void 0===a&&(a=e.renderHtml(t)),t.statusbar&&(s=t.statusbar.renderHtml()),'<div id="'+n+'" class="'+t.classes+'" hidefocus="1"><div class="'+t.classPrefix+'reset" role="application">'+o+'<div id=&q
 uot;'+n+'-body" class="'+t.bodyClasses+'">'+a+"</div>"+s+"</div></div>"},fullscreen:function(t){var n,e,i=this,r=document.documentElement,o=i.classPrefix;if(t!==i._fullscreen)if(Nt(window).on("resize",function(){var t;if(i._fullscreen)if(n)i._timer||(i._timer=c.setTimeout(function(){var t=St.getWindowSize();i.moveTo(0,0).resizeTo(t.w,t.h),i._timer=0},50));else{t=(new Date).getTime();var e=St.getWindowSize();i.moveTo(0,0).resizeTo(e.w,e.h),50<(new Date).getTime()-t&&(n=!0)}}),e=i.layoutRect(),i._fullscreen=t){i._initial={x:e.x,y:e.y,w:e.w,h:e.h},i.borderBox=Pt("0"),i.getEl("head").style.display="none",e.deltaH-=e.headerH+2,Nt([r,document.body]).addClass(o+"fullscreen"),i.classes.add("fullscreen");var s=St.getWindowSize();i.moveTo(0,0).resizeTo(s.w,s.h)}else i.borderBox=Pt(i.settings.border),i.getEl("head").style.display="",e.deltaH+=e.head
 erH,Nt([r,document.body]).removeClass(o+"fullscreen"),i.classes.remove("fullscreen"),i.moveTo(i._initial.x,i._initial.y).resizeTo(i._initial.w,i._initial.h);return i.reflow()},postRender:function(){var e,n=this;setTimeout(function(){n.classes.add("in"),n.fire("open")},0),n._super(),n.statusbar&&n.statusbar.postRender(),n.focus(),this.dragHelper=new Re(n._id+"-dragh",{start:function(){e={x:n.layoutRect().x,y:n.layoutRect().y}},drag:function(t){n.moveTo(e.x+t.deltaX,e.y+t.deltaY)}}),n.on("submit",function(t){t.isDefaultPrevented()||n.close()}),Ye.push(n),Xe(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var t,e=this;for(e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),je(e.classPrefix,!1),t=Ye.length;t--;)Ye[t]===e&&Ye.splice(t,1);Xe(0<Ye.length)},getContentWindow:function(){var t=this.getEl().getElementsByTagName("ifram
 e")[0];return t?t.contentWindow:null}});!function(){if(!h.desktop){var n={w:window.innerWidth,h:window.innerHeight};c.setInterval(function(){var t=window.innerWidth,e=window.innerHeight;n.w===t&&n.h===e||(n={w:t,h:e},Nt(window).trigger("resize"))},100)}Nt(window).on("resize",function(){var t,e,n=St.getWindowSize();for(t=0;t<Ye.length;t++)e=Ye[t].layoutRect(),Ye[t].moveTo(Ye[t].settings.x||Math.max(0,n.w/2-e.w/2),Ye[t].settings.y||Math.max(0,n.h/2-e.h/2))})}();var Ge=Je.extend({init:function(t){t={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(t)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(t){var e,i=t.callback||function(){};function n(t,e,n){return{type:"button",text:
 t,subtype:n?"primary":"",onClick:function(t){t.control.parents()[1].close(),i(e)}}}switch(t.buttons){case Ge.OK_CANCEL:e=[n("Ok",!0,!0),n("Cancel",!1)];break;case Ge.YES_NO:case Ge.YES_NO_CANCEL:e=[n("Yes",1,!0),n("No",0)],t.buttons===Ge.YES_NO_CANCEL&&e.push(n("Cancel",-1));break;default:e=[n("Ok",!0,!0)]}return new Je({padding:20,x:t.x,y:t.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:e,title:t.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:t.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:t.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(t,e){return"string"==typeof t&&(t={text:t}),t.callback=e,Ge.msgBox(t)},confirm:function(t,e){return"string"==typeof t&&
 amp;(t={text:t}),t.callback=e,t.buttons=Ge.OK_CANCEL,Ge.msgBox(t)}}}),Ke=function(t,e){return{renderUI:function(){return st(t,e)},getNotificationManagerImpl:function(){return _e(t)},getWindowManagerImpl:function(){return{open:function(n,t,e){var i;return n.title=n.title||" ",n.url=n.url||n.file,n.url&&(n.width=parseInt(n.width||320,10),n.height=parseInt(n.height||240,10)),n.body&&(n.items={defaults:n.defaults,type:n.bodyType||"form",items:n.body,data:n.data,callbacks:n.commands}),n.url||n.buttons||(n.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),(i=new Je(n)).on("close",function(){e(i)}),n.data&&i.on("postRender",function(){this.find("*").each(function(t){var e=t.name();e in n.data&&t.value(n.data[e])})}),i.features=n||{},i.params=t||{},i=i.renderTo(document.body).reflow()},al
 ert:function(t,e,n){var i;return(i=Ge.alert(t,function(){e()})).on("close",function(){n(i)}),i},confirm:function(t,e,n){var i;return(i=Ge.confirm(t,function(t){e(t)})).on("close",function(){n(i)}),i},close:function(t){t.close()},getParams:function(t){return t.params},setParams:function(t,e){t.params=e}}}}},Ze="undefined"!=typeof window?window:Function("return this;")(),Qe=function(t,e){return function(t,e){for(var n=e!==undefined&&null!==e?e:Ze,i=0;i<t.length&&n!==undefined&&null!==n;++i)n=n[t[i]];return n}(t.split("."),e)},tn=function(t,e){var n=Qe(t,e);if(n===undefined||null===n)throw t+" not available on this browser";return n};function en(){return new(tn("FileReader"))}var nn=tinymce.util.Tools.resolve("tinymce.util.Promise"),rn=function(n){return new nn(function(t){var e=new en;e.onloadend=function(){t(e.result.split(",")[1])},e.readAsDataURL(n)})},on=function(){
 return new nn(function(e){var t;(t=document.createElement("input")).type="file",t.style.position="fixed",t.style.left=0,t.style.top=0,t.style.opacity=.001,document.body.appendChild(t),t.onchange=function(t){e(Array.prototype.slice.call(t.target.files))},t.click(),t.parentNode.removeChild(t)})},sn=0,an=function(t){return t+sn+++(e=function(){return Math.round(4294967295*Math.random()).toString(36)},"s"+Date.now().toString(36)+e()+e()+e());var e},ln=function(r,o){var s={};function t(t){var e,n,i;n=o[t?"startContainer":"endContainer"],i=o[t?"startOffset":"endOffset"],1===n.nodeType&&(e=r.create("span",{"data-mce-type":"bookmark"}),n.hasChildNodes()?(i=Math.min(i,n.childNodes.length-1),t?n.insertBefore(e,n.childNodes[i]):r.insertAfter(e,n.childNodes[i])):n.appendChild(e),n=e,i=0),s[t?"startContainer":"endContainer"]=n,s[t?"startOffset":&quot
 ;endOffset"]=i}return t(!0),o.collapsed||t(),s},un=function(r,o){function t(t){var e,n,i;e=i=o[t?"startContainer":"endContainer"],n=o[t?"startOffset":"endOffset"],e&&(1===e.nodeType&&(n=function(t){for(var e=t.parentNode.firstChild,n=0;e;){if(e===t)return n;1===e.nodeType&&"bookmark"===e.getAttribute("data-mce-type")||n++,e=e.nextSibling}return-1}(e),e=e.parentNode,r.remove(i)),o[t?"startContainer":"endContainer"]=e,o[t?"startOffset":"endOffset"]=n)}t(!0),t();var e=r.createRng();return e.setStart(o.startContainer,o.startOffset),o.endContainer&&e.setEnd(o.endContainer,o.endOffset),e},cn=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),dn=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),fn=function(t){return"A"===t.nodeName&&t.hasAttribute("href")},hn=function(t){var e,n,i,r,o,s,a,l;return r=t.s
 election,o=t.dom,s=r.getRng(),a=o,l=dn.getNode(s.startContainer,s.startOffset),e=a.getParent(l,fn)||l,n=dn.getNode(s.endContainer,s.endOffset),i=t.getBody(),C.grep(function(t,e,n){var i,r,o=[];for(i=new cn(e,t),r=e;r&&(1===r.nodeType&&o.push(r),r!==n);r=i.next());return o}(i,e,n),fn)},mn=function(t){var e,n,i,r,o;n=hn(e=t),r=e.dom,o=e.selection,i=ln(r,o.getRng()),C.each(n,function(t){e.dom.remove(t,!0)}),o.setRng(un(r,i))},gn=function(t){t.selection.collapse(!1)},pn=function(t){t.focus(),mn(t),gn(t)},vn=function(t,e){var n,i,r,o,s,a=t.dom.getParent(t.selection.getStart(),"a[href]");a?(o=a,s=e,(r=t).focus(),r.dom.setAttrib(o,"href",s),gn(r)):(i=e,(n=t).execCommand("mceInsertLink",!1,{href:i}),gn(n))},bn=function(t,e,n){var i,r,o;t.plugins.table?t.plugins.table.insertTable(e,n):(r=e,o=n,(i=t).undoManager.transact(function(){var t,e;i.insertContent(function(t,e){var n,i,r;for(r='<table data-mce-id="mce" style="width: 100%&
 quot;>',r+="<tbody>",i=0;i<e;i++){for(r+="<tr>",n=0;n<t;n++)r+="<td><br></td>";r+="</tr>"}return r+="</tbody>",r+="</table>"}(r,o)),(t=i.dom.select("*[data-mce-id]")[0]).removeAttribute("data-mce-id"),e=i.dom.select("td,th",t),i.selection.setCursorLocation(e[0],0)}))},yn=function(t,e){t.execCommand("FormatBlock",!1,e)},xn=function(t,e,n){var i,r;r=(i=t.editorUpload.blobCache).create(an("mceu"),n,e),i.add(r),t.insertContent(t.dom.createHTML("img",{src:r.blobUri()}))},wn=function(t,e){0===e.trim().length?pn(t):vn(t,e)},_n=pn,Cn=function(n,t){n.addButton("quicklink",{icon:"link",tooltip:"Insert/Edit link",stateSelector:"a[href]",onclick:function(){t.showForm(n,"quicklink")}}),n.addButton("quickimage",{icon:"image",tooltip:"Insert image&qu
 ot;,onclick:function(){on().then(function(t){var e=t[0];rn(e).then(function(t){xn(n,t,e)})})}}),n.addButton("quicktable",{icon:"table",tooltip:"Insert table",onclick:function(){t.hide(),bn(n,2,2)}}),function(e){for(var t=function(t){return function(){yn(e,t)}},n=1;n<6;n++){var i="h"+n;e.addButton(i,{text:i.toUpperCase(),tooltip:"Heading "+n,stateSelector:i,onclick:t(i),onPostRender:function(){this.getEl().firstChild.firstChild.style.fontWeight="bold"}})}}(n)},Rn=function(){var t=h.container;if(t&&"static"!==v.DOM.getStyle(t,"position",!0)){var e=v.DOM.getPos(t),n=e.x-t.scrollLeft,i=e.y-t.scrollTop;return pt.some({x:n,y:i})}return pt.none()},En=function(t){return/^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(t.trim())},kn=function(t){return/^https?:\/\//.test(t.trim())},Tn=function(t,e){return!kn(e)&&En(e)?(n=t,i=e,new nn(function(e){n.windowManage
 r.confirm("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(t){e(!0===t?"http://"+i:i)})})):nn.resolve(e);var n,i},Hn=function(r,e){var t,n,i,o={};return t="quicklink",n={items:[{type:"button",name:"unlink",icon:"unlink",onclick:function(){r.focus(),_n(r),e()},tooltip:"Remove link"},{type:"filepicker",name:"linkurl",placeholder:"Paste or type a link",filetype:"file",onchange:function(t){var e=t.meta;e&&e.attach&&(o={href:this.value(),attach:e.attach})}},{type:"button",icon:"checkmark",subtype:"primary",tooltip:"Ok",onclick:"submit"}],onshow:function(t){if(t.control===this){var e,n="";(e=r.dom.getParent(r.selection.getStart(),"a[href]"))&&(n=r.dom.getAttrib(e,"href")),this.fromJSON({linkurl:n}),i=this.find("#un
 link"),e?i.show():i.hide(),this.find("#linkurl")[0].focus()}var i},onsubmit:function(t){Tn(r,t.data.linkurl).then(function(t){r.undoManager.transact(function(){t===o.href&&(o.attach(),o={}),wn(r,t)}),e()})}},(i=Ee.create(C.extend({type:"form",layout:"flex",direction:"row",padding:5,name:t,spacing:3},n))).on("show",function(){i.find("textbox").eq(0).each(function(t){t.focus()})}),i},Mn=function(n,t,e){var o,i,s=[];if(e)return C.each(B(i=e)?i:D(i)?i.split(/[ ,]/):[],function(t){if("|"===t)o=null;else if(n.buttons[t]){o||(o={type:"buttongroup",items:[]},s.push(o));var e=n.buttons[t];A(e)&&(e=e()),e.type=e.type||"button",(e=Ee.create(e)).on("postRender",(i=n,r=e,function(){var e,t,n=(t=function(t,e){return{selector:t,handler:e}},(e=r).settings.stateSelector?t(e.settings.stateSelector,function(t){e.active(t)}):e.settings.disabledStateSelector?t(e.settings.disabledState
 Selector,function(t){e.disabled(t)}):null);null!==n&&i.selection.selectorChanged(n.selector,n.handler)})),o.items.push(e)}var i,r}),Ee.create({type:"toolbar",layout:"flow",name:t,items:s})},Sn=function(){var l,c,o=function(t){return 0<t.items().length},u=function(t,e){var n,i,r=(n=t,i=e,C.map(i,function(t){return Mn(n,t.id,t.items)})).concat([Mn(t,"text",J(t)),Mn(t,"insert",G(t)),Hn(t,p)]);return Ee.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:C.grep(r,o),oncancel:function(){t.focus()}})},d=function(t){t&&t.show()},f=function(t,e){t.moveTo(e.x,e.y)},h=function(n,i){i=i?i.substr(0,2):"",C.each({t:"down",b:"up",c:"center"},function(t,e){n.classes.toggle("arrow
 -"+t,e===i.substr(0,1))}),"cr"===i?(n.classes.toggle("arrow-left",!0),n.classes.toggle("arrow-right",!1)):"cl"===i?(n.classes.toggle("arrow-left",!0),n.classes.toggle("arrow-right",!0)):C.each({l:"left",r:"right"},function(t,e){n.classes.toggle("arrow-"+t,e===i.substr(1,1))})},m=function(t,e){var n=t.items().filter("#"+e);return 0<n.length&&(n[0].show(),t.reflow(),!0)},g=function(t,e,n,i){var r,o,s,a;if(a=K(n),r=y(n),o=v.DOM.getRect(t.getEl()),s="insert"===e?Y(i,r,o):$(i,r,o)){var l=Rn().getOr({x:0,y:0}),u={x:s.rect.x-l.x,y:s.rect.y-l.y,w:s.rect.w,h:s.rect.h};return f(t,X(a,c=i,r,u)),h(t,s.position),!0}return!1},p=function(){l&&l.hide()};return{show:function(t,e,n,i){var r,o,s,a;l||(M(t),(l=u(t,i)).renderTo().reflow().moveTo(n.x,n.y),t.nodeChanged()),o=e,s=t,a=n,d(r=l),r.items().hide(),m(r,o)?!1===g(r,o,s,a)&&p():p()},showForm:function(t,e){if
 (l){if(l.items().hide(),!m(l,e))return void p();var n,i,r,o=void 0;d(l),l.items().hide(),m(l,e),r=K(t),n=y(t),o=v.DOM.getRect(l.getEl()),(i=$(c,n,o))&&(o=i.rect,f(l,X(r,c,n,o)),h(l,i.position))}},reposition:function(t,e,n){l&&g(l,e,t,n)},inForm:function(){return l&&l.visible()&&0<l.items().filter("form:visible").length},hide:p,focus:function(){l&&l.find("toolbar:visible").eq(0).each(function(t){t.focus(!0)})},remove:function(){l&&(l.remove(),l=null)}}},Nn=Ot.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(t){this.settings=C.extend({},this.Defaults,t)},preRender:function(t){t.bodyClasses.add(this.settings.containerClass)},applyClasses:function(t){var e,n,i,r,o=this.settings;e=o.firstControlClass,n=o.lastControlClass,t.each(function(t){t.classes.remove(e).remove(n).add(o.controlClass),t.visible()&&(i||(i=t),r=t)}),i&&i.classes.add(e),r&&
 r.classes.add(n)},renderHtml:function(t){var e="";return this.applyClasses(t.items()),t.items().each(function(t){e+=t.renderHtml()}),e},recalc:function(){},postRender:function(){},isNative:function(){return!1}}),On=Nn.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(t){t.items().filter(":visible").each(function(t){var e=t.settings;t.layoutRect({x:e.x,y:e.y,w:e.w,h:e.h}),t.recalc&&t.recalc()})},renderHtml:function(t){return'<div id="'+t._id+'-absend" class="'+t.classPrefix+'abs-end"></div>'+this._super(t)}}),Dn=be.extend({Defaults:{classes:"widget btn",role:"button"},init:function(t){var e,n=this;n._super(t),t=n.settings,e=n.settings.size,n.on("click mousedown",function(t){t.preventDefault()}),n.on("touchstart",function(t){n.fire("click",t),t.preventDefault()}),t.subtype&&n.classes.add(t.subtype),e&&
 amp;n.classes.add("btn-"+e),t.icon&&n.icon(t.icon)},icon:function(t){return arguments.length?(this.state.set("icon",t),this):this.state.get("icon")},repaint:function(){var t,e=this.getEl().firstChild;e&&((t=e.style).width=t.height="100%"),this._super()},renderHtml:function(){var t,e,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a="",l=n.settings;return(t=l.image)?(o="none","string"!=typeof t&&(t=window.getSelection?t[0]:t[1]),t=" style=\"background-image: url('"+t+"')\""):t="",s&&(n.classes.add("btn-has-text"),a='<span class="'+r+'txt">'+n.encode(s)+"</span>"),o=o?r+"ico "+r+"i-"+o:"",e="boolean"==typeof l.active?' aria-pressed="'+l.active+'"':"",'<div id="'+i+'" class="'+n.cla
 sses+'" tabindex="-1"'+e+'><button id="'+i+'-button" role="presentation" type="button" tabindex="-1">'+(o?'<i class="'+o+'"'+t+"></i>":"")+a+"</button></div>"},bindStates:function(){var o=this,n=o.$,i=o.classPrefix+"txt";function s(t){var e=n("span."+i,o.getEl());t?(e[0]||(n("button:first",o.getEl()).append('<span class="'+i+'"></span>'),e=n("span."+i,o.getEl())),e.html(o.encode(t))):e.remove(),o.classes.toggle("btn-has-text",!!t)}return o.state.on("change:text",function(t){s(t.value)}),o.state.on("change:icon",function(t){var e=t.value,n=o.classPrefix;e=(o.settings.icon=e)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];e?(r&&r===i.firstChild||(r=document.createElement(&qu
 ot;i"),i.insertBefore(r,i.firstChild)),r.className=e):r&&i.removeChild(r),s(o.state.get("text"))}),o._super()}}),Pn=Dn.extend({init:function(t){t=C.extend({text:"Browse...",multiple:!1,accept:null},t),this._super(t),this.classes.add("browsebutton"),t.multiple&&this.classes.add("multiple")},postRender:function(){var n=this,e=St.create("input",{type:"file",id:n._id+"-browse",accept:n.settings.accept});n._super(),Nt(e).on("change",function(t){var e=t.target.files;n.value=function(){return e.length?n.settings.multiple?e:e[0]:null},t.preventDefault(),e.length&&n.fire("change",t)}),Nt(e).on("click",function(t){t.stopPropagation()}),Nt(n.getEl("button")).on("click",function(t){t.stopPropagation(),e.click()}),n.getEl().appendChild(e)},remove:function(){Nt(this.getEl("button")).off(),Nt(this.getEl("input")).off(),this._super(
 )}}),Wn=De.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var t=this,e=t._layout;return t.classes.add("btn-group"),t.preRender(),e.preRender(t),'<div id="'+t._id+'" class="'+t.classes+'"><div id="'+t._id+'-body">'+(t.settings.html||"")+e.renderHtml(t)+"</div></div>"}}),An=be.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(t){var e=this;e._super(t),e.on("click mousedown",function(t){t.preventDefault()}),e.on("click",function(t){t.preventDefault(),e.disabled()||e.checked(!e.checked())}),e.checked(e.settings.checked)},checked:function(t){return arguments.length?(this.state.set("checked",t),this):this.state.get("checked")},value:function(t){return arguments.length?this.checked(t):this.checked()},renderHtml:function(){var t=this,e=t._id,n=t.classPrefix;return'<div i
 d="'+e+'" class="'+t.classes+'" unselectable="on" aria-labelledby="'+e+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+e+'-al" class="'+n+'label">'+t.encode(t.state.get("text"))+"</span></div>"},bindStates:function(){var o=this;function e(t){o.classes.toggle("checked",t),o.aria("checked",t)}return o.state.on("change:text",function(t){o.getEl("al").firstChild.data=o.translate(t.value)}),o.state.on("change:checked change:value",function(t){o.fire("change"),e(t.value)}),o.state.on("change:icon",function(t){var e=t.value,n=o.classPrefix;if(void 0===e)return o.settings.icon;e=(o.settings.icon=e)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];e?(r&&r===i.firstCh
 ild||(r=document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=e):r&&i.removeChild(r)}),o.state.get("checked")&&e(!0),o._super()}}),Bn=tinymce.util.Tools.resolve("tinymce.util.VK"),Ln=be.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.classes.add("combobox"),r.subinput=!0,r.ariaTarget="inp",i.menu=i.menu||i.values,i.menu&&(i.icon="caret"),r.on("click",function(t){var e=t.target,n=r.getEl();if(Nt.contains(n,e)||e===n)for(;e&&e!==n;)e.id&&-1!==e.id.indexOf("-open")&&(r.fire("action"),i.menu&&(r.showMenu(),t.aria&&r.menu.items()[0].focus())),e=e.parentNode}),r.on("keydown",function(t){var e;13===t.keyCode&&"INPUT"===t.target.nodeName&&(t.preventDefault(),r.parents().reverse().each(function(t){if(t.toJSON)return e=t,!1}),r.fire("submit",{data:e.toJSON()}))}),
 r.on("keyup",function(t){if("INPUT"===t.target.nodeName){var e=r.state.get("value"),n=t.target.value;n!==e&&(r.state.set("value",n),r.fire("autocomplete",t))}}),r.on("mouseover",function(t){var e=r.tooltip().moveTo(-65535);if(r.statusLevel()&&-1!==t.target.className.indexOf(r.classPrefix+"status")){var n=r.statusMessage()||"Ok",i=e.text(n).show().testMoveRel(t.target,["bc-tc","bc-tl","bc-tr"]);e.classes.toggle("tooltip-n","bc-tc"===i),e.classes.toggle("tooltip-nw","bc-tl"===i),e.classes.toggle("tooltip-ne","bc-tr"===i),e.moveRel(t.target,i)}})},statusLevel:function(t){return 0<arguments.length&&this.state.set("statusLevel",t),this.state.get("statusLevel")},statusMessage:function(t){return 0<arguments.length&&this.state.set("statusMessage",t),this.st
 ate.get("statusMessage")},showMenu:function(){var t,e=this,n=e.settings;e.menu||((t=n.menu||[]).length?t={type:"menu",items:t}:t.type=t.type||"menu",e.menu=Ee.create(t).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()===e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"===t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var t,e,n=this,i=n.getEl(),r=n.getEl
 ("open"),o=n.layoutRect(),s=0,a=i.firstChild;n.statusLevel()&&"none"!==n.statusLevel()&&(s=parseInt(St.getRuntimeStyle(a,"padding-right"),10)-parseInt(St.getRuntimeStyle(a,"padding-left"),10)),t=r?o.w-St.getSize(r).width-10:o.w-10;var l=document;return l.all&&(!l.documentMode||l.documentMode<=8)&&(e=n.layoutRect().h-2+"px"),Nt(a).css({width:t-s,lineHeight:e}),n._super(),n},postRender:function(){var e=this;return Nt(this.getEl("inp")).on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)}),e._super()},renderHtml:function(){var t,e,n,i=this,r=i._id,o=i.settings,s=i.classPrefix,a=i.state.get("value")||"",l="",u="";return"spellcheck"in o&&(u+=' spellcheck="'+o.spellcheck+'"'),o.maxLength&&(u+=' maxlength="'+o.maxLength+'"'),o.size&&(u+=' size=&quo
 t;'+o.size+'"'),o.subtype&&(u+=' type="'+o.subtype+'"'),n='<i id="'+r+'-status" class="mce-status mce-ico" style="display: none"></i>',i.disabled()&&(u+=' disabled="disabled"'),(t=o.icon)&&"caret"!==t&&(t=s+"ico "+s+"i-"+o.icon),e=i.state.get("text"),(t||e)&&(l='<div id="'+r+'-open" class="'+s+"btn "+s+'open" tabIndex="-1" role="button"><button id="'+r+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!==t?'<i class="'+t+'"></i>':'<i class="'+s+'caret"></i>')+(e?(t?" ":"")+e:"")+"</button></div>",i.classes.add("has-open")),'<div id="'+r+'" class="'+i.classes+'"><input id="'+r+'-i
 np" class="'+s+'textbox" value="'+i.encode(a,!1)+'" hidefocus="1"'+u+' placeholder="'+i.encode(o.placeholder)+'" />'+n+l+"</div>"},value:function(t){return arguments.length?(this.state.set("value",t),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},showAutoComplete:function(t,i){var r=this;if(0!==t.length){r.menu?r.menu.items().remove():r.menu=Ee.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),C.each(t,function(t){var e,n;r.menu.add({text:t.title,url:t.previewUrl,match:i,classes:"menu-item-ellipsis",onclick:(e=t.value,n=t.title,function(){r.fire("selectitem",{title:n,value:e})})})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(t){t.control.parent()===r.menu&&(t.stopPropagation(),r.focus(),r
 .hideMenu())}),r.menu.on("select",function(){r.focus()});var e=r.layoutRect().w;r.menu.layoutRect({w:e,minW:0,maxW:e}),r.menu.repaint(),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])}else r.hideMenu()},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var r=this;r.state.on("change:value",function(t){r.getEl("inp").value!==t.value&&(r.getEl("inp").value=t.value)}),r.state.on("change:disabled",function(t){r.getEl("inp").disabled=t.value}),r.state.on("change:statusLevel",function(t){var e=r.getEl("status"),n=r.classPrefix,i=t.value;St.css(e,"display","none"===i?"none":""),St.toggleClass(e,n+"i-checkmark","ok"===i),St.toggleClass(e,n+"i-warning","warn"===i),St.toggleClass(e,n+"i-error",&quo
 t;error"===i),r.classes.toggle("has-status","none"!==i),r.repaint()}),St.on(r.getEl("status"),"mouseleave",function(){r.tooltip().hide()}),r.on("cancel",function(t){r.menu&&r.menu.visible()&&(t.stopPropagation(),r.hideMenu())});var n=function(t,e){e&&0<e.items().length&&e.items().eq(t)[0].focus()};return r.on("keydown",function(t){var e=t.keyCode;"INPUT"===t.target.nodeName&&(e===Bn.DOWN?(t.preventDefault(),r.fire("autocomplete"),n(0,r.menu)):e===Bn.UP&&(t.preventDefault(),n(-1,r.menu)))}),r._super()},remove:function(){Nt(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}}),In=Ln.extend({init:function(t){var e=this;t.spellcheck=!1,t.onaction&&(t.icon="none"),e._super(t),e.classes.add("colorbox"),e.on("change keyup postrender",function(){e.repaintColor(e.value())})},repaintCol
 or:function(t){var e=this.getEl("open"),n=e?e.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=t}catch(i){}},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.state.get("rendered")&&e.repaintColor(t.value)}),e._super()}}),zn=Dn.extend({showPanel:function(){var e=this,t=e.settings;if(e.classes.add("opened"),e.panel)e.panel.show();else{var n=t.panel;n.type&&(n={layout:"grid",items:n}),n.role=n.role||"dialog",n.popover=!0,n.autohide=!0,n.ariaRoot=!0,e.panel=new Ve(n).on("hide",function(){e.classes.remove("opened")}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}var i=e.panel.testMoveRel(e.getEl(),t.popoverAlign||(e.isRtl()?["bc-tc","bc-tl","bc-tr"]:["bc-tc","bc-tr",&quot
 ;bc-tl","tc-bc","tc-br","tc-bl"]));e.panel.classes.toggle("start","l"===i.substr(-1)),e.panel.classes.toggle("end","r"===i.substr(-1));var r="t"===i.substr(0,1);e.panel.classes.toggle("bottom",!r),e.panel.classes.toggle("top",r),e.panel.moveRel(e.getEl(),i)},hidePanel:function(){this.panel&&this.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}}),Fn=v.DOM,Un=zn.extend({init:function(t){this._super(t),this.classes.add("splitbtn"),this.classes.add("colorbutton")},color:function(t){return t?(this._color=t,this.getEl("preview").style.backgroundColor=t,thi
 s):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var t=this,e=t._id,n=t.classPrefix,i=t.state.get("text"),r=t.settings.icon?n+"ico "+n+"i-"+t.settings.icon:"",o=t.settings.image?" style=\"background-image: url('"+t.settings.image+"')\"":"",s="";return i&&(t.classes.add("btn-has-text"),s='<span class="'+n+'txt">'+t.encode(i)+"</span>"),'<div id="'+e+'" class="'+t.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+o+"></i>":"")+'<span id="'+e+'-preview" class="'+n+'preview"></sp
 an>'+s+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,n=e.settings.onclick;return e.on("click",function(t){t.aria&&"down"===t.aria.key||t.control!==e||Fn.getParent(t.target,"."+e.classPrefix+"open")||(t.stopImmediatePropagation(),n.call(e,t))}),delete e.settings.onclick,e._super()}}),Vn=tinymce.util.Tools.resolve("tinymce.util.Color"),qn=be.extend({Defaults:{classes:"widget colorpicker"},init:function(t){this._super(t)},postRender:function(){var n,i,r,o,s,a=this,l=a.color();function u(t,e){var n,i,r=St.getPos(t);return n=e.pageX-r.x,i=e.pageY-r.y,{x:n=Math.max(0,Math.min(n/t.clientWidth,1)),y:i=Math.max(0,Math.min(i/t.clientHeight,1))}}function c(t,e){var n=(360-t.h)/360;St.css(r,{top:100*n+"%"}),e||St.css(s,{le
 ft:t.s+"%",top:100-t.v+"%"}),o.style.background=Vn({s:100,v:100,h:t.h}).toHex(),a.color().parse({s:t.s,v:t.v,h:t.h})}function t(t){var e;e=u(o,t),n.s=100*e.x,n.v=100*(1-e.y),c(n),a.fire("change")}function e(t){var e;e=u(i,t),(n=l.toHsv()).h=360*(1-e.y),c(n,!0),a.fire("change")}i=a.getEl("h"),r=a.getEl("hp"),o=a.getEl("sv"),s=a.getEl("svp"),a._repaint=function(){c(n=l.toHsv())},a._super(),a._svdraghelper=new Re(a._id+"-sv",{start:t,drag:t}),a._hdraghelper=new Re(a._id+"-h",{start:e,drag:e}),a._repaint()},rgb:function(){return this.color().toRgb()},value:function(t){if(!arguments.length)return this.color().toHex();this.color().parse(t),this._rendered&&this._repaint()},color:function(){return this._color||(this._color=Vn()),this._color},renderHtml:function(){var t,e=this._id,o=this.classPrefix,s="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00
 ,#ffff00,#ff8000,#ff0000";return t='<div id="'+e+'-h" class="'+o+'colorpicker-h" style="background: -ms-linear-gradient(top,'+s+");background: linear-gradient(to bottom,"+s+');">'+function(){var t,e,n,i,r="";for(n="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",t=0,e=(i=s.split(",")).length-1;t<e;t++)r+='<div class="'+o+'colorpicker-h-chunk" style="height:'+100/e+"%;"+n+i[t]+",endColorstr="+i[t+1]+");-ms-"+n+i[t]+",endColorstr="+i[t+1]+')"></div>';return r}()+'<div id="'+e+'-hp" class="'+o+'colorpicker-h-marker"></div></div>','<div id="'+e+'" class="'+this.classes+'"><div id="'+e+'-sv" class="'+o+'colorpicker-sv"><div class="'+o+'colorpicker-overlay1"><div class="'+o+'colorpicker-over
 lay2"><div id="'+e+'-svp" class="'+o+'colorpicker-selector1"><div class="'+o+'colorpicker-selector2"></div></div></div></div></div>'+t+"</div>"}}),Yn=be.extend({init:function(t){t=C.extend({height:100,text:"Drop an image here",multiple:!1,accept:null},t),this._super(t),this.classes.add("dropzone"),t.multiple&&this.classes.add("multiple")},renderHtml:function(){var t,e,n=this.settings;return t={id:this._id,hidefocus:"1"},e=St.create("div",t,"<span>"+this.translate(n.text)+"</span>"),n.height&&St.css(e,"height",n.height+"px"),n.width&&St.css(e,"width",n.width+"px"),e.className=this.classes,e.outerHTML},postRender:function(){var i=this,t=function(t){t.preventDefault(),i.classes.toggle("dragenter"),i.getEl().className=i.classes};i._super()
 ,i.$el.on("dragover",function(t){t.preventDefault()}),i.$el.on("dragenter",t),i.$el.on("dragleave",t),i.$el.on("drop",function(t){if(t.preventDefault(),!i.state.get("disabled")){var e=function(t){var e=i.settings.accept;if("string"!=typeof e)return t;var n=new RegExp("("+e.split(/\s*,\s*/).join("|")+")$","i");return C.grep(t,function(t){return n.test(t.name)})}(t.dataTransfer.files);i.value=function(){return e.length?i.settings.multiple?e:e[0]:null},e.length&&i.fire("change",t)}})},remove:function(){this.$el.off(),this._super()}}),$n=be.extend({init:function(t){var n=this;t.delimiter||(t.delimiter="\xbb"),n._super(t),n.classes.add("path"),n.canFocus=!0,n.on("click",function(t){var e;(e=t.target.getAttribute("data-index"))&&n.fire("select",{value:n.row()[e],index:e})}),n.row(n.settings.row)},focus:function(){re
 turn this.getEl().firstChild.focus(),this},row:function(t){return arguments.length?(this.state.set("row",t),this):this.state.get("row")},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'">'+this._getDataPathHtml(this.state.get("row"))+"</div>"},bindStates:function(){var e=this;return e.state.on("change:row",function(t){e.innerHtml(e._getDataPathHtml(t.value))}),e._super()},_getDataPathHtml:function(t){var e,n,i=t||[],r="",o=this.classPrefix;for(e=0,n=i.length;e<n;e++)r+=(0<e?'<div class="'+o+'divider" aria-hidden="true"> '+this.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(e===n-1?" "+o+"last":"")+'" data-index="'+e+'" tabindex="-1" id="'+this._id+"-"+e+'" aria-level="'+(e+
 1)+'">'+i[e].name+"</div>";return r||(r='<div class="'+o+'path-item">\xa0</div>'),r}}),Xn=$n.extend({postRender:function(){var o=this,s=o.settings.editor;function a(t){if(1===t.nodeType){if("BR"===t.nodeName||t.getAttribute("data-mce-bogus"))return!0;if("bookmark"===t.getAttribute("data-mce-type"))return!0}return!1}return!1!==s.settings.elementpath&&(o.on("select",function(t){s.focus(),s.selection.select(this.row()[t.index].element),s.nodeChanged()}),s.on("nodeChange",function(t){for(var e=[],n=t.parents,i=n.length;i--;)if(1===n[i].nodeType&&!a(n[i])){var r=s.fire("ResolveName",{name:n[i].nodeName.toLowerCase(),target:n[i]});if(r.isDefaultPrevented()||e.push({name:r.name,element:n[i]}),r.isPropagationStopped())break}o.row(e)})),o._super()}}),jn=De.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function()
 {var t=this,e=t._layout,n=t.classPrefix;return t.classes.add("formitem"),e.preRender(t),'<div id="'+t._id+'" class="'+t.classes+'" hidefocus="1" tabindex="-1">'+(t.settings.title?'<div id="'+t._id+'-title" class="'+n+'title">'+t.settings.title+"</div>":"")+'<div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+(t.settings.html||"")+e.renderHtml(t)+"</div></div>"}}),Jn=De.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:15,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var i=this,t=i.items();i.settings.formItemDefaults||(i.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),t.each(function(t){var e,n=t.settings.label;n&&((e=new jn
 (C.extend({items:{type:"label",id:t._id+"-l",text:n,flex:0,forId:t._id,disabled:t.disabled()}},i.settings.formItemDefaults))).type="formitem",t.aria("labelledby",t._id+"-l"),"undefined"==typeof t.settings.flex&&(t.settings.flex=1),i.replace(t,e),e.add(t))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){this._super(),this.fromJSON(this.settings.data)},bindStates:function(){var n=this;function t(){var t,e,i=0,r=[];if(!1!==n.settings.labelGapCalc)for(("children"===n.settings.labelGapCalc?n.find("formitem"):n.items()).filter("formitem").each(function(t){var e=t.items()[0],n=e.getEl().clientWidth;i=i<n?n:i,r.push(e)}),e=n.settings.labelGap||0,t=r.length;t--;)r[t].settings.minWidth=i+e}n._super(),n.on("show",t),t()}}),Gn=Jn.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column"
 ,align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var t=this,e=t._layout,n=t.classPrefix;return t.preRender(),e.preRender(t),'<fieldset id="'+t._id+'" class="'+t.classes+'" hidefocus="1" tabindex="-1">'+(t.settings.title?'<legend id="'+t._id+'-title" class="'+n+'fieldset-title">'+t.settings.title+"</legend>":"")+'<div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+(t.settings.html||"")+e.renderHtml(t)+"</div></fieldset>"}}),Kn=0,Zn=function(t){if(null===t||t===undefined)throw new Error("Node cannot be null or undefined");return{dom:lt(t)}},Qn={fromHtml:function(t,e){var n=(e||document).createElement("div");if(n.innerHTML=t,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",t),&
 quot;HTML must have a single root node";return Zn(n.childNodes[0])},fromTag:function(t,e){var n=(e||document).createElement(t);return Zn(n)},fromText:function(t,e){var n=(e||document).createTextNode(t);return Zn(n)},fromDom:Zn,fromPoint:function(t,e,n){var i=t.dom();return pt.from(i.elementFromPoint(e,n)).map(Zn)}},ti=function(n){var i,r=!1;return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r||(r=!0,i=n.apply(null,t)),i}},ei={ATTRIBUTE:Node.ATTRIBUTE_NODE,CDATA_SECTION:Node.CDATA_SECTION_NODE,COMMENT:Node.COMMENT_NODE,DOCUMENT:Node.DOCUMENT_NODE,DOCUMENT_TYPE:Node.DOCUMENT_TYPE_NODE,DOCUMENT_FRAGMENT:Node.DOCUMENT_FRAGMENT_NODE,ELEMENT:Node.ELEMENT_NODE,TEXT:Node.TEXT_NODE,PROCESSING_INSTRUCTION:Node.PROCESSING_INSTRUCTION_NODE,ENTITY_REFERENCE:Node.ENTITY_REFERENCE_NODE,ENTITY:Node.ENTITY_NODE,NOTATION:Node.NOTATION_NODE},ni=function(t){return t.dom().nodeType},ii=function(e){return function(t){return ni(t)===e}},ri=(ii(ei.ELEMENT),ii(ei.TEXT
 ),ii(ei.DOCUMENT),ti(function(){return ri(Qn.fromDom(document))}),function(t){var e=t.dom().body;if(null===e||e===undefined)throw"Body is not available yet";return Qn.fromDom(e)}),oi=function(t,e){var n=function(t,e){for(var n=0;n<t.length;n++){var i=t[n];if(i.test(e))return i}return undefined}(t,e);if(!n)return{major:0,minor:0};var i=function(t){return Number(e.replace(n,"$"+t))};return ai(i(1),i(2))},si=function(){return ai(0,0)},ai=function(t,e){return{major:t,minor:e}},li={nu:ai,detect:function(t,e){var n=String(e).toLowerCase();return 0===t.length?si():oi(t,n)},unknown:si},ui="Firefox",ci=function(t,e){return function(){return e===t}},di=function(t){var e=t.current;return{current:e,version:t.version,isEdge:ci("Edge",e),isChrome:ci("Chrome",e),isIE:ci("IE",e),isOpera:ci("Opera",e),isFirefox:ci(ui,e),isSafari:ci("Safari",e)}},fi={unknown:function(){return di({current:undefined,version:li.unknown()}
 )},nu:di,edge:lt("Edge"),chrome:lt("Chrome"),ie:lt("IE"),opera:lt("Opera"),firefox:lt(ui),safari:lt("Safari")},hi="Windows",mi="Android",gi="Solaris",pi="FreeBSD",vi=function(t,e){return function(){return e===t}},bi=function(t){var e=t.current;return{current:e,version:t.version,isWindows:vi(hi,e),isiOS:vi("iOS",e),isAndroid:vi(mi,e),isOSX:vi("OSX",e),isLinux:vi("Linux",e),isSolaris:vi(gi,e),isFreeBSD:vi(pi,e)}},yi={unknown:function(){return bi({current:undefined,version:li.unknown()})},nu:bi,windows:lt(hi),ios:lt("iOS"),android:lt(mi),linux:lt("Linux"),osx:lt("OSX"),solaris:lt(gi),freebsd:lt(pi)},xi=function(t,e){var n=String(e).toLowerCase();return Et(t,function(t){return t.search(n)})},wi=function(t,n){return xi(t,n).map(function(t){var e=li.detect(t.versionRegexes,n);return{current:t.name,version:e}})},_i=function(t,n){return xi(t,n
 ).map(function(t){var e=li.detect(t.versionRegexes,n);return{current:t.name,version:e}})},Ci=function(t,e){return-1!==t.indexOf(e)},Ri=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Ei=function(e){return function(t){return Ci(t,e)}},ki=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(t){return Ci(t,"edge/")&&Ci(t,"chrome")&&Ci(t,"safari")&&Ci(t,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Ri],search:function(t){return Ci(t,"chrome")&&!Ci(t,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(t){return Ci(t,"msie")||Ci(t,"trident")}},{name:"Opera",versionRegexes:[Ri,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Ei("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/]
 ,search:Ei("firefox")},{name:"Safari",versionRegexes:[Ri,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(t){return(Ci(t,"safari")||Ci(t,"mobile/"))&&Ci(t,"applewebkit")}}],Ti=[{name:"Windows",search:Ei("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(t){return Ci(t,"iphone")||Ci(t,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Ei("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Ei("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Ei("linux"),versionRegexes:[]},{name:"Solaris",search:Ei("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Ei("freebsd"),versionRegexe
 s:[]}],Hi={browsers:lt(ki),oses:lt(Ti)},Mi=function(t){var e,n,i,r,o,s,a,l,u,c,d,f=Hi.browsers(),h=Hi.oses(),m=wi(f,t).fold(fi.unknown,fi.nu),g=_i(h,t).fold(yi.unknown,yi.nu);return{browser:m,os:g,deviceType:(n=m,i=t,r=(e=g).isiOS()&&!0===/ipad/i.test(i),o=e.isiOS()&&!r,s=e.isAndroid()&&3===e.version.major,a=e.isAndroid()&&4===e.version.major,l=r||s||a&&!0===/mobile/i.test(i),u=e.isiOS()||e.isAndroid(),c=u&&!l,d=n.isSafari()&&e.isiOS()&&!1===/safari/i.test(i),{isiPad:lt(r),isiPhone:lt(o),isTablet:lt(l),isPhone:lt(c),isTouch:lt(u),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:lt(d)})}},Si=ti(function(){var t=navigator.userAgent;return Mi(t)}),Ni=ei.ELEMENT,Oi=ei.DOCUMENT,Di=function(t){return t.nodeType!==Ni&&t.nodeType!==Oi||0===t.childElementCount},Pi={all:function(t,e){var n=e===undefined?document:e.dom();return Di(n)?[]:_t(n.querySelectorAll(t),Qn.fromDom)},is:function(t,e){var n=t.dom();if(n.nodeType!==Ni)re
 turn!1;if(n.matches!==undefined)return n.matches(e);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(e);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(e);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")},one:function(t,e){var n=e===undefined?document:e.dom();return Di(n)?pt.none():pt.from(n.querySelector(t)).map(Qn.fromDom)}},Wi=(Si().browser.isIE(),function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e]}("element","offset"),function(t,e){return Pi.all(e,t)}),Ai=C.trim,Bi=function(e){return function(t){if(t&&1===t.nodeType){if(t.contentEditable===e)return!0;if(t.getAttribute("data-mce-contenteditable")===e)return!0}return!1}},Li=Bi("true"),Ii=Bi("false"),zi=function(t,e,n,i,r){return{type:t,title:e,url:n,level:i,attach:r}},Fi=function(t){return t.innerText||t.textContent},Ui=function(t){return t.id
 ?t.id:(e="h",n=(new Date).getTime(),e+"_"+Math.floor(1e9*Math.random())+ ++Kn+String(n));var e,n},Vi=function(t){return(e=t)&&"A"===e.nodeName&&(e.id||e.name)&&Yi(t);var e},qi=function(t){return t&&/^(H[1-6])$/.test(t.nodeName)},Yi=function(t){return function(t){for(;t=t.parentNode;){var e=t.contentEditable;if(e&&"inherit"!==e)return Li(t)}return!1}(t)&&!Ii(t)},$i=function(t){return qi(t)&&Yi(t)},Xi=function(t){var e,n=Ui(t);return zi("header",Fi(t),"#"+n,qi(e=t)?parseInt(e.nodeName.substr(1),10):0,function(){t.id=n})},ji=function(t){var e=t.id||t.name,n=Fi(t);return zi("anchor",n||"#"+e,"#"+e,0,at)},Ji=function(t){var e,n;return e="h1,h2,h3,h4,h5,h6,a:not([href])",n=t,_t(Wi(Qn.fromDom(n),e),function(t){return t.dom()})},Gi=function(t){return 0<Ai(t.title).length},Ki=function(t){var e,n=Ji(t);return Rt((e=n,_t(Rt(e,$i),Xi)).co
 ncat(_t(Rt(n,Vi),ji)),Gi)},Zi={},Qi=function(t){return{title:t.title,value:{title:{raw:t.title},url:t.url,attach:t.attach}}},tr=function(t,e){return{title:t,value:{title:t,url:e,attach:at}}},er=function(t,e,n){var i=e in t?t[e]:n;return!1===i?null:i},nr=function(t,i,r,e){var n,o,s,a,l,u,c={title:"-"},d=function(t){var e=t.hasOwnProperty(r)?t[r]:[],n=Rt(e,function(t){return e=t,!wt(i,function(t){return t.url===e});var e});return C.map(n,function(t){return{title:t,value:{title:t,url:t,attach:at}}})},f=function(e){var t,n=Rt(i,function(t){return t.type===e});return t=n,C.map(t,Qi)};return!1===e.typeahead_urls?[]:"file"===r?(n=[rr(t,d(Zi)),rr(t,f("header")),rr(t,(a=f("anchor"),l=er(e,"anchor_top","#top"),u=er(e,"anchor_bottom","#bottom"),null!==l&&a.unshift(tr("<top>",l)),null!==u&&a.push(tr("<bottom>",u)),a))],o=function(t,e){return 0===t.length||0===e.length?
 t.concat(e):t.concat(c,e)},s=[],Ct(n,function(t){s=o(s,t)}),s):rr(t,d(Zi))},ir=function(t,e){var n,i,r,o=Zi[e];/^https?/.test(t)&&(o?(n=o,i=t,r=xt(n,i),-1===r?pt.none():pt.some(r)).isNone()&&(Zi[e]=o.slice(0,5).concat(t)):Zi[e]=[t])},rr=function(t,e){var n=t.toLowerCase(),i=C.grep(e,function(t){return-1!==t.title.toLowerCase().indexOf(n)});return 1===i.length&&i[0].title===t?[]:i},or=function(o,t,n){var i=t.filepicker_validator_handler;i&&o.state.on("change:value",function(t){var e;0!==(e=t.value).length?i({url:e,type:n},function(t){var e,n,i,r=(n=(e=t).status,i=e.message,"valid"===n?{status:"ok",message:i}:"unknown"===n?{status:"warn",message:i}:"invalid"===n?{status:"warn",message:i}:{status:"none",message:""});o.statusMessage(r.message),o.statusLevel(r.status)}):o.statusLevel("none")})},sr=Ln.extend({Statics:{clearHistory:function(){Zi={}}},init:func
 tion(t){var e,n,i,r,o,s,a,l,u=this,c=window.tinymce?window.tinymce.activeEditor:S.activeEditor,d=c.settings,f=t.filetype;t.spellcheck=!1,(i=d.file_picker_types||d.file_browser_callback_types)&&(i=C.makeMap(i,/[, ]/)),i&&!i[f]||(!(n=d.file_picker_callback)||i&&!i[f]?!(n=d.file_browser_callback)||i&&!i[f]||(e=function(){n(u.getEl("inp").id,u.value(),f,window)}):e=function(){var t=u.fire("beforecall").meta;t=C.extend({filetype:f},t),n.call(c,function(t,e){u.value(t).fire("change",{meta:e})},u.value(),t)}),e&&(t.icon="browse",t.onaction=e),u._super(t),u.classes.add("filepicker"),r=u,o=d,s=c.getBody(),a=f,l=function(t){var e=Ki(s),n=nr(t,e,a,o);r.showAutoComplete(n,t)},r.on("autocomplete",function(){l(r.value())}),r.on("selectitem",function(t){var e=t.value;r.value(e.url);var n,i=(n=e.title).raw?n.raw:n;"image"===a?r.fire("change",{meta:{alt:i,attach:e.attach}
 }):r.fire("change",{meta:{text:i,attach:e.attach}}),r.focus()}),r.on("click",function(t){0===r.value().length&&"INPUT"===t.target.nodeName&&l("")}),r.on("PostRender",function(){r.getRoot().on("submit",function(t){t.isDefaultPrevented()||ir(r.value(),a)})}),or(u,d,f)}}),ar=On.extend({recalc:function(t){var e=t.layoutRect(),n=t.paddingBox;t.items().filter(":visible").each(function(t){t.layoutRect({x:n.left,y:n.top,w:e.innerW-n.right-n.left,h:e.innerH-n.top-n.bottom}),t.recalc&&t.recalc()})}}),lr=On.extend({recalc:function(t){var e,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,C,R,E,k,T,H,M,S,N,O,D,P,W,A,B,L=[],I=Math.max,z=Math.min;for(i=t.items().filter(":visible"),r=t.layoutRect(),o=t.paddingBox,s=t.settings,f=t.isRtl()?s.direction||"row-reversed":s.direction,a=s.align,l=t.isRtl()?s.pack||"end":s.pack,u=s.spacing||0,"row-reversed"!==f&&"colum
 n-reverse"!==f||(i=i.set(i.toArray().reverse()),f=f.split("-")[0]),"column"===f?(R="y",_="h",C="minH",E="maxH",T="innerH",k="top",H="deltaH",M="contentH",P="left",O="w",S="x",N="innerW",D="minW",W="right",A="deltaW",B="contentW"):(R="x",_="w",C="minW",E="maxW",T="innerW",k="left",H="deltaW",M="contentW",P="top",O="h",S="y",N="innerH",D="minH",W="bottom",A="deltaH",B="contentH"),d=r[T]-o[k]-o[k],w=c=0,e=0,n=i.length;e<n;e++)m=(h=i[e]).layoutRect(),d-=e<n-1?u:0,0<(g=h.settings.flex)&&(c+=g,m[E]&&L.push(h),m.flex=g),d-=m[C],w<(p=o[P]+m[D]+o[W])&&(w=p);if((y={})[C]=d<0?r[C]-d+r[H]:r[T]-d+r[H],y[D]=w+r[A],y[M]=
 r[T]-d,y[B]=w,y.minW=z(y.minW,r.maxW),y.minH=z(y.minH,r.maxH),y.minW=I(y.minW,r.startMinWidth),y.minH=I(y.minH,r.startMinHeight),!r.autoResize||y.minW===r.minW&&y.minH===r.minH){for(b=d/c,e=0,n=L.length;e<n;e++)(v=(m=(h=L[e]).layoutRect())[E])<(p=m[C]+m.flex*b)?(d-=m[E]-m[C],c-=m.flex,m.flex=0,m.maxFlexSize=v):m.maxFlexSize=0;for(b=d/c,x=o[k],y={},0===c&&("end"===l?x=d+o[k]:"center"===l?(x=Math.round(r[T]/2-(r[T]-d)/2)+o[k])<0&&(x=o[k]):"justify"===l&&(x=o[k],u=Math.floor(d/(i.length-1)))),y[S]=o[P],e=0,n=i.length;e<n;e++)p=(m=(h=i[e]).layoutRect()).maxFlexSize||m[C],"center"===a?y[S]=Math.round(r[N]/2-m[O]/2):"stretch"===a?(y[O]=I(m[D]||0,r[N]-o[P]-o[W]),y[S]=o[P]):"end"===a&&(y[S]=r[N]-m[O]-o.top),0<m.flex&&(p+=m.flex*b),y[_]=p,y[R]=x,h.layoutRect(y),h.recalc&&h.recalc(),x+=p+u}else if(y.w=y.minW,y.h=y.minH,t.layoutRect(y),this.recalc(t),null===t._last
 Rect){var F=t.parent();F&&(F._lastRect=null,F.recalc())}}}),ur=Nn.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(t){t.items().filter(":visible").each(function(t){t.recalc&&t.recalc()})},isNative:function(){return!0}}),cr=function(t,e){return Pi.one(e,t)},dr=function(t,e){return function(){t.execCommand("mceToggleFormat",!1,e)}},fr=function(t,e,n){var i=function(t){n(t,e)};t.formatter?t.formatter.formatChanged(e,i):t.on("init",function(){t.formatter.formatChanged(e,i)})},hr=function(t,n){return function(e){fr(t,n,function(t){e.control.active(t)})}},mr=function(i){var e=["alignleft","aligncenter","alignright","alignjustify"],r="alignleft",t=[{text:"Left",icon:"alignleft",onclick:dr(i,"alignleft")},{text:"Center",icon:"aligncenter",onclick:dr(i,&qu
 ot;aligncenter")},{text:"Right",icon:"alignright",onclick:dr(i,"alignright")},{text:"Justify",icon:"alignjustify",onclick:dr(i,"alignjustify")}];i.addMenuItem("align",{text:"Align",menu:t}),i.addButton("align",{type:"menubutton",icon:r,menu:t,onShowMenu:function(t){var n=t.control.menu;C.each(e,function(e,t){n.items().eq(t).each(function(t){return t.active(i.formatter.match(e))})})},onPostRender:function(t){var n=t.control;C.each(e,function(e,t){fr(i,e,function(t){n.icon(r),t&&n.icon(e)})})}}),C.each({alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(t,e){i.addButton(e,{active:!1,tooltip:t[0],cmd:t[1],onPostRen
 der:hr(i,e)})})},gr=function(t){return t?t.split(",")[0]:""},pr=function(l,u){return function(){var a=this;a.state.set("value",null),l.on("init nodeChange",function(t){var e,n,i,r,o=l.queryCommandValue("FontName"),s=(e=u,r=(n=o)?n.toLowerCase():"",C.each(e,function(t){t.value.toLowerCase()===r&&(i=t.value)}),C.each(e,function(t){i||gr(t.value).toLowerCase()!==gr(r).toLowerCase()||(i=t.value)}),i);a.value(s||null),!s&&o&&a.text(gr(o))})}},vr=function(n){n.addButton("fontselect",function(){var t,e=(t=function(t){for(var e=(t=t.replace(/;$/,"").split(";")).length;e--;)t[e]=t[e].split("=");return t}(n.settings.font_formats||"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia
 ,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats"),C.map(t,function(t){return{text:{raw:t[0]},value:t[1],textStyle:-1===t[1].indexOf("dings")?"font-family:"+t[1]:""}}));return{type:"listbox",text:"Font Family",tooltip:"Font Family",values:e,fixedWidth:!0,onPostRender:pr(n,e),onselect:function(t){t.control.settings.value&&n.execCommand("FontName",!1,t.control.settings.value)}}})},br=function(t){vr(t)},yr=function(t,e){return/[0-9.]+px$/.test(t)?(n=72*parseInt(t,10)/96,i=e||0,r=Math.pow(10,i),Math.round(n*r)/r+"pt"):t;var n,i,r},xr=function(t,e,n){var i;return C.each(t,function(t){t.value===n?i=n:t.value==
 =e&&(i=e)}),i},wr=function(n){n.addButton("fontsizeselect",function(){var t,s,a,e=(t=n.settings.fontsize_formats||"8pt 10pt 12pt 14pt 18pt 24pt 36pt",C.map(t.split(" "),function(t){var e=t,n=t,i=t.split("=");return 1<i.length&&(e=i[0],n=i[1]),{text:e,value:n}}));return{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:e,fixedWidth:!0,onPostRender:(s=n,a=e,function(){var o=this;s.on("init nodeChange",function(t){var e,n,i,r;if(e=s.queryCommandValue("FontSize"))for(i=3;!r&&0<=i;i--)n=yr(e,i),r=xr(a,n,e);o.value(r||null),r||o.text(n)})}),onclick:function(t){t.control.settings.value&&n.execCommand("FontSize",!1,t.control.settings.value)}}})},_r=function(t){wr(t)},Cr=function(n,t){var i=t.length;return C.each(t,function(t){t.menu&&(t.hidden=0===Cr(n,t.menu));var e=t.format;e&&(t.hidden=!n.formatter.canApply(e)),t.hidden&&
 amp;i--}),i},Rr=function(n,t){var i=t.items().length;return t.items().each(function(t){t.menu&&t.visible(0<Rr(n,t.menu)),!t.menu&&t.settings.menu&&t.visible(0<Cr(n,t.settings.menu));var e=t.settings.format;e&&t.visible(n.formatter.canApply(e)),t.visible()||i--}),i},Er=function(t){var i,r,o,e,s,n,a,l,u=(r=0,o=[],e=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough&
 quot;,icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}],s=function(t){var i=[];if(t)return C.each(t,function(
 t){var e={text:t.title,icon:t.icon};if(t.items)e.menu=s(t.items);else{var n=t.format||"custom"+r++;t.format||(t.name=n,o.push(t)),e.format=n,e.cmd=t.cmd}i.push(e)}),i},(i=t).on("init",function(){C.each(o,function(t){i.formatter.register(t.name,t)})}),{type:"menu",items:i.settings.style_formats_merge?i.settings.style_formats?s(e.concat(i.settings.style_formats)):s(e):s(i.settings.style_formats||e),onPostRender:function(t){i.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return i.formatter.getCssText(this.settings.format)},onPostRender:function(){var n=this;n.parent().on("show",function(){var t,e;(t=n.settings.format)&&(n.disabled(!i.formatter.canApply(t)),n.active(i.formatter.match(t))),(e=n.settings.cmd)&&n.active(i.queryCommandState(e))})},onclick:function(){this.settings.format&&dr(i,this.settings.format)(),this.settings.cmd&&i.exe
 cCommand(this.settings.cmd)}}});n=u,t.addMenuItem("formats",{text:"Formats",menu:n}),l=u,(a=t).addButton("styleselect",{type:"menubutton",text:"Formats",menu:l,onShowMenu:function(){a.settings.style_formats_autohide&&Rr(a,this.menu)}})},kr=function(n,t){return function(){var r,o,s,e=[];return C.each(t,function(t){e.push({text:t[0],value:t[1],textStyle:function(){return n.formatter.getCssText(t[1])}})}),{type:"listbox",text:t[0][0],values:e,fixedWidth:!0,onselect:function(t){if(t.control){var e=t.control.value();dr(n,e)()}},onPostRender:(r=n,o=e,function(){var e=this;r.on("nodeChange",function(t){var n=r.formatter,i=null;C.each(t.parents,function(e){if(C.each(o,function(t){if(s?n.matchNode(e,s,{value:t.value})&&(i=t.value):n.matchNode(e,t.value)&&(i=t.value),i)return!1}),i)return!1}),e.value(i)})})}}},Tr=function(t){var e,n,i=function(t){for(var e=(t=t.replace(/;$/,"").split("
 ;")).length;e--;)t[e]=t[e].split("=");return t}(t.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");t.addMenuItem("blockformats",{text:"Blocks",menu:(e=t,n=i,C.map(n,function(t){return{text:t[0],onclick:dr(e,t[1]),textStyle:function(){return e.formatter.getCssText(t[1])}}}))}),t.addButton("formatselect",kr(t,i))},Hr=function(e,t){var n,i;if("string"==typeof t)i=t.split(" ");else if(C.isArray(t))return function(t){for(var e=[],n=0,i=t.length;n<i;++n){if(!Array.prototype.isPrototypeOf(t[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+t);Ht.apply(e,t[n])}return e}(C.map(t,function(t){return Hr(e,t)}));return n=C.grep(i,function(t){return"|"===t||t in e.menuItems}),C.map(n,function(t){return"|"===t?{text:"-"}:e.menuItems[t]})},Mr=function(t){return t&&
 amp;"-"===t.text},Sr=function(t){var e=Rt(t,function(t,e,n){return!Mr(t)||!Mr(n[e-1])});return Rt(e,function(t,e,n){return!Mr(t)||0<e&&e<n.length-1})},Nr=function(t){var e,n,i,r,o=t.settings.insert_button_items;return Sr(o?Hr(t,o):(e=t,n="insert",i=[{text:"-"}],r=C.grep(e.menuItems,function(t){return t.context===n}),C.each(r,function(t){"before"===t.separator&&i.push({text:"|"}),t.prependToContext?i.unshift(t):i.push(t),"after"===t.separator&&i.push({text:"|"})}),i))},Or=function(t){var e;(e=t).addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(Nr(e)),this.menu.renderNew()}})},Dr=function(t){var n,i,r;n=t,C.each({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t
 ,e){n.addButton(e,{active:!1,tooltip:t,onPostRender:hr(n,e),onclick:dr(n,e)})}),i=t,C.each({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"],removeformat:["Clear formatting","RemoveFormat"],remove:["Remove","Delete"]},function(t,e){i.addButton(e,{tooltip:t[0],cmd:t[1]})}),r=t,C.each({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"]},function(t,e){r.addButton(e,{active:!1,tooltip:t[0],cmd:t[1],onPostRe
 nder:hr(r,e)})})},Pr=function(t){var n;Dr(t),n=t,C.each({bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"],newdocument:["New document","mceNewDocument"],cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"]},function(t,e){n.addMenuItem(e,{text:t[0],icon:e,shortcut:t[2],cmd:t[1]})}),n.addMenuItem("codeformat",{text:"Code",icon:"code",oncl
 ick:dr(n,"code")})},Wr=function(n,i){return function(){var t=this,e=function(){var t="redo"===i?"hasRedo":"hasUndo";return!!n.undoManager&&n.undoManager[t]()};t.disabled(!e()),n.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){t.disabled(n.readonly||!e())})}},Ar=function(t){var e,n;(e=t).addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:Wr(e,"undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:Wr(e,"redo"),cmd:"redo"}),(n=t).addButton("undo",{tooltip:"Undo",onPostRender:Wr(n,"undo"),cmd:"undo"}),n.addButton("redo",{tooltip:"Redo",onPostRender:Wr(n,"redo"),cmd:"redo"})},Br=function(t){var e,n;(e=t).addMenuItem("visualaid",{text:"
 Visual aids",selectable:!0,onPostRender:(n=e,function(){var e=this;n.on("VisualAid",function(t){e.active(t.hasVisual)}),e.active(n.hasVisual)}),cmd:"mceToggleVisualAid"})},Lr={setup:function(t){var e;t.rtl&&(ce.rtl=!0),t.on("mousedown",function(){Ve.hideAll()}),(e=t).settings.ui_container&&(h.container=cr(Qn.fromDom(document.body),e.settings.ui_container).fold(lt(null),function(t){return t.dom()})),be.tooltips=!h.iOS,ce.translate=function(t){return S.translate(t)},Tr(t),mr(t),Pr(t),Ar(t),_r(t),br(t),Er(t),Br(t),Or(t)}},Ir=On.extend({recalc:function(t){var e,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,C,R,E,k,T,H,M=[],S=[];e=t.settings,r=t.items().filter(":visible"),o=t.layoutRect(),i=e.columns||Math.ceil(Math.sqrt(r.length)),n=Math.ceil(r.length/i),b=e.spacingH||e.spacing||0,y=e.spacingV||e.spacing||0,x=e.alignH||e.align,w=e.alignV||e.align,p=t.paddingBox,H="reverseRows"in e?e.reverseRows:t.isRtl(),x&&&quot
 ;string"==typeof x&&(x=[x]),w&&"string"==typeof w&&(w=[w]);for(d=0;d<i;d++)M.push(0);for(f=0;f<n;f++)S.push(0);for(f=0;f<n;f++)for(d=0;d<i&&(c=r[f*i+d]);d++)R=(u=c.layoutRect()).minW,E=u.minH,M[d]=R>M[d]?R:M[d],S[f]=E>S[f]?E:S[f];for(k=o.innerW-p.left-p.right,d=_=0;d<i;d++)_+=M[d]+(0<d?b:0),k-=(0<d?b:0)+M[d];for(T=o.innerH-p.top-p.bottom,f=C=0;f<n;f++)C+=S[f]+(0<f?y:0),T-=(0<f?y:0)+S[f];if(_+=p.left+p.right,C+=p.top+p.bottom,(l={}).minW=_+(o.w-o.innerW),l.minH=C+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW===o.minW&&l.minH===o.minH){var N;o.autoResize&&((l=t.layoutRect(l)).contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH),N="start"===e.packV?0:0<T?Math.floor(T/n):0;var O=0,D=e.flexWid
 ths;if(D)for(d=0;d<D.length;d++)O+=D[d];else O=i;var P=k/O;for(d=0;d<i;d++)M[d]+=D?D[d]*P:P;for(m=p.top,f=0;f<n;f++){for(h=p.left,a=S[f]+N,d=0;d<i&&(c=r[H?f*i+i-1-d:f*i+d]);d++)g=c.settings,u=c.layoutRect(),s=Math.max(M[d],u.startMinWidth),u.x=h,u.y=m,"center"===(v=g.alignH||(x?x[d]||x[0]:null))?u.x=h+s/2-u.w/2:"right"===v?u.x=h+s-u.w:"stretch"===v&&(u.w=s),"center"===(v=g.alignV||(w?w[d]||w[0]:null))?u.y=m+a/2-u.h/2:"bottom"===v?u.y=m+a-u.h:"stretch"===v&&(u.h=a),c.layoutRect(u),h+=s+b,c.recalc&&c.recalc();m+=a+y}}else if(l.w=l.minW,l.h=l.minH,t.layoutRect(l),this.recalc(t),null===t._lastRect){var W=t.parent();W&&(W._lastRect=null,W.recalc())}}}),zr=be.extend({renderHtml:function(){var t=this;return t.classes.add("iframe"),t.canFocus=!1,'<iframe id="'+t._id+'" class="'+t.classes+'" tabindex="-1" src="'+(t.settings.url||&quot
 ;javascript:''")+'" frameborder="0"></iframe>'},src:function(t){this.getEl().src=t},html:function(t,e){var n=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=t,e&&e()):c.setTimeout(function(){n.html(t)}),this}}),Fr=be.extend({init:function(t){this._super(t),this.classes.add("widget").add("infobox"),this.canFocus=!1},severity:function(t){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(t)},help:function(t){this.state.set("help",t)},renderHtml:function(){var t=this,e=t.classPrefix;return'<div id="'+t._id+'" class="'+t.classes+'"><div id="'+t._id+'-body">'+t.encode(t.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+e+"ico "+e+'i-help"></i></button></div></div>'},bindS
 tates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl("body").firstChild.data=e.encode(t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e.state.on("change:help",function(t){e.classes.toggle("has-help",t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}}),Ur=be.extend({init:function(t){var e=this;e._super(t),e.classes.add("widget").add("label"),e.canFocus=!1,t.multiline&&e.classes.add("autoscroll"),t.strong&&e.classes.add("strong")},initLayoutRect:function(){var t=this,e=t._super();return t.settings.multiline&&(St.getSize(t.getEl()).width>e.maxW&&(e.minW=e.maxW,t.classes.add("multiline")),t.getEl().style.width=e.minW+"px",e.startMinH=e.h=e.minH=Math.min(e.maxH,St.getSize(t.getEl()).height)),e},repaint:function(){return this.settings.multiline||(this.getEl().style.li
 neHeight=this.layoutRect().h+"px"),this._super()},severity:function(t){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(t)},renderHtml:function(){var t,e,n=this,i=n.settings.forId,r=n.settings.html?n.settings.html:n.encode(n.state.get("text"));return!i&&(e=n.settings.forName)&&(t=n.getRoot().find("#"+e)[0])&&(i=t._id),i?'<label id="'+n._id+'" class="'+n.classes+'"'+(i?' for="'+i+'"':"")+">"+r+"</label>":'<span id="'+n._id+'" class="'+n.classes+'">'+r+"</span>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.innerHtml(e.encode(t.value)),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}}),Vr=De.extend({Defaults:{role:"toolbar",layout:"flow"},in
 it:function(t){this._super(t),this.classes.add("toolbar")},postRender:function(){return this.items().each(function(t){t.classes.add("toolbar-item")}),this._super()}}),qr=Vr.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}}),Yr=Dn.extend({init:function(t){var e=this;e._renderOpen=!0,e._super(t),t=e.settings,e.classes.add("menubtn"),t.fixedWidth&&e.classes.add("fixed-width"),e.aria("haspopup",!0),e.state.set("menu",t.menu||e.render())},showMenu:function(t){var e,n=this;if(n.menu&&n.menu.visible()&&!1!==t)return n.hideMenu();n.menu||(e=n.state.get("menu")||[],n.classes.add("opened"),e.length?e={type:"menu",animate:!0,items:e}:(e.type=e.type||"menu",e.animate=!0),e.renderTo?n.menu=e.parent(n).show().renderTo():n.menu=Ee.create(e).parent(n).renderTo(),n.fire("createmenu"),n.menu
 .reflow(),n.menu.on("cancel",function(t){t.control.parent()===n.menu&&(t.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){n.focus()}),n.menu.on("show hide",function(t){t.control===n.menu&&(n.activeMenu("show"===t.type),n.classes.toggle("opened","show"===t.type)),n.aria("expanded","show"===t.type)}).fire("show")),n.menu.show(),n.menu.layoutRect({w:n.layoutRect().w}),n.menu.repaint(),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),n.fire("showmenu")},hideMenu:function(){this.menu&&(this.menu.items().each(function(t){t.hideMenu&&t.hideMenu()}),this.menu.hide())},activeMenu:function(t){this.classes.toggle("active",t)},renderHtml:function(){var t,e=this,n=e._id,i=e.classPrefix,r=e.settings.icon,o=e.state.get("text"),s="";return(t=e.settings.
 image)?(r="none","string"!=typeof t&&(t=window.getSelection?t[0]:t[1]),t=" style=\"background-image: url('"+t+"')\""):t="",o&&(e.classes.add("btn-has-text"),s='<span class="'+i+'txt">'+e.encode(o)+"</span>"),r=e.settings.icon?i+"ico "+i+"i-"+r:"",e.aria("role",e.parent()instanceof qr?"menuitem":"button"),'<div id="'+n+'" class="'+e.classes+'" tabindex="-1" aria-labelledby="'+n+'"><button id="'+n+'-open" role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+t+"></i>":"")+s+' <i class="'+i+'caret"></i></button></div>'},postRender:function(){var r=this;return r.on("click",function(t){t.control===r&&function(t,e
 ){for(;t;){if(e===t)return!0;t=t.parentNode}return!1}(t.target,r.getEl())&&(r.focus(),r.showMenu(!t.aria),t.aria&&r.menu.items().filter(":visible")[0].focus())}),r.on("mouseenter",function(t){var e,n=t.control,i=r.parent();n&&i&&n instanceof Yr&&n.parent()===i&&(i.items().filter("MenuButton").each(function(t){t.hideMenu&&t!==n&&(t.menu&&t.menu.visible()&&(e=!0),t.hideMenu())}),e&&(n.focus(),n.showMenu()))}),r._super()},bindStates:function(){var t=this;return t.state.on("change:menu",function(){t.menu&&t.menu.remove(),t.menu=null}),t._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}});function $r(i,r){var o,s,a=this,l=ce.classPrefix;a.show=function(t,e){function n(){o&&(Nt(i).append('<div class="'+l+"throbber"+(r?" "+l+"throbber-inline":"")+'"></div>'
 ),e&&e())}return a.hide(),o=!0,t?s=c.setTimeout(n,t):n(),a},a.hide=function(){var t=i.lastChild;return c.clearTimeout(s),t&&-1!==t.className.indexOf("throbber")&&t.parentNode.removeChild(t),o=!1,a}}var Xr=Ve.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(t){if(t.autohide=!0,t.constrainToViewport=!0,"function"==typeof t.items&&(t.itemsFactory=t.items,t.items=[]),t.itemDefaults)for(var e=t.items,n=e.length;n--;)e[n]=C.extend({},t.itemDefaults,e[n]);this._super(t),this.classes.add("menu"),t.animate&&11!==h.ie&&this.classes.add("animate")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){this.hideAll(),this.fire("select&quot
 ;)},load:function(){var e,n=this;function i(){n.throbber&&(n.throbber.hide(),n.throbber=null)}n.settings.itemsFactory&&(n.throbber||(n.throbber=new $r(n.getEl("body"),!0),0===n.items().length?(n.throbber.show(),n.fire("loading")):n.throbber.show(100,function(){n.items().remove(),n.fire("loading")}),n.on("hide close",i)),n.requestTime=e=(new Date).getTime(),n.settings.itemsFactory(function(t){0!==t.length?n.requestTime===e&&(n.getEl().style.width="",n.getEl("body").style.width="",i(),n.items().remove(),n.getEl("body").innerHTML="",n.add(t),n.renderNew(),n.fire("loaded")):n.hide()}))},hideAll:function(){return this.find("menuitem").exec("hideMenu"),this._super()},preRender:function(){var n=this;return n.items().each(function(t){var e=t.settings;if(e.icon||e.image||e.selectable)return!(n._hasIcons=!0)}),n.settings.itemsFactory&&n.on(&qu
 ot;postrender",function(){n.settings.itemsFactory&&n.load()}),n.on("show hide",function(t){t.control===n&&("show"===t.type?c.setTimeout(function(){n.classes.add("in")},0):n.classes.remove("in"))}),n._super()}}),jr=Yr.extend({init:function(i){var e,r,o,n,s=this;s._super(i),i=s.settings,s._values=e=i.values,e&&("undefined"!=typeof i.value&&function t(e){for(var n=0;n<e.length;n++){if(r=e[n].selected||i.value===e[n].value)return o=o||e[n].text,s.state.set("value",e[n].value),!0;if(e[n].menu&&t(e[n].menu))return!0}}(e),!r&&0<e.length&&(o=e[0].text,s.state.set("value",e[0].value)),s.state.set("menu",e)),s.state.set("text",i.text||o),s.classes.add("listbox"),s.on("select",function(t){var e=t.control;n&&(t.lastControl=n),i.multiple?e.active(!e.active()):s.value(t.control.value()),n=e})},value:function(e){ret
 urn 0===arguments.length?this.state.get("value"):(void 0===e||(this.settings.values?0<C.grep(this.settings.values,function(t){return t.value===e}).length?this.state.set("value",e):null===e&&this.state.set("value",null):this.state.set("value",e)),this)},bindStates:function(){var i=this;return i.on("show",function(t){var e,n;e=t.control,n=i.value(),e instanceof Xr&&e.items().each(function(t){t.hasMenus()||t.active(t.value()===n)})}),i.state.on("change:value",function(e){var n=function t(e,n){var i;if(e)for(var r=0;r<e.length;r++){if(e[r].value===n)return e[r];if(e[r].menu&&(i=t(e[r].menu,n)))return i}}(i.state.get("menu"),e.value);n?i.text(n.text):i.text(i.settings.text)}),i._super()}}),Jr=be.extend({Defaults:{border:0,role:"menuitem"},init:function(t){var e,n=this;n._super(t),t=n.settings,n.classes.add("menu-item"),t.menu&&n.classes.add("menu-item-expan
 d"),t.preview&&n.classes.add("menu-item-preview"),"-"!==(e=n.state.get("text"))&&"|"!==e||(n.classes.add("menu-item-sep"),n.aria("role","separator"),n.state.set("text","-")),t.selectable&&(n.aria("role","menuitemcheckbox"),n.classes.add("menu-item-checkbox"),t.icon="selected"),t.preview||t.selectable||n.classes.add("menu-item-normal"),n.on("mousedown",function(t){t.preventDefault()}),t.menu&&!t.ariaHideMenu&&n.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e,n=this,t=n.settings,i=n.parent();if(i.items().each(function(t){t!==n&&t.hideMenu()}),t.menu){(e=n.menu)?e.show():((e=t.menu).length?e={type:"menu",items:e}:e.type=e.type||"menu",i.settings.itemDefaults&&(e.itemDefaults=i.settings.itemDefaults),(e=
 n.menu=Ee.create(e).parent(n).renderTo()).reflow(),e.on("cancel",function(t){t.stopPropagation(),n.focus(),e.hide()}),e.on("show hide",function(t){t.control.items&&t.control.items().each(function(t){t.active(t.settings.selected)})}).fire("show"),e.on("hide",function(t){t.control===e&&n.classes.remove("selected")}),e.submenu=!0),e._parentMenu=i,e.classes.add("menu-sub");var r=e.testMoveRel(n.getEl(),n.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);e.moveRel(n.getEl(),r),r="menu-sub-"+(e.rel=r),e.classes.remove(e._lastRel).add(r),e._lastRel=r,n.classes.add("selected"),n.aria("expanded",!0)}},hideMenu:function(){var t=this;return t.menu&&(t.menu.items().each(function(t){t.hideMenu&&t.hideMenu()}),t.menu.hide(),t.aria("expanded",!1)),t},renderHtml:f
 unction(){var t,e=this,n=e._id,i=e.settings,r=e.classPrefix,o=e.state.get("text"),s=e.settings.icon,a="",l=i.shortcut,u=e.encode(i.url);function c(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function d(t){var e=i.match||"";return e?t.replace(new RegExp(c(e),"gi"),function(t){return"!mce~match["+t+"]mce~match!"}):t}function f(t){return t.replace(new RegExp(c("!mce~match["),"g"),"<b>").replace(new RegExp(c("]mce~match!"),"g"),"</b>")}return s&&e.parent().classes.add("menu-has-icons"),i.image&&(a=" style=\"background-image: url('"+i.image+"')\""),l&&(l=function(t){var e,n,i={};for(i=h.mac?{alt:"&#x2325;",ctrl:"&#x2318;",shift:"&#x21E7;",meta:"&#x2318;"}:{meta:"Ctrl"},t=t.split("+"),e=0;e<t.length
 ;e++)(n=i[t[e].toLowerCase()])&&(t[e]=n);return t.join("+")}(l)),s=r+"ico "+r+"i-"+(e.settings.icon||"none"),t="-"!==o?'<i class="'+s+'"'+a+"></i>\xa0":"",o=f(e.encode(d(o))),u=f(e.encode(d(u))),'<div id="'+n+'" class="'+e.classes+'" tabindex="-1">'+t+("-"!==o?'<span id="'+n+'-text" class="'+r+'text">'+o+"</span>":"")+(l?'<div id="'+n+'-shortcut" class="'+r+'menu-shortcut">'+l+"</div>":"")+(i.menu?'<div class="'+r+'caret"></div>':"")+(u?'<div class="'+r+'menu-item-link">'+u+"</div>":"")+"</div>"},postRender:function(){var e=this,n=e.settings,t=n.textStyle;if("function"==typeof t&&(t=t.call(this)),t){var i=e.getEl("text");
 i&&(i.setAttribute("style",t),e._textStyle=t)}return e.on("mouseenter click",function(t){t.control===e&&(n.menu||"click"!==t.type?(e.showMenu(),t.aria&&e.menu.focus(!0)):(e.fire("select"),c.requestAnimationFrame(function(){e.parent().hideAll()})))}),e._super(),e},hover:function(){return this.parent().items().each(function(t){t.classes.remove("selected")}),this.classes.toggle("selected",!0),this},active:function(t){return function(t,e){var n=t._textStyle;if(n){var i=t.getEl("text");i.setAttribute("style",n),e&&(i.style.color="",i.style.backgroundColor="")}}(this,t),void 0!==t&&this.aria("checked",t),this._super(t)},remove:function(){this._super(),this.menu&&this.menu.remove()}}),Gr=An.extend({Defaults:{classes:"radio",role:"radio"}}),Kr=be.extend({renderHtml:function(){var t=this,e=t.classPrefix;return t.clas
 ses.add("resizehandle"),"both"===t.settings.direction&&t.classes.add("resizehandle-both"),t.canFocus=!1,'<div id="'+t._id+'" class="'+t.classes+'"><i class="'+e+"ico "+e+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new Re(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!==e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}});function Zr(t){var e="";if(t)for(var n=0;n<t.length;n++)e+='<option value="'+t[n]+'">'+t[n]+"</option>";return e}var Qr=be.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(t){var n=this;n._super(t),n.settings.s
 ize&&(n.size=n.settings.size),n.settings.options&&(n._options=n.settings.options),n.on("keydown",function(t){var e;13===t.keyCode&&(t.preventDefault(),n.parents().reverse().each(function(t){if(t.toJSON)return e=t,!1}),n.fire("submit",{data:e.toJSON()}))})},options:function(t){return arguments.length?(this.state.set("options",t),this):this.state.get("options")},renderHtml:function(){var t,e=this,n="";return t=Zr(e._options),e.size&&(n=' size = "'+e.size+'"'),'<select id="'+e._id+'" class="'+e.classes+'"'+n+">"+t+"</select>"},bindStates:function(){var e=this;return e.state.on("change:options",function(t){e.getEl().innerHTML=Zr(t.value)}),e._super()}});function to(t,e,n){return t<e&&(t=e),n<t&&(t=n),t}function eo(t,e,n){t.setAttribute("aria-"+e,n)}function no(t,e){var n,i,r,o,s;"v"===t.setting
 s.orientation?(r="top",i="height",n="h"):(r="left",i="width",n="w"),s=t.getEl("handle"),o=((t.layoutRect()[n]||100)-St.getSize(s)[i])*((e-t._minValue)/(t._maxValue-t._minValue))+"px",s.style[r]=o,s.style.height=t.layoutRect().h+"px",eo(s,"valuenow",e),eo(s,"valuetext",""+t.settings.previewFilter(e)),eo(s,"valuemin",t._minValue),eo(s,"valuemax",t._maxValue)}var io=be.extend({init:function(t){var e=this;t.previewFilter||(t.previewFilter=function(t){return Math.round(100*t)/100}),e._super(t),e.classes.add("slider"),"v"===t.orientation&&e.classes.add("vertical"),e._minValue=yt(t.minValue)?t.minValue:0,e._maxValue=yt(t.maxValue)?t.maxValue:100,e._initValue=e.state.get("value")},renderHtml:function(){var t=this._id,e=this.classPrefix;return'<div id="'+t+'" class="'+this.classes+'"&
 gt;<div id="'+t+'-handle" class="'+e+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){var t,e,n,i,r,o,s,a,l,u,c,d,f,h,m=this;t=m._minValue,e=m._maxValue,"v"===m.settings.orientation?(n="screenY",i="top",r="height",o="h"):(n="screenX",i="left",r="width",o="w"),m._super(),function(o,s){function e(t){var e,n,i,r;e=to(e=(((e=m.value())+(r=n=o))/((i=s)-r)+.05*t)*(i-n)-n,o,s),m.value(e),m.fire("dragstart",{value:e}),m.fire("drag",{value:e}),m.fire("dragend",{value:e})}m.on("keydown",function(t){switch(t.keyCode){case 37:case 38:e(-1);break;case 39:case 40:e(1)}})}(t,e),s=t,a=e,l=m.getEl("handle"),m._dragHelper=new Re(m._id,{handle:m._id+"-handle",start:function(t){u=t[n],c=parseInt(m.getEl("ha
 ndle").style[i],10),d=(m.layoutRect()[o]||100)-St.getSize(l)[r],m.fire("dragstart",{value:h})},drag:function(t){var e=t[n]-u;f=to(c+e,0,d),l.style[i]=f+"px",h=s+f/d*(a-s),m.value(h),m.tooltip().text(""+m.settings.previewFilter(h)).show().moveRel(l,"bc tc"),m.fire("drag",{value:h})},stop:function(){m.tooltip().hide(),m.fire("dragend",{value:h})}})},repaint:function(){this._super(),no(this,this.value())},bindStates:function(){var e=this;return e.state.on("change:value",function(t){no(e,t.value)}),e._super()}}),ro=be.extend({renderHtml:function(){return this.classes.add("spacer"),this.canFocus=!1,'<div id="'+this._id+'" class="'+this.classes+'"></div>'}}),oo=Yr.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var t,e,n=this.getEl(),i=this.layoutRect();return this._super(),t=n.firstChild,e=n.lastChild,Nt(t).css({width:i
 .w-St.getSize(e).width,height:i.h-2}),Nt(e).css({height:i.h-2}),this},activeMenu:function(t){Nt(this.getEl().lastChild).toggleClass(this.classPrefix+"active",t)},renderHtml:function(){var t,e,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a=n.settings,l="";return(t=a.image)?(o="none","string"!=typeof t&&(t=window.getSelection?t[0]:t[1]),t=" style=\"background-image: url('"+t+"')\""):t="",o=a.icon?r+"ico "+r+"i-"+o:"",s&&(n.classes.add("btn-has-text"),l='<span class="'+r+'txt">'+n.encode(s)+"</span>"),e="boolean"==typeof a.active?' aria-pressed="'+a.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" role="button"'+e+' tabindex="-1"><button type="button" hidefocus="1" tabin
 dex="-1">'+(o?'<i class="'+o+'"'+t+"></i>":"")+l+'</button><button type="button" class="'+r+'open" hidefocus="1" tabindex="-1">'+(n._menuBtnText?(o?"\xa0":"")+n._menuBtnText:"")+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var n=this.settings.onclick;return this.on("click",function(t){var e=t.target;if(t.control===this)for(;e;){if(t.aria&&"down"!==t.aria.key||"BUTTON"===e.nodeName&&-1===e.className.indexOf("open"))return t.stopImmediatePropagation(),void(n&&n.call(this,t));e=e.parentNode}}),delete this.settings.onclick,this._super()}}),so=ur.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}}),ao=We.extend({Defaults:{layout
 :"absolute",defaults:{type:"panel"}},activateTab:function(n){var t;this.activeTabId&&(t=this.getEl(this.activeTabId),Nt(t).removeClass(this.classPrefix+"active"),t.setAttribute("aria-selected","false")),this.activeTabId="t"+n,(t=this.getEl("t"+n)).setAttribute("aria-selected","true"),Nt(t).addClass(this.classPrefix+"active"),this.items()[n].show().fire("showtab"),this.reflow(),this.items().each(function(t,e){n!==e&&t.hide()})},renderHtml:function(){var i=this,t=i._layout,r="",o=i.classPrefix;return i.preRender(),t.preRender(i),i.items().each(function(t,e){var n=i._id+"-t"+e;t.aria("role","tabpanel"),t.aria("labelledby",n),r+='<div id="'+n+'" class="'+o+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex=&quot
 ;-1">'+i.encode(t.settings.title)+"</div>"}),'<div id="'+i._id+'" class="'+i.classes+'" hidefocus="1" tabindex="-1"><div id="'+i._id+'-head" class="'+o+'tabs" role="tablist">'+r+'</div><div id="'+i._id+'-body" class="'+i.bodyClasses+'">'+t.renderHtml(i)+"</div></div>"},postRender:function(){var i=this;i._super(),i.settings.activeTab=i.settings.activeTab||0,i.activateTab(i.settings.activeTab),this.on("click",function(t){var e=t.target.parentNode;if(e&&e.id===i._id+"-head")for(var n=e.childNodes.length;n--;)e.childNodes[n]===t.target&&i.activateTab(n)})},initLayoutRect:function(){var t,e,n,i=this;e=(e=St.getSize(i.getEl("head")).width)<0?0:e,n=0,i.items().each(function(t){e=Math.max(e,t.layoutRect().minW),n=Math.max(n,t.layoutRect().minH)}),i.items().each(function(t){t.settings.x
 =0,t.settings.y=0,t.settings.w=e,t.settings.h=n,t.layoutRect({x:0,y:0,w:e,h:n})});var r=St.getSize(i.getEl("head")).height;return i.settings.minWidth=e,i.settings.minHeight=n+r,(t=i._super()).deltaH+=r,t.innerH=t.h-t.deltaH,t}}),lo=be.extend({init:function(t){var n=this;n._super(t),n.classes.add("textbox"),t.multiline?n.classes.add("multiline"):(n.on("keydown",function(t){var e;13===t.keyCode&&(t.preventDefault(),n.parents().reverse().each(function(t){if(t.toJSON)return e=t,!1}),n.fire("submit",{data:e.toJSON()}))}),n.on("keyup",function(t){n.state.set("value",t.target.value)}))},repaint:function(){var t,e,n,i,r,o=this,s=0;t=o.getEl().style,e=o._layoutRect,r=o._lastRepaintRect||{};var a=document;return!o.settings.multiline&&a.all&&(!a.documentMode||a.documentMode<=8)&&(t.lineHeight=e.h-s+"px"),i=(n=o.borderBox).left+n.right+8,s=n.top+n.bottom+(o.settings.multiline?8:0),
 e.x!==r.x&&(t.left=e.x+"px",r.x=e.x),e.y!==r.y&&(t.top=e.y+"px",r.y=e.y),e.w!==r.w&&(t.width=e.w-i+"px",r.w=e.w),e.h!==r.h&&(t.height=e.h-s+"px",r.h=e.h),o._lastRepaintRect=r,o.fire("repaint",{},!1),o},renderHtml:function(){var e,t,n=this,i=n.settings;return e={id:n._id,hidefocus:"1"},C.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(t){e[t]=i[t]}),n.disabled()&&(e.disabled="disabled"),i.subtype&&(e.type=i.subtype),(t=St.create(i.multiline?"textarea":"input",e)).value=n.state.get("value"),t.className=n.classes.toString(),t.outerHTML},value:function(t){return arguments.length?(this.state.set("value",t),this):(thi
 s.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var e=this;e.getEl().value=e.state.get("value"),e._super(),e.$el.on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)})},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl().value!==t.value&&(e.getEl().value=t.value)}),e.state.on("change:disabled",function(t){e.getEl().disabled=t.value}),e._super()},remove:function(){this.$el.off(),this._super()}}),uo=function(){return{Selector:qt,Collection:Xt,ReflowQueue:ee,Control:ce,Factory:Ee,KeyboardNavigation:Te,Container:De,DragHelper:Re,Scrollable:Pe,Panel:We,Movable:pe,Resizable:Ae,FloatPanel:Ve,Window:Je,MessageBox:Ge,Tooltip:ve,Widget:be,Progress:ye,Notification:we,Layout:Nn,AbsoluteLayout:On,Button:Dn,ButtonGroup:Wn,Checkbox:An,ComboBox:Ln,ColorBox:In,PanelBu
 tton:zn,ColorButton:Un,ColorPicker:qn,Path:$n,ElementPath:Xn,FormItem:jn,Form:Jn,FieldSet:Gn,FilePicker:sr,FitLayout:ar,FlexLayout:lr,FlowLayout:ur,FormatControls:Lr,GridLayout:Ir,Iframe:zr,InfoBox:Fr,Label:Ur,Toolbar:Vr,MenuBar:qr,MenuButton:Yr,MenuItem:Jr,Throbber:$r,Menu:Xr,ListBox:jr,Radio:Gr,ResizeHandle:Kr,SelectBox:Qr,Slider:io,Spacer:ro,SplitButton:oo,StackLayout:so,TabPanel:ao,TextBox:lo,DropZone:Yn,BrowseButton:Pn}},co=function(n){n.ui?C.each(uo(),function(t,e){n.ui[e]=t}):n.ui=uo()};C.each(uo(),function(t,e){Ee.add(e,t)}),co(window.tinymce?window.tinymce:{}),o.add("inlite",function(t){var e=Sn();return Lr.setup(t),Cn(t,e),Ke(t,e)})}();
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcethemesmodernthemejs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/themes/modern/theme.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/themes/modern/theme.js      2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/themes/modern/theme.js        2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -83,11 +83,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getIndexedToolbars = function (settings, defaultToolbar) {
</span><span class="cx" style="display: block; padding: 0 10px">     var toolbars = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var i = 1; i < 10; i++) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var toolbar_1 = settings['toolbar' + i];
-      if (!toolbar_1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var toolbar = settings['toolbar' + i];
+      if (!toolbar) {
</ins><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      toolbars.push(toolbar_1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      toolbars.push(toolbar);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     var mainToolbar = settings.toolbar ? [settings.toolbar] : [defaultToolbar];
</span><span class="cx" style="display: block; padding: 0 10px">     return toolbars.length > 0 ? toolbars : mainToolbar;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,7 +121,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fireBeforeRenderUI = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.fire('BeforeRenderUI');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_b6da16t0jfuw8sbv = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5hpmustzjjgwefnb = {
</ins><span class="cx" style="display: block; padding: 0 10px">     fireSkinLoaded: fireSkinLoaded,
</span><span class="cx" style="display: block; padding: 0 10px">     fireResizeEditor: fireResizeEditor,
</span><span class="cx" style="display: block; padding: 0 10px">     fireBeforeRenderUI: fireBeforeRenderUI
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -143,7 +143,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.focus();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_gaf3jet1jfuw8sbw = { addKeys: addKeys };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_azwbz4u0jjgwefnc = { addKeys: addKeys };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$6 = tinymce.util.Tools.resolve('tinymce.geom.Rect');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -155,15 +155,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       x[_i] = arguments[_i];
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var noarg = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return f();
-    };
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var compose = function (fa, fb) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var x = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -178,12 +170,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return value;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var identity = function (x) {
-    return x;
-  };
-  var tripleEquals = function (a, b) {
-    return a === b;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var curry = function (f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var x = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 1; _i < arguments.length; _i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -204,46 +192,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return f.apply(null, all);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var not = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return !f.apply(null, arguments);
-    };
-  };
-  var die = function (msg) {
-    return function () {
-      throw new Error(msg);
-    };
-  };
-  var apply = function (f) {
-    return f();
-  };
-  var call = function (f) {
-    f();
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var never = constant(false);
</span><span class="cx" style="display: block; padding: 0 10px">   var always = constant(true);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cun2p5t7jfuw8scg = {
-    noop: noop,
-    noarg: noarg,
-    compose: compose,
-    constant: constant,
-    identity: identity,
-    tripleEquals: tripleEquals,
-    curry: curry,
-    not: not,
-    die: die,
-    apply: apply,
-    call: call,
-    never: never,
-    always: always
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var never$1 = $_cun2p5t7jfuw8scg.never;
-  var always$1 = $_cun2p5t7jfuw8scg.always;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var never$1 = never;
+  var always$1 = always;
</ins><span class="cx" style="display: block; padding: 0 10px">   var none = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return NONE;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -251,14 +208,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var eq = function (o) {
</span><span class="cx" style="display: block; padding: 0 10px">       return o.isNone();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var call = function (thunk) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var call$$1 = function (thunk) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return thunk();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var id = function (n) {
</span><span class="cx" style="display: block; padding: 0 10px">       return n;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var noop = function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var noop$$1 = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var nul = function () {
+      return null;
+    };
+    var undef = function () {
+      return undefined;
+    };
</ins><span class="cx" style="display: block; padding: 0 10px">     var me = {
</span><span class="cx" style="display: block; padding: 0 10px">       fold: function (n, s) {
</span><span class="cx" style="display: block; padding: 0 10px">         return n();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -267,15 +230,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       isSome: never$1,
</span><span class="cx" style="display: block; padding: 0 10px">       isNone: always$1,
</span><span class="cx" style="display: block; padding: 0 10px">       getOr: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      getOrThunk: call,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getOrThunk: call$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       getOrDie: function (msg) {
</span><span class="cx" style="display: block; padding: 0 10px">         throw new Error(msg || 'error: getOrDie called on none.');
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getOrNull: nul,
+      getOrUndefined: undef,
</ins><span class="cx" style="display: block; padding: 0 10px">       or: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      orThunk: call,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      orThunk: call$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       map: none,
</span><span class="cx" style="display: block; padding: 0 10px">       ap: none,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each: noop,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each: noop$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       bind: none,
</span><span class="cx" style="display: block; padding: 0 10px">       flatten: none,
</span><span class="cx" style="display: block; padding: 0 10px">       exists: never$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -286,7 +251,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       toArray: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return [];
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      toString: $_cun2p5t7jfuw8scg.constant('none()')
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      toString: constant('none()')
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     if (Object.freeze)
</span><span class="cx" style="display: block; padding: 0 10px">       Object.freeze(me);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -317,6 +282,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       getOr: constant_a,
</span><span class="cx" style="display: block; padding: 0 10px">       getOrThunk: constant_a,
</span><span class="cx" style="display: block; padding: 0 10px">       getOrDie: constant_a,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getOrNull: constant_a,
+      getOrUndefined: constant_a,
</ins><span class="cx" style="display: block; padding: 0 10px">       or: self,
</span><span class="cx" style="display: block; padding: 0 10px">       orThunk: self,
</span><span class="cx" style="display: block; padding: 0 10px">       map: map,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -385,7 +352,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var inheritUiContainer = function (fromCtrl, toCtrl) {
</span><span class="cx" style="display: block; padding: 0 10px">     return toCtrl.uiContainer = getUiContainer(fromCtrl);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_435hnxt5jfuw8sc9 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6344qfu4jjgwefnr = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getUiContainerDelta: getUiContainerDelta,
</span><span class="cx" style="display: block; padding: 0 10px">     setUiContainer: setUiContainer,
</span><span class="cx" style="display: block; padding: 0 10px">     getUiContainer: getUiContainer,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -468,7 +435,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_457dd7t8jfuw8scj = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4udolhu7jjgwefo1 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     createToolbar: createToolbar,
</span><span class="cx" style="display: block; padding: 0 10px">     createToolbars: createToolbars
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -568,7 +535,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       elementRect = getElementRect(match.element);
</span><span class="cx" style="display: block; padding: 0 10px">       panelRect = DOM.getRect(panel.getEl());
</span><span class="cx" style="display: block; padding: 0 10px">       contentAreaRect = DOM.getRect(editor.getContentAreaContainer() || editor.getBody());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var delta = $_435hnxt5jfuw8sc9.getUiContainerDelta(panel).getOr({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var delta = $_6344qfu4jjgwefnr.getUiContainerDelta(panel).getOr({
</ins><span class="cx" style="display: block; padding: 0 10px">         x: 0,
</span><span class="cx" style="display: block; padding: 0 10px">         y: 0
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -631,7 +598,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var bindScrollEvent = function (panel) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!scrollContainer) {
</span><span class="cx" style="display: block; padding: 0 10px">         var reposition_1 = repositionHandler(true);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var uiContainer_1 = $_435hnxt5jfuw8sc9.getUiContainer(panel);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var uiContainer_1 = $_6344qfu4jjgwefnr.getUiContainer(panel);
</ins><span class="cx" style="display: block; padding: 0 10px">         scrollContainer = editor.selection.getScrollContainer() || editor.getWin();
</span><span class="cx" style="display: block; padding: 0 10px">         DOM.bind(scrollContainer, 'scroll', reposition_1);
</span><span class="cx" style="display: block; padding: 0 10px">         DOM.bind(uiContainer_1, 'scroll', reposition_1);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -660,12 +627,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">         autofix: true,
</span><span class="cx" style="display: block; padding: 0 10px">         fixed: true,
</span><span class="cx" style="display: block; padding: 0 10px">         border: 1,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        items: $_457dd7t8jfuw8scj.createToolbar(editor, match.toolbar.items),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        items: $_4udolhu7jjgwefo1.createToolbar(editor, match.toolbar.items),
</ins><span class="cx" style="display: block; padding: 0 10px">         oncancel: function () {
</span><span class="cx" style="display: block; padding: 0 10px">           editor.focus();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_435hnxt5jfuw8sc9.setUiContainer(editor, panel);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6344qfu4jjgwefnr.setUiContainer(editor, panel);
</ins><span class="cx" style="display: block; padding: 0 10px">       bindScrollEvent(panel);
</span><span class="cx" style="display: block; padding: 0 10px">       match.toolbar.panel = panel;
</span><span class="cx" style="display: block; padding: 0 10px">       panel.renderTo().reflow();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -733,7 +700,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_v47mpt2jfuw8sc3 = { addContextualToolbars: addContextualToolbars };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_g1gegqu1jjgwefne = { addContextualToolbars: addContextualToolbars };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var typeOf = function (x) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (x === null)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -750,17 +717,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return typeOf(value) === type;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_e8diihtbjfuw8scy = {
-    isString: isType('string'),
-    isObject: isType('object'),
-    isArray: isType('array'),
-    isNull: isType('null'),
-    isBoolean: isType('boolean'),
-    isUndefined: isType('undefined'),
-    isFunction: isType('function'),
-    isNumber: isType('number')
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
+
+
+
+  var isFunction = isType('function');
+  var isNumber = isType('number');
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var rawIndexOf = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     var pIndexOf = Array.prototype.indexOf;
</span><span class="cx" style="display: block; padding: 0 10px">     var fastIndex = function (xs, x) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -775,27 +740,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var r = rawIndexOf(xs, x);
</span><span class="cx" style="display: block; padding: 0 10px">     return r === -1 ? Option.none() : Option.some(r);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var contains = function (xs, x) {
-    return rawIndexOf(xs, x) > -1;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var exists = function (xs, pred) {
</span><span class="cx" style="display: block; padding: 0 10px">     return findIndex(xs, pred).isSome();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var range = function (num, f) {
-    var r = [];
-    for (var i = 0; i < num; i++) {
-      r.push(f(i));
-    }
-    return r;
-  };
-  var chunk = function (array, size) {
-    var r = [];
-    for (var i = 0; i < array.length; i += size) {
-      var s = array.slice(i, i + size);
-      r.push(s);
-    }
-    return r;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var map = function (xs, f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var len = xs.length;
</span><span class="cx" style="display: block; padding: 0 10px">     var r = new Array(len);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -811,25 +761,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       f(x, i, xs);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var eachr = function (xs, f) {
-    for (var i = xs.length - 1; i >= 0; i--) {
-      var x = xs[i];
-      f(x, i, xs);
-    }
-  };
-  var partition = function (xs, pred) {
-    var pass = [];
-    var fail = [];
-    for (var i = 0, len = xs.length; i < len; i++) {
-      var x = xs[i];
-      var arr = pred(x, i, xs) ? pass : fail;
-      arr.push(x);
-    }
-    return {
-      pass: pass,
-      fail: fail
-    };
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var filter = function (xs, pred) {
</span><span class="cx" style="display: block; padding: 0 10px">     var r = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var i = 0, len = xs.length; i < len; i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -840,35 +773,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var groupBy = function (xs, f) {
-    if (xs.length === 0) {
-      return [];
-    } else {
-      var wasType = f(xs[0]);
-      var r = [];
-      var group = [];
-      for (var i = 0, len = xs.length; i < len; i++) {
-        var x = xs[i];
-        var type = f(x);
-        if (type !== wasType) {
-          r.push(group);
-          group = [];
-        }
-        wasType = type;
-        group.push(x);
-      }
-      if (group.length !== 0) {
-        r.push(group);
-      }
-      return r;
-    }
-  };
-  var foldr = function (xs, f, acc) {
-    eachr(xs, function (x) {
-      acc = f(acc, x);
-    });
-    return acc;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var foldl = function (xs, f, acc) {
</span><span class="cx" style="display: block; padding: 0 10px">     each(xs, function (x) {
</span><span class="cx" style="display: block; padding: 0 10px">       acc = f(acc, x);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -911,24 +817,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var bind = function (xs, f) {
-    var output = map(xs, f);
-    return flatten(output);
-  };
-  var forall = function (xs, pred) {
-    for (var i = 0, len = xs.length; i < len; ++i) {
-      var x = xs[i];
-      if (pred(x, i, xs) !== true) {
-        return false;
-      }
-    }
-    return true;
-  };
-  var equal = function (a1, a2) {
-    return a1.length === a2.length && forall(a1, function (x, i) {
-      return x === a2[i];
-    });
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var slice = Array.prototype.slice;
</span><span class="cx" style="display: block; padding: 0 10px">   var reverse = function (xs) {
</span><span class="cx" style="display: block; padding: 0 10px">     var r = slice.call(xs, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -935,65 +826,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     r.reverse();
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var difference = function (a1, a2) {
-    return filter(a1, function (x) {
-      return !contains(a2, x);
-    });
-  };
-  var mapToObject = function (xs, f) {
-    var r = {};
-    for (var i = 0, len = xs.length; i < len; i++) {
-      var x = xs[i];
-      r[String(x)] = f(x, i);
-    }
-    return r;
-  };
-  var pure = function (x) {
-    return [x];
-  };
-  var sort = function (xs, comparator) {
-    var copy = slice.call(xs, 0);
-    copy.sort(comparator);
-    return copy;
-  };
-  var head = function (xs) {
-    return xs.length === 0 ? Option.none() : Option.some(xs[0]);
-  };
-  var last = function (xs) {
-    return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
-  };
-  var from$1 = $_e8diihtbjfuw8scy.isFunction(Array.from) ? Array.from : function (x) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
+
+
+
+
+  var from$1 = isFunction(Array.from) ? Array.from : function (x) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return slice.call(x);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_anxm1mtajfuw8sct = {
-    map: map,
-    each: each,
-    eachr: eachr,
-    partition: partition,
-    filter: filter,
-    groupBy: groupBy,
-    indexOf: indexOf,
-    foldr: foldr,
-    foldl: foldl,
-    find: find,
-    findIndex: findIndex,
-    flatten: flatten,
-    bind: bind,
-    forall: forall,
-    exists: exists,
-    contains: contains,
-    equal: equal,
-    reverse: reverse,
-    chunk: chunk,
-    difference: difference,
-    mapToObject: mapToObject,
-    pure: pure,
-    sort: sort,
-    range: range,
-    head: head,
-    last: last,
-    from: from$1
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var defaultMenus = {
</span><span class="cx" style="display: block; padding: 0 10px">     file: {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1018,7 +859,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     tools: {
</span><span class="cx" style="display: block; padding: 0 10px">       title: 'Tools',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      items: 'spellchecker spellcheckerlanguage | a11ycheck'
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      items: 'spellchecker spellcheckerlanguage | a11ycheck code'
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     table: { title: 'Table' },
</span><span class="cx" style="display: block; padding: 0 10px">     help: { title: 'Help' }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1037,7 +878,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return name === '|' ? delimiterMenuNamePair() : menuItem;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasItemName = function (namedMenuItems, name) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.findIndex(namedMenuItems, function (namedMenuItem) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return findIndex(namedMenuItems, function (namedMenuItem) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return namedMenuItem.name === name;
</span><span class="cx" style="display: block; padding: 0 10px">     }).isSome();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1045,13 +886,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return namedMenuItem && namedMenuItem.item.text === '|';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var cleanupMenu = function (namedMenuItems, removedMenuItems) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var menuItemsPass1 = $_anxm1mtajfuw8sct.filter(namedMenuItems, function (namedMenuItem) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var menuItemsPass1 = filter(namedMenuItems, function (namedMenuItem) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return removedMenuItems.hasOwnProperty(namedMenuItem.name) === false;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var menuItemsPass2 = $_anxm1mtajfuw8sct.filter(menuItemsPass1, function (namedMenuItem, i, namedMenuItems) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var menuItemsPass2 = filter(menuItemsPass1, function (namedMenuItem, i, namedMenuItems) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return !isSeparator(namedMenuItem) || !isSeparator(namedMenuItems[i - 1]);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.filter(menuItemsPass2, function (namedMenuItem, i, namedMenuItems) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter(menuItemsPass2, function (namedMenuItem, i, namedMenuItems) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return !isSeparator(namedMenuItem) || i > 0 && i < namedMenuItems.length - 1;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1089,7 +930,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      menuButton.menu = $_anxm1mtajfuw8sct.map(cleanupMenu(namedMenuItems, removedMenuItems), function (menuItem) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      menuButton.menu = map(cleanupMenu(namedMenuItems, removedMenuItems), function (menuItem) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return menuItem.item;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (!menuButton.menu.length) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1128,7 +969,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return menuButtons;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_armr7nt9jfuw8scm = { createMenuButtons: createMenuButtons };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_bahgsqu8jjgwefo4 = { createMenuButtons: createMenuButtons };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$1 = global$3.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var getSize = function (elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1152,13 +993,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     height = Math.max(getMinHeight(editor), height);
</span><span class="cx" style="display: block; padding: 0 10px">     height = Math.min(getMaxHeight(editor), height);
</span><span class="cx" style="display: block; padding: 0 10px">     DOM$1.setStyle(iframeElm, 'height', height);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_b6da16t0jfuw8sbv.fireResizeEditor(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_5hpmustzjjgwefnb.fireResizeEditor(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var resizeBy = function (editor, dw, dh) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elm = editor.getContentAreaContainer();
</span><span class="cx" style="display: block; padding: 0 10px">     resizeTo(editor, elm.clientWidth + dw, elm.clientHeight + dh);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4yyb9xtcjfuw8scz = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_sd6u0ubjjgwefok = {
</ins><span class="cx" style="display: block; padding: 0 10px">     resizeTo: resizeTo,
</span><span class="cx" style="display: block; padding: 0 10px">     resizeBy: resizeBy
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1227,7 +1068,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         btnCtrl.active(true);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_b6da16t0jfuw8sbv.fireResizeEditor(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_5hpmustzjjgwefnb.fireResizeEditor(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isModernBrowser = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1260,7 +1101,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }]
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g06972tdjfuw8sd2 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_b7ut9jucjjgwefom = {
</ins><span class="cx" style="display: block; padding: 0 10px">     hasSidebar: hasSidebar,
</span><span class="cx" style="display: block; padding: 0 10px">     createSidebar: createSidebar
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1268,7 +1109,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fireSkinLoaded$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var done = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       editor._skinLoaded = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_b6da16t0jfuw8sbv.fireSkinLoaded(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_5hpmustzjjgwefnb.fireSkinLoaded(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       if (editor.initialized) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1278,7 +1119,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g47gistfjfuw8sd5 = { fireSkinLoaded: fireSkinLoaded$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_awdosmuejjgwefop = { fireSkinLoaded: fireSkinLoaded$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$2 = global$3.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var switchMode = function (panel) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1304,7 +1145,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       border: '1 0 0 0',
</span><span class="cx" style="display: block; padding: 0 10px">       items: [
</span><span class="cx" style="display: block; padding: 0 10px">         editArea('0'),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_g06972tdjfuw8sd2.createSidebar(editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_b7ut9jucjjgwefom.createSidebar(editor)
</ins><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1311,9 +1152,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var render = function (editor, theme, args) {
</span><span class="cx" style="display: block; padding: 0 10px">     var panel, resizeHandleCtrl, startSize;
</span><span class="cx" style="display: block; padding: 0 10px">     if (isSkinDisabled(editor) === false && args.skinUiCss) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      DOM$2.styleSheetLoader.load(args.skinUiCss, $_g47gistfjfuw8sd5.fireSkinLoaded(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      DOM$2.styleSheetLoader.load(args.skinUiCss, $_awdosmuejjgwefop.fireSkinLoaded(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_g47gistfjfuw8sd5.fireSkinLoaded(editor)();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_awdosmuejjgwefop.fireSkinLoaded(editor)();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     panel = theme.panel = global$4.create({
</span><span class="cx" style="display: block; padding: 0 10px">       type: 'panel',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1330,15 +1171,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">             hasMenubar(editor) === false ? null : {
</span><span class="cx" style="display: block; padding: 0 10px">               type: 'menubar',
</span><span class="cx" style="display: block; padding: 0 10px">               border: '0 0 1 0',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              items: $_armr7nt9jfuw8scm.createMenuButtons(editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              items: $_bahgsqu8jjgwefo4.createMenuButtons(editor)
</ins><span class="cx" style="display: block; padding: 0 10px">             },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_457dd7t8jfuw8scj.createToolbars(editor, getToolbarSize(editor))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_4udolhu7jjgwefo1.createToolbars(editor, getToolbarSize(editor))
</ins><span class="cx" style="display: block; padding: 0 10px">           ]
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_g06972tdjfuw8sd2.hasSidebar(editor) ? editAreaContainer(editor) : editArea('1 0 0 0')
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_b7ut9jucjjgwefom.hasSidebar(editor) ? editAreaContainer(editor) : editArea('1 0 0 0')
</ins><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_435hnxt5jfuw8sc9.setUiContainer(editor, panel);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_6344qfu4jjgwefnr.setUiContainer(editor, panel);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (getResize(editor) !== 'none') {
</span><span class="cx" style="display: block; padding: 0 10px">       resizeHandleCtrl = {
</span><span class="cx" style="display: block; padding: 0 10px">         type: 'resizehandle',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1352,15 +1193,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         onResize: function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (getResize(editor) === 'both') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_4yyb9xtcjfuw8scz.resizeTo(editor, startSize.width + e.deltaX, startSize.height + e.deltaY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_sd6u0ubjjgwefok.resizeTo(editor, startSize.width + e.deltaX, startSize.height + e.deltaY);
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_4yyb9xtcjfuw8scz.resizeTo(editor, null, startSize.height + e.deltaY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_sd6u0ubjjgwefok.resizeTo(editor, null, startSize.height + e.deltaY);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (hasStatusbar(editor)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var linkHtml = '<a href="https://www.tinymce.com/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce" rel="noopener" target="_blank" role="presentation" tabindex="-1">tinymce</a>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var linkHtml = '<a href="https://www.tinymce.com/?utm_campaign=editor_referral&amp;utm_medium=poweredby&amp;utm_source=tinymce" rel="noopener" target="_blank" role="presentation" tabindex="-1">tinymce</a>';
</ins><span class="cx" style="display: block; padding: 0 10px">       var html = global$5.translate([
</span><span class="cx" style="display: block; padding: 0 10px">         'Powered by {0}',
</span><span class="cx" style="display: block; padding: 0 10px">         linkHtml
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1387,7 +1228,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         ]
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_b6da16t0jfuw8sbv.fireBeforeRenderUI(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_5hpmustzjjgwefnb.fireBeforeRenderUI(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.on('SwitchMode', switchMode(panel));
</span><span class="cx" style="display: block; padding: 0 10px">     panel.renderBefore(args.targetNode).reflow();
</span><span class="cx" style="display: block; padding: 0 10px">     if (isReadOnly(editor)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1400,14 +1241,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">       panel.remove();
</span><span class="cx" style="display: block; padding: 0 10px">       panel = null;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_gaf3jet1jfuw8sbw.addKeys(editor, panel);
-    $_v47mpt2jfuw8sc3.addContextualToolbars(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_azwbz4u0jjgwefnc.addKeys(editor, panel);
+    $_g1gegqu1jjgwefne.addContextualToolbars(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       iframeContainer: panel.find('#iframe')[0].getEl(),
</span><span class="cx" style="display: block; padding: 0 10px">       editorContainer: panel.getEl()
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6amrhfswjfuw8sbr = { render: render };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_vxdgetvjjgwefn7 = { render: render };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$9 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1416,8 +1257,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     id: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return 'mceu_' + count++;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    create: function (name, attrs, children) {
-      var elm = document.createElement(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    create: function (name$$1, attrs, children) {
+      var elm = document.createElement(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       global$3.DOM.setAttribs(elm, attrs);
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof children === 'string') {
</span><span class="cx" style="display: block; padding: 0 10px">         elm.innerHTML = children;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1475,20 +1316,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     toggleClass: function (elm, cls, state) {
</span><span class="cx" style="display: block; padding: 0 10px">       return global$3.DOM.toggleClass(elm, cls, state);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    css: function (elm, name, value) {
-      return global$3.DOM.setStyle(elm, name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    css: function (elm, name$$1, value) {
+      return global$3.DOM.setStyle(elm, name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    getRuntimeStyle: function (elm, name) {
-      return global$3.DOM.getStyle(elm, name, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    getRuntimeStyle: function (elm, name$$1) {
+      return global$3.DOM.getStyle(elm, name$$1, true);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    on: function (target, name, callback, scope) {
-      return global$3.DOM.bind(target, name, callback, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    on: function (target, name$$1, callback, scope) {
+      return global$3.DOM.bind(target, name$$1, callback, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    off: function (target, name, callback) {
-      return global$3.DOM.unbind(target, name, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    off: function (target, name$$1, callback) {
+      return global$3.DOM.unbind(target, name$$1, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    fire: function (target, name, args) {
-      return global$3.DOM.fire(target, name, args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    fire: function (target, name$$1, args) {
+      return global$3.DOM.fire(target, name$$1, args);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     innerHtml: function (elm, html) {
</span><span class="cx" style="display: block; padding: 0 10px">       global$3.DOM.setHTML(elm, html);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1504,7 +1345,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   function calculateRelativePosition(ctrl, targetElm, rel) {
</span><span class="cx" style="display: block; padding: 0 10px">     var ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size;
</span><span class="cx" style="display: block; padding: 0 10px">     viewport = getWindowViewPort();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    pos = funcs.getPos(targetElm, $_435hnxt5jfuw8sc9.getUiContainer(ctrl));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    pos = funcs.getPos(targetElm, $_6344qfu4jjgwefnr.getUiContainer(ctrl));
</ins><span class="cx" style="display: block; padding: 0 10px">     x = pos.x;
</span><span class="cx" style="display: block; padding: 0 10px">     y = pos.y;
</span><span class="cx" style="display: block; padding: 0 10px">     if (isFixed(ctrl) && isStatic(document.body)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1572,10 +1413,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getViewPortRect = function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var customUiContainer = $_435hnxt5jfuw8sc9.getUiContainer(ctrl);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var customUiContainer = $_6344qfu4jjgwefnr.getUiContainer(ctrl);
</ins><span class="cx" style="display: block; padding: 0 10px">     return customUiContainer && !isFixed(ctrl) ? getUiContainerViewPort(customUiContainer) : getWindowViewPort();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_831wnjtkjfuw8sdt = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3fnh5iukjjgwefpt = {
</ins><span class="cx" style="display: block; padding: 0 10px">     testMoveRel: function (elm, rels) {
</span><span class="cx" style="display: block; padding: 0 10px">       var viewPortRect = getViewPortRect(this);
</span><span class="cx" style="display: block; padding: 0 10px">       for (var i = 0; i < rels.length; i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1600,12 +1441,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.moveTo(pos.x, pos.y);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     moveBy: function (dx, dy) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, rect = self.layoutRect();
-      self.moveTo(rect.x + dx, rect.y + dy);
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, rect = self$$1.layoutRect();
+      self$$1.moveTo(rect.x + dx, rect.y + dy);
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     moveTo: function (x, y) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       function constrain(value, max, size) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (value < 0) {
</span><span class="cx" style="display: block; padding: 0 10px">           return 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1616,14 +1457,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return value;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.settings.constrainToViewport) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.settings.constrainToViewport) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var viewPortRect = getViewPortRect(this);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var layoutRect = self.layoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var layoutRect = self$$1.layoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">         x = constrain(x, viewPortRect.w, layoutRect.w);
</span><span class="cx" style="display: block; padding: 0 10px">         y = constrain(y, viewPortRect.h, layoutRect.h);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var uiContainer = $_435hnxt5jfuw8sc9.getUiContainer(self);
-      if (uiContainer && isStatic(uiContainer) && !isFixed(self)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var uiContainer = $_6344qfu4jjgwefnr.getUiContainer(self$$1);
+      if (uiContainer && isStatic(uiContainer) && !isFixed(self$$1)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         x -= uiContainer.scrollLeft;
</span><span class="cx" style="display: block; padding: 0 10px">         y -= uiContainer.scrollTop;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1631,20 +1472,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">         x += 1;
</span><span class="cx" style="display: block; padding: 0 10px">         y += 1;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.state.get('rendered')) {
-        self.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.state.get('rendered')) {
+        self$$1.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">           x: x,
</span><span class="cx" style="display: block; padding: 0 10px">           y: y
</span><span class="cx" style="display: block; padding: 0 10px">         }).repaint();
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.settings.x = x;
-        self.settings.y = y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.settings.x = x;
+        self$$1.settings.y = y;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.fire('move', {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.fire('move', {
</ins><span class="cx" style="display: block; padding: 0 10px">         x: x,
</span><span class="cx" style="display: block; padding: 0 10px">         y: y
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1652,7 +1493,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var global$11 = tinymce.util.Tools.resolve('tinymce.util.EventDispatcher');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_xw61vtqjfuw8sep = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fbr241uqjjgwefqo = {
</ins><span class="cx" style="display: block; padding: 0 10px">     parseBox: function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">       var len;
</span><span class="cx" style="display: block; padding: 0 10px">       var radix = 10;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2269,15 +2110,15 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var dirtyCtrls = {};
</span><span class="cx" style="display: block; padding: 0 10px">   var animationFrameRequested;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5c4g75txjfuw8sfo = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_p42hyuxjjgwefrk = {
</ins><span class="cx" style="display: block; padding: 0 10px">     add: function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parent = ctrl.parent();
-      if (parent) {
-        if (!parent._layout || parent._layout.isNative()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parent$$1 = ctrl.parent();
+      if (parent$$1) {
+        if (!parent$$1._layout || parent$$1._layout.isNative()) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!dirtyCtrls[parent._id]) {
-          dirtyCtrls[parent._id] = parent;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!dirtyCtrls[parent$$1._id]) {
+          dirtyCtrls[parent$$1._id] = parent$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (!animationFrameRequested) {
</span><span class="cx" style="display: block; padding: 0 10px">           animationFrameRequested = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2314,37 +2155,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     classPrefix: classPrefix,
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var classes, defaultClasses;
</span><span class="cx" style="display: block; padding: 0 10px">       function applyClasses(classes) {
</span><span class="cx" style="display: block; padding: 0 10px">         var i;
</span><span class="cx" style="display: block; padding: 0 10px">         classes = classes.split(' ');
</span><span class="cx" style="display: block; padding: 0 10px">         for (i = 0; i < classes.length; i++) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.classes.add(classes[i]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.classes.add(classes[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.settings = settings = global$2.extend({}, self.Defaults, settings);
-      self._id = settings.id || 'mceu_' + idCounter++;
-      self._aria = { role: settings.role };
-      self._elmCache = {};
-      self.$ = global$9;
-      self.state = new ObservableObject({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.settings = settings = global$2.extend({}, self$$1.Defaults, settings);
+      self$$1._id = settings.id || 'mceu_' + idCounter++;
+      self$$1._aria = { role: settings.role };
+      self$$1._elmCache = {};
+      self$$1.$ = global$9;
+      self$$1.state = new ObservableObject({
</ins><span class="cx" style="display: block; padding: 0 10px">         visible: true,
</span><span class="cx" style="display: block; padding: 0 10px">         active: false,
</span><span class="cx" style="display: block; padding: 0 10px">         disabled: false,
</span><span class="cx" style="display: block; padding: 0 10px">         value: ''
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.data = new ObservableObject(settings.data);
-      self.classes = new ClassList(function () {
-        if (self.state.get('rendered')) {
-          self.getEl().className = this.toString();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.data = new ObservableObject(settings.data);
+      self$$1.classes = new ClassList(function () {
+        if (self$$1.state.get('rendered')) {
+          self$$1.getEl().className = this.toString();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.classes.prefix = self.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.classes.prefix = self$$1.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">       classes = settings.classes;
</span><span class="cx" style="display: block; padding: 0 10px">       if (classes) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self.Defaults) {
-          defaultClasses = self.Defaults.classes;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1.Defaults) {
+          defaultClasses = self$$1.Defaults.classes;
</ins><span class="cx" style="display: block; padding: 0 10px">           if (defaultClasses && classes !== defaultClasses) {
</span><span class="cx" style="display: block; padding: 0 10px">             applyClasses(defaultClasses);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2351,27 +2192,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         applyClasses(classes);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$2.each('title text name visible disabled active value'.split(' '), function (name) {
-        if (name in settings) {
-          self[name](settings[name]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$2.each('title text name visible disabled active value'.split(' '), function (name$$1) {
+        if (name$$1 in settings) {
+          self$$1[name$$1](settings[name$$1]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('click', function () {
-        if (self.disabled()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('click', function () {
+        if (self$$1.disabled()) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.settings = settings;
-      self.borderBox = $_xw61vtqjfuw8sep.parseBox(settings.border);
-      self.paddingBox = $_xw61vtqjfuw8sep.parseBox(settings.padding);
-      self.marginBox = $_xw61vtqjfuw8sep.parseBox(settings.margin);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.settings = settings;
+      self$$1.borderBox = $_fbr241uqjjgwefqo.parseBox(settings.border);
+      self$$1.paddingBox = $_fbr241uqjjgwefqo.parseBox(settings.padding);
+      self$$1.marginBox = $_fbr241uqjjgwefqo.parseBox(settings.margin);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.hidden) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.hide();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.hide();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     Properties: 'parent,name',
</span><span class="cx" style="display: block; padding: 0 10px">     getContainerElm: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var uiContainer = $_435hnxt5jfuw8sc9.getUiContainer(this);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var uiContainer = $_6344qfu4jjgwefnr.getUiContainer(this);
</ins><span class="cx" style="display: block; padding: 0 10px">       return uiContainer ? uiContainer : funcs.getContainer();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     getParentCtrl: function (elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2387,15 +2228,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     initLayoutRect: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var borderBox, layoutRect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var elm = self.getEl();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var elm = self$$1.getEl();
</ins><span class="cx" style="display: block; padding: 0 10px">       var width, height, minWidth, minHeight, autoResize;
</span><span class="cx" style="display: block; padding: 0 10px">       var startMinWidth, startMinHeight, initialSize;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      borderBox = self.borderBox = self.borderBox || $_xw61vtqjfuw8sep.measureBox(elm, 'border');
-      self.paddingBox = self.paddingBox || $_xw61vtqjfuw8sep.measureBox(elm, 'padding');
-      self.marginBox = self.marginBox || $_xw61vtqjfuw8sep.measureBox(elm, 'margin');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      borderBox = self$$1.borderBox = self$$1.borderBox || $_fbr241uqjjgwefqo.measureBox(elm, 'border');
+      self$$1.paddingBox = self$$1.paddingBox || $_fbr241uqjjgwefqo.measureBox(elm, 'padding');
+      self$$1.marginBox = self$$1.marginBox || $_fbr241uqjjgwefqo.measureBox(elm, 'margin');
</ins><span class="cx" style="display: block; padding: 0 10px">       initialSize = funcs.getSize(elm);
</span><span class="cx" style="display: block; padding: 0 10px">       startMinWidth = settings.minWidth;
</span><span class="cx" style="display: block; padding: 0 10px">       startMinHeight = settings.minHeight;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2411,7 +2252,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var deltaH = borderBox.top + borderBox.bottom;
</span><span class="cx" style="display: block; padding: 0 10px">       var maxW = settings.maxWidth || 65535;
</span><span class="cx" style="display: block; padding: 0 10px">       var maxH = settings.maxHeight || 65535;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._layoutRect = layoutRect = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._layoutRect = layoutRect = {
</ins><span class="cx" style="display: block; padding: 0 10px">         x: settings.x || 0,
</span><span class="cx" style="display: block; padding: 0 10px">         y: settings.y || 0,
</span><span class="cx" style="display: block; padding: 0 10px">         w: width,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2431,14 +2272,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         autoResize: autoResize,
</span><span class="cx" style="display: block; padding: 0 10px">         scrollW: 0
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._lastLayoutRect = {};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._lastLayoutRect = {};
</ins><span class="cx" style="display: block; padding: 0 10px">       return layoutRect;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     layoutRect: function (newRect) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var curRect = self._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, repaintControls;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var curRect = self$$1._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, repaintControls;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!curRect) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        curRect = self.initLayoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        curRect = self$$1.initLayoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (newRect) {
</span><span class="cx" style="display: block; padding: 0 10px">         deltaWidth = curRect.deltaW;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2489,13 +2330,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (newRect.contentH !== undefined) {
</span><span class="cx" style="display: block; padding: 0 10px">           curRect.contentH = newRect.contentH;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        lastLayoutRect = self._lastLayoutRect;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        lastLayoutRect = self$$1._lastLayoutRect;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) {
</span><span class="cx" style="display: block; padding: 0 10px">           repaintControls = Control.repaintControls;
</span><span class="cx" style="display: block; padding: 0 10px">           if (repaintControls) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if (repaintControls.map && !repaintControls.map[self._id]) {
-              repaintControls.push(self);
-              repaintControls.map[self._id] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if (repaintControls.map && !repaintControls.map[self$$1._id]) {
+              repaintControls.push(self$$1);
+              repaintControls.map[self$$1._id] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           lastLayoutRect.x = curRect.x;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2503,21 +2344,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">           lastLayoutRect.w = curRect.w;
</span><span class="cx" style="display: block; padding: 0 10px">           lastLayoutRect.h = curRect.h;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return curRect;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     repaint: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var style, bodyStyle, bodyElm, rect, borderBox;
</span><span class="cx" style="display: block; padding: 0 10px">       var borderW, borderH, lastRepaintRect, round, value;
</span><span class="cx" style="display: block; padding: 0 10px">       round = !document.createRange ? Math.round : function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">         return value;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      style = self.getEl().style;
-      rect = self._layoutRect;
-      lastRepaintRect = self._lastRepaintRect || {};
-      borderBox = self.borderBox;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      style = self$$1.getEl().style;
+      rect = self$$1._layoutRect;
+      lastRepaintRect = self$$1._lastRepaintRect || {};
+      borderBox = self$$1.borderBox;
</ins><span class="cx" style="display: block; padding: 0 10px">       borderW = borderBox.left + borderBox.right;
</span><span class="cx" style="display: block; padding: 0 10px">       borderH = borderBox.top + borderBox.bottom;
</span><span class="cx" style="display: block; padding: 0 10px">       if (rect.x !== lastRepaintRect.x) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2538,9 +2379,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         style.height = (value >= 0 ? value : 0) + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.h = rect.h;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._hasBody && rect.innerW !== lastRepaintRect.innerW) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._hasBody && rect.innerW !== lastRepaintRect.innerW) {
</ins><span class="cx" style="display: block; padding: 0 10px">         value = round(rect.innerW);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        bodyElm = self.getEl('body');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        bodyElm = self$$1.getEl('body');
</ins><span class="cx" style="display: block; padding: 0 10px">         if (bodyElm) {
</span><span class="cx" style="display: block; padding: 0 10px">           bodyStyle = bodyElm.style;
</span><span class="cx" style="display: block; padding: 0 10px">           bodyStyle.width = (value >= 0 ? value : 0) + 'px';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2547,9 +2388,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.innerW = rect.innerW;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._hasBody && rect.innerH !== lastRepaintRect.innerH) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._hasBody && rect.innerH !== lastRepaintRect.innerH) {
</ins><span class="cx" style="display: block; padding: 0 10px">         value = round(rect.innerH);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        bodyElm = bodyElm || self.getEl('body');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        bodyElm = bodyElm || self$$1.getEl('body');
</ins><span class="cx" style="display: block; padding: 0 10px">         if (bodyElm) {
</span><span class="cx" style="display: block; padding: 0 10px">           bodyStyle = bodyStyle || bodyElm.style;
</span><span class="cx" style="display: block; padding: 0 10px">           bodyStyle.height = (value >= 0 ? value : 0) + 'px';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2556,31 +2397,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.innerH = rect.innerH;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._lastRepaintRect = lastRepaintRect;
-      self.fire('repaint', {}, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._lastRepaintRect = lastRepaintRect;
+      self$$1.fire('repaint', {}, false);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     updateLayoutRect: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.parent()._lastRect = null;
-      funcs.css(self.getEl(), {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.parent()._lastRect = null;
+      funcs.css(self$$1.getEl(), {
</ins><span class="cx" style="display: block; padding: 0 10px">         width: '',
</span><span class="cx" style="display: block; padding: 0 10px">         height: ''
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._layoutRect = self._lastRepaintRect = self._lastLayoutRect = null;
-      self.initLayoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._layoutRect = self$$1._lastRepaintRect = self$$1._lastLayoutRect = null;
+      self$$1.initLayoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    on: function (name, callback) {
-      var self = this;
-      function resolveCallbackName(name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    on: function (name$$1, callback) {
+      var self$$1 = this;
+      function resolveCallbackName(name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var callback, scope;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (typeof name !== 'string') {
-          return name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (typeof name$$1 !== 'string') {
+          return name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (!callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.parentsAndSelf().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.parentsAndSelf().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">               var callbacks = ctrl.settings.callbacks;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              if (callbacks && (callback = callbacks[name])) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              if (callbacks && (callback = callbacks[name$$1])) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 scope = ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">                 return false;
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2587,7 +2428,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           if (!callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            e.action = name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            e.action = name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">             this.fire('execute', e);
</span><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2594,36 +2435,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">           return callback.call(scope, e);
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      getEventDispatcher(self).on(name, resolveCallbackName(callback));
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getEventDispatcher(self$$1).on(name$$1, resolveCallbackName(callback));
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    off: function (name, callback) {
-      getEventDispatcher(this).off(name, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    off: function (name$$1, callback) {
+      getEventDispatcher(this).off(name$$1, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    fire: function (name, args, bubble) {
-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    fire: function (name$$1, args, bubble) {
+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       args = args || {};
</span><span class="cx" style="display: block; padding: 0 10px">       if (!args.control) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        args.control = self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        args.control = self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      args = getEventDispatcher(self).fire(name, args);
-      if (bubble !== false && self.parent) {
-        var parent_1 = self.parent();
-        while (parent_1 && !args.isPropagationStopped()) {
-          parent_1.fire(name, args, false);
-          parent_1 = parent_1.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      args = getEventDispatcher(self$$1).fire(name$$1, args);
+      if (bubble !== false && self$$1.parent) {
+        var parent$$1 = self$$1.parent();
+        while (parent$$1 && !args.isPropagationStopped()) {
+          parent$$1.fire(name$$1, args, false);
+          parent$$1 = parent$$1.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return args;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    hasEventListeners: function (name) {
-      return getEventDispatcher(this).has(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    hasEventListeners: function (name$$1) {
+      return getEventDispatcher(this).has(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     parents: function (selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var ctrl, parents = new Collection$2();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (ctrl = self$$1.parent(); ctrl; ctrl = ctrl.parent()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         parents.add(ctrl);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (selector) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2670,16 +2511,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this.getEl().blur();
</span><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    aria: function (name, value) {
-      var self = this, elm = self.getEl(self.ariaTarget);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    aria: function (name$$1, value) {
+      var self$$1 = this, elm = self$$1.getEl(self$$1.ariaTarget);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (typeof value === 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self._aria[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1._aria[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._aria[name] = value;
-      if (self.state.get('rendered')) {
-        elm.setAttribute(name === 'role' ? name : 'aria-' + name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._aria[name$$1] = value;
+      if (self$$1.state.get('rendered')) {
+        elm.setAttribute(name$$1 === 'role' ? name$$1 : 'aria-' + name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     encode: function (text, translate) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (translate !== false) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2693,55 +2534,55 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return Control.translate ? Control.translate(text) : text;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     before: function (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, parent = self.parent();
-      if (parent) {
-        parent.insert(items, parent.items().indexOf(self), true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, parent$$1 = self$$1.parent();
+      if (parent$$1) {
+        parent$$1.insert(items, parent$$1.items().indexOf(self$$1), true);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     after: function (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, parent = self.parent();
-      if (parent) {
-        parent.insert(items, parent.items().indexOf(self));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, parent$$1 = self$$1.parent();
+      if (parent$$1) {
+        parent$$1.insert(items, parent$$1.items().indexOf(self$$1));
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var elm = self.getEl();
-      var parent = self.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var elm = self$$1.getEl();
+      var parent$$1 = self$$1.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">       var newItems, i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.items) {
-        var controls = self.items().toArray();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.items) {
+        var controls = self$$1.items().toArray();
</ins><span class="cx" style="display: block; padding: 0 10px">         i = controls.length;
</span><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><span class="cx" style="display: block; padding: 0 10px">           controls[i].remove();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (parent && parent.items) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (parent$$1 && parent$$1.items) {
</ins><span class="cx" style="display: block; padding: 0 10px">         newItems = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        parent.items().each(function (item) {
-          if (item !== self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        parent$$1.items().each(function (item) {
+          if (item !== self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">             newItems.push(item);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        parent.items().set(newItems);
-        parent._lastRect = null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        parent$$1.items().set(newItems);
+        parent$$1._lastRect = null;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._eventsRoot && self._eventsRoot === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._eventsRoot && self$$1._eventsRoot === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         global$9(elm).off();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var lookup = self.getRoot().controlIdLookup;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var lookup = self$$1.getRoot().controlIdLookup;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (lookup) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        delete lookup[self._id];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        delete lookup[self$$1._id];
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (elm && elm.parentNode) {
</span><span class="cx" style="display: block; padding: 0 10px">         elm.parentNode.removeChild(elm);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.set('rendered', false);
-      self.state.destroy();
-      self.fire('remove');
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.set('rendered', false);
+      self$$1.state.destroy();
+      self$$1.fire('remove');
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderBefore: function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">       global$9(elm).before(this.renderHtml());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2761,37 +2602,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return '<div id="' + this._id + '" class="' + this.classes + '"></div>';
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var settings = self.settings;
-      var elm, box, parent, name, parentEventsRoot;
-      self.$el = global$9(self.getEl());
-      self.state.set('rendered', true);
-      for (name in settings) {
-        if (name.indexOf('on') === 0) {
-          self.on(name.substr(2), settings[name]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var settings = self$$1.settings;
+      var elm, box, parent$$1, name$$1, parentEventsRoot;
+      self$$1.$el = global$9(self$$1.getEl());
+      self$$1.state.set('rendered', true);
+      for (name$$1 in settings) {
+        if (name$$1.indexOf('on') === 0) {
+          self$$1.on(name$$1.substr(2), settings[name$$1]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._eventsRoot) {
-        for (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) {
-          parentEventsRoot = parent._eventsRoot;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._eventsRoot) {
+        for (parent$$1 = self$$1.parent(); !parentEventsRoot && parent$$1; parent$$1 = parent$$1.parent()) {
+          parentEventsRoot = parent$$1._eventsRoot;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (parentEventsRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          for (name in parentEventsRoot._nativeEvents) {
-            self._nativeEvents[name] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          for (name$$1 in parentEventsRoot._nativeEvents) {
+            self$$1._nativeEvents[name$$1] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      bindPendingEvents(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      bindPendingEvents(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.style) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        elm = self.getEl();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        elm = self$$1.getEl();
</ins><span class="cx" style="display: block; padding: 0 10px">         if (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">           elm.setAttribute('style', settings.style);
</span><span class="cx" style="display: block; padding: 0 10px">           elm.style.cssText = settings.style;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.settings.border) {
-        box = self.borderBox;
-        self.$el.css({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.settings.border) {
+        box = self$$1.borderBox;
+        self$$1.$el.css({
</ins><span class="cx" style="display: block; padding: 0 10px">           'border-top-width': box.top,
</span><span class="cx" style="display: block; padding: 0 10px">           'border-right-width': box.right,
</span><span class="cx" style="display: block; padding: 0 10px">           'border-bottom-width': box.bottom,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2798,44 +2639,44 @@
</span><span class="cx" style="display: block; padding: 0 10px">           'border-left-width': box.left
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var root = self.getRoot();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var root = self$$1.getRoot();
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!root.controlIdLookup) {
</span><span class="cx" style="display: block; padding: 0 10px">         root.controlIdLookup = {};
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      root.controlIdLookup[self._id] = self;
-      for (var key in self._aria) {
-        self.aria(key, self._aria[key]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      root.controlIdLookup[self$$1._id] = self$$1;
+      for (var key in self$$1._aria) {
+        self$$1.aria(key, self$$1._aria[key]);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.state.get('visible') === false) {
-        self.getEl().style.display = 'none';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.state.get('visible') === false) {
+        self$$1.getEl().style.display = 'none';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.bindStates();
-      self.state.on('change:visible', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.bindStates();
+      self$$1.state.on('change:visible', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var state = e.value;
</span><span class="cx" style="display: block; padding: 0 10px">         var parentCtrl;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self.state.get('rendered')) {
-          self.getEl().style.display = state === false ? 'none' : '';
-          self.getEl().getBoundingClientRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1.state.get('rendered')) {
+          self$$1.getEl().style.display = state === false ? 'none' : '';
+          self$$1.getEl().getBoundingClientRect();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        parentCtrl = self.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        parentCtrl = self$$1.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">         if (parentCtrl) {
</span><span class="cx" style="display: block; padding: 0 10px">           parentCtrl._lastRect = null;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.fire(state ? 'show' : 'hide');
-        $_5c4g75txjfuw8sfo.add(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.fire(state ? 'show' : 'hide');
+        $_p42hyuxjjgwefrk.add(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.fire('postrender', {}, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.fire('postrender', {}, false);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     scrollIntoView: function (align) {
</span><span class="cx" style="display: block; padding: 0 10px">       function getOffset(elm, rootElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var x, y, parent = elm;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var x, y, parent$$1 = elm;
</ins><span class="cx" style="display: block; padding: 0 10px">         x = y = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        while (parent && parent !== rootElm && parent.nodeType) {
-          x += parent.offsetLeft || 0;
-          y += parent.offsetTop || 0;
-          parent = parent.offsetParent;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        while (parent$$1 && parent$$1 !== rootElm && parent$$1.nodeType) {
+          x += parent$$1.offsetLeft || 0;
+          y += parent$$1.offsetTop || 0;
+          parent$$1 = parent$$1.offsetParent;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return {
</span><span class="cx" style="display: block; padding: 0 10px">           x: x,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2884,21 +2725,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return rootControl;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     reflow: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_5c4g75txjfuw8sfo.remove(this);
-      var parent = this.parent();
-      if (parent && parent._layout && !parent._layout.isNative()) {
-        parent.reflow();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_p42hyuxjjgwefrk.remove(this);
+      var parent$$1 = this.parent();
+      if (parent$$1 && parent$$1._layout && !parent$$1._layout.isNative()) {
+        parent$$1.reflow();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  global$2.each('text title visible disabled active value'.split(' '), function (name) {
-    proto$1[name] = function (value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  global$2.each('text title visible disabled active value'.split(' '), function (name$$1) {
+    proto$1[name$$1] = function (value) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (arguments.length === 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return this.state.get(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return this.state.get(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof value !== 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        this.state.set(name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        this.state.set(name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2908,12 +2749,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (!obj._eventDispatcher) {
</span><span class="cx" style="display: block; padding: 0 10px">       obj._eventDispatcher = new global$11({
</span><span class="cx" style="display: block; padding: 0 10px">         scope: obj,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        toggleEvent: function (name, state) {
-          if (state && global$11.isNative(name)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        toggleEvent: function (name$$1, state) {
+          if (state && global$11.isNative(name$$1)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (!obj._nativeEvents) {
</span><span class="cx" style="display: block; padding: 0 10px">               obj._nativeEvents = {};
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            obj._nativeEvents[name] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            obj._nativeEvents[name$$1] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">             if (obj.state.get('rendered')) {
</span><span class="cx" style="display: block; padding: 0 10px">               bindPendingEvents(obj);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2924,7 +2765,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return obj._eventDispatcher;
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   function bindPendingEvents(eventCtrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var i, l, parents, eventRootCtrl, nativeEvents, name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var i, l, parents, eventRootCtrl, nativeEvents, name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     function delegate(e) {
</span><span class="cx" style="display: block; padding: 0 10px">       var control = eventCtrl.getParentCtrl(e.target);
</span><span class="cx" style="display: block; padding: 0 10px">       if (control) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2997,11 +2838,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!eventRootDelegates) {
</span><span class="cx" style="display: block; padding: 0 10px">         eventRootDelegates = eventRootCtrl._delegates = {};
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (name in nativeEvents) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (name$$1 in nativeEvents) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!nativeEvents) {
</span><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (name === 'wheel' && !hasWheelEventSupport) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (name$$1 === 'wheel' && !hasWheelEventSupport) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (hasMouseWheelEventSupport) {
</span><span class="cx" style="display: block; padding: 0 10px">             global$9(eventCtrl.getEl()).on('mousewheel', fixWheelEvent);
</span><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3009,16 +2850,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           continue;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (name === 'mouseenter' || name === 'mouseleave') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (name$$1 === 'mouseenter' || name$$1 === 'mouseleave') {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!eventRootCtrl._hasMouseEnter) {
</span><span class="cx" style="display: block; padding: 0 10px">             global$9(eventRootCtrl.getEl()).on('mouseleave', mouseLeaveHandler).on('mouseover', mouseEnterHandler);
</span><span class="cx" style="display: block; padding: 0 10px">             eventRootCtrl._hasMouseEnter = 1;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        } else if (!eventRootDelegates[name]) {
-          global$9(eventRootCtrl.getEl()).on(name, delegate);
-          eventRootDelegates[name] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        } else if (!eventRootDelegates[name$$1]) {
+          global$9(eventRootCtrl.getEl()).on(name$$1, delegate);
+          eventRootDelegates[name$$1] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        nativeEvents[name] = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        nativeEvents[name$$1] = false;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3047,17 +2888,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return null;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function getParentRole(elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var role, parent = elm || focusedElement;
-      while (parent = parent.parentNode) {
-        if (role = getRole(parent)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var role, parent$$1 = elm || focusedElement;
+      while (parent$$1 = parent$$1.parentNode) {
+        if (role = getRole(parent$$1)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return role;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    function getAriaProp(name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    function getAriaProp(name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var elm = focusedElement;
</span><span class="cx" style="display: block; padding: 0 10px">       if (isElement(elm)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return elm.getAttribute('aria-' + name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return elm.getAttribute('aria-' + name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function isTextInputElement(elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3369,7 +3210,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             global$9(containerElm).append(ctrl.renderHtml());
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           ctrl.postRender();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_5c4g75txjfuw8sfo.add(ctrl);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_p42hyuxjjgwefrk.add(ctrl);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       self._layout.applyClasses(self.items().filter(':visible'));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3401,8 +3242,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     fromJSON: function (data) {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (var name_1 in data) {
-        self.find('#' + name_1).value(data[name_1]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (var name in data) {
+        self.find('#' + name).value(data[name]);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return self;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3469,7 +3310,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     reflow: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_5c4g75txjfuw8sfo.remove(this);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_p42hyuxjjgwefrk.remove(this);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (this.visible()) {
</span><span class="cx" style="display: block; padding: 0 10px">         Control$1.repaintControls = [];
</span><span class="cx" style="display: block; padding: 0 10px">         Control$1.repaintControls.map = {};
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3517,7 +3358,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var $eventOverlay;
</span><span class="cx" style="display: block; padding: 0 10px">     var doc = settings.document || document;
</span><span class="cx" style="display: block; padding: 0 10px">     var downButton;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var start, stop, drag, startX, startY;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var start, stop$$1, drag, startX, startY;
</ins><span class="cx" style="display: block; padding: 0 10px">     settings = settings || {};
</span><span class="cx" style="display: block; padding: 0 10px">     var handleElement = doc.getElementById(settings.handle || id);
</span><span class="cx" style="display: block; padding: 0 10px">     start = function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3544,13 +3385,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         opacity: 0.0001,
</span><span class="cx" style="display: block; padding: 0 10px">         cursor: cursor
</span><span class="cx" style="display: block; padding: 0 10px">       }).appendTo(doc.body);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$9(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$9(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       settings.start(e);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     drag = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       updateWithTouchData(e);
</span><span class="cx" style="display: block; padding: 0 10px">       if (e.button !== downButton) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return stop(e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return stop$$1(e);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       e.deltaX = e.screenX - startX;
</span><span class="cx" style="display: block; padding: 0 10px">       e.deltaY = e.screenY - startY;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3557,9 +3398,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">       settings.drag(e);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    stop = function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    stop$$1 = function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">       updateWithTouchData(e);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$9(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$9(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       $eventOverlay.remove();
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.stop) {
</span><span class="cx" style="display: block; padding: 0 10px">         settings.stop(e);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3571,7 +3412,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     global$9(handleElement).on('mousedown touchstart', start);
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8d5ltqtzjfuw8sfw = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3rxloyuzjjgwefrs = {
</ins><span class="cx" style="display: block; padding: 0 10px">     init: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">       self.on('repaint', self.renderScroll);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3667,7 +3508,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       layout: 'fit',
</span><span class="cx" style="display: block; padding: 0 10px">       containerCls: 'panel'
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    Mixins: [$_8d5ltqtzjfuw8sfw],
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    Mixins: [$_3rxloyuzjjgwefrs],
</ins><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">       var layout = self._layout;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3686,7 +3527,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4ucwx9u1jfuw8sg2 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3m7770v1jjgwefrz = {
</ins><span class="cx" style="display: block; padding: 0 10px">     resizeToContent: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       this._layoutRect.autoResize = true;
</span><span class="cx" style="display: block; padding: 0 10px">       this._lastRect = null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3718,9 +3559,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var visiblePanels = [];
</span><span class="cx" style="display: block; padding: 0 10px">   var zOrder = [];
</span><span class="cx" style="display: block; padding: 0 10px">   var hasModal;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function isChildOf(ctrl, parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  function isChildOf(ctrl, parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">     while (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (ctrl === parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (ctrl === parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       ctrl = ctrl.parent();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3781,14 +3622,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   function repositionPanel(panel) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var scrollY = funcs.getViewPort().y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var scrollY$$1 = funcs.getViewPort().y;
</ins><span class="cx" style="display: block; padding: 0 10px">     function toggleFixedChildPanels(fixed, deltaY) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parent;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parent$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       for (var i = 0; i < visiblePanels.length; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (visiblePanels[i] !== panel) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          parent = visiblePanels[i].parent();
-          while (parent && (parent = parent.parent())) {
-            if (parent === panel) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          parent$$1 = visiblePanels[i].parent();
+          while (parent$$1 && (parent$$1 = parent$$1.parent())) {
+            if (parent$$1 === panel) {
</ins><span class="cx" style="display: block; padding: 0 10px">               visiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint();
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3798,14 +3639,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (panel.settings.autofix) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!panel.state.get('fixed')) {
</span><span class="cx" style="display: block; padding: 0 10px">         panel._autoFixY = panel.layoutRect().y;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (panel._autoFixY < scrollY) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (panel._autoFixY < scrollY$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           panel.fixed(true).layoutRect({ y: 0 }).repaint();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          toggleFixedChildPanels(true, scrollY - panel._autoFixY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          toggleFixedChildPanels(true, scrollY$$1 - panel._autoFixY);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (panel._autoFixY > scrollY) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (panel._autoFixY > scrollY$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           panel.fixed(false).layoutRect({ y: panel._autoFixY }).repaint();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          toggleFixedChildPanels(false, panel._autoFixY - scrollY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          toggleFixedChildPanels(false, panel._autoFixY - scrollY$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3844,87 +3685,87 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   var FloatPanel = Panel.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     Mixins: [
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_831wnjtkjfuw8sdt,
-      $_4ucwx9u1jfuw8sg2
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_3fnh5iukjjgwefpt,
+      $_3m7770v1jjgwefrz
</ins><span class="cx" style="display: block; padding: 0 10px">     ],
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      self._eventsRoot = self;
-      self.classes.add('floatpanel');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      self$$1._eventsRoot = self$$1;
+      self$$1.classes.add('floatpanel');
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.autohide) {
</span><span class="cx" style="display: block; padding: 0 10px">         bindDocumentClickHandler();
</span><span class="cx" style="display: block; padding: 0 10px">         bindWindowResizeHandler();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        visiblePanels.push(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        visiblePanels.push(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.autofix) {
</span><span class="cx" style="display: block; padding: 0 10px">         bindDocumentScrollHandler();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.on('move', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.on('move', function () {
</ins><span class="cx" style="display: block; padding: 0 10px">           repositionPanel(this);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('postrender show', function (e) {
-        if (e.control === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('postrender show', function (e) {
+        if (e.control === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var $modalBlockEl_1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var prefix_1 = self.classPrefix;
-          if (self.modal && !hasModal) {
-            $modalBlockEl_1 = global$9('#' + prefix_1 + 'modal-block', self.getContainerElm());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var prefix_1 = self$$1.classPrefix;
+          if (self$$1.modal && !hasModal) {
+            $modalBlockEl_1 = global$9('#' + prefix_1 + 'modal-block', self$$1.getContainerElm());
</ins><span class="cx" style="display: block; padding: 0 10px">             if (!$modalBlockEl_1[0]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              $modalBlockEl_1 = global$9('<div id="' + prefix_1 + 'modal-block" class="' + prefix_1 + 'reset ' + prefix_1 + 'fade"></div>').appendTo(self.getContainerElm());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              $modalBlockEl_1 = global$9('<div id="' + prefix_1 + 'modal-block" class="' + prefix_1 + 'reset ' + prefix_1 + 'fade"></div>').appendTo(self$$1.getContainerElm());
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             global$7.setTimeout(function () {
</span><span class="cx" style="display: block; padding: 0 10px">               $modalBlockEl_1.addClass(prefix_1 + 'in');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              global$9(self.getEl()).addClass(prefix_1 + 'in');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              global$9(self$$1.getEl()).addClass(prefix_1 + 'in');
</ins><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="cx" style="display: block; padding: 0 10px">             hasModal = true;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          addRemove(true, self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          addRemove(true, self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('show', function () {
-        self.parents().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('show', function () {
+        self$$1.parents().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (ctrl.state.get('fixed')) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.fixed(true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.fixed(true);
</ins><span class="cx" style="display: block; padding: 0 10px">             return false;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.popover) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self._preBodyHtml = '<div class="' + self.classPrefix + 'arrow"></div>';
-        self.classes.add('popover').add('bottom').add(self.isRtl() ? 'end' : 'start');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1._preBodyHtml = '<div class="' + self$$1.classPrefix + 'arrow"></div>';
+        self$$1.classes.add('popover').add('bottom').add(self$$1.isRtl() ? 'end' : 'start');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.aria('label', settings.ariaLabel);
-      self.aria('labelledby', self._id);
-      self.aria('describedby', self.describedBy || self._id + '-none');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.aria('label', settings.ariaLabel);
+      self$$1.aria('labelledby', self$$1._id);
+      self$$1.aria('describedby', self$$1.describedBy || self$$1._id + '-none');
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     fixed: function (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (self.state.get('fixed') !== state) {
-        if (self.state.get('rendered')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (self$$1.state.get('fixed') !== state) {
+        if (self$$1.state.get('rendered')) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var viewport = funcs.getViewPort();
</span><span class="cx" style="display: block; padding: 0 10px">           if (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.layoutRect().y -= viewport.y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.layoutRect().y -= viewport.y;
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.layoutRect().y += viewport.y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.layoutRect().y += viewport.y;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.toggle('fixed', state);
-        self.state.set('fixed', state);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.toggle('fixed', state);
+        self$$1.state.set('fixed', state);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     show: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var state = self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var state = self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">       i = visiblePanels.length;
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (visiblePanels[i] === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (visiblePanels[i] === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (i === -1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        visiblePanels.push(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        visiblePanels.push(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return state;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3937,12 +3778,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       FloatPanel.hideAll();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     close: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (!self.fire('close').isDefaultPrevented()) {
-        self.remove();
-        addRemove(false, self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (!self$$1.fire('close').isDefaultPrevented()) {
+        self$$1.remove();
+        addRemove(false, self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       removeVisiblePanel(this);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3949,11 +3790,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this._super();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (self.settings.bodyRole) {
-        this.getEl('body').setAttribute('role', self.settings.bodyRole);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (self$$1.settings.bodyRole) {
+        this.getEl('body').setAttribute('role', self$$1.settings.bodyRole);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   FloatPanel.hideAll = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4047,21 +3888,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">           hasMenubar(editor) === false ? null : {
</span><span class="cx" style="display: block; padding: 0 10px">             type: 'menubar',
</span><span class="cx" style="display: block; padding: 0 10px">             border: '0 0 1 0',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            items: $_armr7nt9jfuw8scm.createMenuButtons(editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            items: $_bahgsqu8jjgwefo4.createMenuButtons(editor)
</ins><span class="cx" style="display: block; padding: 0 10px">           },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_457dd7t8jfuw8scj.createToolbars(editor, getToolbarSize(editor))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_4udolhu7jjgwefo1.createToolbars(editor, getToolbarSize(editor))
</ins><span class="cx" style="display: block; padding: 0 10px">         ]
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_435hnxt5jfuw8sc9.setUiContainer(editor, panel);
-      $_b6da16t0jfuw8sbv.fireBeforeRenderUI(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6344qfu4jjgwefnr.setUiContainer(editor, panel);
+      $_5hpmustzjjgwefnb.fireBeforeRenderUI(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (inlineToolbarContainer) {
</span><span class="cx" style="display: block; padding: 0 10px">         panel.renderTo(inlineToolbarContainer).reflow();
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         panel.renderTo().reflow();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_gaf3jet1jfuw8sbw.addKeys(editor, panel);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_azwbz4u0jjgwefnc.addKeys(editor, panel);
</ins><span class="cx" style="display: block; padding: 0 10px">       show();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_v47mpt2jfuw8sc3.addContextualToolbars(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_g1gegqu1jjgwefne.addContextualToolbars(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.on('nodeChange', reposition);
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('ResizeWindow', reposition);
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('activate', show);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4084,13 +3925,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     if (isSkinDisabled(editor) === false && args.skinUiCss) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      DOM.styleSheetLoader.load(args.skinUiCss, $_g47gistfjfuw8sd5.fireSkinLoaded(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      DOM.styleSheetLoader.load(args.skinUiCss, $_awdosmuejjgwefop.fireSkinLoaded(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_g47gistfjfuw8sd5.fireSkinLoaded(editor)();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_awdosmuejjgwefop.fireSkinLoaded(editor)();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return {};
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g6zuymtgjfuw8sd6 = { render: render$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fuoldxufjjgwefor = { render: render$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function Throbber (elm, inline) {
</span><span class="cx" style="display: block; padding: 0 10px">     var self = this;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4137,7 +3978,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bm31cfu2jfuw8sg3 = { setup: setup };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_18iiwkv2jjgwefs0 = { setup: setup };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var renderUI = function (editor, theme, args) {
</span><span class="cx" style="display: block; padding: 0 10px">     var skinUrl = getSkinUrl(editor);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4145,13 +3986,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       args.skinUiCss = skinUrl + '/skin.min.css';
</span><span class="cx" style="display: block; padding: 0 10px">       editor.contentCSS.push(skinUrl + '/content' + (editor.inline ? '.inline' : '') + '.min.css');
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_bm31cfu2jfuw8sg3.setup(editor, theme);
-    return isInline(editor) ? $_g6zuymtgjfuw8sd6.render(editor, theme, args) : $_6amrhfswjfuw8sbr.render(editor, theme, args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_18iiwkv2jjgwefs0.setup(editor, theme);
+    return isInline(editor) ? $_fuoldxufjjgwefor.render(editor, theme, args) : $_vxdgetvjjgwefn7.render(editor, theme, args);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5dgseussjfuw8sbh = { renderUI: renderUI };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_as4c3qtrjjgwefn1 = { renderUI: renderUI };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var Tooltip = Control$1.extend({
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    Mixins: [$_831wnjtkjfuw8sdt],
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    Mixins: [$_3fnh5iukjjgwefpt],
</ins><span class="cx" style="display: block; padding: 0 10px">     Defaults: { classes: 'widget tooltip tooltip-n' },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this, prefix = self.classPrefix;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4208,7 +4049,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     tooltip: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!this._tooltip) {
</span><span class="cx" style="display: block; padding: 0 10px">         this._tooltip = new Tooltip({ type: 'tooltip' });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_435hnxt5jfuw8sc9.inheritUiContainer(this, this._tooltip);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6344qfu4jjgwefnr.inheritUiContainer(this, this._tooltip);
</ins><span class="cx" style="display: block; padding: 0 10px">         this._tooltip.renderTo();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return this._tooltip;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4298,7 +4139,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     ctx.getEl().lastChild.textContent = text + (ctx.progressBar ? ' ' + ctx.progressBar.value() + '%' : '');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var Notification = Control$1.extend({
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    Mixins: [$_831wnjtkjfuw8sdt],
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    Mixins: [$_3fnh5iukjjgwefpt],
</ins><span class="cx" style="display: block; padding: 0 10px">     Defaults: { classes: 'widget notification' },
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4396,7 +4237,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return funcs.getSize(container).width;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var prePositionNotifications = function (notifications) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_anxm1mtajfuw8sct.each(notifications, function (notification) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(notifications, function (notification) {
</ins><span class="cx" style="display: block; padding: 0 10px">         notification.moveTo(0, 0);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4405,7 +4246,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var firstItem = notifications.slice(0, 1)[0];
</span><span class="cx" style="display: block; padding: 0 10px">         var container = getEditorContainer(editor);
</span><span class="cx" style="display: block; padding: 0 10px">         firstItem.moveRel(container, 'tc-tc');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_anxm1mtajfuw8sct.each(notifications, function (notification, index) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each(notifications, function (notification, index) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (index > 0) {
</span><span class="cx" style="display: block; padding: 0 10px">             notification.moveRel(notifications[index - 1].getEl(), 'bc-tc');
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4509,7 +4350,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     global$9(window).on('resize', reposition);
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var Window = FloatPanel.extend({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Window$$1 = FloatPanel.extend({
</ins><span class="cx" style="display: block; padding: 0 10px">     modal: true,
</span><span class="cx" style="display: block; padding: 0 10px">     Defaults: {
</span><span class="cx" style="display: block; padding: 0 10px">       border: 1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4526,61 +4367,61 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      if (self.isRtl()) {
-        self.classes.add('rtl');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      if (self$$1.isRtl()) {
+        self$$1.classes.add('rtl');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.classes.add('window');
-      self.bodyClasses.add('window-body');
-      self.state.set('fixed', true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.classes.add('window');
+      self$$1.bodyClasses.add('window-body');
+      self$$1.state.set('fixed', true);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.buttons) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.statusbar = new Panel({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.statusbar = new Panel({
</ins><span class="cx" style="display: block; padding: 0 10px">           layout: 'flex',
</span><span class="cx" style="display: block; padding: 0 10px">           border: '1 0 0 0',
</span><span class="cx" style="display: block; padding: 0 10px">           spacing: 3,
</span><span class="cx" style="display: block; padding: 0 10px">           padding: 10,
</span><span class="cx" style="display: block; padding: 0 10px">           align: 'center',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          pack: self.isRtl() ? 'start' : 'end',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          pack: self$$1.isRtl() ? 'start' : 'end',
</ins><span class="cx" style="display: block; padding: 0 10px">           defaults: { type: 'button' },
</span><span class="cx" style="display: block; padding: 0 10px">           items: settings.buttons
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.statusbar.classes.add('foot');
-        self.statusbar.parent(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.statusbar.classes.add('foot');
+        self$$1.statusbar.parent(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('click', function (e) {
-        var closeClass = self.classPrefix + 'close';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('click', function (e) {
+        var closeClass = self$$1.classPrefix + 'close';
</ins><span class="cx" style="display: block; padding: 0 10px">         if (funcs.hasClass(e.target, closeClass) || funcs.hasClass(e.target.parentNode, closeClass)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.close();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('cancel', function () {
-        self.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('cancel', function () {
+        self$$1.close();
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('move', function (e) {
-        if (e.control === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('move', function (e) {
+        if (e.control === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           FloatPanel.hideAll();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.aria('describedby', self.describedBy || self._id + '-none');
-      self.aria('label', settings.title);
-      self._fullscreen = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.aria('describedby', self$$1.describedBy || self$$1._id + '-none');
+      self$$1.aria('label', settings.title);
+      self$$1._fullscreen = false;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     recalc: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var statusbar = self.statusbar;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var statusbar$$1 = self$$1.statusbar;
</ins><span class="cx" style="display: block; padding: 0 10px">       var layoutRect, width, x, needsRecalc;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self._fullscreen) {
-        self.layoutRect(funcs.getWindowSize());
-        self.layoutRect().contentH = self.layoutRect().innerH;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1._fullscreen) {
+        self$$1.layoutRect(funcs.getWindowSize());
+        self$$1.layoutRect().contentH = self$$1.layoutRect().innerH;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super();
-      layoutRect = self.layoutRect();
-      if (self.settings.title && !self._fullscreen) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super();
+      layoutRect = self$$1.layoutRect();
+      if (self$$1.settings.title && !self$$1._fullscreen) {
</ins><span class="cx" style="display: block; padding: 0 10px">         width = layoutRect.headerW;
</span><span class="cx" style="display: block; padding: 0 10px">         if (width > layoutRect.w) {
</span><span class="cx" style="display: block; padding: 0 10px">           x = layoutRect.x - Math.max(0, width / 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">             w: width,
</span><span class="cx" style="display: block; padding: 0 10px">             x: x
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4587,12 +4428,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">           needsRecalc = true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (statusbar) {
-        statusbar.layoutRect({ w: self.layoutRect().innerW }).recalc();
-        width = statusbar.layoutRect().minW + layoutRect.deltaW;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (statusbar$$1) {
+        statusbar$$1.layoutRect({ w: self$$1.layoutRect().innerW }).recalc();
+        width = statusbar$$1.layoutRect().minW + layoutRect.deltaW;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (width > layoutRect.w) {
</span><span class="cx" style="display: block; padding: 0 10px">           x = layoutRect.x - Math.max(0, width - layoutRect.w);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">             w: width,
</span><span class="cx" style="display: block; padding: 0 10px">             x: x
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4600,141 +4441,141 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (needsRecalc) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.recalc();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.recalc();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     initLayoutRect: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var layoutRect = self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var layoutRect = self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">       var deltaH = 0, headEl;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.settings.title && !self._fullscreen) {
-        headEl = self.getEl('head');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.settings.title && !self$$1._fullscreen) {
+        headEl = self$$1.getEl('head');
</ins><span class="cx" style="display: block; padding: 0 10px">         var size = funcs.getSize(headEl);
</span><span class="cx" style="display: block; padding: 0 10px">         layoutRect.headerW = size.width;
</span><span class="cx" style="display: block; padding: 0 10px">         layoutRect.headerH = size.height;
</span><span class="cx" style="display: block; padding: 0 10px">         deltaH += layoutRect.headerH;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.statusbar) {
-        deltaH += self.statusbar.layoutRect().h;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.statusbar) {
+        deltaH += self$$1.statusbar.layoutRect().h;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       layoutRect.deltaH += deltaH;
</span><span class="cx" style="display: block; padding: 0 10px">       layoutRect.minH += deltaH;
</span><span class="cx" style="display: block; padding: 0 10px">       layoutRect.h += deltaH;
</span><span class="cx" style="display: block; padding: 0 10px">       var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      layoutRect.x = self.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2);
-      layoutRect.y = self.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      layoutRect.x = self$$1.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2);
+      layoutRect.y = self$$1.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2);
</ins><span class="cx" style="display: block; padding: 0 10px">       return layoutRect;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, layout = self._layout, id = self._id, prefix = self.classPrefix;
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, layout = self$$1._layout, id = self$$1._id, prefix = self$$1.classPrefix;
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var headerHtml = '', footerHtml = '', html = settings.html;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.preRender();
-      layout.preRender(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.preRender();
+      layout.preRender(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.title) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        headerHtml = '<div id="' + id + '-head" class="' + prefix + 'window-head">' + '<div id="' + id + '-title" class="' + prefix + 'title">' + self.encode(settings.title) + '</div>' + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + '<button type="button" class="' + prefix + 'close" aria-hidden="true">' + '<i class="mce-ico mce-i-remove"></i>' + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        headerHtml = '<div id="' + id + '-head" class="' + prefix + 'window-head">' + '<div id="' + id + '-title" class="' + prefix + 'title">' + self$$1.encode(settings.title) + '</div>' + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + '<button type="button" class="' + prefix + 'close" aria-hidden="true">' + '<i class="mce-ico mce-i-remove"></i>' + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.url) {
</span><span class="cx" style="display: block; padding: 0 10px">         html = '<iframe src="' + settings.url + '" tabindex="-1"></iframe>';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof html === 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        html = layout.renderHtml(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        html = layout.renderHtml(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.statusbar) {
-        footerHtml = self.statusbar.renderHtml();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.statusbar) {
+        footerHtml = self$$1.statusbar.renderHtml();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return '<div id="' + id + '" class="' + self.classes + '" hidefocus="1">' + '<div class="' + self.classPrefix + 'reset" role="application">' + headerHtml + '<div id="' + id + '-body" class="' + self.bodyClasses + '">' + html + '</div>' + footerHtml + '</div>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return '<div id="' + id + '" class="' + self$$1.classes + '" hidefocus="1">' + '<div class="' + self$$1.classPrefix + 'reset" role="application">' + headerHtml + '<div id="' + id + '-body" class="' + self$$1.bodyClasses + '">' + html + '</div>' + footerHtml + '</div>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     fullscreen: function (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var documentElement = document.documentElement;
</span><span class="cx" style="display: block; padding: 0 10px">       var slowRendering;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var prefix = self.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var prefix = self$$1.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">       var layoutRect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (state !== self._fullscreen) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (state !== self$$1._fullscreen) {
</ins><span class="cx" style="display: block; padding: 0 10px">         global$9(window).on('resize', function () {
</span><span class="cx" style="display: block; padding: 0 10px">           var time;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (self._fullscreen) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (self$$1._fullscreen) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (!slowRendering) {
</span><span class="cx" style="display: block; padding: 0 10px">               time = new Date().getTime();
</span><span class="cx" style="display: block; padding: 0 10px">               var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              self.moveTo(0, 0).resizeTo(rect.w, rect.h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);
</ins><span class="cx" style="display: block; padding: 0 10px">               if (new Date().getTime() - time > 50) {
</span><span class="cx" style="display: block; padding: 0 10px">                 slowRendering = true;
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              if (!self._timer) {
-                self._timer = global$7.setTimeout(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              if (!self$$1._timer) {
+                self$$1._timer = global$7.setTimeout(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">                   var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                  self.moveTo(0, 0).resizeTo(rect.w, rect.h);
-                  self._timer = 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                  self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);
+                  self$$1._timer = 0;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }, 50);
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        layoutRect = self.layoutRect();
-        self._fullscreen = state;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        layoutRect = self$$1.layoutRect();
+        self$$1._fullscreen = state;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.borderBox = $_xw61vtqjfuw8sep.parseBox(self.settings.border);
-          self.getEl('head').style.display = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.borderBox = $_fbr241uqjjgwefqo.parseBox(self$$1.settings.border);
+          self$$1.getEl('head').style.display = '';
</ins><span class="cx" style="display: block; padding: 0 10px">           layoutRect.deltaH += layoutRect.headerH;
</span><span class="cx" style="display: block; padding: 0 10px">           global$9([
</span><span class="cx" style="display: block; padding: 0 10px">             documentElement,
</span><span class="cx" style="display: block; padding: 0 10px">             document.body
</span><span class="cx" style="display: block; padding: 0 10px">           ]).removeClass(prefix + 'fullscreen');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.classes.remove('fullscreen');
-          self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.classes.remove('fullscreen');
+          self$$1.moveTo(self$$1._initial.x, self$$1._initial.y).resizeTo(self$$1._initial.w, self$$1._initial.h);
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self._initial = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1._initial = {
</ins><span class="cx" style="display: block; padding: 0 10px">             x: layoutRect.x,
</span><span class="cx" style="display: block; padding: 0 10px">             y: layoutRect.y,
</span><span class="cx" style="display: block; padding: 0 10px">             w: layoutRect.w,
</span><span class="cx" style="display: block; padding: 0 10px">             h: layoutRect.h
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.borderBox = $_xw61vtqjfuw8sep.parseBox('0');
-          self.getEl('head').style.display = 'none';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.borderBox = $_fbr241uqjjgwefqo.parseBox('0');
+          self$$1.getEl('head').style.display = 'none';
</ins><span class="cx" style="display: block; padding: 0 10px">           layoutRect.deltaH -= layoutRect.headerH + 2;
</span><span class="cx" style="display: block; padding: 0 10px">           global$9([
</span><span class="cx" style="display: block; padding: 0 10px">             documentElement,
</span><span class="cx" style="display: block; padding: 0 10px">             document.body
</span><span class="cx" style="display: block; padding: 0 10px">           ]).addClass(prefix + 'fullscreen');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.classes.add('fullscreen');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.classes.add('fullscreen');
</ins><span class="cx" style="display: block; padding: 0 10px">           var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.moveTo(0, 0).resizeTo(rect.w, rect.h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self.reflow();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1.reflow();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var startPos;
</span><span class="cx" style="display: block; padding: 0 10px">       setTimeout(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('in');
-        self.fire('open');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('in');
+        self$$1.fire('open');
</ins><span class="cx" style="display: block; padding: 0 10px">       }, 0);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super();
-      if (self.statusbar) {
-        self.statusbar.postRender();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super();
+      if (self$$1.statusbar) {
+        self$$1.statusbar.postRender();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.focus();
-      this.dragHelper = new DragHelper(self._id + '-dragh', {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.focus();
+      this.dragHelper = new DragHelper(self$$1._id + '-dragh', {
</ins><span class="cx" style="display: block; padding: 0 10px">         start: function () {
</span><span class="cx" style="display: block; padding: 0 10px">           startPos = {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            x: self.layoutRect().x,
-            y: self.layoutRect().y
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            x: self$$1.layoutRect().x,
+            y: self$$1.layoutRect().y
</ins><span class="cx" style="display: block; padding: 0 10px">           };
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         drag: function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('submit', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('submit', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!e.isDefaultPrevented()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.close();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      windows.push(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      windows.push(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       toggleFullScreenState(true);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     submit: function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4741,17 +4582,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.fire('submit', { data: this.toJSON() });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.dragHelper.destroy();
-      self._super();
-      if (self.statusbar) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.dragHelper.destroy();
+      self$$1._super();
+      if (self$$1.statusbar) {
</ins><span class="cx" style="display: block; padding: 0 10px">         this.statusbar.remove();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      toggleBodyFullScreenClasses(self.classPrefix, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      toggleBodyFullScreenClasses(self$$1.classPrefix, false);
</ins><span class="cx" style="display: block; padding: 0 10px">       i = windows.length;
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (windows[i] === self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (windows[i] === self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           windows.splice(i, 1);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4764,7 +4605,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   handleWindowResize();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var MessageBox = Window.extend({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var MessageBox = Window$$1.extend({
</ins><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><span class="cx" style="display: block; padding: 0 10px">       settings = {
</span><span class="cx" style="display: block; padding: 0 10px">         border: 1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4797,7 +4638,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var buttons;
</span><span class="cx" style="display: block; padding: 0 10px">         var callback = settings.callback || function () {
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        function createButton(text, status, primary) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        function createButton(text, status$$1, primary) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return {
</span><span class="cx" style="display: block; padding: 0 10px">             type: 'button',
</span><span class="cx" style="display: block; padding: 0 10px">             text: text,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4804,7 +4645,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             subtype: primary ? 'primary' : '',
</span><span class="cx" style="display: block; padding: 0 10px">             onClick: function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">               e.control.parents()[1].close();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              callback(status);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              callback(status$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4829,7 +4670,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           buttons = [createButton('Ok', true, true)];
</span><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return new Window({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return new Window$$1({
</ins><span class="cx" style="display: block; padding: 0 10px">           padding: 20,
</span><span class="cx" style="display: block; padding: 0 10px">           x: settings.x,
</span><span class="cx" style="display: block; padding: 0 10px">           y: settings.y,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4876,7 +4717,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function WindowManagerImpl (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var open = function (args, params, closeCallback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var open$$1 = function (args, params, closeCallback) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var win;
</span><span class="cx" style="display: block; padding: 0 10px">       args.title = args.title || ' ';
</span><span class="cx" style="display: block; padding: 0 10px">       args.url = args.url || args.file;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4910,7 +4751,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         ];
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      win = new Window(args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      win = new Window$$1(args);
</ins><span class="cx" style="display: block; padding: 0 10px">       win.on('close', function () {
</span><span class="cx" style="display: block; padding: 0 10px">         closeCallback(win);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4917,9 +4758,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (args.data) {
</span><span class="cx" style="display: block; padding: 0 10px">         win.on('postRender', function () {
</span><span class="cx" style="display: block; padding: 0 10px">           this.find('*').each(function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            var name = ctrl.name();
-            if (name in args.data) {
-              ctrl.value(args.data[name]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            var name$$1 = ctrl.name();
+            if (name$$1 in args.data) {
+              ctrl.value(args.data[name$$1]);
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4929,7 +4770,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       win = win.renderTo(document.body).reflow();
</span><span class="cx" style="display: block; padding: 0 10px">       return win;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var alert = function (message, choiceCallback, closeCallback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var alert$$1 = function (message, choiceCallback, closeCallback) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var win;
</span><span class="cx" style="display: block; padding: 0 10px">       win = MessageBox.alert(message, function () {
</span><span class="cx" style="display: block; padding: 0 10px">         choiceCallback();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4939,7 +4780,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return win;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var confirm = function (message, choiceCallback, closeCallback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var confirm$$1 = function (message, choiceCallback, closeCallback) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var win;
</span><span class="cx" style="display: block; padding: 0 10px">       win = MessageBox.confirm(message, function (state) {
</span><span class="cx" style="display: block; padding: 0 10px">         choiceCallback(state);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4949,20 +4790,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return win;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var close = function (window) {
-      window.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var close$$1 = function (window$$1) {
+      window$$1.close();
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getParams = function (window) {
-      return window.params;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getParams = function (window$$1) {
+      return window$$1.params;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var setParams = function (window, params) {
-      window.params = params;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var setParams = function (window$$1, params) {
+      window$$1.params = params;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      open: open,
-      alert: alert,
-      confirm: confirm,
-      close: close,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      open: open$$1,
+      alert: alert$$1,
+      confirm: confirm$$1,
+      close: close$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       getParams: getParams,
</span><span class="cx" style="display: block; padding: 0 10px">       setParams: setParams
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4970,13 +4811,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var get = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var renderUI = function (args) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_5dgseussjfuw8sbh.renderUI(editor, this, args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_as4c3qtrjjgwefn1.renderUI(editor, this, args);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var resizeTo = function (w, h) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_4yyb9xtcjfuw8scz.resizeTo(editor, w, h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_sd6u0ubjjgwefok.resizeTo(editor, w, h);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var resizeBy = function (dw, dh) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_4yyb9xtcjfuw8scz.resizeBy(editor, dw, dh);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_sd6u0ubjjgwefok.resizeBy(editor, dw, dh);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getNotificationManagerImpl = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return NotificationManagerImpl(editor);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4992,7 +4833,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       getWindowManagerImpl: getWindowManagerImpl
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cf5qtqsrjfuw8sbf = { get: get };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_buaxbttqjjgwefn0 = { get: get };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var Layout = global$10.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     Defaults: {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5075,26 +4916,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">       role: 'button'
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var size;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super(settings);
-      settings = self.settings;
-      size = self.settings.size;
-      self.on('click mousedown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super(settings);
+      settings = self$$1.settings;
+      size = self$$1.settings.size;
+      self$$1.on('click mousedown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('touchstart', function (e) {
-        self.fire('click', e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('touchstart', function (e) {
+        self$$1.fire('click', e);
</ins><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.subtype) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add(settings.subtype);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add(settings.subtype);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (size) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('btn-' + size);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('btn-' + size);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.icon) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.icon(settings.icon);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.icon(settings.icon);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     icon: function (icon) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5114,12 +4955,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this._super();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, id = self._id, prefix = self.classPrefix;
-      var icon = self.state.get('icon'), image;
-      var text = self.state.get('text');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;
+      var icon = self$$1.state.get('icon'), image;
+      var text = self$$1.state.get('text');
</ins><span class="cx" style="display: block; padding: 0 10px">       var textHtml = '';
</span><span class="cx" style="display: block; padding: 0 10px">       var ariaPressed;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       image = settings.image;
</span><span class="cx" style="display: block; padding: 0 10px">       if (image) {
</span><span class="cx" style="display: block; padding: 0 10px">         icon = 'none';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5131,37 +4972,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">         image = '';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('btn-has-text');
-        textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('btn-has-text');
+        textHtml = '<span class="' + prefix + 'txt">' + self$$1.encode(text) + '</span>';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       icon = icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
</span><span class="cx" style="display: block; padding: 0 10px">       ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed="' + settings.active + '"' : '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1"' + ariaPressed + '>' + '<button id="' + id + '-button" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return '<div id="' + id + '" class="' + self$$1.classes + '" tabindex="-1"' + ariaPressed + '>' + '<button id="' + id + '-button" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, $ = self.$, textCls = self.classPrefix + 'txt';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, $ = self$$1.$, textCls = self$$1.classPrefix + 'txt';
</ins><span class="cx" style="display: block; padding: 0 10px">       function setButtonText(text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var $span = $('span.' + textCls, self.getEl());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var $span = $('span.' + textCls, self$$1.getEl());
</ins><span class="cx" style="display: block; padding: 0 10px">         if (text) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (!$span[0]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $('button:first', self.getEl()).append('<span class="' + textCls + '"></span>');
-            $span = $('span.' + textCls, self.getEl());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $('button:first', self$$1.getEl()).append('<span class="' + textCls + '"></span>');
+            $span = $('span.' + textCls, self$$1.getEl());
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $span.html(self.encode(text));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $span.html(self$$1.encode(text));
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           $span.remove();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.toggle('btn-has-text', !!text);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.toggle('btn-has-text', !!text);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:text', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:text', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         setButtonText(e.value);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:icon', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:icon', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var icon = e.value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var prefix = self.classPrefix;
-        self.settings.icon = icon;
-        icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';
-        var btnElm = self.getEl().firstChild;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var prefix = self$$1.classPrefix;
+        self$$1.settings.icon = icon;
+        icon = icon ? prefix + 'ico ' + prefix + 'i-' + self$$1.settings.icon : '';
+        var btnElm = self$$1.getEl().firstChild;
</ins><span class="cx" style="display: block; padding: 0 10px">         var iconElm = btnElm.getElementsByTagName('i')[0];
</span><span class="cx" style="display: block; padding: 0 10px">         if (icon) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (!iconElm || iconElm !== btnElm.firstChild) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5172,9 +5013,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         } else if (iconElm) {
</span><span class="cx" style="display: block; padding: 0 10px">           btnElm.removeChild(iconElm);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        setButtonText(self.state.get('text'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        setButtonText(self$$1.state.get('text'));
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5253,18 +5094,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">       checked: false
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      self.on('click mousedown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      self$$1.on('click mousedown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('click', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('click', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!self.disabled()) {
-          self.checked(!self.checked());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!self$$1.disabled()) {
+          self$$1.checked(!self$$1.checked());
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.checked(self.settings.checked);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.checked(self$$1.settings.checked);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     checked: function (state) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!arguments.length) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5280,31 +5121,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.checked(state);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, id = self._id, prefix = self.classPrefix;
-      return '<div id="' + id + '" class="' + self.classes + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + '<span id="' + id + '-al" class="' + prefix + 'label">' + self.encode(self.state.get('text')) + '</span>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;
+      return '<div id="' + id + '" class="' + self$$1.classes + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + '<span id="' + id + '-al" class="' + prefix + 'label">' + self$$1.encode(self$$1.state.get('text')) + '</span>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       function checked(state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.toggle('checked', state);
-        self.aria('checked', state);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.toggle('checked', state);
+        self$$1.aria('checked', state);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:text', function (e) {
-        self.getEl('al').firstChild.data = self.translate(e.value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:text', function (e) {
+        self$$1.getEl('al').firstChild.data = self$$1.translate(e.value);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:checked change:value', function (e) {
-        self.fire('change');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:checked change:value', function (e) {
+        self$$1.fire('change');
</ins><span class="cx" style="display: block; padding: 0 10px">         checked(e.value);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:icon', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:icon', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var icon = e.value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var prefix = self.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var prefix = self$$1.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (typeof icon === 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return self.settings.icon;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return self$$1.settings.icon;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.settings.icon = icon;
-        icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';
-        var btnElm = self.getEl().firstChild;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.settings.icon = icon;
+        icon = icon ? prefix + 'ico ' + prefix + 'i-' + self$$1.settings.icon : '';
+        var btnElm = self$$1.getEl().firstChild;
</ins><span class="cx" style="display: block; padding: 0 10px">         var iconElm = btnElm.getElementsByTagName('i')[0];
</span><span class="cx" style="display: block; padding: 0 10px">         if (icon) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (!iconElm || iconElm !== btnElm.firstChild) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5316,10 +5157,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">           btnElm.removeChild(iconElm);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.state.get('checked')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.state.get('checked')) {
</ins><span class="cx" style="display: block; padding: 0 10px">         checked(true);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5327,29 +5168,29 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var ComboBox = Widget.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      settings = self.settings;
-      self.classes.add('combobox');
-      self.subinput = true;
-      self.ariaTarget = 'inp';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      settings = self$$1.settings;
+      self$$1.classes.add('combobox');
+      self$$1.subinput = true;
+      self$$1.ariaTarget = 'inp';
</ins><span class="cx" style="display: block; padding: 0 10px">       settings.menu = settings.menu || settings.values;
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.menu) {
</span><span class="cx" style="display: block; padding: 0 10px">         settings.icon = 'caret';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('click', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('click', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var elm = e.target;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var root = self.getEl();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var root = self$$1.getEl();
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!global$9.contains(root, elm) && elm !== root) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         while (elm && elm !== root) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (elm.id && elm.id.indexOf('-open') !== -1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.fire('action');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.fire('action');
</ins><span class="cx" style="display: block; padding: 0 10px">             if (settings.menu) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              self.showMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              self$$1.showMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">               if (e.aria) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                self.menu.items()[0].focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                self$$1.menu.items()[0].focus();
</ins><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5356,33 +5197,33 @@
</span><span class="cx" style="display: block; padding: 0 10px">           elm = elm.parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('keydown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('keydown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var rootControl;
</span><span class="cx" style="display: block; padding: 0 10px">         if (e.keyCode === 13 && e.target.nodeName === 'INPUT') {
</span><span class="cx" style="display: block; padding: 0 10px">           e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.parents().reverse().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.parents().reverse().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (ctrl.toJSON) {
</span><span class="cx" style="display: block; padding: 0 10px">               rootControl = ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">               return false;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.fire('submit', { data: rootControl.toJSON() });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.fire('submit', { data: rootControl.toJSON() });
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('keyup', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('keyup', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (e.target.nodeName === 'INPUT') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var oldValue = self.state.get('value');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var oldValue = self$$1.state.get('value');
</ins><span class="cx" style="display: block; padding: 0 10px">           var newValue = e.target.value;
</span><span class="cx" style="display: block; padding: 0 10px">           if (newValue !== oldValue) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.state.set('value', newValue);
-            self.fire('autocomplete', e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.state.set('value', newValue);
+            self$$1.fire('autocomplete', e);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('mouseover', function (e) {
-        var tooltip = self.tooltip().moveTo(-65535);
-        if (self.statusLevel() && e.target.className.indexOf(self.classPrefix + 'status') !== -1) {
-          var statusMessage = self.statusMessage() || 'Ok';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('mouseover', function (e) {
+        var tooltip = self$$1.tooltip().moveTo(-65535);
+        if (self$$1.statusLevel() && e.target.className.indexOf(self$$1.classPrefix + 'status') !== -1) {
+          var statusMessage = self$$1.statusMessage() || 'Ok';
</ins><span class="cx" style="display: block; padding: 0 10px">           var rel = tooltip.text(statusMessage).show().testMoveRel(e.target, [
</span><span class="cx" style="display: block; padding: 0 10px">             'bc-tc',
</span><span class="cx" style="display: block; padding: 0 10px">             'bc-tl',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5408,10 +5249,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.state.get('statusMessage');
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     showMenu: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var menu;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.menu) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.menu) {
</ins><span class="cx" style="display: block; padding: 0 10px">         menu = settings.menu || [];
</span><span class="cx" style="display: block; padding: 0 10px">         if (menu.length) {
</span><span class="cx" style="display: block; padding: 0 10px">           menu = {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5421,32 +5262,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           menu.type = menu.type || 'menu';
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu = global$4.create(menu).parent(self).renderTo(self.getContainerElm());
-        self.fire('createmenu');
-        self.menu.reflow();
-        self.menu.on('cancel', function (e) {
-          if (e.control === self.menu) {
-            self.focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu = global$4.create(menu).parent(self$$1).renderTo(self$$1.getContainerElm());
+        self$$1.fire('createmenu');
+        self$$1.menu.reflow();
+        self$$1.menu.on('cancel', function (e) {
+          if (e.control === self$$1.menu) {
+            self$$1.focus();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.on('show hide', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.on('show hide', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.control.items().each(function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            ctrl.active(ctrl.value() === self.value());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            ctrl.active(ctrl.value() === self$$1.value());
</ins><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }).fire('show');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.on('select', function (e) {
-          self.value(e.control.value());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.on('select', function (e) {
+          self$$1.value(e.control.value());
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.on('focusin', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.on('focusin', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (e.target.tagName.toUpperCase() === 'INPUT') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.menu.hide();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.menu.hide();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.aria('expanded', true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.aria('expanded', true);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.show();
-      self.menu.layoutRect({ w: self.layoutRect().w });
-      self.menu.moveRel(self.getEl(), self.isRtl() ? [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.show();
+      self$$1.menu.layoutRect({ w: self$$1.layoutRect().w });
+      self$$1.menu.moveRel(self$$1.getEl(), self$$1.isRtl() ? [
</ins><span class="cx" style="display: block; padding: 0 10px">         'br-tr',
</span><span class="cx" style="display: block; padding: 0 10px">         'tr-br'
</span><span class="cx" style="display: block; padding: 0 10px">       ] : [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5458,10 +5299,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this.getEl('inp').focus();
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     repaint: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, elm = self.getEl(), openElm = self.getEl('open'), rect = self.layoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, elm = self$$1.getEl(), openElm = self$$1.getEl('open'), rect = self$$1.layoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">       var width, lineHeight, innerPadding = 0;
</span><span class="cx" style="display: block; padding: 0 10px">       var inputElm = elm.firstChild;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.statusLevel() && self.statusLevel() !== 'none') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.statusLevel() && self$$1.statusLevel() !== 'none') {
</ins><span class="cx" style="display: block; padding: 0 10px">         innerPadding = parseInt(funcs.getRuntimeStyle(inputElm, 'padding-right'), 10) - parseInt(funcs.getRuntimeStyle(inputElm, 'padding-left'), 10);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (openElm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5471,26 +5312,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var doc = document;
</span><span class="cx" style="display: block; padding: 0 10px">       if (doc.all && (!doc.documentMode || doc.documentMode <= 8)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        lineHeight = self.layoutRect().h - 2 + 'px';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        lineHeight = self$$1.layoutRect().h - 2 + 'px';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       global$9(inputElm).css({
</span><span class="cx" style="display: block; padding: 0 10px">         width: width - innerPadding,
</span><span class="cx" style="display: block; padding: 0 10px">         lineHeight: lineHeight
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super();
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super();
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       global$9(this.getEl('inp')).on('change', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.state.set('value', e.target.value);
-        self.fire('change', e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.state.set('value', e.target.value);
+        self$$1.fire('change', e);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix;
-      var value = self.state.get('value') || '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, id = self$$1._id, settings = self$$1.settings, prefix = self$$1.classPrefix;
+      var value = self$$1.state.get('value') || '';
</ins><span class="cx" style="display: block; padding: 0 10px">       var icon, text, openBtnHtml = '', extraAttrs = '', statusHtml = '';
</span><span class="cx" style="display: block; padding: 0 10px">       if ('spellcheck' in settings) {
</span><span class="cx" style="display: block; padding: 0 10px">         extraAttrs += ' spellcheck="' + settings.spellcheck + '"';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5505,7 +5346,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         extraAttrs += ' type="' + settings.subtype + '"';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       statusHtml = '<i id="' + id + '-status" class="mce-status mce-ico" style="display: none"></i>';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.disabled()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.disabled()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         extraAttrs += ' disabled="disabled"';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       icon = settings.icon;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5512,12 +5353,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (icon && icon !== 'caret') {
</span><span class="cx" style="display: block; padding: 0 10px">         icon = prefix + 'ico ' + prefix + 'i-' + settings.icon;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      text = self.state.get('text');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      text = self$$1.state.get('text');
</ins><span class="cx" style="display: block; padding: 0 10px">       if (icon || text) {
</span><span class="cx" style="display: block; padding: 0 10px">         openBtnHtml = '<div id="' + id + '-open" class="' + prefix + 'btn ' + prefix + 'open" tabIndex="-1" role="button">' + '<button id="' + id + '-action" type="button" hidefocus="1" tabindex="-1">' + (icon !== 'caret' ? '<i class="' + icon + '"></i>' : '<i class="' + prefix + 'caret"></i>') + (text ? (icon ? ' ' : '') + text : '') + '</button>' + '</div>';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('has-open');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('has-open');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return '<div id="' + id + '" class="' + self.classes + '">' + '<input id="' + id + '-inp" class="' + prefix + 'textbox" value="' + self.encode(value, false) + '" hidefocus="1"' + extraAttrs + ' placeholder="' + self.encode(settings.placeholder) + '" />' + statusHtml + openBtnHtml + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return '<div id="' + id + '" class="' + self$$1.classes + '">' + '<input id="' + id + '-inp" class="' + prefix + 'textbox" value="' + self$$1.encode(value, false) + '" hidefocus="1"' + extraAttrs + ' placeholder="' + self$$1.encode(settings.placeholder) + '" />' + statusHtml + openBtnHtml + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     value: function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (arguments.length) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5530,30 +5371,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.state.get('value');
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     showAutoComplete: function (items, term) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (items.length === 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var insert = function (value, title) {
</span><span class="cx" style="display: block; padding: 0 10px">         return function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.fire('selectitem', {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.fire('selectitem', {
</ins><span class="cx" style="display: block; padding: 0 10px">             title: title,
</span><span class="cx" style="display: block; padding: 0 10px">             value: value
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.menu) {
-        self.menu.items().remove();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.menu) {
+        self$$1.menu.items().remove();
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu = global$4.create({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu = global$4.create({
</ins><span class="cx" style="display: block; padding: 0 10px">           type: 'menu',
</span><span class="cx" style="display: block; padding: 0 10px">           classes: 'combobox-menu',
</span><span class="cx" style="display: block; padding: 0 10px">           layout: 'flow'
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        }).parent(self).renderTo();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        }).parent(self$$1).renderTo();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       global$2.each(items, function (item) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.add({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.add({
</ins><span class="cx" style="display: block; padding: 0 10px">           text: item.title,
</span><span class="cx" style="display: block; padding: 0 10px">           url: item.previewUrl,
</span><span class="cx" style="display: block; padding: 0 10px">           match: term,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5561,28 +5402,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">           onclick: insert(item.value, item.title)
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.renderNew();
-      self.hideMenu();
-      self.menu.on('cancel', function (e) {
-        if (e.control.parent() === self.menu) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.renderNew();
+      self$$1.hideMenu();
+      self$$1.menu.on('cancel', function (e) {
+        if (e.control.parent() === self$$1.menu) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.stopPropagation();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.focus();
-          self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.focus();
+          self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.on('select', function () {
-        self.focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.on('select', function () {
+        self$$1.focus();
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var maxW = self.layoutRect().w;
-      self.menu.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var maxW = self$$1.layoutRect().w;
+      self$$1.menu.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">         w: maxW,
</span><span class="cx" style="display: block; padding: 0 10px">         minW: 0,
</span><span class="cx" style="display: block; padding: 0 10px">         maxW: maxW
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.repaint();
-      self.menu.reflow();
-      self.menu.show();
-      self.menu.moveRel(self.getEl(), self.isRtl() ? [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.repaint();
+      self$$1.menu.reflow();
+      self$$1.menu.show();
+      self$$1.menu.moveRel(self$$1.getEl(), self$$1.isRtl() ? [
</ins><span class="cx" style="display: block; padding: 0 10px">         'br-tr',
</span><span class="cx" style="display: block; padding: 0 10px">         'tr-br'
</span><span class="cx" style="display: block; padding: 0 10px">       ] : [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5596,32 +5437,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.state.on('change:value', function (e) {
-        if (self.getEl('inp').value !== e.value) {
-          self.getEl('inp').value = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.state.on('change:value', function (e) {
+        if (self$$1.getEl('inp').value !== e.value) {
+          self$$1.getEl('inp').value = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:disabled', function (e) {
-        self.getEl('inp').disabled = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:disabled', function (e) {
+        self$$1.getEl('inp').disabled = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:statusLevel', function (e) {
-        var statusIconElm = self.getEl('status');
-        var prefix = self.classPrefix, value = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:statusLevel', function (e) {
+        var statusIconElm = self$$1.getEl('status');
+        var prefix = self$$1.classPrefix, value = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">         funcs.css(statusIconElm, 'display', value === 'none' ? 'none' : '');
</span><span class="cx" style="display: block; padding: 0 10px">         funcs.toggleClass(statusIconElm, prefix + 'i-checkmark', value === 'ok');
</span><span class="cx" style="display: block; padding: 0 10px">         funcs.toggleClass(statusIconElm, prefix + 'i-warning', value === 'warn');
</span><span class="cx" style="display: block; padding: 0 10px">         funcs.toggleClass(statusIconElm, prefix + 'i-error', value === 'error');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.toggle('has-status', value !== 'none');
-        self.repaint();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.toggle('has-status', value !== 'none');
+        self$$1.repaint();
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      funcs.on(self.getEl('status'), 'mouseleave', function () {
-        self.tooltip().hide();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      funcs.on(self$$1.getEl('status'), 'mouseleave', function () {
+        self$$1.tooltip().hide();
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('cancel', function (e) {
-        if (self.menu && self.menu.visible()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('cancel', function (e) {
+        if (self$$1.menu && self$$1.menu.visible()) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.stopPropagation();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       var focusIdx = function (idx, menu) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5629,20 +5470,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">           menu.items().eq(idx)[0].focus();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('keydown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('keydown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var keyCode = e.keyCode;
</span><span class="cx" style="display: block; padding: 0 10px">         if (e.target.nodeName === 'INPUT') {
</span><span class="cx" style="display: block; padding: 0 10px">           if (keyCode === global$13.DOWN) {
</span><span class="cx" style="display: block; padding: 0 10px">             e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.fire('autocomplete');
-            focusIdx(0, self.menu);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.fire('autocomplete');
+            focusIdx(0, self$$1.menu);
</ins><span class="cx" style="display: block; padding: 0 10px">           } else if (keyCode === global$13.UP) {
</span><span class="cx" style="display: block; padding: 0 10px">             e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            focusIdx(-1, self.menu);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            focusIdx(-1, self$$1.menu);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       global$9(this.getEl('inp')).off();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6251,7 +6092,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">     unique$1++;
</span><span class="cx" style="display: block; padding: 0 10px">     return prefix + '_' + random + unique$1 + String(time);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8smsfouyjfuw8sjg = { generate: generate };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var fromHtml = function (html, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var doc = scope || document;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6276,12 +6116,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fromDom = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (node === null || node === undefined)
</span><span class="cx" style="display: block; padding: 0 10px">       throw new Error('Node cannot be null or undefined');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return { dom: $_cun2p5t7jfuw8scg.constant(node) };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return { dom: constant(node) };
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var fromPoint = function (doc, x, y) {
-    return Option.from(doc.dom().elementFromPoint(x, y)).map(fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var fromPoint = function (docElm, x, y) {
+    var doc = docElm.dom();
+    return Option.from(doc.elementFromPoint(x, y)).map(fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5ny1kxuzjfuw8sjh = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Element$$1 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     fromHtml: fromHtml,
</span><span class="cx" style="display: block; padding: 0 10px">     fromTag: fromTag,
</span><span class="cx" style="display: block; padding: 0 10px">     fromText: fromText,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6293,28 +6134,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var called = false;
</span><span class="cx" style="display: block; padding: 0 10px">     var r;
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var args = [];
+      for (var _i = 0; _i < arguments.length; _i++) {
+        args[_i] = arguments[_i];
+      }
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!called) {
</span><span class="cx" style="display: block; padding: 0 10px">         called = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        r = f.apply(null, arguments);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        r = f.apply(null, args);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return r;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bbc6ssv3jfuw8sjw = { cached: cached };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4uam9lv5jfuw8sjy = {
-    ATTRIBUTE: 2,
-    CDATA_SECTION: 4,
-    COMMENT: 8,
-    DOCUMENT: 9,
-    DOCUMENT_TYPE: 10,
-    DOCUMENT_FRAGMENT: 11,
-    ELEMENT: 1,
-    TEXT: 3,
-    PROCESSING_INSTRUCTION: 7,
-    ENTITY_REFERENCE: 5,
-    ENTITY: 6,
-    NOTATION: 12
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_vi4lpw5jjgwefvz = {
+    ATTRIBUTE: Node.ATTRIBUTE_NODE,
+    CDATA_SECTION: Node.CDATA_SECTION_NODE,
+    COMMENT: Node.COMMENT_NODE,
+    DOCUMENT: Node.DOCUMENT_NODE,
+    DOCUMENT_TYPE: Node.DOCUMENT_TYPE_NODE,
+    DOCUMENT_FRAGMENT: Node.DOCUMENT_FRAGMENT_NODE,
+    ELEMENT: Node.ELEMENT_NODE,
+    TEXT: Node.TEXT_NODE,
+    PROCESSING_INSTRUCTION: Node.PROCESSING_INSTRUCTION_NODE,
+    ENTITY_REFERENCE: Node.ENTITY_REFERENCE_NODE,
+    ENTITY: Node.ENTITY_NODE,
+    NOTATION: Node.NOTATION_NODE
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var name = function (element) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6333,12 +6177,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isComment = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return type(element) === $_4uam9lv5jfuw8sjy.COMMENT || name(element) === '#comment';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return type(element) === $_vi4lpw5jjgwefvz.COMMENT || name(element) === '#comment';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isElement = isType$1($_4uam9lv5jfuw8sjy.ELEMENT);
-  var isText = isType$1($_4uam9lv5jfuw8sjy.TEXT);
-  var isDocument = isType$1($_4uam9lv5jfuw8sjy.DOCUMENT);
-  var $_a011ldv4jfuw8sjx = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isElement = isType$1($_vi4lpw5jjgwefvz.ELEMENT);
+  var isText = isType$1($_vi4lpw5jjgwefvz.TEXT);
+  var isDocument = isType$1($_vi4lpw5jjgwefvz.DOCUMENT);
+  var $_8bzgjvw4jjgwefvy = {
</ins><span class="cx" style="display: block; padding: 0 10px">     name: name,
</span><span class="cx" style="display: block; padding: 0 10px">     type: type,
</span><span class="cx" style="display: block; padding: 0 10px">     value: value,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6349,25 +6193,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var inBody = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var dom = $_a011ldv4jfuw8sjx.isText(element) ? element.dom().parentNode : element.dom();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var dom = $_8bzgjvw4jjgwefvy.isText(element) ? element.dom().parentNode : element.dom();
</ins><span class="cx" style="display: block; padding: 0 10px">     return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var body = $_bbc6ssv3jfuw8sjw.cached(function () {
-    return getBody($_5ny1kxuzjfuw8sjh.fromDom(document));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var body = cached(function () {
+    return getBody(Element$$1.fromDom(document));
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   var getBody = function (doc) {
</span><span class="cx" style="display: block; padding: 0 10px">     var body = doc.dom().body;
</span><span class="cx" style="display: block; padding: 0 10px">     if (body === null || body === undefined)
</span><span class="cx" style="display: block; padding: 0 10px">       throw 'Body is not available yet';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5ny1kxuzjfuw8sjh.fromDom(body);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(body);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_c59f72v2jfuw8sjt = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_g7jljiw2jjgwefvu = {
</ins><span class="cx" style="display: block; padding: 0 10px">     body: body,
</span><span class="cx" style="display: block; padding: 0 10px">     getBody: getBody,
</span><span class="cx" style="display: block; padding: 0 10px">     inBody: inBody
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function Immutable () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Immutable = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     var fields = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 0; _i < arguments.length; _i++) {
</span><span class="cx" style="display: block; padding: 0 10px">       fields[_i] = arguments[_i];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6381,173 +6225,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var struct = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_anxm1mtajfuw8sct.each(fields, function (name, i) {
-        struct[name] = $_cun2p5t7jfuw8scg.constant(values[i]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(fields, function (name, i) {
+        struct[name] = constant(values[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return struct;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  }
-
-  var keys = function () {
-    var fastKeys = Object.keys;
-    var slowKeys = function (o) {
-      var r = [];
-      for (var i in o) {
-        if (o.hasOwnProperty(i)) {
-          r.push(i);
-        }
-      }
-      return r;
-    };
-    return fastKeys === undefined ? slowKeys : fastKeys;
-  }();
-  var each$1 = function (obj, f) {
-    var props = keys(obj);
-    for (var k = 0, len = props.length; k < len; k++) {
-      var i = props[k];
-      var x = obj[i];
-      f(x, i, obj);
-    }
</del><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var objectMap = function (obj, f) {
-    return tupleMap(obj, function (x, i, obj) {
-      return {
-        k: i,
-        v: f(x, i, obj)
-      };
-    });
-  };
-  var tupleMap = function (obj, f) {
-    var r = {};
-    each$1(obj, function (x, i) {
-      var tuple = f(x, i, obj);
-      r[tuple.k] = tuple.v;
-    });
-    return r;
-  };
-  var bifilter = function (obj, pred) {
-    var t = {};
-    var f = {};
-    each$1(obj, function (x, i) {
-      var branch = pred(x, i) ? t : f;
-      branch[i] = x;
-    });
-    return {
-      t: t,
-      f: f
-    };
-  };
-  var mapToArray = function (obj, f) {
-    var r = [];
-    each$1(obj, function (value, name) {
-      r.push(f(value, name));
-    });
-    return r;
-  };
-  var find$1 = function (obj, pred) {
-    var props = keys(obj);
-    for (var k = 0, len = props.length; k < len; k++) {
-      var i = props[k];
-      var x = obj[i];
-      if (pred(x, i, obj)) {
-        return Option.some(x);
-      }
-    }
-    return Option.none();
-  };
-  var values = function (obj) {
-    return mapToArray(obj, function (v) {
-      return v;
-    });
-  };
-  var size = function (obj) {
-    return values(obj).length;
-  };
-  var $_5cwil8vajfuw8skk = {
-    bifilter: bifilter,
-    each: each$1,
-    map: objectMap,
-    mapToArray: mapToArray,
-    tupleMap: tupleMap,
-    find: find$1,
-    keys: keys,
-    values: values,
-    size: size
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var sort$1 = function (arr) {
-    return arr.slice(0).sort();
-  };
-  var reqMessage = function (required, keys) {
-    throw new Error('All required keys (' + sort$1(required).join(', ') + ') were not specified. Specified keys were: ' + sort$1(keys).join(', ') + '.');
-  };
-  var unsuppMessage = function (unsupported) {
-    throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', '));
-  };
-  var validateStrArr = function (label, array) {
-    if (!$_e8diihtbjfuw8scy.isArray(array))
-      throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');
-    $_anxm1mtajfuw8sct.each(array, function (a) {
-      if (!$_e8diihtbjfuw8scy.isString(a))
-        throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');
-    });
-  };
-  var invalidTypeMessage = function (incorrect, type) {
-    throw new Error('All values need to be of type: ' + type + '. Keys (' + sort$1(incorrect).join(', ') + ') were not.');
-  };
-  var checkDupes = function (everything) {
-    var sorted = sort$1(everything);
-    var dupe = $_anxm1mtajfuw8sct.find(sorted, function (s, i) {
-      return i < sorted.length - 1 && s === sorted[i + 1];
-    });
-    dupe.each(function (d) {
-      throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');
-    });
-  };
-  var $_2epjibvbjfuw8skm = {
-    sort: sort$1,
-    reqMessage: reqMessage,
-    unsuppMessage: unsuppMessage,
-    validateStrArr: validateStrArr,
-    invalidTypeMessage: invalidTypeMessage,
-    checkDupes: checkDupes
-  };
-
-  function MixedBag (required, optional) {
-    var everything = required.concat(optional);
-    if (everything.length === 0)
-      throw new Error('You must specify at least one required or optional field.');
-    $_2epjibvbjfuw8skm.validateStrArr('required', required);
-    $_2epjibvbjfuw8skm.validateStrArr('optional', optional);
-    $_2epjibvbjfuw8skm.checkDupes(everything);
-    return function (obj) {
-      var keys = $_5cwil8vajfuw8skk.keys(obj);
-      var allReqd = $_anxm1mtajfuw8sct.forall(required, function (req) {
-        return $_anxm1mtajfuw8sct.contains(keys, req);
-      });
-      if (!allReqd)
-        $_2epjibvbjfuw8skm.reqMessage(required, keys);
-      var unsupported = $_anxm1mtajfuw8sct.filter(keys, function (key) {
-        return !$_anxm1mtajfuw8sct.contains(everything, key);
-      });
-      if (unsupported.length > 0)
-        $_2epjibvbjfuw8skm.unsuppMessage(unsupported);
-      var r = {};
-      $_anxm1mtajfuw8sct.each(required, function (req) {
-        r[req] = $_cun2p5t7jfuw8scg.constant(obj[req]);
-      });
-      $_anxm1mtajfuw8sct.each(optional, function (opt) {
-        r[opt] = $_cun2p5t7jfuw8scg.constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none());
-      });
-      return r;
-    };
-  }
-
-  var $_1qtvc5v7jfuw8ske = {
-    immutable: Immutable,
-    immutableBag: MixedBag
-  };
-
</del><span class="cx" style="display: block; padding: 0 10px">   var toArray = function (target, f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var r = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var recurse = function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6560,12 +6244,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     } while (cur.isSome());
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ds6cwivcjfuw8sko = { toArray: toArray };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5edc27wcjjgwefwz = { toArray: toArray };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global$15 = typeof window !== 'undefined' ? window : Function('return this;')();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Global = typeof window !== 'undefined' ? window : Function('return this;')();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var path = function (parts, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var o = scope !== undefined && scope !== null ? scope : global$15;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var o = scope !== undefined && scope !== null ? scope : Global;
</ins><span class="cx" style="display: block; padding: 0 10px">     for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
</span><span class="cx" style="display: block; padding: 0 10px">       o = o[parts[i]];
</span><span class="cx" style="display: block; padding: 0 10px">     return o;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6574,30 +6258,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var parts = p.split('.');
</span><span class="cx" style="display: block; padding: 0 10px">     return path(parts, scope);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var step = function (o, part) {
-    if (o[part] === undefined || o[part] === null)
-      o[part] = {};
-    return o[part];
-  };
-  var forge = function (parts, target) {
-    var o = target !== undefined ? target : global$15;
-    for (var i = 0; i < parts.length; ++i)
-      o = step(o, parts[i]);
-    return o;
-  };
-  var namespace = function (name, target) {
-    var parts = name.split('.');
-    return forge(parts, target);
-  };
-  var $_3zodh3vgjfuw8slc = {
-    path: path,
-    resolve: resolve,
-    forge: forge,
-    namespace: namespace
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var unsafe = function (name, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_3zodh3vgjfuw8slc.resolve(name, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return resolve(name, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getOrDie = function (name, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var actual = unsafe(name, scope);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6605,10 +6268,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       throw name + ' not available on this browser';
</span><span class="cx" style="display: block; padding: 0 10px">     return actual;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_b2mlbvvfjfuw8sl9 = { getOrDie: getOrDie };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_eggz6rwfjjgwefxb = { getOrDie: getOrDie };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var node = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_b2mlbvvfjfuw8sl9.getOrDie('Node');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_eggz6rwfjjgwefxb.getOrDie('Node');
</ins><span class="cx" style="display: block; padding: 0 10px">     return f;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var compareDocumentPosition = function (a, b, match) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6620,7 +6283,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var documentPositionContainedBy = function (a, b) {
</span><span class="cx" style="display: block; padding: 0 10px">     return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9ssw9yvejfuw8sl8 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d3tk25wejjgwefxa = {
</ins><span class="cx" style="display: block; padding: 0 10px">     documentPositionPreceding: documentPositionPreceding,
</span><span class="cx" style="display: block; padding: 0 10px">     documentPositionContainedBy: documentPositionContainedBy
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6660,7 +6323,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       minor: minor
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cb8wvsvljfuw8slm = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_f8xw27wljjgwefxn = {
</ins><span class="cx" style="display: block; padding: 0 10px">     nu: nu,
</span><span class="cx" style="display: block; padding: 0 10px">     detect: detect,
</span><span class="cx" style="display: block; padding: 0 10px">     unknown: unknown
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6680,7 +6343,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var unknown$1 = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return nu$1({
</span><span class="cx" style="display: block; padding: 0 10px">       current: undefined,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      version: $_cb8wvsvljfuw8slm.unknown()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      version: $_f8xw27wljjgwefxn.unknown()
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nu$1 = function (info) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6697,15 +6360,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       isSafari: isBrowser(safari, current)
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5l1g9dvkjfuw8slj = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6jz8s6wkjjgwefxk = {
</ins><span class="cx" style="display: block; padding: 0 10px">     unknown: unknown$1,
</span><span class="cx" style="display: block; padding: 0 10px">     nu: nu$1,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    edge: $_cun2p5t7jfuw8scg.constant(edge),
-    chrome: $_cun2p5t7jfuw8scg.constant(chrome),
-    ie: $_cun2p5t7jfuw8scg.constant(ie),
-    opera: $_cun2p5t7jfuw8scg.constant(opera),
-    firefox: $_cun2p5t7jfuw8scg.constant(firefox),
-    safari: $_cun2p5t7jfuw8scg.constant(safari)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    edge: constant(edge),
+    chrome: constant(chrome),
+    ie: constant(ie),
+    opera: constant(opera),
+    firefox: constant(firefox),
+    safari: constant(safari)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var windows$1 = 'Windows';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6723,7 +6386,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var unknown$2 = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return nu$2({
</span><span class="cx" style="display: block; padding: 0 10px">       current: undefined,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      version: $_cb8wvsvljfuw8slm.unknown()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      version: $_f8xw27wljjgwefxn.unknown()
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nu$2 = function (info) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6741,16 +6404,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       isFreeBSD: isOS(freebsd, current)
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ej30zjvmjfuw8sln = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ac4rxfwmjjgwefxp = {
</ins><span class="cx" style="display: block; padding: 0 10px">     unknown: unknown$2,
</span><span class="cx" style="display: block; padding: 0 10px">     nu: nu$2,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    windows: $_cun2p5t7jfuw8scg.constant(windows$1),
-    ios: $_cun2p5t7jfuw8scg.constant(ios),
-    android: $_cun2p5t7jfuw8scg.constant(android),
-    linux: $_cun2p5t7jfuw8scg.constant(linux),
-    osx: $_cun2p5t7jfuw8scg.constant(osx),
-    solaris: $_cun2p5t7jfuw8scg.constant(solaris),
-    freebsd: $_cun2p5t7jfuw8scg.constant(freebsd)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    windows: constant(windows$1),
+    ios: constant(ios),
+    android: constant(android),
+    linux: constant(linux),
+    osx: constant(osx),
+    solaris: constant(solaris),
+    freebsd: constant(freebsd)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function DeviceType (os, browser, userAgent) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6763,26 +6426,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var isPhone = isTouch && !isTablet;
</span><span class="cx" style="display: block; padding: 0 10px">     var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      isiPad: $_cun2p5t7jfuw8scg.constant(isiPad),
-      isiPhone: $_cun2p5t7jfuw8scg.constant(isiPhone),
-      isTablet: $_cun2p5t7jfuw8scg.constant(isTablet),
-      isPhone: $_cun2p5t7jfuw8scg.constant(isPhone),
-      isTouch: $_cun2p5t7jfuw8scg.constant(isTouch),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      isiPad: constant(isiPad),
+      isiPhone: constant(isiPhone),
+      isTablet: constant(isTablet),
+      isPhone: constant(isPhone),
+      isTouch: constant(isTouch),
</ins><span class="cx" style="display: block; padding: 0 10px">       isAndroid: os.isAndroid,
</span><span class="cx" style="display: block; padding: 0 10px">       isiOS: os.isiOS,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      isWebView: $_cun2p5t7jfuw8scg.constant(iOSwebview)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      isWebView: constant(iOSwebview)
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var detect$1 = function (candidates, userAgent) {
</span><span class="cx" style="display: block; padding: 0 10px">     var agent = String(userAgent).toLowerCase();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.find(candidates, function (candidate) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return find(candidates, function (candidate) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return candidate.search(agent);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var detectBrowser = function (browsers, userAgent) {
</span><span class="cx" style="display: block; padding: 0 10px">     return detect$1(browsers, userAgent).map(function (browser) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var version = $_cb8wvsvljfuw8slm.detect(browser.versionRegexes, userAgent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var version = $_f8xw27wljjgwefxn.detect(browser.versionRegexes, userAgent);
</ins><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         current: browser.name,
</span><span class="cx" style="display: block; padding: 0 10px">         version: version
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6791,7 +6454,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var detectOs = function (oses, userAgent) {
</span><span class="cx" style="display: block; padding: 0 10px">     return detect$1(oses, userAgent).map(function (os) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var version = $_cb8wvsvljfuw8slm.detect(os.versionRegexes, userAgent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var version = $_f8xw27wljjgwefxn.detect(os.versionRegexes, userAgent);
</ins><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         current: os.name,
</span><span class="cx" style="display: block; padding: 0 10px">         version: version
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6798,123 +6461,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1rd3rvvojfuw8slu = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d66zk7wojjgwefxw = {
</ins><span class="cx" style="display: block; padding: 0 10px">     detectBrowser: detectBrowser,
</span><span class="cx" style="display: block; padding: 0 10px">     detectOs: detectOs
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var addToStart = function (str, prefix) {
-    return prefix + str;
-  };
-  var addToEnd = function (str, suffix) {
-    return str + suffix;
-  };
-  var removeFromStart = function (str, numChars) {
-    return str.substring(numChars);
-  };
-  var removeFromEnd = function (str, numChars) {
-    return str.substring(0, str.length - numChars);
-  };
-  var $_56mt3mvrjfuw8sm6 = {
-    addToStart: addToStart,
-    addToEnd: addToEnd,
-    removeFromStart: removeFromStart,
-    removeFromEnd: removeFromEnd
-  };
-
-  var first = function (str, count) {
-    return str.substr(0, count);
-  };
-  var last$1 = function (str, count) {
-    return str.substr(str.length - count, str.length);
-  };
-  var head$1 = function (str) {
-    return str === '' ? Option.none() : Option.some(str.substr(0, 1));
-  };
-  var tail = function (str) {
-    return str === '' ? Option.none() : Option.some(str.substring(1));
-  };
-  var $_7bobc1vsjfuw8sm7 = {
-    first: first,
-    last: last$1,
-    head: head$1,
-    tail: tail
-  };
-
-  var checkRange = function (str, substr, start) {
-    if (substr === '')
-      return true;
-    if (str.length < substr.length)
-      return false;
-    var x = str.substr(start, start + substr.length);
-    return x === substr;
-  };
-  var supplant = function (str, obj) {
-    var isStringOrNumber = function (a) {
-      var t = typeof a;
-      return t === 'string' || t === 'number';
-    };
-    return str.replace(/\${([^{}]*)}/g, function (a, b) {
-      var value = obj[b];
-      return isStringOrNumber(value) ? value : a;
-    });
-  };
-  var removeLeading = function (str, prefix) {
-    return startsWith(str, prefix) ? $_56mt3mvrjfuw8sm6.removeFromStart(str, prefix.length) : str;
-  };
-  var removeTrailing = function (str, prefix) {
-    return endsWith(str, prefix) ? $_56mt3mvrjfuw8sm6.removeFromEnd(str, prefix.length) : str;
-  };
-  var ensureLeading = function (str, prefix) {
-    return startsWith(str, prefix) ? str : $_56mt3mvrjfuw8sm6.addToStart(str, prefix);
-  };
-  var ensureTrailing = function (str, prefix) {
-    return endsWith(str, prefix) ? str : $_56mt3mvrjfuw8sm6.addToEnd(str, prefix);
-  };
</del><span class="cx" style="display: block; padding: 0 10px">   var contains$1 = function (str, substr) {
</span><span class="cx" style="display: block; padding: 0 10px">     return str.indexOf(substr) !== -1;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var capitalize = function (str) {
-    return $_7bobc1vsjfuw8sm7.head(str).bind(function (head) {
-      return $_7bobc1vsjfuw8sm7.tail(str).map(function (tail) {
-        return head.toUpperCase() + tail;
-      });
-    }).getOr(str);
-  };
-  var startsWith = function (str, prefix) {
-    return checkRange(str, prefix, 0);
-  };
-  var endsWith = function (str, suffix) {
-    return checkRange(str, suffix, str.length - suffix.length);
-  };
-  var trim = function (str) {
-    return str.replace(/^\s+|\s+$/g, '');
-  };
-  var lTrim = function (str) {
-    return str.replace(/^\s+/g, '');
-  };
-  var rTrim = function (str) {
-    return str.replace(/\s+$/g, '');
-  };
-  var $_8evc57vqjfuw8sm4 = {
-    supplant: supplant,
-    startsWith: startsWith,
-    removeLeading: removeLeading,
-    removeTrailing: removeTrailing,
-    ensureLeading: ensureLeading,
-    ensureTrailing: ensureTrailing,
-    endsWith: endsWith,
-    contains: contains$1,
-    trim: trim,
-    lTrim: lTrim,
-    rTrim: rTrim,
-    capitalize: capitalize
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
</span><span class="cx" style="display: block; padding: 0 10px">   var checkContains = function (target) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_8evc57vqjfuw8sm4.contains(uastring, target);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return contains$1(uastring, target);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var browsers = [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6922,7 +6481,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       name: 'Edge',
</span><span class="cx" style="display: block; padding: 0 10px">       versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var monstrosity = $_8evc57vqjfuw8sm4.contains(uastring, 'edge/') && $_8evc57vqjfuw8sm4.contains(uastring, 'chrome') && $_8evc57vqjfuw8sm4.contains(uastring, 'safari') && $_8evc57vqjfuw8sm4.contains(uastring, 'applewebkit');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var monstrosity = contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');
</ins><span class="cx" style="display: block; padding: 0 10px">         return monstrosity;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6933,7 +6492,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         normalVersionRegex
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_8evc57vqjfuw8sm4.contains(uastring, 'chrome') && !$_8evc57vqjfuw8sm4.contains(uastring, 'chromeframe');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6943,7 +6502,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         /.*?rv:([0-9]+)\.([0-9]+).*/
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_8evc57vqjfuw8sm4.contains(uastring, 'msie') || $_8evc57vqjfuw8sm4.contains(uastring, 'trident');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6966,7 +6525,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         /.*?cpu os ([0-9]+)_([0-9]+).*/
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return ($_8evc57vqjfuw8sm4.contains(uastring, 'safari') || $_8evc57vqjfuw8sm4.contains(uastring, 'mobile/')) && $_8evc57vqjfuw8sm4.contains(uastring, 'applewebkit');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   ];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6979,7 +6538,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">       name: 'iOS',
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_8evc57vqjfuw8sm4.contains(uastring, 'iphone') || $_8evc57vqjfuw8sm4.contains(uastring, 'ipad');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       versionRegexes: [
</span><span class="cx" style="display: block; padding: 0 10px">         /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7013,16 +6572,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       versionRegexes: []
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   ];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_60mzbrvpjfuw8sly = {
-    browsers: $_cun2p5t7jfuw8scg.constant(browsers),
-    oses: $_cun2p5t7jfuw8scg.constant(oses)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_frphugwpjjgwefy0 = {
+    browsers: constant(browsers),
+    oses: constant(oses)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var detect$2 = function (userAgent) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var browsers = $_60mzbrvpjfuw8sly.browsers();
-    var oses = $_60mzbrvpjfuw8sly.oses();
-    var browser = $_1rd3rvvojfuw8slu.detectBrowser(browsers, userAgent).fold($_5l1g9dvkjfuw8slj.unknown, $_5l1g9dvkjfuw8slj.nu);
-    var os = $_1rd3rvvojfuw8slu.detectOs(oses, userAgent).fold($_ej30zjvmjfuw8sln.unknown, $_ej30zjvmjfuw8sln.nu);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var browsers = $_frphugwpjjgwefy0.browsers();
+    var oses = $_frphugwpjjgwefy0.oses();
+    var browser = $_d66zk7wojjgwefxw.detectBrowser(browsers, userAgent).fold($_6jz8s6wkjjgwefxk.unknown, $_6jz8s6wkjjgwefxk.nu);
+    var os = $_d66zk7wojjgwefxw.detectOs(oses, userAgent).fold($_ac4rxfwmjjgwefxp.unknown, $_ac4rxfwmjjgwefxp.nu);
</ins><span class="cx" style="display: block; padding: 0 10px">     var deviceType = DeviceType(os, browser, userAgent);
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       browser: browser,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7030,16 +6589,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       deviceType: deviceType
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_486hpkvjjfuw8slh = { detect: detect$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2lmz7fwjjjgwefxj = { detect: detect$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var detect$3 = $_bbc6ssv3jfuw8sjw.cached(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var detect$3 = cached(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     var userAgent = navigator.userAgent;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_486hpkvjjfuw8slh.detect(userAgent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_2lmz7fwjjjgwefxj.detect(userAgent);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cnts0hvijfuw8sle = { detect: detect$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3d6uczwijjgwefxg = { detect: detect$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var ELEMENT = $_4uam9lv5jfuw8sjy.ELEMENT;
-  var DOCUMENT = $_4uam9lv5jfuw8sjy.DOCUMENT;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var ELEMENT = $_vi4lpw5jjgwefvz.ELEMENT;
+  var DOCUMENT = $_vi4lpw5jjgwefvz.DOCUMENT;
</ins><span class="cx" style="display: block; padding: 0 10px">   var is = function (element, selector) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elem = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     if (elem.nodeType !== ELEMENT)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7060,13 +6619,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var all = function (selector, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var base = scope === undefined ? document : scope.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return bypassSelector(base) ? [] : $_anxm1mtajfuw8sct.map(base.querySelectorAll(selector), $_5ny1kxuzjfuw8sjh.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var one = function (selector, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var base = scope === undefined ? document : scope.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map($_5ny1kxuzjfuw8sjh.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cy5apxvtjfuw8sm8 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ofcqhwtjjgwefyb = {
</ins><span class="cx" style="display: block; padding: 0 10px">     all: all,
</span><span class="cx" style="display: block; padding: 0 10px">     is: is,
</span><span class="cx" style="display: block; padding: 0 10px">     one: one
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7079,7 +6638,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return e1.dom().isEqualNode(e2.dom());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var member = function (element, elements) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.exists(elements, $_cun2p5t7jfuw8scg.curry(eq, element));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return exists(elements, curry(eq, element));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var regularContains = function (e1, e2) {
</span><span class="cx" style="display: block; padding: 0 10px">     var d1 = e1.dom(), d2 = e2.dom();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7086,49 +6645,48 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return d1 === d2 ? false : d1.contains(d2);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ieContains = function (e1, e2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ssw9yvejfuw8sl8.documentPositionContainedBy(e1.dom(), e2.dom());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_d3tk25wejjgwefxa.documentPositionContainedBy(e1.dom(), e2.dom());
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var browser = $_cnts0hvijfuw8sle.detect().browser;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var browser = $_3d6uczwijjgwefxg.detect().browser;
</ins><span class="cx" style="display: block; padding: 0 10px">   var contains$2 = browser.isIE() ? ieContains : regularContains;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_22fg4zvdjfuw8skq = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_bdbghwwdjjgwefx0 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     eq: eq,
</span><span class="cx" style="display: block; padding: 0 10px">     isEqualNode: isEqualNode,
</span><span class="cx" style="display: block; padding: 0 10px">     member: member,
</span><span class="cx" style="display: block; padding: 0 10px">     contains: contains$2,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    is: $_cy5apxvtjfuw8sm8.is
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    is: $_ofcqhwtjjgwefyb.is
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var owner = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5ny1kxuzjfuw8sjh.fromDom(element.dom().ownerDocument);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(element.dom().ownerDocument);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var documentElement = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var doc = owner(element);
-    return $_5ny1kxuzjfuw8sjh.fromDom(doc.dom().documentElement);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(element.dom().ownerDocument.documentElement);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var defaultView = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var el = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     var defaultView = el.ownerDocument.defaultView;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5ny1kxuzjfuw8sjh.fromDom(defaultView);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(defaultView);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var parent = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.parentNode).map($_5ny1kxuzjfuw8sjh.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.parentNode).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findIndex$1 = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return parent(element).bind(function (p) {
</span><span class="cx" style="display: block; padding: 0 10px">       var kin = children(p);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_anxm1mtajfuw8sct.findIndex(kin, function (elem) {
-        return $_22fg4zvdjfuw8skq.eq(element, elem);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return findIndex(kin, function (elem) {
+        return $_bdbghwwdjjgwefx0.eq(element, elem);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var parents = function (element, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var stop = $_e8diihtbjfuw8scy.isFunction(isRoot) ? isRoot : $_cun2p5t7jfuw8scg.constant(false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var stop = isFunction(isRoot) ? isRoot : constant(false);
</ins><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     var ret = [];
</span><span class="cx" style="display: block; padding: 0 10px">     while (dom.parentNode !== null && dom.parentNode !== undefined) {
</span><span class="cx" style="display: block; padding: 0 10px">       var rawParent = dom.parentNode;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parent = $_5ny1kxuzjfuw8sjh.fromDom(rawParent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parent = Element$$1.fromDom(rawParent);
</ins><span class="cx" style="display: block; padding: 0 10px">       ret.push(parent);
</span><span class="cx" style="display: block; padding: 0 10px">       if (stop(parent) === true)
</span><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7139,8 +6697,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var siblings = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var filterSelf = function (elements) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_anxm1mtajfuw8sct.filter(elements, function (x) {
-        return !$_22fg4zvdjfuw8skq.eq(element, x);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return filter(elements, function (x) {
+        return !$_bdbghwwdjjgwefx0.eq(element, x);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return parent(element).map(children).map(filterSelf).getOr([]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7147,29 +6705,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var offsetParent = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.offsetParent).map($_5ny1kxuzjfuw8sjh.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.offsetParent).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var prevSibling = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.previousSibling).map($_5ny1kxuzjfuw8sjh.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.previousSibling).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nextSibling = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.nextSibling).map($_5ny1kxuzjfuw8sjh.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.nextSibling).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var prevSiblings = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.reverse($_ds6cwivcjfuw8sko.toArray(element, prevSibling));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return reverse($_5edc27wcjjgwefwz.toArray(element, prevSibling));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nextSiblings = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ds6cwivcjfuw8sko.toArray(element, nextSibling);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_5edc27wcjjgwefwz.toArray(element, nextSibling);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var children = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.map(dom.childNodes, $_5ny1kxuzjfuw8sjh.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(dom.childNodes, Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var child = function (element, index) {
</span><span class="cx" style="display: block; padding: 0 10px">     var children = element.dom().childNodes;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(children[index]).map($_5ny1kxuzjfuw8sjh.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(children[index]).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var firstChild = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return child(element, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7183,12 +6741,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var hasChildNodes = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return element.dom().hasChildNodes();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var spot = $_1qtvc5v7jfuw8ske.immutable('element', 'offset');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var spot = Immutable('element', 'offset');
</ins><span class="cx" style="display: block; padding: 0 10px">   var leaf = function (element, offset) {
</span><span class="cx" style="display: block; padding: 0 10px">     var cs = children(element);
</span><span class="cx" style="display: block; padding: 0 10px">     return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3pu8ohv6jfuw8sk0 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_r7112w6jjgwefw2 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     owner: owner,
</span><span class="cx" style="display: block; padding: 0 10px">     defaultView: defaultView,
</span><span class="cx" style="display: block; padding: 0 10px">     documentElement: documentElement,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7211,20 +6769,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var all$1 = function (predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return descendants($_c59f72v2jfuw8sjt.body(), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return descendants($_g7jljiw2jjgwefvu.body(), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestors = function (scope, predicate, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.filter($_3pu8ohv6jfuw8sk0.parents(scope, isRoot), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter($_r7112w6jjgwefw2.parents(scope, isRoot), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var siblings$1 = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.filter($_3pu8ohv6jfuw8sk0.siblings(scope), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter($_r7112w6jjgwefw2.siblings(scope), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var children$1 = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.filter($_3pu8ohv6jfuw8sk0.children(scope), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter($_r7112w6jjgwefw2.children(scope), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendants = function (scope, predicate) {
</span><span class="cx" style="display: block; padding: 0 10px">     var result = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_anxm1mtajfuw8sct.each($_3pu8ohv6jfuw8sk0.children(scope), function (x) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each($_r7112w6jjgwefw2.children(scope), function (x) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (predicate(x)) {
</span><span class="cx" style="display: block; padding: 0 10px">         result = result.concat([x]);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7232,7 +6790,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return result;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_32ojrxv1jfuw8sjp = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3dx616w1jjgwefvq = {
</ins><span class="cx" style="display: block; padding: 0 10px">     all: all$1,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestors: ancestors,
</span><span class="cx" style="display: block; padding: 0 10px">     siblings: siblings$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7241,27 +6799,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var all$2 = function (selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_cy5apxvtjfuw8sm8.all(selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ofcqhwtjjgwefyb.all(selector);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestors$1 = function (scope, selector, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_32ojrxv1jfuw8sjp.ancestors(scope, function (e) {
-      return $_cy5apxvtjfuw8sm8.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3dx616w1jjgwefvq.ancestors(scope, function (e) {
+      return $_ofcqhwtjjgwefyb.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     }, isRoot);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var siblings$2 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_32ojrxv1jfuw8sjp.siblings(scope, function (e) {
-      return $_cy5apxvtjfuw8sm8.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3dx616w1jjgwefvq.siblings(scope, function (e) {
+      return $_ofcqhwtjjgwefyb.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var children$2 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_32ojrxv1jfuw8sjp.children(scope, function (e) {
-      return $_cy5apxvtjfuw8sm8.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3dx616w1jjgwefvq.children(scope, function (e) {
+      return $_ofcqhwtjjgwefyb.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendants$1 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_cy5apxvtjfuw8sm8.all(selector, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ofcqhwtjjgwefyb.all(selector, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_d07cf8v0jfuw8sjn = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5wsttjw0jjgwefvp = {
</ins><span class="cx" style="display: block; padding: 0 10px">     all: all$2,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestors: ancestors$1,
</span><span class="cx" style="display: block; padding: 0 10px">     siblings: siblings$2,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7304,7 +6862,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var select = function (selector, root) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.map($_d07cf8v0jfuw8sjn.descendants($_5ny1kxuzjfuw8sjh.fromDom(root), selector), function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map($_5wsttjw0jjgwefvp.descendants(Element$$1.fromDom(root), selector), function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7312,7 +6870,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return elm.innerText || elm.textContent;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getOrGenerateId = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return elm.id ? elm.id : $_8smsfouyjfuw8sjg.generate('h');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return elm.id ? elm.id : generate('h');
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isAnchor = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return elm && elm.nodeName === 'A' && (elm.id || elm.name);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7342,13 +6900,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var anchorTarget = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var anchorId = elm.id || elm.name;
</span><span class="cx" style="display: block; padding: 0 10px">     var anchorText = getElementText(elm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, $_cun2p5t7jfuw8scg.noop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getHeaderTargets = function (elms) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.map($_anxm1mtajfuw8sct.filter(elms, isValidHeader), headerTarget);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(filter(elms, isValidHeader), headerTarget);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getAnchorTargets = function (elms) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.map($_anxm1mtajfuw8sct.filter(elms, isValidAnchor), anchorTarget);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(filter(elms, isValidAnchor), anchorTarget);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getTargetElements = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7359,9 +6917,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var find$3 = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elms = getTargetElements(elm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_eb3struxjfuw8sj6 = { find: find$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_7cacckvxjjgwefv6 = { find: find$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getActiveEditor = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return window.tinymce ? window.tinymce.activeEditor : global$1.activeEditor;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7390,12 +6948,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       value: {
</span><span class="cx" style="display: block; padding: 0 10px">         title: title,
</span><span class="cx" style="display: block; padding: 0 10px">         url: url,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        attach: $_cun2p5t7jfuw8scg.noop
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        attach: noop
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isUniqueUrl = function (url, targets) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var foundTarget = $_anxm1mtajfuw8sct.exists(targets, function (target) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var foundTarget = exists(targets, function (target) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return target.url === url;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return !foundTarget;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7408,7 +6966,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var separator = { title: '-' };
</span><span class="cx" style="display: block; padding: 0 10px">     var fromHistoryMenuItems = function (history) {
</span><span class="cx" style="display: block; padding: 0 10px">       var historyItems = history.hasOwnProperty(fileType) ? history[fileType] : [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var uniqueHistory = $_anxm1mtajfuw8sct.filter(historyItems, function (url) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var uniqueHistory = filter(historyItems, function (url) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return isUniqueUrl(url, targets);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return global$2.map(uniqueHistory, function (url) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7417,13 +6975,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">           value: {
</span><span class="cx" style="display: block; padding: 0 10px">             title: url,
</span><span class="cx" style="display: block; padding: 0 10px">             url: url,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            attach: $_cun2p5t7jfuw8scg.noop
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            attach: noop
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var fromMenuItems = function (type) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var filteredTargets = $_anxm1mtajfuw8sct.filter(targets, function (target) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var filteredTargets = filter(targets, function (target) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return target.type === type;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return toMenuItems(filteredTargets);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7441,7 +6999,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return anchorMenuItems;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var join = function (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_anxm1mtajfuw8sct.foldl(items, function (a, b) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return foldl(items, function (a, b) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var bothEmpty = a.length === 0 || b.length === 0;
</span><span class="cx" style="display: block; padding: 0 10px">         return bothEmpty ? a.concat(b) : a.concat(separator, b);
</span><span class="cx" style="display: block; padding: 0 10px">       }, []);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7461,7 +7019,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_anxm1mtajfuw8sct.indexOf(items, url).isNone()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (indexOf(items, url).isNone()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         history[fileType] = items.slice(0, HISTORY_LENGTH).concat(url);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7481,7 +7039,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setupAutoCompleteHandler = function (ctrl, editorSettings, bodyElm, fileType) {
</span><span class="cx" style="display: block; padding: 0 10px">     var autocomplete = function (term) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var linkTargets = $_eb3struxjfuw8sj6.find(bodyElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var linkTargets = $_7cacckvxjjgwefv6.find(bodyElm);
</ins><span class="cx" style="display: block; padding: 0 10px">       var menuItems = createMenuItems(term, linkTargets, fileType, editorSettings);
</span><span class="cx" style="display: block; padding: 0 10px">       ctrl.showAutoComplete(menuItems, term);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7808,18 +7366,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return is(scope, a) ? Option.some(scope) : $_e8diihtbjfuw8scy.isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);
</ins><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var first$1 = function (predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return descendant($_c59f72v2jfuw8sjt.body(), predicate);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return descendant($_g7jljiw2jjgwefvu.body(), predicate);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestor = function (scope, predicate, isRoot) {
</span><span class="cx" style="display: block; padding: 0 10px">     var element = scope.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var stop = $_e8diihtbjfuw8scy.isFunction(isRoot) ? isRoot : $_cun2p5t7jfuw8scg.constant(false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var stop = isFunction(isRoot) ? isRoot : constant(false);
</ins><span class="cx" style="display: block; padding: 0 10px">     while (element.parentNode) {
</span><span class="cx" style="display: block; padding: 0 10px">       element = element.parentNode;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var el = $_5ny1kxuzjfuw8sjh.fromDom(element);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var el = Element$$1.fromDom(element);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (predicate(el))
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.some(el);
</span><span class="cx" style="display: block; padding: 0 10px">       else if (stop(el))
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7837,20 +7395,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var element = scope.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     if (!element.parentNode)
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.none();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return child$1($_5ny1kxuzjfuw8sjh.fromDom(element.parentNode), function (x) {
-      return !$_22fg4zvdjfuw8skq.eq(scope, x) && predicate(x);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return child$1(Element$$1.fromDom(element.parentNode), function (x) {
+      return !$_bdbghwwdjjgwefx0.eq(scope, x) && predicate(x);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var child$1 = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var result = $_anxm1mtajfuw8sct.find(scope.dom().childNodes, $_cun2p5t7jfuw8scg.compose(predicate, $_5ny1kxuzjfuw8sjh.fromDom));
-    return result.map($_5ny1kxuzjfuw8sjh.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var result = find(scope.dom().childNodes, compose(predicate, Element$$1.fromDom));
+    return result.map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendant = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var descend = function (element) {
-      for (var i = 0; i < element.childNodes.length; i++) {
-        if (predicate($_5ny1kxuzjfuw8sjh.fromDom(element.childNodes[i])))
-          return Option.some($_5ny1kxuzjfuw8sjh.fromDom(element.childNodes[i]));
-        var res = descend(element.childNodes[i]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var descend = function (node) {
+      for (var i = 0; i < node.childNodes.length; i++) {
+        if (predicate(Element$$1.fromDom(node.childNodes[i])))
+          return Option.some(Element$$1.fromDom(node.childNodes[i]));
+        var res = descend(node.childNodes[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (res.isSome())
</span><span class="cx" style="display: block; padding: 0 10px">           return res;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7858,7 +7416,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return descend(scope.dom());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7wnjcvzjfuw8sn7 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2htnvowzjjgwefz5 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     first: first$1,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestor: ancestor,
</span><span class="cx" style="display: block; padding: 0 10px">     closest: closest,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7868,30 +7426,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var first$2 = function (selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_cy5apxvtjfuw8sm8.one(selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ofcqhwtjjgwefyb.one(selector);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestor$1 = function (scope, selector, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_7wnjcvzjfuw8sn7.ancestor(scope, function (e) {
-      return $_cy5apxvtjfuw8sm8.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_2htnvowzjjgwefz5.ancestor(scope, function (e) {
+      return $_ofcqhwtjjgwefyb.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     }, isRoot);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var sibling$1 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_7wnjcvzjfuw8sn7.sibling(scope, function (e) {
-      return $_cy5apxvtjfuw8sm8.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_2htnvowzjjgwefz5.sibling(scope, function (e) {
+      return $_ofcqhwtjjgwefyb.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var child$2 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_7wnjcvzjfuw8sn7.child(scope, function (e) {
-      return $_cy5apxvtjfuw8sm8.is(e, selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_2htnvowzjjgwefz5.child(scope, function (e) {
+      return $_ofcqhwtjjgwefyb.is(e, selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendant$1 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_cy5apxvtjfuw8sm8.one(selector, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ofcqhwtjjgwefyb.one(selector, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var closest$1 = function (scope, selector, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return ClosestOrAncestor($_cy5apxvtjfuw8sm8.is, ancestor$1, scope, selector, isRoot);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return ClosestOrAncestor($_ofcqhwtjjgwefyb.is, ancestor$1, scope, selector, isRoot);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_279ymavyjfuw8sn6 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4ftvxwwyjjgwefz3 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     first: first$2,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestor: ancestor$1,
</span><span class="cx" style="display: block; padding: 0 10px">     sibling: sibling$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7905,53 +7463,84 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.execCommand('mceToggleFormat', false, fmt);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var postRenderFormat = function (editor, name) {
-    return function () {
-      var self = this;
-      if (editor.formatter) {
-        editor.formatter.formatChanged(name, function (state) {
-          self.active(state);
-        });
-      } else {
-        editor.on('init', function () {
-          editor.formatter.formatChanged(name, function (state) {
-            self.active(state);
-          });
-        });
-      }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var addFormatChangedListener = function (editor, name, changed) {
+    var handler = function (state) {
+      changed(state, name);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (editor.formatter) {
+      editor.formatter.formatChanged(name, handler);
+    } else {
+      editor.on('init', function () {
+        editor.formatter.formatChanged(name, handler);
+      });
+    }
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_e045hpw2jfuw8snu = {
-    toggleFormat: toggleFormat,
-    postRenderFormat: postRenderFormat
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var postRenderFormatToggle = function (editor, name) {
+    return function (e) {
+      addFormatChangedListener(editor, name, function (state) {
+        e.control.active(state);
+      });
+    };
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (editor) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var alignFormats = [
+      'alignleft',
+      'aligncenter',
+      'alignright',
+      'alignjustify'
+    ];
+    var defaultAlign = 'alignleft';
+    var alignMenuItems = [
+      {
+        text: 'Left',
+        icon: 'alignleft',
+        onclick: toggleFormat(editor, 'alignleft')
+      },
+      {
+        text: 'Center',
+        icon: 'aligncenter',
+        onclick: toggleFormat(editor, 'aligncenter')
+      },
+      {
+        text: 'Right',
+        icon: 'alignright',
+        onclick: toggleFormat(editor, 'alignright')
+      },
+      {
+        text: 'Justify',
+        icon: 'alignjustify',
+        onclick: toggleFormat(editor, 'alignjustify')
+      }
+    ];
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.addMenuItem('align', {
</span><span class="cx" style="display: block; padding: 0 10px">       text: 'Align',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      menu: [
-        {
-          text: 'Left',
-          icon: 'alignleft',
-          onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'alignleft')
-        },
-        {
-          text: 'Center',
-          icon: 'aligncenter',
-          onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'aligncenter')
-        },
-        {
-          text: 'Right',
-          icon: 'alignright',
-          onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'alignright')
-        },
-        {
-          text: 'Justify',
-          icon: 'alignjustify',
-          onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'alignjustify')
-        }
-      ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      menu: alignMenuItems
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.addButton('align', {
+      type: 'menubutton',
+      icon: defaultAlign,
+      menu: alignMenuItems,
+      onShowMenu: function (e) {
+        var menu = e.control.menu;
+        global$2.each(alignFormats, function (formatName, idx) {
+          menu.items().eq(idx).each(function (item) {
+            return item.active(editor.formatter.match(formatName));
+          });
+        });
+      },
+      onPostRender: function (e) {
+        var ctrl = e.control;
+        global$2.each(alignFormats, function (formatName, idx) {
+          addFormatChangedListener(editor, formatName, function (state) {
+            ctrl.icon(defaultAlign);
+            if (state) {
+              ctrl.icon(formatName);
+            }
+          });
+        });
+      }
+    });
</ins><span class="cx" style="display: block; padding: 0 10px">     global$2.each({
</span><span class="cx" style="display: block; padding: 0 10px">       alignleft: [
</span><span class="cx" style="display: block; padding: 0 10px">         'Align left',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7978,24 +7567,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">         active: false,
</span><span class="cx" style="display: block; padding: 0 10px">         tooltip: item[0],
</span><span class="cx" style="display: block; padding: 0 10px">         cmd: item[1],
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onPostRender: $_e045hpw2jfuw8snu.postRenderFormat(editor, name)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onPostRender: postRenderFormatToggle(editor, name)
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bfu7knw1jfuw8sns = { register: register };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cz4u4px1jjgwefzl = { register: register };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getFirstFont = function (fontFamily) {
</span><span class="cx" style="display: block; padding: 0 10px">     return fontFamily ? fontFamily.split(',')[0] : '';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findMatchingValue = function (items, fontFamily) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var font = fontFamily ? fontFamily.toLowerCase() : '';
</ins><span class="cx" style="display: block; padding: 0 10px">     var value;
</span><span class="cx" style="display: block; padding: 0 10px">     global$2.each(items, function (item) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (item.value.toLowerCase() === fontFamily.toLowerCase()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (item.value.toLowerCase() === font) {
</ins><span class="cx" style="display: block; padding: 0 10px">         value = item.value;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     global$2.each(items, function (item) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!value && getFirstFont(item.value).toLowerCase() === getFirstFont(fontFamily).toLowerCase()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!value && getFirstFont(item.value).toLowerCase() === getFirstFont(font).toLowerCase()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         value = item.value;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8004,6 +7594,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var createFontNameListBoxChangeHandler = function (editor, items) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self.state.set('value', null);
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.on('init nodeChange', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         var fontFamily = editor.queryCommandValue('FontName');
</span><span class="cx" style="display: block; padding: 0 10px">         var match = findMatchingValue(items, fontFamily);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8054,7 +7645,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var register$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_evwt60w3jfuw8snv = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_f7ngpex3jjgwefzo = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var round = function (number, precision) {
</span><span class="cx" style="display: block; padding: 0 10px">     var factor = Math.pow(10, precision);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8133,7 +7724,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var register$2 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$1(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cv0tb2w4jfuw8sny = { register: register$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9a6bd5x4jjgwefzr = { register: register$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var hideMenuObjects = function (editor, menu) {
</span><span class="cx" style="display: block; padding: 0 10px">     var count = menu.length;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8363,7 +7954,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         onclick: function () {
</span><span class="cx" style="display: block; padding: 0 10px">           if (this.settings.format) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_e045hpw2jfuw8snu.toggleFormat(editor, this.settings.format)();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            toggleFormat(editor, this.settings.format)();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           if (this.settings.cmd) {
</span><span class="cx" style="display: block; padding: 0 10px">             editor.execCommand(this.settings.cmd);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8395,7 +7986,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     registerMenuItems(editor, formatMenu);
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$2(editor, formatMenu);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_g2376dw5jfuw8so1 = { register: register$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ejzqp9x5jjgwefzu = { register: register$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var defaultBlocks = 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre';
</span><span class="cx" style="display: block; padding: 0 10px">   var createFormats$1 = function (formats) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8455,7 +8046,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         onselect: function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (e.control) {
</span><span class="cx" style="display: block; padding: 0 10px">             var fmt = e.control.value();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_e045hpw2jfuw8snu.toggleFormat(editor, fmt)();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            toggleFormat(editor, fmt)();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         onPostRender: createListBoxChangeHandler(editor, items)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8466,7 +8057,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return global$2.map(blocks, function (block) {
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         text: block[0],
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, block[1]),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onclick: toggleFormat(editor, block[1]),
</ins><span class="cx" style="display: block; padding: 0 10px">         textStyle: function () {
</span><span class="cx" style="display: block; padding: 0 10px">           return editor.formatter.getCssText(block[1]);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8481,7 +8072,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addButton('formatselect', lazyFormatSelectBoxItems(editor, blocks));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6ddb2xw6jfuw8so5 = { register: register$4 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fp0lmzx6jjgwefzy = { register: register$4 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var createCustomMenuItems = function (editor, names) {
</span><span class="cx" style="display: block; padding: 0 10px">     var items, nameList;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8488,7 +8079,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (typeof names === 'string') {
</span><span class="cx" style="display: block; padding: 0 10px">       nameList = names.split(' ');
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (global$2.isArray(names)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_anxm1mtajfuw8sct.flatten(global$2.map(names, function (names) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return flatten(global$2.map(names, function (names) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return createCustomMenuItems(editor, names);
</span><span class="cx" style="display: block; padding: 0 10px">       }));
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8503,10 +8094,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return menuItem && menuItem.text === '-';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimMenuItems = function (menuItems) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var menuItems2 = $_anxm1mtajfuw8sct.filter(menuItems, function (menuItem, i, menuItems) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var menuItems2 = filter(menuItems, function (menuItem, i, menuItems) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return !isSeparator$1(menuItem) || !isSeparator$1(menuItems[i - 1]);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_anxm1mtajfuw8sct.filter(menuItems2, function (menuItem, i, menuItems) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter(menuItems2, function (menuItem, i, menuItems) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return !isSeparator$1(menuItem) || i > 0 && i < menuItems.length - 1;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8552,7 +8143,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var register$5 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$3(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1dv5z9w7jfuw8so8 = { register: register$5 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4j2o4hx7jjgweg01 = { register: register$5 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var registerFormatButtons = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     global$2.each({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8566,8 +8157,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.addButton(name, {
</span><span class="cx" style="display: block; padding: 0 10px">         active: false,
</span><span class="cx" style="display: block; padding: 0 10px">         tooltip: text,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onPostRender: $_e045hpw2jfuw8snu.postRenderFormat(editor, name),
-        onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, name)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onPostRender: postRenderFormatToggle(editor, name),
+        onclick: toggleFormat(editor, name)
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8643,7 +8234,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         active: false,
</span><span class="cx" style="display: block; padding: 0 10px">         tooltip: item[0],
</span><span class="cx" style="display: block; padding: 0 10px">         cmd: item[1],
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        onPostRender: $_e045hpw2jfuw8snu.postRenderFormat(editor, name)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        onPostRender: postRenderFormatToggle(editor, name)
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8720,7 +8311,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addMenuItem('codeformat', {
</span><span class="cx" style="display: block; padding: 0 10px">       text: 'Code',
</span><span class="cx" style="display: block; padding: 0 10px">       icon: 'code',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'code')
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      onclick: toggleFormat(editor, 'code')
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var register$6 = function (editor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8727,7 +8318,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$4(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     registerMenuItems$1(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fssja4w8jfuw8soc = { register: register$6 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_c2lkymx8jjgweg05 = { register: register$6 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var toggleUndoRedoState = function (editor, type) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8774,7 +8365,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     registerMenuItems$2(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     registerButtons$5(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fy8pn1w9jfuw8soe = { register: register$7 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9h432jx9jjgweg07 = { register: register$7 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var toggleVisualAidState = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8796,7 +8387,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var register$8 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     registerMenuItems$3(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5fcf2jwajfuw8sof = { register: register$8 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_eoil5jxajjgweg09 = { register: register$8 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setupEnvironment = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     Widget.tooltips = !global$8.iOS;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8806,7 +8397,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setupUiContainer = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.settings.ui_container) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$8.container = $_279ymavyjfuw8sn6.descendant($_5ny1kxuzjfuw8sjh.fromDom(document.body), editor.settings.ui_container).fold($_cun2p5t7jfuw8scg.constant(null), function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$8.container = $_4ftvxwwyjjgwefz3.descendant(Element$$1.fromDom(document.body), editor.settings.ui_container).fold(constant(null), function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return elm.dom();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8826,17 +8417,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">     setupHideFloatPanels(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     setupUiContainer(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     setupEnvironment();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_6ddb2xw6jfuw8so5.register(editor);
-    $_bfu7knw1jfuw8sns.register(editor);
-    $_fssja4w8jfuw8soc.register(editor);
-    $_fy8pn1w9jfuw8soe.register(editor);
-    $_cv0tb2w4jfuw8sny.register(editor);
-    $_evwt60w3jfuw8snv.register(editor);
-    $_g2376dw5jfuw8so1.register(editor);
-    $_5fcf2jwajfuw8sof.register(editor);
-    $_1dv5z9w7jfuw8so8.register(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_fp0lmzx6jjgwefzy.register(editor);
+    $_cz4u4px1jjgwefzl.register(editor);
+    $_c2lkymx8jjgweg05.register(editor);
+    $_9h432jx9jjgweg07.register(editor);
+    $_9a6bd5x4jjgwefzr.register(editor);
+    $_f7ngpex3jjgwefzo.register(editor);
+    $_ejzqp9x5jjgwefzu.register(editor);
+    $_eoil5jxajjgweg09.register(editor);
+    $_4j2o4hx7jjgweg01.register(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_94fs8fvxjfuw8sn0 = { setup: setup$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5heykgwxjjgwefyx = { setup: setup$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var GridLayout = AbsoluteLayout.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     recalc: function (container) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9143,9 +8734,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function isChildOf$1(node, parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  function isChildOf$1(node, parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">     while (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (parent === node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (parent$$1 === node) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       node = node.parentNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9154,26 +8745,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   var MenuButton = Button.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._renderOpen = true;
-      self._super(settings);
-      settings = self.settings;
-      self.classes.add('menubtn');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._renderOpen = true;
+      self$$1._super(settings);
+      settings = self$$1.settings;
+      self$$1.classes.add('menubtn');
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.fixedWidth) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('fixed-width');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('fixed-width');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.aria('haspopup', true);
-      self.state.set('menu', settings.menu || self.render());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.aria('haspopup', true);
+      self$$1.state.set('menu', settings.menu || self$$1.render());
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     showMenu: function (toggle) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var menu;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.menu && self.menu.visible() && toggle !== false) {
-        return self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.menu && self$$1.menu.visible() && toggle !== false) {
+        return self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.menu) {
-        menu = self.state.get('menu') || [];
-        self.classes.add('opened');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.menu) {
+        menu = self$$1.state.get('menu') || [];
+        self$$1.classes.add('opened');
</ins><span class="cx" style="display: block; padding: 0 10px">         if (menu.length) {
</span><span class="cx" style="display: block; padding: 0 10px">           menu = {
</span><span class="cx" style="display: block; padding: 0 10px">             type: 'menu',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9185,34 +8776,34 @@
</span><span class="cx" style="display: block; padding: 0 10px">           menu.animate = true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (!menu.renderTo) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.menu = global$4.create(menu).parent(self).renderTo();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.menu = global$4.create(menu).parent(self$$1).renderTo();
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.menu = menu.parent(self).show().renderTo();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.menu = menu.parent(self$$1).show().renderTo();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.fire('createmenu');
-        self.menu.reflow();
-        self.menu.on('cancel', function (e) {
-          if (e.control.parent() === self.menu) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.fire('createmenu');
+        self$$1.menu.reflow();
+        self$$1.menu.on('cancel', function (e) {
+          if (e.control.parent() === self$$1.menu) {
</ins><span class="cx" style="display: block; padding: 0 10px">             e.stopPropagation();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.focus();
-            self.hideMenu();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.focus();
+            self$$1.hideMenu();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.on('select', function () {
-          self.focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.on('select', function () {
+          self$$1.focus();
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.on('show hide', function (e) {
-          if (e.control === self.menu) {
-            self.activeMenu(e.type === 'show');
-            self.classes.toggle('opened', e.type === 'show');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.on('show hide', function (e) {
+          if (e.control === self$$1.menu) {
+            self$$1.activeMenu(e.type === 'show');
+            self$$1.classes.toggle('opened', e.type === 'show');
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.aria('expanded', e.type === 'show');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.aria('expanded', e.type === 'show');
</ins><span class="cx" style="display: block; padding: 0 10px">         }).fire('show');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.menu.show();
-      self.menu.layoutRect({ w: self.layoutRect().w });
-      self.menu.repaint();
-      self.menu.moveRel(self.getEl(), self.isRtl() ? [
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.menu.show();
+      self$$1.menu.layoutRect({ w: self$$1.layoutRect().w });
+      self$$1.menu.repaint();
+      self$$1.menu.moveRel(self$$1.getEl(), self$$1.isRtl() ? [
</ins><span class="cx" style="display: block; padding: 0 10px">         'br-tr',
</span><span class="cx" style="display: block; padding: 0 10px">         'tr-br'
</span><span class="cx" style="display: block; padding: 0 10px">       ] : [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9219,17 +8810,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">         'bl-tl',
</span><span class="cx" style="display: block; padding: 0 10px">         'tl-bl'
</span><span class="cx" style="display: block; padding: 0 10px">       ]);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.fire('showmenu');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.fire('showmenu');
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     hideMenu: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (self.menu) {
-        self.menu.items().each(function (item) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (self$$1.menu) {
+        self$$1.menu.items().each(function (item) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (item.hideMenu) {
</span><span class="cx" style="display: block; padding: 0 10px">             item.hideMenu();
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu.hide();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu.hide();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     activeMenu: function (state) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9236,11 +8827,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this.classes.toggle('active', state);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, id = self._id, prefix = self.classPrefix;
-      var icon = self.settings.icon, image;
-      var text = self.state.get('text');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;
+      var icon = self$$1.settings.icon, image;
+      var text = self$$1.state.get('text');
</ins><span class="cx" style="display: block; padding: 0 10px">       var textHtml = '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      image = self.settings.image;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      image = self$$1.settings.image;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (image) {
</span><span class="cx" style="display: block; padding: 0 10px">         icon = 'none';
</span><span class="cx" style="display: block; padding: 0 10px">         if (typeof image !== 'string') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9251,30 +8842,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">         image = '';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('btn-has-text');
-        textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('btn-has-text');
+        textHtml = '<span class="' + prefix + 'txt">' + self$$1.encode(text) + '</span>';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
-      self.aria('role', self.parent() instanceof MenuBar ? 'menuitem' : 'button');
-      return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1" aria-labelledby="' + id + '">' + '<button id="' + id + '-open" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      icon = self$$1.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
+      self$$1.aria('role', self$$1.parent() instanceof MenuBar ? 'menuitem' : 'button');
+      return '<div id="' + id + '" class="' + self$$1.classes + '" tabindex="-1" aria-labelledby="' + id + '">' + '<button id="' + id + '-open" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.on('click', function (e) {
-        if (e.control === self && isChildOf$1(e.target, self.getEl())) {
-          self.focus();
-          self.showMenu(!e.aria);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.on('click', function (e) {
+        if (e.control === self$$1 && isChildOf$1(e.target, self$$1.getEl())) {
+          self$$1.focus();
+          self$$1.showMenu(!e.aria);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (e.aria) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.menu.items().filter(':visible')[0].focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.menu.items().filter(':visible')[0].focus();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.on('mouseenter', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.on('mouseenter', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var overCtrl = e.control;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var parent = self.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var parent$$1 = self$$1.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">         var hasVisibleSiblingMenu;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (overCtrl && parent && overCtrl instanceof MenuButton && overCtrl.parent() === parent) {
-          parent.items().filter('MenuButton').each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (overCtrl && parent$$1 && overCtrl instanceof MenuButton && overCtrl.parent() === parent$$1) {
+          parent$$1.items().filter('MenuButton').each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (ctrl.hideMenu && ctrl !== overCtrl) {
</span><span class="cx" style="display: block; padding: 0 10px">               if (ctrl.menu && ctrl.menu.visible()) {
</span><span class="cx" style="display: block; padding: 0 10px">                 hasVisibleSiblingMenu = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9288,17 +8879,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.state.on('change:menu', function () {
-        if (self.menu) {
-          self.menu.remove();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.state.on('change:menu', function () {
+        if (self$$1.menu) {
+          self$$1.menu.remove();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.menu = null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.menu = null;
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       this._super();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9939,8 +9530,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.orientation === 'v') {
</span><span class="cx" style="display: block; padding: 0 10px">         self.classes.add('vertical');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._minValue = $_e8diihtbjfuw8scy.isNumber(settings.minValue) ? settings.minValue : 0;
-      self._maxValue = $_e8diihtbjfuw8scy.isNumber(settings.maxValue) ? settings.maxValue : 100;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self._minValue = isNumber(settings.minValue) ? settings.minValue : 0;
+      self._maxValue = isNumber(settings.maxValue) ? settings.maxValue : 100;
</ins><span class="cx" style="display: block; padding: 0 10px">       self._initValue = self.state.get('value');
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10053,11 +9644,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       role: 'button'
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     repaint: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var elm = self.getEl();
-      var rect = self.layoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var elm = self$$1.getEl();
+      var rect = self$$1.layoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">       var mainButtonElm, menuButtonElm;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">       mainButtonElm = elm.firstChild;
</span><span class="cx" style="display: block; padding: 0 10px">       menuButtonElm = elm.lastChild;
</span><span class="cx" style="display: block; padding: 0 10px">       global$9(mainButtonElm).css({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10065,20 +9656,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">         height: rect.h - 2
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       global$9(menuButtonElm).css({ height: rect.h - 2 });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     activeMenu: function (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      global$9(self.getEl().lastChild).toggleClass(self.classPrefix + 'active', state);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      global$9(self$$1.getEl().lastChild).toggleClass(self$$1.classPrefix + 'active', state);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var id = self._id;
-      var prefix = self.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var id = self$$1._id;
+      var prefix = self$$1.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">       var image;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var icon = self.state.get('icon');
-      var text = self.state.get('text');
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var icon = self$$1.state.get('icon');
+      var text = self$$1.state.get('text');
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var textHtml = '', ariaPressed;
</span><span class="cx" style="display: block; padding: 0 10px">       image = settings.image;
</span><span class="cx" style="display: block; padding: 0 10px">       if (image) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10092,15 +9683,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       icon = settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
</span><span class="cx" style="display: block; padding: 0 10px">       if (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('btn-has-text');
-        textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('btn-has-text');
+        textHtml = '<span class="' + prefix + 'txt">' + self$$1.encode(text) + '</span>';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed="' + settings.active + '"' : '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return '<div id="' + id + '" class="' + self.classes + '" role="button"' + ariaPressed + ' tabindex="-1">' + '<button type="button" hidefocus="1" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '<button type="button" class="' + prefix + 'open" hidefocus="1" tabindex="-1">' + (self._menuBtnText ? (icon ? '\xA0' : '') + self._menuBtnText : '') + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return '<div id="' + id + '" class="' + self$$1.classes + '" role="button"' + ariaPressed + ' tabindex="-1">' + '<button type="button" hidefocus="1" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '<button type="button" class="' + prefix + 'open" hidefocus="1" tabindex="-1">' + (self$$1._menuBtnText ? (icon ? '\xA0' : '') + self$$1._menuBtnText : '') + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, onClickHandler = self.settings.onclick;
-      self.on('click', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, onClickHandler = self$$1.settings.onclick;
+      self$$1.on('click', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var node = e.target;
</span><span class="cx" style="display: block; padding: 0 10px">         if (e.control === this) {
</span><span class="cx" style="display: block; padding: 0 10px">           while (node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10115,8 +9706,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      delete self.settings.onclick;
-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      delete self$$1.settings.onclick;
+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10221,43 +9812,43 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var TextBox = Widget.extend({
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self._super(settings);
-      self.classes.add('textbox');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1._super(settings);
+      self$$1.classes.add('textbox');
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.multiline) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.classes.add('multiline');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.classes.add('multiline');
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.on('keydown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.on('keydown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var rootControl;
</span><span class="cx" style="display: block; padding: 0 10px">           if (e.keyCode === 13) {
</span><span class="cx" style="display: block; padding: 0 10px">             e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.parents().reverse().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.parents().reverse().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">               if (ctrl.toJSON) {
</span><span class="cx" style="display: block; padding: 0 10px">                 rootControl = ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">                 return false;
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.fire('submit', { data: rootControl.toJSON() });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.fire('submit', { data: rootControl.toJSON() });
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.on('keyup', function (e) {
-          self.state.set('value', e.target.value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.on('keyup', function (e) {
+          self$$1.state.set('value', e.target.value);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     repaint: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var style, rect, borderBox, borderW, borderH = 0, lastRepaintRect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      style = self.getEl().style;
-      rect = self._layoutRect;
-      lastRepaintRect = self._lastRepaintRect || {};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      style = self$$1.getEl().style;
+      rect = self$$1._layoutRect;
+      lastRepaintRect = self$$1._lastRepaintRect || {};
</ins><span class="cx" style="display: block; padding: 0 10px">       var doc = document;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         style.lineHeight = rect.h - borderH + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      borderBox = self.borderBox;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      borderBox = self$$1.borderBox;
</ins><span class="cx" style="display: block; padding: 0 10px">       borderW = borderBox.left + borderBox.right + 8;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      borderH = borderBox.top + borderBox.bottom + (self.settings.multiline ? 8 : 0);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      borderH = borderBox.top + borderBox.bottom + (self$$1.settings.multiline ? 8 : 0);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (rect.x !== lastRepaintRect.x) {
</span><span class="cx" style="display: block; padding: 0 10px">         style.left = rect.x + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.x = rect.x;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10274,16 +9865,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">         style.height = rect.h - borderH + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">         lastRepaintRect.h = rect.h;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self._lastRepaintRect = lastRepaintRect;
-      self.fire('repaint', {}, false);
-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1._lastRepaintRect = lastRepaintRect;
+      self$$1.fire('repaint', {}, false);
+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      var settings = self.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      var settings = self$$1.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       var attrs, elm;
</span><span class="cx" style="display: block; padding: 0 10px">       attrs = {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        id: self._id,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        id: self$$1._id,
</ins><span class="cx" style="display: block; padding: 0 10px">         hidefocus: '1'
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       global$2.each([
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10300,10 +9891,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         'placeholder',
</span><span class="cx" style="display: block; padding: 0 10px">         'required',
</span><span class="cx" style="display: block; padding: 0 10px">         'multiple'
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      ], function (name) {
-        attrs[name] = settings[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      ], function (name$$1) {
+        attrs[name$$1] = settings[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.disabled()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.disabled()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         attrs.disabled = 'disabled';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.subtype) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10310,8 +9901,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         attrs.type = settings.subtype;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       elm = funcs.create(settings.multiline ? 'textarea' : 'input', attrs);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      elm.value = self.state.get('value');
-      elm.className = self.classes;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      elm.value = self$$1.state.get('value');
+      elm.className = self$$1.classes.toString();
</ins><span class="cx" style="display: block; padding: 0 10px">       return elm.outerHTML;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     value: function (value) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10325,25 +9916,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.state.get('value');
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.getEl().value = self.state.get('value');
-      self._super();
-      self.$el.on('change', function (e) {
-        self.state.set('value', e.target.value);
-        self.fire('change', e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.getEl().value = self$$1.state.get('value');
+      self$$1._super();
+      self$$1.$el.on('change', function (e) {
+        self$$1.state.set('value', e.target.value);
+        self$$1.fire('change', e);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      self.state.on('change:value', function (e) {
-        if (self.getEl().value !== e.value) {
-          self.getEl().value = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      self$$1.state.on('change:value', function (e) {
+        if (self$$1.getEl().value !== e.value) {
+          self$$1.getEl().value = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.state.on('change:disabled', function (e) {
-        self.getEl().disabled = e.value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.state.on('change:disabled', function (e) {
+        self$$1.getEl().disabled = e.value;
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1._super();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       this.$el.off();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10355,18 +9946,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       Selector: Selector,
</span><span class="cx" style="display: block; padding: 0 10px">       Collection: Collection$2,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      ReflowQueue: $_5c4g75txjfuw8sfo,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      ReflowQueue: $_p42hyuxjjgwefrk,
</ins><span class="cx" style="display: block; padding: 0 10px">       Control: Control$1,
</span><span class="cx" style="display: block; padding: 0 10px">       Factory: global$4,
</span><span class="cx" style="display: block; padding: 0 10px">       KeyboardNavigation: KeyboardNavigation,
</span><span class="cx" style="display: block; padding: 0 10px">       Container: Container,
</span><span class="cx" style="display: block; padding: 0 10px">       DragHelper: DragHelper,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Scrollable: $_8d5ltqtzjfuw8sfw,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Scrollable: $_3rxloyuzjjgwefrs,
</ins><span class="cx" style="display: block; padding: 0 10px">       Panel: Panel,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Movable: $_831wnjtkjfuw8sdt,
-      Resizable: $_4ucwx9u1jfuw8sg2,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Movable: $_3fnh5iukjjgwefpt,
+      Resizable: $_3m7770v1jjgwefrz,
</ins><span class="cx" style="display: block; padding: 0 10px">       FloatPanel: FloatPanel,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Window: Window,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Window: Window$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       MessageBox: MessageBox,
</span><span class="cx" style="display: block; padding: 0 10px">       Tooltip: Tooltip,
</span><span class="cx" style="display: block; padding: 0 10px">       Widget: Widget,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10391,7 +9982,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       FitLayout: FitLayout,
</span><span class="cx" style="display: block; padding: 0 10px">       FlexLayout: FlexLayout,
</span><span class="cx" style="display: block; padding: 0 10px">       FlowLayout: FlowLayout,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      FormatControls: $_94fs8fvxjfuw8sn0,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      FormatControls: $_5heykgwxjjgwefyx,
</ins><span class="cx" style="display: block; padding: 0 10px">       GridLayout: GridLayout,
</span><span class="cx" style="display: block; padding: 0 10px">       Iframe: Iframe$1,
</span><span class="cx" style="display: block; padding: 0 10px">       InfoBox: InfoBox,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10438,8 +10029,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   Api.registerToFactory();
</span><span class="cx" style="display: block; padding: 0 10px">   Api.appendTo(window.tinymce ? window.tinymce : {});
</span><span class="cx" style="display: block; padding: 0 10px">   global.add('modern', function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_94fs8fvxjfuw8sn0.setup(editor);
-    return $_cf5qtqsrjfuw8sbf.get(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_5heykgwxjjgwefyx.setup(editor);
+    return $_buaxbttqjjgwefn0.get(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   function Theme () {
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcethemesmodernthememinjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/themes/modern/theme.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/themes/modern/theme.min.js  2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/themes/modern/theme.min.js    2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var e,t,n,i,r,o=tinymce.util.Tools.resolve("tinymce.ThemeManager"),l=tinymce.util.Tools.resolve("tinymce.EditorManager"),w=tinymce.util.Tools.resolve("tinymce.util.Tools"),d=function(e){return!1!==c(e)},c=function(e){return e.getParam("menubar")},f=function(e){return e.getParam("toolbar_items_size")},h=function(e){return e.getParam("menu")},m=function(e){return!1===e.settings.skin},g=function(e){var t=e.getParam("resize","vertical");return!1===t?"none":"both"===t?"both":"vertical"},p=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),v=tinymce.util.Tools.resolve("tinymce.ui.Factory"),b=tinymce.util.Tools.resolve("tinymce.util.I18n"),s=function(e){return e.fire("SkinLoaded")},y=function(e){return 
 e.fire("ResizeEditor")},x=function(e){return e.fire("BeforeRenderUI")},a=function(t,n){return function(){var e=t.find(n)[0];e&&e.focus(!0)}},_=function(e,t){e.shortcuts.add("Alt+F9","",a(t,"menubar")),e.shortcuts.add("Alt+F10,F10","",a(t,"toolbar")),e.shortcuts.add("Alt+F11","",a(t,"elementpath")),t.on("cancel",function(){e.focus()})},R=tinymce.util.Tools.resolve("tinymce.geom.Rect"),u=tinymce.util.Tools.resolve("tinymce.util.Delay"),C=function(e){return function(){return e}},k={noop:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},noarg:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n()}},compose:function(n,i){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(i.apply(null,arguments))}},constant:C,identity:function(e){return e
 },tripleEquals:function(e,t){return e===t},curry:function(o){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var s=new Array(arguments.length-1),n=1;n<arguments.length;n++)s[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];var r=s.concat(n);return o.apply(null,r)}},not:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,arguments)}},die:function(e){return function(){throw new Error(e)}},apply:function(e){return e()},call:function(e){e()},never:C(!1),always:C(!0)},E=k.never,H=k.always,S=function(){return M},M=(i={fold:function(e,t){return e()},is:E,isSome:E,isNone:H,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},or:n,orThunk:t,map:S,ap:S,each:function(){},bind:S,flatten:S,exis
 ts:E,forall:H,filter:S,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:k.constant("none()")},Object.freeze&&Object.freeze(i),i),T=function(n){var e=function(){return n},t=function(){return r},i=function(e){return e(n)},r={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:H,isNone:E,getOr:e,getOrThunk:e,getOrDie:e,or:t,orThunk:t,map:function(e){return T(e(n))},ap:function(e){return e.fold(S,function(e){return T(e(n))})},each:function(e){e(n)},bind:i,flatten:e,exists:i,forall:i,filter:function(e){return e(n)?r:M},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(E,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return r},P={some:T,none:S,from:function(e){return null===e||e===undefined?M:T(e)}},W=function(e){return e?e.getRoot().uiContainer:null},D={getUiContainerDelta:function(e){var t=W(e);if(t&&"static&
 quot;!==p.DOM.getStyle(t,"position",!0)){var n=p.DOM.getPos(t),i=t.scrollLeft-n.x,r=t.scrollTop-n.y;return P.some({x:i,y:r})}return P.none()},setUiContainer:function(e,t){var n=p.DOM.select(e.settings.ui_container)[0];t.getRoot().uiContainer=n},getUiContainer:W,inheritUiContainer:function(e,t){return t.uiContainer=W(e)}},N=function(i,e,r){var o,s=[];if(e)return w.each(e.split(/[ ,]/),function(t){var e,n=function(){var e=i.selection;t.settings.stateSelector&&e.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&e.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})};"|"===t?o=null:(o||(o={type:"buttongroup",items:[]},s.push(o)),i.buttons[t]&&(e=t,"function"==typeof(t=i.buttons[e])&&(t=t()),t.type=t.type||"button",t.size=r,t=v.create(t),o.items.push(t),i.initialized?n():i.on("init",n)))}),{type:"toolbar",layou
 t:"flow",items:s}},A=N,B=function(n,i){var e,t,r=[];if(w.each(!1===(t=(e=n).getParam("toolbar"))?[]:w.isArray(t)?w.grep(t,function(e){return 0<e.length}):function(e,t){for(var n=[],i=1;i<10;i++){var r=e["toolbar"+i];if(!r)break;n.push(r)}var o=e.toolbar?[e.toolbar]:[t];return 0<n.length?n:o}(e.settings,"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"),function(e){var t;(t=e)&&r.push(N(n,t,i))}),r.length)return{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:r}},O=p.DOM,z=function(e){return{left:e.x,top:e.y,width:e.w,height:e.h,right:e.x+e.w,bottom:e.y+e.h}},L=function(e,t){e.moveTo(t.left,t.top)},I=function(e,t,n,i,r,o){return o=z({x:t,y:n,w:o.w,h:o.h}),e&&(o=e({elementRect:z(i),contentAreaRect:z(r),panelRect:o})),o},F=function(x){var i,o=function(){return x.contextToolb
 ars||[]},n=function(e,t){var n,i,r,o,s,a,l,u=x.getParam("inline_toolbar_position_handler");if(!x.removed){if(!e||!e.toolbar.panel)return c=x,void w.each(c.contextToolbars,function(e){e.panel&&e.panel.hide()});var c,d,f,h,m;l=["bc-tc","tc-bc","tl-bl","bl-tl","tr-br","br-tr"],s=e.toolbar.panel,t&&s.show(),d=e.element,f=O.getPos(x.getContentAreaContainer()),h=x.dom.getRect(d),"BODY"===(m=x.dom.getRoot()).nodeName&&(h.x-=m.ownerDocument.documentElement.scrollLeft||m.scrollLeft,h.y-=m.ownerDocument.documentElement.scrollTop||m.scrollTop),h.x+=f.x,h.y+=f.y,r=h,i=O.getRect(s.getEl()),o=O.getRect(x.getContentAreaContainer()||x.getBody());var g,p,v,b=D.getUiContainerDelta(s).getOr({x:0,y:0});if(r.x+=b.x,r.y+=b.y,i.x+=b.x,i.y+=b.y,o.x+=b.x,o.y+=b.y,"inline"!==O.getStyle(e.element,"display",!0)){var y=e.element.getBoundingClientRect();r.w=y.width,r.h=y.height}x.inline||(o
 .w=x.getDoc().documentElement.offsetWidth),x.selection.controlSelection.isResizable(e.element)&&r.w<25&&(r=R.inflate(r,0,8)),n=R.findBestRelativePosition(i,r,o,l),r=R.clamp(r,o),n?(a=R.relativePosition(i,r,n),L(s,I(u,a.x,a.y,r,o,i))):(o.h+=i.h,(r=R.intersect(o,r))?(n=R.findBestRelativePosition(i,r,o,["bc-tc","bl-tl","br-tr"]))?(a=R.relativePosition(i,r,n),L(s,I(u,a.x,a.y,r,o,i))):L(s,I(u,r.x,r.y,r,o,i)):s.hide()),g=s,v=function(e,t){return e===t},p=(p=n)?p.substr(0,2):"",w.each({t:"down",b:"up"},function(e,t){g.classes.toggle("arrow-"+e,v(t,p.substr(0,1)))}),w.each({l:"left",r:"right"},function(e,t){g.classes.toggle("arrow-"+e,v(t,p.substr(1,1)))})}},r=function(e){return function(){u.requestAnimationFrame(function(){x.selection&&n(a(x.selection.getNode()),e)})}},t=function(e){var t;if(e.toolbar.panel)return e.toolbar.panel.show(),void n(e);t=v.create({type:&
 quot;floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:A(x,e.toolbar.items),oncancel:function(){x.focus()}}),D.setUiContainer(x,t),function(e){if(!i){var t=r(!0),n=D.getUiContainer(e);i=x.selection.getScrollContainer()||x.getWin(),O.bind(i,"scroll",t),O.bind(n,"scroll",t),x.on("remove",function(){O.unbind(i,"scroll",t),O.unbind(n,"scroll",t)})}}(t),(e.toolbar.panel=t).renderTo().reflow(),n(e)},s=function(){w.each(o(),function(e){e.panel&&e.panel.hide()})},a=function(e){var t,n,i,r=o();for(t=(i=x.$(e).parents().add(e)).length-1;0<=t;t--)for(n=r.length-1;0<=n;n--)if(r[n].predicate(i[t]))return{toolbar:r[n],element:i[t]};return null};x.on("click keyup setContent ObjectResized",function(e){("setcontent"!=
 =e.type||e.selection)&&u.setEditorTimeout(x,function(){var e;(e=a(x.selection.getNode()))?(s(),t(e)):s()})}),x.on("blur hide contextmenu",s),x.on("ObjectResizeStart",function(){var e=a(x.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.hide()}),x.on("ResizeEditor ResizeWindow",r(!0)),x.on("nodeChange",r(!1)),x.on("remove",function(){w.each(o(),function(e){e.panel&&e.panel.remove()}),x.contextToolbars={}}),x.shortcuts.add("ctrl+shift+e > ctrl+shift+p","",function(){var e=a(x.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.items()[0].focus()})},U=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},V={isString:U("st
 ring"),isObject:U("object"),isArray:U("array"),isNull:U("null"),isBoolean:U("boolean"),isUndefined:U("undefined"),isFunction:U("function"),isNumber:U("number")},j=(r=Array.prototype.indexOf)===undefined?function(e,t){return K(e,t)}:function(e,t){return r.call(e,t)},q=function(e,t){return-1<j(e,t)},Y=function(e,t){for(var n=e.length,i=new Array(n),r=0;r<n;r++){var o=e[r];i[r]=t(o,r,e)}return i},$=function(e,t){for(var n=0,i=e.length;n<i;n++)t(e[n],n,e)},X=function(e,t){for(var n=e.length-1;0<=n;n--)t(e[n],n,e)},J=function(e,t){for(var n=[],i=0,r=e.length;i<r;i++){var o=e[i];t(o,i,e)&&n.push(o)}return n},G=function(e,t){for(var n=0,i=e.length;n<i;n++)if(t(e[n],n,e))return P.some(n);return P.none()},K=function(e,t){for(var n=0,i=e.length;n<i;++n)if(e[n]===t)return n;return-1},Z=Array.prototype.push,Q=function(e){for(var t=[],n=0,i=e.length;n<i;++n){if(!Array.prototype.isPrototypeO
 f(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);Z.apply(t,e[n])}return t},ee=function(e,t){for(var n=0,i=e.length;n<i;++n)if(!0!==t(e[n],n,e))return!1;return!0},te=Array.prototype.slice,ne=V.isFunction(Array.from)?Array.from:function(e){return te.call(e)},ie={map:Y,each:$,eachr:X,partition:function(e,t){for(var n=[],i=[],r=0,o=e.length;r<o;r++){var s=e[r];(t(s,r,e)?n:i).push(s)}return{pass:n,fail:i}},filter:J,groupBy:function(e,t){if(0===e.length)return[];for(var n=t(e[0]),i=[],r=[],o=0,s=e.length;o<s;o++){var a=e[o],l=t(a);l!==n&&(i.push(r),r=[]),n=l,r.push(a)}return 0!==r.length&&i.push(r),i},indexOf:function(e,t){var n=j(e,t);return-1===n?P.none():P.some(n)},foldr:function(e,t,n){return X(e,function(e){n=t(n,e)}),n},foldl:function(e,t,n){return $(e,function(e){n=t(n,e)}),n},find:function(e,t){for(var n=0,i=e.length;n<i;n++){var r=e[n];if(t(r,n,e))return P.some(r)}return P.none()},findIndex:G,flatten:Q,b
 ind:function(e,t){var n=Y(e,t);return Q(n)},forall:ee,exists:function(e,t){return G(e,t).isSome()},contains:q,equal:function(e,n){return e.length===n.length&&ee(e,function(e,t){return e===n[t]})},reverse:function(e){var t=te.call(e,0);return t.reverse(),t},chunk:function(e,t){for(var n=[],i=0;i<e.length;i+=t){var r=e.slice(i,i+t);n.push(r)}return n},difference:function(e,t){return J(e,function(e){return!q(t,e)})},mapToObject:function(e,t){for(var n={},i=0,r=e.length;i<r;i++){var o=e[i];n[String(o)]=t(o,i)}return n},pure:function(e){return[e]},sort:function(e,t){var n=te.call(e,0);return n.sort(t),n},range:function(e,t){for(var n=[],i=0;i<e;i++)n.push(t(i));return n},head:function(e){return 0===e.length?P.none():P.some(e[0])},last:function(e){return 0===e.length?P.none():P.some(e[e.length-1])},from:ne},re={file:{title:"File",items:"newdocument restoredraft | preview | print"},edit:{title:"Edit",items:"undo redo | cut copy paste past
 etext | selectall"},view:{title:"View",items:"code | visualaid visualchars visualblocks | spellchecker | preview fullscreen"},insert:{title:"Insert",items:"image link media template codesample inserttable | charmap hr | pagebreak nonbreaking anchor toc | insertdatetime"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript codeformat | blockformats align | removeformat"},tools:{title:"Tools",items:"spellchecker spellcheckerlanguage | a11ycheck"},table:{title:"Table"},help:{title:"Help"}},oe=function(e,t){return"|"===e?{name:"|",item:{text:"|"}}:t?{name:e,item:t}:null},se=function(e){return e&&"|"===e.item.text},ae=function(n,e,t,r){var i,o,s,a,l,u,c,d;return e?(o=e[r],a=!0):o=re[r],o&&(i={text:o.title},s=[],w.each((o.items||"").split(/[ ,]/),function(e){var t=oe(e,n[e]);t&&amp
 ;s.push(t)}),a||w.each(n,function(e,t){var n,i;e.context!==r||(n=s,i=t,ie.findIndex(n,function(e){return e.name===i}).isSome())||("before"===e.separator&&s.push({name:"|",item:{text:"|"}}),e.prependToContext?s.unshift(oe(t,e)):s.push(oe(t,e)),"after"===e.separator&&s.push({name:"|",item:{text:"|"}}))}),i.menu=ie.map((l=s,u=t,c=ie.filter(l,function(e){return!1===u.hasOwnProperty(e.name)}),d=ie.filter(c,function(e,t,n){return!se(e)||!se(n[t-1])}),ie.filter(d,function(e,t,n){return!se(e)||0<t&&t<n.length-1})),function(e){return e.item}),!i.menu.length)?null:i},le=function(e){for(var t,n=[],i=function(e){var t,n=[],i=h(e);if(i)for(t in i)n.push(t);else for(t in re)n.push(t);return n}(e),r=w.makeMap((t=e,t.getParam("removed_menuitems","")).split(/[ ,]/)),o=c(e),s="string"==typeof o?o.split(/[ ,]/):i,a=0;a<s.length;a++){var l=s[a],u=ae(e.menuItems,h(e),r,l);u&&amp
 ;n.push(u)}return n},ue=p.DOM,ce=function(e){return{width:e.clientWidth,height:e.clientHeight}},de=function(e,t,n){var i,r,o,s;i=e.getContainer(),r=e.getContentAreaContainer().firstChild,o=ce(i),s=ce(r),null!==t&&(t=Math.max(e.getParam("min_width",100,"number"),t),t=Math.min(e.getParam("max_width",65535,"number"),t),ue.setStyle(i,"width",t+(o.width-s.width)),ue.setStyle(r,"width",t)),n=Math.max(e.getParam("min_height",100,"number"),n),n=Math.min(e.getParam("max_height",65535,"number"),n),ue.setStyle(r,"height",n),y(e)},fe=de,he=function(e,t,n){var i=e.getContentAreaContainer();de(e,i.clientWidth+t,i.clientHeight+n)},me=tinymce.util.Tools.resolve("tinymce.Env"),ge=function(e,t,n){var i,r=e.settings[n];r&&r((i=t.getEl("body"),{element:function(){return i}}))},pe=function(c,d,f){return function(e){var t,n,i,r,o,s=e.control,a=s.parents().filte
 r("panel")[0],l=a.find("#"+d)[0],u=(t=f,n=d,w.grep(t,function(e){return e.name===n})[0]);i=d,r=a,o=f,w.each(o,function(e){var t=r.items().filter("#"+e.name)[0];t&&t.visible()&&e.name!==i&&(ge(e,t,"onhide"),t.visible(!1))}),s.parent().items().each(function(e){e.active(!1)}),l&&l.visible()?(ge(u,l,"onhide"),l.hide(),s.active(!1)):(l?l.show():(l=v.create({type:"container",name:d,layout:"stack",classes:"sidebar-panel",html:""}),a.prepend(l),ge(u,l,"onrender")),ge(u,l,"onshow"),s.active(!0)),y(c)}},ve=function(e){return!(me.ie&&!(11<=me.ie)||!e.sidebars)&&0<e.sidebars.length},be=function(n){return{type:"panel",name:"sidebar",layout:"stack",classes:"sidebar",items:[{type:"toolbar",layout:"stack",classes:"sidebar-toolbar",items:w.map(n.sidebars,function(e){var
  t=e.settings;return{type:"button",icon:t.icon,image:t.image,tooltip:t.tooltip,onclick:pe(n,e.name,n.sidebars)}})}]}},ye=function(e){var t=function(){e._skinLoaded=!0,s(e)};return function(){e.initialized?t():e.on("init",t)}},xe=p.DOM,we=function(e){return{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",border:e,html:""}},_e=function(t,e,n){var i,r,o,s,a;if(!1===m(t)&&n.skinUiCss?xe.styleSheetLoader.load(n.skinUiCss,ye(t)):ye(t)(),i=e.panel=v.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[{type:"container",classes:"top-part",items:[!1===d(t)?null:{type:"menubar",border:"0 0 1 0",items:le(t)},B(t,f(t))]},ve(t)?(s=t,{type:"panel",layout:"stack",classes:"edit-aria-container",border:"1 0 0 0",items:[w
 e("0"),be(s)]}):we("1 0 0 0")]}),D.setUiContainer(t,i),"none"!==g(t)&&(r={type:"resizehandle",direction:g(t),onResizeStart:function(){var e=t.getContentAreaContainer().firstChild;o={width:e.clientWidth,height:e.clientHeight}},onResize:function(e){"both"===g(t)?fe(t,o.width+e.deltaX,o.height+e.deltaY):fe(t,null,o.height+e.deltaY)}}),t.getParam("statusbar",!0,"boolean")){var l=b.translate(["Powered by {0}",'<a href="https://www.tinymce.com/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce" rel="noopener" target="_blank" role="presentation" tabindex="-1">tinymce</a>']),u=t.getParam("branding",!0,"boolean")?{type:"label",classes:"branding",html:" "+l}:null;i.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow&quo
 t;,border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath",editor:t},r,u]})}return x(t),t.on("SwitchMode",(a=i,function(e){a.find("*").disabled("readonly"===e.mode)})),i.renderBefore(n.targetNode).reflow(),t.getParam("readonly",!1,"boolean")&&t.setMode("readonly"),n.width&&xe.setStyle(i.getEl(),"width",n.width),t.on("remove",function(){i.remove(),i=null}),_(t,i),F(t),{iframeContainer:i.find("#iframe")[0].getEl(),editorContainer:i.getEl()}},Re=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),Ce=0,ke={id:function(){return"mceu_"+Ce++},create:function(e,t,n){var i=document.createElement(e);return p.DOM.setAttribs(i,t),"string"==typeof n?i.innerHTML=n:w.each(n,function(e){e.nodeType&&i.appendChild(e)}),i},createFragment:function(e){return p.DOM.createFragment(e)},getWindowSize:function(){return p.DOM.getViewPort()},getSize:
 function(e){var t,n;if(e.getBoundingClientRect){var i=e.getBoundingClientRect();t=Math.max(i.width||i.right-i.left,e.offsetWidth),n=Math.max(i.height||i.bottom-i.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,t){return p.DOM.getPos(e,t||ke.getContainer())},getContainer:function(){return me.container?me.container:document.body},getViewPort:function(e){return p.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,t){return p.DOM.addClass(e,t)},removeClass:function(e,t){return p.DOM.removeClass(e,t)},hasClass:function(e,t){return p.DOM.hasClass(e,t)},toggleClass:function(e,t,n){return p.DOM.toggleClass(e,t,n)},css:function(e,t,n){return p.DOM.setStyle(e,t,n)},getRuntimeStyle:function(e,t){return p.DOM.getStyle(e,t,!0)},on:function(e,t,n,i){return p.DOM.bind(e,t,n,i)},off:function(e,t,n){return p.DOM.unbind(e,t,n)},fire:function(e,t,n){return p.DOM.fire(e,t,n)},innerHtml:function(e,t){p.DOM.s
 etHTML(e,t)}},Ee=function(e){return"static"===ke.getRuntimeStyle(e,"position")},He=function(e){return e.state.get("fixed")};function Se(e,t,n){var i,r,o,s,a,l,u,c,d,f;return d=Me(),o=(r=ke.getPos(t,D.getUiContainer(e))).x,s=r.y,He(e)&&Ee(document.body)&&(o-=d.x,s-=d.y),i=e.getEl(),a=(f=ke.getSize(i)).width,l=f.height,u=(f=ke.getSize(t)).width,c=f.height,"b"===(n=(n||"").split(""))[0]&&(s+=c),"r"===n[1]&&(o+=u),"c"===n[0]&&(s+=Math.round(c/2)),"c"===n[1]&&(o+=Math.round(u/2)),"b"===n[3]&&(s-=l),"r"===n[4]&&(o-=a),"c"===n[3]&&(s-=Math.round(l/2)),"c"===n[4]&&(o-=Math.round(a/2)),{x:o,y:s,w:a,h:l}}var Me=function(){var e=window,t=Math.max(e.pageXOffset,document.body.scrollLeft,document.documentElement.scrollLeft),n=Math.max(e.pageYOffset,document.body.scrollTop,document.documentE
 lement.scrollTop);return{x:t,y:n,w:t+(e.innerWidth||document.documentElement.clientWidth),h:n+(e.innerHeight||document.documentElement.clientHeight)}},Te=function(e){var t,n=D.getUiContainer(e);return n&&!He(e)?{x:0,y:0,w:(t=n).scrollWidth-1,h:t.scrollHeight-1}:Me()},Pe={testMoveRel:function(e,t){for(var n=Te(this),i=0;i<t.length;i++){var r=Se(this,e,t[i]);if(He(this)){if(0<r.x&&r.x+r.w<n.w&&0<r.y&&r.y+r.h<n.h)return t[i]}else if(r.x>n.x&&r.x+r.w<n.w&&r.y>n.y&&r.y+r.h<n.h)return t[i]}return t[0]},moveRel:function(e,t){"string"!=typeof t&&(t=this.testMoveRel(e,t));var n=Se(this,e,t);return this.moveTo(n.x,n.y)},moveBy:function(e,t){var n=this.layoutRect();return this.moveTo(n.x+e,n.y+t),this},moveTo:function(e,t){var n=this;function i(e,t,n){return e<0?0:t<e+n&&(e=t-n)<0?0:e}if(n.settings.constrainToViewport){var r=Te(this),o=n.layoutRect();e=i(e,r.w,o.w),t=i(t,r.h,o.
 h)}var s=D.getUiContainer(n);return s&&Ee(s)&&!He(n)&&(e-=s.scrollLeft,t-=s.scrollTop),s&&(e+=1,t+=1),n.state.get("rendered")?n.layoutRect({x:e,y:t}).repaint():(n.settings.x=e,n.settings.y=t),n.fire("move",{x:e,y:t}),n}},We=tinymce.util.Tools.resolve("tinymce.util.Class"),De=tinymce.util.Tools.resolve("tinymce.util.EventDispatcher"),Ne=function(e){var t;if(e)return"number"==typeof e?{top:e=e||0,left:e,bottom:e,right:e}:(1===(t=(e=e.split(" ")).length)?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],10)||0,right:parseInt(e[1],10)||0,bottom:parseInt(e[2],10)||0,left:parseInt(e[3],10)||0})},Ae=function(i,e){function t(e){var t=parseFloat(function(e){var t=i.ownerDocument.defaultView;if(t){var n=t.getComputedStyle(i,null);return n?(e=e.replace(/[A-Z]/g,function(e){return"-"+e}),n.getPropertyValue(e)):null}return i.currentStyle[e]}(e));return
  isNaN(t)?0:t}return{top:t(e+"TopWidth"),right:t(e+"RightWidth"),bottom:t(e+"BottomWidth"),left:t(e+"LeftWidth")}};function Be(){}function Oe(e){this.cls=[],this.cls._map={},this.onchange=e||Be,this.prefix=""}w.extend(Oe.prototype,{add:function(e){return e&&!this.contains(e)&&(this.cls._map[e]=!0,this.cls.push(e),this._change()),this},remove:function(e){if(this.contains(e)){var t=void 0;for(t=0;t<this.cls.length&&this.cls[t]!==e;t++);this.cls.splice(t,1),delete this.cls._map[e],this._change()}return this},toggle:function(e,t){var n=this.contains(e);return n!==t&&(n?this.remove(e):this.add(e),this._change()),this},contains:function(e){return!!this.cls._map[e]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),Oe.prototype.toString=function(){var e;if(this.clsValue)return this.clsValue;e="";for(var t=0;t<this.cls.length;t++)0<t&&(e+=" "),e+=this.pref
 ix+this.cls[t];return e};var ze,Le,Ie,Fe=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,Ue=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,Ve=/^\s*|\s*$/g,je=We.extend({init:function(e){var o=this.match;function s(e,t,n){var i;function r(e){e&&t.push(e)}return r(function(t){if(t)return t=t.toLowerCase(),function(e){return"*"===t||e.type===t}}((i=Fe.exec(e.replace(Ve,"")))[1])),r(function(t){if(t)return function(e){return e._name===t}}(i[2])),r(function(n){if(n)return n=n.split("."),function(e){for(var t=n.length;t--;)if(!e.classes.contains(n[t]))return!1;return!0}}(i[3])),r(function(n,i,r){if(n)return function(e){var t=e[n]?e[n]():"";return i?"="===i?t===r:"*="===i?0<=t.indexOf(r):"~="===i?0<=(" "+t+" ").indexOf(
 " "+r+" "):"!="===i?t!==r:"^="===i?0===t.indexOf(r):"$="===i&&t.substr(t.length-r.length)===r:!!r}}(i[4],i[5],i[6])),r(function(i){var t;if(i)return(i=/(?:not\((.+)\))|(.+)/i.exec(i))[1]?(t=a(i[1],[]),function(e){return!o(e,t)}):(i=i[2],function(e,t,n){return"first"===i?0===t:"last"===i?t===n-1:"even"===i?t%2==0:"odd"===i?t%2==1:!!e[i]&&e[i]()})}(i[7])),t.pseudo=!!i[7],t.direct=n,t}function a(e,t){var n,i,r,o=[];do{if(Ue.exec(""),(i=Ue.exec(e))&&(e=i[3],o.push(i[1]),i[2])){n=i[3];break}}while(i);for(n&&a(n,t),e=[],r=0;r<o.length;r++)">"!==o[r]&&e.push(s(o[r],[],">"===o[r-1]));return t.push(e),t}this._selectors=a(e,[])},match:function(e,t){var n,i,r,o,s,a,l,u,c,d,f,h,m;for(n=0,i=(t=t||this._selectors).length;n<i;n++){for(m=e,h=0,r=(o=(s=t[n]).length)-1;0<=r;r--)for(u=s[r];m;){if(u.pseudo)for(c=d=(f=m.parent().it
 ems()).length;c--&&f[c]!==m;);for(a=0,l=u.length;a<l;a++)if(!u[a](m,c,d)){a=l+1;break}if(a===l){h++;break}if(r===o-1)break;m=m.parent()}if(h===o)return!0}return!1},find:function(e){var t,n,u=[],i=this._selectors;function c(e,t,n){var i,r,o,s,a,l=t[n];for(i=0,r=e.length;i<r;i++){for(a=e[i],o=0,s=l.length;o<s;o++)if(!l[o](a,i,r)){o=s+1;break}if(o===s)n===t.length-1?u.push(a):a.items&&c(a.items(),t,n+1);else if(l.direct)return;a.items&&c(a.items(),t,n)}}if(e.items){for(t=0,n=i.length;t<n;t++)c(e.items(),i[t],0);1<n&&(u=function(e){for(var t,n=[],i=e.length;i--;)(t=e[i]).__checked||(n.push(t),t.__checked=1);for(i=n.length;i--;)delete n[i].__checked;return n}(u))}return ze||(ze=je.Collection),new ze(u)}}),qe=Array.prototype.push,Ye=Array.prototype.slice;Ie={length:0,init:function(e){e&&this.add(e)},add:function(e){return w.isArray(e)?qe.apply(this,e):e instanceof Le?this.add(e.toArray()):qe.call(this,e),this},set:function(e){var t,n=
 this,i=n.length;for(n.length=0,n.add(e),t=n.length;t<i;t++)delete n[t];return n},filter:function(t){var e,n,i,r,o=[];for("string"==typeof t?(t=new je(t),r=function(e){return t.match(e)}):r=t,e=0,n=this.length;e<n;e++)r(i=this[e])&&o.push(i);return new Le(o)},slice:function(){return new Le(Ye.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(e){return w.each(this,e),this},toArray:function(){return w.toArray(this)},indexOf:function(e){for(var t=this.length;t--&&this[t]!==e;);return t},reverse:function(){return new Le(w.toArray(this).reverse())},hasClass:function(e){return!!this[0]&&this[0].classes.contains(e)},prop:function(t,n){var e;return n!==undefined?(this.each(function(e){e[t]&&e[t](n)}),this):(e=this[0])&&e[t]?e[t]():void 0},exec:function(t){var n=w.toArray(arguments).slice(1);return this.each(function(e){e[t]&&e[t].apply(e,n)}),this},remove:function(){for(var e=thi
 s.length;e--;)this[e].remove();return this},addClass:function(t){return this.each(function(e){e.classes.add(t)})},removeClass:function(t){return this.each(function(e){e.classes.remove(t)})}},w.each("fire on off show hide append prepend before after reflow".split(" "),function(n){Ie[n]=function(){var t=w.toArray(arguments);return this.each(function(e){n in e&&e[n].apply(e,t)}),this}}),w.each("text name disabled active selected checked visible parent value data".split(" "),function(t){Ie[t]=function(e){return this.prop(t,e)}}),Le=We.extend(Ie);var $e=je.Collection=Le,Xe=function(e){this.create=e.create};Xe.create=function(r,o){return new Xe({create:function(t,n){var i,e=function(e){t.set(n,e.value)};return t.on("change:"+n,function(e){r.set(o,e.value)}),r.on("change:"+o,e),(i=t._bindings)||(i=t._bindings=[],t.on("destroy",function(){for(var e=i.length;e--;)i[e]()})),i.push(function(){r.off("change:&quot
 ;+o,e)}),r.get(o)}})};var Je=tinymce.util.Tools.resolve("tinymce.util.Observable");function Ge(e){return 0<e.nodeType}var Ke,Ze,Qe=We.extend({Mixins:[Je],init:function(e){var t,n;for(t in e=e||{})(n=e[t])instanceof Xe&&(e[t]=n.create(this,t));this.data=e},set:function(t,n){var i,r,o=this.data[t];if(n instanceof Xe&&(n=n.create(this,t)),"object"==typeof t){for(i in t)this.set(i,t[i]);return this}return function e(t,n){var i,r;if(t===n)return!0;if(null===t||null===n)return t===n;if("object"!=typeof t||"object"!=typeof n)return t===n;if(w.isArray(n)){if(t.length!==n.length)return!1;for(i=t.length;i--;)if(!e(t[i],n[i]))return!1}if(Ge(t)||Ge(n))return t===n;for(i in r={},n){if(!e(t[i],n[i]))return!1;r[i]=!0}for(i in t)if(!r[i]&&!e(t[i],n[i]))return!1;return!0}(o,n)||(this.data[t]=n,r={target:this,name:t,value:n,oldValue:o},this.fire("change:"+t,r),this.fire("change",r)),this},get:function(e){return thi
 s.data[e]},has:function(e){return e in this.data},bind:function(e){return Xe.create(this,e)},destroy:function(){this.fire("destroy")}}),et={},tt={add:function(e){var t=e.parent();if(t){if(!t._layout||t._layout.isNative())return;et[t._id]||(et[t._id]=t),Ke||(Ke=!0,u.requestAnimationFrame(function(){var e,t;for(e in Ke=!1,et)(t=et[e]).state.get("rendered")&&t.reflow();et={}},document.body))}},remove:function(e){et[e._id]&&delete et[e._id]}},nt="onmousewheel"in document,it=!1,rt=0,ot={Statics:{classPrefix:"mce-"},isRtl:function(){return Ze.rtl},classPrefix:"mce-",init:function(t){var e,n,i=this;function r(e){var t;for(e=e.split(" "),t=0;t<e.length;t++)i.classes.add(e[t])}i.settings=t=w.extend({},i.Defaults,t),i._id=t.id||"mceu_"+rt++,i._aria={role:t.role},i._elmCache={},i.$=Re,i.state=new Qe({visible:!0,active:!1,disabled:!1,value:""}),i.data=new Qe(t.data),i.classes=new Oe(function(){i.s
 tate.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,(e=t.classes)&&(i.Defaults&&(n=i.Defaults.classes)&&e!==n&&r(n),r(e)),w.each("title text name visible disabled active value".split(" "),function(e){e in t&&i[e](t[e])}),i.on("click",function(){if(i.disabled())return!1}),i.settings=t,i.borderBox=Ne(t.border),i.paddingBox=Ne(t.padding),i.marginBox=Ne(t.margin),t.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){var e=D.getUiContainer(this);return e||ke.getContainer()},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},initLayoutRect:function(){var e,t,n,i,r,o,s,a,l,u,c=this,d=c.settings,f=c.getEl();e=c.borderBox=c.borderBox||Ae(f,"border"),c.paddingBox=c.paddingBox||Ae(f,"padding"),c.marginBox=c.marginBox||Ae(f,"margi
 n"),u=ke.getSize(f),a=d.minWidth,l=d.minHeight,r=a||u.width,o=l||u.height,n=d.width,i=d.height,s=void 0!==(s=d.autoResize)?s:!n&&!i,n=n||r,i=i||o;var h=e.left+e.right,m=e.top+e.bottom,g=d.maxWidth||65535,p=d.maxHeight||65535;return c._layoutRect=t={x:d.x||0,y:d.y||0,w:n,h:i,deltaW:h,deltaH:m,contentW:n-h,contentH:i-m,innerW:n-h,innerH:i-m,startMinWidth:a||0,startMinHeight:l||0,minW:Math.min(r,g),minH:Math.min(o,p),maxW:g,maxH:p,autoResize:s,scrollW:0},c._lastLayoutRect={},t},layoutRect:function(e){var t,n,i,r,o,s=this,a=s._layoutRect;return a||(a=s.initLayoutRect()),e?(i=a.deltaW,r=a.deltaH,e.x!==undefined&&(a.x=e.x),e.y!==undefined&&(a.y=e.y),e.minW!==undefined&&(a.minW=e.minW),e.minH!==undefined&&(a.minH=e.minH),(n=e.w)!==undefined&&(n=(n=n<a.minW?a.minW:n)>a.maxW?a.maxW:n,a.w=n,a.innerW=n-i),(n=e.h)!==undefined&&(n=(n=n<a.minH?a.minH:n)>a.maxH?a.maxH:n,a.h=n,a.innerH=n-r),(n=e.innerW)!==undefined&&(n
 =(n=n<a.minW-i?a.minW-i:n)>a.maxW-i?a.maxW-i:n,a.innerW=n,a.w=n+i),(n=e.innerH)!==undefined&&(n=(n=n<a.minH-r?a.minH-r:n)>a.maxH-r?a.maxH-r:n,a.innerH=n,a.h=n+r),e.contentW!==undefined&&(a.contentW=e.contentW),e.contentH!==undefined&&(a.contentH=e.contentH),(t=s._lastLayoutRect).x===a.x&&t.y===a.y&&t.w===a.w&&t.h===a.h||((o=Ze.repaintControls)&&o.map&&!o.map[s._id]&&(o.push(s),o.map[s._id]=!0),t.x=a.x,t.y=a.y,t.w=a.w,t.h=a.h),s):a},repaint:function(){var e,t,n,i,r,o,s,a,l,u,c=this;l=document.createRange?function(e){return e}:Math.round,e=c.getEl().style,i=c._layoutRect,a=c._lastRepaintRect||{},o=(r=c.borderBox).left+r.right,s=r.top+r.bottom,i.x!==a.x&&(e.left=l(i.x)+"px",a.x=i.x),i.y!==a.y&&(e.top=l(i.y)+"px",a.y=i.y),i.w!==a.w&&(u=l(i.w-o),e.width=(0<=u?u:0)+"px",a.w=i.w),i.h!==a.h&&(u=l(i.h-s),e.height=(0<=u?u:0)+"px",a.h
 =i.h),c._hasBody&&i.innerW!==a.innerW&&(u=l(i.innerW),(n=c.getEl("body"))&&((t=n.style).width=(0<=u?u:0)+"px"),a.innerW=i.innerW),c._hasBody&&i.innerH!==a.innerH&&(u=l(i.innerH),(n=n||c.getEl("body"))&&((t=t||n.style).height=(0<=u?u:0)+"px"),a.innerH=i.innerH),c._lastRepaintRect=a,c.fire("repaint",{},!1)},updateLayoutRect:function(){var e=this;e.parent()._lastRect=null,ke.css(e.getEl(),{width:"",height:""}),e._layoutRect=e._lastRepaintRect=e._lastLayoutRect=null,e.initLayoutRect()},on:function(e,t){var n,i,r,o=this;return st(o).on(e,"string"!=typeof(n=t)?n:function(e){return i||o.parentsAndSelf().each(function(e){var t=e.settings.callbacks;if(t&&(i=t[n]))return r=e,!1}),i?i.call(r,e):(e.action=n,void this.fire("execute",e))}),o},off:function(e,t){return st(this).off(e,t),this},fire:function(e,t,n){if((t=t||{}).control||(t.control=thi
 s),t=st(this).fire(e,t),!1!==n&&this.parent)for(var i=this.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return st(this).has(e)},parents:function(e){var t,n=new $e;for(t=this.parent();t;t=t.parent())n.add(t);return e&&(n=n.filter(e)),n},parentsAndSelf:function(e){return new $e(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},innerHtml:function(e){return this.$el.html(e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=Re("#"+t)[0]),this._elmCache[t]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,i=n.getEl(n.ariaTarget);return voi
 d 0===t?n._aria[e]:(n._aria[e]=t,n.state.get("rendered")&&i.setAttribute("role"===e?e:"aria-"+e,t),n)},encode:function(e,t){return!1!==t&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return Ze.translate?Ze.translate(e):e},before:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this),!0),this},after:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this)),this},remove:function(){var t,e,n=this,i=n.getEl(),r=n.parent();if(n.items){var o=n.items().toArray();for(e=o.length;e--;)o[e].remove()}r&&r.items&&(t=[],r.items().each(function(e){e!==n&&t.push(e)}),r.items().set(t),r._lastRect=null),n._eventsRoot&&n._eventsRoot===n&&Re(i).off();var s=n.getRoot().controlIdLookup;return s&&delete s[n._id],i&&i.parentNode&am
 p;&i.parentNode.removeChild(i),n.state.set("rendered",!1),n.state.destroy(),n.fire("remove"),n},renderBefore:function(e){return Re(e).before(this.renderHtml()),this.postRender(),this},renderTo:function(e){return Re(e||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var e,t,n,i,r,o=this,s=o.settings;for(i in o.$el=Re(o.getEl()),o.state.set("rendered",!0),s)0===i.indexOf("on")&&o.on(i.substr(2),s[i]);if(o._eventsRoot){for(n=o.parent();!r&&n;n=n.parent())r=n._eventsRoot;if(r)for(i in r._nativeEvents)o._nativeEvents[i]=!0}at(o),s.style&&(e=o.getEl())&&(e.setAttribute("style",s.style),e.style.cssText=s.style),o.settings.border&&(t=o.borderBox,o.$el.css({"border-top-width":t.top,&q
 uot;border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left}));var a=o.getRoot();for(var l in a.controlIdLookup||(a.controlIdLookup={}),(a.controlIdLookup[o._id]=o)._aria)o.aria(l,o._aria[l]);!1===o.state.get("visible")&&(o.getEl().style.display="none"),o.bindStates(),o.state.on("change:visible",function(e){var t,n=e.value;o.state.get("rendered")&&(o.getEl().style.display=!1===n?"none":"",o.getEl().getBoundingClientRect()),(t=o.parent())&&(t._lastRect=null),o.fire(n?"show":"hide"),tt.add(o)}),o.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(e){var t,n,i,r,o,s,a=this.getEl(),l=a.parentNode,u=function(e,t){var n,i,r=e;for(n=i=0;r&&r!==t&&r.nodeType;)n+=r.offsetLeft||0,i+=r.offsetTop||0,r=r.offsetParent;return{x:n,y:i}}(a,l);return t=u.x,n=u.y,i=a.offsetWidth,r=a.offsetHeight,o
 =l.clientWidth,s=l.clientHeight,"end"===e?(t-=o-i,n-=s-r):"center"===e&&(t-=o/2-i/2,n-=s/2-r/2),l.scrollLeft=t,l.scrollTop=n,this},getRoot:function(){for(var e,t=this,n=[];t;){if(t.rootControl){e=t.rootControl;break}n.push(t),t=(e=t).parent()}e||(e=this);for(var i=n.length;i--;)n[i].rootControl=e;return e},reflow:function(){tt.remove(this);var e=this.parent();return e&&e._layout&&!e._layout.isNative()&&e.reflow(),this}};function st(n){return n._eventDispatcher||(n._eventDispatcher=new De({scope:n,toggleEvent:function(e,t){t&&De.isNative(e)&&(n._nativeEvents||(n._nativeEvents={}),n._nativeEvents[e]=!0,n.state.get("rendered")&&at(n))}})),n._eventDispatcher}function at(a){var e,t,n,l,i,r;function o(e){var t=a.getParentCtrl(e.target);t&&t.fire(e.type,e)}function s(){var e=l._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mou
 seleave",{target:e.getEl()})}),l._lastHoverCtrl=null)}function u(e){var t,n,i,r=a.getParentCtrl(e.target),o=l._lastHoverCtrl,s=0;if(r!==o){if((n=(l._lastHoverCtrl=r).parents().toArray().reverse()).push(r),o){for((i=o.parents().toArray().reverse()).push(o),s=0;s<i.length&&n[s]===i[s];s++);for(t=i.length-1;s<=t;t--)(o=i[t]).fire("mouseleave",{target:o.getEl()})}for(t=s;t<n.length;t++)(r=n[t]).fire("mouseenter",{target:r.getEl()})}}function c(e){e.preventDefault(),"mousewheel"===e.type?(e.deltaY=-.025*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-.025*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=a.fire("wheel",e)}if(i=a._nativeEvents){for((n=a.parents().toArray()).unshift(a),e=0,t=n.length;!l&&e<t;e++)l=n[e]._eventsRoot;for(l||(l=n[n.length-1]||a),a._eventsRoot=l,t=e,e=0;e<t;e++)n[e]._eventsRoot=l;var d=l._delegates;for(r in d||(d=l._delegates={}),i){if(!i)return!1;"wheel"!==r||it?("mouseent
 er"===r||"mouseleave"===r?l._hasMouseEnter||(Re(l.getEl()).on("mouseleave",s).on("mouseover",u),l._hasMouseEnter=1):d[r]||(Re(l.getEl()).on(r,o),d[r]=!0),i[r]=!1):nt?Re(a.getEl()).on("mousewheel",c):Re(a.getEl()).on("DOMMouseScroll",c)}}}w.each("text title visible disabled active value".split(" "),function(t){ot[t]=function(e){return 0===arguments.length?this.state.get(t):(void 0!==e&&this.state.set(t,e),this)}});var lt=Ze=We.extend(ot),ut=function(e){return!!e.getAttribute("data-mce-tabstop")};function ct(e){var o,r,n=e.root;function i(e){return e&&1===e.nodeType}try{o=document.activeElement}catch(t){o=document.body}function s(e){return i(e=e||o)?e.getAttribute("role"):null}function a(e){for(var t,n=e||o;n=n.parentNode;)if(t=s(n))return t}function l(e){var t=o;if(i(t))return t.getAttribute("aria-"+e)}function u(e){var t=e.tagName.toUpperCase();return"INPUT&q
 uot;===t||"TEXTAREA"===t||"SELECT"===t}function c(t){var r=[];return function e(t){if(1===t.nodeType&&"none"!==t.style.display&&!t.disabled){var n;(u(n=t)&&!n.hidden||ut(n)||/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(s(n)))&&r.push(t);for(var i=0;i<t.childNodes.length;i++)e(t.childNodes[i])}}(t||n.getEl()),r}function d(e){var t,n;(n=(e=e||r).parents().toArray()).unshift(e);for(var i=0;i<n.length&&!(t=n[i]).settings.ariaRoot;i++);return t}function f(e,t){return e<0?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function h(e,t){var n=-1,i=d();t=t||c(i.getEl());for(var r=0;r<t.length;r++)t[r]===o&&(n=r);n+=e,i.lastAriaIndex=f(n,t)}function m(){"tablist"===a()?h(-1,c(o.parentNode)):r.parent().submenu?b():h(-1)}function g(){var e=s(),t=a();"tablist"===t?h(1,c(o.parentNode)):"menuitem"===e&&"menu&
 quot;===t&&l("haspopup")?y():h(1)}function p(){h(-1)}function v(){var e=s(),t=a();"menuitem"===e&&"menubar"===t?y():"button"===e&&l("haspopup")?y({key:"down"}):h(1)}function b(){r.fire("cancel")}function y(e){e=e||{},r.fire("click",{target:o,aria:e})}return r=n.getParentCtrl(o),n.on("keydown",function(e){function t(e,t){u(o)||ut(o)||"slider"!==s(o)&&!1!==t(e)&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,m);break;case 39:t(e,g);break;case 38:t(e,p);break;case 40:t(e,v);break;case 27:b();break;case 14:case 13:case 32:t(e,y);break;case 9:!function(e){if("tablist"===a()){var t=c(r.getEl("body"))[0];t&&t.focus()}else h(e.shiftKey?-1:1)}(e),e.preventDefault()}}),n.on("focusin",function(e){o=e.target,r=e.control}),{focusFirst:function(e){var t=d(e),n=c(t.getEl());t.settings.ariaRemem
 ber&&"lastAriaIndex"in t?f(t.lastAriaIndex,n):f(0,n)}}}var dt={},ft=lt.extend({init:function(e){var t=this;t._super(e),(e=t.settings).fixed&&t.state.set("fixed",!0),t._items=new $e,t.isRtl()&&t.classes.add("rtl"),t.bodyClasses=new Oe(function(){t.state.get("rendered")&&(t.getEl("body").className=this.toString())}),t.bodyClasses.prefix=t.classPrefix,t.classes.add("container"),t.bodyClasses.add("container-body"),e.containerCls&&t.classes.add(e.containerCls),t._layout=v.create((e.layout||"")+"layout"),t.settings.items?t.add(t.settings.items):t.add(t.render()),t._hasBody=!0},items:function(){return this._items},find:function(e){return(e=dt[e]=dt[e]||new je(e)).find(this)},add:function(e){return this.items().add(this.create(e)).parent(this),this},focus:function(e){var t,n,i,r=this;if(!e||!(n=r.keyboardNav||r.parents().eq(-1)[0].keyboardNav))return i=r.find(&qu
 ot;*"),r.statusbar&&i.add(r.statusbar.items()),i.each(function(e){if(e.settings.autofocus)return t=null,!1;e.canFocus&&(t=t||e)}),t&&t.focus(),r;n.focusFirst(r)},replace:function(e,t){for(var n,i=this.items(),r=i.length;r--;)if(i[r]===e){i[r]=t;break}0<=r&&((n=t.getEl())&&n.parentNode.removeChild(n),(n=e.getEl())&&n.parentNode.removeChild(n)),t.parent(this)},create:function(e){var t,n=this,i=[];return w.isArray(e)||(e=[e]),w.each(e,function(e){e&&(e instanceof lt||("string"==typeof e&&(e={type:e}),t=w.extend({},n.settings.defaults,e),e.type=t.type=t.type||e.type||n.settings.defaultType||(t.defaults?t.defaults.type:null),e=v.create(t)),i.push(e))}),i},renderNew:function(){var i=this;return i.items().each(function(e,t){var n;e.parent(i),e.state.get("rendered")||((n=i.getEl("body")).hasChildNodes()&&t<=n.childNodes.length-1?Re(n.childNodes[t]).before(e.renderHtml()):Re(n).ap
 pend(e.renderHtml()),e.postRender(),tt.add(e))}),i._layout.applyClasses(i.items().filter(":visible")),i._lastRect=null,i},append:function(e){return this.add(e).renderNew()},prepend:function(e){return this.items().set(this.create(e).concat(this.items().toArray())),this.renderNew()},insert:function(e,t,n){var i,r,o;return e=this.create(e),i=this.items(),!n&&t<i.length-1&&(t+=1),0<=t&&t<i.length&&(r=i.slice(0,t).toArray(),o=i.slice(t).toArray(),i.set(r.concat(e,o))),this.renderNew()},fromJSON:function(e){for(var t in e)this.find("#"+t).value(e[t]);return this},toJSON:function(){var i={};return this.find("*").each(function(e){var t=e.name(),n=e.value();t&&void 0!==n&&(i[t]=n)}),i},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"'+(n?' role="'+this.settings.role+'"':"&qu
 ot;)+'><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e,t=this;return t.items().exec("postRender"),t._super(),t._layout.postRender(t),t.state.set("rendered",!0),t.settings.style&&t.$el.css(t.settings.style),t.settings.border&&(e=t.borderBox,t.$el.css({"border-top-width":e.top,"border-right-width":e.right,"border-bottom-width":e.bottom,"border-left-width":e.left})),t.parent()||(t.keyboardNav=ct({root:t})),t},initLayoutRect:function(){var e=this._super();return this._layout.recalc(this),e},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;if(!n||n.w!==t.w||n.h!==t.h)return e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0},reflow:function(){var e;if(tt.remove(this),this.visible()){for(lt.repaintControls=[],lt.repaintControls.map=
 {},this.recalc(),e=lt.repaintControls.length;e--;)lt.repaintControls[e].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),lt.repaintControls=[]}return this}});function ht(e){var t,n;if(e.changedTouches)for(t="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<t.length;n++)e[t[n]]=e.changedTouches[0][t[n]]}function mt(e,h){var m,g,t,p,v,b,y,x=h.document||document;h=h||{};var w=x.getElementById(h.handle||e);t=function(e){var t,n,i,r,o,s,a,l,u,c,d,f=(t=x,u=Math.max,n=t.documentElement,i=t.body,r=u(n.scrollWidth,i.scrollWidth),o=u(n.clientWidth,i.clientWidth),s=u(n.offsetWidth,i.offsetWidth),a=u(n.scrollHeight,i.scrollHeight),l=u(n.clientHeight,i.clientHeight),{width:r<s?o:r,height:a<u(n.offsetHeight,i.offsetHeight)?l:a});ht(e),e.preventDefault(),g=e.button,c=w,b=e.screenX,y=e.screenY,d=window.getComputedStyle?window.getComputedStyle(c,null).getPropertyValue("cursor&quo
 t;):c.runtimeStyle.cursor,m=Re("<div></div>").css({position:"absolute",top:0,left:0,width:f.width,height:f.height,zIndex:2147483647,opacity:1e-4,cursor:d}).appendTo(x.body),Re(x).on("mousemove touchmove",v).on("mouseup touchend",p),h.start(e)},v=function(e){if(ht(e),e.button!==g)return p(e);e.deltaX=e.screenX-b,e.deltaY=e.screenY-y,e.preventDefault(),h.drag(e)},p=function(e){ht(e),Re(x).off("mousemove touchmove",v).off("mouseup touchend",p),m.remove(),h.stop&&h.stop(e)},this.destroy=function(){Re(w).off()},Re(w).on("mousedown touchstart",t)}var gt,pt,vt,bt,yt={init:function(){this.on("repaint",this.renderScroll)},renderScroll:function(){var p=this,v=2;function n(){var m,g,e;function t(e,t,n,i,r,o){var s,a,l,u,c,d,f,h;if(a=p.getEl("scroll"+e)){if(f=t.toLowerCase(),h=n.toLowerCase(),Re(p.getEl("absend")).css(f,p.layoutRect()[i]-1),!r)return void Re(a).css("displ
 ay","none");Re(a).css("display","block"),s=p.getEl("body"),l=p.getEl("scroll"+e+"t"),u=s["client"+n]-2*v,c=(u-=m&&g?a["client"+o]:0)/s["scroll"+n],(d={})[f]=s["offset"+t]+v,d[h]=u,Re(a).css(d),(d={})[f]=s["scroll"+t]*c,d[h]=u*c,Re(l).css(d)}}e=p.getEl("body"),m=e.scrollWidth>e.clientWidth,g=e.scrollHeight>e.clientHeight,t("h","Left","Width","contentW",m,"Height"),t("v","Top","Height","contentH",g,"Width")}p.settings.autoScroll&&(p._hasScroll||(p._hasScroll=!0,function(){function e(s,a,l,u,c){var d,e=p._id+"-scroll"+s,t=p.classPrefix;Re(p.getEl()).append('<div id="'+e+'" class="'+t+"scrollbar "+t+"scrollbar-"+s+'"><div id="'+e+'t" class="'+t+'scrollbar-thumb">&
 lt;/div></div>'),p.draghelper=new mt(e+"t",{start:function(){d=p.getEl("body")["scroll"+a],Re("#"+e).addClass(t+"active")},drag:function(e){var t,n,i,r,o=p.layoutRect();n=o.contentW>o.innerW,i=o.contentH>o.innerH,r=p.getEl("body")["client"+l]-2*v,t=(r-=n&&i?p.getEl("scroll"+s)["client"+c]:0)/p.getEl("body")["scroll"+l],p.getEl("body")["scroll"+a]=d+e["delta"+u]/t},stop:function(){Re("#"+e).removeClass(t+"active")}})}p.classes.add("scroll"),e("v","Top","Height","Y","Width"),e("h","Left","Width","X","Height")}(),p.on("wheel",function(e){var t=p.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),Re(p.getEl("body")).on("scroll",n)),n()
 )}},xt=ft.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[yt],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),void 0===n?n='<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}}),wt={resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(e,t){if(e<=1||t<=1){var n=ke.getWindowSize();e=e<=1?e*n.w:e,t=t<=1?t*n.h:t}return this._layoutRect.autoResize=!1,this.layoutRect({minW:e,minH:t,w:e,h:t}).reflow()},resizeBy:function(e,t){var n=this.layoutRect();return this.resizeTo(n.w+e,n.h+t)}},_t=[],Rt=[];function C
 t(e,t){for(;e;){if(e===t)return!0;e=e.parent()}}function kt(){gt||(gt=function(e){2!==e.button&&function(e){for(var t=_t.length;t--;){var n=_t[t],i=n.getParentCtrl(e.target);if(n.settings.autohide){if(i&&(Ct(i,n)||n.parent()===i))continue;(e=n.fire("autohide",{target:e.target})).isDefaultPrevented()||n.hide()}}}(e)},Re(document).on("click touchstart",gt))}function Et(r){var e=ke.getViewPort().y;function t(e,t){for(var n,i=0;i<_t.length;i++)if(_t[i]!==r)for(n=_t[i].parent();n&&(n=n.parent());)n===r&&_t[i].fixed(e).moveBy(0,t).repaint()}r.settings.autofix&&(r.state.get("fixed")?r._autoFixY>e&&(r.fixed(!1).layoutRect({y:r._autoFixY}).repaint(),t(!1,r._autoFixY-e)):(r._autoFixY=r.layoutRect().y,r._autoFixY<e&&(r.fixed(!0).layoutRect({y:0}).repaint(),t(!0,e-r._autoFixY))))}function Ht(e,t){var n,i,r=St.zIndex||65535;if(e)Rt.push(t);else for(n=Rt.length;n--;)Rt[n]===t&&Rt.splice(n,1);if(
 Rt.length)for(n=0;n<Rt.length;n++)Rt[n].modal&&(r++,i=Rt[n]),Rt[n].getEl().style.zIndex=r,Rt[n].zIndex=r,r++;var o=Re("#"+t.classPrefix+"modal-block",t.getContainerElm())[0];i?Re(o).css("z-index",i.zIndex-1):o&&(o.parentNode.removeChild(o),bt=!1),St.currentZIndex=r}var St=xt.extend({Mixins:[Pe,wt],init:function(e){var i=this;i._super(e),(i._eventsRoot=i).classes.add("floatpanel"),e.autohide&&(kt(),function(){if(!vt){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;vt=function(){document.all&&t===e.clientWidth&&n===e.clientHeight||(t=e.clientWidth,n=e.clientHeight,St.hideAll())},Re(window).on("resize",vt)}}(),_t.push(i)),e.autofix&&(pt||(pt=function(){var e;for(e=_t.length;e--;)Et(_t[e])},Re(window).on("scroll",pt)),i.on("move",function(){Et(this)})),i.on("postrender show",function(e){if(e.control===i){var t,n=i.classPrefix;i.modal&&amp
 ;!bt&&((t=Re("#"+n+"modal-block",i.getContainerElm()))[0]||(t=Re('<div id="'+n+'modal-block" class="'+n+"reset "+n+'fade"></div>').appendTo(i.getContainerElm())),u.setTimeout(function(){t.addClass(n+"in"),Re(i.getEl()).addClass(n+"in")}),bt=!0),Ht(!0,i)}}),i.on("show",function(){i.parents().each(function(e){if(e.state.get("fixed"))return i.fixed(!0),!1})}),e.popover&&(i._preBodyHtml='<div class="'+i.classPrefix+'arrow"></div>',i.classes.add("popover").add("bottom").add(i.isRtl()?"end":"start")),i.aria("label",e.ariaLabel),i.aria("labelledby",i._id),i.aria("describedby",i.describedBy||i._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!==e){if(t.state.get("rendered")){var n=ke.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+
 =n.y}t.classes.toggle("fixed",e),t.state.set("fixed",e)}return t},show:function(){var e,t=this._super();for(e=_t.length;e--&&_t[e]!==this;);return-1===e&&_t.push(this),t},hide:function(){return Mt(this),Ht(!1,this),this._super()},hideAll:function(){St.hideAll()},close:function(){return this.fire("close").isDefaultPrevented()||(this.remove(),Ht(!1,this)),this},remove:function(){Mt(this),this._super()},postRender:function(){return this.settings.bodyRole&&this.getEl("body").setAttribute("role",this.settings.bodyRole),this._super()}});function Mt(e){var t;for(t=_t.length;t--;)_t[t]===e&&_t.splice(t,1);for(t=Rt.length;t--;)Rt[t]===e&&Rt.splice(t,1)}St.hideAll=function(){for(var e=_t.length;e--;){var t=_t[e];t&&t.settings.autohide&&(t.hide(),_t.splice(e,1))}};var Tt=function(e,t){return!(!e||t.settings.ui_container)},Pt=function(s,e,t){var a,n,l=p.DOM,i=s.getParam("fixed_toolbar_
 container");i&&(n=l.select(i)[0]);var r=function(){if(a&&a.moveRel&&a.visible()&&!a._fixed){var e=s.selection.getScrollContainer(),t=s.getBody(),n=0,i=0;if(e){var r=l.getPos(t),o=l.getPos(e);n=Math.max(0,o.x-r.x),i=Math.max(0,o.y-r.y)}a.fixed(!1).moveRel(t,s.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(n,i)}},o=function(){a&&(a.show(),r(),l.addClass(s.getBody(),"mce-edit-focus"))},u=function(){a&&(a.hide(),St.hideAll(),l.removeClass(s.getBody(),"mce-edit-focus"))},c=function(){a?a.visible()||o():(a=e.panel=v.create({type:n?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:Tt(n,s),fixed:Tt(n,s),border:1,items:[!1===d(s)?null:{type:"menubar",border:"0 0 1 0",items:le(s)},B(s
 ,f(s))]}),D.setUiContainer(s,a),x(s),n?a.renderTo(n).reflow():a.renderTo().reflow(),_(s,a),o(),F(s),s.on("nodeChange",r),s.on("ResizeWindow",r),s.on("activate",o),s.on("deactivate",u),s.nodeChanged())};return s.settings.content_editable=!0,s.on("focus",function(){!1===m(s)&&t.skinUiCss?l.styleSheetLoader.load(t.skinUiCss,c,c):c()}),s.on("blur hide",u),s.on("remove",function(){a&&(a.remove(),a=null)}),!1===m(s)&&t.skinUiCss?l.styleSheetLoader.load(t.skinUiCss,ye(s)):ye(s)(),{}};function Wt(i,r){var o,s,a=this,l=lt.classPrefix;a.show=function(e,t){function n(){o&&(Re(i).append('<div class="'+l+"throbber"+(r?" "+l+"throbber-inline":"")+'"></div>'),t&&t())}return a.hide(),o=!0,e?s=u.setTimeout(n,e):n(),a},a.hide=function(){var e=i.lastChild;return u.clearTimeout(s),e&&-1!==e.className.indexOf("throbber&qu
 ot;)&&e.parentNode.removeChild(e),o=!1,a}}var Dt=function(e,t){var n;e.on("ProgressState",function(e){n=n||new Wt(t.panel.getEl("body")),e.state?n.show(e.time):n.hide()})},Nt=function(e,t,n){var i=function(e){var t=e.settings,n=t.skin,i=t.skin_url;if(!1!==n){var r=n||"lightgray";i=i?e.documentBaseURI.toAbsolute(i):l.baseURL+"/skins/"+r}return i}(e);return i&&(n.skinUiCss=i+"/skin.min.css",e.contentCSS.push(i+"/content"+(e.inline?".inline":"")+".min.css")),Dt(e,t),e.getParam("inline",!1,"boolean")?Pt(e,t,n):_e(e,t,n)},At=lt.extend({Mixins:[Pe],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.
 encode(e.state.get("text"))+"</div></div>"},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl().lastChild.innerHTML=t.encode(e.value)}),t._super()},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=131070}}),Bt=lt.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.canFocus=!0,i.tooltip&&!1!==Bt.tooltips&&(r.on("mouseenter",function(e){var t=r.tooltip().moveTo(-65535);if(e.control===r){var n=t.text(i.tooltip).show().testMoveRel(r.getEl(),["bc-tc","bc-tl","bc-tr"]);t.classes.toggle("tooltip-n","bc-tc"===n),t.classes.toggle("tooltip-nw","bc-tl"===n),t.classes.toggle("tooltip-ne","bc-tr"===n),t.moveRel(r.getEl(),n)}else t.hide()}),r.on("mouseleave mousedown click",function(){r.tooltip().remove(),r._t
 ooltip=null})),r.aria("label",i.ariaLabel||i.tooltip)},tooltip:function(){return this._tooltip||(this._tooltip=new At({type:"tooltip"}),D.inheritUiContainer(this,this._tooltip),this._tooltip.renderTo()),this._tooltip},postRender:function(){var e=this,t=e.settings;e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},bindStates:function(){var t=this;function n(e){t.aria("disabled",e),t.classes.toggle("disabled",e)}function i(e){t.aria("pressed",e),t.classes.toggle("active",e)}return t.state.on("change:disabled",function(e){n(e.value)}),t.state.on("change:active",function(e){i(e.value)}),t.state.get("disabled")&&n(!0),t.state.get("active")&&i(!0),t._super()},remove:function(){this._super(),this._tooltip&&(this._tooltip.remove(),this._tooltip=null)}}),Ot=Bt.extend({Defaults:{value:0},init:function(e){t
 his._super(e),this.classes.add("progress"),this.settings.filter||(this.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this._id,t=this.classPrefix;return'<div id="'+e+'" class="'+this.classes+'"><div class="'+t+'bar-container"><div class="'+t+'bar"></div></div><div class="'+t+'text">0%</div></div>'},postRender:function(){return this._super(),this.value(this.settings.value),this},bindStates:function(){var t=this;function n(e){e=t.settings.filter(e),t.getEl().lastChild.innerHTML=e+"%",t.getEl().firstChild.firstChild.style.width=e+"%"}return t.state.on("change:value",function(e){n(e.value)}),n(t.state.get("value")),t._super()}}),zt=function(e,t){e.getEl().lastChild.textContent=t+(e.progressBar?" "+e.progressBar.value()+"%":"")},Lt=lt.extend({Mixins:[Pe],Defaults:{classes:"wi
 dget notification"},init:function(e){var t=this;t._super(e),t.maxWidth=e.maxWidth,e.text&&t.text(e.text),e.icon&&(t.icon=e.icon),e.color&&(t.color=e.color),e.type&&t.classes.add("notification-"+e.type),e.timeout&&(e.timeout<0||0<e.timeout)&&!e.closeButton?t.closeButton=!1:(t.classes.add("has-close"),t.closeButton=!0),e.progressBar&&(t.progressBar=new Ot),t.on("click",function(e){-1!==e.target.className.indexOf(t.classPrefix+"close")&&t.close()})},renderHtml:function(){var e,t=this,n=t.classPrefix,i="",r="",o="";return t.icon&&(i='<i class="'+n+"ico "+n+"i-"+t.icon+'"></i>'),e=' style="max-width: '+t.maxWidth+"px;"+(t.color?"background-color: "+t.color+';"':'"'),t.closeButton&&(r='<button type="button" class="'+n+'close" aria-h
 idden="true">\xd7</button>'),t.progressBar&&(o=t.progressBar.renderHtml()),'<div id="'+t._id+'" class="'+t.classes+'"'+e+' role="presentation">'+i+'<div class="'+n+'notification-inner">'+t.state.get("text")+"</div>"+o+r+'<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;" aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div></div>'},postRender:function(){var e=this;return u.setTimeout(function(){e.$el.addClass(e.classPrefix+"in"),zt(e,e.state.get("text"))},100),e._super()},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl().firstChild.innerHTML=e.value,zt(t,e.value)}),t.progressBar&&(t.progressBar.bindStates(),t.progressBar.state.on("change:value",function(e){zt(t,t.stat
 e.get("text"))})),t._super()},close:function(){return this.fire("close").isDefaultPrevented()||this.remove(),this},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=65534}});function It(o){var s=function(e){return e.inline?e.getElement():e.getContentAreaContainer()};return{open:function(e,t){var n,i=w.extend(e,{maxWidth:(n=s(o),ke.getSize(n).width)}),r=new Lt(i);return 0<(r.args=i).timeout&&(r.timer=setTimeout(function(){r.close(),t()},i.timeout)),r.on("close",function(){t()}),r.renderTo(),r},close:function(e){e.close()},reposition:function(e){var t;t=e,ie.each(t,function(e){e.moveTo(0,0)}),function(n){if(0<n.length){var e=n.slice(0,1)[0],t=s(o);e.moveRel(t,"tc-tc"),ie.each(n,function(e,t){0<t&&e.moveRel(n[t-1].getEl(),"bc-tc")})}}(e)},getArgs:function(e){return e.args}}}var Ft=[],Ut="";function Vt(e){var t,n=Re("meta[
 name=viewport]")[0];!1!==me.overrideViewPort&&(n||((n=document.createElement("meta")).setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),(t=n.getAttribute("content"))&&void 0!==Ut&&(Ut=t),n.setAttribute("content",e?"width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0":Ut))}function jt(e,t){(function(){for(var e=0;e<Ft.length;e++)if(Ft[e]._fullscreen)return!0;return!1})()&&!1===t&&Re([document.documentElement,document.body]).removeClass(e+"fullscreen")}var qt=St.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.classes.add("rtl"),n.classes
 .add("window"),n.bodyClasses.add("window-body"),n.state.set("fixed",!0),e.buttons&&(n.statusbar=new xt({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.classes.add("foot"),n.statusbar.parent(n)),n.on("click",function(e){var t=n.classPrefix+"close";(ke.hasClass(e.target,t)||ke.hasClass(e.target.parentNode,t))&&n.close()}),n.on("cancel",function(){n.close()}),n.on("move",function(e){e.control===n&&St.hideAll()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e,t,n,i,r=this,o=r.statusbar;r._fullscreen&&(r.layoutRect(ke.getWindowSize()),r.layoutRect().contentH=r.layoutRect().innerH),r._super(),e=r.layoutRect(),r.settings
 .title&&!r._fullscreen&&(t=e.headerW)>e.w&&(n=e.x-Math.max(0,t/2),r.layoutRect({w:t,x:n}),i=!0),o&&(o.layoutRect({w:r.layoutRect().innerW}).recalc(),(t=o.layoutRect().minW+e.deltaW)>e.w&&(n=e.x-Math.max(0,t-e.w),r.layoutRect({w:t,x:n}),i=!0)),i&&r.recalc()},initLayoutRect:function(){var e,t=this,n=t._super(),i=0;if(t.settings.title&&!t._fullscreen){e=t.getEl("head");var r=ke.getSize(e);n.headerW=r.width,n.headerH=r.height,i+=n.headerH}t.statusbar&&(i+=t.statusbar.layoutRect().h),n.deltaH+=i,n.minH+=i,n.h+=i;var o=ke.getWindowSize();return n.x=t.settings.x||Math.max(0,o.w/2-n.w/2),n.y=t.settings.y||Math.max(0,o.h/2-n.h/2),n},renderHtml:function(){var e=this,t=e._layout,n=e._id,i=e.classPrefix,r=e.settings,o="",s="",a=r.html;return e.preRender(),t.preRender(e),r.title&&(o='<div id="'+n+'-head" class="'+i+'window-head"><div id="'+n+'-title" 
 class="'+i+'title">'+e.encode(r.title)+'</div><div id="'+n+'-dragh" class="'+i+'dragh"></div><button type="button" class="'+i+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),r.url&&(a='<iframe src="'+r.url+'" tabindex="-1"></iframe>'),void 0===a&&(a=t.renderHtml(e)),e.statusbar&&(s=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.bodyClasses+'">'+a+"</div>"+s+"</div></div>"},fullscreen:function(e){var n,t,i=this,r=document.documentElement,o=i.classPrefix;if(e!==i._fullscreen)if(Re(window).on("resize",function(){var e;if(i._
 fullscreen)if(n)i._timer||(i._timer=u.setTimeout(function(){var e=ke.getWindowSize();i.moveTo(0,0).resizeTo(e.w,e.h),i._timer=0},50));else{e=(new Date).getTime();var t=ke.getWindowSize();i.moveTo(0,0).resizeTo(t.w,t.h),50<(new Date).getTime()-e&&(n=!0)}}),t=i.layoutRect(),i._fullscreen=e){i._initial={x:t.x,y:t.y,w:t.w,h:t.h},i.borderBox=Ne("0"),i.getEl("head").style.display="none",t.deltaH-=t.headerH+2,Re([r,document.body]).addClass(o+"fullscreen"),i.classes.add("fullscreen");var s=ke.getWindowSize();i.moveTo(0,0).resizeTo(s.w,s.h)}else i.borderBox=Ne(i.settings.border),i.getEl("head").style.display="",t.deltaH+=t.headerH,Re([r,document.body]).removeClass(o+"fullscreen"),i.classes.remove("fullscreen"),i.moveTo(i._initial.x,i._initial.y).resizeTo(i._initial.w,i._initial.h);return i.reflow()},postRender:function(){var t,n=this;setTimeout(function(){n.classes.add("in"),n.fire(
 "open")},0),n._super(),n.statusbar&&n.statusbar.postRender(),n.focus(),this.dragHelper=new mt(n._id+"-dragh",{start:function(){t={x:n.layoutRect().x,y:n.layoutRect().y}},drag:function(e){n.moveTo(t.x+e.deltaX,t.y+e.deltaY)}}),n.on("submit",function(e){e.isDefaultPrevented()||n.close()}),Ft.push(n),Vt(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e,t=this;for(t.dragHelper.destroy(),t._super(),t.statusbar&&this.statusbar.remove(),jt(t.classPrefix,!1),e=Ft.length;e--;)Ft[e]===t&&Ft.splice(e,1);Vt(0<Ft.length)},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});!function(){if(!me.desktop){var n={w:window.innerWidth,h:window.innerHeight};u.setInterval(function(){var e=window.innerWidth,t=window.innerHeight;n.w===e&&n.h===t||(n={w:e,h:t},Re(window).trigger("resize"))},100)}Re(window).on
 ("resize",function(){var e,t,n=ke.getWindowSize();for(e=0;e<Ft.length;e++)t=Ft[e].layoutRect(),Ft[e].moveTo(Ft[e].settings.x||Math.max(0,n.w/2-t.w/2),Ft[e].settings.y||Math.max(0,n.h/2-t.h/2))})}();var Yt,$t=qt.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(e){var t,i=e.callback||function(){};function n(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),i(t)}}}switch(e.buttons){case $t.OK_CANCEL:t=[n("Ok",!0,!0),n("Cancel",!1)];break;case $t.YES_NO:case $t.YES_NO_CANCEL:t=[n("Yes",1,!0),n("No",0)],e.b
 uttons===$t.YES_NO_CANCEL&&t.push(n("Cancel",-1));break;default:t=[n("Ok",!0,!0)]}return new qt({padding:20,x:e.x,y:e.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:t,title:e.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:e.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:e.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(e,t){return"string"==typeof e&&(e={text:e}),e.callback=t,$t.msgBox(e)},confirm:function(e,t){return"string"==typeof e&&(e={text:e}),e.callback=t,e.buttons=$t.OK_CANCEL,$t.msgBox(e)}}}),Xt=function(n){return{renderUI:function(e){return Nt(n,this,e)},resizeTo:function(e,t){return fe(n,e,t)},resizeBy:function(e,t){return he(n,e,t)},getNotificationManagerImpl:function(){return It(n)},getWindowManagerIm
 pl:function(){return{open:function(n,e,t){var i;return n.title=n.title||" ",n.url=n.url||n.file,n.url&&(n.width=parseInt(n.width||320,10),n.height=parseInt(n.height||240,10)),n.body&&(n.items={defaults:n.defaults,type:n.bodyType||"form",items:n.body,data:n.data,callbacks:n.commands}),n.url||n.buttons||(n.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),(i=new qt(n)).on("close",function(){t(i)}),n.data&&i.on("postRender",function(){this.find("*").each(function(e){var t=e.name();t in n.data&&e.value(n.data[t])})}),i.features=n||{},i.params=e||{},i=i.renderTo(document.body).reflow()},alert:function(e,t,n){var i;return(i=$t.alert(e,function(){t()})).on("close",function(){n(i)}),i},confirm:function(e,t,n){var i;return(i=$t.confirm(e,function(e){t(e)})).on("close",f
 unction(){n(i)}),i},close:function(e){e.close()},getParams:function(e){return e.params},setParams:function(e,t){e.params=t}}}}},Jt=We.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=w.extend({},this.Defaults,e)},preRender:function(e){e.bodyClasses.add(this.settings.containerClass)},applyClasses:function(e){var t,n,i,r,o=this.settings;t=o.firstControlClass,n=o.lastControlClass,e.each(function(e){e.classes.remove(t).remove(n).add(o.controlClass),e.visible()&&(i||(i=e),r=e)}),i&&i.classes.add(t),r&&r.classes.add(n)},renderHtml:function(e){var t="";return this.applyClasses(e.items()),e.items().each(function(e){t+=e.renderHtml()}),t},recalc:function(){},postRender:function(){},isNative:function(){return!1}}),Gt=Jt.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e)
 {var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}}),Kt=Bt.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t,n=this;n._super(e),e=n.settings,t=n.settings.size,n.on("click mousedown",function(e){e.preventDefault()}),n.on("touchstart",function(e){n.fire("click",e),e.preventDefault()}),e.subtype&&n.classes.add(e.subtype),t&&n.classes.add("btn-"+t),e.icon&&n.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e,t=this.getEl().firstChild;t&&((e=t.style).width=e.height="100%"),this._super()},renderHtml:function(){var e,t,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon&quot
 ;),s=n.state.get("text"),a="",l=n.settings;return(e=l.image)?(o="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",s&&(n.classes.add("btn-has-text"),a='<span class="'+r+'txt">'+n.encode(s)+"</span>"),o=o?r+"ico "+r+"i-"+o:"",t="boolean"==typeof l.active?' aria-pressed="'+l.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" tabindex="-1"'+t+'><button id="'+i+'-button" role="presentation" type="button" tabindex="-1">'+(o?'<i class="'+o+'"'+e+"></i>":"")+a+"</button></div>"},bindStates:function(){var o=this,n=o.$,i=o.classPrefix+"txt";function s(e){var t=n("span."+i
 ,o.getEl());e?(t[0]||(n("button:first",o.getEl()).append('<span class="'+i+'"></span>'),t=n("span."+i,o.getEl())),t.html(o.encode(e))):t.remove(),o.classes.toggle("btn-has-text",!!e)}return o.state.on("change:text",function(e){s(e.value)}),o.state.on("change:icon",function(e){var t=e.value,n=o.classPrefix;t=(o.settings.icon=t)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];t?(r&&r===i.firstChild||(r=document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=t):r&&i.removeChild(r),s(o.state.get("text"))}),o._super()}}),Zt=Kt.extend({init:function(e){e=w.extend({text:"Browse...",multiple:!1,accept:null},e),this._super(e),this.classes.add("browsebutton"),e.multiple&&this.classes.add("multiple")},postRender:function(){var n=this,t=ke.create(&qu
 ot;input",{type:"file",id:n._id+"-browse",accept:n.settings.accept});n._super(),Re(t).on("change",function(e){var t=e.target.files;n.value=function(){return t.length?n.settings.multiple?t:t[0]:null},e.preventDefault(),t.length&&n.fire("change",e)}),Re(t).on("click",function(e){e.stopPropagation()}),Re(n.getEl("button")).on("click",function(e){e.stopPropagation(),t.click()}),n.getEl().appendChild(t)},remove:function(){Re(this.getEl("button")).off(),Re(this.getEl("input")).off(),this._super()}}),Qt=ft.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.classes.add("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}}
 ),en=Bt.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){return arguments.length?(this.state.set("checked",e),this):this.state.get("checked")},value:function(e){return arguments.length?this.checked(e):this.checked()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e.state.get("text"))+"</span></div>"},bindStates:function(){var o=this;funct
 ion t(e){o.classes.toggle("checked",e),o.aria("checked",e)}return o.state.on("change:text",function(e){o.getEl("al").firstChild.data=o.translate(e.value)}),o.state.on("change:checked change:value",function(e){o.fire("change"),t(e.value)}),o.state.on("change:icon",function(e){var t=e.value,n=o.classPrefix;if(void 0===t)return o.settings.icon;t=(o.settings.icon=t)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];t?(r&&r===i.firstChild||(r=document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=t):r&&i.removeChild(r)}),o.state.get("checked")&&t(!0),o._super()}}),tn=tinymce.util.Tools.resolve("tinymce.util.VK"),nn=Bt.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.classes.add("combobox"),r.subinput=!0,r.ariaTarget="inp",i.menu=i.m
 enu||i.values,i.menu&&(i.icon="caret"),r.on("click",function(e){var t=e.target,n=r.getEl();if(Re.contains(n,t)||t===n)for(;t&&t!==n;)t.id&&-1!==t.id.indexOf("-open")&&(r.fire("action"),i.menu&&(r.showMenu(),e.aria&&r.menu.items()[0].focus())),t=t.parentNode}),r.on("keydown",function(e){var t;13===e.keyCode&&"INPUT"===e.target.nodeName&&(e.preventDefault(),r.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),r.fire("submit",{data:t.toJSON()}))}),r.on("keyup",function(e){if("INPUT"===e.target.nodeName){var t=r.state.get("value"),n=e.target.value;n!==t&&(r.state.set("value",n),r.fire("autocomplete",e))}}),r.on("mouseover",function(e){var t=r.tooltip().moveTo(-65535);if(r.statusLevel()&&-1!==e.target.className.indexOf(r.classPrefix+"status")){var n=r.status
 Message()||"Ok",i=t.text(n).show().testMoveRel(e.target,["bc-tc","bc-tl","bc-tr"]);t.classes.toggle("tooltip-n","bc-tc"===i),t.classes.toggle("tooltip-nw","bc-tl"===i),t.classes.toggle("tooltip-ne","bc-tr"===i),t.moveRel(e.target,i)}})},statusLevel:function(e){return 0<arguments.length&&this.state.set("statusLevel",e),this.state.get("statusLevel")},statusMessage:function(e){return 0<arguments.length&&this.state.set("statusMessage",e),this.state.get("statusMessage")},showMenu:function(){var e,t=this,n=t.settings;t.menu||((e=n.menu||[]).length?e={type:"menu",items:e}:e.type=e.type||"menu",t.menu=v.create(e).parent(t).renderTo(t.getContainerElm()),t.fire("createmenu"),t.menu.reflow(),t.menu.on("cancel",function(e){e.control===t.menu&&t.focus()}),t.menu.on("show hide",fu
 nction(e){e.control.items().each(function(e){e.active(e.value()===t.value())})}).fire("show"),t.menu.on("select",function(e){t.value(e.control.value())}),t.on("focusin",function(e){"INPUT"===e.target.tagName.toUpperCase()&&t.menu.hide()}),t.aria("expanded",!0)),t.menu.show(),t.menu.layoutRect({w:t.layoutRect().w}),t.menu.moveRel(t.getEl(),t.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var e,t,n=this,i=n.getEl(),r=n.getEl("open"),o=n.layoutRect(),s=0,a=i.firstChild;n.statusLevel()&&"none"!==n.statusLevel()&&(s=parseInt(ke.getRuntimeStyle(a,"padding-right"),10)-parseInt(ke.getRuntimeStyle(a,"padding-left"),10)),e=r?o.w-ke.getSize(r).width-10:o.w-10;var l=document;return l.all&&(!l.documentMode||l.documentMode<=8)&&(t=n.layoutRect().h-2+"
 px"),Re(a).css({width:e-s,lineHeight:t}),n._super(),n},postRender:function(){var t=this;return Re(this.getEl("inp")).on("change",function(e){t.state.set("value",e.target.value),t.fire("change",e)}),t._super()},renderHtml:function(){var e,t,n,i=this,r=i._id,o=i.settings,s=i.classPrefix,a=i.state.get("value")||"",l="",u="";return"spellcheck"in o&&(u+=' spellcheck="'+o.spellcheck+'"'),o.maxLength&&(u+=' maxlength="'+o.maxLength+'"'),o.size&&(u+=' size="'+o.size+'"'),o.subtype&&(u+=' type="'+o.subtype+'"'),n='<i id="'+r+'-status" class="mce-status mce-ico" style="display: none"></i>',i.disabled()&&(u+=' disabled="disabled"'),(e=o.icon)&&"caret"!==e&&(e=s+"ico "+s+"i-"+o.icon),t=i.state.get("text"),(e||t)&
 &(l='<div id="'+r+'-open" class="'+s+"btn "+s+'open" tabIndex="-1" role="button"><button id="'+r+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!==e?'<i class="'+e+'"></i>':'<i class="'+s+'caret"></i>')+(t?(e?" ":"")+t:"")+"</button></div>",i.classes.add("has-open")),'<div id="'+r+'" class="'+i.classes+'"><input id="'+r+'-inp" class="'+s+'textbox" value="'+i.encode(a,!1)+'" hidefocus="1"'+u+' placeholder="'+i.encode(o.placeholder)+'" />'+n+l+"</div>"},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.s
 tate.get("value"))},showAutoComplete:function(e,i){var r=this;if(0!==e.length){r.menu?r.menu.items().remove():r.menu=v.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),w.each(e,function(e){var t,n;r.menu.add({text:e.title,url:e.previewUrl,match:i,classes:"menu-item-ellipsis",onclick:(t=e.value,n=e.title,function(){r.fire("selectitem",{title:n,value:t})})})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(e){e.control.parent()===r.menu&&(e.stopPropagation(),r.focus(),r.hideMenu())}),r.menu.on("select",function(){r.focus()});var t=r.layoutRect().w;r.menu.layoutRect({w:t,minW:0,maxW:t}),r.menu.repaint(),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])}else r.hideMenu()},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var r=this;r.sta
 te.on("change:value",function(e){r.getEl("inp").value!==e.value&&(r.getEl("inp").value=e.value)}),r.state.on("change:disabled",function(e){r.getEl("inp").disabled=e.value}),r.state.on("change:statusLevel",function(e){var t=r.getEl("status"),n=r.classPrefix,i=e.value;ke.css(t,"display","none"===i?"none":""),ke.toggleClass(t,n+"i-checkmark","ok"===i),ke.toggleClass(t,n+"i-warning","warn"===i),ke.toggleClass(t,n+"i-error","error"===i),r.classes.toggle("has-status","none"!==i),r.repaint()}),ke.on(r.getEl("status"),"mouseleave",function(){r.tooltip().hide()}),r.on("cancel",function(e){r.menu&&r.menu.visible()&&(e.stopPropagation(),r.hideMenu())});var n=function(e,t){t&&0<t.items().length&&t.items().eq(e)[0].focus()};return r.on(&
 quot;keydown",function(e){var t=e.keyCode;"INPUT"===e.target.nodeName&&(t===tn.DOWN?(e.preventDefault(),r.fire("autocomplete"),n(0,r.menu)):t===tn.UP&&(e.preventDefault(),n(-1,r.menu)))}),r._super()},remove:function(){Re(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}}),rn=nn.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.classes.add("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl("open"),n=t?t.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=e}catch(i){}},bindStates:function(){var t=this;return t.state.on("change:value",function(e){t.state.get("rendered")&&t.repaintColor(e.value)}),t._super()}}),on=Kt.extend({showPanel:function(){var t=this,e=t.settings;if(t.classes.add("opened&
 quot;),t.panel)t.panel.show();else{var n=e.panel;n.type&&(n={layout:"grid",items:n}),n.role=n.role||"dialog",n.popover=!0,n.autohide=!0,n.ariaRoot=!0,t.panel=new St(n).on("hide",function(){t.classes.remove("opened")}).on("cancel",function(e){e.stopPropagation(),t.focus(),t.hidePanel()}).parent(t).renderTo(t.getContainerElm()),t.panel.fire("show"),t.panel.reflow()}var i=t.panel.testMoveRel(t.getEl(),e.popoverAlign||(t.isRtl()?["bc-tc","bc-tl","bc-tr"]:["bc-tc","bc-tr","bc-tl","tc-bc","tc-br","tc-bl"]));t.panel.classes.toggle("start","l"===i.substr(-1)),t.panel.classes.toggle("end","r"===i.substr(-1));var r="t"===i.substr(0,1);t.panel.classes.toggle("bottom",!r),t.panel.classes.toggle("top",r),t.panel.moveRel(t.getEl(),i)},hidePanel:function(){this.panel&&a
 mp;this.panel.hide()},postRender:function(){var t=this;return t.aria("haspopup",!0),t.on("click",function(e){e.control===t&&(t.panel&&t.panel.visible()?t.hidePanel():(t.showPanel(),t.panel.focus(!!e.aria)))}),t._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}}),sn=p.DOM,an=on.extend({init:function(e){this._super(e),this.classes.add("splitbtn"),this.classes.add("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,i=e.state.get("text"),r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",o=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"&q
 uot;:"",s="";return i&&(e.classes.add("btn-has-text"),s='<span class="'+n+'txt">'+e.encode(i)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+o+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+s+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var t=this,n=t.settings.onclick;return t.on("click",function(e){e.aria&&"down"===e.aria.key||e.control!==t||sn.getParent(e.target,&qu
 ot;."+t.classPrefix+"open")||(e.stopImmediatePropagation(),n.call(t,e))}),delete t.settings.onclick,t._super()}}),ln=tinymce.util.Tools.resolve("tinymce.util.Color"),un=Bt.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){var n,i,r,o,s,a=this,l=a.color();function u(e,t){var n,i,r=ke.getPos(e);return n=t.pageX-r.x,i=t.pageY-r.y,{x:n=Math.max(0,Math.min(n/e.clientWidth,1)),y:i=Math.max(0,Math.min(i/e.clientHeight,1))}}function c(e,t){var n=(360-e.h)/360;ke.css(r,{top:100*n+"%"}),t||ke.css(s,{left:e.s+"%",top:100-e.v+"%"}),o.style.background=ln({s:100,v:100,h:e.h}).toHex(),a.color().parse({s:e.s,v:e.v,h:e.h})}function e(e){var t;t=u(o,e),n.s=100*t.x,n.v=100*(1-t.y),c(n),a.fire("change")}function t(e){var t;t=u(i,e),(n=l.toHsv()).h=360*(1-t.y),c(n,!0),a.fire("change")}i=a.getEl("h"),r=a.getEl("hp"),o=a.getEl("sv"),s=a.get
 El("svp"),a._repaint=function(){c(n=l.toHsv())},a._super(),a._svdraghelper=new mt(a._id+"-sv",{start:e,drag:e}),a._hdraghelper=new mt(a._id+"-h",{start:t,drag:t}),a._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){if(!arguments.length)return this.color().toHex();this.color().parse(e),this._rendered&&this._repaint()},color:function(){return this._color||(this._color=ln()),this._color},renderHtml:function(){var e,t=this._id,o=this.classPrefix,s="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000";return e='<div id="'+t+'-h" class="'+o+'colorpicker-h" style="background: -ms-linear-gradient(top,'+s+");background: linear-gradient(to bottom,"+s+');">'+function(){var e,t,n,i,r="";for(n="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",e=0,t=(i=s.split(",")).le
 ngth-1;e<t;e++)r+='<div class="'+o+'colorpicker-h-chunk" style="height:'+100/t+"%;"+n+i[e]+",endColorstr="+i[e+1]+");-ms-"+n+i[e]+",endColorstr="+i[e+1]+')"></div>';return r}()+'<div id="'+t+'-hp" class="'+o+'colorpicker-h-marker"></div></div>','<div id="'+t+'" class="'+this.classes+'"><div id="'+t+'-sv" class="'+o+'colorpicker-sv"><div class="'+o+'colorpicker-overlay1"><div class="'+o+'colorpicker-overlay2"><div id="'+t+'-svp" class="'+o+'colorpicker-selector1"><div class="'+o+'colorpicker-selector2"></div></div></div></div></div>'+e+"</div>"}}),cn=Bt.extend({init:function(e){e=w.extend({height:100,text:"Drop an image here",multiple:!1,accept:null},e),this._super(e),this.classes.add("dro
 pzone"),e.multiple&&this.classes.add("multiple")},renderHtml:function(){var e,t,n=this.settings;return e={id:this._id,hidefocus:"1"},t=ke.create("div",e,"<span>"+this.translate(n.text)+"</span>"),n.height&&ke.css(t,"height",n.height+"px"),n.width&&ke.css(t,"width",n.width+"px"),t.className=this.classes,t.outerHTML},postRender:function(){var i=this,e=function(e){e.preventDefault(),i.classes.toggle("dragenter"),i.getEl().className=i.classes};i._super(),i.$el.on("dragover",function(e){e.preventDefault()}),i.$el.on("dragenter",e),i.$el.on("dragleave",e),i.$el.on("drop",function(e){if(e.preventDefault(),!i.state.get("disabled")){var t=function(e){var t=i.settings.accept;if("string"!=typeof t)return e;var n=new RegExp("("+t.split(/\s*,\s*/).join("|")+")$","
 i");return w.grep(e,function(e){return n.test(e.name)})}(e.dataTransfer.files);i.value=function(){return t.length?i.settings.multiple?t:t[0]:null},t.length&&i.fire("change",e)}})},remove:function(){this.$el.off(),this._super()}}),dn=Bt.extend({init:function(e){var n=this;e.delimiter||(e.delimiter="\xbb"),n._super(e),n.classes.add("path"),n.canFocus=!0,n.on("click",function(e){var t;(t=e.target.getAttribute("data-index"))&&n.fire("select",{value:n.row()[t],index:t})}),n.row(n.settings.row)},focus:function(){return this.getEl().firstChild.focus(),this},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'">'+this._getDataPathHtml(this.state.get("row"))+"</div>"},bindStates:function(){var t=this;return t.state.on("ch
 ange:row",function(e){t.innerHtml(t._getDataPathHtml(e.value))}),t._super()},_getDataPathHtml:function(e){var t,n,i=e||[],r="",o=this.classPrefix;for(t=0,n=i.length;t<n;t++)r+=(0<t?'<div class="'+o+'divider" aria-hidden="true"> '+this.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(t===n-1?" "+o+"last":"")+'" data-index="'+t+'" tabindex="-1" id="'+this._id+"-"+t+'" aria-level="'+(t+1)+'">'+i[t].name+"</div>";return r||(r='<div class="'+o+'path-item">\xa0</div>'),r}}),fn=dn.extend({postRender:function(){var o=this,s=o.settings.editor;function a(e){if(1===e.nodeType){if("BR"===e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1
 }return!1!==s.settings.elementpath&&(o.on("select",function(e){s.focus(),s.selection.select(this.row()[e.index].element),s.nodeChanged()}),s.on("nodeChange",function(e){for(var t=[],n=e.parents,i=n.length;i--;)if(1===n[i].nodeType&&!a(n[i])){var r=s.fire("ResolveName",{name:n[i].nodeName.toLowerCase(),target:n[i]});if(r.isDefaultPrevented()||t.push({name:r.name,element:n[i]}),r.isPropagationStopped())break}o.row(t)})),o._super()}}),hn=ft.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.classes.add("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body&quot
 ; class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}}),mn=ft.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:15,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var i=this,e=i.items();i.settings.formItemDefaults||(i.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),e.each(function(e){var t,n=e.settings.label;n&&((t=new hn(w.extend({items:{type:"label",id:e._id+"-l",text:n,flex:0,forId:e._id,disabled:e.disabled()}},i.settings.formItemDefaults))).type="formitem",e.aria("labelledby",e._id+"-l"),"undefined"==typeof e.settings.flex&&(e.settings.flex=1),i.replace(e,t),t.add(e))})},submit:function(){return this.fire("submit",{data:this.toJSON()})
 },postRender:function(){this._super(),this.fromJSON(this.settings.data)},bindStates:function(){var n=this;function e(){var e,t,i=0,r=[];if(!1!==n.settings.labelGapCalc)for(("children"===n.settings.labelGapCalc?n.find("formitem"):n.items()).filter("formitem").each(function(e){var t=e.items()[0],n=t.getEl().clientWidth;i=i<n?n:i,r.push(t)}),t=n.settings.labelGap||0,e=r.length;e--;)r[e].settings.minWidth=i+t}n._super(),n.on("show",e),e()}}),gn=mn.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'field
 set-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}}),pn=0,vn=function(e){var t=(new Date).getTime();return e+"_"+Math.floor(1e9*Math.random())+ ++pn+String(t)},bn=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:k.constant(e)}},yn={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return bn(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return bn(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return bn(n)},fromDom:bn,fromPoint:function(e,t,n){return P.from(e.dom().el
 ementFromPoint(t,n)).map(bn)}},xn=function(e){var t,n=!1;return function(){return n||(n=!0,t=e.apply(null,arguments)),t}},wn=9,_n=1,Rn=3,Cn=function(e){return e.dom().nodeType},kn=function(t){return function(e){return Cn(e)===t}},En=(kn(_n),kn(Rn),kn(wn),xn(function(){return En(yn.fromDom(document))}),function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return yn.fromDom(t)}),Hn=(Yt=Object.keys)===undefined?function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t}:Yt,Sn=function(e,t){for(var n=Hn(e),i=0,r=n.length;i<r;i++){var o=n[i];t(e[o],o,e)}},Mn=function(i,r){var o={};return Sn(i,function(e,t){var n=r(e,t,i);o[n.k]=n.v}),o},Tn=function(e,n){var i=[];return Sn(e,function(e,t){i.push(n(e,t))}),i},Pn=function(e){return Tn(e,function(e){return e})},Wn={bifilter:function(e,n){var i={},r={};return Sn(e,function(e,t){(n(e,t)?i:r)[t]=e}),{t:i,f:r}},each:Sn,map:function(e,i){return Mn(e,function(e,t,n){return{
 k:t,v:i(e,t,n)}})},mapToArray:Tn,tupleMap:Mn,find:function(e,t){for(var n=Hn(e),i=0,r=n.length;i<r;i++){var o=n[i],s=e[o];if(t(s,o,e))return P.some(s)}return P.none()},keys:Hn,values:Pn,size:function(e){return Pn(e).length}},Dn=function(e){return e.slice(0).sort()},Nn={sort:Dn,reqMessage:function(e,t){throw new Error("All required keys ("+Dn(e).join(", ")+") were not specified. Specified keys were: "+Dn(t).join(", ")+".")},unsuppMessage:function(e){throw new Error("Unsupported keys for object: "+Dn(e).join(", "))},validateStrArr:function(t,e){if(!V.isArray(e))throw new Error("The "+t+" fields must be an array. Was: "+e+".");ie.each(e,function(e){if(!V.isString(e))throw new Error("The value "+e+" in the "+t+" fields was not a string.")})},invalidTypeMessage:function(e,t){throw new Error("All values need to be of type: "+t+". Keys ("+
 Dn(e).join(", ")+") were not.")},checkDupes:function(e){var n=Dn(e);ie.find(n,function(e,t){return t<n.length-1&&e===n[t+1]}).each(function(e){throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})}},An={immutable:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+n.length+" arguments");var i={};return ie.each(t,function(e,t){i[e]=k.constant(n[t])}),i}},immutableBag:function(r,o){var s=r.concat(o);if(0===s.length)throw new Error("You must specify at least one required or optional field.");return Nn.validateStrArr("required",r),Nn.validateStrArr("optional",o),Nn.checkDupes(s),function(t){var n=Wn.keys(t);ie.for
 all(r,function(e){return ie.contains(n,e)})||Nn.reqMessage(r,n);var e=ie.filter(n,function(e){return!ie.contains(s,e)});0<e.length&&Nn.unsuppMessage(e);var i={};return ie.each(r,function(e){i[e]=k.constant(t[e])}),ie.each(o,function(e){i[e]=k.constant(Object.prototype.hasOwnProperty.call(t,e)?P.some(t[e]):P.none())}),i}}},Bn=("undefined"!=typeof window?window:Function("return this;")(),function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var i=e[n];if(i.test(t))return i}return undefined}(e,t);if(!n)return{major:0,minor:0};var i=function(e){return Number(t.replace(n,"$"+e))};return zn(i(1),i(2))}),On=function(){return zn(0,0)},zn=function(e,t){return{major:e,minor:t}},Ln={nu:zn,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?On():Bn(e,n)},unknown:On},In="Firefox",Fn=function(e,t){return function(){return t===e}},Un=function(e){var t=e.current;return{current:t,version:e.version,isEdge:Fn("Edge&q
 uot;,t),isChrome:Fn("Chrome",t),isIE:Fn("IE",t),isOpera:Fn("Opera",t),isFirefox:Fn(In,t),isSafari:Fn("Safari",t)}},Vn={unknown:function(){return Un({current:undefined,version:Ln.unknown()})},nu:Un,edge:k.constant("Edge"),chrome:k.constant("Chrome"),ie:k.constant("IE"),opera:k.constant("Opera"),firefox:k.constant(In),safari:k.constant("Safari")},jn="Windows",qn="Android",Yn="Solaris",$n="FreeBSD",Xn=function(e,t){return function(){return t===e}},Jn=function(e){var t=e.current;return{current:t,version:e.version,isWindows:Xn(jn,t),isiOS:Xn("iOS",t),isAndroid:Xn(qn,t),isOSX:Xn("OSX",t),isLinux:Xn("Linux",t),isSolaris:Xn(Yn,t),isFreeBSD:Xn($n,t)}},Gn={unknown:function(){return Jn({current:undefined,version:Ln.unknown()})},nu:Jn,windows:k.constant(jn),ios:k.constant("iOS"),android:k.constant(qn),linux:k.constant("Lin
 ux"),osx:k.constant("OSX"),solaris:k.constant(Yn),freebsd:k.constant($n)},Kn=function(e,t){var n=String(t).toLowerCase();return ie.find(e,function(e){return e.search(n)})},Zn=function(e,n){return Kn(e,n).map(function(e){var t=Ln.detect(e.versionRegexes,n);return{current:e.name,version:t}})},Qn=function(e,n){return Kn(e,n).map(function(e){var t=Ln.detect(e.versionRegexes,n);return{current:e.name,version:t}})},ei=function(e,t){return-1!==e.indexOf(t)},ti=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,ni=function(t){return function(e){return ei(e,t)}},ii=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return ei(e,"edge/")&&ei(e,"chrome")&&ei(e,"safari")&&ei(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,ti],search:function(e){return ei(e,"chrome")&&!ei(e,"chromeframe")}},{name:"IE",version
 Regexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return ei(e,"msie")||ei(e,"trident")}},{name:"Opera",versionRegexes:[ti,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:ni("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:ni("firefox")},{name:"Safari",versionRegexes:[ti,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(ei(e,"safari")||ei(e,"mobile/"))&&ei(e,"applewebkit")}}],ri=[{name:"Windows",search:ni("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return ei(e,"iphone")||ei(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:ni("android"),versionRegexes:[/.*?android\ ?([0-
 9]+)\.([0-9]+).*/]},{name:"OSX",search:ni("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:ni("linux"),versionRegexes:[]},{name:"Solaris",search:ni("sunos"),versionRegexes:[]},{name:"FreeBSD",search:ni("freebsd"),versionRegexes:[]}],oi={browsers:k.constant(ii),oses:k.constant(ri)},si=function(e){var t,n,i,r,o,s,a,l,u,c,d,f=oi.browsers(),h=oi.oses(),m=Zn(f,e).fold(Vn.unknown,Vn.nu),g=Qn(h,e).fold(Gn.unknown,Gn.nu);return{browser:m,os:g,deviceType:(n=m,i=e,r=(t=g).isiOS()&&!0===/ipad/i.test(i),o=t.isiOS()&&!r,s=t.isAndroid()&&3===t.version.major,a=t.isAndroid()&&4===t.version.major,l=r||s||a&&!0===/mobile/i.test(i),u=t.isiOS()||t.isAndroid(),c=u&&!l,d=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(i),{isiPad:k.constant(r),isiPhone:k.constant(o),isTablet:k.constant(l),isPhone:k.constant(c),isTouch:k.constant(u),isAn
 droid:t.isAndroid,isiOS:t.isiOS,isWebView:k.constant(d)})}},ai=xn(function(){var e=navigator.userAgent;return si(e)}),li=_n,ui=wn,ci=function(e){return e.nodeType!==li&&e.nodeType!==ui||0===e.childElementCount},di={all:function(e,t){var n=t===undefined?document:t.dom();return ci(n)?[]:ie.map(n.querySelectorAll(e),yn.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==li)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return ci(n)?P.none():P.from(n.querySelector(e)).map(yn.fromDom)}},fi=(ai().browser.isIE(),An.immutable("element","offset"),function(e,t){return di.all(t,e)}),hi=w.trim,mi=function(t){return function(e){if(e&&amp
 ;1===e.nodeType){if(e.contentEditable===t)return!0;if(e.getAttribute("data-mce-contenteditable")===t)return!0}return!1}},gi=mi("true"),pi=mi("false"),vi=function(e,t,n,i,r){return{type:e,title:t,url:n,level:i,attach:r}},bi=function(e){return e.innerText||e.textContent},yi=function(e){return(t=e)&&"A"===t.nodeName&&(t.id||t.name)&&wi(e);var t},xi=function(e){return e&&/^(H[1-6])$/.test(e.nodeName)},wi=function(e){return function(e){for(;e=e.parentNode;){var t=e.contentEditable;if(t&&"inherit"!==t)return gi(e)}return!1}(e)&&!pi(e)},_i=function(e){return xi(e)&&wi(e)},Ri=function(e){var t,n,i=(t=e).id?t.id:vn("h");return vi("header",bi(e),"#"+i,xi(n=e)?parseInt(n.nodeName.substr(1),10):0,function(){e.id=i})},Ci=function(e){var t=e.id||e.name,n=bi(e);return vi("anchor",n||"#"+t,"#"+t,0,k.noop)},ki=function(e){var t,n;return
  t="h1,h2,h3,h4,h5,h6,a:not([href])",n=e,ie.map(fi(yn.fromDom(n),t),function(e){return e.dom()})},Ei=function(e){return 0<hi(e.title).length},Hi=function(e){var t,n,i=ki(e);return ie.filter((n=i,ie.map(ie.filter(n,_i),Ri)).concat((t=i,ie.map(ie.filter(t,yi),Ci))),Ei)},Si={},Mi=function(e){return{title:e.title,value:{title:{raw:e.title},url:e.url,attach:e.attach}}},Ti=function(e,t){return{title:e,value:{title:e,url:t,attach:k.noop}}},Pi=function(e,t,n){var i=t in e?e[t]:n;return!1===i?null:i},Wi=function(e,i,r,t){var n,o,s,a,l={title:"-"},u=function(e){var t=e.hasOwnProperty(r)?e[r]:[],n=ie.filter(t,function(e){return t=e,n=i,!ie.exists(n,function(e){return e.url===t});var t,n});return w.map(n,function(e){return{title:e,value:{title:e,url:e,attach:k.noop}}})},c=function(t){var e,n=ie.filter(i,function(e){return e.type===t});return e=n,w.map(e,Mi)};return!1===t.typeahead_urls?[]:"file"===r?(n=[Di(e,u(Si)),Di(e,c("header")),Di(e,(o=c("anc
 hor"),s=Pi(t,"anchor_top","#top"),a=Pi(t,"anchor_bottom","#bottom"),null!==s&&o.unshift(Ti("<top>",s)),null!==a&&o.push(Ti("<bottom>",a)),o))],ie.foldl(n,function(e,t){return 0===e.length||0===t.length?e.concat(t):e.concat(l,t)},[])):Di(e,u(Si))},Di=function(e,t){var n=e.toLowerCase(),i=w.grep(t,function(e){return-1!==e.title.toLowerCase().indexOf(n)});return 1===i.length&&i[0].title===e?[]:i},Ni=function(r,i,o,s){var t=function(e){var t=Hi(o),n=Wi(e,t,s,i);r.showAutoComplete(n,e)};r.on("autocomplete",function(){t(r.value())}),r.on("selectitem",function(e){var t=e.value;r.value(t.url);var n,i=(n=t.title).raw?n.raw:n;"image"===s?r.fire("change",{meta:{alt:i,attach:t.attach}}):r.fire("change",{meta:{text:i,attach:t.attach}}),r.focus()}),r.on("click",function(e){0===r.value().length&&"INPUT"===e.target.nodeNam
 e&&t("")}),r.on("PostRender",function(){r.getRoot().on("submit",function(e){var t,n,i;e.isDefaultPrevented()||(t=r.value(),i=Si[n=s],/^https?/.test(t)&&(i?ie.indexOf(i,t).isNone()&&(Si[n]=i.slice(0,5).concat(t)):Si[n]=[t]))})})},Ai=function(o,e,n){var i=e.filepicker_validator_handler;i&&o.state.on("change:value",function(e){var t;0!==(t=e.value).length?i({url:t,type:n},function(e){var t,n,i,r=(n=(t=e).status,i=t.message,"valid"===n?{status:"ok",message:i}:"unknown"===n?{status:"warn",message:i}:"invalid"===n?{status:"warn",message:i}:{status:"none",message:""});o.statusMessage(r.message),o.statusLevel(r.status)}):o.statusLevel("none")})},Bi=nn.extend({Statics:{clearHistory:function(){Si={}}},init:function(e){var t,n,i,r=this,o=window.tinymce?window.tinymce.activeEditor:l.activeEditor,s=o.settings,a=e.filetype;e.spellcheck=!
 1,(i=s.file_picker_types||s.file_browser_callback_types)&&(i=w.makeMap(i,/[, ]/)),i&&!i[a]||(!(n=s.file_picker_callback)||i&&!i[a]?!(n=s.file_browser_callback)||i&&!i[a]||(t=function(){n(r.getEl("inp").id,r.value(),a,window)}):t=function(){var e=r.fire("beforecall").meta;e=w.extend({filetype:a},e),n.call(o,function(e,t){r.value(e).fire("change",{meta:t})},r.value(),e)}),t&&(e.icon="browse",e.onaction=t),r._super(e),r.classes.add("filepicker"),Ni(r,s,o.getBody(),a),Ai(r,s,a)}}),Oi=Gt.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox;e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}}),zi=Gt.extend({recalc:function(e){var t,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,R,C,k,E,H,S,M,T,P,W,D,N,A,B,O,z=[],L=Math.max,I=Math.min;for(i=e.items().filter(":visible"
 ),r=e.layoutRect(),o=e.paddingBox,s=e.settings,f=e.isRtl()?s.direction||"row-reversed":s.direction,a=s.align,l=e.isRtl()?s.pack||"end":s.pack,u=s.spacing||0,"row-reversed"!==f&&"column-reverse"!==f||(i=i.set(i.toArray().reverse()),f=f.split("-")[0]),"column"===f?(C="y",_="h",R="minH",k="maxH",H="innerH",E="top",S="deltaH",M="contentH",N="left",W="w",T="x",P="innerW",D="minW",A="right",B="deltaW",O="contentW"):(C="x",_="w",R="minW",k="maxW",H="innerW",E="left",S="deltaW",M="contentW",N="top",W="h",T="y",P="innerH",D="minH",A="bottom",B="deltaH",O="contentH"),d=r[H]-o[E]-o[E],w=c=0,t=0,n=i.length;t<n;
 t++)m=(h=i[t]).layoutRect(),d-=t<n-1?u:0,0<(g=h.settings.flex)&&(c+=g,m[k]&&z.push(h),m.flex=g),d-=m[R],w<(p=o[N]+m[D]+o[A])&&(w=p);if((y={})[R]=d<0?r[R]-d+r[S]:r[H]-d+r[S],y[D]=w+r[B],y[M]=r[H]-d,y[O]=w,y.minW=I(y.minW,r.maxW),y.minH=I(y.minH,r.maxH),y.minW=L(y.minW,r.startMinWidth),y.minH=L(y.minH,r.startMinHeight),!r.autoResize||y.minW===r.minW&&y.minH===r.minH){for(b=d/c,t=0,n=z.length;t<n;t++)(v=(m=(h=z[t]).layoutRect())[k])<(p=m[R]+m.flex*b)?(d-=m[k]-m[R],c-=m.flex,m.flex=0,m.maxFlexSize=v):m.maxFlexSize=0;for(b=d/c,x=o[E],y={},0===c&&("end"===l?x=d+o[E]:"center"===l?(x=Math.round(r[H]/2-(r[H]-d)/2)+o[E])<0&&(x=o[E]):"justify"===l&&(x=o[E],u=Math.floor(d/(i.length-1)))),y[T]=o[N],t=0,n=i.length;t<n;t++)p=(m=(h=i[t]).layoutRect()).maxFlexSize||m[R],"center"===a?y[T]=Math.round(r[P]/2-m[W]/2):"stretch"===a?(y[W]=L(m[D]||0,r[P]-o[N]-o[A]),y[T]=o[N]):&q
 uot;end"===a&&(y[T]=r[P]-m[W]-o.top),0<m.flex&&(p+=m.flex*b),y[_]=p,y[C]=x,h.layoutRect(y),h.recalc&&h.recalc(),x+=p+u}else if(y.w=y.minW,y.h=y.minH,e.layoutRect(y),this.recalc(e),null===e._lastRect){var F=e.parent();F&&(F._lastRect=null,F.recalc())}}}),Li=Jt.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})},isNative:function(){return!0}}),Ii=function(e,t){return di.one(t,e)},Fi=function(e,t){return function(){e.execCommand("mceToggleFormat",!1,t)}},Ui=function(e,n){return function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}},Vi=function(n){n.addMenuItem("align",{text:"Align",menu:[{text:"Left",icon:&
 quot;alignleft",onclick:Fi(n,"alignleft")},{text:"Center",icon:"aligncenter",onclick:Fi(n,"aligncenter")},{text:"Right",icon:"alignright",onclick:Fi(n,"alignright")},{text:"Justify",icon:"alignjustify",onclick:Fi(n,"alignjustify")}]}),w.each({alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(e,t){n.addButton(t,{active:!1,tooltip:e[0],cmd:e[1],onPostRender:Ui(n,t)})})},ji=function(e){return e?e.split(",")[0]:""},qi=function(a,l){return function(){var s=this;a.on("init nodeChange",function(e){var t,n,i,r=a.queryCommandValue("FontName"),o=(t=l,n=r,w.each(t,function(e){e.value.toLowe
 rCase()===n.toLowerCase()&&(i=e.value)}),w.each(t,function(e){i||ji(e.value).toLowerCase()!==ji(n).toLowerCase()||(i=e.value)}),i);s.value(o||null),!o&&r&&s.text(ji(r))})}},Yi=function(n){n.addButton("fontselect",function(){var e,t=(e=function(e){for(var t=(e=e.replace(/;$/,"").split(";")).length;t--;)e[t]=e[t].split("=");return e}(n.settings.font_formats||"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,z
 apf dingbats"),w.map(e,function(e){return{text:{raw:e[0]},value:e[1],textStyle:-1===e[1].indexOf("dings")?"font-family:"+e[1]:""}}));return{type:"listbox",text:"Font Family",tooltip:"Font Family",values:t,fixedWidth:!0,onPostRender:qi(n,t),onselect:function(e){e.control.settings.value&&n.execCommand("FontName",!1,e.control.settings.value)}}})},$i=function(e){Yi(e)},Xi=function(e,t){return/[0-9.]+px$/.test(e)?(n=72*parseInt(e,10)/96,i=t||0,r=Math.pow(10,i),Math.round(n*r)/r+"pt"):e;var n,i,r},Ji=function(e,t,n){var i;return w.each(e,function(e){e.value===n?i=n:e.value===t&&(i=t)}),i},Gi=function(n){n.addButton("fontsizeselect",function(){var e,s,a,t=(e=n.settings.fontsize_formats||"8pt 10pt 12pt 14pt 18pt 24pt 36pt",w.map(e.split(" "),function(e){var t=e,n=e,i=e.split("=");return 1<i.length&&(t=i[0],n=i[1]),{text:t,value:n}}));return{
 type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:(s=n,a=t,function(){var o=this;s.on("init nodeChange",function(e){var t,n,i,r;if(t=s.queryCommandValue("FontSize"))for(i=3;!r&&0<=i;i--)n=Xi(t,i),r=Ji(a,n,t);o.value(r||null),r||o.text(n)})}),onclick:function(e){e.control.settings.value&&n.execCommand("FontSize",!1,e.control.settings.value)}}})},Ki=function(e){Gi(e)},Zi=function(n,e){var i=e.length;return w.each(e,function(e){e.menu&&(e.hidden=0===Zi(n,e.menu));var t=e.format;t&&(e.hidden=!n.formatter.canApply(t)),e.hidden&&i--}),i},Qi=function(n,e){var i=e.items().length;return e.items().each(function(e){e.menu&&e.visible(0<Qi(n,e.menu)),!e.menu&&e.settings.menu&&e.visible(0<Zi(n,e.settings.menu));var t=e.settings.format;t&&e.visible(n.formatter.canApply(t)),e.visible()||i--}),i},er=function(e){var i,r,o,
 t,s,n,a,l,u=(r=0,o=[],t=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:
 "Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}],s=function(e){var i=[];if(e)return w.each(e,function(e){var t={text:e.title,icon:e.icon};if(e.items)t.menu=s(e.items);else{var n=e.format||"custom"+r++;e.format||(e.name=n,o.push(e)),t.format=n,t.cmd=e.cmd}i.push(t)}),i},(i=e).on("init",function(){w.each(o,function(e){i.formatter.register(e.name,e)})}),{type:"menu",items:i.settings.style_formats_merg
 e?i.settings.style_formats?s(t.concat(i.settings.style_formats)):s(t):s(i.settings.style_formats||t),onPostRender:function(e){i.fire("renderFormatsMenu",{control:e.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return i.formatter.getCssText(this.settings.format)},onPostRender:function(){var n=this;n.parent().on("show",function(){var e,t;(e=n.settings.format)&&(n.disabled(!i.formatter.canApply(e)),n.active(i.formatter.match(e))),(t=n.settings.cmd)&&n.active(i.queryCommandState(t))})},onclick:function(){this.settings.format&&Fi(i,this.settings.format)(),this.settings.cmd&&i.execCommand(this.settings.cmd)}}});n=u,e.addMenuItem("formats",{text:"Formats",menu:n}),l=u,(a=e).addButton("styleselect",{type:"menubutton",text:"Formats",menu:l,onShowMenu:function(){a.settings.style_formats_autohide&&Qi(a,this.menu)}})},tr=function(n,e){return function()
 {var r,o,s,t=[];return w.each(e,function(e){t.push({text:e[0],value:e[1],textStyle:function(){return n.formatter.getCssText(e[1])}})}),{type:"listbox",text:e[0][0],values:t,fixedWidth:!0,onselect:function(e){if(e.control){var t=e.control.value();Fi(n,t)()}},onPostRender:(r=n,o=t,function(){var t=this;r.on("nodeChange",function(e){var n=r.formatter,i=null;w.each(e.parents,function(t){if(w.each(o,function(e){if(s?n.matchNode(t,s,{value:e.value})&&(i=e.value):n.matchNode(t,e.value)&&(i=e.value),i)return!1}),i)return!1}),t.value(i)})})}}},nr=function(e){var t,n,i=function(e){for(var t=(e=e.replace(/;$/,"").split(";")).length;t--;)e[t]=e[t].split("=");return e}(e.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");e.addMenuItem("blockformats",{text:"Blocks",menu:(t=e,n=i,w.map(n,function(e){return{text:e[0],oncli
 ck:Fi(t,e[1]),textStyle:function(){return t.formatter.getCssText(e[1])}}}))}),e.addButton("formatselect",tr(e,i))},ir=function(t,e){var n,i;if("string"==typeof e)i=e.split(" ");else if(w.isArray(e))return ie.flatten(w.map(e,function(e){return ir(t,e)}));return n=w.grep(i,function(e){return"|"===e||e in t.menuItems}),w.map(n,function(e){return"|"===e?{text:"-"}:t.menuItems[e]})},rr=function(e){return e&&"-"===e.text},or=function(e){var t=ie.filter(e,function(e,t,n){return!rr(e)||!rr(n[t-1])});return ie.filter(t,function(e,t,n){return!rr(e)||0<t&&t<n.length-1})},sr=function(e){var t,n,i,r,o=e.settings.insert_button_items;return or(o?ir(e,o):(t=e,n="insert",i=[{text:"-"}],r=w.grep(t.menuItems,function(e){return e.context===n}),w.each(r,function(e){"before"===e.separator&&i.push({text:"|"}),e.prependToContext?i.unshift(e):i.push(e),"after"
 ===e.separator&&i.push({text:"|"})}),i))},ar=function(e){var t;(t=e).addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(sr(t)),this.menu.renderNew()}})},lr=function(e){var n,i,r;n=e,w.each({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(e,t){n.addButton(t,{active:!1,tooltip:e,onPostRender:Ui(n,t),onclick:Fi(n,t)})}),i=e,w.each({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:[&qu
 ot;New document","mceNewDocument"],removeformat:["Clear formatting","RemoveFormat"],remove:["Remove","Delete"]},function(e,t){i.addButton(t,{tooltip:e[0],cmd:e[1]})}),r=e,w.each({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"]},function(e,t){r.addButton(t,{active:!1,tooltip:e[0],cmd:e[1],onPostRender:Ui(r,t)})})},ur=function(e){var n;lr(e),n=e,w.each({bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"],
 newdocument:["New document","mceNewDocument"],cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"]},function(e,t){n.addMenuItem(t,{text:e[0],icon:t,shortcut:e[2],cmd:e[1]})}),n.addMenuItem("codeformat",{text:"Code",icon:"code",onclick:Fi(n,"code")})},cr=function(n,i){return function(){var e=this,t=function(){var e="redo"===i?"hasRedo":"hasUndo";return!!n.undoManager&&n.undoManager[e]()};e.disabled(!t()),n.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){e.disabled(n.readonly||!t())})}},dr=function(e){var t,n;(t=e).addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:cr(t,"undo"),cmd:"
 undo"}),t.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:cr(t,"redo"),cmd:"redo"}),(n=e).addButton("undo",{tooltip:"Undo",onPostRender:cr(n,"undo"),cmd:"undo"}),n.addButton("redo",{tooltip:"Redo",onPostRender:cr(n,"redo"),cmd:"redo"})},fr=function(e){var t,n;(t=e).addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:(n=t,function(){var t=this;n.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(n.hasVisual)}),cmd:"mceToggleVisualAid"})},hr={setup:function(e){var t;e.rtl&&(lt.rtl=!0),e.on("mousedown",function(){St.hideAll()}),(t=e).settings.ui_container&&(me.container=Ii(yn.fromDom(document.body),t.settings.ui_container).fold(k.constant(null),function(e){return e.dom()})),Bt.tooltips=!me.iOS,lt.translate=function(e){return
  l.translate(e)},nr(e),Vi(e),ur(e),dr(e),Ki(e),$i(e),er(e),fr(e),ar(e)}},mr=Gt.extend({recalc:function(e){var t,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,R,C,k,E,H,S,M=[],T=[];t=e.settings,r=e.items().filter(":visible"),o=e.layoutRect(),i=t.columns||Math.ceil(Math.sqrt(r.length)),n=Math.ceil(r.length/i),b=t.spacingH||t.spacing||0,y=t.spacingV||t.spacing||0,x=t.alignH||t.align,w=t.alignV||t.align,p=e.paddingBox,S="reverseRows"in t?t.reverseRows:e.isRtl(),x&&"string"==typeof x&&(x=[x]),w&&"string"==typeof w&&(w=[w]);for(d=0;d<i;d++)M.push(0);for(f=0;f<n;f++)T.push(0);for(f=0;f<n;f++)for(d=0;d<i&&(c=r[f*i+d]);d++)C=(u=c.layoutRect()).minW,k=u.minH,M[d]=C>M[d]?C:M[d],T[f]=k>T[f]?k:T[f];for(E=o.innerW-p.left-p.right,d=_=0;d<i;d++)_+=M[d]+(0<d?b:0),E-=(0<d?b:0)+M[d];for(H=o.innerH-p.top-p.bottom,f=R=0;f<n;f++)R+=T[f]+(0<f?y:0),H-=(0<f?y:0)+T[f];if(_+=p.left+p.right,R+=p.top+
 p.bottom,(l={}).minW=_+(o.w-o.innerW),l.minH=R+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW===o.minW&&l.minH===o.minH){var P;o.autoResize&&((l=e.layoutRect(l)).contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH),P="start"===t.packV?0:0<H?Math.floor(H/n):0;var W=0,D=t.flexWidths;if(D)for(d=0;d<D.length;d++)W+=D[d];else W=i;var N=E/W;for(d=0;d<i;d++)M[d]+=D?D[d]*N:N;for(m=p.top,f=0;f<n;f++){for(h=p.left,a=T[f]+P,d=0;d<i&&(c=r[S?f*i+i-1-d:f*i+d]);d++)g=c.settings,u=c.layoutRect(),s=Math.max(M[d],u.startMinWidth),u.x=h,u.y=m,"center"===(v=g.alignH||(x?x[d]||x[0]:null))?u.x=h+s/2-u.w/2:"right"===v?u.x=h+s-u.w:"stretch"===v&&(u.w=s),"center"===(v=g.alignV||(w?w[d]||w[0]:null))?u.y=m+a/2-u.h/2:"bottom&q
 uot;===v?u.y=m+a-u.h:"stretch"===v&&(u.h=a),c.layoutRect(u),h+=s+b,c.recalc&&c.recalc();m+=a+y}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var A=e.parent();A&&(A._lastRect=null,A.recalc())}}}),gr=Bt.extend({renderHtml:function(){var e=this;return e.classes.add("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,t&&t()):u.setTimeout(function(){n.html(e)}),this}}),pr=Bt.extend({init:function(e){this._super(e),this.classes.add("widget").add("infobox"),this.canFocus=!1},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.c
 lasses.remove("success"),this.classes.add(e)},help:function(e){this.state.set("help",e)},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+e.encode(e.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+t+"ico "+t+'i-help"></i></button></div></div>'},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl("body").firstChild.data=t.encode(e.value),t.state.get("rendered")&&t.updateLayoutRect()}),t.state.on("change:help",function(e){t.classes.toggle("has-help",e.value),t.state.get("rendered")&&t.updateLayoutRect()}),t._super()}}),vr=Bt.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("label"),t.canFocus
 =!1,e.multiline&&t.classes.add("autoscroll"),e.strong&&t.classes.add("strong")},initLayoutRect:function(){var e=this,t=e._super();return e.settings.multiline&&(ke.getSize(e.getEl()).width>t.maxW&&(t.minW=t.maxW,e.classes.add("multiline")),e.getEl().style.width=t.minW+"px",t.startMinH=t.h=t.minH=Math.min(t.maxH,ke.getSize(e.getEl()).height)),t},repaint:function(){return this.settings.multiline||(this.getEl().style.lineHeight=this.layoutRect().h+"px"),this._super()},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},renderHtml:function(){var e,t,n=this,i=n.settings.forId,r=n.settings.html?n.settings.html:n.encode(n.state.get("text"));return!i&&(t=n.settings.forName)&&(e=n.getRoot().find("#"+t)[0])&&(i=e._id),i?'<label id="'+n._id+'" cl
 ass="'+n.classes+'"'+(i?' for="'+i+'"':"")+">"+r+"</label>":'<span id="'+n._id+'" class="'+n.classes+'">'+r+"</span>"},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.innerHtml(t.encode(e.value)),t.state.get("rendered")&&t.updateLayoutRect()}),t._super()}}),br=ft.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){this._super(e),this.classes.add("toolbar")},postRender:function(){return this.items().each(function(e){e.classes.add("toolbar-item")}),this._super()}}),yr=br.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}}),xr=Kt.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),e=t.settings,t.classes.add("menubtn"),e.fixedWidth&&t.classes.add("fixed-width"),
 t.aria("haspopup",!0),t.state.set("menu",e.menu||t.render())},showMenu:function(e){var t,n=this;if(n.menu&&n.menu.visible()&&!1!==e)return n.hideMenu();n.menu||(t=n.state.get("menu")||[],n.classes.add("opened"),t.length?t={type:"menu",animate:!0,items:t}:(t.type=t.type||"menu",t.animate=!0),t.renderTo?n.menu=t.parent(n).show().renderTo():n.menu=v.create(t).parent(n).renderTo(),n.fire("createmenu"),n.menu.reflow(),n.menu.on("cancel",function(e){e.control.parent()===n.menu&&(e.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){n.focus()}),n.menu.on("show hide",function(e){e.control===n.menu&&(n.activeMenu("show"===e.type),n.classes.toggle("opened","show"===e.type)),n.aria("expanded","show"===e.type)}).fire("show")),n.menu.show(),n.menu.layoutRect({w:n.layoutRect().w}),n.men
 u.repaint(),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),n.fire("showmenu")},hideMenu:function(){this.menu&&(this.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),this.menu.hide())},activeMenu:function(e){this.classes.toggle("active",e)},renderHtml:function(){var e,t=this,n=t._id,i=t.classPrefix,r=t.settings.icon,o=t.state.get("text"),s="";return(e=t.settings.image)?(r="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",o&&(t.classes.add("btn-has-text"),s='<span class="'+i+'txt">'+t.encode(o)+"</span>"),r=t.settings.icon?i+"ico "+i+"i-"+r:"",t.aria("role",t.parent()instanceof yr?"menuitem":"button"),'<div id="'+
 n+'" class="'+t.classes+'" tabindex="-1" aria-labelledby="'+n+'"><button id="'+n+'-open" role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+e+"></i>":"")+s+' <i class="'+i+'caret"></i></button></div>'},postRender:function(){var r=this;return r.on("click",function(e){e.control===r&&function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}(e.target,r.getEl())&&(r.focus(),r.showMenu(!e.aria),e.aria&&r.menu.items().filter(":visible")[0].focus())}),r.on("mouseenter",function(e){var t,n=e.control,i=r.parent();n&&i&&n instanceof xr&&n.parent()===i&&(i.items().filter("MenuButton").each(function(e){e.hideMenu&&e!==n&&(e.menu&&e.menu.visible()&&(t=!0),e.hideMenu())}),t&&(n.
 focus(),n.showMenu()))}),r._super()},bindStates:function(){var e=this;return e.state.on("change:menu",function(){e.menu&&e.menu.remove(),e.menu=null}),e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}}),wr=St.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){if(e.autohide=!0,e.constrainToViewport=!0,"function"==typeof e.items&&(e.itemsFactory=e.items,e.items=[]),e.itemDefaults)for(var t=e.items,n=t.length;n--;)t[n]=w.extend({},e.itemDefaults,t[n]);this._super(e),this.classes.add("menu"),e.animate&&11!==me.ie&&this.classes.add("animate")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){this.hideAll(),this.fir
 e("select")},load:function(){var t,n=this;function i(){n.throbber&&(n.throbber.hide(),n.throbber=null)}n.settings.itemsFactory&&(n.throbber||(n.throbber=new Wt(n.getEl("body"),!0),0===n.items().length?(n.throbber.show(),n.fire("loading")):n.throbber.show(100,function(){n.items().remove(),n.fire("loading")}),n.on("hide close",i)),n.requestTime=t=(new Date).getTime(),n.settings.itemsFactory(function(e){0!==e.length?n.requestTime===t&&(n.getEl().style.width="",n.getEl("body").style.width="",i(),n.items().remove(),n.getEl("body").innerHTML="",n.add(e),n.renderNew(),n.fire("loaded")):n.hide()}))},hideAll:function(){return this.find("menuitem").exec("hideMenu"),this._super()},preRender:function(){var n=this;return n.items().each(function(e){var t=e.settings;if(t.icon||t.image||t.selectable)return!(n._hasIcons=!0)}),n.settings.itemsFactor
 y&&n.on("postrender",function(){n.settings.itemsFactory&&n.load()}),n.on("show hide",function(e){e.control===n&&("show"===e.type?u.setTimeout(function(){n.classes.add("in")},0):n.classes.remove("in"))}),n._super()}}),_r=xr.extend({init:function(i){var t,r,o,n,s=this;s._super(i),i=s.settings,s._values=t=i.values,t&&("undefined"!=typeof i.value&&function e(t){for(var n=0;n<t.length;n++){if(r=t[n].selected||i.value===t[n].value)return o=o||t[n].text,s.state.set("value",t[n].value),!0;if(t[n].menu&&e(t[n].menu))return!0}}(t),!r&&0<t.length&&(o=t[0].text,s.state.set("value",t[0].value)),s.state.set("menu",t)),s.state.set("text",i.text||o),s.classes.add("listbox"),s.on("select",function(e){var t=e.control;n&&(e.lastControl=n),i.multiple?t.active(!t.active()):s.value(e.control.value()),n=t})},va
 lue:function(t){return 0===arguments.length?this.state.get("value"):(void 0===t||(this.settings.values?0<w.grep(this.settings.values,function(e){return e.value===t}).length?this.state.set("value",t):null===t&&this.state.set("value",null):this.state.set("value",t)),this)},bindStates:function(){var i=this;return i.on("show",function(e){var t,n;t=e.control,n=i.value(),t instanceof wr&&t.items().each(function(e){e.hasMenus()||e.active(e.value()===n)})}),i.state.on("change:value",function(t){var n=function e(t,n){var i;if(t)for(var r=0;r<t.length;r++){if(t[r].value===n)return t[r];if(t[r].menu&&(i=e(t[r].menu,n)))return i}}(i.state.get("menu"),t.value);n?i.text(n.text):i.text(i.settings.text)}),i._super()}}),Rr=Bt.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t,n=this;n._super(e),e=n.settings,n.classes.add("menu-item"),e.menu&&n.classes.add(&q
 uot;menu-item-expand"),e.preview&&n.classes.add("menu-item-preview"),"-"!==(t=n.state.get("text"))&&"|"!==t||(n.classes.add("menu-item-sep"),n.aria("role","separator"),n.state.set("text","-")),e.selectable&&(n.aria("role","menuitemcheckbox"),n.classes.add("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||n.classes.add("menu-item-normal"),n.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&n.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var t,n=this,e=n.settings,i=n.parent();if(i.items().each(function(e){e!==n&&e.hideMenu()}),e.menu){(t=n.menu)?t.show():((t=e.menu).length?t={type:"menu",items:t}:t.type=t.type||"menu",i.settings.itemDefaults&&(t.itemDefaults=i.setting
 s.itemDefaults),(t=n.menu=v.create(t).parent(n).renderTo()).reflow(),t.on("cancel",function(e){e.stopPropagation(),n.focus(),t.hide()}),t.on("show hide",function(e){e.control.items&&e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),t.on("hide",function(e){e.control===t&&n.classes.remove("selected")}),t.submenu=!0),t._parentMenu=i,t.classes.add("menu-sub");var r=t.testMoveRel(n.getEl(),n.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);t.moveRel(n.getEl(),r),r="menu-sub-"+(t.rel=r),t.classes.remove(t._lastRel).add(r),t._lastRel=r,n.classes.add("selected"),n.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1
 )),e},renderHtml:function(){var e,t=this,n=t._id,i=t.settings,r=t.classPrefix,o=t.state.get("text"),s=t.settings.icon,a="",l=i.shortcut,u=t.encode(i.url);function c(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function d(e){var t=i.match||"";return t?e.replace(new RegExp(c(t),"gi"),function(e){return"!mce~match["+e+"]mce~match!"}):e}function f(e){return e.replace(new RegExp(c("!mce~match["),"g"),"<b>").replace(new RegExp(c("]mce~match!"),"g"),"</b>")}return s&&t.parent().classes.add("menu-has-icons"),i.image&&(a=" style=\"background-image: url('"+i.image+"')\""),l&&(l=function(e){var t,n,i={};for(i=me.mac?{alt:"&#x2325;",ctrl:"&#x2318;",shift:"&#x21E7;",meta:"&#x2318;"}:{meta:"Ctrl"},e=e.split("+"
 ),t=0;t<e.length;t++)(n=i[e[t].toLowerCase()])&&(e[t]=n);return e.join("+")}(l)),s=r+"ico "+r+"i-"+(t.settings.icon||"none"),e="-"!==o?'<i class="'+s+'"'+a+"></i>\xa0":"",o=f(t.encode(d(o))),u=f(t.encode(d(u))),'<div id="'+n+'" class="'+t.classes+'" tabindex="-1">'+e+("-"!==o?'<span id="'+n+'-text" class="'+r+'text">'+o+"</span>":"")+(l?'<div id="'+n+'-shortcut" class="'+r+'menu-shortcut">'+l+"</div>":"")+(i.menu?'<div class="'+r+'caret"></div>':"")+(u?'<div class="'+r+'menu-item-link">'+u+"</div>":"")+"</div>"},postRender:function(){var t=this,n=t.settings,e=n.textStyle;if("function"==typeof e&&(e=e.call(this)),e){var i=t.getEl
 ("text");i&&(i.setAttribute("style",e),t._textStyle=e)}return t.on("mouseenter click",function(e){e.control===t&&(n.menu||"click"!==e.type?(t.showMenu(),e.aria&&t.menu.focus(!0)):(t.fire("select"),u.requestAnimationFrame(function(){t.parent().hideAll()})))}),t._super(),t},hover:function(){return this.parent().items().each(function(e){e.classes.remove("selected")}),this.classes.toggle("selected",!0),this},active:function(e){return function(e,t){var n=e._textStyle;if(n){var i=e.getEl("text");i.setAttribute("style",n),t&&(i.style.color="",i.style.backgroundColor="")}}(this,e),void 0!==e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}}),Cr=en.extend({Defaults:{classes:"radio",role:"radio"}}),kr=Bt.extend({renderHtml:function(){var e=this,t=e.classP
 refix;return e.classes.add("resizehandle"),"both"===e.settings.direction&&e.classes.add("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var t=this;t._super(),t.resizeDragHelper=new mt(this._id,{start:function(){t.fire("ResizeStart")},drag:function(e){"both"!==t.settings.direction&&(e.deltaX=0),t.fire("Resize",e)},stop:function(){t.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}});function Er(e){var t="";if(e)for(var n=0;n<e.length;n++)t+='<option value="'+e[n]+'">'+e[n]+"</option>";return t}var Hr=Bt.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(e){var n=this;n._su
 per(e),n.settings.size&&(n.size=n.settings.size),n.settings.options&&(n._options=n.settings.options),n.on("keydown",function(e){var t;13===e.keyCode&&(e.preventDefault(),n.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),n.fire("submit",{data:t.toJSON()}))})},options:function(e){return arguments.length?(this.state.set("options",e),this):this.state.get("options")},renderHtml:function(){var e,t=this,n="";return e=Er(t._options),t.size&&(n=' size = "'+t.size+'"'),'<select id="'+t._id+'" class="'+t.classes+'"'+n+">"+e+"</select>"},bindStates:function(){var t=this;return t.state.on("change:options",function(e){t.getEl().innerHTML=Er(e.value)}),t._super()}});function Sr(e,t,n){return e<t&&(e=t),n<e&&(e=n),e}function Mr(e,t,n){e.setAttribute("aria-"+t,n)}function Tr(e,t){var n,i,r,o,s;"
 v"===e.settings.orientation?(r="top",i="height",n="h"):(r="left",i="width",n="w"),s=e.getEl("handle"),o=((e.layoutRect()[n]||100)-ke.getSize(s)[i])*((t-e._minValue)/(e._maxValue-e._minValue))+"px",s.style[r]=o,s.style.height=e.layoutRect().h+"px",Mr(s,"valuenow",t),Mr(s,"valuetext",""+e.settings.previewFilter(t)),Mr(s,"valuemin",e._minValue),Mr(s,"valuemax",e._maxValue)}var Pr=Bt.extend({init:function(e){var t=this;e.previewFilter||(e.previewFilter=function(e){return Math.round(100*e)/100}),t._super(e),t.classes.add("slider"),"v"===e.orientation&&t.classes.add("vertical"),t._minValue=V.isNumber(e.minValue)?e.minValue:0,t._maxValue=V.isNumber(e.maxValue)?e.maxValue:100,t._initValue=t.state.get("value")},renderHtml:function(){var e=this._id,t=this.classPrefix;return'<div id="'+e+'" 
 class="'+this.classes+'"><div id="'+e+'-handle" class="'+t+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){var e,t,n,i,r,o,s,a,l,u,c,d,f,h,m=this;e=m._minValue,t=m._maxValue,"v"===m.settings.orientation?(n="screenY",i="top",r="height",o="h"):(n="screenX",i="left",r="width",o="w"),m._super(),function(o,s){function t(e){var t,n,i,r;t=Sr(t=(((t=m.value())+(r=n=o))/((i=s)-r)+.05*e)*(i-n)-n,o,s),m.value(t),m.fire("dragstart",{value:t}),m.fire("drag",{value:t}),m.fire("dragend",{value:t})}m.on("keydown",function(e){switch(e.keyCode){case 37:case 38:t(-1);break;case 39:case 40:t(1)}})}(e,t),s=e,a=t,l=m.getEl("handle"),m._dragHelper=new mt(m._id,{handle:m._id+"-handle",start:function(e)
 {u=e[n],c=parseInt(m.getEl("handle").style[i],10),d=(m.layoutRect()[o]||100)-ke.getSize(l)[r],m.fire("dragstart",{value:h})},drag:function(e){var t=e[n]-u;f=Sr(c+t,0,d),l.style[i]=f+"px",h=s+f/d*(a-s),m.value(h),m.tooltip().text(""+m.settings.previewFilter(h)).show().moveRel(l,"bc tc"),m.fire("drag",{value:h})},stop:function(){m.tooltip().hide(),m.fire("dragend",{value:h})}})},repaint:function(){this._super(),Tr(this,this.value())},bindStates:function(){var t=this;return t.state.on("change:value",function(e){Tr(t,e.value)}),t._super()}}),Wr=Bt.extend({renderHtml:function(){return this.classes.add("spacer"),this.canFocus=!1,'<div id="'+this._id+'" class="'+this.classes+'"></div>'}}),Dr=xr.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e,t,n=this.getEl(),i=this.layoutRect();return this._super(),e=n.firstChi
 ld,t=n.lastChild,Re(e).css({width:i.w-ke.getSize(t).width,height:i.h-2}),Re(t).css({height:i.h-2}),this},activeMenu:function(e){Re(this.getEl().lastChild).toggleClass(this.classPrefix+"active",e)},renderHtml:function(){var e,t,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a=n.settings,l="";return(e=a.image)?(o="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",o=a.icon?r+"ico "+r+"i-"+o:"",s&&(n.classes.add("btn-has-text"),l='<span class="'+r+'txt">'+n.encode(s)+"</span>"),t="boolean"==typeof a.active?' aria-pressed="'+a.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" role="button"'+t+' tabindex="-1"><button type="button&
 quot; hidefocus="1" tabindex="-1">'+(o?'<i class="'+o+'"'+e+"></i>":"")+l+'</button><button type="button" class="'+r+'open" hidefocus="1" tabindex="-1">'+(n._menuBtnText?(o?"\xa0":"")+n._menuBtnText:"")+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var n=this.settings.onclick;return this.on("click",function(e){var t=e.target;if(e.control===this)for(;t;){if(e.aria&&"down"!==e.aria.key||"BUTTON"===t.nodeName&&-1===t.className.indexOf("open"))return e.stopImmediatePropagation(),void(n&&n.call(this,e));t=t.parentNode}}),delete this.settings.onclick,this._super()}}),Nr=Li.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!
 0}}),Ar=xt.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(n){var e;this.activeTabId&&(e=this.getEl(this.activeTabId),Re(e).removeClass(this.classPrefix+"active"),e.setAttribute("aria-selected","false")),this.activeTabId="t"+n,(e=this.getEl("t"+n)).setAttribute("aria-selected","true"),Re(e).addClass(this.classPrefix+"active"),this.items()[n].show().fire("showtab"),this.reflow(),this.items().each(function(e,t){n!==t&&e.hide()})},renderHtml:function(){var i=this,e=i._layout,r="",o=i.classPrefix;return i.preRender(),e.preRender(i),i.items().each(function(e,t){var n=i._id+"-t"+t;e.aria("role","tabpanel"),e.aria("labelledby",n),r+='<div id="'+n+'" class="'+o+'tab" unselectable="on" role="tab" aria-controls="'+e._id+'" aria-select
 ed="false" tabIndex="-1">'+i.encode(e.settings.title)+"</div>"}),'<div id="'+i._id+'" class="'+i.classes+'" hidefocus="1" tabindex="-1"><div id="'+i._id+'-head" class="'+o+'tabs" role="tablist">'+r+'</div><div id="'+i._id+'-body" class="'+i.bodyClasses+'">'+e.renderHtml(i)+"</div></div>"},postRender:function(){var i=this;i._super(),i.settings.activeTab=i.settings.activeTab||0,i.activateTab(i.settings.activeTab),this.on("click",function(e){var t=e.target.parentNode;if(t&&t.id===i._id+"-head")for(var n=t.childNodes.length;n--;)t.childNodes[n]===e.target&&i.activateTab(n)})},initLayoutRect:function(){var e,t,n,i=this;t=(t=ke.getSize(i.getEl("head")).width)<0?0:t,n=0,i.items().each(function(e){t=Math.max(t,e.layoutRect().minW),n=Math.max(n,e.layoutRect().minH)}),i.it
 ems().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=t,e.settings.h=n,e.layoutRect({x:0,y:0,w:t,h:n})});var r=ke.getSize(i.getEl("head")).height;return i.settings.minWidth=t,i.settings.minHeight=n+r,(e=i._super()).deltaH+=r,e.innerH=e.h-e.deltaH,e}}),Br=Bt.extend({init:function(e){var n=this;n._super(e),n.classes.add("textbox"),e.multiline?n.classes.add("multiline"):(n.on("keydown",function(e){var t;13===e.keyCode&&(e.preventDefault(),n.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),n.fire("submit",{data:t.toJSON()}))}),n.on("keyup",function(e){n.state.set("value",e.target.value)}))},repaint:function(){var e,t,n,i,r,o=this,s=0;e=o.getEl().style,t=o._layoutRect,r=o._lastRepaintRect||{};var a=document;return!o.settings.multiline&&a.all&&(!a.documentMode||a.documentMode<=8)&&(e.lineHeight=t.h-s+"px"),i=(n=o.borderBox).left+n.right+8,s=n.top+n
 .bottom+(o.settings.multiline?8:0),t.x!==r.x&&(e.left=t.x+"px",r.x=t.x),t.y!==r.y&&(e.top=t.y+"px",r.y=t.y),t.w!==r.w&&(e.width=t.w-i+"px",r.w=t.w),t.h!==r.h&&(e.height=t.h-s+"px",r.h=t.h),o._lastRepaintRect=r,o.fire("repaint",{},!1),o},renderHtml:function(){var t,e,n=this,i=n.settings;return t={id:n._id,hidefocus:"1"},w.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(e){t[e]=i[e]}),n.disabled()&&(t.disabled="disabled"),i.subtype&&(t.type=i.subtype),(e=ke.create(i.multiline?"textarea":"input",t)).value=n.state.get("value"),e.className=n.classes,e.outerHTML},value:function(e){return arguments.length?(this.state.set("v
 alue",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var t=this;t.getEl().value=t.state.get("value"),t._super(),t.$el.on("change",function(e){t.state.set("value",e.target.value),t.fire("change",e)})},bindStates:function(){var t=this;return t.state.on("change:value",function(e){t.getEl().value!==e.value&&(t.getEl().value=e.value)}),t.state.on("change:disabled",function(e){t.getEl().disabled=e.value}),t._super()},remove:function(){this.$el.off(),this._super()}}),Or=function(){return{Selector:je,Collection:$e,ReflowQueue:tt,Control:lt,Factory:v,KeyboardNavigation:ct,Container:ft,DragHelper:mt,Scrollable:yt,Panel:xt,Movable:Pe,Resizable:wt,FloatPanel:St,Window:qt,MessageBox:$t,Tooltip:At,Widget:Bt,Progress:Ot,Notification:Lt,Layout:Jt,AbsoluteLayout:Gt,Button:Kt,ButtonGroup:Qt,Checkbox:en,ComboBox
 :nn,ColorBox:rn,PanelButton:on,ColorButton:an,ColorPicker:un,Path:dn,ElementPath:fn,FormItem:hn,Form:mn,FieldSet:gn,FilePicker:Bi,FitLayout:Oi,FlexLayout:zi,FlowLayout:Li,FormatControls:hr,GridLayout:mr,Iframe:gr,InfoBox:pr,Label:vr,Toolbar:br,MenuBar:yr,MenuButton:xr,MenuItem:Rr,Throbber:Wt,Menu:wr,ListBox:_r,Radio:Cr,ResizeHandle:kr,SelectBox:Hr,Slider:Pr,Spacer:Wr,SplitButton:Dr,StackLayout:Nr,TabPanel:Ar,TextBox:Br,DropZone:cn,BrowseButton:Zt}},zr=function(n){n.ui?w.each(Or(),function(e,t){n.ui[t]=e}):n.ui=Or()};w.each(Or(),function(e,t){v.add(t,e)}),zr(window.tinymce?window.tinymce:{}),o.add("modern",function(e){return hr.setup(e),Xt(e)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(){"use strict";var e,t,n,i,r,o=tinymce.util.Tools.resolve("tinymce.ThemeManager"),h=tinymce.util.Tools.resolve("tinymce.EditorManager"),w=tinymce.util.Tools.resolve("tinymce.util.Tools"),d=function(e){return!1!==c(e)},c=function(e){return e.getParam("menubar")},f=function(e){return e.getParam("toolbar_items_size")},m=function(e){return e.getParam("menu")},g=function(e){return!1===e.settings.skin},p=function(e){var t=e.getParam("resize","vertical");return!1===t?"none":"both"===t?"both":"vertical"},v=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),b=tinymce.util.Tools.resolve("tinymce.ui.Factory"),y=tinymce.util.Tools.resolve("tinymce.util.I18n"),s=function(e){return e.fire("SkinLoaded")},x=function(e){return 
 e.fire("ResizeEditor")},_=function(e){return e.fire("BeforeRenderUI")},a=function(t,n){return function(){var e=t.find(n)[0];e&&e.focus(!0)}},C=function(e,t){e.shortcuts.add("Alt+F9","",a(t,"menubar")),e.shortcuts.add("Alt+F10,F10","",a(t,"toolbar")),e.shortcuts.add("Alt+F11","",a(t,"elementpath")),t.on("cancel",function(){e.focus()})},R=tinymce.util.Tools.resolve("tinymce.geom.Rect"),u=tinymce.util.Tools.resolve("tinymce.util.Delay"),E=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},k=function(e){return function(){return e}},l=k(!1),T=k(!0),H=l,S=T,M=function(){return N},N=(i={fold:function(e,t){return e()},is:H,isSome:H,isNone:S,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:function(){return null}
 ,getOrUndefined:function(){return undefined},or:n,orThunk:t,map:M,ap:M,each:function(){},bind:M,flatten:M,exists:H,forall:S,filter:M,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:k("none()")},Object.freeze&&Object.freeze(i),i),P=function(n){var e=function(){return n},t=function(){return r},i=function(e){return e(n)},r={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:S,isNone:H,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return P(e(n))},ap:function(e){return e.fold(M,function(e){return P(e(n))})},each:function(e){e(n)},bind:i,flatten:e,exists:i,forall:i,filter:function(e){return e(n)?r:N},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(H,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return r},D={some:P,none:M,from:function(e){return null===e||e===undefined?N:P(e
 )}},W=function(e){return e?e.getRoot().uiContainer:null},O={getUiContainerDelta:function(e){var t=W(e);if(t&&"static"!==v.DOM.getStyle(t,"position",!0)){var n=v.DOM.getPos(t),i=t.scrollLeft-n.x,r=t.scrollTop-n.y;return D.some({x:i,y:r})}return D.none()},setUiContainer:function(e,t){var n=v.DOM.select(e.settings.ui_container)[0];t.getRoot().uiContainer=n},getUiContainer:W,inheritUiContainer:function(e,t){return t.uiContainer=W(e)}},A=function(i,e,r){var o,s=[];if(e)return w.each(e.split(/[ ,]/),function(t){var e,n=function(){var e=i.selection;t.settings.stateSelector&&e.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&e.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})};"|"===t?o=null:(o||(o={type:"buttongroup",items:[]},s.push(o)),i.buttons[t]&&(e=t,"function"==typeof(t=i.buttons[e])&&(t=t()),t.type=t.type||"
 button",t.size=r,t=b.create(t),o.items.push(t),i.initialized?n():i.on("init",n)))}),{type:"toolbar",layout:"flow",items:s}},B=A,L=function(n,i){var e,t,r=[];if(w.each(!1===(t=(e=n).getParam("toolbar"))?[]:w.isArray(t)?w.grep(t,function(e){return 0<e.length}):function(e,t){for(var n=[],i=1;i<10;i++){var r=e["toolbar"+i];if(!r)break;n.push(r)}var o=e.toolbar?[e.toolbar]:[t];return 0<n.length?n:o}(e.settings,"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"),function(e){var t;(t=e)&&r.push(A(n,t,i))}),r.length)return{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:r}},I=v.DOM,z=function(e){return{left:e.x,top:e.y,width:e.w,height:e.h,right:e.x+e.w,bottom:e.y+e.h}},F=function(e,t){e.moveTo(t.left,t.top)},U=function(e,t,n,i,r,o){return o=z({x:t,y:n,w:o.w,h:o.h
 }),e&&(o=e({elementRect:z(i),contentAreaRect:z(r),panelRect:o})),o},V=function(x){var i,o=function(){return x.contextToolbars||[]},n=function(e,t){var n,i,r,o,s,a,l,u=x.getParam("inline_toolbar_position_handler");if(!x.removed){if(!e||!e.toolbar.panel)return c=x,void w.each(c.contextToolbars,function(e){e.panel&&e.panel.hide()});var c,d,f,h,m;l=["bc-tc","tc-bc","tl-bl","bl-tl","tr-br","br-tr"],s=e.toolbar.panel,t&&s.show(),d=e.element,f=I.getPos(x.getContentAreaContainer()),h=x.dom.getRect(d),"BODY"===(m=x.dom.getRoot()).nodeName&&(h.x-=m.ownerDocument.documentElement.scrollLeft||m.scrollLeft,h.y-=m.ownerDocument.documentElement.scrollTop||m.scrollTop),h.x+=f.x,h.y+=f.y,r=h,i=I.getRect(s.getEl()),o=I.getRect(x.getContentAreaContainer()||x.getBody());var g,p,v,b=O.getUiContainerDelta(s).getOr({x:0,y:0});if(r.x+=b.x,r.y+=b.y,i.x+=b.x,i.y+=b.y,o.x+=b.x,o.y+=b.y,"inline&q
 uot;!==I.getStyle(e.element,"display",!0)){var y=e.element.getBoundingClientRect();r.w=y.width,r.h=y.height}x.inline||(o.w=x.getDoc().documentElement.offsetWidth),x.selection.controlSelection.isResizable(e.element)&&r.w<25&&(r=R.inflate(r,0,8)),n=R.findBestRelativePosition(i,r,o,l),r=R.clamp(r,o),n?(a=R.relativePosition(i,r,n),F(s,U(u,a.x,a.y,r,o,i))):(o.h+=i.h,(r=R.intersect(o,r))?(n=R.findBestRelativePosition(i,r,o,["bc-tc","bl-tl","br-tr"]))?(a=R.relativePosition(i,r,n),F(s,U(u,a.x,a.y,r,o,i))):F(s,U(u,r.x,r.y,r,o,i)):s.hide()),g=s,v=function(e,t){return e===t},p=(p=n)?p.substr(0,2):"",w.each({t:"down",b:"up"},function(e,t){g.classes.toggle("arrow-"+e,v(t,p.substr(0,1)))}),w.each({l:"left",r:"right"},function(e,t){g.classes.toggle("arrow-"+e,v(t,p.substr(1,1)))})}},r=function(e){return function(){u.requestAnimationFrame(function(){x.selection&&n
 (a(x.selection.getNode()),e)})}},t=function(e){var t;if(e.toolbar.panel)return e.toolbar.panel.show(),void n(e);t=b.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:B(x,e.toolbar.items),oncancel:function(){x.focus()}}),O.setUiContainer(x,t),function(e){if(!i){var t=r(!0),n=O.getUiContainer(e);i=x.selection.getScrollContainer()||x.getWin(),I.bind(i,"scroll",t),I.bind(n,"scroll",t),x.on("remove",function(){I.unbind(i,"scroll",t),I.unbind(n,"scroll",t)})}}(t),(e.toolbar.panel=t).renderTo().reflow(),n(e)},s=function(){w.each(o(),function(e){e.panel&&e.panel.hide()})},a=function(e){var t,n,i,r=o();for(t=(i=x.$(e).parents().add(e)).length-1;0<=t;t--)for(n=r.length-1;0<=n;n--)if(r[n].predicate(i[t]))return{t
 oolbar:r[n],element:i[t]};return null};x.on("click keyup setContent ObjectResized",function(e){("setcontent"!==e.type||e.selection)&&u.setEditorTimeout(x,function(){var e;(e=a(x.selection.getNode()))?(s(),t(e)):s()})}),x.on("blur hide contextmenu",s),x.on("ObjectResizeStart",function(){var e=a(x.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.hide()}),x.on("ResizeEditor ResizeWindow",r(!0)),x.on("nodeChange",r(!1)),x.on("remove",function(){w.each(o(),function(e){e.panel&&e.panel.remove()}),x.contextToolbars={}}),x.shortcuts.add("ctrl+shift+e > ctrl+shift+p","",function(){var e=a(x.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.items()[0].focus()})},Y=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"a
 rray":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},$=Y("function"),X=Y("number"),q=(r=Array.prototype.indexOf)===undefined?function(e,t){return ee(e,t)}:function(e,t){return r.call(e,t)},j=function(e,t){return Q(e,t).isSome()},J=function(e,t){for(var n=e.length,i=new Array(n),r=0;r<n;r++){var o=e[r];i[r]=t(o,r,e)}return i},G=function(e,t){for(var n=0,i=e.length;n<i;n++)t(e[n],n,e)},K=function(e,t){for(var n=[],i=0,r=e.length;i<r;i++){var o=e[i];t(o,i,e)&&n.push(o)}return n},Z=function(e,t){for(var n=0,i=e.length;n<i;n++){var r=e[n];if(t(r,n,e))return D.some(r)}return D.none()},Q=function(e,t){for(var n=0,i=e.length;n<i;n++)if(t(e[n],n,e))return D.some(n);return D.none()},ee=function(e,t){for(var n=0,i=e.length;n<i;++n)if(e[n]===t)return n;return-1},te=Array.prototype.push,ne=(Array.prototype.slice,$(Array.from)&&Array.from,{file:{title:"File",items:"newdocume
 nt restoredraft | preview | print"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},view:{title:"View",items:"code | visualaid visualchars visualblocks | spellchecker | preview fullscreen"},insert:{title:"Insert",items:"image link media template codesample inserttable | charmap hr | pagebreak nonbreaking anchor toc | insertdatetime"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript codeformat | blockformats align | removeformat"},tools:{title:"Tools",items:"spellchecker spellcheckerlanguage | a11ycheck code"},table:{title:"Table"},help:{title:"Help"}}),ie=function(e,t){return"|"===e?{name:"|",item:{text:"|"}}:t?{name:e,item:t}:null},re=function(e){return e&&"|"===e.item.text},oe=function(n,e,t,i){var r,o,s,a,l,u,c;return e?(o=e[i],a=!0):o=ne[i],o
 &&(r={text:o.title},s=[],w.each((o.items||"").split(/[ ,]/),function(e){var t=ie(e,n[e]);t&&s.push(t)}),a||w.each(n,function(e,t){var n;e.context!==i||(n=t,Q(s,function(e){return e.name===n}).isSome())||("before"===e.separator&&s.push({name:"|",item:{text:"|"}}),e.prependToContext?s.unshift(ie(t,e)):s.push(ie(t,e)),"after"===e.separator&&s.push({name:"|",item:{text:"|"}}))}),r.menu=J((l=t,u=K(s,function(e){return!1===l.hasOwnProperty(e.name)}),c=K(u,function(e,t,n){return!re(e)||!re(n[t-1])}),K(c,function(e,t,n){return!re(e)||0<t&&t<n.length-1})),function(e){return e.item}),!r.menu.length)?null:r},se=function(e){for(var t,n=[],i=function(e){var t,n=[],i=m(e);if(i)for(t in i)n.push(t);else for(t in ne)n.push(t);return n}(e),r=w.makeMap((t=e,t.getParam("removed_menuitems","")).split(/[ ,]/)),o=c(e),s="string"==typeof o?o.split(/[ ,]/):i,a=0;
 a<s.length;a++){var l=s[a],u=oe(e.menuItems,m(e),r,l);u&&n.push(u)}return n},ae=v.DOM,le=function(e){return{width:e.clientWidth,height:e.clientHeight}},ue=function(e,t,n){var i,r,o,s;i=e.getContainer(),r=e.getContentAreaContainer().firstChild,o=le(i),s=le(r),null!==t&&(t=Math.max(e.getParam("min_width",100,"number"),t),t=Math.min(e.getParam("max_width",65535,"number"),t),ae.setStyle(i,"width",t+(o.width-s.width)),ae.setStyle(r,"width",t)),n=Math.max(e.getParam("min_height",100,"number"),n),n=Math.min(e.getParam("max_height",65535,"number"),n),ae.setStyle(r,"height",n),x(e)},ce=ue,de=function(e,t,n){var i=e.getContentAreaContainer();ue(e,i.clientWidth+t,i.clientHeight+n)},fe=tinymce.util.Tools.resolve("tinymce.Env"),he=function(e,t,n){var i,r=e.settings[n];r&&r((i=t.getEl("body"),{element:function(){return i}}))},me=function(c,d,
 f){return function(e){var t,n,i,r,o,s=e.control,a=s.parents().filter("panel")[0],l=a.find("#"+d)[0],u=(t=f,n=d,w.grep(t,function(e){return e.name===n})[0]);i=d,r=a,o=f,w.each(o,function(e){var t=r.items().filter("#"+e.name)[0];t&&t.visible()&&e.name!==i&&(he(e,t,"onhide"),t.visible(!1))}),s.parent().items().each(function(e){e.active(!1)}),l&&l.visible()?(he(u,l,"onhide"),l.hide(),s.active(!1)):(l?l.show():(l=b.create({type:"container",name:d,layout:"stack",classes:"sidebar-panel",html:""}),a.prepend(l),he(u,l,"onrender")),he(u,l,"onshow"),s.active(!0)),x(c)}},ge=function(e){return!(fe.ie&&!(11<=fe.ie)||!e.sidebars)&&0<e.sidebars.length},pe=function(n){return{type:"panel",name:"sidebar",layout:"stack",classes:"sidebar",items:[{type:"toolbar",layout:"stack",classes
 :"sidebar-toolbar",items:w.map(n.sidebars,function(e){var t=e.settings;return{type:"button",icon:t.icon,image:t.image,tooltip:t.tooltip,onclick:me(n,e.name,n.sidebars)}})}]}},ve=function(e){var t=function(){e._skinLoaded=!0,s(e)};return function(){e.initialized?t():e.on("init",t)}},be=v.DOM,ye=function(e){return{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",border:e,html:""}},xe=function(t,e,n){var i,r,o,s,a;if(!1===g(t)&&n.skinUiCss?be.styleSheetLoader.load(n.skinUiCss,ve(t)):ve(t)(),i=e.panel=b.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[{type:"container",classes:"top-part",items:[!1===d(t)?null:{type:"menubar",border:"0 0 1 0",items:se(t)},L(t,f(t))]},ge(t)?(s=t,{type:"panel",layout:"stack",classes:
 "edit-aria-container",border:"1 0 0 0",items:[ye("0"),pe(s)]}):ye("1 0 0 0")]}),O.setUiContainer(t,i),"none"!==p(t)&&(r={type:"resizehandle",direction:p(t),onResizeStart:function(){var e=t.getContentAreaContainer().firstChild;o={width:e.clientWidth,height:e.clientHeight}},onResize:function(e){"both"===p(t)?ce(t,o.width+e.deltaX,o.height+e.deltaY):ce(t,null,o.height+e.deltaY)}}),t.getParam("statusbar",!0,"boolean")){var l=y.translate(["Powered by {0}",'<a href="https://www.tinymce.com/?utm_campaign=editor_referral&amp;utm_medium=poweredby&amp;utm_source=tinymce" rel="noopener" target="_blank" role="presentation" tabindex="-1">tinymce</a>']),u=t.getParam("branding",!0,"boolean")?{type:"label",classes:"branding",html:" "+l}:null;i.add({type:"panel",nam
 e:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath",editor:t},r,u]})}return _(t),t.on("SwitchMode",(a=i,function(e){a.find("*").disabled("readonly"===e.mode)})),i.renderBefore(n.targetNode).reflow(),t.getParam("readonly",!1,"boolean")&&t.setMode("readonly"),n.width&&be.setStyle(i.getEl(),"width",n.width),t.on("remove",function(){i.remove(),i=null}),C(t,i),V(t),{iframeContainer:i.find("#iframe")[0].getEl(),editorContainer:i.getEl()}},we=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),_e=0,Ce={id:function(){return"mceu_"+_e++},create:function(e,t,n){var i=document.createElement(e);return v.DOM.setAttribs(i,t),"string"==typeof n?i.innerHTML=n:w.each(n,function(e){e.nodeType&&i.appendChild(e)}),i},createFragment:function(e){return v.DOM.creat
 eFragment(e)},getWindowSize:function(){return v.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var i=e.getBoundingClientRect();t=Math.max(i.width||i.right-i.left,e.offsetWidth),n=Math.max(i.height||i.bottom-i.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,t){return v.DOM.getPos(e,t||Ce.getContainer())},getContainer:function(){return fe.container?fe.container:document.body},getViewPort:function(e){return v.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,t){return v.DOM.addClass(e,t)},removeClass:function(e,t){return v.DOM.removeClass(e,t)},hasClass:function(e,t){return v.DOM.hasClass(e,t)},toggleClass:function(e,t,n){return v.DOM.toggleClass(e,t,n)},css:function(e,t,n){return v.DOM.setStyle(e,t,n)},getRuntimeStyle:function(e,t){return v.DOM.getStyle(e,t,!0)},on:function(e,t,n,i){return v.DOM.bind(e,t,n,i)},off:function(e,t,n){return v.DOM.unbind(e,t,n)},fir
 e:function(e,t,n){return v.DOM.fire(e,t,n)},innerHtml:function(e,t){v.DOM.setHTML(e,t)}},Re=function(e){return"static"===Ce.getRuntimeStyle(e,"position")},Ee=function(e){return e.state.get("fixed")};function ke(e,t,n){var i,r,o,s,a,l,u,c,d,f;return d=Te(),o=(r=Ce.getPos(t,O.getUiContainer(e))).x,s=r.y,Ee(e)&&Re(document.body)&&(o-=d.x,s-=d.y),i=e.getEl(),a=(f=Ce.getSize(i)).width,l=f.height,u=(f=Ce.getSize(t)).width,c=f.height,"b"===(n=(n||"").split(""))[0]&&(s+=c),"r"===n[1]&&(o+=u),"c"===n[0]&&(s+=Math.round(c/2)),"c"===n[1]&&(o+=Math.round(u/2)),"b"===n[3]&&(s-=l),"r"===n[4]&&(o-=a),"c"===n[3]&&(s-=Math.round(l/2)),"c"===n[4]&&(o-=Math.round(a/2)),{x:o,y:s,w:a,h:l}}var Te=function(){var e=window,t=Math.max(e.pageXOffset,document.body.scrollLeft,document.documentElement.scro
 llLeft),n=Math.max(e.pageYOffset,document.body.scrollTop,document.documentElement.scrollTop);return{x:t,y:n,w:t+(e.innerWidth||document.documentElement.clientWidth),h:n+(e.innerHeight||document.documentElement.clientHeight)}},He=function(e){var t,n=O.getUiContainer(e);return n&&!Ee(e)?{x:0,y:0,w:(t=n).scrollWidth-1,h:t.scrollHeight-1}:Te()},Se={testMoveRel:function(e,t){for(var n=He(this),i=0;i<t.length;i++){var r=ke(this,e,t[i]);if(Ee(this)){if(0<r.x&&r.x+r.w<n.w&&0<r.y&&r.y+r.h<n.h)return t[i]}else if(r.x>n.x&&r.x+r.w<n.w&&r.y>n.y&&r.y+r.h<n.h)return t[i]}return t[0]},moveRel:function(e,t){"string"!=typeof t&&(t=this.testMoveRel(e,t));var n=ke(this,e,t);return this.moveTo(n.x,n.y)},moveBy:function(e,t){var n=this.layoutRect();return this.moveTo(n.x+e,n.y+t),this},moveTo:function(e,t){var n=this;function i(e,t,n){return e<0?0:t<e+n&&(e=t-n)<0?0:e}if(n.settings.const
 rainToViewport){var r=He(this),o=n.layoutRect();e=i(e,r.w,o.w),t=i(t,r.h,o.h)}var s=O.getUiContainer(n);return s&&Re(s)&&!Ee(n)&&(e-=s.scrollLeft,t-=s.scrollTop),s&&(e+=1,t+=1),n.state.get("rendered")?n.layoutRect({x:e,y:t}).repaint():(n.settings.x=e,n.settings.y=t),n.fire("move",{x:e,y:t}),n}},Me=tinymce.util.Tools.resolve("tinymce.util.Class"),Ne=tinymce.util.Tools.resolve("tinymce.util.EventDispatcher"),Pe=function(e){var t;if(e)return"number"==typeof e?{top:e=e||0,left:e,bottom:e,right:e}:(1===(t=(e=e.split(" ")).length)?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],10)||0,right:parseInt(e[1],10)||0,bottom:parseInt(e[2],10)||0,left:parseInt(e[3],10)||0})},De=function(i,e){function t(e){var t=parseFloat(function(e){var t=i.ownerDocument.defaultView;if(t){var n=t.getComputedStyle(i,null);return n?(e=e.replace(/[A-Z]/g,function(e){return"-
 "+e}),n.getPropertyValue(e)):null}return i.currentStyle[e]}(e));return isNaN(t)?0:t}return{top:t(e+"TopWidth"),right:t(e+"RightWidth"),bottom:t(e+"BottomWidth"),left:t(e+"LeftWidth")}};function We(){}function Oe(e){this.cls=[],this.cls._map={},this.onchange=e||We,this.prefix=""}w.extend(Oe.prototype,{add:function(e){return e&&!this.contains(e)&&(this.cls._map[e]=!0,this.cls.push(e),this._change()),this},remove:function(e){if(this.contains(e)){var t=void 0;for(t=0;t<this.cls.length&&this.cls[t]!==e;t++);this.cls.splice(t,1),delete this.cls._map[e],this._change()}return this},toggle:function(e,t){var n=this.contains(e);return n!==t&&(n?this.remove(e):this.add(e),this._change()),this},contains:function(e){return!!this.cls._map[e]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),Oe.prototype.toString=function(){var e;if(this.clsValue)return this.clsValue;e="";for(var t
 =0;t<this.cls.length;t++)0<t&&(e+=" "),e+=this.prefix+this.cls[t];return e};var Ae,Be,Le,Ie=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,ze=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,Fe=/^\s*|\s*$/g,Ue=Me.extend({init:function(e){var o=this.match;function s(e,t,n){var i;function r(e){e&&t.push(e)}return r(function(t){if(t)return t=t.toLowerCase(),function(e){return"*"===t||e.type===t}}((i=Ie.exec(e.replace(Fe,"")))[1])),r(function(t){if(t)return function(e){return e._name===t}}(i[2])),r(function(n){if(n)return n=n.split("."),function(e){for(var t=n.length;t--;)if(!e.classes.contains(n[t]))return!1;return!0}}(i[3])),r(function(n,i,r){if(n)return function(e){var t=e[n]?e[n]():"";return i?"="===i?t===r:"*="===i?0<=t.i
 ndexOf(r):"~="===i?0<=(" "+t+" ").indexOf(" "+r+" "):"!="===i?t!==r:"^="===i?0===t.indexOf(r):"$="===i&&t.substr(t.length-r.length)===r:!!r}}(i[4],i[5],i[6])),r(function(i){var t;if(i)return(i=/(?:not\((.+)\))|(.+)/i.exec(i))[1]?(t=a(i[1],[]),function(e){return!o(e,t)}):(i=i[2],function(e,t,n){return"first"===i?0===t:"last"===i?t===n-1:"even"===i?t%2==0:"odd"===i?t%2==1:!!e[i]&&e[i]()})}(i[7])),t.pseudo=!!i[7],t.direct=n,t}function a(e,t){var n,i,r,o=[];do{if(ze.exec(""),(i=ze.exec(e))&&(e=i[3],o.push(i[1]),i[2])){n=i[3];break}}while(i);for(n&&a(n,t),e=[],r=0;r<o.length;r++)">"!==o[r]&&e.push(s(o[r],[],">"===o[r-1]));return t.push(e),t}this._selectors=a(e,[])},match:function(e,t){var n,i,r,o,s,a,l,u,c,d,f,h,m;for(n=0,i=(t=t||this._selectors).length;n<i;n++){for(m=e,h=0,r=(o=(s=t[n]
 ).length)-1;0<=r;r--)for(u=s[r];m;){if(u.pseudo)for(c=d=(f=m.parent().items()).length;c--&&f[c]!==m;);for(a=0,l=u.length;a<l;a++)if(!u[a](m,c,d)){a=l+1;break}if(a===l){h++;break}if(r===o-1)break;m=m.parent()}if(h===o)return!0}return!1},find:function(e){var t,n,u=[],i=this._selectors;function c(e,t,n){var i,r,o,s,a,l=t[n];for(i=0,r=e.length;i<r;i++){for(a=e[i],o=0,s=l.length;o<s;o++)if(!l[o](a,i,r)){o=s+1;break}if(o===s)n===t.length-1?u.push(a):a.items&&c(a.items(),t,n+1);else if(l.direct)return;a.items&&c(a.items(),t,n)}}if(e.items){for(t=0,n=i.length;t<n;t++)c(e.items(),i[t],0);1<n&&(u=function(e){for(var t,n=[],i=e.length;i--;)(t=e[i]).__checked||(n.push(t),t.__checked=1);for(i=n.length;i--;)delete n[i].__checked;return n}(u))}return Ae||(Ae=Ue.Collection),new Ae(u)}}),Ve=Array.prototype.push,Ye=Array.prototype.slice;Le={length:0,init:function(e){e&&this.add(e)},add:function(e){return w.isArray(e)?Ve.apply(this,e):e instanc
 eof Be?this.add(e.toArray()):Ve.call(this,e),this},set:function(e){var t,n=this,i=n.length;for(n.length=0,n.add(e),t=n.length;t<i;t++)delete n[t];return n},filter:function(t){var e,n,i,r,o=[];for("string"==typeof t?(t=new Ue(t),r=function(e){return t.match(e)}):r=t,e=0,n=this.length;e<n;e++)r(i=this[e])&&o.push(i);return new Be(o)},slice:function(){return new Be(Ye.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(e){return w.each(this,e),this},toArray:function(){return w.toArray(this)},indexOf:function(e){for(var t=this.length;t--&&this[t]!==e;);return t},reverse:function(){return new Be(w.toArray(this).reverse())},hasClass:function(e){return!!this[0]&&this[0].classes.contains(e)},prop:function(t,n){var e;return n!==undefined?(this.each(function(e){e[t]&&e[t](n)}),this):(e=this[0])&&e[t]?e[t]():void 0},exec:function(t){var n=w.toArray(arguments).slice(1);return this.each(functi
 on(e){e[t]&&e[t].apply(e,n)}),this},remove:function(){for(var e=this.length;e--;)this[e].remove();return this},addClass:function(t){return this.each(function(e){e.classes.add(t)})},removeClass:function(t){return this.each(function(e){e.classes.remove(t)})}},w.each("fire on off show hide append prepend before after reflow".split(" "),function(n){Le[n]=function(){var t=w.toArray(arguments);return this.each(function(e){n in e&&e[n].apply(e,t)}),this}}),w.each("text name disabled active selected checked visible parent value data".split(" "),function(t){Le[t]=function(e){return this.prop(t,e)}}),Be=Me.extend(Le);var $e=Ue.Collection=Be,Xe=function(e){this.create=e.create};Xe.create=function(r,o){return new Xe({create:function(t,n){var i,e=function(e){t.set(n,e.value)};return t.on("change:"+n,function(e){r.set(o,e.value)}),r.on("change:"+o,e),(i=t._bindings)||(i=t._bindings=[],t.on("destroy",function(){f
 or(var e=i.length;e--;)i[e]()})),i.push(function(){r.off("change:"+o,e)}),r.get(o)}})};var qe=tinymce.util.Tools.resolve("tinymce.util.Observable");function je(e){return 0<e.nodeType}var Je,Ge,Ke=Me.extend({Mixins:[qe],init:function(e){var t,n;for(t in e=e||{})(n=e[t])instanceof Xe&&(e[t]=n.create(this,t));this.data=e},set:function(t,n){var i,r,o=this.data[t];if(n instanceof Xe&&(n=n.create(this,t)),"object"==typeof t){for(i in t)this.set(i,t[i]);return this}return function e(t,n){var i,r;if(t===n)return!0;if(null===t||null===n)return t===n;if("object"!=typeof t||"object"!=typeof n)return t===n;if(w.isArray(n)){if(t.length!==n.length)return!1;for(i=t.length;i--;)if(!e(t[i],n[i]))return!1}if(je(t)||je(n))return t===n;for(i in r={},n){if(!e(t[i],n[i]))return!1;r[i]=!0}for(i in t)if(!r[i]&&!e(t[i],n[i]))return!1;return!0}(o,n)||(this.data[t]=n,r={target:this,name:t,value:n,oldValue:o},this.fire("change:&q
 uot;+t,r),this.fire("change",r)),this},get:function(e){return this.data[e]},has:function(e){return e in this.data},bind:function(e){return Xe.create(this,e)},destroy:function(){this.fire("destroy")}}),Ze={},Qe={add:function(e){var t=e.parent();if(t){if(!t._layout||t._layout.isNative())return;Ze[t._id]||(Ze[t._id]=t),Je||(Je=!0,u.requestAnimationFrame(function(){var e,t;for(e in Je=!1,Ze)(t=Ze[e]).state.get("rendered")&&t.reflow();Ze={}},document.body))}},remove:function(e){Ze[e._id]&&delete Ze[e._id]}},et="onmousewheel"in document,tt=!1,nt=0,it={Statics:{classPrefix:"mce-"},isRtl:function(){return Ge.rtl},classPrefix:"mce-",init:function(t){var e,n,i=this;function r(e){var t;for(e=e.split(" "),t=0;t<e.length;t++)i.classes.add(e[t])}i.settings=t=w.extend({},i.Defaults,t),i._id=t.id||"mceu_"+nt++,i._aria={role:t.role},i._elmCache={},i.$=we,i.state=new Ke({visible:!0,active:!1,disabled:!1
 ,value:""}),i.data=new Ke(t.data),i.classes=new Oe(function(){i.state.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,(e=t.classes)&&(i.Defaults&&(n=i.Defaults.classes)&&e!==n&&r(n),r(e)),w.each("title text name visible disabled active value".split(" "),function(e){e in t&&i[e](t[e])}),i.on("click",function(){if(i.disabled())return!1}),i.settings=t,i.borderBox=Pe(t.border),i.paddingBox=Pe(t.padding),i.marginBox=Pe(t.margin),t.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){var e=O.getUiContainer(this);return e||Ce.getContainer()},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},initLayoutRect:function(){var e,t,n,i,r,o,s,a,l,u,c=this,d=c.settings,f=c.getEl();e=c.borderBox=c.borderBox||De(f,"border"),c.paddingBox=c.padd
 ingBox||De(f,"padding"),c.marginBox=c.marginBox||De(f,"margin"),u=Ce.getSize(f),a=d.minWidth,l=d.minHeight,r=a||u.width,o=l||u.height,n=d.width,i=d.height,s=void 0!==(s=d.autoResize)?s:!n&&!i,n=n||r,i=i||o;var h=e.left+e.right,m=e.top+e.bottom,g=d.maxWidth||65535,p=d.maxHeight||65535;return c._layoutRect=t={x:d.x||0,y:d.y||0,w:n,h:i,deltaW:h,deltaH:m,contentW:n-h,contentH:i-m,innerW:n-h,innerH:i-m,startMinWidth:a||0,startMinHeight:l||0,minW:Math.min(r,g),minH:Math.min(o,p),maxW:g,maxH:p,autoResize:s,scrollW:0},c._lastLayoutRect={},t},layoutRect:function(e){var t,n,i,r,o,s=this,a=s._layoutRect;return a||(a=s.initLayoutRect()),e?(i=a.deltaW,r=a.deltaH,e.x!==undefined&&(a.x=e.x),e.y!==undefined&&(a.y=e.y),e.minW!==undefined&&(a.minW=e.minW),e.minH!==undefined&&(a.minH=e.minH),(n=e.w)!==undefined&&(n=(n=n<a.minW?a.minW:n)>a.maxW?a.maxW:n,a.w=n,a.innerW=n-i),(n=e.h)!==undefined&&(n=(n=n<a.minH?a.minH:n)&
 gt;a.maxH?a.maxH:n,a.h=n,a.innerH=n-r),(n=e.innerW)!==undefined&&(n=(n=n<a.minW-i?a.minW-i:n)>a.maxW-i?a.maxW-i:n,a.innerW=n,a.w=n+i),(n=e.innerH)!==undefined&&(n=(n=n<a.minH-r?a.minH-r:n)>a.maxH-r?a.maxH-r:n,a.innerH=n,a.h=n+r),e.contentW!==undefined&&(a.contentW=e.contentW),e.contentH!==undefined&&(a.contentH=e.contentH),(t=s._lastLayoutRect).x===a.x&&t.y===a.y&&t.w===a.w&&t.h===a.h||((o=Ge.repaintControls)&&o.map&&!o.map[s._id]&&(o.push(s),o.map[s._id]=!0),t.x=a.x,t.y=a.y,t.w=a.w,t.h=a.h),s):a},repaint:function(){var e,t,n,i,r,o,s,a,l,u,c=this;l=document.createRange?function(e){return e}:Math.round,e=c.getEl().style,i=c._layoutRect,a=c._lastRepaintRect||{},o=(r=c.borderBox).left+r.right,s=r.top+r.bottom,i.x!==a.x&&(e.left=l(i.x)+"px",a.x=i.x),i.y!==a.y&&(e.top=l(i.y)+"px",a.y=i.y),i.w!==a.w&&(u=l(i.w-o),e.width=(0<=u?u:0)+"px",a.w=i.
 w),i.h!==a.h&&(u=l(i.h-s),e.height=(0<=u?u:0)+"px",a.h=i.h),c._hasBody&&i.innerW!==a.innerW&&(u=l(i.innerW),(n=c.getEl("body"))&&((t=n.style).width=(0<=u?u:0)+"px"),a.innerW=i.innerW),c._hasBody&&i.innerH!==a.innerH&&(u=l(i.innerH),(n=n||c.getEl("body"))&&((t=t||n.style).height=(0<=u?u:0)+"px"),a.innerH=i.innerH),c._lastRepaintRect=a,c.fire("repaint",{},!1)},updateLayoutRect:function(){var e=this;e.parent()._lastRect=null,Ce.css(e.getEl(),{width:"",height:""}),e._layoutRect=e._lastRepaintRect=e._lastLayoutRect=null,e.initLayoutRect()},on:function(e,t){var n,i,r,o=this;return rt(o).on(e,"string"!=typeof(n=t)?n:function(e){return i||o.parentsAndSelf().each(function(e){var t=e.settings.callbacks;if(t&&(i=t[n]))return r=e,!1}),i?i.call(r,e):(e.action=n,void this.fire("execute",e))}),o},off:function(e,t){return rt(thi
 s).off(e,t),this},fire:function(e,t,n){if((t=t||{}).control||(t.control=this),t=rt(this).fire(e,t),!1!==n&&this.parent)for(var i=this.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return rt(this).has(e)},parents:function(e){var t,n=new $e;for(t=this.parent();t;t=t.parent())n.add(t);return e&&(n=n.filter(e)),n},parentsAndSelf:function(e){return new $e(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},innerHtml:function(e){return this.$el.html(e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=we("#"+t)[0]),this._elmCache[t]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().bl
 ur(),this},aria:function(e,t){var n=this,i=n.getEl(n.ariaTarget);return void 0===t?n._aria[e]:(n._aria[e]=t,n.state.get("rendered")&&i.setAttribute("role"===e?e:"aria-"+e,t),n)},encode:function(e,t){return!1!==t&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return Ge.translate?Ge.translate(e):e},before:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this),!0),this},after:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this)),this},remove:function(){var t,e,n=this,i=n.getEl(),r=n.parent();if(n.items){var o=n.items().toArray();for(e=o.length;e--;)o[e].remove()}r&&r.items&&(t=[],r.items().each(function(e){e!==n&&t.push(e)}),r.items().set(t),r._lastRect=null),n._eventsRoot&&n._eventsRoot===n&&we(i).off();var s=n.getRoot().c
 ontrolIdLookup;return s&&delete s[n._id],i&&i.parentNode&&i.parentNode.removeChild(i),n.state.set("rendered",!1),n.state.destroy(),n.fire("remove"),n},renderBefore:function(e){return we(e).before(this.renderHtml()),this.postRender(),this},renderTo:function(e){return we(e||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var e,t,n,i,r,o=this,s=o.settings;for(i in o.$el=we(o.getEl()),o.state.set("rendered",!0),s)0===i.indexOf("on")&&o.on(i.substr(2),s[i]);if(o._eventsRoot){for(n=o.parent();!r&&n;n=n.parent())r=n._eventsRoot;if(r)for(i in r._nativeEvents)o._nativeEvents[i]=!0}ot(o),s.style&&(e=o.getEl())&&(e.setAttribute("style",s.style),e.style.cssText=s.style),o.settings.bord
 er&&(t=o.borderBox,o.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left}));var a=o.getRoot();for(var l in a.controlIdLookup||(a.controlIdLookup={}),(a.controlIdLookup[o._id]=o)._aria)o.aria(l,o._aria[l]);!1===o.state.get("visible")&&(o.getEl().style.display="none"),o.bindStates(),o.state.on("change:visible",function(e){var t,n=e.value;o.state.get("rendered")&&(o.getEl().style.display=!1===n?"none":"",o.getEl().getBoundingClientRect()),(t=o.parent())&&(t._lastRect=null),o.fire(n?"show":"hide"),Qe.add(o)}),o.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(e){var t,n,i,r,o,s,a=this.getEl(),l=a.parentNode,u=function(e,t){var n,i,r=e;for(n=i=0;r&&r!==t&&r.nodeType;)n+=r.offsetLeft||0,i+=r.offsetTop||0,r=r.offsetParent;
 return{x:n,y:i}}(a,l);return t=u.x,n=u.y,i=a.offsetWidth,r=a.offsetHeight,o=l.clientWidth,s=l.clientHeight,"end"===e?(t-=o-i,n-=s-r):"center"===e&&(t-=o/2-i/2,n-=s/2-r/2),l.scrollLeft=t,l.scrollTop=n,this},getRoot:function(){for(var e,t=this,n=[];t;){if(t.rootControl){e=t.rootControl;break}n.push(t),t=(e=t).parent()}e||(e=this);for(var i=n.length;i--;)n[i].rootControl=e;return e},reflow:function(){Qe.remove(this);var e=this.parent();return e&&e._layout&&!e._layout.isNative()&&e.reflow(),this}};function rt(n){return n._eventDispatcher||(n._eventDispatcher=new Ne({scope:n,toggleEvent:function(e,t){t&&Ne.isNative(e)&&(n._nativeEvents||(n._nativeEvents={}),n._nativeEvents[e]=!0,n.state.get("rendered")&&ot(n))}})),n._eventDispatcher}function ot(a){var e,t,n,l,i,r;function o(e){var t=a.getParentCtrl(e.target);t&&t.fire(e.type,e)}function s(){var e=l._lastHoverCtrl;e&&(e.fire("mousele
 ave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),l._lastHoverCtrl=null)}function u(e){var t,n,i,r=a.getParentCtrl(e.target),o=l._lastHoverCtrl,s=0;if(r!==o){if((n=(l._lastHoverCtrl=r).parents().toArray().reverse()).push(r),o){for((i=o.parents().toArray().reverse()).push(o),s=0;s<i.length&&n[s]===i[s];s++);for(t=i.length-1;s<=t;t--)(o=i[t]).fire("mouseleave",{target:o.getEl()})}for(t=s;t<n.length;t++)(r=n[t]).fire("mouseenter",{target:r.getEl()})}}function c(e){e.preventDefault(),"mousewheel"===e.type?(e.deltaY=-.025*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-.025*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=a.fire("wheel",e)}if(i=a._nativeEvents){for((n=a.parents().toArray()).unshift(a),e=0,t=n.length;!l&&e<t;e++)l=n[e]._eventsRoot;for(l||(l=n[n.length-1]||a),a._eventsRoot=l,t=e,e=0;e<t;e++)n[e]._eventsRoot=l;var d=l._delegates;for(r in d||(d=l
 ._delegates={}),i){if(!i)return!1;"wheel"!==r||tt?("mouseenter"===r||"mouseleave"===r?l._hasMouseEnter||(we(l.getEl()).on("mouseleave",s).on("mouseover",u),l._hasMouseEnter=1):d[r]||(we(l.getEl()).on(r,o),d[r]=!0),i[r]=!1):et?we(a.getEl()).on("mousewheel",c):we(a.getEl()).on("DOMMouseScroll",c)}}}w.each("text title visible disabled active value".split(" "),function(t){it[t]=function(e){return 0===arguments.length?this.state.get(t):(void 0!==e&&this.state.set(t,e),this)}});var st=Ge=Me.extend(it),at=function(e){return!!e.getAttribute("data-mce-tabstop")};function lt(e){var o,r,n=e.root;function i(e){return e&&1===e.nodeType}try{o=document.activeElement}catch(t){o=document.body}function s(e){return i(e=e||o)?e.getAttribute("role"):null}function a(e){for(var t,n=e||o;n=n.parentNode;)if(t=s(n))return t}function l(e){var t=o;if(i(t))return t.getAttribute("ari
 a-"+e)}function u(e){var t=e.tagName.toUpperCase();return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t}function c(t){var r=[];return function e(t){if(1===t.nodeType&&"none"!==t.style.display&&!t.disabled){var n;(u(n=t)&&!n.hidden||at(n)||/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(s(n)))&&r.push(t);for(var i=0;i<t.childNodes.length;i++)e(t.childNodes[i])}}(t||n.getEl()),r}function d(e){var t,n;(n=(e=e||r).parents().toArray()).unshift(e);for(var i=0;i<n.length&&!(t=n[i]).settings.ariaRoot;i++);return t}function f(e,t){return e<0?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function h(e,t){var n=-1,i=d();t=t||c(i.getEl());for(var r=0;r<t.length;r++)t[r]===o&&(n=r);n+=e,i.lastAriaIndex=f(n,t)}function m(){"tablist"===a()?h(-1,c(o.parentNode)):r.parent().submenu?b():h(-1)}function g(){var e=s(),t=a();"tablist&q
 uot;===t?h(1,c(o.parentNode)):"menuitem"===e&&"menu"===t&&l("haspopup")?y():h(1)}function p(){h(-1)}function v(){var e=s(),t=a();"menuitem"===e&&"menubar"===t?y():"button"===e&&l("haspopup")?y({key:"down"}):h(1)}function b(){r.fire("cancel")}function y(e){e=e||{},r.fire("click",{target:o,aria:e})}return r=n.getParentCtrl(o),n.on("keydown",function(e){function t(e,t){u(o)||at(o)||"slider"!==s(o)&&!1!==t(e)&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,m);break;case 39:t(e,g);break;case 38:t(e,p);break;case 40:t(e,v);break;case 27:b();break;case 14:case 13:case 32:t(e,y);break;case 9:!function(e){if("tablist"===a()){var t=c(r.getEl("body"))[0];t&&t.focus()}else h(e.shiftKey?-1:1)}(e),e.preventDefault()}}),n.on("focusin",function(e){o=e.target,r=e.contr
 ol}),{focusFirst:function(e){var t=d(e),n=c(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?f(t.lastAriaIndex,n):f(0,n)}}}var ut={},ct=st.extend({init:function(e){var t=this;t._super(e),(e=t.settings).fixed&&t.state.set("fixed",!0),t._items=new $e,t.isRtl()&&t.classes.add("rtl"),t.bodyClasses=new Oe(function(){t.state.get("rendered")&&(t.getEl("body").className=this.toString())}),t.bodyClasses.prefix=t.classPrefix,t.classes.add("container"),t.bodyClasses.add("container-body"),e.containerCls&&t.classes.add(e.containerCls),t._layout=b.create((e.layout||"")+"layout"),t.settings.items?t.add(t.settings.items):t.add(t.render()),t._hasBody=!0},items:function(){return this._items},find:function(e){return(e=ut[e]=ut[e]||new Ue(e)).find(this)},add:function(e){return this.items().add(this.create(e)).parent(this),this},focus:function(e){var t,n,i,r=this;if(!e
 ||!(n=r.keyboardNav||r.parents().eq(-1)[0].keyboardNav))return i=r.find("*"),r.statusbar&&i.add(r.statusbar.items()),i.each(function(e){if(e.settings.autofocus)return t=null,!1;e.canFocus&&(t=t||e)}),t&&t.focus(),r;n.focusFirst(r)},replace:function(e,t){for(var n,i=this.items(),r=i.length;r--;)if(i[r]===e){i[r]=t;break}0<=r&&((n=t.getEl())&&n.parentNode.removeChild(n),(n=e.getEl())&&n.parentNode.removeChild(n)),t.parent(this)},create:function(e){var t,n=this,i=[];return w.isArray(e)||(e=[e]),w.each(e,function(e){e&&(e instanceof st||("string"==typeof e&&(e={type:e}),t=w.extend({},n.settings.defaults,e),e.type=t.type=t.type||e.type||n.settings.defaultType||(t.defaults?t.defaults.type:null),e=b.create(t)),i.push(e))}),i},renderNew:function(){var i=this;return i.items().each(function(e,t){var n;e.parent(i),e.state.get("rendered")||((n=i.getEl("body")).hasChildNodes()&&t&lt
 ;=n.childNodes.length-1?we(n.childNodes[t]).before(e.renderHtml()):we(n).append(e.renderHtml()),e.postRender(),Qe.add(e))}),i._layout.applyClasses(i.items().filter(":visible")),i._lastRect=null,i},append:function(e){return this.add(e).renderNew()},prepend:function(e){return this.items().set(this.create(e).concat(this.items().toArray())),this.renderNew()},insert:function(e,t,n){var i,r,o;return e=this.create(e),i=this.items(),!n&&t<i.length-1&&(t+=1),0<=t&&t<i.length&&(r=i.slice(0,t).toArray(),o=i.slice(t).toArray(),i.set(r.concat(e,o))),this.renderNew()},fromJSON:function(e){for(var t in e)this.find("#"+t).value(e[t]);return this},toJSON:function(){var i={};return this.find("*").each(function(e){var t=e.name(),n=e.value();t&&void 0!==n&&(i[t]=n)}),i},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'
 +e.classes+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e,t=this;return t.items().exec("postRender"),t._super(),t._layout.postRender(t),t.state.set("rendered",!0),t.settings.style&&t.$el.css(t.settings.style),t.settings.border&&(e=t.borderBox,t.$el.css({"border-top-width":e.top,"border-right-width":e.right,"border-bottom-width":e.bottom,"border-left-width":e.left})),t.parent()||(t.keyboardNav=lt({root:t})),t},initLayoutRect:function(){var e=this._super();return this._layout.recalc(this),e},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;if(!n||n.w!==t.w||n.h!==t.h)return e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0},reflow:function(){var e;if(Qe.rem
 ove(this),this.visible()){for(st.repaintControls=[],st.repaintControls.map={},this.recalc(),e=st.repaintControls.length;e--;)st.repaintControls[e].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),st.repaintControls=[]}return this}});function dt(e){var t,n;if(e.changedTouches)for(t="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<t.length;n++)e[t[n]]=e.changedTouches[0][t[n]]}function ft(e,h){var m,g,t,p,v,b,y,x=h.document||document;h=h||{};var w=x.getElementById(h.handle||e);t=function(e){var t,n,i,r,o,s,a,l,u,c,d,f=(t=x,u=Math.max,n=t.documentElement,i=t.body,r=u(n.scrollWidth,i.scrollWidth),o=u(n.clientWidth,i.clientWidth),s=u(n.offsetWidth,i.offsetWidth),a=u(n.scrollHeight,i.scrollHeight),l=u(n.clientHeight,i.clientHeight),{width:r<s?o:r,height:a<u(n.offsetHeight,i.offsetHeight)?l:a});dt(e),e.preventDefault(),g=e.button,c=w,b=e.screenX,y=e.screenY,d=window.getComp
 utedStyle?window.getComputedStyle(c,null).getPropertyValue("cursor"):c.runtimeStyle.cursor,m=we("<div></div>").css({position:"absolute",top:0,left:0,width:f.width,height:f.height,zIndex:2147483647,opacity:1e-4,cursor:d}).appendTo(x.body),we(x).on("mousemove touchmove",v).on("mouseup touchend",p),h.start(e)},v=function(e){if(dt(e),e.button!==g)return p(e);e.deltaX=e.screenX-b,e.deltaY=e.screenY-y,e.preventDefault(),h.drag(e)},p=function(e){dt(e),we(x).off("mousemove touchmove",v).off("mouseup touchend",p),m.remove(),h.stop&&h.stop(e)},this.destroy=function(){we(w).off()},we(w).on("mousedown touchstart",t)}var ht,mt,gt,pt,vt={init:function(){this.on("repaint",this.renderScroll)},renderScroll:function(){var p=this,v=2;function n(){var m,g,e;function t(e,t,n,i,r,o){var s,a,l,u,c,d,f,h;if(a=p.getEl("scroll"+e)){if(f=t.toLowerCase(),h=n.toLowerCase(),we(p.getEl("abs
 end")).css(f,p.layoutRect()[i]-1),!r)return void we(a).css("display","none");we(a).css("display","block"),s=p.getEl("body"),l=p.getEl("scroll"+e+"t"),u=s["client"+n]-2*v,c=(u-=m&&g?a["client"+o]:0)/s["scroll"+n],(d={})[f]=s["offset"+t]+v,d[h]=u,we(a).css(d),(d={})[f]=s["scroll"+t]*c,d[h]=u*c,we(l).css(d)}}e=p.getEl("body"),m=e.scrollWidth>e.clientWidth,g=e.scrollHeight>e.clientHeight,t("h","Left","Width","contentW",m,"Height"),t("v","Top","Height","contentH",g,"Width")}p.settings.autoScroll&&(p._hasScroll||(p._hasScroll=!0,function(){function e(s,a,l,u,c){var d,e=p._id+"-scroll"+s,t=p.classPrefix;we(p.getEl()).append('<div id="'+e+'" class="'+t+"scrollbar "+t+"scrollbar-"+s+'"&g
 t;<div id="'+e+'t" class="'+t+'scrollbar-thumb"></div></div>'),p.draghelper=new ft(e+"t",{start:function(){d=p.getEl("body")["scroll"+a],we("#"+e).addClass(t+"active")},drag:function(e){var t,n,i,r,o=p.layoutRect();n=o.contentW>o.innerW,i=o.contentH>o.innerH,r=p.getEl("body")["client"+l]-2*v,t=(r-=n&&i?p.getEl("scroll"+s)["client"+c]:0)/p.getEl("body")["scroll"+l],p.getEl("body")["scroll"+a]=d+e["delta"+u]/t},stop:function(){we("#"+e).removeClass(t+"active")}})}p.classes.add("scroll"),e("v","Top","Height","Y","Width"),e("h","Left","Width","X","Height")}(),p.on("wheel",function(e){var t=p.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10
 *e.deltaY,n()}),we(p.getEl("body")).on("scroll",n)),n())}},bt=ct.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[vt],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),void 0===n?n='<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}}),yt={resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(e,t){if(e<=1||t<=1){var n=Ce.getWindowSize();e=e<=1?e*n.w:e,t=t<=1?t*n.h:t}return this._layoutRect.autoResize=!1,this.layoutRect({minW:e,minH:t,w:e,h:t}).reflow()},resizeBy:function(e,t){var n=t
 his.layoutRect();return this.resizeTo(n.w+e,n.h+t)}},xt=[],wt=[];function _t(e,t){for(;e;){if(e===t)return!0;e=e.parent()}}function Ct(){ht||(ht=function(e){2!==e.button&&function(e){for(var t=xt.length;t--;){var n=xt[t],i=n.getParentCtrl(e.target);if(n.settings.autohide){if(i&&(_t(i,n)||n.parent()===i))continue;(e=n.fire("autohide",{target:e.target})).isDefaultPrevented()||n.hide()}}}(e)},we(document).on("click touchstart",ht))}function Rt(r){var e=Ce.getViewPort().y;function t(e,t){for(var n,i=0;i<xt.length;i++)if(xt[i]!==r)for(n=xt[i].parent();n&&(n=n.parent());)n===r&&xt[i].fixed(e).moveBy(0,t).repaint()}r.settings.autofix&&(r.state.get("fixed")?r._autoFixY>e&&(r.fixed(!1).layoutRect({y:r._autoFixY}).repaint(),t(!1,r._autoFixY-e)):(r._autoFixY=r.layoutRect().y,r._autoFixY<e&&(r.fixed(!0).layoutRect({y:0}).repaint(),t(!0,e-r._autoFixY))))}function Et(e,t){var n,i,r=kt.zIndex||65535;if(e
 )wt.push(t);else for(n=wt.length;n--;)wt[n]===t&&wt.splice(n,1);if(wt.length)for(n=0;n<wt.length;n++)wt[n].modal&&(r++,i=wt[n]),wt[n].getEl().style.zIndex=r,wt[n].zIndex=r,r++;var o=we("#"+t.classPrefix+"modal-block",t.getContainerElm())[0];i?we(o).css("z-index",i.zIndex-1):o&&(o.parentNode.removeChild(o),pt=!1),kt.currentZIndex=r}var kt=bt.extend({Mixins:[Se,yt],init:function(e){var i=this;i._super(e),(i._eventsRoot=i).classes.add("floatpanel"),e.autohide&&(Ct(),function(){if(!gt){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;gt=function(){document.all&&t===e.clientWidth&&n===e.clientHeight||(t=e.clientWidth,n=e.clientHeight,kt.hideAll())},we(window).on("resize",gt)}}(),xt.push(i)),e.autofix&&(mt||(mt=function(){var e;for(e=xt.length;e--;)Rt(xt[e])},we(window).on("scroll",mt)),i.on("move",function(){Rt(this)})),i.on("postrender show
 ",function(e){if(e.control===i){var t,n=i.classPrefix;i.modal&&!pt&&((t=we("#"+n+"modal-block",i.getContainerElm()))[0]||(t=we('<div id="'+n+'modal-block" class="'+n+"reset "+n+'fade"></div>').appendTo(i.getContainerElm())),u.setTimeout(function(){t.addClass(n+"in"),we(i.getEl()).addClass(n+"in")}),pt=!0),Et(!0,i)}}),i.on("show",function(){i.parents().each(function(e){if(e.state.get("fixed"))return i.fixed(!0),!1})}),e.popover&&(i._preBodyHtml='<div class="'+i.classPrefix+'arrow"></div>',i.classes.add("popover").add("bottom").add(i.isRtl()?"end":"start")),i.aria("label",e.ariaLabel),i.aria("labelledby",i._id),i.aria("describedby",i.describedBy||i._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!==e){if(t.state.get("render
 ed")){var n=Ce.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.classes.toggle("fixed",e),t.state.set("fixed",e)}return t},show:function(){var e,t=this._super();for(e=xt.length;e--&&xt[e]!==this;);return-1===e&&xt.push(this),t},hide:function(){return Tt(this),Et(!1,this),this._super()},hideAll:function(){kt.hideAll()},close:function(){return this.fire("close").isDefaultPrevented()||(this.remove(),Et(!1,this)),this},remove:function(){Tt(this),this._super()},postRender:function(){return this.settings.bodyRole&&this.getEl("body").setAttribute("role",this.settings.bodyRole),this._super()}});function Tt(e){var t;for(t=xt.length;t--;)xt[t]===e&&xt.splice(t,1);for(t=wt.length;t--;)wt[t]===e&&wt.splice(t,1)}kt.hideAll=function(){for(var e=xt.length;e--;){var t=xt[e];t&&t.settings.autohide&&(t.hide(),xt.splice(e,1))}};var Ht=function(e,t){return!(!e||t.settings.ui_conta
 iner)},St=function(s,e,t){var a,n,l=v.DOM,i=s.getParam("fixed_toolbar_container");i&&(n=l.select(i)[0]);var r=function(){if(a&&a.moveRel&&a.visible()&&!a._fixed){var e=s.selection.getScrollContainer(),t=s.getBody(),n=0,i=0;if(e){var r=l.getPos(t),o=l.getPos(e);n=Math.max(0,o.x-r.x),i=Math.max(0,o.y-r.y)}a.fixed(!1).moveRel(t,s.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(n,i)}},o=function(){a&&(a.show(),r(),l.addClass(s.getBody(),"mce-edit-focus"))},u=function(){a&&(a.hide(),kt.hideAll(),l.removeClass(s.getBody(),"mce-edit-focus"))},c=function(){a?a.visible()||o():(a=e.panel=b.create({type:n?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:Ht(n,s),fixed:Ht(n,s),border:1,items:[!1===d(s)
 ?null:{type:"menubar",border:"0 0 1 0",items:se(s)},L(s,f(s))]}),O.setUiContainer(s,a),_(s),n?a.renderTo(n).reflow():a.renderTo().reflow(),C(s,a),o(),V(s),s.on("nodeChange",r),s.on("ResizeWindow",r),s.on("activate",o),s.on("deactivate",u),s.nodeChanged())};return s.settings.content_editable=!0,s.on("focus",function(){!1===g(s)&&t.skinUiCss?l.styleSheetLoader.load(t.skinUiCss,c,c):c()}),s.on("blur hide",u),s.on("remove",function(){a&&(a.remove(),a=null)}),!1===g(s)&&t.skinUiCss?l.styleSheetLoader.load(t.skinUiCss,ve(s)):ve(s)(),{}};function Mt(i,r){var o,s,a=this,l=st.classPrefix;a.show=function(e,t){function n(){o&&(we(i).append('<div class="'+l+"throbber"+(r?" "+l+"throbber-inline":"")+'"></div>'),t&&t())}return a.hide(),o=!0,e?s=u.setTimeout(n,e):n(),a},a.hide=function(){var e=i.lastChild;ret
 urn u.clearTimeout(s),e&&-1!==e.className.indexOf("throbber")&&e.parentNode.removeChild(e),o=!1,a}}var Nt=function(e,t){var n;e.on("ProgressState",function(e){n=n||new Mt(t.panel.getEl("body")),e.state?n.show(e.time):n.hide()})},Pt=function(e,t,n){var i=function(e){var t=e.settings,n=t.skin,i=t.skin_url;if(!1!==n){var r=n||"lightgray";i=i?e.documentBaseURI.toAbsolute(i):h.baseURL+"/skins/"+r}return i}(e);return i&&(n.skinUiCss=i+"/skin.min.css",e.contentCSS.push(i+"/content"+(e.inline?".inline":"")+".min.css")),Nt(e,t),e.getParam("inline",!1,"boolean")?St(e,t,n):xe(e,t,n)},Dt=st.extend({Mixins:[Se],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'" role="presentation"><div class="'+t+'tooltip-arro
 w"></div><div class="'+t+'tooltip-inner">'+e.encode(e.state.get("text"))+"</div></div>"},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl().lastChild.innerHTML=t.encode(e.value)}),t._super()},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=131070}}),Wt=st.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.canFocus=!0,i.tooltip&&!1!==Wt.tooltips&&(r.on("mouseenter",function(e){var t=r.tooltip().moveTo(-65535);if(e.control===r){var n=t.text(i.tooltip).show().testMoveRel(r.getEl(),["bc-tc","bc-tl","bc-tr"]);t.classes.toggle("tooltip-n","bc-tc"===n),t.classes.toggle("tooltip-nw","bc-tl"===n),t.classes.toggle("tooltip-ne","bc-tr"===n),t.moveRel(r.getEl(),n)}else t.hide()}),r.on(
 "mouseleave mousedown click",function(){r.tooltip().remove(),r._tooltip=null})),r.aria("label",i.ariaLabel||i.tooltip)},tooltip:function(){return this._tooltip||(this._tooltip=new Dt({type:"tooltip"}),O.inheritUiContainer(this,this._tooltip),this._tooltip.renderTo()),this._tooltip},postRender:function(){var e=this,t=e.settings;e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},bindStates:function(){var t=this;function n(e){t.aria("disabled",e),t.classes.toggle("disabled",e)}function i(e){t.aria("pressed",e),t.classes.toggle("active",e)}return t.state.on("change:disabled",function(e){n(e.value)}),t.state.on("change:active",function(e){i(e.value)}),t.state.get("disabled")&&n(!0),t.state.get("active")&&i(!0),t._super()},remove:function(){this._super(),this._tooltip&&(this._tooltip.remove()
 ,this._tooltip=null)}}),Ot=Wt.extend({Defaults:{value:0},init:function(e){this._super(e),this.classes.add("progress"),this.settings.filter||(this.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this._id,t=this.classPrefix;return'<div id="'+e+'" class="'+this.classes+'"><div class="'+t+'bar-container"><div class="'+t+'bar"></div></div><div class="'+t+'text">0%</div></div>'},postRender:function(){return this._super(),this.value(this.settings.value),this},bindStates:function(){var t=this;function n(e){e=t.settings.filter(e),t.getEl().lastChild.innerHTML=e+"%",t.getEl().firstChild.firstChild.style.width=e+"%"}return t.state.on("change:value",function(e){n(e.value)}),n(t.state.get("value")),t._super()}}),At=function(e,t){e.getEl().lastChild.textContent=t+(e.progressBar?" "+e.progressBar.value()+"
 %":"")},Bt=st.extend({Mixins:[Se],Defaults:{classes:"widget notification"},init:function(e){var t=this;t._super(e),t.maxWidth=e.maxWidth,e.text&&t.text(e.text),e.icon&&(t.icon=e.icon),e.color&&(t.color=e.color),e.type&&t.classes.add("notification-"+e.type),e.timeout&&(e.timeout<0||0<e.timeout)&&!e.closeButton?t.closeButton=!1:(t.classes.add("has-close"),t.closeButton=!0),e.progressBar&&(t.progressBar=new Ot),t.on("click",function(e){-1!==e.target.className.indexOf(t.classPrefix+"close")&&t.close()})},renderHtml:function(){var e,t=this,n=t.classPrefix,i="",r="",o="";return t.icon&&(i='<i class="'+n+"ico "+n+"i-"+t.icon+'"></i>'),e=' style="max-width: '+t.maxWidth+"px;"+(t.color?"background-color: "+t.color+';"':'"'),t.closeButton&&amp
 ;(r='<button type="button" class="'+n+'close" aria-hidden="true">\xd7</button>'),t.progressBar&&(o=t.progressBar.renderHtml()),'<div id="'+t._id+'" class="'+t.classes+'"'+e+' role="presentation">'+i+'<div class="'+n+'notification-inner">'+t.state.get("text")+"</div>"+o+r+'<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;" aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div></div>'},postRender:function(){var e=this;return u.setTimeout(function(){e.$el.addClass(e.classPrefix+"in"),At(e,e.state.get("text"))},100),e._super()},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl().firstChild.innerHTML=e.value,At(t,e.value)}),t.progressBar&&(t.progressBar.bindState
 s(),t.progressBar.state.on("change:value",function(e){At(t,t.state.get("text"))})),t._super()},close:function(){return this.fire("close").isDefaultPrevented()||this.remove(),this},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=65534}});function Lt(o){var s=function(e){return e.inline?e.getElement():e.getContentAreaContainer()};return{open:function(e,t){var n,i=w.extend(e,{maxWidth:(n=s(o),Ce.getSize(n).width)}),r=new Bt(i);return 0<(r.args=i).timeout&&(r.timer=setTimeout(function(){r.close(),t()},i.timeout)),r.on("close",function(){t()}),r.renderTo(),r},close:function(e){e.close()},reposition:function(e){G(e,function(e){e.moveTo(0,0)}),function(n){if(0<n.length){var e=n.slice(0,1)[0],t=s(o);e.moveRel(t,"tc-tc"),G(n,function(e,t){0<t&&e.moveRel(n[t-1].getEl(),"bc-tc")})}}(e)},getArgs:function(e){return e.args}}}var It=[],
 zt="";function Ft(e){var t,n=we("meta[name=viewport]")[0];!1!==fe.overrideViewPort&&(n||((n=document.createElement("meta")).setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),(t=n.getAttribute("content"))&&void 0!==zt&&(zt=t),n.setAttribute("content",e?"width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0":zt))}function Ut(e,t){(function(){for(var e=0;e<It.length;e++)if(It[e]._fullscreen)return!0;return!1})()&&!1===t&&we([document.documentElement,document.body]).removeClass(e+"fullscreen")}var Vt=kt.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRt
 l()&&n.classes.add("rtl"),n.classes.add("window"),n.bodyClasses.add("window-body"),n.state.set("fixed",!0),e.buttons&&(n.statusbar=new bt({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.classes.add("foot"),n.statusbar.parent(n)),n.on("click",function(e){var t=n.classPrefix+"close";(Ce.hasClass(e.target,t)||Ce.hasClass(e.target.parentNode,t))&&n.close()}),n.on("cancel",function(){n.close()}),n.on("move",function(e){e.control===n&&kt.hideAll()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e,t,n,i,r=this,o=r.statusbar;r._fullscreen&&(r.layoutRect(Ce.getWindowSize()),r.layoutRect().contentH=r.layout
 Rect().innerH),r._super(),e=r.layoutRect(),r.settings.title&&!r._fullscreen&&(t=e.headerW)>e.w&&(n=e.x-Math.max(0,t/2),r.layoutRect({w:t,x:n}),i=!0),o&&(o.layoutRect({w:r.layoutRect().innerW}).recalc(),(t=o.layoutRect().minW+e.deltaW)>e.w&&(n=e.x-Math.max(0,t-e.w),r.layoutRect({w:t,x:n}),i=!0)),i&&r.recalc()},initLayoutRect:function(){var e,t=this,n=t._super(),i=0;if(t.settings.title&&!t._fullscreen){e=t.getEl("head");var r=Ce.getSize(e);n.headerW=r.width,n.headerH=r.height,i+=n.headerH}t.statusbar&&(i+=t.statusbar.layoutRect().h),n.deltaH+=i,n.minH+=i,n.h+=i;var o=Ce.getWindowSize();return n.x=t.settings.x||Math.max(0,o.w/2-n.w/2),n.y=t.settings.y||Math.max(0,o.h/2-n.h/2),n},renderHtml:function(){var e=this,t=e._layout,n=e._id,i=e.classPrefix,r=e.settings,o="",s="",a=r.html;return e.preRender(),t.preRender(e),r.title&&(o='<div id="'+n+'-head" class="'+i+'win
 dow-head"><div id="'+n+'-title" class="'+i+'title">'+e.encode(r.title)+'</div><div id="'+n+'-dragh" class="'+i+'dragh"></div><button type="button" class="'+i+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),r.url&&(a='<iframe src="'+r.url+'" tabindex="-1"></iframe>'),void 0===a&&(a=t.renderHtml(e)),e.statusbar&&(s=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.bodyClasses+'">'+a+"</div>"+s+"</div></div>"},fullscreen:function(e){var n,t,i=this,r=document.documentElement,o=i.classPrefix;if(e!==i._fullscreen)if(we(
 window).on("resize",function(){var e;if(i._fullscreen)if(n)i._timer||(i._timer=u.setTimeout(function(){var e=Ce.getWindowSize();i.moveTo(0,0).resizeTo(e.w,e.h),i._timer=0},50));else{e=(new Date).getTime();var t=Ce.getWindowSize();i.moveTo(0,0).resizeTo(t.w,t.h),50<(new Date).getTime()-e&&(n=!0)}}),t=i.layoutRect(),i._fullscreen=e){i._initial={x:t.x,y:t.y,w:t.w,h:t.h},i.borderBox=Pe("0"),i.getEl("head").style.display="none",t.deltaH-=t.headerH+2,we([r,document.body]).addClass(o+"fullscreen"),i.classes.add("fullscreen");var s=Ce.getWindowSize();i.moveTo(0,0).resizeTo(s.w,s.h)}else i.borderBox=Pe(i.settings.border),i.getEl("head").style.display="",t.deltaH+=t.headerH,we([r,document.body]).removeClass(o+"fullscreen"),i.classes.remove("fullscreen"),i.moveTo(i._initial.x,i._initial.y).resizeTo(i._initial.w,i._initial.h);return i.reflow()},postRender:function(){var t,n=this;setTim
 eout(function(){n.classes.add("in"),n.fire("open")},0),n._super(),n.statusbar&&n.statusbar.postRender(),n.focus(),this.dragHelper=new ft(n._id+"-dragh",{start:function(){t={x:n.layoutRect().x,y:n.layoutRect().y}},drag:function(e){n.moveTo(t.x+e.deltaX,t.y+e.deltaY)}}),n.on("submit",function(e){e.isDefaultPrevented()||n.close()}),It.push(n),Ft(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e,t=this;for(t.dragHelper.destroy(),t._super(),t.statusbar&&this.statusbar.remove(),Ut(t.classPrefix,!1),e=It.length;e--;)It[e]===t&&It.splice(e,1);Ft(0<It.length)},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});!function(){if(!fe.desktop){var n={w:window.innerWidth,h:window.innerHeight};u.setInterval(function(){var e=window.innerWidth,t=window.innerHeight;n.w===e&&n.h===t||(n={w:e,h:t},we(win
 dow).trigger("resize"))},100)}we(window).on("resize",function(){var e,t,n=Ce.getWindowSize();for(e=0;e<It.length;e++)t=It[e].layoutRect(),It[e].moveTo(It[e].settings.x||Math.max(0,n.w/2-t.w/2),It[e].settings.y||Math.max(0,n.h/2-t.h/2))})}();var Yt=Vt.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(e){var t,i=e.callback||function(){};function n(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),i(t)}}}switch(e.buttons){case Yt.OK_CANCEL:t=[n("Ok",!0,!0),n("Cancel",!1)];break;case Yt.YES_NO:case Yt.YES_NO_CANCEL:t
 =[n("Yes",1,!0),n("No",0)],e.buttons===Yt.YES_NO_CANCEL&&t.push(n("Cancel",-1));break;default:t=[n("Ok",!0,!0)]}return new Vt({padding:20,x:e.x,y:e.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:t,title:e.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:e.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:e.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(e,t){return"string"==typeof e&&(e={text:e}),e.callback=t,Yt.msgBox(e)},confirm:function(e,t){return"string"==typeof e&&(e={text:e}),e.callback=t,e.buttons=Yt.OK_CANCEL,Yt.msgBox(e)}}}),$t=function(n){return{renderUI:function(e){return Pt(n,this,e)},resizeTo:function(e,t){return ce(n,e,t)},resizeBy:function(e,t){return de(n,e,t)},getNotificationManag
 erImpl:function(){return Lt(n)},getWindowManagerImpl:function(){return{open:function(n,e,t){var i;return n.title=n.title||" ",n.url=n.url||n.file,n.url&&(n.width=parseInt(n.width||320,10),n.height=parseInt(n.height||240,10)),n.body&&(n.items={defaults:n.defaults,type:n.bodyType||"form",items:n.body,data:n.data,callbacks:n.commands}),n.url||n.buttons||(n.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),(i=new Vt(n)).on("close",function(){t(i)}),n.data&&i.on("postRender",function(){this.find("*").each(function(e){var t=e.name();t in n.data&&e.value(n.data[t])})}),i.features=n||{},i.params=e||{},i=i.renderTo(document.body).reflow()},alert:function(e,t,n){var i;return(i=Yt.alert(e,function(){t()})).on("close",function(){n(i)}),i},confirm:function(e,t,n){var i;return(i=Yt.co
 nfirm(e,function(e){t(e)})).on("close",function(){n(i)}),i},close:function(e){e.close()},getParams:function(e){return e.params},setParams:function(e,t){e.params=t}}}}},Xt=Me.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=w.extend({},this.Defaults,e)},preRender:function(e){e.bodyClasses.add(this.settings.containerClass)},applyClasses:function(e){var t,n,i,r,o=this.settings;t=o.firstControlClass,n=o.lastControlClass,e.each(function(e){e.classes.remove(t).remove(n).add(o.controlClass),e.visible()&&(i||(i=e),r=e)}),i&&i.classes.add(t),r&&r.classes.add(n)},renderHtml:function(e){var t="";return this.applyClasses(e.items()),e.items().each(function(e){t+=e.renderHtml()}),t},recalc:function(){},postRender:function(){},isNative:function(){return!1}}),qt=Xt.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.ite
 ms().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}}),jt=Wt.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t,n=this;n._super(e),e=n.settings,t=n.settings.size,n.on("click mousedown",function(e){e.preventDefault()}),n.on("touchstart",function(e){n.fire("click",e),e.preventDefault()}),e.subtype&&n.classes.add(e.subtype),t&&n.classes.add("btn-"+t),e.icon&&n.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e,t=this.getEl().firstChild;t&&((e=t.style).width=e.height="100%"),this._super()},renderHtml:function(){var e,t,n=this,i=n
 ._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a="",l=n.settings;return(e=l.image)?(o="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",s&&(n.classes.add("btn-has-text"),a='<span class="'+r+'txt">'+n.encode(s)+"</span>"),o=o?r+"ico "+r+"i-"+o:"",t="boolean"==typeof l.active?' aria-pressed="'+l.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" tabindex="-1"'+t+'><button id="'+i+'-button" role="presentation" type="button" tabindex="-1">'+(o?'<i class="'+o+'"'+e+"></i>":"")+a+"</button></div>"},bindStates:function(){var o=this,n=o.$,i=o.classPrefix+"t
 xt";function s(e){var t=n("span."+i,o.getEl());e?(t[0]||(n("button:first",o.getEl()).append('<span class="'+i+'"></span>'),t=n("span."+i,o.getEl())),t.html(o.encode(e))):t.remove(),o.classes.toggle("btn-has-text",!!e)}return o.state.on("change:text",function(e){s(e.value)}),o.state.on("change:icon",function(e){var t=e.value,n=o.classPrefix;t=(o.settings.icon=t)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];t?(r&&r===i.firstChild||(r=document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=t):r&&i.removeChild(r),s(o.state.get("text"))}),o._super()}}),Jt=jt.extend({init:function(e){e=w.extend({text:"Browse...",multiple:!1,accept:null},e),this._super(e),this.classes.add("browsebutton"),e.multiple&&this.classes.add("multiple")
 },postRender:function(){var n=this,t=Ce.create("input",{type:"file",id:n._id+"-browse",accept:n.settings.accept});n._super(),we(t).on("change",function(e){var t=e.target.files;n.value=function(){return t.length?n.settings.multiple?t:t[0]:null},e.preventDefault(),t.length&&n.fire("change",e)}),we(t).on("click",function(e){e.stopPropagation()}),we(n.getEl("button")).on("click",function(e){e.stopPropagation(),t.click()}),n.getEl().appendChild(t)},remove:function(){we(this.getEl("button")).off(),we(this.getEl("input")).off(),this._super()}}),Gt=ct.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.classes.add("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.re
 nderHtml(e)+"</div></div>"}}),Kt=Wt.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){return arguments.length?(this.state.set("checked",e),this):this.state.get("checked")},value:function(e){return arguments.length?this.checked(e):this.checked()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e.state.get("text"))+"</span></div
 >"},bindStates:function(){var o=this;function t(e){o.classes.toggle("checked",e),o.aria("checked",e)}return o.state.on("change:text",function(e){o.getEl("al").firstChild.data=o.translate(e.value)}),o.state.on("change:checked change:value",function(e){o.fire("change"),t(e.value)}),o.state.on("change:icon",function(e){var t=e.value,n=o.classPrefix;if(void 0===t)return o.settings.icon;t=(o.settings.icon=t)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];t?(r&&r===i.firstChild||(r=document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=t):r&&i.removeChild(r)}),o.state.get("checked")&&t(!0),o._super()}}),Zt=tinymce.util.Tools.resolve("tinymce.util.VK"),Qt=Wt.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.classes.add("combobox"),r.s
 ubinput=!0,r.ariaTarget="inp",i.menu=i.menu||i.values,i.menu&&(i.icon="caret"),r.on("click",function(e){var t=e.target,n=r.getEl();if(we.contains(n,t)||t===n)for(;t&&t!==n;)t.id&&-1!==t.id.indexOf("-open")&&(r.fire("action"),i.menu&&(r.showMenu(),e.aria&&r.menu.items()[0].focus())),t=t.parentNode}),r.on("keydown",function(e){var t;13===e.keyCode&&"INPUT"===e.target.nodeName&&(e.preventDefault(),r.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),r.fire("submit",{data:t.toJSON()}))}),r.on("keyup",function(e){if("INPUT"===e.target.nodeName){var t=r.state.get("value"),n=e.target.value;n!==t&&(r.state.set("value",n),r.fire("autocomplete",e))}}),r.on("mouseover",function(e){var t=r.tooltip().moveTo(-65535);if(r.statusLevel()&&-1!==e.target.className.indexOf
 (r.classPrefix+"status")){var n=r.statusMessage()||"Ok",i=t.text(n).show().testMoveRel(e.target,["bc-tc","bc-tl","bc-tr"]);t.classes.toggle("tooltip-n","bc-tc"===i),t.classes.toggle("tooltip-nw","bc-tl"===i),t.classes.toggle("tooltip-ne","bc-tr"===i),t.moveRel(e.target,i)}})},statusLevel:function(e){return 0<arguments.length&&this.state.set("statusLevel",e),this.state.get("statusLevel")},statusMessage:function(e){return 0<arguments.length&&this.state.set("statusMessage",e),this.state.get("statusMessage")},showMenu:function(){var e,t=this,n=t.settings;t.menu||((e=n.menu||[]).length?e={type:"menu",items:e}:e.type=e.type||"menu",t.menu=b.create(e).parent(t).renderTo(t.getContainerElm()),t.fire("createmenu"),t.menu.reflow(),t.menu.on("cancel",function(e){e.control===t.menu&&
 amp;t.focus()}),t.menu.on("show hide",function(e){e.control.items().each(function(e){e.active(e.value()===t.value())})}).fire("show"),t.menu.on("select",function(e){t.value(e.control.value())}),t.on("focusin",function(e){"INPUT"===e.target.tagName.toUpperCase()&&t.menu.hide()}),t.aria("expanded",!0)),t.menu.show(),t.menu.layoutRect({w:t.layoutRect().w}),t.menu.moveRel(t.getEl(),t.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var e,t,n=this,i=n.getEl(),r=n.getEl("open"),o=n.layoutRect(),s=0,a=i.firstChild;n.statusLevel()&&"none"!==n.statusLevel()&&(s=parseInt(Ce.getRuntimeStyle(a,"padding-right"),10)-parseInt(Ce.getRuntimeStyle(a,"padding-left"),10)),e=r?o.w-Ce.getSize(r).width-10:o.w-10;var l=document;return l.all&&(!l.documentMode||l.documen
 tMode<=8)&&(t=n.layoutRect().h-2+"px"),we(a).css({width:e-s,lineHeight:t}),n._super(),n},postRender:function(){var t=this;return we(this.getEl("inp")).on("change",function(e){t.state.set("value",e.target.value),t.fire("change",e)}),t._super()},renderHtml:function(){var e,t,n,i=this,r=i._id,o=i.settings,s=i.classPrefix,a=i.state.get("value")||"",l="",u="";return"spellcheck"in o&&(u+=' spellcheck="'+o.spellcheck+'"'),o.maxLength&&(u+=' maxlength="'+o.maxLength+'"'),o.size&&(u+=' size="'+o.size+'"'),o.subtype&&(u+=' type="'+o.subtype+'"'),n='<i id="'+r+'-status" class="mce-status mce-ico" style="display: none"></i>',i.disabled()&&(u+=' disabled="disabled"'),(e=o.icon)&&"caret"!==e&&(e=s+"ico "+s+"i-"+o
 .icon),t=i.state.get("text"),(e||t)&&(l='<div id="'+r+'-open" class="'+s+"btn "+s+'open" tabIndex="-1" role="button"><button id="'+r+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!==e?'<i class="'+e+'"></i>':'<i class="'+s+'caret"></i>')+(t?(e?" ":"")+t:"")+"</button></div>",i.classes.add("has-open")),'<div id="'+r+'" class="'+i.classes+'"><input id="'+r+'-inp" class="'+s+'textbox" value="'+i.encode(a,!1)+'" hidefocus="1"'+u+' placeholder="'+i.encode(o.placeholder)+'" />'+n+l+"</div>"},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("val
 ue",this.getEl("inp").value),this.state.get("value"))},showAutoComplete:function(e,i){var r=this;if(0!==e.length){r.menu?r.menu.items().remove():r.menu=b.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),w.each(e,function(e){var t,n;r.menu.add({text:e.title,url:e.previewUrl,match:i,classes:"menu-item-ellipsis",onclick:(t=e.value,n=e.title,function(){r.fire("selectitem",{title:n,value:t})})})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(e){e.control.parent()===r.menu&&(e.stopPropagation(),r.focus(),r.hideMenu())}),r.menu.on("select",function(){r.focus()});var t=r.layoutRect().w;r.menu.layoutRect({w:t,minW:0,maxW:t}),r.menu.repaint(),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])}else r.hideMenu()},hideMenu:function(){this.menu&&this.m
 enu.hide()},bindStates:function(){var r=this;r.state.on("change:value",function(e){r.getEl("inp").value!==e.value&&(r.getEl("inp").value=e.value)}),r.state.on("change:disabled",function(e){r.getEl("inp").disabled=e.value}),r.state.on("change:statusLevel",function(e){var t=r.getEl("status"),n=r.classPrefix,i=e.value;Ce.css(t,"display","none"===i?"none":""),Ce.toggleClass(t,n+"i-checkmark","ok"===i),Ce.toggleClass(t,n+"i-warning","warn"===i),Ce.toggleClass(t,n+"i-error","error"===i),r.classes.toggle("has-status","none"!==i),r.repaint()}),Ce.on(r.getEl("status"),"mouseleave",function(){r.tooltip().hide()}),r.on("cancel",function(e){r.menu&&r.menu.visible()&&(e.stopPropagation(),r.hideMenu())});var n=function(e,t){t&&0<t.items().length&
 amp;&t.items().eq(e)[0].focus()};return r.on("keydown",function(e){var t=e.keyCode;"INPUT"===e.target.nodeName&&(t===Zt.DOWN?(e.preventDefault(),r.fire("autocomplete"),n(0,r.menu)):t===Zt.UP&&(e.preventDefault(),n(-1,r.menu)))}),r._super()},remove:function(){we(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}}),en=Qt.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.classes.add("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl("open"),n=t?t.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=e}catch(i){}},bindStates:function(){var t=this;return t.state.on("change:value",function(e){t.state.get("rendered")&&t.repaintColor(e.value)}),t._super()}}),tn=jt.extend({showPanel:function(){var 
 t=this,e=t.settings;if(t.classes.add("opened"),t.panel)t.panel.show();else{var n=e.panel;n.type&&(n={layout:"grid",items:n}),n.role=n.role||"dialog",n.popover=!0,n.autohide=!0,n.ariaRoot=!0,t.panel=new kt(n).on("hide",function(){t.classes.remove("opened")}).on("cancel",function(e){e.stopPropagation(),t.focus(),t.hidePanel()}).parent(t).renderTo(t.getContainerElm()),t.panel.fire("show"),t.panel.reflow()}var i=t.panel.testMoveRel(t.getEl(),e.popoverAlign||(t.isRtl()?["bc-tc","bc-tl","bc-tr"]:["bc-tc","bc-tr","bc-tl","tc-bc","tc-br","tc-bl"]));t.panel.classes.toggle("start","l"===i.substr(-1)),t.panel.classes.toggle("end","r"===i.substr(-1));var r="t"===i.substr(0,1);t.panel.classes.toggle("bottom",!r),t.panel.classes.toggle("top",r),t.panel.moveRel(t.
 getEl(),i)},hidePanel:function(){this.panel&&this.panel.hide()},postRender:function(){var t=this;return t.aria("haspopup",!0),t.on("click",function(e){e.control===t&&(t.panel&&t.panel.visible()?t.hidePanel():(t.showPanel(),t.panel.focus(!!e.aria)))}),t._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}}),nn=v.DOM,rn=tn.extend({init:function(e){this._super(e),this.classes.add("splitbtn"),this.classes.add("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,i=e.state.get("text"),r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",o=e.settings.image?" style=\"background-ima
 ge: url('"+e.settings.image+"')\"":"",s="";return i&&(e.classes.add("btn-has-text"),s='<span class="'+n+'txt">'+e.encode(i)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+o+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+s+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var t=this,n=t.settings.onclick;return t.on("click",function(e){e.aria&&"down"===e.
 aria.key||e.control!==t||nn.getParent(e.target,"."+t.classPrefix+"open")||(e.stopImmediatePropagation(),n.call(t,e))}),delete t.settings.onclick,t._super()}}),on=tinymce.util.Tools.resolve("tinymce.util.Color"),sn=Wt.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){var n,i,r,o,s,a=this,l=a.color();function u(e,t){var n,i,r=Ce.getPos(e);return n=t.pageX-r.x,i=t.pageY-r.y,{x:n=Math.max(0,Math.min(n/e.clientWidth,1)),y:i=Math.max(0,Math.min(i/e.clientHeight,1))}}function c(e,t){var n=(360-e.h)/360;Ce.css(r,{top:100*n+"%"}),t||Ce.css(s,{left:e.s+"%",top:100-e.v+"%"}),o.style.background=on({s:100,v:100,h:e.h}).toHex(),a.color().parse({s:e.s,v:e.v,h:e.h})}function e(e){var t;t=u(o,e),n.s=100*t.x,n.v=100*(1-t.y),c(n),a.fire("change")}function t(e){var t;t=u(i,e),(n=l.toHsv()).h=360*(1-t.y),c(n,!0),a.fire("change")}i=a.getEl("h"),r=a.getEl
 ("hp"),o=a.getEl("sv"),s=a.getEl("svp"),a._repaint=function(){c(n=l.toHsv())},a._super(),a._svdraghelper=new ft(a._id+"-sv",{start:e,drag:e}),a._hdraghelper=new ft(a._id+"-h",{start:t,drag:t}),a._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){if(!arguments.length)return this.color().toHex();this.color().parse(e),this._rendered&&this._repaint()},color:function(){return this._color||(this._color=on()),this._color},renderHtml:function(){var e,t=this._id,o=this.classPrefix,s="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000";return e='<div id="'+t+'-h" class="'+o+'colorpicker-h" style="background: -ms-linear-gradient(top,'+s+");background: linear-gradient(to bottom,"+s+');">'+function(){var e,t,n,i,r="";for(n="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startC
 olorstr=",e=0,t=(i=s.split(",")).length-1;e<t;e++)r+='<div class="'+o+'colorpicker-h-chunk" style="height:'+100/t+"%;"+n+i[e]+",endColorstr="+i[e+1]+");-ms-"+n+i[e]+",endColorstr="+i[e+1]+')"></div>';return r}()+'<div id="'+t+'-hp" class="'+o+'colorpicker-h-marker"></div></div>','<div id="'+t+'" class="'+this.classes+'"><div id="'+t+'-sv" class="'+o+'colorpicker-sv"><div class="'+o+'colorpicker-overlay1"><div class="'+o+'colorpicker-overlay2"><div id="'+t+'-svp" class="'+o+'colorpicker-selector1"><div class="'+o+'colorpicker-selector2"></div></div></div></div></div>'+e+"</div>"}}),an=Wt.extend({init:function(e){e=w.extend({height:100,text:"Drop an image here",multiple:!1,accept:
 null},e),this._super(e),this.classes.add("dropzone"),e.multiple&&this.classes.add("multiple")},renderHtml:function(){var e,t,n=this.settings;return e={id:this._id,hidefocus:"1"},t=Ce.create("div",e,"<span>"+this.translate(n.text)+"</span>"),n.height&&Ce.css(t,"height",n.height+"px"),n.width&&Ce.css(t,"width",n.width+"px"),t.className=this.classes,t.outerHTML},postRender:function(){var i=this,e=function(e){e.preventDefault(),i.classes.toggle("dragenter"),i.getEl().className=i.classes};i._super(),i.$el.on("dragover",function(e){e.preventDefault()}),i.$el.on("dragenter",e),i.$el.on("dragleave",e),i.$el.on("drop",function(e){if(e.preventDefault(),!i.state.get("disabled")){var t=function(e){var t=i.settings.accept;if("string"!=typeof t)return e;var n=new RegExp("("+t.split(/\
 s*,\s*/).join("|")+")$","i");return w.grep(e,function(e){return n.test(e.name)})}(e.dataTransfer.files);i.value=function(){return t.length?i.settings.multiple?t:t[0]:null},t.length&&i.fire("change",e)}})},remove:function(){this.$el.off(),this._super()}}),ln=Wt.extend({init:function(e){var n=this;e.delimiter||(e.delimiter="\xbb"),n._super(e),n.classes.add("path"),n.canFocus=!0,n.on("click",function(e){var t;(t=e.target.getAttribute("data-index"))&&n.fire("select",{value:n.row()[t],index:t})}),n.row(n.settings.row)},focus:function(){return this.getEl().firstChild.focus(),this},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'">'+this._getDataPathHtml(this.state.get("row"))+"</div>"},bindState
 s:function(){var t=this;return t.state.on("change:row",function(e){t.innerHtml(t._getDataPathHtml(e.value))}),t._super()},_getDataPathHtml:function(e){var t,n,i=e||[],r="",o=this.classPrefix;for(t=0,n=i.length;t<n;t++)r+=(0<t?'<div class="'+o+'divider" aria-hidden="true"> '+this.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(t===n-1?" "+o+"last":"")+'" data-index="'+t+'" tabindex="-1" id="'+this._id+"-"+t+'" aria-level="'+(t+1)+'">'+i[t].name+"</div>";return r||(r='<div class="'+o+'path-item">\xa0</div>'),r}}),un=ln.extend({postRender:function(){var o=this,s=o.settings.editor;function a(e){if(1===e.nodeType){if("BR"===e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttr
 ibute("data-mce-type"))return!0}return!1}return!1!==s.settings.elementpath&&(o.on("select",function(e){s.focus(),s.selection.select(this.row()[e.index].element),s.nodeChanged()}),s.on("nodeChange",function(e){for(var t=[],n=e.parents,i=n.length;i--;)if(1===n[i].nodeType&&!a(n[i])){var r=s.fire("ResolveName",{name:n[i].nodeName.toLowerCase(),target:n[i]});if(r.isDefaultPrevented()||t.push({name:r.name,element:n[i]}),r.isPropagationStopped())break}o.row(t)})),o._super()}}),cn=ct.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.classes.add("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":&
 quot;")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}}),dn=ct.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:15,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var i=this,e=i.items();i.settings.formItemDefaults||(i.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),e.each(function(e){var t,n=e.settings.label;n&&((t=new cn(w.extend({items:{type:"label",id:e._id+"-l",text:n,flex:0,forId:e._id,disabled:e.disabled()}},i.settings.formItemDefaults))).type="formitem",e.aria("labelledby",e._id+"-l"),"undefined"==typeof e.settings.flex&&(e.settings.flex=1),i.replace(e,t),t.add(e))})},submit:function(){return 
 this.fire("submit",{data:this.toJSON()})},postRender:function(){this._super(),this.fromJSON(this.settings.data)},bindStates:function(){var n=this;function e(){var e,t,i=0,r=[];if(!1!==n.settings.labelGapCalc)for(("children"===n.settings.labelGapCalc?n.find("formitem"):n.items()).filter("formitem").each(function(e){var t=e.items()[0],n=t.getEl().clientWidth;i=i<n?n:i,r.push(t)}),t=n.settings.labelGap||0,e=r.length;e--;)r[e].settings.minWidth=i+t}n._super(),n.on("show",e),e()}}),fn=dn.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id=
 "'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}}),hn=0,mn=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:k(e)}},gn={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return mn(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return mn(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return mn(n)},fromDom:mn,fromPoint:function(e,t,n){var i=e.dom();return D.from(i.elementFromPoint(t,n)).map(mn)}},pn=function(n){var i,r=!1;return
  function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r||(r=!0,i=n.apply(null,e)),i}},vn={ATTRIBUTE:Node.ATTRIBUTE_NODE,CDATA_SECTION:Node.CDATA_SECTION_NODE,COMMENT:Node.COMMENT_NODE,DOCUMENT:Node.DOCUMENT_NODE,DOCUMENT_TYPE:Node.DOCUMENT_TYPE_NODE,DOCUMENT_FRAGMENT:Node.DOCUMENT_FRAGMENT_NODE,ELEMENT:Node.ELEMENT_NODE,TEXT:Node.TEXT_NODE,PROCESSING_INSTRUCTION:Node.PROCESSING_INSTRUCTION_NODE,ENTITY_REFERENCE:Node.ENTITY_REFERENCE_NODE,ENTITY:Node.ENTITY_NODE,NOTATION:Node.NOTATION_NODE},bn=function(e){return e.dom().nodeType},yn=function(t){return function(e){return bn(e)===t}},xn=(yn(vn.ELEMENT),yn(vn.TEXT),yn(vn.DOCUMENT),pn(function(){return xn(gn.fromDom(document))}),function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return gn.fromDom(t)}),wn=("undefined"!=typeof window?window:Function("return this;")(),function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var i=e[n];if(
 i.test(t))return i}return undefined}(e,t);if(!n)return{major:0,minor:0};var i=function(e){return Number(t.replace(n,"$"+e))};return Cn(i(1),i(2))}),_n=function(){return Cn(0,0)},Cn=function(e,t){return{major:e,minor:t}},Rn={nu:Cn,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?_n():wn(e,n)},unknown:_n},En="Firefox",kn=function(e,t){return function(){return t===e}},Tn=function(e){var t=e.current;return{current:t,version:e.version,isEdge:kn("Edge",t),isChrome:kn("Chrome",t),isIE:kn("IE",t),isOpera:kn("Opera",t),isFirefox:kn(En,t),isSafari:kn("Safari",t)}},Hn={unknown:function(){return Tn({current:undefined,version:Rn.unknown()})},nu:Tn,edge:k("Edge"),chrome:k("Chrome"),ie:k("IE"),opera:k("Opera"),firefox:k(En),safari:k("Safari")},Sn="Windows",Mn="Android",Nn="Solaris",Pn="FreeBSD",Dn=function(e,t){return 
 function(){return t===e}},Wn=function(e){var t=e.current;return{current:t,version:e.version,isWindows:Dn(Sn,t),isiOS:Dn("iOS",t),isAndroid:Dn(Mn,t),isOSX:Dn("OSX",t),isLinux:Dn("Linux",t),isSolaris:Dn(Nn,t),isFreeBSD:Dn(Pn,t)}},On={unknown:function(){return Wn({current:undefined,version:Rn.unknown()})},nu:Wn,windows:k(Sn),ios:k("iOS"),android:k(Mn),linux:k("Linux"),osx:k("OSX"),solaris:k(Nn),freebsd:k(Pn)},An=function(e,t){var n=String(t).toLowerCase();return Z(e,function(e){return e.search(n)})},Bn=function(e,n){return An(e,n).map(function(e){var t=Rn.detect(e.versionRegexes,n);return{current:e.name,version:t}})},Ln=function(e,n){return An(e,n).map(function(e){var t=Rn.detect(e.versionRegexes,n);return{current:e.name,version:t}})},In=function(e,t){return-1!==e.indexOf(t)},zn=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Fn=function(t){return function(e){return In(e,t)}},Un=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]
 +)\.([0-9]+)$/],search:function(e){return In(e,"edge/")&&In(e,"chrome")&&In(e,"safari")&&In(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,zn],search:function(e){return In(e,"chrome")&&!In(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return In(e,"msie")||In(e,"trident")}},{name:"Opera",versionRegexes:[zn,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Fn("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Fn("firefox")},{name:"Safari",versionRegexes:[zn,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(In(e,"safari")||In(e,"mobile/"))&&In(e,"applewebkit")}}],Vn=[{name:"Windows",search:Fn("win&quot
 ;),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return In(e,"iphone")||In(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Fn("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Fn("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Fn("linux"),versionRegexes:[]},{name:"Solaris",search:Fn("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Fn("freebsd"),versionRegexes:[]}],Yn={browsers:k(Un),oses:k(Vn)},$n=function(e){var t,n,i,r,o,s,a,l,u,c,d,f=Yn.browsers(),h=Yn.oses(),m=Bn(f,e).fold(Hn.unknown,Hn.nu),g=Ln(h,e).fold(On.unknown,On.nu);return{browser:m,os:g,deviceType:(n=m,i=e,r=(t=g).isiOS()&&!0===/ipad/i.test(i),o=t.isiOS()&&!r,
 s=t.isAndroid()&&3===t.version.major,a=t.isAndroid()&&4===t.version.major,l=r||s||a&&!0===/mobile/i.test(i),u=t.isiOS()||t.isAndroid(),c=u&&!l,d=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(i),{isiPad:k(r),isiPhone:k(o),isTablet:k(l),isPhone:k(c),isTouch:k(u),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:k(d)})}},Xn=pn(function(){var e=navigator.userAgent;return $n(e)}),qn=vn.ELEMENT,jn=vn.DOCUMENT,Jn=function(e){return e.nodeType!==qn&&e.nodeType!==jn||0===e.childElementCount},Gn={all:function(e,t){var n=t===undefined?document:t.dom();return Jn(n)?[]:J(n.querySelectorAll(e),gn.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==qn)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks n
 ative selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return Jn(n)?D.none():D.from(n.querySelector(e)).map(gn.fromDom)}},Kn=(Xn().browser.isIE(),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]}("element","offset"),function(e,t){return Gn.all(t,e)}),Zn=w.trim,Qn=function(t){return function(e){if(e&&1===e.nodeType){if(e.contentEditable===t)return!0;if(e.getAttribute("data-mce-contenteditable")===t)return!0}return!1}},ei=Qn("true"),ti=Qn("false"),ni=function(e,t,n,i,r){return{type:e,title:t,url:n,level:i,attach:r}},ii=function(e){return e.innerText||e.textContent},ri=function(e){return e.id?e.id:(t="h",n=(new Date).getTime(),t+"_"+Math.floor(1e9*Math.random())+ ++hn+String(n));var t,n},oi=function(e){return(t=e)&&"A"===t.nodeName&&(t.id||t.name)&&ai(e);var t},si=function(e){return e&&/^(H[1-6])$/.test(e.nodeName)},ai=fu
 nction(e){return function(e){for(;e=e.parentNode;){var t=e.contentEditable;if(t&&"inherit"!==t)return ei(e)}return!1}(e)&&!ti(e)},li=function(e){return si(e)&&ai(e)},ui=function(e){var t,n=ri(e);return ni("header",ii(e),"#"+n,si(t=e)?parseInt(t.nodeName.substr(1),10):0,function(){e.id=n})},ci=function(e){var t=e.id||e.name,n=ii(e);return ni("anchor",n||"#"+t,"#"+t,0,E)},di=function(e){var t,n;return t="h1,h2,h3,h4,h5,h6,a:not([href])",n=e,J(Kn(gn.fromDom(n),t),function(e){return e.dom()})},fi=function(e){return 0<Zn(e.title).length},hi=function(e){var t,n=di(e);return K((t=n,J(K(t,li),ui)).concat(J(K(n,oi),ci)),fi)},mi={},gi=function(e){return{title:e.title,value:{title:{raw:e.title},url:e.url,attach:e.attach}}},pi=function(e,t){return{title:e,value:{title:e,url:t,attach:E}}},vi=function(e,t,n){var i=t in e?e[t]:n;return!1===i?null:i},bi=function(e,i,r,t){var n,o,s,a,l,u,c={title:"-
 "},d=function(e){var t=e.hasOwnProperty(r)?e[r]:[],n=K(t,function(e){return t=e,!j(i,function(e){return e.url===t});var t});return w.map(n,function(e){return{title:e,value:{title:e,url:e,attach:E}}})},f=function(t){var e,n=K(i,function(e){return e.type===t});return e=n,w.map(e,gi)};return!1===t.typeahead_urls?[]:"file"===r?(n=[xi(e,d(mi)),xi(e,f("header")),xi(e,(a=f("anchor"),l=vi(t,"anchor_top","#top"),u=vi(t,"anchor_bottom","#bottom"),null!==l&&a.unshift(pi("<top>",l)),null!==u&&a.push(pi("<bottom>",u)),a))],o=function(e,t){return 0===e.length||0===t.length?e.concat(t):e.concat(c,t)},s=[],G(n,function(e){s=o(s,e)}),s):xi(e,d(mi))},yi=function(e,t){var n,i,r,o=mi[t];/^https?/.test(e)&&(o?(n=o,i=e,r=q(n,i),-1===r?D.none():D.some(r)).isNone()&&(mi[t]=o.slice(0,5).concat(e)):mi[t]=[e])},xi=function(e,t){var n=e.toLowerCase(),i=w.grep(t,function(e){
 return-1!==e.title.toLowerCase().indexOf(n)});return 1===i.length&&i[0].title===e?[]:i},wi=function(o,e,n){var i=e.filepicker_validator_handler;i&&o.state.on("change:value",function(e){var t;0!==(t=e.value).length?i({url:t,type:n},function(e){var t,n,i,r=(n=(t=e).status,i=t.message,"valid"===n?{status:"ok",message:i}:"unknown"===n?{status:"warn",message:i}:"invalid"===n?{status:"warn",message:i}:{status:"none",message:""});o.statusMessage(r.message),o.statusLevel(r.status)}):o.statusLevel("none")})},_i=Qt.extend({Statics:{clearHistory:function(){mi={}}},init:function(e){var t,n,i,r,o,s,a,l,u=this,c=window.tinymce?window.tinymce.activeEditor:h.activeEditor,d=c.settings,f=e.filetype;e.spellcheck=!1,(i=d.file_picker_types||d.file_browser_callback_types)&&(i=w.makeMap(i,/[, ]/)),i&&!i[f]||(!(n=d.file_picker_callback)||i&&!i[f]?!(n=d.file_browser_cal
 lback)||i&&!i[f]||(t=function(){n(u.getEl("inp").id,u.value(),f,window)}):t=function(){var e=u.fire("beforecall").meta;e=w.extend({filetype:f},e),n.call(c,function(e,t){u.value(e).fire("change",{meta:t})},u.value(),e)}),t&&(e.icon="browse",e.onaction=t),u._super(e),u.classes.add("filepicker"),r=u,o=d,s=c.getBody(),a=f,l=function(e){var t=hi(s),n=bi(e,t,a,o);r.showAutoComplete(n,e)},r.on("autocomplete",function(){l(r.value())}),r.on("selectitem",function(e){var t=e.value;r.value(t.url);var n,i=(n=t.title).raw?n.raw:n;"image"===a?r.fire("change",{meta:{alt:i,attach:t.attach}}):r.fire("change",{meta:{text:i,attach:t.attach}}),r.focus()}),r.on("click",function(e){0===r.value().length&&"INPUT"===e.target.nodeName&&l("")}),r.on("PostRender",function(){r.getRoot().on("submit",function(e){e.isDefaultPrevented()|
 |yi(r.value(),a)})}),wi(u,d,f)}}),Ci=qt.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox;e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}}),Ri=qt.extend({recalc:function(e){var t,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,C,R,E,k,T,H,S,M,N,P,D,W,O,A,B,L=[],I=Math.max,z=Math.min;for(i=e.items().filter(":visible"),r=e.layoutRect(),o=e.paddingBox,s=e.settings,f=e.isRtl()?s.direction||"row-reversed":s.direction,a=s.align,l=e.isRtl()?s.pack||"end":s.pack,u=s.spacing||0,"row-reversed"!==f&&"column-reverse"!==f||(i=i.set(i.toArray().reverse()),f=f.split("-")[0]),"column"===f?(R="y",_="h",C="minH",E="maxH",T="innerH",k="top",H="deltaH",S="contentH",W="left",P="w",M="x",N=
 "innerW",D="minW",O="right",A="deltaW",B="contentW"):(R="x",_="w",C="minW",E="maxW",T="innerW",k="left",H="deltaW",S="contentW",W="top",P="h",M="y",N="innerH",D="minH",O="bottom",A="deltaH",B="contentH"),d=r[T]-o[k]-o[k],w=c=0,t=0,n=i.length;t<n;t++)m=(h=i[t]).layoutRect(),d-=t<n-1?u:0,0<(g=h.settings.flex)&&(c+=g,m[E]&&L.push(h),m.flex=g),d-=m[C],w<(p=o[W]+m[D]+o[O])&&(w=p);if((y={})[C]=d<0?r[C]-d+r[H]:r[T]-d+r[H],y[D]=w+r[A],y[S]=r[T]-d,y[B]=w,y.minW=z(y.minW,r.maxW),y.minH=z(y.minH,r.maxH),y.minW=I(y.minW,r.startMinWidth),y.minH=I(y.minH,r.startMinHeight),!r.autoResize||y.minW===r.minW&&y.minH===r.minH){for(b=d/c,t=0,n=L.length;t<n;t++)(v=(m=(h=L[t]).layoutRect())[E])<(p=m[C]+m.flex*b)?(d-=m[E]-m[C],c-=m.flex,m.flex=0,m.m
 axFlexSize=v):m.maxFlexSize=0;for(b=d/c,x=o[k],y={},0===c&&("end"===l?x=d+o[k]:"center"===l?(x=Math.round(r[T]/2-(r[T]-d)/2)+o[k])<0&&(x=o[k]):"justify"===l&&(x=o[k],u=Math.floor(d/(i.length-1)))),y[M]=o[W],t=0,n=i.length;t<n;t++)p=(m=(h=i[t]).layoutRect()).maxFlexSize||m[C],"center"===a?y[M]=Math.round(r[N]/2-m[P]/2):"stretch"===a?(y[P]=I(m[D]||0,r[N]-o[W]-o[O]),y[M]=o[W]):"end"===a&&(y[M]=r[N]-m[P]-o.top),0<m.flex&&(p+=m.flex*b),y[_]=p,y[R]=x,h.layoutRect(y),h.recalc&&h.recalc(),x+=p+u}else if(y.w=y.minW,y.h=y.minH,e.layoutRect(y),this.recalc(e),null===e._lastRect){var F=e.parent();F&&(F._lastRect=null,F.recalc())}}}),Ei=Xt.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})},isNa
 tive:function(){return!0}}),ki=function(e,t){return Gn.one(t,e)},Ti=function(e,t){return function(){e.execCommand("mceToggleFormat",!1,t)}},Hi=function(e,t,n){var i=function(e){n(e,t)};e.formatter?e.formatter.formatChanged(t,i):e.on("init",function(){e.formatter.formatChanged(t,i)})},Si=function(e,n){return function(t){Hi(e,n,function(e){t.control.active(e)})}},Mi=function(i){var t=["alignleft","aligncenter","alignright","alignjustify"],r="alignleft",e=[{text:"Left",icon:"alignleft",onclick:Ti(i,"alignleft")},{text:"Center",icon:"aligncenter",onclick:Ti(i,"aligncenter")},{text:"Right",icon:"alignright",onclick:Ti(i,"alignright")},{text:"Justify",icon:"alignjustify",onclick:Ti(i,"alignjustify")}];i.addMenuItem("align",{text:"Align",menu:e}),i.addButton("align",{type:&
 quot;menubutton",icon:r,menu:e,onShowMenu:function(e){var n=e.control.menu;w.each(t,function(t,e){n.items().eq(e).each(function(e){return e.active(i.formatter.match(t))})})},onPostRender:function(e){var n=e.control;w.each(t,function(t,e){Hi(i,t,function(e){n.icon(r),e&&n.icon(t)})})}}),w.each({alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(e,t){i.addButton(t,{active:!1,tooltip:e[0],cmd:e[1],onPostRender:Si(i,t)})})},Ni=function(e){return e?e.split(",")[0]:""},Pi=function(l,u){return function(){var a=this;a.state.set("value",null),l.on("init nodeChange",function(e){var t,n,i,r,o=l.queryCommandValue("FontName"),s=(t=u,r=(n=o)?n.toLowerCase():"",w.ea
 ch(t,function(e){e.value.toLowerCase()===r&&(i=e.value)}),w.each(t,function(e){i||Ni(e.value).toLowerCase()!==Ni(r).toLowerCase()||(i=e.value)}),i);a.value(s||null),!s&&o&&a.text(Ni(o))})}},Di=function(n){n.addButton("fontselect",function(){var e,t=(e=function(e){for(var t=(e=e.replace(/;$/,"").split(";")).length;t--;)e[t]=e[t].split("=");return e}(n.settings.font_formats||"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wing
 dings=wingdings,zapf dingbats"),w.map(e,function(e){return{text:{raw:e[0]},value:e[1],textStyle:-1===e[1].indexOf("dings")?"font-family:"+e[1]:""}}));return{type:"listbox",text:"Font Family",tooltip:"Font Family",values:t,fixedWidth:!0,onPostRender:Pi(n,t),onselect:function(e){e.control.settings.value&&n.execCommand("FontName",!1,e.control.settings.value)}}})},Wi=function(e){Di(e)},Oi=function(e,t){return/[0-9.]+px$/.test(e)?(n=72*parseInt(e,10)/96,i=t||0,r=Math.pow(10,i),Math.round(n*r)/r+"pt"):e;var n,i,r},Ai=function(e,t,n){var i;return w.each(e,function(e){e.value===n?i=n:e.value===t&&(i=t)}),i},Bi=function(n){n.addButton("fontsizeselect",function(){var e,s,a,t=(e=n.settings.fontsize_formats||"8pt 10pt 12pt 14pt 18pt 24pt 36pt",w.map(e.split(" "),function(e){var t=e,n=e,i=e.split("=");return 1<i.length&&(t=i[0],n=i[1]),{text:t,va
 lue:n}}));return{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:(s=n,a=t,function(){var o=this;s.on("init nodeChange",function(e){var t,n,i,r;if(t=s.queryCommandValue("FontSize"))for(i=3;!r&&0<=i;i--)n=Oi(t,i),r=Ai(a,n,t);o.value(r||null),r||o.text(n)})}),onclick:function(e){e.control.settings.value&&n.execCommand("FontSize",!1,e.control.settings.value)}}})},Li=function(e){Bi(e)},Ii=function(n,e){var i=e.length;return w.each(e,function(e){e.menu&&(e.hidden=0===Ii(n,e.menu));var t=e.format;t&&(e.hidden=!n.formatter.canApply(t)),e.hidden&&i--}),i},zi=function(n,e){var i=e.items().length;return e.items().each(function(e){e.menu&&e.visible(0<zi(n,e.menu)),!e.menu&&e.settings.menu&&e.visible(0<Ii(n,e.settings.menu));var t=e.settings.format;t&&e.visible(n.formatter.canApply(t)),e.visible()||i--}),i},Fi=funct
 ion(e){var i,r,o,t,s,n,a,l,u=(r=0,o=[],t=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code
 "}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}],s=function(e){var i=[];if(e)return w.each(e,function(e){var t={text:e.title,icon:e.icon};if(e.items)t.menu=s(e.items);else{var n=e.format||"custom"+r++;e.format||(e.name=n,o.push(e)),t.format=n,t.cmd=e.cmd}i.push(t)}),i},(i=e).on("init",function(){w.each(o,function(e){i.formatter.register(e.name,e)})}),{type:"menu",items:i.settings.s
 tyle_formats_merge?i.settings.style_formats?s(t.concat(i.settings.style_formats)):s(t):s(i.settings.style_formats||t),onPostRender:function(e){i.fire("renderFormatsMenu",{control:e.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return i.formatter.getCssText(this.settings.format)},onPostRender:function(){var n=this;n.parent().on("show",function(){var e,t;(e=n.settings.format)&&(n.disabled(!i.formatter.canApply(e)),n.active(i.formatter.match(e))),(t=n.settings.cmd)&&n.active(i.queryCommandState(t))})},onclick:function(){this.settings.format&&Ti(i,this.settings.format)(),this.settings.cmd&&i.execCommand(this.settings.cmd)}}});n=u,e.addMenuItem("formats",{text:"Formats",menu:n}),l=u,(a=e).addButton("styleselect",{type:"menubutton",text:"Formats",menu:l,onShowMenu:function(){a.settings.style_formats_autohide&&zi(a,this.menu)}})},Ui=function(n,e){
 return function(){var r,o,s,t=[];return w.each(e,function(e){t.push({text:e[0],value:e[1],textStyle:function(){return n.formatter.getCssText(e[1])}})}),{type:"listbox",text:e[0][0],values:t,fixedWidth:!0,onselect:function(e){if(e.control){var t=e.control.value();Ti(n,t)()}},onPostRender:(r=n,o=t,function(){var t=this;r.on("nodeChange",function(e){var n=r.formatter,i=null;w.each(e.parents,function(t){if(w.each(o,function(e){if(s?n.matchNode(t,s,{value:e.value})&&(i=e.value):n.matchNode(t,e.value)&&(i=e.value),i)return!1}),i)return!1}),t.value(i)})})}}},Vi=function(e){var t,n,i=function(e){for(var t=(e=e.replace(/;$/,"").split(";")).length;t--;)e[t]=e[t].split("=");return e}(e.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");e.addMenuItem("blockformats",{text:"Blocks",menu:(t=e,n=i,w.map(n,function(e){retur
 n{text:e[0],onclick:Ti(t,e[1]),textStyle:function(){return t.formatter.getCssText(e[1])}}}))}),e.addButton("formatselect",Ui(e,i))},Yi=function(t,e){var n,i;if("string"==typeof e)i=e.split(" ");else if(w.isArray(e))return function(e){for(var t=[],n=0,i=e.length;n<i;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);te.apply(t,e[n])}return t}(w.map(e,function(e){return Yi(t,e)}));return n=w.grep(i,function(e){return"|"===e||e in t.menuItems}),w.map(n,function(e){return"|"===e?{text:"-"}:t.menuItems[e]})},$i=function(e){return e&&"-"===e.text},Xi=function(e){var t=K(e,function(e,t,n){return!$i(e)||!$i(n[t-1])});return K(t,function(e,t,n){return!$i(e)||0<t&&t<n.length-1})},qi=function(e){var t,n,i,r,o=e.settings.insert_button_items;return Xi(o?Yi(e,o):(t=e,n="insert",i=[{text:"-"}],r=w.grep
 (t.menuItems,function(e){return e.context===n}),w.each(r,function(e){"before"===e.separator&&i.push({text:"|"}),e.prependToContext?i.unshift(e):i.push(e),"after"===e.separator&&i.push({text:"|"})}),i))},ji=function(e){var t;(t=e).addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(qi(t)),this.menu.renderNew()}})},Ji=function(e){var n,i,r;n=e,w.each({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(e,t){n.addButton(t,{active:!1,tooltip:e,onPostRender:Si(n,t),onclick:Ti(n,t)})}),i=e,w.each({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste",&quo
 t;Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"],removeformat:["Clear formatting","RemoveFormat"],remove:["Remove","Delete"]},function(e,t){i.addButton(t,{tooltip:e[0],cmd:e[1]})}),r=e,w.each({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"]},function(e,t){r.addButton(t,{active:!1,tooltip:e[0],cmd:e[1],onPostRender:Si(r,t)})})},Gi=function(e){var n;Ji(e),n=e,w.each({bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethr
 ough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"],newdocument:["New document","mceNewDocument"],cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"]},function(e,t){n.addMenuItem(t,{text:e[0],icon:t,shortcut:e[2],cmd:e[1]})}),n.addMenuItem("codeformat",{text:"Code",icon:"code",onclick:Ti(n,"code")})},Ki=function(n,i){return function(){var e=this,t=function(){var e="redo"===i?"hasRedo":"hasUndo";return!!n.undoManager&&n.undoManager[e]()};e.disabled(!t()),n.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){e.disabled(
 n.readonly||!t())})}},Zi=function(e){var t,n;(t=e).addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:Ki(t,"undo"),cmd:"undo"}),t.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:Ki(t,"redo"),cmd:"redo"}),(n=e).addButton("undo",{tooltip:"Undo",onPostRender:Ki(n,"undo"),cmd:"undo"}),n.addButton("redo",{tooltip:"Redo",onPostRender:Ki(n,"redo"),cmd:"redo"})},Qi=function(e){var t,n;(t=e).addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:(n=t,function(){var t=this;n.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(n.hasVisual)}),cmd:"mceToggleVisualAid"})},er={setup:function(e){var t;e.rtl&&(st.rtl=!0),e.on("mousedown",function(){kt.hideAll()}),(t=e).set
 tings.ui_container&&(fe.container=ki(gn.fromDom(document.body),t.settings.ui_container).fold(k(null),function(e){return e.dom()})),Wt.tooltips=!fe.iOS,st.translate=function(e){return h.translate(e)},Vi(e),Mi(e),Gi(e),Zi(e),Li(e),Wi(e),Fi(e),Qi(e),ji(e)}},tr=qt.extend({recalc:function(e){var t,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,C,R,E,k,T,H,S=[],M=[];t=e.settings,r=e.items().filter(":visible"),o=e.layoutRect(),i=t.columns||Math.ceil(Math.sqrt(r.length)),n=Math.ceil(r.length/i),b=t.spacingH||t.spacing||0,y=t.spacingV||t.spacing||0,x=t.alignH||t.align,w=t.alignV||t.align,p=e.paddingBox,H="reverseRows"in t?t.reverseRows:e.isRtl(),x&&"string"==typeof x&&(x=[x]),w&&"string"==typeof w&&(w=[w]);for(d=0;d<i;d++)S.push(0);for(f=0;f<n;f++)M.push(0);for(f=0;f<n;f++)for(d=0;d<i&&(c=r[f*i+d]);d++)R=(u=c.layoutRect()).minW,E=u.minH,S[d]=R>S[d]?R:S[d],M[f]=E>M[f]?E:M[f];for(k=o.innerW-p.l
 eft-p.right,d=_=0;d<i;d++)_+=S[d]+(0<d?b:0),k-=(0<d?b:0)+S[d];for(T=o.innerH-p.top-p.bottom,f=C=0;f<n;f++)C+=M[f]+(0<f?y:0),T-=(0<f?y:0)+M[f];if(_+=p.left+p.right,C+=p.top+p.bottom,(l={}).minW=_+(o.w-o.innerW),l.minH=C+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW===o.minW&&l.minH===o.minH){var N;o.autoResize&&((l=e.layoutRect(l)).contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH),N="start"===t.packV?0:0<T?Math.floor(T/n):0;var P=0,D=t.flexWidths;if(D)for(d=0;d<D.length;d++)P+=D[d];else P=i;var W=k/P;for(d=0;d<i;d++)S[d]+=D?D[d]*W:W;for(m=p.top,f=0;f<n;f++){for(h=p.left,a=M[f]+N,d=0;d<i&&(c=r[H?f*i+i-1-d:f*i+d]);d++)g=c.settings,u=c.layoutRect(),s=Math.max(S[d],u.startMinWidth),u.x=h,u.y=m,"center"===(v=g.alignH||(x?x[d]
 ||x[0]:null))?u.x=h+s/2-u.w/2:"right"===v?u.x=h+s-u.w:"stretch"===v&&(u.w=s),"center"===(v=g.alignV||(w?w[d]||w[0]:null))?u.y=m+a/2-u.h/2:"bottom"===v?u.y=m+a-u.h:"stretch"===v&&(u.h=a),c.layoutRect(u),h+=s+b,c.recalc&&c.recalc();m+=a+y}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var O=e.parent();O&&(O._lastRect=null,O.recalc())}}}),nr=Wt.extend({renderHtml:function(){var e=this;return e.classes.add("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,t&&t()):u.setTimeout(function(){n.html(e)}),this}}),ir=Wt.extend({init:function(e){this._super(
 e),this.classes.add("widget").add("infobox"),this.canFocus=!1},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},help:function(e){this.state.set("help",e)},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+e.encode(e.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+t+"ico "+t+'i-help"></i></button></div></div>'},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl("body").firstChild.data=t.encode(e.value),t.state.get("rendered")&&t.updateLayoutRect()}),t.state.on("change:help",function(e){t.classes.toggle("has-help",e.value),t.state.get
 ("rendered")&&t.updateLayoutRect()}),t._super()}}),rr=Wt.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("label"),t.canFocus=!1,e.multiline&&t.classes.add("autoscroll"),e.strong&&t.classes.add("strong")},initLayoutRect:function(){var e=this,t=e._super();return e.settings.multiline&&(Ce.getSize(e.getEl()).width>t.maxW&&(t.minW=t.maxW,e.classes.add("multiline")),e.getEl().style.width=t.minW+"px",t.startMinH=t.h=t.minH=Math.min(t.maxH,Ce.getSize(e.getEl()).height)),t},repaint:function(){return this.settings.multiline||(this.getEl().style.lineHeight=this.layoutRect().h+"px"),this._super()},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},renderHtml:function(){var e,t,n=this,i=n.settings.forId,r=n.settings.html?n.settings.html:
 n.encode(n.state.get("text"));return!i&&(t=n.settings.forName)&&(e=n.getRoot().find("#"+t)[0])&&(i=e._id),i?'<label id="'+n._id+'" class="'+n.classes+'"'+(i?' for="'+i+'"':"")+">"+r+"</label>":'<span id="'+n._id+'" class="'+n.classes+'">'+r+"</span>"},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.innerHtml(t.encode(e.value)),t.state.get("rendered")&&t.updateLayoutRect()}),t._super()}}),or=ct.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){this._super(e),this.classes.add("toolbar")},postRender:function(){return this.items().each(function(e){e.classes.add("toolbar-item")}),this._super()}}),sr=or.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton&
 quot;}}}),ar=jt.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),e=t.settings,t.classes.add("menubtn"),e.fixedWidth&&t.classes.add("fixed-width"),t.aria("haspopup",!0),t.state.set("menu",e.menu||t.render())},showMenu:function(e){var t,n=this;if(n.menu&&n.menu.visible()&&!1!==e)return n.hideMenu();n.menu||(t=n.state.get("menu")||[],n.classes.add("opened"),t.length?t={type:"menu",animate:!0,items:t}:(t.type=t.type||"menu",t.animate=!0),t.renderTo?n.menu=t.parent(n).show().renderTo():n.menu=b.create(t).parent(n).renderTo(),n.fire("createmenu"),n.menu.reflow(),n.menu.on("cancel",function(e){e.control.parent()===n.menu&&(e.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){n.focus()}),n.menu.on("show hide",function(e){e.control===n.menu&&(n.activeMenu("show"===e.type),n.classes.togg
 le("opened","show"===e.type)),n.aria("expanded","show"===e.type)}).fire("show")),n.menu.show(),n.menu.layoutRect({w:n.layoutRect().w}),n.menu.repaint(),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),n.fire("showmenu")},hideMenu:function(){this.menu&&(this.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),this.menu.hide())},activeMenu:function(e){this.classes.toggle("active",e)},renderHtml:function(){var e,t=this,n=t._id,i=t.classPrefix,r=t.settings.icon,o=t.state.get("text"),s="";return(e=t.settings.image)?(r="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",o&&(t.classes.add("btn-has-text"),s='<span class="'+i+'txt">'+t.encode(o)+"</span
 >"),r=t.settings.icon?i+"ico "+i+"i-"+r:"",t.aria("role",t.parent()instanceof sr?"menuitem":"button"),'<div id="'+n+'" class="'+t.classes+'" tabindex="-1" aria-labelledby="'+n+'"><button id="'+n+'-open" role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+e+"></i>":"")+s+' <i class="'+i+'caret"></i></button></div>'},postRender:function(){var r=this;return r.on("click",function(e){e.control===r&&function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}(e.target,r.getEl())&&(r.focus(),r.showMenu(!e.aria),e.aria&&r.menu.items().filter(":visible")[0].focus())}),r.on("mouseenter",function(e){var t,n=e.control,i=r.parent();n&&i&&n instanceof ar&&n.parent
 ()===i&&(i.items().filter("MenuButton").each(function(e){e.hideMenu&&e!==n&&(e.menu&&e.menu.visible()&&(t=!0),e.hideMenu())}),t&&(n.focus(),n.showMenu()))}),r._super()},bindStates:function(){var e=this;return e.state.on("change:menu",function(){e.menu&&e.menu.remove(),e.menu=null}),e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}}),lr=kt.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){if(e.autohide=!0,e.constrainToViewport=!0,"function"==typeof e.items&&(e.itemsFactory=e.items,e.items=[]),e.itemDefaults)for(var t=e.items,n=t.length;n--;)t[n]=w.extend({},e.itemDefaults,t[n]);this._super(e),this.classes.add("menu"),e.animate&&11!==fe.ie&&this.classes.add("animate")},repaint:function(){return this.classes
 .toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){this.hideAll(),this.fire("select")},load:function(){var t,n=this;function i(){n.throbber&&(n.throbber.hide(),n.throbber=null)}n.settings.itemsFactory&&(n.throbber||(n.throbber=new Mt(n.getEl("body"),!0),0===n.items().length?(n.throbber.show(),n.fire("loading")):n.throbber.show(100,function(){n.items().remove(),n.fire("loading")}),n.on("hide close",i)),n.requestTime=t=(new Date).getTime(),n.settings.itemsFactory(function(e){0!==e.length?n.requestTime===t&&(n.getEl().style.width="",n.getEl("body").style.width="",i(),n.items().remove(),n.getEl("body").innerHTML="",n.add(e),n.renderNew(),n.fire("loaded")):n.hide()}))},hideAll:function(){return this.find("menuitem").exec("hideM
 enu"),this._super()},preRender:function(){var n=this;return n.items().each(function(e){var t=e.settings;if(t.icon||t.image||t.selectable)return!(n._hasIcons=!0)}),n.settings.itemsFactory&&n.on("postrender",function(){n.settings.itemsFactory&&n.load()}),n.on("show hide",function(e){e.control===n&&("show"===e.type?u.setTimeout(function(){n.classes.add("in")},0):n.classes.remove("in"))}),n._super()}}),ur=ar.extend({init:function(i){var t,r,o,n,s=this;s._super(i),i=s.settings,s._values=t=i.values,t&&("undefined"!=typeof i.value&&function e(t){for(var n=0;n<t.length;n++){if(r=t[n].selected||i.value===t[n].value)return o=o||t[n].text,s.state.set("value",t[n].value),!0;if(t[n].menu&&e(t[n].menu))return!0}}(t),!r&&0<t.length&&(o=t[0].text,s.state.set("value",t[0].value)),s.state.set("menu",t)),s.state.set("text",i.text
 ||o),s.classes.add("listbox"),s.on("select",function(e){var t=e.control;n&&(e.lastControl=n),i.multiple?t.active(!t.active()):s.value(e.control.value()),n=t})},value:function(t){return 0===arguments.length?this.state.get("value"):(void 0===t||(this.settings.values?0<w.grep(this.settings.values,function(e){return e.value===t}).length?this.state.set("value",t):null===t&&this.state.set("value",null):this.state.set("value",t)),this)},bindStates:function(){var i=this;return i.on("show",function(e){var t,n;t=e.control,n=i.value(),t instanceof lr&&t.items().each(function(e){e.hasMenus()||e.active(e.value()===n)})}),i.state.on("change:value",function(t){var n=function e(t,n){var i;if(t)for(var r=0;r<t.length;r++){if(t[r].value===n)return t[r];if(t[r].menu&&(i=e(t[r].menu,n)))return i}}(i.state.get("menu"),t.value);n?i.text(n.text):i.text(i.settings.text)}),i._super
 ()}}),cr=Wt.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t,n=this;n._super(e),e=n.settings,n.classes.add("menu-item"),e.menu&&n.classes.add("menu-item-expand"),e.preview&&n.classes.add("menu-item-preview"),"-"!==(t=n.state.get("text"))&&"|"!==t||(n.classes.add("menu-item-sep"),n.aria("role","separator"),n.state.set("text","-")),e.selectable&&(n.aria("role","menuitemcheckbox"),n.classes.add("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||n.classes.add("menu-item-normal"),n.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&n.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var t,n=this,e=n.settings,i=n.parent();if(i.items().each(function(e){e!==n&&
 amp;e.hideMenu()}),e.menu){(t=n.menu)?t.show():((t=e.menu).length?t={type:"menu",items:t}:t.type=t.type||"menu",i.settings.itemDefaults&&(t.itemDefaults=i.settings.itemDefaults),(t=n.menu=b.create(t).parent(n).renderTo()).reflow(),t.on("cancel",function(e){e.stopPropagation(),n.focus(),t.hide()}),t.on("show hide",function(e){e.control.items&&e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),t.on("hide",function(e){e.control===t&&n.classes.remove("selected")}),t.submenu=!0),t._parentMenu=i,t.classes.add("menu-sub");var r=t.testMoveRel(n.getEl(),n.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);t.moveRel(n.getEl(),r),r="menu-sub-"+(t.rel=r),t.classes.remove(t._lastRel).add(r),t._lastRel=r,n.classes.add("selected"),n.aria(&qu
 ot;expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e,t=this,n=t._id,i=t.settings,r=t.classPrefix,o=t.state.get("text"),s=t.settings.icon,a="",l=i.shortcut,u=t.encode(i.url);function c(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function d(e){var t=i.match||"";return t?e.replace(new RegExp(c(t),"gi"),function(e){return"!mce~match["+e+"]mce~match!"}):e}function f(e){return e.replace(new RegExp(c("!mce~match["),"g"),"<b>").replace(new RegExp(c("]mce~match!"),"g"),"</b>")}return s&&t.parent().classes.add("menu-has-icons"),i.image&&(a=" style=\"background-image: url('"+i.image+"')\""),l&&(l=function(e){var t
 ,n,i={};for(i=fe.mac?{alt:"&#x2325;",ctrl:"&#x2318;",shift:"&#x21E7;",meta:"&#x2318;"}:{meta:"Ctrl"},e=e.split("+"),t=0;t<e.length;t++)(n=i[e[t].toLowerCase()])&&(e[t]=n);return e.join("+")}(l)),s=r+"ico "+r+"i-"+(t.settings.icon||"none"),e="-"!==o?'<i class="'+s+'"'+a+"></i>\xa0":"",o=f(t.encode(d(o))),u=f(t.encode(d(u))),'<div id="'+n+'" class="'+t.classes+'" tabindex="-1">'+e+("-"!==o?'<span id="'+n+'-text" class="'+r+'text">'+o+"</span>":"")+(l?'<div id="'+n+'-shortcut" class="'+r+'menu-shortcut">'+l+"</div>":"")+(i.menu?'<div class="'+r+'caret"></div>':"")+(u?'<div class="'+r+'menu-item-link">'+u+"</
 div>":"")+"</div>"},postRender:function(){var t=this,n=t.settings,e=n.textStyle;if("function"==typeof e&&(e=e.call(this)),e){var i=t.getEl("text");i&&(i.setAttribute("style",e),t._textStyle=e)}return t.on("mouseenter click",function(e){e.control===t&&(n.menu||"click"!==e.type?(t.showMenu(),e.aria&&t.menu.focus(!0)):(t.fire("select"),u.requestAnimationFrame(function(){t.parent().hideAll()})))}),t._super(),t},hover:function(){return this.parent().items().each(function(e){e.classes.remove("selected")}),this.classes.toggle("selected",!0),this},active:function(e){return function(e,t){var n=e._textStyle;if(n){var i=e.getEl("text");i.setAttribute("style",n),t&&(i.style.color="",i.style.backgroundColor="")}}(this,e),void 0!==e&&this.aria("checked",e),this._super(e)},remove:function(
 ){this._super(),this.menu&&this.menu.remove()}}),dr=Kt.extend({Defaults:{classes:"radio",role:"radio"}}),fr=Wt.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.classes.add("resizehandle"),"both"===e.settings.direction&&e.classes.add("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var t=this;t._super(),t.resizeDragHelper=new ft(this._id,{start:function(){t.fire("ResizeStart")},drag:function(e){"both"!==t.settings.direction&&(e.deltaX=0),t.fire("Resize",e)},stop:function(){t.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}});function hr(e){var t="";if(e)for(var n=0;n<e.length;n++)t+='<option value="'+
 e[n]+'">'+e[n]+"</option>";return t}var mr=Wt.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(e){var n=this;n._super(e),n.settings.size&&(n.size=n.settings.size),n.settings.options&&(n._options=n.settings.options),n.on("keydown",function(e){var t;13===e.keyCode&&(e.preventDefault(),n.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),n.fire("submit",{data:t.toJSON()}))})},options:function(e){return arguments.length?(this.state.set("options",e),this):this.state.get("options")},renderHtml:function(){var e,t=this,n="";return e=hr(t._options),t.size&&(n=' size = "'+t.size+'"'),'<select id="'+t._id+'" class="'+t.classes+'"'+n+">"+e+"</select>"},bindStates:function(){var t=this;return t.state.on("change:options",function(e){t.getEl().innerHTML=hr(e
 .value)}),t._super()}});function gr(e,t,n){return e<t&&(e=t),n<e&&(e=n),e}function pr(e,t,n){e.setAttribute("aria-"+t,n)}function vr(e,t){var n,i,r,o,s;"v"===e.settings.orientation?(r="top",i="height",n="h"):(r="left",i="width",n="w"),s=e.getEl("handle"),o=((e.layoutRect()[n]||100)-Ce.getSize(s)[i])*((t-e._minValue)/(e._maxValue-e._minValue))+"px",s.style[r]=o,s.style.height=e.layoutRect().h+"px",pr(s,"valuenow",t),pr(s,"valuetext",""+e.settings.previewFilter(t)),pr(s,"valuemin",e._minValue),pr(s,"valuemax",e._maxValue)}var br=Wt.extend({init:function(e){var t=this;e.previewFilter||(e.previewFilter=function(e){return Math.round(100*e)/100}),t._super(e),t.classes.add("slider"),"v"===e.orientation&&t.classes.add("vertical"),t._minValue=X(e.minValue)?e.minValue:0,t._max
 Value=X(e.maxValue)?e.maxValue:100,t._initValue=t.state.get("value")},renderHtml:function(){var e=this._id,t=this.classPrefix;return'<div id="'+e+'" class="'+this.classes+'"><div id="'+e+'-handle" class="'+t+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){var e,t,n,i,r,o,s,a,l,u,c,d,f,h,m=this;e=m._minValue,t=m._maxValue,"v"===m.settings.orientation?(n="screenY",i="top",r="height",o="h"):(n="screenX",i="left",r="width",o="w"),m._super(),function(o,s){function t(e){var t,n,i,r;t=gr(t=(((t=m.value())+(r=n=o))/((i=s)-r)+.05*e)*(i-n)-n,o,s),m.value(t),m.fire("dragstart",{value:t}),m.fire("drag",{value:t}),m.fire("dragend",{value:t})}m.on("keydown",function(e){switch(e.keyCode){ca
 se 37:case 38:t(-1);break;case 39:case 40:t(1)}})}(e,t),s=e,a=t,l=m.getEl("handle"),m._dragHelper=new ft(m._id,{handle:m._id+"-handle",start:function(e){u=e[n],c=parseInt(m.getEl("handle").style[i],10),d=(m.layoutRect()[o]||100)-Ce.getSize(l)[r],m.fire("dragstart",{value:h})},drag:function(e){var t=e[n]-u;f=gr(c+t,0,d),l.style[i]=f+"px",h=s+f/d*(a-s),m.value(h),m.tooltip().text(""+m.settings.previewFilter(h)).show().moveRel(l,"bc tc"),m.fire("drag",{value:h})},stop:function(){m.tooltip().hide(),m.fire("dragend",{value:h})}})},repaint:function(){this._super(),vr(this,this.value())},bindStates:function(){var t=this;return t.state.on("change:value",function(e){vr(t,e.value)}),t._super()}}),yr=Wt.extend({renderHtml:function(){return this.classes.add("spacer"),this.canFocus=!1,'<div id="'+this._id+'" class="'+this.classes+'"></div>'}}),xr=ar.extend
 ({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e,t,n=this.getEl(),i=this.layoutRect();return this._super(),e=n.firstChild,t=n.lastChild,we(e).css({width:i.w-Ce.getSize(t).width,height:i.h-2}),we(t).css({height:i.h-2}),this},activeMenu:function(e){we(this.getEl().lastChild).toggleClass(this.classPrefix+"active",e)},renderHtml:function(){var e,t,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a=n.settings,l="";return(e=a.image)?(o="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",o=a.icon?r+"ico "+r+"i-"+o:"",s&&(n.classes.add("btn-has-text"),l='<span class="'+r+'txt">'+n.encode(s)+"</span>"),t="boolean"==typeof a.active?' aria-pressed="'+a.acti
 ve+'"':"",'<div id="'+i+'" class="'+n.classes+'" role="button"'+t+' tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(o?'<i class="'+o+'"'+e+"></i>":"")+l+'</button><button type="button" class="'+r+'open" hidefocus="1" tabindex="-1">'+(n._menuBtnText?(o?"\xa0":"")+n._menuBtnText:"")+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var n=this.settings.onclick;return this.on("click",function(e){var t=e.target;if(e.control===this)for(;t;){if(e.aria&&"down"!==e.aria.key||"BUTTON"===t.nodeName&&-1===t.className.indexOf("open"))return e.stopImmediatePropagation(),void(n&&n.call(this,e));t=t.parentNode}}),delete this.settings.onclick,this._s
 uper()}}),wr=Ei.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}}),_r=bt.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(n){var e;this.activeTabId&&(e=this.getEl(this.activeTabId),we(e).removeClass(this.classPrefix+"active"),e.setAttribute("aria-selected","false")),this.activeTabId="t"+n,(e=this.getEl("t"+n)).setAttribute("aria-selected","true"),we(e).addClass(this.classPrefix+"active"),this.items()[n].show().fire("showtab"),this.reflow(),this.items().each(function(e,t){n!==t&&e.hide()})},renderHtml:function(){var i=this,e=i._layout,r="",o=i.classPrefix;return i.preRender(),e.preRender(i),i.items().each(function(e,t){var n=i._id+"-t"+t;e.aria("role","tabpanel"),e.aria("labe
 lledby",n),r+='<div id="'+n+'" class="'+o+'tab" unselectable="on" role="tab" aria-controls="'+e._id+'" aria-selected="false" tabIndex="-1">'+i.encode(e.settings.title)+"</div>"}),'<div id="'+i._id+'" class="'+i.classes+'" hidefocus="1" tabindex="-1"><div id="'+i._id+'-head" class="'+o+'tabs" role="tablist">'+r+'</div><div id="'+i._id+'-body" class="'+i.bodyClasses+'">'+e.renderHtml(i)+"</div></div>"},postRender:function(){var i=this;i._super(),i.settings.activeTab=i.settings.activeTab||0,i.activateTab(i.settings.activeTab),this.on("click",function(e){var t=e.target.parentNode;if(t&&t.id===i._id+"-head")for(var n=t.childNodes.length;n--;)t.childNodes[n]===e.target&&i.activateTab(n)})},initLayoutRect:function(){var e,t,n
 ,i=this;t=(t=Ce.getSize(i.getEl("head")).width)<0?0:t,n=0,i.items().each(function(e){t=Math.max(t,e.layoutRect().minW),n=Math.max(n,e.layoutRect().minH)}),i.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=t,e.settings.h=n,e.layoutRect({x:0,y:0,w:t,h:n})});var r=Ce.getSize(i.getEl("head")).height;return i.settings.minWidth=t,i.settings.minHeight=n+r,(e=i._super()).deltaH+=r,e.innerH=e.h-e.deltaH,e}}),Cr=Wt.extend({init:function(e){var n=this;n._super(e),n.classes.add("textbox"),e.multiline?n.classes.add("multiline"):(n.on("keydown",function(e){var t;13===e.keyCode&&(e.preventDefault(),n.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),n.fire("submit",{data:t.toJSON()}))}),n.on("keyup",function(e){n.state.set("value",e.target.value)}))},repaint:function(){var e,t,n,i,r,o=this,s=0;e=o.getEl().style,t=o._layoutRect,r=o._lastRepaintRect||{};var a=document;return!
 o.settings.multiline&&a.all&&(!a.documentMode||a.documentMode<=8)&&(e.lineHeight=t.h-s+"px"),i=(n=o.borderBox).left+n.right+8,s=n.top+n.bottom+(o.settings.multiline?8:0),t.x!==r.x&&(e.left=t.x+"px",r.x=t.x),t.y!==r.y&&(e.top=t.y+"px",r.y=t.y),t.w!==r.w&&(e.width=t.w-i+"px",r.w=t.w),t.h!==r.h&&(e.height=t.h-s+"px",r.h=t.h),o._lastRepaintRect=r,o.fire("repaint",{},!1),o},renderHtml:function(){var t,e,n=this,i=n.settings;return t={id:n._id,hidefocus:"1"},w.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(e){t[e]=i[e]}),n.disabled()&&(t.disabled="disabled"),i.subtype&&(t.type=i.subtype),(e=Ce.create(i.multiline?"te
 xtarea":"input",t)).value=n.state.get("value"),e.className=n.classes.toString(),e.outerHTML},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var t=this;t.getEl().value=t.state.get("value"),t._super(),t.$el.on("change",function(e){t.state.set("value",e.target.value),t.fire("change",e)})},bindStates:function(){var t=this;return t.state.on("change:value",function(e){t.getEl().value!==e.value&&(t.getEl().value=e.value)}),t.state.on("change:disabled",function(e){t.getEl().disabled=e.value}),t._super()},remove:function(){this.$el.off(),this._super()}}),Rr=function(){return{Selector:Ue,Collection:$e,ReflowQueue:Qe,Control:st,Factory:b,KeyboardNavigation:lt,Container:ct,DragHelper:ft,Scrollable:vt,Panel:bt,M
 ovable:Se,Resizable:yt,FloatPanel:kt,Window:Vt,MessageBox:Yt,Tooltip:Dt,Widget:Wt,Progress:Ot,Notification:Bt,Layout:Xt,AbsoluteLayout:qt,Button:jt,ButtonGroup:Gt,Checkbox:Kt,ComboBox:Qt,ColorBox:en,PanelButton:tn,ColorButton:rn,ColorPicker:sn,Path:ln,ElementPath:un,FormItem:cn,Form:dn,FieldSet:fn,FilePicker:_i,FitLayout:Ci,FlexLayout:Ri,FlowLayout:Ei,FormatControls:er,GridLayout:tr,Iframe:nr,InfoBox:ir,Label:rr,Toolbar:or,MenuBar:sr,MenuButton:ar,MenuItem:cr,Throbber:Mt,Menu:lr,ListBox:ur,Radio:dr,ResizeHandle:fr,SelectBox:mr,Slider:br,Spacer:yr,SplitButton:xr,StackLayout:wr,TabPanel:_r,TextBox:Cr,DropZone:an,BrowseButton:Jt}},Er=function(n){n.ui?w.each(Rr(),function(e,t){n.ui[t]=e}):n.ui=Rr()};w.each(Rr(),function(e,t){b.add(t,e)}),Er(window.tinymce?window.tinymce:{}),o.add("modern",function(e){return er.setup(e),$t(e)})}();
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcetinymcejs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/tinymce.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/tinymce.js  2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/tinymce.js    2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,4 +1,4 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-// 4.7.11 (2018-04-11)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// 4.8.0 (2018-06-27)
</ins><span class="cx" style="display: block; padding: 0 10px"> (function () {
</span><span class="cx" style="display: block; padding: 0 10px"> (function () {
</span><span class="cx" style="display: block; padding: 0 10px">   'use strict';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9,15 +9,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       x[_i] = arguments[_i];
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var noarg = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return f();
-    };
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var compose = function (fa, fb) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var x = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -35,9 +27,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var identity = function (x) {
</span><span class="cx" style="display: block; padding: 0 10px">     return x;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var tripleEquals = function (a, b) {
-    return a === b;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var curry = function (f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var x = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 1; _i < arguments.length; _i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -58,46 +48,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return f.apply(null, all);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var not = function (f) {
-    return function () {
-      var x = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        x[_i] = arguments[_i];
-      }
-      return !f.apply(null, arguments);
-    };
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var die = function (msg) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       throw new Error(msg);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var apply = function (f) {
-    return f();
-  };
-  var call = function (f) {
-    f();
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var never = constant(false);
</span><span class="cx" style="display: block; padding: 0 10px">   var always = constant(true);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_68e81l6jfuw8kyc = {
-    noop: noop,
-    noarg: noarg,
-    compose: compose,
-    constant: constant,
-    identity: identity,
-    tripleEquals: tripleEquals,
-    curry: curry,
-    not: not,
-    die: die,
-    apply: apply,
-    call: call,
-    never: never,
-    always: always
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var never$1 = $_68e81l6jfuw8kyc.never;
-  var always$1 = $_68e81l6jfuw8kyc.always;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var never$1 = never;
+  var always$1 = always;
</ins><span class="cx" style="display: block; padding: 0 10px">   var none = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return NONE;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -105,14 +68,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var eq = function (o) {
</span><span class="cx" style="display: block; padding: 0 10px">       return o.isNone();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var call = function (thunk) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var call$$1 = function (thunk) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return thunk();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var id = function (n) {
</span><span class="cx" style="display: block; padding: 0 10px">       return n;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var noop = function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var noop$$1 = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var nul = function () {
+      return null;
+    };
+    var undef = function () {
+      return undefined;
+    };
</ins><span class="cx" style="display: block; padding: 0 10px">     var me = {
</span><span class="cx" style="display: block; padding: 0 10px">       fold: function (n, s) {
</span><span class="cx" style="display: block; padding: 0 10px">         return n();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,15 +90,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       isSome: never$1,
</span><span class="cx" style="display: block; padding: 0 10px">       isNone: always$1,
</span><span class="cx" style="display: block; padding: 0 10px">       getOr: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      getOrThunk: call,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getOrThunk: call$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       getOrDie: function (msg) {
</span><span class="cx" style="display: block; padding: 0 10px">         throw new Error(msg || 'error: getOrDie called on none.');
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getOrNull: nul,
+      getOrUndefined: undef,
</ins><span class="cx" style="display: block; padding: 0 10px">       or: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      orThunk: call,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      orThunk: call$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       map: none,
</span><span class="cx" style="display: block; padding: 0 10px">       ap: none,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each: noop,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each: noop$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       bind: none,
</span><span class="cx" style="display: block; padding: 0 10px">       flatten: none,
</span><span class="cx" style="display: block; padding: 0 10px">       exists: never$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -140,7 +111,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       toArray: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return [];
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      toString: $_68e81l6jfuw8kyc.constant('none()')
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      toString: constant('none()')
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     if (Object.freeze)
</span><span class="cx" style="display: block; padding: 0 10px">       Object.freeze(me);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -171,6 +142,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       getOr: constant_a,
</span><span class="cx" style="display: block; padding: 0 10px">       getOrThunk: constant_a,
</span><span class="cx" style="display: block; padding: 0 10px">       getOrDie: constant_a,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getOrNull: constant_a,
+      getOrUndefined: constant_a,
</ins><span class="cx" style="display: block; padding: 0 10px">       or: self,
</span><span class="cx" style="display: block; padding: 0 10px">       orThunk: self,
</span><span class="cx" style="display: block; padding: 0 10px">       map: map,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -230,17 +203,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return typeOf(value) === type;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_16i8k47jfuw8kyi = {
-    isString: isType('string'),
-    isObject: isType('object'),
-    isArray: isType('array'),
-    isNull: isType('null'),
-    isBoolean: isType('boolean'),
-    isUndefined: isType('undefined'),
-    isFunction: isType('function'),
-    isNumber: isType('number')
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isString = isType('string');
+  var isObject = isType('object');
+  var isArray = isType('array');
+  var isNull = isType('null');
+  var isBoolean = isType('boolean');
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isFunction = isType('function');
+  var isNumber = isType('number');
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var rawIndexOf = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     var pIndexOf = Array.prototype.indexOf;
</span><span class="cx" style="display: block; padding: 0 10px">     var fastIndex = function (xs, x) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -261,21 +232,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var exists = function (xs, pred) {
</span><span class="cx" style="display: block; padding: 0 10px">     return findIndex(xs, pred).isSome();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var range = function (num, f) {
-    var r = [];
-    for (var i = 0; i < num; i++) {
-      r.push(f(i));
-    }
-    return r;
-  };
-  var chunk = function (array, size) {
-    var r = [];
-    for (var i = 0; i < array.length; i += size) {
-      var s = array.slice(i, i + size);
-      r.push(s);
-    }
-    return r;
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var map = function (xs, f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var len = xs.length;
</span><span class="cx" style="display: block; padding: 0 10px">     var r = new Array(len);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -320,29 +278,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var groupBy = function (xs, f) {
-    if (xs.length === 0) {
-      return [];
-    } else {
-      var wasType = f(xs[0]);
-      var r = [];
-      var group = [];
-      for (var i = 0, len = xs.length; i < len; i++) {
-        var x = xs[i];
-        var type = f(x);
-        if (type !== wasType) {
-          r.push(group);
-          group = [];
-        }
-        wasType = type;
-        group.push(x);
-      }
-      if (group.length !== 0) {
-        r.push(group);
-      }
-      return r;
-    }
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var foldr = function (xs, f, acc) {
</span><span class="cx" style="display: block; padding: 0 10px">     eachr(xs, function (x) {
</span><span class="cx" style="display: block; padding: 0 10px">       acc = f(acc, x);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -404,11 +340,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return true;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var equal = function (a1, a2) {
-    return a1.length === a2.length && forall(a1, function (x, i) {
-      return x === a2[i];
-    });
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var slice = Array.prototype.slice;
</span><span class="cx" style="display: block; padding: 0 10px">   var reverse = function (xs) {
</span><span class="cx" style="display: block; padding: 0 10px">     var r = slice.call(xs, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -428,9 +360,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var pure = function (x) {
-    return [x];
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var sort = function (xs, comparator) {
</span><span class="cx" style="display: block; padding: 0 10px">     var copy = slice.call(xs, 0);
</span><span class="cx" style="display: block; padding: 0 10px">     copy.sort(comparator);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -442,43 +372,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var last = function (xs) {
</span><span class="cx" style="display: block; padding: 0 10px">     return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var from$1 = $_16i8k47jfuw8kyi.isFunction(Array.from) ? Array.from : function (x) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var from$1 = isFunction(Array.from) ? Array.from : function (x) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return slice.call(x);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9ek1bp4jfuw8kxg = {
-    map: map,
-    each: each,
-    eachr: eachr,
-    partition: partition,
-    filter: filter,
-    groupBy: groupBy,
-    indexOf: indexOf,
-    foldr: foldr,
-    foldl: foldl,
-    find: find,
-    findIndex: findIndex,
-    flatten: flatten,
-    bind: bind,
-    forall: forall,
-    exists: exists,
-    contains: contains,
-    equal: equal,
-    reverse: reverse,
-    chunk: chunk,
-    difference: difference,
-    mapToObject: mapToObject,
-    pure: pure,
-    sort: sort,
-    range: range,
-    head: head,
-    last: last,
-    from: from$1
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var global = typeof window !== 'undefined' ? window : Function('return this;')();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Global = typeof window !== 'undefined' ? window : Function('return this;')();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var path = function (parts, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var o = scope !== undefined && scope !== null ? scope : global;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var o = scope !== undefined && scope !== null ? scope : Global;
</ins><span class="cx" style="display: block; padding: 0 10px">     for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
</span><span class="cx" style="display: block; padding: 0 10px">       o = o[parts[i]];
</span><span class="cx" style="display: block; padding: 0 10px">     return o;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -487,30 +388,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var parts = p.split('.');
</span><span class="cx" style="display: block; padding: 0 10px">     return path(parts, scope);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var step = function (o, part) {
-    if (o[part] === undefined || o[part] === null)
-      o[part] = {};
-    return o[part];
-  };
-  var forge = function (parts, target) {
-    var o = target !== undefined ? target : global;
-    for (var i = 0; i < parts.length; ++i)
-      o = step(o, parts[i]);
-    return o;
-  };
-  var namespace = function (name, target) {
-    var parts = name.split('.');
-    return forge(parts, target);
-  };
-  var $_44d31jdjfuw8l1u = {
-    path: path,
-    resolve: resolve,
-    forge: forge,
-    namespace: namespace
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var unsafe = function (name, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_44d31jdjfuw8l1u.resolve(name, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return resolve(name, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getOrDie = function (name, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var actual = unsafe(name, scope);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -518,10 +398,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       throw name + ' not available on this browser';
</span><span class="cx" style="display: block; padding: 0 10px">     return actual;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3hdbe8cjfuw8l1e = { getOrDie: getOrDie };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6xhbl4cjjgwe7a3 = { getOrDie: getOrDie };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var url = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_3hdbe8cjfuw8l1e.getOrDie('URL');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6xhbl4cjjgwe7a3.getOrDie('URL');
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createObjectURL = function (blob) {
</span><span class="cx" style="display: block; padding: 0 10px">     return url().createObjectURL(blob);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -529,7 +409,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var revokeObjectURL = function (u) {
</span><span class="cx" style="display: block; padding: 0 10px">     url().revokeObjectURL(u);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_b6ehwsbjfuw8l1c = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_r9uyubjjgwe7a2 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     createObjectURL: createObjectURL,
</span><span class="cx" style="display: block; padding: 0 10px">     revokeObjectURL: revokeObjectURL
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -563,7 +443,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   gecko = !webkit && !ie11 && /Gecko/.test(userAgent);
</span><span class="cx" style="display: block; padding: 0 10px">   mac = userAgent.indexOf('Mac') !== -1;
</span><span class="cx" style="display: block; padding: 0 10px">   iDevice = /(iPad|iPhone)/.test(userAgent);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  fileApi = 'FormData' in window && 'FileReader' in window && 'URL' in window && !!$_b6ehwsbjfuw8l1c.createObjectURL;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  fileApi = 'FormData' in window && 'FileReader' in window && 'URL' in window && !!$_r9uyubjjgwe7a2.createObjectURL;
</ins><span class="cx" style="display: block; padding: 0 10px">   phone = matchMediaQuery('only screen and (max-device-width: 480px)') && (android || iDevice);
</span><span class="cx" style="display: block; padding: 0 10px">   tablet = matchMediaQuery('only screen and (min-width: 800px)') && (android || iDevice);
</span><span class="cx" style="display: block; padding: 0 10px">   windowsPhone = userAgent.indexOf('Windows Phone') !== -1;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -571,7 +451,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     webkit = false;
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   var contentEditable = !iDevice || fileApi || parseInt(userAgent.match(/AppleWebKit\/(\d*)/)[1], 10) >= 534;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9fhi43ajfuw8l13 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_bcvfv9ajjgwe79v = {
</ins><span class="cx" style="display: block; padding: 0 10px">     opera: opera,
</span><span class="cx" style="display: block; padding: 0 10px">     webkit: webkit,
</span><span class="cx" style="display: block; padding: 0 10px">     ie: ie,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -766,7 +646,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var promiseObj = window.Promise ? window.Promise : promise();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var requestAnimationFramePromise;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var requestAnimationFrame = function (callback, element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var requestAnimationFrame$$1 = function (callback, element) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var i, requestAnimationFrameFunc = window.requestAnimationFrame;
</span><span class="cx" style="display: block; padding: 0 10px">     var vendors = [
</span><span class="cx" style="display: block; padding: 0 10px">       'ms',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -816,7 +696,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return func;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2m8wq9hjfuw8l41 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9o1ijaijjgwe7dm = {
</ins><span class="cx" style="display: block; padding: 0 10px">     requestAnimationFrame: function (callback, element) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (requestAnimationFramePromise) {
</span><span class="cx" style="display: block; padding: 0 10px">         requestAnimationFramePromise.then(callback);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -826,7 +706,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (!element) {
</span><span class="cx" style="display: block; padding: 0 10px">           element = document.body;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        requestAnimationFrame(resolve, element);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        requestAnimationFrame$$1(resolve, element);
</ins><span class="cx" style="display: block; padding: 0 10px">       }).then(callback);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     setTimeout: wrappedSetTimeout,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -866,8 +746,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     webkitMovementY: 1,
</span><span class="cx" style="display: block; padding: 0 10px">     keyIdentifier: 1
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var hasIsDefaultPrevented = function (event) {
-    return event.isDefaultPrevented === returnTrue || event.isDefaultPrevented === returnFalse;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var hasIsDefaultPrevented = function (event$$1) {
+    return event$$1.isDefaultPrevented === returnTrue || event$$1.isDefaultPrevented === returnFalse;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var returnFalse = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -875,28 +755,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var returnTrue = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return true;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var addEvent = function (target, name, callback, capture) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var addEvent = function (target, name$$1, callback, capture) {
</ins><span class="cx" style="display: block; padding: 0 10px">     if (target.addEventListener) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      target.addEventListener(name, callback, capture || false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      target.addEventListener(name$$1, callback, capture || false);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else if (target.attachEvent) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      target.attachEvent('on' + name, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      target.attachEvent('on' + name$$1, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var removeEvent = function (target, name, callback, capture) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var removeEvent = function (target, name$$1, callback, capture) {
</ins><span class="cx" style="display: block; padding: 0 10px">     if (target.removeEventListener) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      target.removeEventListener(name, callback, capture || false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      target.removeEventListener(name$$1, callback, capture || false);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else if (target.detachEvent) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      target.detachEvent('on' + name, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      target.detachEvent('on' + name$$1, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getTargetFromShadowDom = function (event, defaultTarget) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getTargetFromShadowDom = function (event$$1, defaultTarget) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var path, target = defaultTarget;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    path = event.path;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    path = event$$1.path;
</ins><span class="cx" style="display: block; padding: 0 10px">     if (path && path.length > 0) {
</span><span class="cx" style="display: block; padding: 0 10px">       target = path[0];
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (event.composedPath) {
-      path = event.composedPath();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (event$$1.composedPath) {
+      path = event$$1.composedPath();
</ins><span class="cx" style="display: block; padding: 0 10px">       if (path && path.length > 0) {
</span><span class="cx" style="display: block; padding: 0 10px">         target = path[0];
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -904,28 +784,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return target;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fix = function (originalEvent, data) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var name;
-    var event = data || {};
-    for (name in originalEvent) {
-      if (!deprecated[name]) {
-        event[name] = originalEvent[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var name$$1;
+    var event$$1 = data || {};
+    for (name$$1 in originalEvent) {
+      if (!deprecated[name$$1]) {
+        event$$1[name$$1] = originalEvent[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!event.target) {
-      event.target = event.srcElement || document;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!event$$1.target) {
+      event$$1.target = event$$1.srcElement || document;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9fhi43ajfuw8l13.experimentalShadowDom) {
-      event.target = getTargetFromShadowDom(originalEvent, event.target);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_bcvfv9ajjgwe79v.experimentalShadowDom) {
+      event$$1.target = getTargetFromShadowDom(originalEvent, event$$1.target);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (originalEvent && mouseEventRe.test(originalEvent.type) && originalEvent.pageX === undefined && originalEvent.clientX !== undefined) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var eventDoc = event.target.ownerDocument || document;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var eventDoc = event$$1.target.ownerDocument || document;
</ins><span class="cx" style="display: block; padding: 0 10px">       var doc = eventDoc.documentElement;
</span><span class="cx" style="display: block; padding: 0 10px">       var body = eventDoc.body;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      event.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
-      event.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      event$$1.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
+      event$$1.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    event.preventDefault = function () {
-      event.isDefaultPrevented = returnTrue;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    event$$1.preventDefault = function () {
+      event$$1.isDefaultPrevented = returnTrue;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (originalEvent) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (originalEvent.preventDefault) {
</span><span class="cx" style="display: block; padding: 0 10px">           originalEvent.preventDefault();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -934,8 +814,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    event.stopPropagation = function () {
-      event.isPropagationStopped = returnTrue;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    event$$1.stopPropagation = function () {
+      event$$1.isPropagationStopped = returnTrue;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (originalEvent) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (originalEvent.stopPropagation) {
</span><span class="cx" style="display: block; padding: 0 10px">           originalEvent.stopPropagation();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -944,24 +824,24 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    event.stopImmediatePropagation = function () {
-      event.isImmediatePropagationStopped = returnTrue;
-      event.stopPropagation();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    event$$1.stopImmediatePropagation = function () {
+      event$$1.isImmediatePropagationStopped = returnTrue;
+      event$$1.stopPropagation();
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (hasIsDefaultPrevented(event) === false) {
-      event.isDefaultPrevented = returnFalse;
-      event.isPropagationStopped = returnFalse;
-      event.isImmediatePropagationStopped = returnFalse;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (hasIsDefaultPrevented(event$$1) === false) {
+      event$$1.isDefaultPrevented = returnFalse;
+      event$$1.isPropagationStopped = returnFalse;
+      event$$1.isImmediatePropagationStopped = returnFalse;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (typeof event.metaKey === 'undefined') {
-      event.metaKey = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (typeof event$$1.metaKey === 'undefined') {
+      event$$1.metaKey = false;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return event;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return event$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var bindOnReady = function (win, callback, eventUtils) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var doc = win.document, event = { type: 'ready' };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var doc = win.document, event$$1 = { type: 'ready' };
</ins><span class="cx" style="display: block; padding: 0 10px">     if (eventUtils.domLoaded) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      callback(event);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      callback(event$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     var isDocReady = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -970,7 +850,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var readyHandler = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!eventUtils.domLoaded) {
</span><span class="cx" style="display: block; padding: 0 10px">         eventUtils.domLoaded = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        callback(event);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        callback(event$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var waitForDomLoaded = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -983,12 +863,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       try {
</span><span class="cx" style="display: block; padding: 0 10px">         doc.documentElement.doScroll('left');
</span><span class="cx" style="display: block; padding: 0 10px">       } catch (ex) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_2m8wq9hjfuw8l41.setTimeout(tryScroll);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_9o1ijaijjgwe7dm.setTimeout(tryScroll);
</ins><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       readyHandler();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (doc.addEventListener && !($_9fhi43ajfuw8l13.ie && $_9fhi43ajfuw8l13.ie < 11)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (doc.addEventListener && !($_bcvfv9ajjgwe79v.ie && $_bcvfv9ajjgwe79v.ie < 11)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (isDocReady()) {
</span><span class="cx" style="display: block; padding: 0 10px">         readyHandler();
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1003,7 +883,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     addEvent(win, 'load', readyHandler);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var EventUtils = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">     var events = {}, count, expando, hasFocusIn, hasMouseEnterLeave, mouseEnterLeave;
</span><span class="cx" style="display: block; padding: 0 10px">     expando = eventExpandoPrefix + (+new Date()).toString(32);
</span><span class="cx" style="display: block; padding: 0 10px">     hasMouseEnterLeave = 'onmouseenter' in document.documentElement;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1013,8 +893,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       mouseleave: 'mouseout'
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     count = 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    self.domLoaded = false;
-    self.events = events;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    self$$1.domLoaded = false;
+    self$$1.events = events;
</ins><span class="cx" style="display: block; padding: 0 10px">     var executeHandlers = function (evt, id) {
</span><span class="cx" style="display: block; padding: 0 10px">       var callbackList, i, l, callback;
</span><span class="cx" style="display: block; padding: 0 10px">       var container = events[id];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1031,8 +911,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    self.bind = function (target, names, callback, scope) {
-      var id, callbackList, i, name, fakeName, nativeHandler, capture;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    self$$1.bind = function (target, names, callback, scope) {
+      var id, callbackList, i, name$$1, fakeName, nativeHandler, capture;
</ins><span class="cx" style="display: block; padding: 0 10px">       var win = window;
</span><span class="cx" style="display: block; padding: 0 10px">       var defaultNativeHandler = function (evt) {
</span><span class="cx" style="display: block; padding: 0 10px">         executeHandlers(fix(evt || win.event), id);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1051,18 +931,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">       names = names.split(' ');
</span><span class="cx" style="display: block; padding: 0 10px">       i = names.length;
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        name = names[i];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        name$$1 = names[i];
</ins><span class="cx" style="display: block; padding: 0 10px">         nativeHandler = defaultNativeHandler;
</span><span class="cx" style="display: block; padding: 0 10px">         fakeName = capture = false;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (name === 'DOMContentLoaded') {
-          name = 'ready';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (name$$1 === 'DOMContentLoaded') {
+          name$$1 = 'ready';
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self.domLoaded && name === 'ready' && target.readyState === 'complete') {
-          callback.call(scope, fix({ type: name }));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1.domLoaded && name$$1 === 'ready' && target.readyState === 'complete') {
+          callback.call(scope, fix({ type: name$$1 }));
</ins><span class="cx" style="display: block; padding: 0 10px">           continue;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (!hasMouseEnterLeave) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          fakeName = mouseEnterLeave[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          fakeName = mouseEnterLeave[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">           if (fakeName) {
</span><span class="cx" style="display: block; padding: 0 10px">             nativeHandler = function (evt) {
</span><span class="cx" style="display: block; padding: 0 10px">               var current, related;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1084,9 +964,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">             };
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!hasFocusIn && (name === 'focusin' || name === 'focusout')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!hasFocusIn && (name$$1 === 'focusin' || name$$1 === 'focusout')) {
</ins><span class="cx" style="display: block; padding: 0 10px">           capture = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          fakeName = name === 'focusin' ? 'focus' : 'blur';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          fakeName = name$$1 === 'focusin' ? 'focus' : 'blur';
</ins><span class="cx" style="display: block; padding: 0 10px">           nativeHandler = function (evt) {
</span><span class="cx" style="display: block; padding: 0 10px">             evt = fix(evt || win.event);
</span><span class="cx" style="display: block; padding: 0 10px">             evt.type = evt.type === 'focus' ? 'focusin' : 'focusout';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1093,9 +973,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">             executeHandlers(evt, id);
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        callbackList = events[id][name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        callbackList = events[id][name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!callbackList) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          events[id][name] = callbackList = [{
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          events[id][name$$1] = callbackList = [{
</ins><span class="cx" style="display: block; padding: 0 10px">               func: callback,
</span><span class="cx" style="display: block; padding: 0 10px">               scope: scope
</span><span class="cx" style="display: block; padding: 0 10px">             }];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1102,14 +982,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">           callbackList.fakeName = fakeName;
</span><span class="cx" style="display: block; padding: 0 10px">           callbackList.capture = capture;
</span><span class="cx" style="display: block; padding: 0 10px">           callbackList.nativeHandler = nativeHandler;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (name === 'ready') {
-            bindOnReady(target, nativeHandler, self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (name$$1 === 'ready') {
+            bindOnReady(target, nativeHandler, self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            addEvent(target, fakeName || name, nativeHandler, capture);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            addEvent(target, fakeName || name$$1, nativeHandler, capture);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (name === 'ready' && self.domLoaded) {
-            callback({ type: name });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (name$$1 === 'ready' && self$$1.domLoaded) {
+            callback({ type: name$$1 });
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             callbackList.push({
</span><span class="cx" style="display: block; padding: 0 10px">               func: callback,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1121,10 +1001,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       target = callbackList = 0;
</span><span class="cx" style="display: block; padding: 0 10px">       return callback;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    self.unbind = function (target, names, callback) {
-      var id, callbackList, i, ci, name, eventMap;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    self$$1.unbind = function (target, names, callback) {
+      var id, callbackList, i, ci, name$$1, eventMap;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!target || target.nodeType === 3 || target.nodeType === 8) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       id = target[expando];
</span><span class="cx" style="display: block; padding: 0 10px">       if (id) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1133,8 +1013,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">           names = names.split(' ');
</span><span class="cx" style="display: block; padding: 0 10px">           i = names.length;
</span><span class="cx" style="display: block; padding: 0 10px">           while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            name = names[i];
-            callbackList = eventMap[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            name$$1 = names[i];
+            callbackList = eventMap[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">             if (callbackList) {
</span><span class="cx" style="display: block; padding: 0 10px">               if (callback) {
</span><span class="cx" style="display: block; padding: 0 10px">                 ci = callbackList.length;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1146,25 +1026,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">                     callbackList.nativeHandler = nativeHandler;
</span><span class="cx" style="display: block; padding: 0 10px">                     callbackList.fakeName = fakeName;
</span><span class="cx" style="display: block; padding: 0 10px">                     callbackList.capture = capture;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                    eventMap[name] = callbackList;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                    eventMap[name$$1] = callbackList;
</ins><span class="cx" style="display: block; padding: 0 10px">                   }
</span><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">               if (!callback || callbackList.length === 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                delete eventMap[name];
-                removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                delete eventMap[name$$1];
+                removeEvent(target, callbackList.fakeName || name$$1, callbackList.nativeHandler, callbackList.capture);
</ins><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          for (name in eventMap) {
-            callbackList = eventMap[name];
-            removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          for (name$$1 in eventMap) {
+            callbackList = eventMap[name$$1];
+            removeEvent(target, callbackList.fakeName || name$$1, callbackList.nativeHandler, callbackList.capture);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           eventMap = {};
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        for (name in eventMap) {
-          return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        for (name$$1 in eventMap) {
+          return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         delete events[id];
</span><span class="cx" style="display: block; padding: 0 10px">         try {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1173,15 +1053,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">           target[expando] = null;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    self.fire = function (target, name, args) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    self$$1.fire = function (target, name$$1, args) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var id;
</span><span class="cx" style="display: block; padding: 0 10px">       if (!target || target.nodeType === 3 || target.nodeType === 8) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       args = fix(null, args);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      args.type = name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      args.type = name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       args.target = target;
</span><span class="cx" style="display: block; padding: 0 10px">       do {
</span><span class="cx" style="display: block; padding: 0 10px">         id = target[expando];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1190,13 +1070,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow;
</span><span class="cx" style="display: block; padding: 0 10px">       } while (target && !args.isPropagationStopped());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    self.clean = function (target) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    self$$1.clean = function (target) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var i, children;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var unbind = self.unbind;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var unbind = self$$1.unbind;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!target || target.nodeType === 3 || target.nodeType === 8) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (target[expando]) {
</span><span class="cx" style="display: block; padding: 0 10px">         unbind(target);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1215,12 +1095,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    self.destroy = function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    self$$1.destroy = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">       events = {};
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    self.cancel = function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    self$$1.cancel = function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">         e.stopImmediatePropagation();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1432,14 +1312,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   function createInputPseudo(type) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (elem) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var name = elem.nodeName.toLowerCase();
-      return name === 'input' && elem.type === type;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var name$$1 = elem.nodeName.toLowerCase();
+      return name$$1 === 'input' && elem.type === type;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   function createButtonPseudo(type) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (elem) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var name = elem.nodeName.toLowerCase();
-      return (name === 'input' || name === 'button') && elem.type === type;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var name$$1 = elem.nodeName.toLowerCase();
+      return (name$$1 === 'input' || name$$1 === 'button') && elem.type === type;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   function createPositionalPseudo(fn) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1464,7 +1344,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return documentElement ? documentElement.nodeName !== 'HTML' : false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   setDocument = Sizzle.setDocument = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var hasCompare, doc = node ? node.ownerDocument || node : preferredDoc, parent = doc.defaultView;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var hasCompare, doc = node ? node.ownerDocument || node : preferredDoc, parent$$1 = doc.defaultView;
</ins><span class="cx" style="display: block; padding: 0 10px">     function getTop(win) {
</span><span class="cx" style="display: block; padding: 0 10px">       try {
</span><span class="cx" style="display: block; padding: 0 10px">         return win.top;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1478,13 +1358,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     document$1 = doc;
</span><span class="cx" style="display: block; padding: 0 10px">     docElem = doc.documentElement;
</span><span class="cx" style="display: block; padding: 0 10px">     documentIsHTML = !isXML(doc);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (parent && parent !== getTop(parent)) {
-      if (parent.addEventListener) {
-        parent.addEventListener('unload', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (parent$$1 && parent$$1 !== getTop(parent$$1)) {
+      if (parent$$1.addEventListener) {
+        parent$$1.addEventListener('unload', function () {
</ins><span class="cx" style="display: block; padding: 0 10px">           setDocument();
</span><span class="cx" style="display: block; padding: 0 10px">         }, false);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if (parent.attachEvent) {
-        parent.attachEvent('onunload', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (parent$$1.attachEvent) {
+        parent$$1.attachEvent('onunload', function () {
</ins><span class="cx" style="display: block; padding: 0 10px">           setDocument();
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1616,12 +1496,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return contains$1(context, elem);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  Sizzle.attr = function (elem, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  Sizzle.attr = function (elem, name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">     if ((elem.ownerDocument || elem) !== document$1) {
</span><span class="cx" style="display: block; padding: 0 10px">       setDocument(elem);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var fn = Expr.attrHandle[name.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;
-    return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var fn = Expr.attrHandle[name$$1.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name$$1.toLowerCase()) ? fn(elem, name$$1, !documentIsHTML) : undefined;
+    return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name$$1) : (val = elem.getAttributeNode(name$$1)) && val.specified ? val.value : null;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   Sizzle.error = function (msg) {
</span><span class="cx" style="display: block; padding: 0 10px">     throw new Error('Syntax error, unrecognized expression: ' + msg);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1732,9 +1612,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">           return pattern.test(typeof elem.className === 'string' && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute('class') || '');
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      ATTR: function (name, operator, check) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      ATTR: function (name$$1, operator, check) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return function (elem) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var result = Sizzle.attr(elem, name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var result = Sizzle.attr(elem, name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (result == null) {
</span><span class="cx" style="display: block; padding: 0 10px">             return operator === '!=';
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1750,13 +1630,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return first === 1 && last === 0 ? function (elem) {
</span><span class="cx" style="display: block; padding: 0 10px">           return !!elem.parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">         } : function (elem, context, xml) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var cache, outerCache, node, diff, nodeIndex, start, dir = simple !== forward ? 'nextSibling' : 'previousSibling', parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType;
-          if (parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var cache, outerCache, node, diff, nodeIndex, start, dir = simple !== forward ? 'nextSibling' : 'previousSibling', parent$$1 = elem.parentNode, name$$1 = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType;
+          if (parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (simple) {
</span><span class="cx" style="display: block; padding: 0 10px">               while (dir) {
</span><span class="cx" style="display: block; padding: 0 10px">                 node = elem;
</span><span class="cx" style="display: block; padding: 0 10px">                 while (node = node[dir]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                  if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                  if (ofType ? node.nodeName.toLowerCase() === name$$1 : node.nodeType === 1) {
</ins><span class="cx" style="display: block; padding: 0 10px">                     return false;
</span><span class="cx" style="display: block; padding: 0 10px">                   }
</span><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1764,13 +1644,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">               return true;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            start = [forward ? parent.firstChild : parent.lastChild];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            start = [forward ? parent$$1.firstChild : parent$$1.lastChild];
</ins><span class="cx" style="display: block; padding: 0 10px">             if (forward && useCache) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              outerCache = parent[expando] || (parent[expando] = {});
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              outerCache = parent$$1[expando] || (parent$$1[expando] = {});
</ins><span class="cx" style="display: block; padding: 0 10px">               cache = outerCache[type] || [];
</span><span class="cx" style="display: block; padding: 0 10px">               nodeIndex = cache[0] === dirruns && cache[1];
</span><span class="cx" style="display: block; padding: 0 10px">               diff = cache[0] === dirruns && cache[2];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              node = nodeIndex && parent.childNodes[nodeIndex];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              node = nodeIndex && parent$$1.childNodes[nodeIndex];
</ins><span class="cx" style="display: block; padding: 0 10px">               while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {
</span><span class="cx" style="display: block; padding: 0 10px">                 if (node.nodeType === 1 && ++diff && node === elem) {
</span><span class="cx" style="display: block; padding: 0 10px">                   outerCache[type] = [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1785,7 +1665,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">               diff = cache[1];
</span><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><span class="cx" style="display: block; padding: 0 10px">               while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                if ((ofType ? node.nodeName.toLowerCase() === name$$1 : node.nodeType === 1) && ++diff) {
</ins><span class="cx" style="display: block; padding: 0 10px">                   if (useCache) {
</span><span class="cx" style="display: block; padding: 0 10px">                     (node[expando] || (node[expando] = {}))[type] = [
</span><span class="cx" style="display: block; padding: 0 10px">                       dirruns,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1915,8 +1795,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return rinputs.test(elem.nodeName);
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       button: function (elem) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var name = elem.nodeName.toLowerCase();
-        return name === 'input' && elem.type === 'button' || name === 'button';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var name$$1 = elem.nodeName.toLowerCase();
+        return name$$1 === 'input' && elem.type === 'button' || name$$1 === 'button';
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       text: function (elem) {
</span><span class="cx" style="display: block; padding: 0 10px">         var attr;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1925,36 +1805,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">       first: createPositionalPseudo(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return [0];
</span><span class="cx" style="display: block; padding: 0 10px">       }),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      last: createPositionalPseudo(function (matchIndexes, length) {
-        return [length - 1];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      last: createPositionalPseudo(function (matchIndexes, length$$1) {
+        return [length$$1 - 1];
</ins><span class="cx" style="display: block; padding: 0 10px">       }),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      eq: createPositionalPseudo(function (matchIndexes, length, argument) {
-        return [argument < 0 ? argument + length : argument];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      eq: createPositionalPseudo(function (matchIndexes, length$$1, argument) {
+        return [argument < 0 ? argument + length$$1 : argument];
</ins><span class="cx" style="display: block; padding: 0 10px">       }),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      even: createPositionalPseudo(function (matchIndexes, length) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      even: createPositionalPseudo(function (matchIndexes, length$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var i = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        for (; i < length; i += 2) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        for (; i < length$$1; i += 2) {
</ins><span class="cx" style="display: block; padding: 0 10px">           matchIndexes.push(i);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return matchIndexes;
</span><span class="cx" style="display: block; padding: 0 10px">       }),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      odd: createPositionalPseudo(function (matchIndexes, length) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      odd: createPositionalPseudo(function (matchIndexes, length$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var i = 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        for (; i < length; i += 2) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        for (; i < length$$1; i += 2) {
</ins><span class="cx" style="display: block; padding: 0 10px">           matchIndexes.push(i);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return matchIndexes;
</span><span class="cx" style="display: block; padding: 0 10px">       }),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      lt: createPositionalPseudo(function (matchIndexes, length, argument) {
-        var i = argument < 0 ? argument + length : argument;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      lt: createPositionalPseudo(function (matchIndexes, length$$1, argument) {
+        var i = argument < 0 ? argument + length$$1 : argument;
</ins><span class="cx" style="display: block; padding: 0 10px">         for (; --i >= 0;) {
</span><span class="cx" style="display: block; padding: 0 10px">           matchIndexes.push(i);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return matchIndexes;
</span><span class="cx" style="display: block; padding: 0 10px">       }),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      gt: createPositionalPseudo(function (matchIndexes, length, argument) {
-        var i = argument < 0 ? argument + length : argument;
-        for (; ++i < length;) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      gt: createPositionalPseudo(function (matchIndexes, length$$1, argument) {
+        var i = argument < 0 ? argument + length$$1 : argument;
+        for (; ++i < length$$1;) {
</ins><span class="cx" style="display: block; padding: 0 10px">           matchIndexes.push(i);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return matchIndexes;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2295,10 +2175,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   setDocument();
</span><span class="cx" style="display: block; padding: 0 10px">   support.sortDetached = true;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isArray = Array.isArray;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isArray$1 = Array.isArray;
</ins><span class="cx" style="display: block; padding: 0 10px">   var toArray = function (obj) {
</span><span class="cx" style="display: block; padding: 0 10px">     var array = obj, i, l;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!isArray(obj)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!isArray$1(obj)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       array = [];
</span><span class="cx" style="display: block; padding: 0 10px">       for (i = 0, l = obj.length; i < l; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">         array[i] = obj[i];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2385,8 +2265,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var last$1 = function (collection) {
</span><span class="cx" style="display: block; padding: 0 10px">     return collection[collection.length - 1];
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_djuh8tljfuw8l74 = {
-    isArray: isArray,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6t4axrmjjgwe7jf = {
+    isArray: isArray$1,
</ins><span class="cx" style="display: block; padding: 0 10px">     toArray: toArray,
</span><span class="cx" style="display: block; padding: 0 10px">     each: each$1,
</span><span class="cx" style="display: block; padding: 0 10px">     map: map$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2406,7 +2286,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (!type) {
</span><span class="cx" style="display: block; padding: 0 10px">       return obj !== undefined;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (type === 'array' && $_djuh8tljfuw8l74.isArray(obj)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (type === 'array' && $_6t4axrmjjgwe7jf.isArray(obj)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return typeof obj === type;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2429,11 +2309,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return Object.prototype.hasOwnProperty.call(obj, prop);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var create = function (s, p, root) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">     var sp, ns, cn, scn, c, de = 0;
</span><span class="cx" style="display: block; padding: 0 10px">     s = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);
</span><span class="cx" style="display: block; padding: 0 10px">     cn = s[3].match(/(^|\.)(\w+)$/i)[2];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    ns = self.createNS(s[3].replace(/\.\w+$/, ''), root);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    ns = self$$1.createNS(s[3].replace(/\.\w+$/, ''), root);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (ns[cn]) {
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2450,9 +2330,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       de = 1;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     ns[cn] = p[cn];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    self.extend(ns[cn].prototype, p);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    self$$1.extend(ns[cn].prototype, p);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (s[5]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      sp = self.resolve(s[5]).prototype;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      sp = self$$1.resolve(s[5]).prototype;
</ins><span class="cx" style="display: block; padding: 0 10px">       scn = s[5].match(/\.(\w+)$/i)[1];
</span><span class="cx" style="display: block; padding: 0 10px">       c = ns[cn];
</span><span class="cx" style="display: block; padding: 0 10px">       if (de) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2466,10 +2346,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       ns[cn].prototype[cn] = ns[cn];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.each(sp, function (f, n) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.each(sp, function (f, n) {
</ins><span class="cx" style="display: block; padding: 0 10px">         ns[cn].prototype[n] = sp[n];
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.each(p, function (f, n) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.each(p, function (f, n) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (sp[n]) {
</span><span class="cx" style="display: block; padding: 0 10px">           ns[cn].prototype[n] = function () {
</span><span class="cx" style="display: block; padding: 0 10px">             this.parent = sp[n];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2482,7 +2362,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    self.each(p.static, function (f, n) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    self$$1.each(p.static, function (f, n) {
</ins><span class="cx" style="display: block; padding: 0 10px">       ns[cn][n] = f;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2491,16 +2371,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 2; _i < arguments.length; _i++) {
</span><span class="cx" style="display: block; padding: 0 10px">       x[_i - 2] = arguments[_i];
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var i, l, name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var i, l, name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     var args = arguments;
</span><span class="cx" style="display: block; padding: 0 10px">     var value;
</span><span class="cx" style="display: block; padding: 0 10px">     for (i = 1, l = args.length; i < l; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">       ext = args[i];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (name in ext) {
-        if (ext.hasOwnProperty(name)) {
-          value = ext[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (name$$1 in ext) {
+        if (ext.hasOwnProperty(name$$1)) {
+          value = ext[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">           if (value !== undefined) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            obj[name] = value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            obj[name$$1] = value;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2513,7 +2393,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (n) {
</span><span class="cx" style="display: block; padding: 0 10px">         o = o[n];
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_djuh8tljfuw8l74.each(o, function (o, i) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6t4axrmjjgwe7jf.each(o, function (o, i) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (f.call(s, o, i, n) === false) {
</span><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2550,25 +2430,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (!s || is(s, 'array')) {
</span><span class="cx" style="display: block; padding: 0 10px">       return s;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_djuh8tljfuw8l74.map(s.split(d || ','), trim);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6t4axrmjjgwe7jf.map(s.split(d || ','), trim);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var _addCacheSuffix = function (url) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var cacheSuffix = $_9fhi43ajfuw8l13.cacheSuffix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var cacheSuffix = $_bcvfv9ajjgwe79v.cacheSuffix;
</ins><span class="cx" style="display: block; padding: 0 10px">     if (cacheSuffix) {
</span><span class="cx" style="display: block; padding: 0 10px">       url += (url.indexOf('?') === -1 ? '?' : '&') + cacheSuffix;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return url;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_52qop8kjfuw8l6v = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6cwiepljjgwe7j4 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     trim: trim,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    isArray: $_djuh8tljfuw8l74.isArray,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    isArray: $_6t4axrmjjgwe7jf.isArray,
</ins><span class="cx" style="display: block; padding: 0 10px">     is: is,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    toArray: $_djuh8tljfuw8l74.toArray,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    toArray: $_6t4axrmjjgwe7jf.toArray,
</ins><span class="cx" style="display: block; padding: 0 10px">     makeMap: makeMap,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each: $_djuh8tljfuw8l74.each,
-    map: $_djuh8tljfuw8l74.map,
-    grep: $_djuh8tljfuw8l74.filter,
-    inArray: $_djuh8tljfuw8l74.indexOf,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each: $_6t4axrmjjgwe7jf.each,
+    map: $_6t4axrmjjgwe7jf.map,
+    grep: $_6t4axrmjjgwe7jf.filter,
+    inArray: $_6t4axrmjjgwe7jf.indexOf,
</ins><span class="cx" style="display: block; padding: 0 10px">     hasOwn: hasOwnProperty,
</span><span class="cx" style="display: block; padding: 0 10px">     extend: extend,
</span><span class="cx" style="display: block; padding: 0 10px">     create: create,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2583,12 +2463,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var push$2 = Array.prototype.push;
</span><span class="cx" style="display: block; padding: 0 10px">   var slice$2 = Array.prototype.slice;
</span><span class="cx" style="display: block; padding: 0 10px">   var rquickExpr$1 = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var Event = EventUtils.Event;
-  var skipUniques = $_52qop8kjfuw8l6v.makeMap('children,contents,next,prev');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Event$$1 = EventUtils.Event;
+  var skipUniques = $_6cwiepljjgwe7j4.makeMap('children,contents,next,prev');
</ins><span class="cx" style="display: block; padding: 0 10px">   var isDefined = function (obj) {
</span><span class="cx" style="display: block; padding: 0 10px">     return typeof obj !== 'undefined';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isString = function (obj) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isString$1 = function (obj) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return typeof obj === 'string';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isWindow = function (obj) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2607,7 +2487,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var domManipulate = function (targetNodes, sourceItem, callback, reverse) {
</span><span class="cx" style="display: block; padding: 0 10px">     var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (isString(sourceItem)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isString$1(sourceItem)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       sourceItem = createFragment(sourceItem, getElementDocument(targetNodes[0]));
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (sourceItem.length && !sourceItem.nodeType) {
</span><span class="cx" style="display: block; padding: 0 10px">       sourceItem = DomQuery.makeArray(sourceItem);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2637,20 +2517,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var lastParent, newWrapper;
</span><span class="cx" style="display: block; padding: 0 10px">     wrapper = DomQuery(wrapper)[0];
</span><span class="cx" style="display: block; padding: 0 10px">     elements.each(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (!all || lastParent !== self.parentNode) {
-        lastParent = self.parentNode;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (!all || lastParent !== self$$1.parentNode) {
+        lastParent = self$$1.parentNode;
</ins><span class="cx" style="display: block; padding: 0 10px">         newWrapper = wrapper.cloneNode(false);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.parentNode.insertBefore(newWrapper, self);
-        newWrapper.appendChild(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.parentNode.insertBefore(newWrapper, self$$1);
+        newWrapper.appendChild(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        newWrapper.appendChild(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        newWrapper.appendChild(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return elements;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var numericCssMap = $_52qop8kjfuw8l6v.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' ');
-  var booleanMap = $_52qop8kjfuw8l6v.makeMap('checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected', ' ');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var numericCssMap = $_6cwiepljjgwe7j4.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' ');
+  var booleanMap = $_6cwiepljjgwe7j4.makeMap('checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected', ' ');
</ins><span class="cx" style="display: block; padding: 0 10px">   var propFix = {
</span><span class="cx" style="display: block; padding: 0 10px">     for: 'htmlFor',
</span><span class="cx" style="display: block; padding: 0 10px">     class: 'className',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2680,10 +2560,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return str === null || str === undefined ? '' : ('' + str).replace(whiteSpaceRegExp$1, '');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var each$2 = function (obj, callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var length, key, i, value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var length$$1, key, i, value;
</ins><span class="cx" style="display: block; padding: 0 10px">     if (obj) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      length = obj.length;
-      if (length === undefined) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      length$$1 = obj.length;
+      if (length$$1 === undefined) {
</ins><span class="cx" style="display: block; padding: 0 10px">         for (key in obj) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (obj.hasOwnProperty(key)) {
</span><span class="cx" style="display: block; padding: 0 10px">             value = obj[key];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2693,7 +2573,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        for (i = 0; i < length; i++) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        for (i = 0; i < length$$1; i++) {
</ins><span class="cx" style="display: block; padding: 0 10px">           value = obj[i];
</span><span class="cx" style="display: block; padding: 0 10px">           if (callback.call(value, i, value) === false) {
</span><span class="cx" style="display: block; padding: 0 10px">             break;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2727,26 +2607,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">     context: null,
</span><span class="cx" style="display: block; padding: 0 10px">     length: 0,
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (selector, context) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var match, node;
</span><span class="cx" style="display: block; padding: 0 10px">       if (!selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (selector.nodeType) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.context = self[0] = selector;
-        self.length = 1;
-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.context = self$$1[0] = selector;
+        self$$1.length = 1;
+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (context && context.nodeType) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.context = context;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.context = context;
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         if (context) {
</span><span class="cx" style="display: block; padding: 0 10px">           return DomQuery(selector).attr(context);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.context = context = document;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.context = context = document;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isString(selector)) {
-        self.selector = selector;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isString$1(selector)) {
+        self$$1.selector = selector;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (selector.charAt(0) === '<' && selector.charAt(selector.length - 1) === '>' && selector.length >= 3) {
</span><span class="cx" style="display: block; padding: 0 10px">           match = [
</span><span class="cx" style="display: block; padding: 0 10px">             null,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2760,19 +2640,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">           if (match[1]) {
</span><span class="cx" style="display: block; padding: 0 10px">             node = createFragment(selector, getElementDocument(context)).firstChild;
</span><span class="cx" style="display: block; padding: 0 10px">             while (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              push$2.call(self, node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              push$2.call(self$$1, node);
</ins><span class="cx" style="display: block; padding: 0 10px">               node = node.nextSibling;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             node = getElementDocument(context).getElementById(match[2]);
</span><span class="cx" style="display: block; padding: 0 10px">             if (!node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             if (node.id !== match[2]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              return self.find(selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              return self$$1.find(selector);
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.length = 1;
-            self[0] = node;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.length = 1;
+            self$$1[0] = node;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           return DomQuery(context).find(selector);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2780,61 +2660,61 @@
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         this.add(selector, false);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     toArray: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_52qop8kjfuw8l6v.toArray(this);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_6cwiepljjgwe7j4.toArray(this);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     add: function (items, sort) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var nodes, i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isString(items)) {
-        return self.add(DomQuery(items));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isString$1(items)) {
+        return self$$1.add(DomQuery(items));
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (sort !== false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        nodes = DomQuery.unique(self.toArray().concat(DomQuery.makeArray(items)));
-        self.length = nodes.length;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        nodes = DomQuery.unique(self$$1.toArray().concat(DomQuery.makeArray(items)));
+        self$$1.length = nodes.length;
</ins><span class="cx" style="display: block; padding: 0 10px">         for (i = 0; i < nodes.length; i++) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self[i] = nodes[i];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1[i] = nodes[i];
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        push$2.apply(self, DomQuery.makeArray(items));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        push$2.apply(self$$1, DomQuery.makeArray(items));
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    attr: function (name, value) {
-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    attr: function (name$$1, value) {
+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var hook;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (typeof name === 'object') {
-        each$2(name, function (name, value) {
-          self.attr(name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (typeof name$$1 === 'object') {
+        each$2(name$$1, function (name$$1, value) {
+          self$$1.attr(name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (isDefined(value)) {
</span><span class="cx" style="display: block; padding: 0 10px">         this.each(function () {
</span><span class="cx" style="display: block; padding: 0 10px">           var hook;
</span><span class="cx" style="display: block; padding: 0 10px">           if (this.nodeType === 1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            hook = attrHooks[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            hook = attrHooks[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">             if (hook && hook.set) {
</span><span class="cx" style="display: block; padding: 0 10px">               hook.set(this, value);
</span><span class="cx" style="display: block; padding: 0 10px">               return;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             if (value === null) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              this.removeAttribute(name, 2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              this.removeAttribute(name$$1, 2);
</ins><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              this.setAttribute(name, value, 2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              this.setAttribute(name$$1, value, 2);
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self[0] && self[0].nodeType === 1) {
-          hook = attrHooks[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1[0] && self$$1[0].nodeType === 1) {
+          hook = attrHooks[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">           if (hook && hook.get) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return hook.get(self[0], name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return hook.get(self$$1[0], name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (booleanMap[name]) {
-            return self.prop(name) ? name : undefined;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (booleanMap[name$$1]) {
+            return self$$1.prop(name$$1) ? name$$1 : undefined;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          value = self[0].getAttribute(name, 2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          value = self$$1[0].getAttribute(name$$1, 2);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (value === null) {
</span><span class="cx" style="display: block; padding: 0 10px">             value = undefined;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2841,101 +2721,101 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return value;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    removeAttr: function (name) {
-      return this.attr(name, null);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    removeAttr: function (name$$1) {
+      return this.attr(name$$1, null);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    prop: function (name, value) {
-      var self = this;
-      name = propFix[name] || name;
-      if (typeof name === 'object') {
-        each$2(name, function (name, value) {
-          self.prop(name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    prop: function (name$$1, value) {
+      var self$$1 = this;
+      name$$1 = propFix[name$$1] || name$$1;
+      if (typeof name$$1 === 'object') {
+        each$2(name$$1, function (name$$1, value) {
+          self$$1.prop(name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (isDefined(value)) {
</span><span class="cx" style="display: block; padding: 0 10px">         this.each(function () {
</span><span class="cx" style="display: block; padding: 0 10px">           if (this.nodeType === 1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            this[name] = value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            this[name$$1] = value;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self[0] && self[0].nodeType && name in self[0]) {
-          return self[0][name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1[0] && self$$1[0].nodeType && name$$1 in self$$1[0]) {
+          return self$$1[0][name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return value;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    css: function (name, value) {
-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    css: function (name$$1, value) {
+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var elm, hook;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var camel = function (name) {
-        return name.replace(/-(\D)/g, function (a, b) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var camel = function (name$$1) {
+        return name$$1.replace(/-(\D)/g, function (a, b) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return b.toUpperCase();
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var dashed = function (name) {
-        return name.replace(/[A-Z]/g, function (a) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var dashed = function (name$$1) {
+        return name$$1.replace(/[A-Z]/g, function (a) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return '-' + a;
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (typeof name === 'object') {
-        each$2(name, function (name, value) {
-          self.css(name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (typeof name$$1 === 'object') {
+        each$2(name$$1, function (name$$1, value) {
+          self$$1.css(name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         if (isDefined(value)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          name = camel(name);
-          if (typeof value === 'number' && !numericCssMap[name]) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          name$$1 = camel(name$$1);
+          if (typeof value === 'number' && !numericCssMap[name$$1]) {
</ins><span class="cx" style="display: block; padding: 0 10px">             value = value.toString() + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.each(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.each(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">             var style = this.style;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            hook = cssHooks[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            hook = cssHooks[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">             if (hook && hook.set) {
</span><span class="cx" style="display: block; padding: 0 10px">               hook.set(this, value);
</span><span class="cx" style="display: block; padding: 0 10px">               return;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             try {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              this.style[cssFix[name] || name] = value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              this.style[cssFix[name$$1] || name$$1] = value;
</ins><span class="cx" style="display: block; padding: 0 10px">             } catch (ex) {
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             if (value === null || value === '') {
</span><span class="cx" style="display: block; padding: 0 10px">               if (style.removeProperty) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                style.removeProperty(dashed(name));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                style.removeProperty(dashed(name$$1));
</ins><span class="cx" style="display: block; padding: 0 10px">               } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                style.removeAttribute(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                style.removeAttribute(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          elm = self[0];
-          hook = cssHooks[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          elm = self$$1[0];
+          hook = cssHooks[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">           if (hook && hook.get) {
</span><span class="cx" style="display: block; padding: 0 10px">             return hook.get(elm);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           if (elm.ownerDocument.defaultView) {
</span><span class="cx" style="display: block; padding: 0 10px">             try {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              return elm.ownerDocument.defaultView.getComputedStyle(elm, null).getPropertyValue(dashed(name));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              return elm.ownerDocument.defaultView.getComputedStyle(elm, null).getPropertyValue(dashed(name$$1));
</ins><span class="cx" style="display: block; padding: 0 10px">             } catch (ex) {
</span><span class="cx" style="display: block; padding: 0 10px">               return undefined;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           } else if (elm.currentStyle) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return elm.currentStyle[camel(name)];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return elm.currentStyle[camel(name$$1)];
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             return '';
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var node, i = this.length;
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        node = self[i];
-        Event.clean(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        node = self$$1[i];
+        Event$$1.clean(node);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (node.parentNode) {
</span><span class="cx" style="display: block; padding: 0 10px">           node.parentNode.removeChild(node);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2943,10 +2823,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     empty: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var node, i = this.length;
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        node = self[i];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        node = self$$1[i];
</ins><span class="cx" style="display: block; padding: 0 10px">         while (node.firstChild) {
</span><span class="cx" style="display: block; padding: 0 10px">           node.removeChild(node.firstChild);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2954,36 +2834,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     html: function (value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var i;
</span><span class="cx" style="display: block; padding: 0 10px">       if (isDefined(value)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        i = self.length;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        i = self$$1.length;
</ins><span class="cx" style="display: block; padding: 0 10px">         try {
</span><span class="cx" style="display: block; padding: 0 10px">           while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self[i].innerHTML = value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1[i].innerHTML = value;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         } catch (ex) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          DomQuery(self[i]).empty().append(value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          DomQuery(self$$1[i]).empty().append(value);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self[0] ? self[0].innerHTML : '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1[0] ? self$$1[0].innerHTML : '';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     text: function (value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var i;
</span><span class="cx" style="display: block; padding: 0 10px">       if (isDefined(value)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        i = self.length;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        i = self$$1.length;
</ins><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ('innerText' in self[i]) {
-            self[i].innerText = value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ('innerText' in self$$1[i]) {
+            self$$1[i].innerText = value;
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self[0].textContent = value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1[0].textContent = value;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self[0] ? self[0].innerText || self[0].textContent : '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1[0] ? self$$1[0].innerText || self$$1[0].textContent : '';
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     append: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return domManipulate(this, arguments, function (node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3000,22 +2880,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }, true);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     before: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (self[0] && self[0].parentNode) {
-        return domManipulate(self, arguments, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (self$$1[0] && self$$1[0].parentNode) {
+        return domManipulate(self$$1, arguments, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           this.parentNode.insertBefore(node, this);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     after: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (self[0] && self[0].parentNode) {
-        return domManipulate(self, arguments, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (self$$1[0] && self$$1[0].parentNode) {
+        return domManipulate(self$$1, arguments, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           this.parentNode.insertBefore(node, this.nextSibling);
</span><span class="cx" style="display: block; padding: 0 10px">         }, true);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     appendTo: function (val) {
</span><span class="cx" style="display: block; padding: 0 10px">       DomQuery(val).append(this);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3059,16 +2939,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.toggleClass(className, false);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     toggleClass: function (className, state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (typeof className !== 'string') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (className.indexOf(' ') !== -1) {
</span><span class="cx" style="display: block; padding: 0 10px">         each$2(className.split(' '), function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.toggleClass(this, state);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.toggleClass(this, state);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.each(function (index, node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.each(function (index, node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var existingClassName, classState;
</span><span class="cx" style="display: block; padding: 0 10px">           classState = hasClass(node, className);
</span><span class="cx" style="display: block; padding: 0 10px">           if (classState !== state) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3081,7 +2961,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     hasClass: function (className) {
</span><span class="cx" style="display: block; padding: 0 10px">       return hasClass(this[0], className);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3089,22 +2969,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">     each: function (callback) {
</span><span class="cx" style="display: block; padding: 0 10px">       return each$2(this, callback);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    on: function (name, callback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    on: function (name$$1, callback) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return this.each(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        Event.bind(this, name, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        Event$$1.bind(this, name$$1, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    off: function (name, callback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    off: function (name$$1, callback) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return this.each(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        Event.unbind(this, name, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        Event$$1.unbind(this, name$$1, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    trigger: function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    trigger: function (name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return this.each(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (typeof name === 'object') {
-          Event.fire(this, name.type, name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (typeof name$$1 === 'object') {
+          Event$$1.fire(this, name$$1.type, name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          Event.fire(this, name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          Event$$1.fire(this, name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3186,16 +3066,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     sort: [].sort,
</span><span class="cx" style="display: block; padding: 0 10px">     splice: [].splice
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  $_52qop8kjfuw8l6v.extend(DomQuery, {
-    extend: $_52qop8kjfuw8l6v.extend,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  $_6cwiepljjgwe7j4.extend(DomQuery, {
+    extend: $_6cwiepljjgwe7j4.extend,
</ins><span class="cx" style="display: block; padding: 0 10px">     makeArray: function (object) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (isWindow(object) || object.nodeType) {
</span><span class="cx" style="display: block; padding: 0 10px">         return [object];
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_52qop8kjfuw8l6v.toArray(object);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_6cwiepljjgwe7j4.toArray(object);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     inArray: inArray,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    isArray: $_52qop8kjfuw8l6v.isArray,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    isArray: $_6cwiepljjgwe7j4.isArray,
</ins><span class="cx" style="display: block; padding: 0 10px">     each: each$2,
</span><span class="cx" style="display: block; padding: 0 10px">     trim: trim$1,
</span><span class="cx" style="display: block; padding: 0 10px">     grep: grep,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3275,8 +3155,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   each$2({
</span><span class="cx" style="display: block; padding: 0 10px">     parent: function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parent = node.parentNode;
-      return parent && parent.nodeType !== 11 ? parent : null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parent$$1 = node.parentNode;
+      return parent$$1 && parent$$1.nodeType !== 11 ? parent$$1 : null;
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     parents: function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">       return dir(node, 'parentNode');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3291,13 +3171,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return sibling(node.firstChild, 'nextSibling', 1);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     contents: function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_52qop8kjfuw8l6v.toArray((node.nodeName === 'iframe' ? node.contentDocument || node.contentWindow.document : node).childNodes);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_6cwiepljjgwe7j4.toArray((node.nodeName === 'iframe' ? node.contentDocument || node.contentWindow.document : node).childNodes);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  }, function (name, fn) {
-    DomQuery.fn[name] = function (selector) {
-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  }, function (name$$1, fn) {
+    DomQuery.fn[name$$1] = function (selector) {
+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var result = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.each(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.each(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">         var nodes = fn.call(result, this, selector, result);
</span><span class="cx" style="display: block; padding: 0 10px">         if (nodes) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (DomQuery.isArray(nodes)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3308,10 +3188,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (this.length > 1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!skipUniques[name]) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!skipUniques[name$$1]) {
</ins><span class="cx" style="display: block; padding: 0 10px">           result = DomQuery.unique(result);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (name.indexOf('parents') === 0) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (name$$1.indexOf('parents') === 0) {
</ins><span class="cx" style="display: block; padding: 0 10px">           result = result.reverse();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3332,11 +3212,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     prevUntil: function (node, until) {
</span><span class="cx" style="display: block; padding: 0 10px">       return sibling(node, 'previousSibling', 1, until).slice(1);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  }, function (name, fn) {
-    DomQuery.fn[name] = function (selector, filter) {
-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  }, function (name$$1, fn) {
+    DomQuery.fn[name$$1] = function (selector, filter) {
+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var result = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.each(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.each(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">         var nodes = fn.call(result, this, selector, result);
</span><span class="cx" style="display: block; padding: 0 10px">         if (nodes) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (DomQuery.isArray(nodes)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3348,7 +3228,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (this.length > 1) {
</span><span class="cx" style="display: block; padding: 0 10px">         result = DomQuery.unique(result);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (name.indexOf('parents') === 0 || name === 'prevUntil') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (name$$1.indexOf('parents') === 0 || name$$1 === 'prevUntil') {
</ins><span class="cx" style="display: block; padding: 0 10px">           result = result.reverse();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3379,12 +3259,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return sub;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var appendHooks = function (targetHooks, prop, hooks) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$2(hooks, function (name, func) {
-      targetHooks[name] = targetHooks[name] || {};
-      targetHooks[name][prop] = func;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$2(hooks, function (name$$1, func) {
+      targetHooks[name$$1] = targetHooks[name$$1] || {};
+      targetHooks[name$$1][prop] = func;
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  if ($_9fhi43ajfuw8l13.ie && $_9fhi43ajfuw8l13.ie < 8) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  if ($_bcvfv9ajjgwe79v.ie && $_bcvfv9ajjgwe79v.ie < 8) {
</ins><span class="cx" style="display: block; padding: 0 10px">     appendHooks(attrHooks, 'get', {
</span><span class="cx" style="display: block; padding: 0 10px">       maxlength: function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">         var value = elm.maxLength;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3420,7 +3300,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  if ($_9fhi43ajfuw8l13.ie && $_9fhi43ajfuw8l13.ie < 9) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  if ($_bcvfv9ajjgwe79v.ie && $_bcvfv9ajjgwe79v.ie < 9) {
</ins><span class="cx" style="display: block; padding: 0 10px">     cssFix.float = 'styleFloat';
</span><span class="cx" style="display: block; padding: 0 10px">     appendHooks(cssHooks, 'set', {
</span><span class="cx" style="display: block; padding: 0 10px">       opacity: function (elm, value) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3441,14 +3321,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var called = false;
</span><span class="cx" style="display: block; padding: 0 10px">     var r;
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var args = [];
+      for (var _i = 0; _i < arguments.length; _i++) {
+        args[_i] = arguments[_i];
+      }
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!called) {
</span><span class="cx" style="display: block; padding: 0 10px">         called = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        r = f.apply(null, arguments);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        r = f.apply(null, args);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return r;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fsjpd3ojfuw8l7r = { cached: cached };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var firstMatch = function (regexes, s) {
</span><span class="cx" style="display: block; padding: 0 10px">     for (var i = 0; i < regexes.length; i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3485,7 +3368,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       minor: minor
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_anp2zprjfuw8l8b = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4qb10ysjjgwe7kc = {
</ins><span class="cx" style="display: block; padding: 0 10px">     nu: nu,
</span><span class="cx" style="display: block; padding: 0 10px">     detect: detect,
</span><span class="cx" style="display: block; padding: 0 10px">     unknown: unknown
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3505,7 +3388,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var unknown$1 = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return nu$1({
</span><span class="cx" style="display: block; padding: 0 10px">       current: undefined,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      version: $_anp2zprjfuw8l8b.unknown()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      version: $_4qb10ysjjgwe7kc.unknown()
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nu$1 = function (info) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3522,15 +3405,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       isSafari: isBrowser(safari, current)
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_93hntrqjfuw8l87 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_66ohnorjjgwe7k7 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     unknown: unknown$1,
</span><span class="cx" style="display: block; padding: 0 10px">     nu: nu$1,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    edge: $_68e81l6jfuw8kyc.constant(edge),
-    chrome: $_68e81l6jfuw8kyc.constant(chrome),
-    ie: $_68e81l6jfuw8kyc.constant(ie$1),
-    opera: $_68e81l6jfuw8kyc.constant(opera$1),
-    firefox: $_68e81l6jfuw8kyc.constant(firefox),
-    safari: $_68e81l6jfuw8kyc.constant(safari)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    edge: constant(edge),
+    chrome: constant(chrome),
+    ie: constant(ie$1),
+    opera: constant(opera$1),
+    firefox: constant(firefox),
+    safari: constant(safari)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var windows = 'Windows';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3548,7 +3431,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var unknown$2 = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return nu$2({
</span><span class="cx" style="display: block; padding: 0 10px">       current: undefined,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      version: $_anp2zprjfuw8l8b.unknown()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      version: $_4qb10ysjjgwe7kc.unknown()
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nu$2 = function (info) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3566,16 +3449,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       isFreeBSD: isOS(freebsd, current)
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7sklw6sjfuw8l8e = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_m4ezttjjgwe7kg = {
</ins><span class="cx" style="display: block; padding: 0 10px">     unknown: unknown$2,
</span><span class="cx" style="display: block; padding: 0 10px">     nu: nu$2,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    windows: $_68e81l6jfuw8kyc.constant(windows),
-    ios: $_68e81l6jfuw8kyc.constant(ios),
-    android: $_68e81l6jfuw8kyc.constant(android$1),
-    linux: $_68e81l6jfuw8kyc.constant(linux),
-    osx: $_68e81l6jfuw8kyc.constant(osx),
-    solaris: $_68e81l6jfuw8kyc.constant(solaris),
-    freebsd: $_68e81l6jfuw8kyc.constant(freebsd)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    windows: constant(windows),
+    ios: constant(ios),
+    android: constant(android$1),
+    linux: constant(linux),
+    osx: constant(osx),
+    solaris: constant(solaris),
+    freebsd: constant(freebsd)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function DeviceType (os, browser, userAgent) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3588,26 +3471,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var isPhone = isTouch && !isTablet;
</span><span class="cx" style="display: block; padding: 0 10px">     var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      isiPad: $_68e81l6jfuw8kyc.constant(isiPad),
-      isiPhone: $_68e81l6jfuw8kyc.constant(isiPhone),
-      isTablet: $_68e81l6jfuw8kyc.constant(isTablet),
-      isPhone: $_68e81l6jfuw8kyc.constant(isPhone),
-      isTouch: $_68e81l6jfuw8kyc.constant(isTouch),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      isiPad: constant(isiPad),
+      isiPhone: constant(isiPhone),
+      isTablet: constant(isTablet),
+      isPhone: constant(isPhone),
+      isTouch: constant(isTouch),
</ins><span class="cx" style="display: block; padding: 0 10px">       isAndroid: os.isAndroid,
</span><span class="cx" style="display: block; padding: 0 10px">       isiOS: os.isiOS,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      isWebView: $_68e81l6jfuw8kyc.constant(iOSwebview)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      isWebView: constant(iOSwebview)
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var detect$1 = function (candidates, userAgent) {
</span><span class="cx" style="display: block; padding: 0 10px">     var agent = String(userAgent).toLowerCase();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.find(candidates, function (candidate) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return find(candidates, function (candidate) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return candidate.search(agent);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var detectBrowser = function (browsers, userAgent) {
</span><span class="cx" style="display: block; padding: 0 10px">     return detect$1(browsers, userAgent).map(function (browser) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var version = $_anp2zprjfuw8l8b.detect(browser.versionRegexes, userAgent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var version = $_4qb10ysjjgwe7kc.detect(browser.versionRegexes, userAgent);
</ins><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         current: browser.name,
</span><span class="cx" style="display: block; padding: 0 10px">         version: version
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3616,7 +3499,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var detectOs = function (oses, userAgent) {
</span><span class="cx" style="display: block; padding: 0 10px">     return detect$1(oses, userAgent).map(function (os) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var version = $_anp2zprjfuw8l8b.detect(os.versionRegexes, userAgent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var version = $_4qb10ysjjgwe7kc.detect(os.versionRegexes, userAgent);
</ins><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         current: os.name,
</span><span class="cx" style="display: block; padding: 0 10px">         version: version
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3623,123 +3506,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_btz1g4ujfuw8l8n = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5cav46vjjgwe7kq = {
</ins><span class="cx" style="display: block; padding: 0 10px">     detectBrowser: detectBrowser,
</span><span class="cx" style="display: block; padding: 0 10px">     detectOs: detectOs
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var addToStart = function (str, prefix) {
-    return prefix + str;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var contains$2 = function (str, substr) {
+    return str.indexOf(substr) !== -1;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var addToEnd = function (str, suffix) {
-    return str + suffix;
-  };
-  var removeFromStart = function (str, numChars) {
-    return str.substring(numChars);
-  };
-  var removeFromEnd = function (str, numChars) {
-    return str.substring(0, str.length - numChars);
-  };
-  var $_dsovrexjfuw8l95 = {
-    addToStart: addToStart,
-    addToEnd: addToEnd,
-    removeFromStart: removeFromStart,
-    removeFromEnd: removeFromEnd
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var first = function (str, count) {
-    return str.substr(0, count);
-  };
-  var last$2 = function (str, count) {
-    return str.substr(str.length - count, str.length);
-  };
-  var head$1 = function (str) {
-    return str === '' ? Option.none() : Option.some(str.substr(0, 1));
-  };
-  var tail = function (str) {
-    return str === '' ? Option.none() : Option.some(str.substring(1));
-  };
-  var $_179cg9yjfuw8l96 = {
-    first: first,
-    last: last$2,
-    head: head$1,
-    tail: tail
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var checkRange = function (str, substr, start) {
-    if (substr === '')
-      return true;
-    if (str.length < substr.length)
-      return false;
-    var x = str.substr(start, start + substr.length);
-    return x === substr;
-  };
-  var supplant = function (str, obj) {
-    var isStringOrNumber = function (a) {
-      var t = typeof a;
-      return t === 'string' || t === 'number';
-    };
-    return str.replace(/\${([^{}]*)}/g, function (a, b) {
-      var value = obj[b];
-      return isStringOrNumber(value) ? value : a;
-    });
-  };
-  var removeLeading = function (str, prefix) {
-    return startsWith(str, prefix) ? $_dsovrexjfuw8l95.removeFromStart(str, prefix.length) : str;
-  };
-  var removeTrailing = function (str, prefix) {
-    return endsWith(str, prefix) ? $_dsovrexjfuw8l95.removeFromEnd(str, prefix.length) : str;
-  };
-  var ensureLeading = function (str, prefix) {
-    return startsWith(str, prefix) ? str : $_dsovrexjfuw8l95.addToStart(str, prefix);
-  };
-  var ensureTrailing = function (str, prefix) {
-    return endsWith(str, prefix) ? str : $_dsovrexjfuw8l95.addToEnd(str, prefix);
-  };
-  var contains$2 = function (str, substr) {
-    return str.indexOf(substr) !== -1;
-  };
-  var capitalize = function (str) {
-    return $_179cg9yjfuw8l96.head(str).bind(function (head) {
-      return $_179cg9yjfuw8l96.tail(str).map(function (tail) {
-        return head.toUpperCase() + tail;
-      });
-    }).getOr(str);
-  };
-  var startsWith = function (str, prefix) {
-    return checkRange(str, prefix, 0);
-  };
-  var endsWith = function (str, suffix) {
-    return checkRange(str, suffix, str.length - suffix.length);
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">   var trim$2 = function (str) {
</span><span class="cx" style="display: block; padding: 0 10px">     return str.replace(/^\s+|\s+$/g, '');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var lTrim = function (str) {
-    return str.replace(/^\s+/g, '');
-  };
-  var rTrim = function (str) {
-    return str.replace(/\s+$/g, '');
-  };
-  var $_e6kxndwjfuw8l91 = {
-    supplant: supplant,
-    startsWith: startsWith,
-    removeLeading: removeLeading,
-    removeTrailing: removeTrailing,
-    ensureLeading: ensureLeading,
-    ensureTrailing: ensureTrailing,
-    endsWith: endsWith,
-    contains: contains$2,
-    trim: trim$2,
-    lTrim: lTrim,
-    rTrim: rTrim,
-    capitalize: capitalize
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
</span><span class="cx" style="display: block; padding: 0 10px">   var checkContains = function (target) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_e6kxndwjfuw8l91.contains(uastring, target);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return contains$2(uastring, target);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var browsers = [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3747,7 +3532,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       name: 'Edge',
</span><span class="cx" style="display: block; padding: 0 10px">       versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var monstrosity = $_e6kxndwjfuw8l91.contains(uastring, 'edge/') && $_e6kxndwjfuw8l91.contains(uastring, 'chrome') && $_e6kxndwjfuw8l91.contains(uastring, 'safari') && $_e6kxndwjfuw8l91.contains(uastring, 'applewebkit');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var monstrosity = contains$2(uastring, 'edge/') && contains$2(uastring, 'chrome') && contains$2(uastring, 'safari') && contains$2(uastring, 'applewebkit');
</ins><span class="cx" style="display: block; padding: 0 10px">         return monstrosity;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3758,7 +3543,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         normalVersionRegex
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_e6kxndwjfuw8l91.contains(uastring, 'chrome') && !$_e6kxndwjfuw8l91.contains(uastring, 'chromeframe');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains$2(uastring, 'chrome') && !contains$2(uastring, 'chromeframe');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3768,7 +3553,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         /.*?rv:([0-9]+)\.([0-9]+).*/
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_e6kxndwjfuw8l91.contains(uastring, 'msie') || $_e6kxndwjfuw8l91.contains(uastring, 'trident');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains$2(uastring, 'msie') || contains$2(uastring, 'trident');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3791,7 +3576,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         /.*?cpu os ([0-9]+)_([0-9]+).*/
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return ($_e6kxndwjfuw8l91.contains(uastring, 'safari') || $_e6kxndwjfuw8l91.contains(uastring, 'mobile/')) && $_e6kxndwjfuw8l91.contains(uastring, 'applewebkit');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return (contains$2(uastring, 'safari') || contains$2(uastring, 'mobile/')) && contains$2(uastring, 'applewebkit');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   ];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3804,7 +3589,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">       name: 'iOS',
</span><span class="cx" style="display: block; padding: 0 10px">       search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_e6kxndwjfuw8l91.contains(uastring, 'iphone') || $_e6kxndwjfuw8l91.contains(uastring, 'ipad');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains$2(uastring, 'iphone') || contains$2(uastring, 'ipad');
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       versionRegexes: [
</span><span class="cx" style="display: block; padding: 0 10px">         /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3838,16 +3623,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       versionRegexes: []
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   ];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6ctm98vjfuw8l8t = {
-    browsers: $_68e81l6jfuw8kyc.constant(browsers),
-    oses: $_68e81l6jfuw8kyc.constant(oses)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5exylhwjjgwe7kx = {
+    browsers: constant(browsers),
+    oses: constant(oses)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var detect$2 = function (userAgent) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var browsers = $_6ctm98vjfuw8l8t.browsers();
-    var oses = $_6ctm98vjfuw8l8t.oses();
-    var browser = $_btz1g4ujfuw8l8n.detectBrowser(browsers, userAgent).fold($_93hntrqjfuw8l87.unknown, $_93hntrqjfuw8l87.nu);
-    var os = $_btz1g4ujfuw8l8n.detectOs(oses, userAgent).fold($_7sklw6sjfuw8l8e.unknown, $_7sklw6sjfuw8l8e.nu);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var browsers = $_5exylhwjjgwe7kx.browsers();
+    var oses = $_5exylhwjjgwe7kx.oses();
+    var browser = $_5cav46vjjgwe7kq.detectBrowser(browsers, userAgent).fold($_66ohnorjjgwe7k7.unknown, $_66ohnorjjgwe7k7.nu);
+    var os = $_5cav46vjjgwe7kq.detectOs(oses, userAgent).fold($_m4ezttjjgwe7kg.unknown, $_m4ezttjjgwe7kg.nu);
</ins><span class="cx" style="display: block; padding: 0 10px">     var deviceType = DeviceType(os, browser, userAgent);
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       browser: browser,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3855,13 +3640,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       deviceType: deviceType
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_181zxbpjfuw8l86 = { detect: detect$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_b73hs8qjjgwe7k5 = { detect: detect$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var detect$3 = $_fsjpd3ojfuw8l7r.cached(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var detect$3 = cached(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     var userAgent = navigator.userAgent;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_181zxbpjfuw8l86.detect(userAgent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_b73hs8qjjgwe7k5.detect(userAgent);
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_f1lbzgnjfuw8l7o = { detect: detect$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_7vg267ojjgwe7k0 = { detect: detect$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var fromHtml = function (html, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var doc = scope || document;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3886,12 +3671,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fromDom = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (node === null || node === undefined)
</span><span class="cx" style="display: block; padding: 0 10px">       throw new Error('Node cannot be null or undefined');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return { dom: $_68e81l6jfuw8kyc.constant(node) };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return { dom: constant(node) };
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var fromPoint = function (doc, x, y) {
-    return Option.from(doc.dom().elementFromPoint(x, y)).map(fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var fromPoint = function (docElm, x, y) {
+    var doc = docElm.dom();
+    return Option.from(doc.elementFromPoint(x, y)).map(fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_c9h6qlzjfuw8l98 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Element$$1 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     fromHtml: fromHtml,
</span><span class="cx" style="display: block; padding: 0 10px">     fromTag: fromTag,
</span><span class="cx" style="display: block; padding: 0 10px">     fromText: fromText,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3899,22 +3685,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">     fromPoint: fromPoint
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_adtawu11jfuw8l9g = {
-    ATTRIBUTE: 2,
-    CDATA_SECTION: 4,
-    COMMENT: 8,
-    DOCUMENT: 9,
-    DOCUMENT_TYPE: 10,
-    DOCUMENT_FRAGMENT: 11,
-    ELEMENT: 1,
-    TEXT: 3,
-    PROCESSING_INSTRUCTION: 7,
-    ENTITY_REFERENCE: 5,
-    ENTITY: 6,
-    NOTATION: 12
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9ssocf12jjgwe7lr = {
+    ATTRIBUTE: Node.ATTRIBUTE_NODE,
+    CDATA_SECTION: Node.CDATA_SECTION_NODE,
+    COMMENT: Node.COMMENT_NODE,
+    DOCUMENT: Node.DOCUMENT_NODE,
+    DOCUMENT_TYPE: Node.DOCUMENT_TYPE_NODE,
+    DOCUMENT_FRAGMENT: Node.DOCUMENT_FRAGMENT_NODE,
+    ELEMENT: Node.ELEMENT_NODE,
+    TEXT: Node.TEXT_NODE,
+    PROCESSING_INSTRUCTION: Node.PROCESSING_INSTRUCTION_NODE,
+    ENTITY_REFERENCE: Node.ENTITY_REFERENCE_NODE,
+    ENTITY: Node.ENTITY_NODE,
+    NOTATION: Node.NOTATION_NODE
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var name$1 = function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var name = function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var r = element.dom().nodeName;
</span><span class="cx" style="display: block; padding: 0 10px">     return r.toLowerCase();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3930,13 +3716,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isComment = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return type(element) === $_adtawu11jfuw8l9g.COMMENT || name$1(element) === '#comment';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return type(element) === $_9ssocf12jjgwe7lr.COMMENT || name(element) === '#comment';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isElement = isType$1($_adtawu11jfuw8l9g.ELEMENT);
-  var isText = isType$1($_adtawu11jfuw8l9g.TEXT);
-  var isDocument = isType$1($_adtawu11jfuw8l9g.DOCUMENT);
-  var $_eaw33d10jfuw8l9f = {
-    name: name$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isElement = isType$1($_9ssocf12jjgwe7lr.ELEMENT);
+  var isText = isType$1($_9ssocf12jjgwe7lr.TEXT);
+  var isDocument = isType$1($_9ssocf12jjgwe7lr.DOCUMENT);
+  var $_fxxo5411jjgwe7lq = {
+    name: name,
</ins><span class="cx" style="display: block; padding: 0 10px">     type: type,
</span><span class="cx" style="display: block; padding: 0 10px">     value: value,
</span><span class="cx" style="display: block; padding: 0 10px">     isElement: isElement,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3945,19 +3731,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     isComment: isComment
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var keys = function () {
-    var fastKeys = Object.keys;
-    var slowKeys = function (o) {
-      var r = [];
-      for (var i in o) {
-        if (o.hasOwnProperty(i)) {
-          r.push(i);
-        }
-      }
-      return r;
-    };
-    return fastKeys === undefined ? slowKeys : fastKeys;
-  }();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var keys = Object.keys;
</ins><span class="cx" style="display: block; padding: 0 10px">   var each$3 = function (obj, f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var props = keys(obj);
</span><span class="cx" style="display: block; padding: 0 10px">     for (var k = 0, len = props.length; k < len; k++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3966,7 +3740,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       f(x, i, obj);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var objectMap = function (obj, f) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var map$2 = function (obj, f) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return tupleMap(obj, function (x, i, obj) {
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         k: i,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3994,46 +3768,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       f: f
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var mapToArray = function (obj, f) {
-    var r = [];
-    each$3(obj, function (value, name) {
-      r.push(f(value, name));
-    });
-    return r;
-  };
-  var find$3 = function (obj, pred) {
-    var props = keys(obj);
-    for (var k = 0, len = props.length; k < len; k++) {
-      var i = props[k];
-      var x = obj[i];
-      if (pred(x, i, obj)) {
-        return Option.some(x);
-      }
-    }
-    return Option.none();
-  };
-  var values = function (obj) {
-    return mapToArray(obj, function (v) {
-      return v;
-    });
-  };
-  var size = function (obj) {
-    return values(obj).length;
-  };
-  var $_8c8uhu13jfuw8la0 = {
-    bifilter: bifilter,
-    each: each$3,
-    map: objectMap,
-    mapToArray: mapToArray,
-    tupleMap: tupleMap,
-    find: find$3,
-    keys: keys,
-    values: values,
-    size: size
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var rawSet = function (dom, key, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_16i8k47jfuw8kyi.isString(value) || $_16i8k47jfuw8kyi.isBoolean(value) || $_16i8k47jfuw8kyi.isNumber(value)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isString(value) || isBoolean(value) || isNumber(value)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       dom.setAttribute(key, value + '');
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4045,7 +3782,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setAll = function (element, attrs) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_8c8uhu13jfuw8la0.each(attrs, function (v, k) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$3(attrs, function (v, k) {
</ins><span class="cx" style="display: block; padding: 0 10px">       rawSet(dom, k, v);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4065,7 +3802,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return attrs === undefined || attrs === null || attrs.length === 0;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var clone = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.foldl(element.dom().attributes, function (acc, attr) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return foldl(element.dom().attributes, function (acc, attr) {
</ins><span class="cx" style="display: block; padding: 0 10px">       acc[attr.name] = attr.value;
</span><span class="cx" style="display: block; padding: 0 10px">       return acc;
</span><span class="cx" style="display: block; padding: 0 10px">     }, {});
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4075,13 +3812,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       set(destination, attr, get(source, attr));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var transfer = function (source, destination, attrs) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_eaw33d10jfuw8l9f.isElement(source) || !$_eaw33d10jfuw8l9f.isElement(destination))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_fxxo5411jjgwe7lq.isElement(source) || !$_fxxo5411jjgwe7lq.isElement(destination))
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.each(attrs, function (attr) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each(attrs, function (attr) {
</ins><span class="cx" style="display: block; padding: 0 10px">       transferOne(source, destination, attr);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8g002u14jfuw8la5 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_etx7gr15jjgwe7mr = {
</ins><span class="cx" style="display: block; padding: 0 10px">     clone: clone,
</span><span class="cx" style="display: block; padding: 0 10px">     set: set,
</span><span class="cx" style="display: block; padding: 0 10px">     setAll: setAll,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4093,19 +3830,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var inBody = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var dom = $_eaw33d10jfuw8l9f.isText(element) ? element.dom().parentNode : element.dom();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var dom = $_fxxo5411jjgwe7lq.isText(element) ? element.dom().parentNode : element.dom();
</ins><span class="cx" style="display: block; padding: 0 10px">     return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var body = $_fsjpd3ojfuw8l7r.cached(function () {
-    return getBody($_c9h6qlzjfuw8l98.fromDom(document));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var body = cached(function () {
+    return getBody(Element$$1.fromDom(document));
</ins><span class="cx" style="display: block; padding: 0 10px">   });
</span><span class="cx" style="display: block; padding: 0 10px">   var getBody = function (doc) {
</span><span class="cx" style="display: block; padding: 0 10px">     var body = doc.dom().body;
</span><span class="cx" style="display: block; padding: 0 10px">     if (body === null || body === undefined)
</span><span class="cx" style="display: block; padding: 0 10px">       throw 'Body is not available yet';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_c9h6qlzjfuw8l98.fromDom(body);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(body);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5nbzws15jfuw8lap = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_eu440l16jjgwe7n2 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     body: body,
</span><span class="cx" style="display: block; padding: 0 10px">     getBody: getBody,
</span><span class="cx" style="display: block; padding: 0 10px">     inBody: inBody
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4114,18 +3851,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isSupported = function (dom) {
</span><span class="cx" style="display: block; padding: 0 10px">     return dom.style !== undefined;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3xxgy116jfuw8las = { isSupported: isSupported };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1br9d717jjgwe7n9 = { isSupported: isSupported };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var internalSet = function (dom, property, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_16i8k47jfuw8kyi.isString(value)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!isString(value)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);
</span><span class="cx" style="display: block; padding: 0 10px">       throw new Error('CSS value must be a string: ' + value);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_3xxgy116jfuw8las.isSupported(dom))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1br9d717jjgwe7n9.isSupported(dom))
</ins><span class="cx" style="display: block; padding: 0 10px">       dom.style.setProperty(property, value);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var internalRemove = function (dom, property) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_3xxgy116jfuw8las.isSupported(dom))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1br9d717jjgwe7n9.isSupported(dom))
</ins><span class="cx" style="display: block; padding: 0 10px">       dom.style.removeProperty(property);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var set$1 = function (element, property, value) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4134,13 +3871,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setAll$1 = function (element, css) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_8c8uhu13jfuw8la0.each(css, function (v, k) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$3(css, function (v, k) {
</ins><span class="cx" style="display: block; padding: 0 10px">       internalSet(dom, k, v);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setOptions = function (element, css) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_8c8uhu13jfuw8la0.each(css, function (v, k) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$3(css, function (v, k) {
</ins><span class="cx" style="display: block; padding: 0 10px">       v.fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         internalRemove(dom, k);
</span><span class="cx" style="display: block; padding: 0 10px">       }, function (value) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4152,11 +3889,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     var styles = window.getComputedStyle(dom);
</span><span class="cx" style="display: block; padding: 0 10px">     var r = styles.getPropertyValue(property);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var v = r === '' && !$_5nbzws15jfuw8lap.inBody(element) ? getUnsafeProperty(dom, property) : r;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var v = r === '' && !$_eu440l16jjgwe7n2.inBody(element) ? getUnsafeProperty(dom, property) : r;
</ins><span class="cx" style="display: block; padding: 0 10px">     return v === null ? undefined : v;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getUnsafeProperty = function (dom, property) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_3xxgy116jfuw8las.isSupported(dom) ? dom.style.getPropertyValue(property) : '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_1br9d717jjgwe7n9.isSupported(dom) ? dom.style.getPropertyValue(property) : '';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getRaw = function (element, property) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4168,7 +3905,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getAllRaw = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var css = {};
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_3xxgy116jfuw8las.isSupported(dom)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1br9d717jjgwe7n9.isSupported(dom)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       for (var i = 0; i < dom.style.length; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">         var ruleName = dom.style.item(i);
</span><span class="cx" style="display: block; padding: 0 10px">         css[ruleName] = dom.style[ruleName];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4177,7 +3914,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return css;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isValidValue = function (tag, property, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var element = $_c9h6qlzjfuw8l98.fromTag(tag);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var element = Element$$1.fromTag(tag);
</ins><span class="cx" style="display: block; padding: 0 10px">     set$1(element, property, value);
</span><span class="cx" style="display: block; padding: 0 10px">     var style = getRaw(element, property);
</span><span class="cx" style="display: block; padding: 0 10px">     return style.isSome();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4185,14 +3922,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var remove$1 = function (element, property) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     internalRemove(dom, property);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_8g002u14jfuw8la5.has(element, 'style') && $_e6kxndwjfuw8l91.trim($_8g002u14jfuw8la5.get(element, 'style')) === '') {
-      $_8g002u14jfuw8la5.remove(element, 'style');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_etx7gr15jjgwe7mr.has(element, 'style') && trim$2($_etx7gr15jjgwe7mr.get(element, 'style')) === '') {
+      $_etx7gr15jjgwe7mr.remove(element, 'style');
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var preserve = function (element, f) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var oldStyles = $_8g002u14jfuw8la5.get(element, 'style');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var oldStyles = $_etx7gr15jjgwe7mr.get(element, 'style');
</ins><span class="cx" style="display: block; padding: 0 10px">     var result = f(element);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var restore = oldStyles === undefined ? $_8g002u14jfuw8la5.remove : $_8g002u14jfuw8la5.set;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var restore = oldStyles === undefined ? $_etx7gr15jjgwe7mr.remove : $_etx7gr15jjgwe7mr.set;
</ins><span class="cx" style="display: block; padding: 0 10px">     restore(element, 'style', oldStyles);
</span><span class="cx" style="display: block; padding: 0 10px">     return result;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4199,7 +3936,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var copy = function (source, target) {
</span><span class="cx" style="display: block; padding: 0 10px">     var sourceDom = source.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     var targetDom = target.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_3xxgy116jfuw8las.isSupported(sourceDom) && $_3xxgy116jfuw8las.isSupported(targetDom)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_1br9d717jjgwe7n9.isSupported(sourceDom) && $_1br9d717jjgwe7n9.isSupported(targetDom)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       targetDom.style.cssText = sourceDom.style.cssText;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4213,13 +3950,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var transfer$1 = function (source, destination, styles) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_eaw33d10jfuw8l9f.isElement(source) || !$_eaw33d10jfuw8l9f.isElement(destination))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_fxxo5411jjgwe7lq.isElement(source) || !$_fxxo5411jjgwe7lq.isElement(destination))
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.each(styles, function (style) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each(styles, function (style) {
</ins><span class="cx" style="display: block; padding: 0 10px">       transferOne$1(source, destination, style);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cworr512jfuw8l9j = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_e0ei5w13jjgwe7m4 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     copy: copy,
</span><span class="cx" style="display: block; padding: 0 10px">     set: set$1,
</span><span class="cx" style="display: block; padding: 0 10px">     preserve: preserve,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4234,7 +3971,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     transfer: transfer$1
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function Immutable () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Immutable = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     var fields = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 0; _i < arguments.length; _i++) {
</span><span class="cx" style="display: block; padding: 0 10px">       fields[_i] = arguments[_i];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4248,86 +3985,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var struct = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.each(fields, function (name, i) {
-        struct[name] = $_68e81l6jfuw8kyc.constant(values[i]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(fields, function (name, i) {
+        struct[name] = constant(values[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       return struct;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  }
-
-  var sort$1 = function (arr) {
-    return arr.slice(0).sort();
</del><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var reqMessage = function (required, keys) {
-    throw new Error('All required keys (' + sort$1(required).join(', ') + ') were not specified. Specified keys were: ' + sort$1(keys).join(', ') + '.');
-  };
-  var unsuppMessage = function (unsupported) {
-    throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', '));
-  };
-  var validateStrArr = function (label, array) {
-    if (!$_16i8k47jfuw8kyi.isArray(array))
-      throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');
-    $_9ek1bp4jfuw8kxg.each(array, function (a) {
-      if (!$_16i8k47jfuw8kyi.isString(a))
-        throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');
-    });
-  };
-  var invalidTypeMessage = function (incorrect, type) {
-    throw new Error('All values need to be of type: ' + type + '. Keys (' + sort$1(incorrect).join(', ') + ') were not.');
-  };
-  var checkDupes = function (everything) {
-    var sorted = sort$1(everything);
-    var dupe = $_9ek1bp4jfuw8kxg.find(sorted, function (s, i) {
-      return i < sorted.length - 1 && s === sorted[i + 1];
-    });
-    dupe.each(function (d) {
-      throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');
-    });
-  };
-  var $_3gh3fe1bjfuw8lbh = {
-    sort: sort$1,
-    reqMessage: reqMessage,
-    unsuppMessage: unsuppMessage,
-    validateStrArr: validateStrArr,
-    invalidTypeMessage: invalidTypeMessage,
-    checkDupes: checkDupes
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function MixedBag (required, optional) {
-    var everything = required.concat(optional);
-    if (everything.length === 0)
-      throw new Error('You must specify at least one required or optional field.');
-    $_3gh3fe1bjfuw8lbh.validateStrArr('required', required);
-    $_3gh3fe1bjfuw8lbh.validateStrArr('optional', optional);
-    $_3gh3fe1bjfuw8lbh.checkDupes(everything);
-    return function (obj) {
-      var keys = $_8c8uhu13jfuw8la0.keys(obj);
-      var allReqd = $_9ek1bp4jfuw8kxg.forall(required, function (req) {
-        return $_9ek1bp4jfuw8kxg.contains(keys, req);
-      });
-      if (!allReqd)
-        $_3gh3fe1bjfuw8lbh.reqMessage(required, keys);
-      var unsupported = $_9ek1bp4jfuw8kxg.filter(keys, function (key) {
-        return !$_9ek1bp4jfuw8kxg.contains(everything, key);
-      });
-      if (unsupported.length > 0)
-        $_3gh3fe1bjfuw8lbh.unsuppMessage(unsupported);
-      var r = {};
-      $_9ek1bp4jfuw8kxg.each(required, function (req) {
-        r[req] = $_68e81l6jfuw8kyc.constant(obj[req]);
-      });
-      $_9ek1bp4jfuw8kxg.each(optional, function (opt) {
-        r[opt] = $_68e81l6jfuw8kyc.constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none());
-      });
-      return r;
-    };
-  }
-
-  var $_1a7eqh18jfuw8lb9 = {
-    immutable: Immutable,
-    immutableBag: MixedBag
-  };
-
</del><span class="cx" style="display: block; padding: 0 10px">   var toArray$1 = function (target, f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var r = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var recurse = function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4340,10 +4004,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     } while (cur.isSome());
</span><span class="cx" style="display: block; padding: 0 10px">     return r;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3lbkh61cjfuw8lbj = { toArray: toArray$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2hsygk1djjgwe7o3 = { toArray: toArray$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var node = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_3hdbe8cjfuw8l1e.getOrDie('Node');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_6xhbl4cjjgwe7a3.getOrDie('Node');
</ins><span class="cx" style="display: block; padding: 0 10px">     return f;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var compareDocumentPosition = function (a, b, match) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4355,13 +4019,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var documentPositionContainedBy = function (a, b) {
</span><span class="cx" style="display: block; padding: 0 10px">     return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1i92tr1ejfuw8lbv = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_g79q0i1fjjgwe7on = {
</ins><span class="cx" style="display: block; padding: 0 10px">     documentPositionPreceding: documentPositionPreceding,
</span><span class="cx" style="display: block; padding: 0 10px">     documentPositionContainedBy: documentPositionContainedBy
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var ELEMENT = $_adtawu11jfuw8l9g.ELEMENT;
-  var DOCUMENT = $_adtawu11jfuw8l9g.DOCUMENT;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var ELEMENT = $_9ssocf12jjgwe7lr.ELEMENT;
+  var DOCUMENT = $_9ssocf12jjgwe7lr.DOCUMENT;
</ins><span class="cx" style="display: block; padding: 0 10px">   var is$1 = function (element, selector) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elem = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     if (elem.nodeType !== ELEMENT)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4382,13 +4046,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var all = function (selector, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var base = scope === undefined ? document : scope.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return bypassSelector(base) ? [] : $_9ek1bp4jfuw8kxg.map(base.querySelectorAll(selector), $_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var one = function (selector, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var base = scope === undefined ? document : scope.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map($_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fbwcti1fjfuw8lbx = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4yq1xp1gjjgwe7op = {
</ins><span class="cx" style="display: block; padding: 0 10px">     all: all,
</span><span class="cx" style="display: block; padding: 0 10px">     is: is$1,
</span><span class="cx" style="display: block; padding: 0 10px">     one: one
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4401,7 +4065,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return e1.dom().isEqualNode(e2.dom());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var member = function (element, elements) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.exists(elements, $_68e81l6jfuw8kyc.curry(eq, element));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return exists(elements, curry(eq, element));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var regularContains = function (e1, e2) {
</span><span class="cx" style="display: block; padding: 0 10px">     var d1 = e1.dom(), d2 = e2.dom();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4408,49 +4072,48 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return d1 === d2 ? false : d1.contains(d2);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ieContains = function (e1, e2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_1i92tr1ejfuw8lbv.documentPositionContainedBy(e1.dom(), e2.dom());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_g79q0i1fjjgwe7on.documentPositionContainedBy(e1.dom(), e2.dom());
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var browser = $_f1lbzgnjfuw8l7o.detect().browser;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var browser = $_7vg267ojjgwe7k0.detect().browser;
</ins><span class="cx" style="display: block; padding: 0 10px">   var contains$3 = browser.isIE() ? ieContains : regularContains;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4fb96d1djfuw8lbl = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5raon11ejjgwe7o5 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     eq: eq,
</span><span class="cx" style="display: block; padding: 0 10px">     isEqualNode: isEqualNode,
</span><span class="cx" style="display: block; padding: 0 10px">     member: member,
</span><span class="cx" style="display: block; padding: 0 10px">     contains: contains$3,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    is: $_fbwcti1fjfuw8lbx.is
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    is: $_4yq1xp1gjjgwe7op.is
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var owner = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_c9h6qlzjfuw8l98.fromDom(element.dom().ownerDocument);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(element.dom().ownerDocument);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var documentElement = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var doc = owner(element);
-    return $_c9h6qlzjfuw8l98.fromDom(doc.dom().documentElement);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(element.dom().ownerDocument.documentElement);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var defaultView = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var el = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     var defaultView = el.ownerDocument.defaultView;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_c9h6qlzjfuw8l98.fromDom(defaultView);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(defaultView);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var parent = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.parentNode).map($_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.parentNode).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findIndex$2 = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return parent(element).bind(function (p) {
</span><span class="cx" style="display: block; padding: 0 10px">       var kin = children(p);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_9ek1bp4jfuw8kxg.findIndex(kin, function (elem) {
-        return $_4fb96d1djfuw8lbl.eq(element, elem);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return findIndex(kin, function (elem) {
+        return $_5raon11ejjgwe7o5.eq(element, elem);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var parents = function (element, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var stop = $_16i8k47jfuw8kyi.isFunction(isRoot) ? isRoot : $_68e81l6jfuw8kyc.constant(false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var stop = isFunction(isRoot) ? isRoot : constant(false);
</ins><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     var ret = [];
</span><span class="cx" style="display: block; padding: 0 10px">     while (dom.parentNode !== null && dom.parentNode !== undefined) {
</span><span class="cx" style="display: block; padding: 0 10px">       var rawParent = dom.parentNode;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parent = $_c9h6qlzjfuw8l98.fromDom(rawParent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parent = Element$$1.fromDom(rawParent);
</ins><span class="cx" style="display: block; padding: 0 10px">       ret.push(parent);
</span><span class="cx" style="display: block; padding: 0 10px">       if (stop(parent) === true)
</span><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4461,8 +4124,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var siblings = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var filterSelf = function (elements) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_9ek1bp4jfuw8kxg.filter(elements, function (x) {
-        return !$_4fb96d1djfuw8lbl.eq(element, x);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return filter(elements, function (x) {
+        return !$_5raon11ejjgwe7o5.eq(element, x);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return parent(element).map(children).map(filterSelf).getOr([]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4469,29 +4132,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var offsetParent = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.offsetParent).map($_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.offsetParent).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var prevSibling = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.previousSibling).map($_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.previousSibling).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nextSibling = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(dom.nextSibling).map($_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(dom.nextSibling).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var prevSiblings = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.reverse($_3lbkh61cjfuw8lbj.toArray(element, prevSibling));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return reverse($_2hsygk1djjgwe7o3.toArray(element, prevSibling));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nextSiblings = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_3lbkh61cjfuw8lbj.toArray(element, nextSibling);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_2hsygk1djjgwe7o3.toArray(element, nextSibling);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var children = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.map(dom.childNodes, $_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(dom.childNodes, Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var child = function (element, index) {
</span><span class="cx" style="display: block; padding: 0 10px">     var children = element.dom().childNodes;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(children[index]).map($_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(children[index]).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var firstChild = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return child(element, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4505,12 +4168,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var hasChildNodes = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return element.dom().hasChildNodes();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var spot = $_1a7eqh18jfuw8lb9.immutable('element', 'offset');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var spot = Immutable('element', 'offset');
</ins><span class="cx" style="display: block; padding: 0 10px">   var leaf = function (element, offset) {
</span><span class="cx" style="display: block; padding: 0 10px">     var cs = children(element);
</span><span class="cx" style="display: block; padding: 0 10px">     return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2j4g5u17jfuw8lav = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d3rmjp18jjgwe7nc = {
</ins><span class="cx" style="display: block; padding: 0 10px">     owner: owner,
</span><span class="cx" style="display: block; padding: 0 10px">     defaultView: defaultView,
</span><span class="cx" style="display: block; padding: 0 10px">     documentElement: documentElement,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4532,16 +4195,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     leaf: leaf
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var browser$1 = $_f1lbzgnjfuw8l7o.detect().browser;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var browser$1 = $_7vg267ojjgwe7k0.detect().browser;
</ins><span class="cx" style="display: block; padding: 0 10px">   var firstElement = function (nodes) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.find(nodes, $_eaw33d10jfuw8l9f.isElement);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return find(nodes, $_fxxo5411jjgwe7lq.isElement);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getTableCaptionDeltaY = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (browser$1.isFirefox() && $_eaw33d10jfuw8l9f.name(elm) === 'table') {
-      return firstElement($_2j4g5u17jfuw8lav.children(elm)).filter(function (elm) {
-        return $_eaw33d10jfuw8l9f.name(elm) === 'caption';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (browser$1.isFirefox() && $_fxxo5411jjgwe7lq.name(elm) === 'table') {
+      return firstElement($_d3rmjp18jjgwe7nc.children(elm)).filter(function (elm) {
+        return $_fxxo5411jjgwe7lq.name(elm) === 'caption';
</ins><span class="cx" style="display: block; padding: 0 10px">       }).bind(function (caption) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return firstElement($_2j4g5u17jfuw8lav.nextSiblings(caption)).map(function (body) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return firstElement($_d3rmjp18jjgwe7nc.nextSiblings(caption)).map(function (body) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var bodyTop = body.dom().offsetTop;
</span><span class="cx" style="display: block; padding: 0 10px">           var captionTop = caption.dom().offsetTop;
</span><span class="cx" style="display: block; padding: 0 10px">           var captionHeight = caption.dom().offsetHeight;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4558,7 +4221,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var pos;
</span><span class="cx" style="display: block; padding: 0 10px">     rootElm = rootElm ? rootElm : body;
</span><span class="cx" style="display: block; padding: 0 10px">     if (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (rootElm === body && elm.getBoundingClientRect && $_cworr512jfuw8l9j.get($_c9h6qlzjfuw8l98.fromDom(body), 'position') === 'static') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (rootElm === body && elm.getBoundingClientRect && $_e0ei5w13jjgwe7m4.get(Element$$1.fromDom(body), 'position') === 'static') {
</ins><span class="cx" style="display: block; padding: 0 10px">         pos = elm.getBoundingClientRect();
</span><span class="cx" style="display: block; padding: 0 10px">         x = pos.left + (doc.documentElement.scrollLeft || body.scrollLeft) - doc.documentElement.clientLeft;
</span><span class="cx" style="display: block; padding: 0 10px">         y = pos.top + (doc.documentElement.scrollTop || body.scrollTop) - doc.documentElement.clientTop;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4579,7 +4242,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         y -= offsetParent.scrollTop || 0;
</span><span class="cx" style="display: block; padding: 0 10px">         offsetParent = offsetParent.parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      y += getTableCaptionDeltaY($_c9h6qlzjfuw8l98.fromDom(elm));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      y += getTableCaptionDeltaY(Element$$1.fromDom(elm));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       x: x,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4586,12 +4249,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       y: y
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4nsusvmjfuw8l7a = { getPos: getPos };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3h7c3wnjjgwe7jl = { getPos: getPos };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var nu$3 = function (baseFn) {
</span><span class="cx" style="display: block; padding: 0 10px">     var data = Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">     var callbacks = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var map = function (f) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var map$$1 = function (f) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return nu$3(function (nCallback) {
</span><span class="cx" style="display: block; padding: 0 10px">         get(function (data) {
</span><span class="cx" style="display: block; padding: 0 10px">           nCallback(f(data));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4613,7 +4276,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return data.isSome();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var run = function (cbs) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.each(cbs, call);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(cbs, call);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var call = function (cb) {
</span><span class="cx" style="display: block; padding: 0 10px">       data.each(function (x) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4625,7 +4288,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     baseFn(set);
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       get: get,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      map: map,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      map: map$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       isReady: isReady
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4641,7 +4304,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var bounce = function (f) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var args = Array.prototype.slice.call(arguments);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var args = [];
+      for (var _i = 0; _i < arguments.length; _i++) {
+        args[_i] = arguments[_i];
+      }
</ins><span class="cx" style="display: block; padding: 0 10px">       var me = this;
</span><span class="cx" style="display: block; padding: 0 10px">       setTimeout(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         f.apply(me, args);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4648,11 +4314,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }, 0);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_erz7cb1jjfuw8lcl = { bounce: bounce };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var nu$4 = function (baseFn) {
</span><span class="cx" style="display: block; padding: 0 10px">     var get = function (callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      baseFn($_erz7cb1jjfuw8lcl.bounce(callback));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      baseFn(bounce(callback));
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var map = function (fab) {
</span><span class="cx" style="display: block; padding: 0 10px">       return nu$4(function (callback) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4713,31 +4378,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (asyncValues.length === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">         callback([]);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_9ek1bp4jfuw8kxg.each(asyncValues, function (asyncValue, i) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each(asyncValues, function (asyncValue, i) {
</ins><span class="cx" style="display: block; padding: 0 10px">           asyncValue.get(cb(i));
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_863o6m1ljfuw8lcu = { par: par };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var par$1 = function (futures) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_863o6m1ljfuw8lcu.par(futures, Future.nu);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return par(futures, Future.nu);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var mapM = function (array, fn) {
-    var futures = $_9ek1bp4jfuw8kxg.map(array, fn);
-    return par$1(futures);
-  };
-  var compose$1 = function (f, g) {
-    return function (a) {
-      return g(a).bind(f);
-    };
-  };
-  var $_9tz6fr1kjfuw8lcn = {
-    par: par$1,
-    mapM: mapM,
-    compose: compose$1
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var value$1 = function (o) {
</span><span class="cx" style="display: block; padding: 0 10px">     var is = function (v) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4772,11 +4422,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       is: is,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      isValue: $_68e81l6jfuw8kyc.always,
-      isError: $_68e81l6jfuw8kyc.never,
-      getOr: $_68e81l6jfuw8kyc.constant(o),
-      getOrThunk: $_68e81l6jfuw8kyc.constant(o),
-      getOrDie: $_68e81l6jfuw8kyc.constant(o),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      isValue: always,
+      isError: never,
+      getOr: constant(o),
+      getOrThunk: constant(o),
+      getOrDie: constant(o),
</ins><span class="cx" style="display: block; padding: 0 10px">       or: or,
</span><span class="cx" style="display: block; padding: 0 10px">       orThunk: orThunk,
</span><span class="cx" style="display: block; padding: 0 10px">       fold: fold,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4793,7 +4443,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return f();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getOrDie = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_68e81l6jfuw8kyc.die(String(message))();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return die(String(message))();
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var or = function (opt) {
</span><span class="cx" style="display: block; padding: 0 10px">       return opt;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4811,10 +4461,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return onError(message);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      is: $_68e81l6jfuw8kyc.never,
-      isValue: $_68e81l6jfuw8kyc.never,
-      isError: $_68e81l6jfuw8kyc.always,
-      getOr: $_68e81l6jfuw8kyc.identity,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      is: never,
+      isValue: never,
+      isError: always,
+      getOr: identity,
</ins><span class="cx" style="display: block; padding: 0 10px">       getOrThunk: getOrThunk,
</span><span class="cx" style="display: block; padding: 0 10px">       getOrDie: getOrDie,
</span><span class="cx" style="display: block; padding: 0 10px">       or: or,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4821,10 +4471,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       orThunk: orThunk,
</span><span class="cx" style="display: block; padding: 0 10px">       fold: fold,
</span><span class="cx" style="display: block; padding: 0 10px">       map: map,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each: $_68e81l6jfuw8kyc.noop,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each: noop,
</ins><span class="cx" style="display: block; padding: 0 10px">       bind: bind,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      exists: $_68e81l6jfuw8kyc.never,
-      forall: $_68e81l6jfuw8kyc.always,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      exists: never,
+      forall: always,
</ins><span class="cx" style="display: block; padding: 0 10px">       toOption: Option.none
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4833,7 +4483,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     error: error
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function StyleSheetLoader(document, settings) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  function StyleSheetLoader(document$$1, settings) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var idCount = 0;
</span><span class="cx" style="display: block; padding: 0 10px">     var loadedStates = {};
</span><span class="cx" style="display: block; padding: 0 10px">     var maxLoadTime;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4840,7 +4490,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     settings = settings || {};
</span><span class="cx" style="display: block; padding: 0 10px">     maxLoadTime = settings.maxLoadTime || 5000;
</span><span class="cx" style="display: block; padding: 0 10px">     var appendToHead = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      document.getElementsByTagName('head')[0].appendChild(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      document$$1.getElementsByTagName('head')[0].appendChild(node);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var load = function (url, loadedCallback, errorCallback) {
</span><span class="cx" style="display: block; padding: 0 10px">       var link, style, startTime, state;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4871,7 +4521,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var wait = function (testCallback, waitCallback) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!testCallback()) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (new Date().getTime() - startTime < maxLoadTime) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_2m8wq9hjfuw8l41.setTimeout(waitCallback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_9o1ijaijjgwe7dm.setTimeout(waitCallback);
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             failed();
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4879,7 +4529,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var waitForWebKitLinkLoaded = function () {
</span><span class="cx" style="display: block; padding: 0 10px">         wait(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var styleSheets = document.styleSheets;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var styleSheets = document$$1.styleSheets;
</ins><span class="cx" style="display: block; padding: 0 10px">           var styleSheet, i = styleSheets.length, owner;
</span><span class="cx" style="display: block; padding: 0 10px">           while (i--) {
</span><span class="cx" style="display: block; padding: 0 10px">             styleSheet = styleSheets[i];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4901,7 +4551,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }, waitForGeckoLinkLoaded);
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      url = $_52qop8kjfuw8l6v._addCacheSuffix(url);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      url = $_6cwiepljjgwe7j4._addCacheSuffix(url);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!loadedStates[url]) {
</span><span class="cx" style="display: block; padding: 0 10px">         state = {
</span><span class="cx" style="display: block; padding: 0 10px">           passed: [],
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4929,7 +4579,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       state.status = 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      link = document.createElement('link');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      link = document$$1.createElement('link');
</ins><span class="cx" style="display: block; padding: 0 10px">       link.rel = 'stylesheet';
</span><span class="cx" style="display: block; padding: 0 10px">       link.type = 'text/css';
</span><span class="cx" style="display: block; padding: 0 10px">       link.id = 'u' + idCount++;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4941,7 +4591,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         link.onerror = failed;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         if (navigator.userAgent.indexOf('Firefox') > 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          style = document.createElement('style');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          style = document$$1.createElement('style');
</ins><span class="cx" style="display: block; padding: 0 10px">           style.textContent = '@import "' + url + '"';
</span><span class="cx" style="display: block; padding: 0 10px">           waitForGeckoLinkLoaded();
</span><span class="cx" style="display: block; padding: 0 10px">           appendToHead(style);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4954,15 +4604,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var loadF = function (url) {
</span><span class="cx" style="display: block; padding: 0 10px">       return Future.nu(function (resolve) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        load(url, $_68e81l6jfuw8kyc.compose(resolve, $_68e81l6jfuw8kyc.constant(Result.value(url))), $_68e81l6jfuw8kyc.compose(resolve, $_68e81l6jfuw8kyc.constant(Result.error(url))));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        load(url, compose(resolve, constant(Result.value(url))), compose(resolve, constant(Result.error(url))));
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var unbox = function (result) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return result.fold($_68e81l6jfuw8kyc.identity, $_68e81l6jfuw8kyc.identity);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return result.fold(identity, identity);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var loadAll = function (urls, success, failure) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9tz6fr1kjfuw8lcn.par($_9ek1bp4jfuw8kxg.map(urls, loadF)).get(function (result) {
-        var parts = $_9ek1bp4jfuw8kxg.partition(result, function (r) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      par$1(map(urls, loadF)).get(function (result) {
+        var parts = partition(result, function (r) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return r.isValue();
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         if (parts.fail.length > 0) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5162,20 +4812,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">     'ol',
</span><span class="cx" style="display: block; padding: 0 10px">     'dl'
</span><span class="cx" style="display: block; padding: 0 10px">   ];
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var wsElements = [
+    'pre',
+    'script',
+    'textarea',
+    'style'
+  ];
</ins><span class="cx" style="display: block; padding: 0 10px">   var lazyLookup = function (items) {
</span><span class="cx" style="display: block; padding: 0 10px">     var lookup;
</span><span class="cx" style="display: block; padding: 0 10px">     return function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      lookup = lookup ? lookup : $_9ek1bp4jfuw8kxg.mapToObject(items, $_68e81l6jfuw8kyc.constant(true));
-      return lookup.hasOwnProperty($_eaw33d10jfuw8l9f.name(node));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      lookup = lookup ? lookup : mapToObject(items, constant(true));
+      return lookup.hasOwnProperty($_fxxo5411jjgwe7lq.name(node));
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isHeading = lazyLookup(headings);
</span><span class="cx" style="display: block; padding: 0 10px">   var isBlock = lazyLookup(blocks);
</span><span class="cx" style="display: block; padding: 0 10px">   var isInline = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_eaw33d10jfuw8l9f.isElement(node) && !isBlock(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_fxxo5411jjgwe7lq.isElement(node) && !isBlock(node);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isBr = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_eaw33d10jfuw8l9f.isElement(node) && $_eaw33d10jfuw8l9f.name(node) === 'br';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_fxxo5411jjgwe7lq.isElement(node) && $_fxxo5411jjgwe7lq.name(node) === 'br';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isTextBlock = lazyLookup(textBlocks);
</span><span class="cx" style="display: block; padding: 0 10px">   var isList = lazyLookup(lists);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5183,6 +4839,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isVoid = lazyLookup(voids);
</span><span class="cx" style="display: block; padding: 0 10px">   var isTableSection = lazyLookup(tableSections);
</span><span class="cx" style="display: block; padding: 0 10px">   var isTableCell = lazyLookup(tableCells);
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isWsPreserveElement = lazyLookup(wsElements);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var isNodeType = function (type) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5264,7 +4921,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isBr$1 = matchNodeNames('br');
</span><span class="cx" style="display: block; padding: 0 10px">   var isContentEditableTrue = hasContentEditableState('true');
</span><span class="cx" style="display: block; padding: 0 10px">   var isContentEditableFalse = hasContentEditableState('false');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ey7ka11qjfuw8ldg = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3b9u2y1rjjgwe7qe = {
</ins><span class="cx" style="display: block; padding: 0 10px">     isText: isText$1,
</span><span class="cx" style="display: block; padding: 0 10px">     isElement: isElement$1,
</span><span class="cx" style="display: block; padding: 0 10px">     isComment: isComment$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5292,15 +4949,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimNode = function (dom, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     var i, children = node.childNodes;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isElement(node) && isBookmarkNode(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isElement(node) && isBookmarkNode(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     for (i = children.length - 1; i >= 0; i--) {
</span><span class="cx" style="display: block; padding: 0 10px">       trimNode(dom, children[i]);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isDocument(node) === false) {
-      if ($_ey7ka11qjfuw8ldg.isText(node) && node.nodeValue.length > 0) {
-        var trimmedLength = $_52qop8kjfuw8l6v.trim(node.nodeValue).length;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isDocument(node) === false) {
+      if ($_3b9u2y1rjjgwe7qe.isText(node) && node.nodeValue.length > 0) {
+        var trimmedLength = $_6cwiepljjgwe7j4.trim(node.nodeValue).length;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (dom.isBlock(node.parentNode) || trimmedLength > 0) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5307,12 +4964,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (trimmedLength === 0 && surroundedBySpans(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if ($_ey7ka11qjfuw8ldg.isElement(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if ($_3b9u2y1rjjgwe7qe.isElement(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         children = node.childNodes;
</span><span class="cx" style="display: block; padding: 0 10px">         if (children.length === 1 && isBookmarkNode(children[0])) {
</span><span class="cx" style="display: block; padding: 0 10px">           node.parentNode.insertBefore(children[0], node);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (children.length || isVoid($_c9h6qlzjfuw8l98.fromDom(node))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (children.length || isVoid(Element$$1.fromDom(node))) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5320,9 +4977,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return node;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_a6mrv1ojfuw8ld2 = { trimNode: trimNode };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cu5wx21pjjgwe7pz = { trimNode: trimNode };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var makeMap$1 = $_52qop8kjfuw8l6v.makeMap;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var makeMap$1 = $_6cwiepljjgwe7j4.makeMap;
</ins><span class="cx" style="display: block; padding: 0 10px">   var namedEntities;
</span><span class="cx" style="display: block; padding: 0 10px">   var baseEntities;
</span><span class="cx" style="display: block; padding: 0 10px">   var reverseEntities;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5376,7 +5033,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nativeDecode = function (text) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elm;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    elm = $_c9h6qlzjfuw8l98.fromTag('div').dom();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    elm = Element$$1.fromTag('div').dom();
</ins><span class="cx" style="display: block; padding: 0 10px">     elm.innerHTML = text;
</span><span class="cx" style="display: block; padding: 0 10px">     return elm.textContent || elm.innerText || text;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5473,7 +5130,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return reverseEntities[all] || namedEntities[all] || nativeDecode(all);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8uzsfe1rjfuw8ldm = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6pqr9q1sjjgwe7qj = {
</ins><span class="cx" style="display: block; padding: 0 10px">     encodeRaw: encodeRaw,
</span><span class="cx" style="display: block; padding: 0 10px">     encodeAllRaw: encodeAllRaw,
</span><span class="cx" style="display: block; padding: 0 10px">     encodeNumeric: encodeNumeric,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5484,13 +5141,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var mapCache = {};
</span><span class="cx" style="display: block; padding: 0 10px">   var dummyObj = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var makeMap$2 = $_52qop8kjfuw8l6v.makeMap;
-  var each$4 = $_52qop8kjfuw8l6v.each;
-  var extend$1 = $_52qop8kjfuw8l6v.extend;
-  var explode$1 = $_52qop8kjfuw8l6v.explode;
-  var inArray$1 = $_52qop8kjfuw8l6v.inArray;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var makeMap$2 = $_6cwiepljjgwe7j4.makeMap;
+  var each$4 = $_6cwiepljjgwe7j4.each;
+  var extend$1 = $_6cwiepljjgwe7j4.extend;
+  var explode$1 = $_6cwiepljjgwe7j4.explode;
+  var inArray$1 = $_6cwiepljjgwe7j4.inArray;
</ins><span class="cx" style="display: block; padding: 0 10px">   var split = function (items, delim) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    items = $_52qop8kjfuw8l6v.trim(items);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    items = $_6cwiepljjgwe7j4.trim(items);
</ins><span class="cx" style="display: block; padding: 0 10px">     return items ? items.split(delim || ' ') : [];
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var compileSchema = function (type) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5780,7 +5437,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object ' + 'script pre code', shortEndedElementsMap);
</span><span class="cx" style="display: block; padding: 0 10px">     moveCaretBeforeOnEnterElementsMap = createLookupTable('move_caret_before_on_enter_elements', 'table', nonEmptyElementsMap);
</span><span class="cx" style="display: block; padding: 0 10px">     textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + 'blockquote center dir fieldset header footer article section hgroup aside nav figure');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption', textBlockElementsMap);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption details summary', textBlockElementsMap);
</ins><span class="cx" style="display: block; padding: 0 10px">     textInlineElementsMap = createLookupTable('text_inline_elements', 'span strong b em i font strike u var cite ' + 'dfn code mark q sup sub samp');
</span><span class="cx" style="display: block; padding: 0 10px">     each$4((settings.special || 'script noscript noframes noembed title style textarea xmp').split(' '), function (name) {
</span><span class="cx" style="display: block; padding: 0 10px">       specialElements[name] = new RegExp('</' + name + '[^>]*>', 'gi');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6363,9 +6020,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$5 = $_52qop8kjfuw8l6v.each;
-  var grep$1 = $_52qop8kjfuw8l6v.grep;
-  var isIE = $_9fhi43ajfuw8l13.ie;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$5 = $_6cwiepljjgwe7j4.each;
+  var grep$1 = $_6cwiepljjgwe7j4.grep;
+  var isIE = $_bcvfv9ajjgwe79v.ie;
</ins><span class="cx" style="display: block; padding: 0 10px">   var simpleSelectorRe = /^([a-z0-9],?)+$/i;
</span><span class="cx" style="display: block; padding: 0 10px">   var whiteSpaceRegExp$2 = /^[ \t\r\n]*$/;
</span><span class="cx" style="display: block; padding: 0 10px">   var setupAttrHooks = function (styles, settings, getContext) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6372,14 +6029,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var attrHooks = {};
</span><span class="cx" style="display: block; padding: 0 10px">     var keepValues = settings.keep_values;
</span><span class="cx" style="display: block; padding: 0 10px">     var keepUrlHook = {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      set: function ($elm, value, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      set: function ($elm, value, name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (settings.url_converter) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          value = settings.url_converter.call(settings.url_converter_scope || getContext(), value, name, $elm[0]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          value = settings.url_converter.call(settings.url_converter_scope || getContext(), value, name$$1, $elm[0]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $elm.attr('data-mce-' + name, value).attr(name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $elm.attr('data-mce-' + name$$1, value).attr(name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      get: function ($elm, name) {
-        return $elm.attr('data-mce-' + name) || $elm.attr(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      get: function ($elm, name$$1) {
+        return $elm.attr('data-mce-' + name$$1) || $elm.attr(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     attrHooks = {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6454,7 +6111,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var $ = DomQuery.overrideDefaults(function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         context: doc,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        element: self.getRoot()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        element: self$$1.getRoot()
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     var isBlock = function (node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6485,15 +6142,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return $(elm);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getAttrib = function (elm, name, defaultVal) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getAttrib = function (elm, name$$1, defaultVal) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var hook, value;
</span><span class="cx" style="display: block; padding: 0 10px">       var $elm = $$(elm);
</span><span class="cx" style="display: block; padding: 0 10px">       if ($elm.length) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        hook = attrHooks[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        hook = attrHooks[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">         if (hook && hook.get) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          value = hook.get($elm, name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          value = hook.get($elm, name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          value = $elm.attr(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          value = $elm.attr(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof value === 'undefined') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6508,26 +6165,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return node.attributes;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var setAttrib = function (elm, name, value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var setAttrib = function (elm, name$$1, value) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var originalValue, hook;
</span><span class="cx" style="display: block; padding: 0 10px">       if (value === '') {
</span><span class="cx" style="display: block; padding: 0 10px">         value = null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       var $elm = $$(elm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      originalValue = $elm.attr(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      originalValue = $elm.attr(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!$elm.length) {
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      hook = attrHooks[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      hook = attrHooks[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">       if (hook && hook.set) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        hook.set($elm, value, name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        hook.set($elm, value, name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $elm.attr(name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $elm.attr(name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (originalValue !== value && settings.onSetAttrib) {
</span><span class="cx" style="display: block; padding: 0 10px">         settings.onSetAttrib({
</span><span class="cx" style="display: block; padding: 0 10px">           attrElm: $elm,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          attrName: name,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          attrName: name$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">           attrValue: value
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6560,10 +6217,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getPos = function (elm, rootElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_4nsusvmjfuw8l7a.getPos(doc.body, get(elm), rootElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_3h7c3wnjjgwe7jl.getPos(doc.body, get(elm), rootElm);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var setStyle = function (elm, name, value) {
-      var $elm = $$(elm).css(name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var setStyle = function (elm, name$$1, value) {
+      var $elm = $$(elm).css(name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (settings.update_styles) {
</span><span class="cx" style="display: block; padding: 0 10px">         updateInternalStyleAttr(styles, $elm);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6574,18 +6231,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">         updateInternalStyleAttr(styles, $elm);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getStyle = function (elm, name, computed) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getStyle = function (elm, name$$1, computed) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var $elm = $$(elm);
</span><span class="cx" style="display: block; padding: 0 10px">       if (computed) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $elm.css(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $elm.css(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      name = name.replace(/-(\D)/g, function (a, b) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      name$$1 = name$$1.replace(/-(\D)/g, function (a, b) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return b.toUpperCase();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (name === 'float') {
-        name = $_9fhi43ajfuw8l13.ie && $_9fhi43ajfuw8l13.ie < 12 ? 'styleFloat' : 'cssFloat';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (name$$1 === 'float') {
+        name$$1 = $_bcvfv9ajjgwe79v.ie && $_bcvfv9ajjgwe79v.ie < 12 ? 'styleFloat' : 'cssFloat';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $elm[0] && $elm[0].style ? $elm[0].style[name] : undefined;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $elm[0] && $elm[0].style ? $elm[0].style[name$$1] : undefined;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getSize = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">       var w, h;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6647,7 +6304,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var node = get(elm);
</span><span class="cx" style="display: block; padding: 0 10px">       collect = collect === undefined;
</span><span class="cx" style="display: block; padding: 0 10px">       root = root || (getRoot().nodeName !== 'BODY' ? getRoot().parentNode : null);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_52qop8kjfuw8l6v.is(selector, 'string')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_6cwiepljjgwe7j4.is(selector, 'string')) {
</ins><span class="cx" style="display: block; padding: 0 10px">         selectorVal = selector;
</span><span class="cx" style="display: block; padding: 0 10px">         if (selector === '*') {
</span><span class="cx" style="display: block; padding: 0 10px">           selector = function (node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6678,7 +6335,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var parents = getParents(node, selector, root, false);
</span><span class="cx" style="display: block; padding: 0 10px">       return parents && parents.length > 0 ? parents[0] : null;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var _findSib = function (node, selector, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var _findSib = function (node, selector, name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var func = selector;
</span><span class="cx" style="display: block; padding: 0 10px">       if (node) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (typeof selector === 'string') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6686,7 +6343,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             return is(node, selector);
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        for (node = node[name]; node; node = node[name]) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        for (node = node[name$$1]; node; node = node[name$$1]) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (typeof func === 'function' && func(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">             return node;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6709,7 +6366,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!node) {
</span><span class="cx" style="display: block; padding: 0 10px">         return false;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_52qop8kjfuw8l6v.isArray(node) && (node.length || node.length === 0)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_6cwiepljjgwe7j4.isArray(node) && (node.length || node.length === 0)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         result = [];
</span><span class="cx" style="display: block; padding: 0 10px">         each$5(node, function (elm, i) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6726,8 +6383,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var setAttribs = function (elm, attrs) {
</span><span class="cx" style="display: block; padding: 0 10px">       $$(elm).each(function (i, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each$5(attrs, function (value, name) {
-          setAttrib(node, name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each$5(attrs, function (value, name$$1) {
+          setAttrib(node, name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6753,9 +6410,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $elm.html(html);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var add = function (parentElm, name, attrs, html, create) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var add = function (parentElm, name$$1, attrs, html, create) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return run(parentElm, function (parentElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var newElm = typeof name === 'string' ? doc.createElement(name) : name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var newElm = typeof name$$1 === 'string' ? doc.createElement(name$$1) : name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">         setAttribs(newElm, attrs);
</span><span class="cx" style="display: block; padding: 0 10px">         if (html) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (typeof html !== 'string' && html.nodeType) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6767,14 +6424,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return !create ? parentElm.appendChild(newElm) : newElm;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var create = function (name, attrs, html) {
-      return add(doc.createElement(name), name, attrs, html, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var create = function (name$$1, attrs, html) {
+      return add(doc.createElement(name$$1), name$$1, attrs, html, true);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var decode = $_8uzsfe1rjfuw8ldm.decode;
-    var encode = $_8uzsfe1rjfuw8ldm.encodeAllRaw;
-    var createHTML = function (name, attrs, html) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var decode = $_6pqr9q1sjjgwe7qj.decode;
+    var encode = $_6pqr9q1sjjgwe7qj.encodeAllRaw;
+    var createHTML = function (name$$1, attrs, html) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var outHtml = '', key;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      outHtml += '<' + name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      outHtml += '<' + name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       for (key in attrs) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (attrs.hasOwnProperty(key) && attrs[key] !== null && typeof attrs[key] !== 'undefined') {
</span><span class="cx" style="display: block; padding: 0 10px">           outHtml += ' ' + key + '="' + encode(attrs[key]) + '"';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6781,7 +6438,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof html !== 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return outHtml + '>' + html + '</' + name + '>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return outHtml + '>' + html + '</' + name$$1 + '>';
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return outHtml + ' />';
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6827,12 +6484,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var parseStyle = function (cssText) {
</span><span class="cx" style="display: block; padding: 0 10px">       return styles.parse(cssText);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var serializeStyle = function (stylesArg, name) {
-      return styles.serialize(stylesArg, name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var serializeStyle = function (stylesArg, name$$1) {
+      return styles.serialize(stylesArg, name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var addStyle = function (cssText) {
</span><span class="cx" style="display: block; padding: 0 10px">       var head, styleElm;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self !== DOMUtils.DOM && doc === document) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1 !== DOMUtils.DOM && doc === document) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (addedStyles[cssText]) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6858,7 +6515,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var loadCSS = function (url) {
</span><span class="cx" style="display: block; padding: 0 10px">       var head;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self !== DOMUtils.DOM && doc === document) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1 !== DOMUtils.DOM && doc === document) {
</ins><span class="cx" style="display: block; padding: 0 10px">         DOMUtils.DOM.loadCSS(url);
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6868,7 +6525,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       head = doc.getElementsByTagName('head')[0];
</span><span class="cx" style="display: block; padding: 0 10px">       each$5(url.split(','), function (url) {
</span><span class="cx" style="display: block; padding: 0 10px">         var link;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        url = $_52qop8kjfuw8l6v._addCacheSuffix(url);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        url = $_6cwiepljjgwe7j4._addCacheSuffix(url);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (files[url]) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6910,7 +6567,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getOuterHTML = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">       var node = typeof elm === 'string' ? get(elm) : elm;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_ey7ka11qjfuw8ldg.isElement(node) ? node.outerHTML : DomQuery('<div></div>').append(DomQuery(node).clone()).html();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_3b9u2y1rjjgwe7qe.isElement(node) ? node.outerHTML : DomQuery('<div></div>').append(DomQuery(node).clone()).html();
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var setOuterHTML = function (elm, html) {
</span><span class="cx" style="display: block; padding: 0 10px">       $$(elm).each(function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6927,13 +6584,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var insertAfter = function (node, reference) {
</span><span class="cx" style="display: block; padding: 0 10px">       var referenceNode = get(reference);
</span><span class="cx" style="display: block; padding: 0 10px">       return run(node, function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var parent, nextSibling;
-        parent = referenceNode.parentNode;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var parent$$1, nextSibling;
+        parent$$1 = referenceNode.parentNode;
</ins><span class="cx" style="display: block; padding: 0 10px">         nextSibling = referenceNode.nextSibling;
</span><span class="cx" style="display: block; padding: 0 10px">         if (nextSibling) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          parent.insertBefore(node, nextSibling);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          parent$$1.insertBefore(node, nextSibling);
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          parent.appendChild(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          parent$$1.appendChild(node);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return node;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6940,7 +6597,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var replace = function (newElm, oldElm, keepChildren) {
</span><span class="cx" style="display: block; padding: 0 10px">       return run(oldElm, function (oldElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_52qop8kjfuw8l6v.is(oldElm, 'array')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_6cwiepljjgwe7j4.is(oldElm, 'array')) {
</ins><span class="cx" style="display: block; padding: 0 10px">           newElm = newElm.cloneNode(true);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (keepChildren) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6951,10 +6608,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return oldElm.parentNode.replaceChild(newElm, oldElm);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var rename = function (elm, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var rename = function (elm, name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var newElm;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (elm.nodeName !== name.toUpperCase()) {
-        newElm = create(name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (elm.nodeName !== name$$1.toUpperCase()) {
+        newElm = create(name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         each$5(getAttribs(elm), function (attrNode) {
</span><span class="cx" style="display: block; padding: 0 10px">           setAttrib(newElm, attrNode.nodeName, getAttrib(elm, attrNode.nodeName));
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6980,10 +6637,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return ps;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var toHex = function (rgbVal) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return styles.toHex($_52qop8kjfuw8l6v.trim(rgbVal));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return styles.toHex($_6cwiepljjgwe7j4.trim(rgbVal));
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var isEmpty = function (node, elements) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var i, attributes, type, whitespace, walker, name, brCount = 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var i, attributes, type, whitespace, walker, name$$1, brCount = 0;
</ins><span class="cx" style="display: block; padding: 0 10px">       node = node.firstChild;
</span><span class="cx" style="display: block; padding: 0 10px">       if (node) {
</span><span class="cx" style="display: block; padding: 0 10px">         walker = new TreeWalker(node, node.parentNode);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6991,15 +6648,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">         whitespace = schema ? schema.getWhiteSpaceElements() : {};
</span><span class="cx" style="display: block; padding: 0 10px">         do {
</span><span class="cx" style="display: block; padding: 0 10px">           type = node.nodeType;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ($_ey7ka11qjfuw8ldg.isElement(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ($_3b9u2y1rjjgwe7qe.isElement(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             var bogusVal = node.getAttribute('data-mce-bogus');
</span><span class="cx" style="display: block; padding: 0 10px">             if (bogusVal) {
</span><span class="cx" style="display: block; padding: 0 10px">               node = walker.next(bogusVal === 'all');
</span><span class="cx" style="display: block; padding: 0 10px">               continue;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            name = node.nodeName.toLowerCase();
-            if (elements && elements[name]) {
-              if (name === 'br') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            name$$1 = node.nodeName.toLowerCase();
+            if (elements && elements[name$$1]) {
+              if (name$$1 === 'br') {
</ins><span class="cx" style="display: block; padding: 0 10px">                 brCount++;
</span><span class="cx" style="display: block; padding: 0 10px">                 node = walker.next();
</span><span class="cx" style="display: block; padding: 0 10px">                 continue;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7009,8 +6666,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">             attributes = getAttribs(node);
</span><span class="cx" style="display: block; padding: 0 10px">             i = attributes.length;
</span><span class="cx" style="display: block; padding: 0 10px">             while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              name = attributes[i].nodeName;
-              if (name === 'name' || name === 'data-mce-bookmark') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              name$$1 = attributes[i].nodeName;
+              if (name$$1 === 'name' || name$$1 === 'data-mce-bookmark') {
</ins><span class="cx" style="display: block; padding: 0 10px">                 return false;
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7043,22 +6700,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">         r.setEnd(parentElm.parentNode, findNodeIndex(parentElm) + 1);
</span><span class="cx" style="display: block; padding: 0 10px">         aft = r.extractContents();
</span><span class="cx" style="display: block; padding: 0 10px">         pa = parentElm.parentNode;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        pa.insertBefore($_a6mrv1ojfuw8ld2.trimNode(self, bef), parentElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        pa.insertBefore($_cu5wx21pjjgwe7pz.trimNode(self$$1, bef), parentElm);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (replacementElm) {
</span><span class="cx" style="display: block; padding: 0 10px">           pa.insertBefore(replacementElm, parentElm);
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           pa.insertBefore(splitElm, parentElm);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        pa.insertBefore($_a6mrv1ojfuw8ld2.trimNode(self, aft), parentElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        pa.insertBefore($_cu5wx21pjjgwe7pz.trimNode(self$$1, aft), parentElm);
</ins><span class="cx" style="display: block; padding: 0 10px">         remove(parentElm);
</span><span class="cx" style="display: block; padding: 0 10px">         return replacementElm || splitElm;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var bind = function (target, name, func, scope) {
-      if ($_52qop8kjfuw8l6v.isArray(target)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var bind = function (target, name$$1, func, scope) {
+      if ($_6cwiepljjgwe7j4.isArray(target)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var i = target.length;
</span><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          target[i] = bind(target[i], name, func, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          target[i] = bind(target[i], name$$1, func, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return target;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7065,19 +6722,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.collect && (target === doc || target === win)) {
</span><span class="cx" style="display: block; padding: 0 10px">         boundEvents.push([
</span><span class="cx" style="display: block; padding: 0 10px">           target,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          name,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          name$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">           func,
</span><span class="cx" style="display: block; padding: 0 10px">           scope
</span><span class="cx" style="display: block; padding: 0 10px">         ]);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return events.bind(target, name, func, scope || self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return events.bind(target, name$$1, func, scope || self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var unbind = function (target, name, func) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var unbind = function (target, name$$1, func) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_52qop8kjfuw8l6v.isArray(target)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_6cwiepljjgwe7j4.isArray(target)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         i = target.length;
</span><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          target[i] = unbind(target[i], name, func);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          target[i] = unbind(target[i], name$$1, func);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return target;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7085,18 +6742,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">         i = boundEvents.length;
</span><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><span class="cx" style="display: block; padding: 0 10px">           var item = boundEvents[i];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (target === item[0] && (!name || name === item[1]) && (!func || func === item[2])) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (target === item[0] && (!name$$1 || name$$1 === item[1]) && (!func || func === item[2])) {
</ins><span class="cx" style="display: block; padding: 0 10px">             events.unbind(item[0], item[1], item[2]);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return events.unbind(target, name, func);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return events.unbind(target, name$$1, func);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var fire = function (target, name, evt) {
-      return events.fire(target, name, evt);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var fire = function (target, name$$1, evt) {
+      return events.fire(target, name$$1, evt);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getContentEditable = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (node && $_ey7ka11qjfuw8ldg.isElement(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (node && $_3b9u2y1rjjgwe7qe.isElement(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var contentEditable = node.getAttribute('data-mce-contenteditable');
</span><span class="cx" style="display: block; padding: 0 10px">         if (contentEditable && contentEditable !== 'inherit') {
</span><span class="cx" style="display: block; padding: 0 10px">           return contentEditable;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7129,9 +6786,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         Sizzle.setDocument();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isChildOf = function (node, parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isChildOf = function (node, parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       while (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (parent === node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (parent$$1 === node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         node = node.parentNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7141,7 +6798,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var dumpRng = function (r) {
</span><span class="cx" style="display: block; padding: 0 10px">       return 'startContainer: ' + r.startContainer.nodeName + ', startOffset: ' + r.startOffset + ', endContainer: ' + r.endContainer.nodeName + ', endOffset: ' + r.endOffset;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var self = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var self$$1 = {
</ins><span class="cx" style="display: block; padding: 0 10px">       doc: doc,
</span><span class="cx" style="display: block; padding: 0 10px">       settings: settings,
</span><span class="cx" style="display: block; padding: 0 10px">       win: win,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7220,9 +6877,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       dumpRng: dumpRng
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     attrHooks = setupAttrHooks(styles, settings, function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return self;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return self$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   (function (DOMUtils) {
</span><span class="cx" style="display: block; padding: 0 10px">     DOMUtils.DOM = DOMUtils(document);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7231,9 +6888,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var DOMUtils$1 = DOMUtils;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM = DOMUtils$1.DOM;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$6 = $_52qop8kjfuw8l6v.each;
-  var grep$2 = $_52qop8kjfuw8l6v.grep;
-  var isFunction = function (f) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$6 = $_6cwiepljjgwe7j4.each;
+  var grep$2 = $_6cwiepljjgwe7j4.grep;
+  var isFunction$1 = function (f) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return typeof f === 'function';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ScriptLoader = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7257,7 +6914,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         success();
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var error = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (isFunction(failure)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (isFunction$1(failure)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           failure();
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           if (typeof console !== 'undefined' && console.log) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7269,7 +6926,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       elm = document.createElement('script');
</span><span class="cx" style="display: block; padding: 0 10px">       elm.id = id;
</span><span class="cx" style="display: block; padding: 0 10px">       elm.type = 'text/javascript';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      elm.src = $_52qop8kjfuw8l6v._addCacheSuffix(url);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      elm.src = $_6cwiepljjgwe7j4._addCacheSuffix(url);
</ins><span class="cx" style="display: block; padding: 0 10px">       if ('onreadystatechange' in elm) {
</span><span class="cx" style="display: block; padding: 0 10px">         elm.onreadystatechange = function () {
</span><span class="cx" style="display: block; padding: 0 10px">           if (/loaded|complete/.test(elm.readyState)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7315,10 +6972,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     this.loadScripts = function (scripts, success, scope, failure) {
</span><span class="cx" style="display: block; padding: 0 10px">       var loadScripts;
</span><span class="cx" style="display: block; padding: 0 10px">       var failures = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var execCallbacks = function (name, url) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var execCallbacks = function (name$$1, url) {
</ins><span class="cx" style="display: block; padding: 0 10px">         each$6(scriptLoadedCallbacks[url], function (callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (isFunction(callback[name])) {
-            callback[name].call(callback.scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (isFunction$1(callback[name$$1])) {
+            callback[name$$1].call(callback.scope);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         scriptLoadedCallbacks[url] = undefined;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7362,11 +7019,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">           queueLoadedCallbacks.length = 0;
</span><span class="cx" style="display: block; padding: 0 10px">           each$6(notifyCallbacks, function (callback) {
</span><span class="cx" style="display: block; padding: 0 10px">             if (failures.length === 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              if (isFunction(callback.success)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              if (isFunction$1(callback.success)) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 callback.success.call(callback.scope);
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              if (isFunction(callback.failure)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              if (isFunction$1(callback.failure)) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 callback.failure.call(callback.scope, failures);
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7378,7 +7035,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   ScriptLoader.ScriptLoader = new ScriptLoader();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$7 = $_52qop8kjfuw8l6v.each;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$7 = $_6cwiepljjgwe7j4.each;
</ins><span class="cx" style="display: block; padding: 0 10px">   function AddOnManager() {
</span><span class="cx" style="display: block; padding: 0 10px">     var _this = this;
</span><span class="cx" style="display: block; padding: 0 10px">     var items = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7418,7 +7075,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         instance: addOn,
</span><span class="cx" style="display: block; padding: 0 10px">         dependencies: dependencies
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var result = $_9ek1bp4jfuw8kxg.partition(_listeners, function (listener) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var result = partition(_listeners, function (listener) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return listener.name === id;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       _listeners = result.fail;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7451,7 +7108,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         ScriptLoader.ScriptLoader.add(pluginUrl + '/' + script);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var loadDependencies = function (addOnUrl, success, scope) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var loadDependencies = function (name, addOnUrl, success, scope) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var deps = dependencies(name);
</span><span class="cx" style="display: block; padding: 0 10px">       each$7(deps, function (dep) {
</span><span class="cx" style="display: block; padding: 0 10px">         var newUrl = createUrl(addOnUrl, dep);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7475,10 +7132,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       urls[name] = urlString.substring(0, urlString.lastIndexOf('/'));
</span><span class="cx" style="display: block; padding: 0 10px">       if (lookup[name]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        loadDependencies(addOnUrl, success, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        loadDependencies(name, addOnUrl, success, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         ScriptLoader.ScriptLoader.add(urlString, function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return loadDependencies(addOnUrl, success, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return loadDependencies(name, addOnUrl, success, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">         }, scope, failure);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7513,6 +7170,793 @@
</span><span class="cx" style="display: block; padding: 0 10px">     AddOnManager.ThemeManager = AddOnManager();
</span><span class="cx" style="display: block; padding: 0 10px">   }(AddOnManager || (AddOnManager = {})));
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var before = function (marker, element) {
+    var parent = $_d3rmjp18jjgwe7nc.parent(marker);
+    parent.each(function (v) {
+      v.dom().insertBefore(element.dom(), marker.dom());
+    });
+  };
+  var after = function (marker, element) {
+    var sibling = $_d3rmjp18jjgwe7nc.nextSibling(marker);
+    sibling.fold(function () {
+      var parent = $_d3rmjp18jjgwe7nc.parent(marker);
+      parent.each(function (v) {
+        append(v, element);
+      });
+    }, function (v) {
+      before(v, element);
+    });
+  };
+  var prepend = function (parent, element) {
+    var firstChild = $_d3rmjp18jjgwe7nc.firstChild(parent);
+    firstChild.fold(function () {
+      append(parent, element);
+    }, function (v) {
+      parent.dom().insertBefore(element.dom(), v.dom());
+    });
+  };
+  var append = function (parent, element) {
+    parent.dom().appendChild(element.dom());
+  };
+  var appendAt = function (parent, element, index) {
+    $_d3rmjp18jjgwe7nc.child(parent, index).fold(function () {
+      append(parent, element);
+    }, function (v) {
+      before(v, element);
+    });
+  };
+  var wrap$1 = function (element, wrapper) {
+    before(element, wrapper);
+    append(wrapper, element);
+  };
+  var $_ewo3u51yjjgwe7su = {
+    before: before,
+    after: after,
+    prepend: prepend,
+    append: append,
+    appendAt: appendAt,
+    wrap: wrap$1
+  };
+
+  var before$1 = function (marker, elements) {
+    each(elements, function (x) {
+      $_ewo3u51yjjgwe7su.before(marker, x);
+    });
+  };
+  var after$1 = function (marker, elements) {
+    each(elements, function (x, i) {
+      var e = i === 0 ? marker : elements[i - 1];
+      $_ewo3u51yjjgwe7su.after(e, x);
+    });
+  };
+  var prepend$1 = function (parent, elements) {
+    each(elements.slice().reverse(), function (x) {
+      $_ewo3u51yjjgwe7su.prepend(parent, x);
+    });
+  };
+  var append$1 = function (parent, elements) {
+    each(elements, function (x) {
+      $_ewo3u51yjjgwe7su.append(parent, x);
+    });
+  };
+  var $_4wf3mo1xjjgwe7sq = {
+    before: before$1,
+    after: after$1,
+    prepend: prepend$1,
+    append: append$1
+  };
+
+  var empty = function (element) {
+    element.dom().textContent = '';
+    each($_d3rmjp18jjgwe7nc.children(element), function (rogue) {
+      remove$2(rogue);
+    });
+  };
+  var remove$2 = function (element) {
+    var dom = element.dom();
+    if (dom.parentNode !== null)
+      dom.parentNode.removeChild(dom);
+  };
+  var unwrap = function (wrapper) {
+    var children = $_d3rmjp18jjgwe7nc.children(wrapper);
+    if (children.length > 0)
+      $_4wf3mo1xjjgwe7sq.before(wrapper, children);
+    remove$2(wrapper);
+  };
+  var $_81exq51wjjgwe7sm = {
+    empty: empty,
+    remove: remove$2,
+    unwrap: unwrap
+  };
+
+  var first$1 = function (fn, rate) {
+    var timer = null;
+    var cancel = function () {
+      if (timer !== null) {
+        clearTimeout(timer);
+        timer = null;
+      }
+    };
+    var throttle = function () {
+      var args = [];
+      for (var _i = 0; _i < arguments.length; _i++) {
+        args[_i] = arguments[_i];
+      }
+      if (timer === null) {
+        timer = setTimeout(function () {
+          fn.apply(null, args);
+          timer = null;
+        }, rate);
+      }
+    };
+    return {
+      cancel: cancel,
+      throttle: throttle
+    };
+  };
+  var last$3 = function (fn, rate) {
+    var timer = null;
+    var cancel = function () {
+      if (timer !== null) {
+        clearTimeout(timer);
+        timer = null;
+      }
+    };
+    var throttle = function () {
+      var args = [];
+      for (var _i = 0; _i < arguments.length; _i++) {
+        args[_i] = arguments[_i];
+      }
+      if (timer !== null)
+        clearTimeout(timer);
+      timer = setTimeout(function () {
+        fn.apply(null, args);
+        timer = null;
+      }, rate);
+    };
+    return {
+      cancel: cancel,
+      throttle: throttle
+    };
+  };
+
+  var Cell = function (initial) {
+    var value = initial;
+    var get = function () {
+      return value;
+    };
+    var set = function (v) {
+      value = v;
+    };
+    var clone = function () {
+      return Cell(get());
+    };
+    return {
+      get: get,
+      set: set,
+      clone: clone
+    };
+  };
+
+  function Toggler (turnOff, turnOn, initial) {
+    var active = initial || false;
+    var on = function () {
+      turnOn();
+      active = true;
+    };
+    var off = function () {
+      turnOff();
+      active = false;
+    };
+    var toggle = function () {
+      var f = active ? off : on;
+      f();
+    };
+    var isOn = function () {
+      return active;
+    };
+    return {
+      on: on,
+      off: off,
+      toggle: toggle,
+      isOn: isOn
+    };
+  }
+
+  var read = function (element, attr) {
+    var value = $_etx7gr15jjgwe7mr.get(element, attr);
+    return value === undefined || value === '' ? [] : value.split(' ');
+  };
+  var add = function (element, attr, id) {
+    var old = read(element, attr);
+    var nu = old.concat([id]);
+    $_etx7gr15jjgwe7mr.set(element, attr, nu.join(' '));
+    return true;
+  };
+  var remove$3 = function (element, attr, id) {
+    var nu = filter(read(element, attr), function (v) {
+      return v !== id;
+    });
+    if (nu.length > 0)
+      $_etx7gr15jjgwe7mr.set(element, attr, nu.join(' '));
+    else
+      $_etx7gr15jjgwe7mr.remove(element, attr);
+    return false;
+  };
+  var $_93yq9626jjgwe7ub = {
+    read: read,
+    add: add,
+    remove: remove$3
+  };
+
+  var supports = function (element) {
+    return element.dom().classList !== undefined;
+  };
+  var get$2 = function (element) {
+    return $_93yq9626jjgwe7ub.read(element, 'class');
+  };
+  var add$1 = function (element, clazz) {
+    return $_93yq9626jjgwe7ub.add(element, 'class', clazz);
+  };
+  var remove$4 = function (element, clazz) {
+    return $_93yq9626jjgwe7ub.remove(element, 'class', clazz);
+  };
+  var toggle = function (element, clazz) {
+    if (contains(get$2(element), clazz)) {
+      return remove$4(element, clazz);
+    } else {
+      return add$1(element, clazz);
+    }
+  };
+  var $_4u1bru25jjgwe7u6 = {
+    get: get$2,
+    add: add$1,
+    remove: remove$4,
+    toggle: toggle,
+    supports: supports
+  };
+
+  var add$2 = function (element, clazz) {
+    if ($_4u1bru25jjgwe7u6.supports(element))
+      element.dom().classList.add(clazz);
+    else
+      $_4u1bru25jjgwe7u6.add(element, clazz);
+  };
+  var cleanClass = function (element) {
+    var classList = $_4u1bru25jjgwe7u6.supports(element) ? element.dom().classList : $_4u1bru25jjgwe7u6.get(element);
+    if (classList.length === 0) {
+      $_etx7gr15jjgwe7mr.remove(element, 'class');
+    }
+  };
+  var remove$5 = function (element, clazz) {
+    if ($_4u1bru25jjgwe7u6.supports(element)) {
+      var classList = element.dom().classList;
+      classList.remove(clazz);
+    } else
+      $_4u1bru25jjgwe7u6.remove(element, clazz);
+    cleanClass(element);
+  };
+  var toggle$1 = function (element, clazz) {
+    return $_4u1bru25jjgwe7u6.supports(element) ? element.dom().classList.toggle(clazz) : $_4u1bru25jjgwe7u6.toggle(element, clazz);
+  };
+  var toggler = function (element, clazz) {
+    var hasClasslist = $_4u1bru25jjgwe7u6.supports(element);
+    var classList = element.dom().classList;
+    var off = function () {
+      if (hasClasslist)
+        classList.remove(clazz);
+      else
+        $_4u1bru25jjgwe7u6.remove(element, clazz);
+    };
+    var on = function () {
+      if (hasClasslist)
+        classList.add(clazz);
+      else
+        $_4u1bru25jjgwe7u6.add(element, clazz);
+    };
+    return Toggler(off, on, has$1(element, clazz));
+  };
+  var has$1 = function (element, clazz) {
+    return $_4u1bru25jjgwe7u6.supports(element) && element.dom().classList.contains(clazz);
+  };
+  var $_9lrjdk23jjgwe7u2 = {
+    add: add$2,
+    remove: remove$5,
+    toggle: toggle$1,
+    toggler: toggler,
+    has: has$1
+  };
+
+  var all$1 = function (predicate) {
+    return descendants($_eu440l16jjgwe7n2.body(), predicate);
+  };
+  var ancestors = function (scope, predicate, isRoot) {
+    return filter($_d3rmjp18jjgwe7nc.parents(scope, isRoot), predicate);
+  };
+  var siblings$1 = function (scope, predicate) {
+    return filter($_d3rmjp18jjgwe7nc.siblings(scope), predicate);
+  };
+  var children$1 = function (scope, predicate) {
+    return filter($_d3rmjp18jjgwe7nc.children(scope), predicate);
+  };
+  var descendants = function (scope, predicate) {
+    var result = [];
+    each($_d3rmjp18jjgwe7nc.children(scope), function (x) {
+      if (predicate(x)) {
+        result = result.concat([x]);
+      }
+      result = result.concat(descendants(x, predicate));
+    });
+    return result;
+  };
+  var $_15b10128jjgwe7uh = {
+    all: all$1,
+    ancestors: ancestors,
+    siblings: siblings$1,
+    children: children$1,
+    descendants: descendants
+  };
+
+  var all$2 = function (selector) {
+    return $_4yq1xp1gjjgwe7op.all(selector);
+  };
+  var ancestors$1 = function (scope, selector, isRoot) {
+    return $_15b10128jjgwe7uh.ancestors(scope, function (e) {
+      return $_4yq1xp1gjjgwe7op.is(e, selector);
+    }, isRoot);
+  };
+  var siblings$2 = function (scope, selector) {
+    return $_15b10128jjgwe7uh.siblings(scope, function (e) {
+      return $_4yq1xp1gjjgwe7op.is(e, selector);
+    });
+  };
+  var children$2 = function (scope, selector) {
+    return $_15b10128jjgwe7uh.children(scope, function (e) {
+      return $_4yq1xp1gjjgwe7op.is(e, selector);
+    });
+  };
+  var descendants$1 = function (scope, selector) {
+    return $_4yq1xp1gjjgwe7op.all(selector, scope);
+  };
+  var $_d3ydn427jjgwe7uf = {
+    all: all$2,
+    ancestors: ancestors$1,
+    siblings: siblings$2,
+    children: children$2,
+    descendants: descendants$1
+  };
+
+  function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {
+    return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);
+  }
+
+  var first$2 = function (predicate) {
+    return descendant($_eu440l16jjgwe7n2.body(), predicate);
+  };
+  var ancestor = function (scope, predicate, isRoot) {
+    var element = scope.dom();
+    var stop = isFunction(isRoot) ? isRoot : constant(false);
+    while (element.parentNode) {
+      element = element.parentNode;
+      var el = Element$$1.fromDom(element);
+      if (predicate(el))
+        return Option.some(el);
+      else if (stop(el))
+        break;
+    }
+    return Option.none();
+  };
+  var closest = function (scope, predicate, isRoot) {
+    var is = function (scope) {
+      return predicate(scope);
+    };
+    return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);
+  };
+  var sibling$1 = function (scope, predicate) {
+    var element = scope.dom();
+    if (!element.parentNode)
+      return Option.none();
+    return child$1(Element$$1.fromDom(element.parentNode), function (x) {
+      return !$_5raon11ejjgwe7o5.eq(scope, x) && predicate(x);
+    });
+  };
+  var child$1 = function (scope, predicate) {
+    var result = find(scope.dom().childNodes, compose(predicate, Element$$1.fromDom));
+    return result.map(Element$$1.fromDom);
+  };
+  var descendant = function (scope, predicate) {
+    var descend = function (node) {
+      for (var i = 0; i < node.childNodes.length; i++) {
+        if (predicate(Element$$1.fromDom(node.childNodes[i])))
+          return Option.some(Element$$1.fromDom(node.childNodes[i]));
+        var res = descend(node.childNodes[i]);
+        if (res.isSome())
+          return res;
+      }
+      return Option.none();
+    };
+    return descend(scope.dom());
+  };
+  var $_7kjxyh2ajjgwe7un = {
+    first: first$2,
+    ancestor: ancestor,
+    closest: closest,
+    sibling: sibling$1,
+    child: child$1,
+    descendant: descendant
+  };
+
+  var first$3 = function (selector) {
+    return $_4yq1xp1gjjgwe7op.one(selector);
+  };
+  var ancestor$1 = function (scope, selector, isRoot) {
+    return $_7kjxyh2ajjgwe7un.ancestor(scope, function (e) {
+      return $_4yq1xp1gjjgwe7op.is(e, selector);
+    }, isRoot);
+  };
+  var sibling$2 = function (scope, selector) {
+    return $_7kjxyh2ajjgwe7un.sibling(scope, function (e) {
+      return $_4yq1xp1gjjgwe7op.is(e, selector);
+    });
+  };
+  var child$2 = function (scope, selector) {
+    return $_7kjxyh2ajjgwe7un.child(scope, function (e) {
+      return $_4yq1xp1gjjgwe7op.is(e, selector);
+    });
+  };
+  var descendant$1 = function (scope, selector) {
+    return $_4yq1xp1gjjgwe7op.one(selector, scope);
+  };
+  var closest$1 = function (scope, selector, isRoot) {
+    return ClosestOrAncestor($_4yq1xp1gjjgwe7op.is, ancestor$1, scope, selector, isRoot);
+  };
+  var $_ajwe9029jjgwe7ul = {
+    first: first$3,
+    ancestor: ancestor$1,
+    sibling: sibling$2,
+    child: child$2,
+    descendant: descendant$1,
+    closest: closest$1
+  };
+
+  var annotation = constant('mce-annotation');
+  var dataAnnotation = constant('data-mce-annotation');
+  var dataAnnotationId = constant('data-mce-annotation-uid');
+
+  var identify = function (editor, annotationName) {
+    var rng = editor.selection.getRng();
+    var start = Element$$1.fromDom(rng.startContainer);
+    var root = Element$$1.fromDom(editor.getBody());
+    var selector = annotationName.fold(function () {
+      return '.' + annotation();
+    }, function (an) {
+      return '[' + dataAnnotation() + '="' + an + '"]';
+    });
+    var newStart = $_d3rmjp18jjgwe7nc.child(start, rng.startOffset).getOr(start);
+    var closest = $_ajwe9029jjgwe7ul.closest(newStart, selector, function (n) {
+      return $_5raon11ejjgwe7o5.eq(n, root);
+    });
+    var getAttr = function (c, property) {
+      if ($_etx7gr15jjgwe7mr.has(c, property)) {
+        return Option.some($_etx7gr15jjgwe7mr.get(c, property));
+      } else {
+        return Option.none();
+      }
+    };
+    return closest.bind(function (c) {
+      return getAttr(c, '' + dataAnnotationId()).bind(function (uid) {
+        return getAttr(c, '' + dataAnnotation()).map(function (name) {
+          var elements = findMarkers(editor, uid);
+          return {
+            uid: uid,
+            name: name,
+            elements: elements
+          };
+        });
+      });
+    });
+  };
+  var isAnnotation = function (elem) {
+    return $_fxxo5411jjgwe7lq.isElement(elem) && $_9lrjdk23jjgwe7u2.has(elem, annotation());
+  };
+  var findMarkers = function (editor, uid) {
+    var body = Element$$1.fromDom(editor.getBody());
+    return $_d3ydn427jjgwe7uf.descendants(body, '[' + dataAnnotationId() + '="' + uid + '"]');
+  };
+  var findAll = function (editor, name) {
+    var body = Element$$1.fromDom(editor.getBody());
+    var markers = $_d3ydn427jjgwe7uf.descendants(body, '[' + dataAnnotation() + '="' + name + '"]');
+    var directory = {};
+    each(markers, function (m) {
+      var uid = $_etx7gr15jjgwe7mr.get(m, dataAnnotationId());
+      var nodesAlready = directory.hasOwnProperty(uid) ? directory[uid] : [];
+      directory[uid] = nodesAlready.concat([m]);
+    });
+    return directory;
+  };
+
+  var setup = function (editor, registry) {
+    var changeCallbacks = Cell({});
+    var initData = function () {
+      return {
+        listeners: [],
+        previous: Cell(Option.none())
+      };
+    };
+    var withCallbacks = function (name, f) {
+      updateCallbacks(name, function (data) {
+        f(data);
+        return data;
+      });
+    };
+    var updateCallbacks = function (name, f) {
+      var callbackMap = changeCallbacks.get();
+      var data = callbackMap.hasOwnProperty(name) ? callbackMap[name] : initData();
+      var outputData = f(data);
+      callbackMap[name] = outputData;
+      changeCallbacks.set(callbackMap);
+    };
+    var fireCallbacks = function (name, uid, elements) {
+      withCallbacks(name, function (data) {
+        each(data.listeners, function (f) {
+          return f(true, name, {
+            uid: uid,
+            nodes: map(elements, function (elem) {
+              return elem.dom();
+            })
+          });
+        });
+      });
+    };
+    var fireNoAnnotation = function (name) {
+      withCallbacks(name, function (data) {
+        each(data.listeners, function (f) {
+          return f(false, name);
+        });
+      });
+    };
+    var onNodeChange = last$3(function () {
+      var callbackMap = changeCallbacks.get();
+      var annotations = sort(keys(callbackMap));
+      each(annotations, function (name) {
+        updateCallbacks(name, function (data) {
+          var prev = data.previous.get();
+          identify(editor, Option.some(name)).fold(function () {
+            if (prev.isSome()) {
+              fireNoAnnotation(name);
+              data.previous.set(Option.none());
+            }
+          }, function (_a) {
+            var uid = _a.uid, name = _a.name, elements = _a.elements;
+            if (!prev.is(uid)) {
+              fireCallbacks(name, uid, elements);
+              data.previous.set(Option.some(uid));
+            }
+          });
+          return {
+            previous: data.previous,
+            listeners: data.listeners
+          };
+        });
+      });
+    }, 30);
+    editor.on('remove', function () {
+      onNodeChange.cancel();
+    });
+    editor.on('nodeChange', function () {
+      onNodeChange.throttle();
+    });
+    var addListener = function (name, f) {
+      updateCallbacks(name, function (data) {
+        return {
+          previous: data.previous,
+          listeners: data.listeners.concat([f])
+        };
+      });
+    };
+    return { addListener: addListener };
+  };
+
+  var setup$1 = function (editor, registry) {
+    var identifyParserNode = function (span) {
+      var optAnnotation = Option.from(span.attributes.map[dataAnnotation()]);
+      return optAnnotation.bind(registry.lookup);
+    };
+    editor.on('init', function () {
+      editor.serializer.addNodeFilter('span', function (spans) {
+        each(spans, function (span) {
+          identifyParserNode(span).each(function (settings) {
+            if (settings.persistent === false) {
+              span.unwrap();
+            }
+          });
+        });
+      });
+    });
+  };
+
+  var create$1 = function () {
+    var annotations = {};
+    var register = function (name, settings) {
+      annotations[name] = {
+        name: name,
+        settings: settings
+      };
+    };
+    var lookup = function (name) {
+      return annotations.hasOwnProperty(name) ? Option.from(annotations[name]).map(function (a) {
+        return a.settings;
+      }) : Option.none();
+    };
+    return {
+      register: register,
+      lookup: lookup
+    };
+  };
+
+  var unique = 0;
+  var generate = function (prefix) {
+    var date = new Date();
+    var time = date.getTime();
+    var random = Math.floor(Math.random() * 1000000000);
+    unique++;
+    return prefix + '_' + random + unique + String(time);
+  };
+
+  var add$3 = function (element, classes) {
+    each(classes, function (x) {
+      $_9lrjdk23jjgwe7u2.add(element, x);
+    });
+  };
+  var remove$6 = function (element, classes) {
+    each(classes, function (x) {
+      $_9lrjdk23jjgwe7u2.remove(element, x);
+    });
+  };
+  var toggle$2 = function (element, classes) {
+    each(classes, function (x) {
+      $_9lrjdk23jjgwe7u2.toggle(element, x);
+    });
+  };
+  var hasAll = function (element, classes) {
+    return forall(classes, function (clazz) {
+      return $_9lrjdk23jjgwe7u2.has(element, clazz);
+    });
+  };
+  var hasAny = function (element, classes) {
+    return exists(classes, function (clazz) {
+      return $_9lrjdk23jjgwe7u2.has(element, clazz);
+    });
+  };
+  var getNative = function (element) {
+    var classList = element.dom().classList;
+    var r = new Array(classList.length);
+    for (var i = 0; i < classList.length; i++) {
+      r[i] = classList.item(i);
+    }
+    return r;
+  };
+  var get$3 = function (element) {
+    return $_4u1bru25jjgwe7u6.supports(element) ? getNative(element) : $_4u1bru25jjgwe7u6.get(element);
+  };
+  var $_cu95hr2hjjgwe7w8 = {
+    add: add$3,
+    remove: remove$6,
+    toggle: toggle$2,
+    hasAll: hasAll,
+    hasAny: hasAny,
+    get: get$3
+  };
+
+  var clone$1 = function (original, deep) {
+    return Element$$1.fromDom(original.dom().cloneNode(deep));
+  };
+  var shallow = function (original) {
+    return clone$1(original, false);
+  };
+  var deep = function (original) {
+    return clone$1(original, true);
+  };
+  var shallowAs = function (original, tag) {
+    var nu = Element$$1.fromTag(tag);
+    var attributes = $_etx7gr15jjgwe7mr.clone(original);
+    $_etx7gr15jjgwe7mr.setAll(nu, attributes);
+    return nu;
+  };
+  var copy$1 = function (original, tag) {
+    var nu = shallowAs(original, tag);
+    var cloneChildren = $_d3rmjp18jjgwe7nc.children(deep(original));
+    $_4wf3mo1xjjgwe7sq.append(nu, cloneChildren);
+    return nu;
+  };
+  var mutate = function (original, tag) {
+    var nu = shallowAs(original, tag);
+    $_ewo3u51yjjgwe7su.before(original, nu);
+    var children = $_d3rmjp18jjgwe7nc.children(original);
+    $_4wf3mo1xjjgwe7sq.append(nu, children);
+    $_81exq51wjjgwe7sm.remove(original);
+    return nu;
+  };
+  var $_6do1m42ijjgwe7wd = {
+    shallow: shallow,
+    shallowAs: shallowAs,
+    deep: deep,
+    copy: copy$1,
+    mutate: mutate
+  };
+
+  var slice$3 = [].slice;
+  var constant$1 = function (value) {
+    return function () {
+      return value;
+    };
+  };
+  var negate = function (predicate) {
+    return function (x) {
+      return !predicate(x);
+    };
+  };
+  var compose$2 = function (f, g) {
+    return function (x) {
+      return f(g(x));
+    };
+  };
+  var or = function () {
+    var x = [];
+    for (var _i = 0; _i < arguments.length; _i++) {
+      x[_i] = arguments[_i];
+    }
+    var args = slice$3.call(arguments);
+    return function (x) {
+      for (var i = 0; i < args.length; i++) {
+        if (args[i](x)) {
+          return true;
+        }
+      }
+      return false;
+    };
+  };
+  var and = function () {
+    var x = [];
+    for (var _i = 0; _i < arguments.length; _i++) {
+      x[_i] = arguments[_i];
+    }
+    var args = slice$3.call(arguments);
+    return function (x) {
+      for (var i = 0; i < args.length; i++) {
+        if (!args[i](x)) {
+          return false;
+        }
+      }
+      return true;
+    };
+  };
+  var curry$1 = function (fn) {
+    var x = [];
+    for (var _i = 1; _i < arguments.length; _i++) {
+      x[_i - 1] = arguments[_i];
+    }
+    var args = slice$3.call(arguments);
+    if (args.length - 1 >= fn.length) {
+      return fn.apply(this, args.slice(1));
+    }
+    return function () {
+      var tempArgs = args.concat([].slice.call(arguments));
+      return curry$1.apply(this, tempArgs);
+    };
+  };
+  var noop$1 = function () {
+  };
+  var $_4127e12ljjgwe7ww = {
+    constant: constant$1,
+    negate: negate,
+    and: and,
+    or: or,
+    curry: curry$1,
+    compose: compose$2,
+    noop: noop$1
+  };
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var ZWSP = '\uFEFF';
</span><span class="cx" style="display: block; padding: 0 10px">   var isZwsp = function (chr) {
</span><span class="cx" style="display: block; padding: 0 10px">     return chr === ZWSP;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7520,14 +7964,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var trim$3 = function (text) {
</span><span class="cx" style="display: block; padding: 0 10px">     return text.replace(new RegExp(ZWSP, 'g'), '');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dpfg1321jfuw8lhn = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2xw7ul2pjjgwe7xs = {
</ins><span class="cx" style="display: block; padding: 0 10px">     isZwsp: isZwsp,
</span><span class="cx" style="display: block; padding: 0 10px">     ZWSP: ZWSP,
</span><span class="cx" style="display: block; padding: 0 10px">     trim: trim$3
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isElement$2 = $_ey7ka11qjfuw8ldg.isElement;
-  var isText$2 = $_ey7ka11qjfuw8ldg.isText;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isElement$2 = $_3b9u2y1rjjgwe7qe.isElement;
+  var isText$2 = $_3b9u2y1rjjgwe7qe.isText;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isCaretContainerBlock = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (isText$2(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">       node = node.parentNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7535,18 +7979,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return isElement$2(node) && node.hasAttribute('data-mce-caret');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isCaretContainerInline = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isText$2(node) && $_dpfg1321jfuw8lhn.isZwsp(node.data);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isText$2(node) && $_2xw7ul2pjjgwe7xs.isZwsp(node.data);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isCaretContainer = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     return isCaretContainerBlock(node) || isCaretContainerInline(node);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasContent = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return node.firstChild !== node.lastChild || !$_ey7ka11qjfuw8ldg.isBr(node.firstChild);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return node.firstChild !== node.lastChild || !$_3b9u2y1rjjgwe7qe.isBr(node.firstChild);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertInline = function (node, before) {
</span><span class="cx" style="display: block; padding: 0 10px">     var doc, sibling, textNode, parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">     doc = node.ownerDocument;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    textNode = doc.createTextNode($_dpfg1321jfuw8lhn.ZWSP);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    textNode = doc.createTextNode($_2xw7ul2pjjgwe7xs.ZWSP);
</ins><span class="cx" style="display: block; padding: 0 10px">     parentNode = node.parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">     if (!before) {
</span><span class="cx" style="display: block; padding: 0 10px">       sibling = node.nextSibling;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7580,11 +8024,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isBeforeInline = function (pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     var container = pos.container();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return pos && $_ey7ka11qjfuw8ldg.isText(container) && container.data.charAt(pos.offset()) === $_dpfg1321jfuw8lhn.ZWSP;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return pos && $_3b9u2y1rjjgwe7qe.isText(container) && container.data.charAt(pos.offset()) === $_2xw7ul2pjjgwe7xs.ZWSP;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isAfterInline = function (pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     var container = pos.container();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return pos && $_ey7ka11qjfuw8ldg.isText(container) && container.data.charAt(pos.offset() - 1) === $_dpfg1321jfuw8lhn.ZWSP;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return pos && $_3b9u2y1rjjgwe7qe.isText(container) && container.data.charAt(pos.offset() - 1) === $_2xw7ul2pjjgwe7xs.ZWSP;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createBogusBr = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     var br = document.createElement('br');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7611,15 +8055,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return blockNode;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var startsWithCaretContainer = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isText$2(node) && node.data[0] === $_dpfg1321jfuw8lhn.ZWSP;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isText$2(node) && node.data[0] === $_2xw7ul2pjjgwe7xs.ZWSP;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var endsWithCaretContainer = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isText$2(node) && node.data[node.data.length - 1] === $_dpfg1321jfuw8lhn.ZWSP;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isText$2(node) && node.data[node.data.length - 1] === $_2xw7ul2pjjgwe7xs.ZWSP;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimBogusBr = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var brs = elm.getElementsByTagName('br');
</span><span class="cx" style="display: block; padding: 0 10px">     var lastBr = brs[brs.length - 1];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isBogus(lastBr)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isBogus(lastBr)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       lastBr.parentNode.removeChild(lastBr);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7638,13 +8082,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return isCaretContainerBlock(range.startContainer);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isContentEditableTrue$1 = $_ey7ka11qjfuw8ldg.isContentEditableTrue;
-  var isContentEditableFalse$1 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
-  var isBr$2 = $_ey7ka11qjfuw8ldg.isBr;
-  var isText$3 = $_ey7ka11qjfuw8ldg.isText;
-  var isInvalidTextElement = $_ey7ka11qjfuw8ldg.matchNodeNames('script style textarea');
-  var isAtomicInline = $_ey7ka11qjfuw8ldg.matchNodeNames('img input textarea hr iframe video audio object');
-  var isTable$1 = $_ey7ka11qjfuw8ldg.matchNodeNames('table');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isContentEditableTrue$1 = $_3b9u2y1rjjgwe7qe.isContentEditableTrue;
+  var isContentEditableFalse$1 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
+  var isBr$2 = $_3b9u2y1rjjgwe7qe.isBr;
+  var isText$3 = $_3b9u2y1rjjgwe7qe.isText;
+  var isInvalidTextElement = $_3b9u2y1rjjgwe7qe.matchNodeNames('script style textarea');
+  var isAtomicInline = $_3b9u2y1rjjgwe7qe.matchNodeNames('img input textarea hr iframe video audio object');
+  var isTable$1 = $_3b9u2y1rjjgwe7qe.matchNodeNames('table');
</ins><span class="cx" style="display: block; padding: 0 10px">   var isCaretContainer$1 = isCaretContainer;
</span><span class="cx" style="display: block; padding: 0 10px">   var isCaretCandidate = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (isCaretContainer$1(node)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7659,7 +8103,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return isAtomicInline(node) || isBr$2(node) || isTable$1(node) || isNonUiContentEditableFalse(node);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isUnselectable = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isElement(node) && node.getAttribute('unselectable') === 'true';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isElement(node) && node.getAttribute('unselectable') === 'true';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isNonUiContentEditableFalse = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     return isUnselectable(node) === false && isContentEditableFalse$1(node);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7679,7 +8123,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (!isNonUiContentEditableFalse(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_djuh8tljfuw8l74.reduce(node.getElementsByTagName('*'), function (result, elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6t4axrmjjgwe7jf.reduce(node.getElementsByTagName('*'), function (result, elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return result || isContentEditableTrue$1(elm);
</span><span class="cx" style="display: block; padding: 0 10px">     }, false) !== true;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7691,7 +8135,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var round = Math.round;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var clone$1 = function (rect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var clone$2 = function (rect) {
</ins><span class="cx" style="display: block; padding: 0 10px">     if (!rect) {
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         left: 0,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7712,7 +8156,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var collapse = function (rect, toStart) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    rect = clone$1(rect);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    rect = clone$2(rect);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (toStart) {
</span><span class="cx" style="display: block; padding: 0 10px">       rect.right = rect.left;
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7792,97 +8236,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return typeof ch === 'string' && ch.charCodeAt(0) >= 768 && extendingChars.test(ch);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var slice$3 = [].slice;
-  var constant$1 = function (value) {
-    return function () {
-      return value;
-    };
-  };
-  var negate = function (predicate) {
-    return function (x) {
-      return !predicate(x);
-    };
-  };
-  var compose$2 = function (f, g) {
-    return function (x) {
-      return f(g(x));
-    };
-  };
-  var or = function () {
-    var x = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-      x[_i] = arguments[_i];
-    }
-    var args = slice$3.call(arguments);
-    return function (x) {
-      for (var i = 0; i < args.length; i++) {
-        if (args[i](x)) {
-          return true;
-        }
-      }
-      return false;
-    };
-  };
-  var and = function () {
-    var x = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-      x[_i] = arguments[_i];
-    }
-    var args = slice$3.call(arguments);
-    return function (x) {
-      for (var i = 0; i < args.length; i++) {
-        if (!args[i](x)) {
-          return false;
-        }
-      }
-      return true;
-    };
-  };
-  var curry$1 = function (fn) {
-    var x = [];
-    for (var _i = 1; _i < arguments.length; _i++) {
-      x[_i - 1] = arguments[_i];
-    }
-    var args = slice$3.call(arguments);
-    if (args.length - 1 >= fn.length) {
-      return fn.apply(this, args.slice(1));
-    }
-    return function () {
-      var tempArgs = args.concat([].slice.call(arguments));
-      return curry$1.apply(this, tempArgs);
-    };
-  };
-  var noop$1 = function () {
-  };
-  var $_ebfy8j25jfuw8li1 = {
-    constant: constant$1,
-    negate: negate,
-    and: and,
-    or: or,
-    curry: curry$1,
-    compose: compose$2,
-    noop: noop$1
-  };
-
-  var cat = function (arr) {
-    var r = [];
-    var push = function (x) {
-      r.push(x);
-    };
-    for (var i = 0; i < arr.length; i++) {
-      arr[i].each(push);
-    }
-    return r;
-  };
-  var findMap = function (arr, f) {
-    for (var i = 0; i < arr.length; i++) {
-      var r = f(arr[i], i);
-      if (r.isSome()) {
-        return r;
-      }
-    }
-    return Option.none();
-  };
</del><span class="cx" style="display: block; padding: 0 10px">   var liftN = function (arr, f) {
</span><span class="cx" style="display: block; padding: 0 10px">     var r = [];
</span><span class="cx" style="display: block; padding: 0 10px">     for (var i = 0; i < arr.length; i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7895,20 +8248,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return Option.some(f.apply(null, r));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5gv5dd26jfuw8li3 = {
-    cat: cat,
-    findMap: findMap,
-    liftN: liftN
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isElement$3 = $_ey7ka11qjfuw8ldg.isElement;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isElement$3 = $_3b9u2y1rjjgwe7qe.isElement;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isCaretCandidate$1 = isCaretCandidate;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isBlock$1 = $_ey7ka11qjfuw8ldg.matchStyleValues('display', 'block table');
-  var isFloated = $_ey7ka11qjfuw8ldg.matchStyleValues('float', 'left right');
-  var isValidElementCaretCandidate = $_ebfy8j25jfuw8li1.and(isElement$3, isCaretCandidate$1, $_ebfy8j25jfuw8li1.negate(isFloated));
-  var isNotPre = $_ebfy8j25jfuw8li1.negate($_ey7ka11qjfuw8ldg.matchStyleValues('white-space', 'pre pre-line pre-wrap'));
-  var isText$4 = $_ey7ka11qjfuw8ldg.isText;
-  var isBr$3 = $_ey7ka11qjfuw8ldg.isBr;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isBlock$1 = $_3b9u2y1rjjgwe7qe.matchStyleValues('display', 'block table');
+  var isFloated = $_3b9u2y1rjjgwe7qe.matchStyleValues('float', 'left right');
+  var isValidElementCaretCandidate = $_4127e12ljjgwe7ww.and(isElement$3, isCaretCandidate$1, $_4127e12ljjgwe7ww.negate(isFloated));
+  var isNotPre = $_4127e12ljjgwe7ww.negate($_3b9u2y1rjjgwe7qe.matchStyleValues('white-space', 'pre pre-line pre-wrap'));
+  var isText$4 = $_3b9u2y1rjjgwe7qe.isText;
+  var isBr$3 = $_3b9u2y1rjjgwe7qe.isBr;
</ins><span class="cx" style="display: block; padding: 0 10px">   var nodeIndex = DOMUtils$1.nodeIndex;
</span><span class="cx" style="display: block; padding: 0 10px">   var resolveIndex = getNode;
</span><span class="cx" style="display: block; padding: 0 10px">   var createRange = function (doc) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7920,11 +8268,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isRange = function (rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     return !!rng.setStart && !!rng.setEnd;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isHiddenWhiteSpaceRange = function (range) {
-    var container = range.startContainer;
-    var offset = range.startOffset;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isHiddenWhiteSpaceRange = function (range$$1) {
+    var container = range$$1.startContainer;
+    var offset = range$$1.startOffset;
</ins><span class="cx" style="display: block; padding: 0 10px">     var text;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (isWhiteSpace(range.toString()) && isNotPre(container.parentNode) && $_ey7ka11qjfuw8ldg.isText(container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isWhiteSpace(range$$1.toString()) && isNotPre(container.parentNode) && $_3b9u2y1rjjgwe7qe.isText(container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       text = container.data;
</span><span class="cx" style="display: block; padding: 0 10px">       if (isWhiteSpace(text[offset - 1]) || isWhiteSpace(text[offset + 1])) {
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7941,7 +8289,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     parentNode.insertBefore(nbsp, brNode);
</span><span class="cx" style="display: block; padding: 0 10px">     rng.setStart(nbsp, 0);
</span><span class="cx" style="display: block; padding: 0 10px">     rng.setEnd(nbsp, 1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    clientRect = clone$1(rng.getBoundingClientRect());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    clientRect = clone$2(rng.getBoundingClientRect());
</ins><span class="cx" style="display: block; padding: 0 10px">     parentNode.removeChild(nbsp);
</span><span class="cx" style="display: block; padding: 0 10px">     return clientRect;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7950,7 +8298,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var ec = rng.endContainer;
</span><span class="cx" style="display: block; padding: 0 10px">     var so = rng.startOffset;
</span><span class="cx" style="display: block; padding: 0 10px">     var eo = rng.endOffset;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (sc === ec && $_ey7ka11qjfuw8ldg.isText(ec) && so === 0 && eo === 1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (sc === ec && $_3b9u2y1rjjgwe7qe.isText(ec) && so === 0 && eo === 1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var newRng = rng.cloneRange();
</span><span class="cx" style="display: block; padding: 0 10px">       newRng.setEndAfter(ec);
</span><span class="cx" style="display: block; padding: 0 10px">       return getBoundingClientRect(newRng);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7965,9 +8313,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var clientRect, clientRects;
</span><span class="cx" style="display: block; padding: 0 10px">     clientRects = item.getClientRects();
</span><span class="cx" style="display: block; padding: 0 10px">     if (clientRects.length > 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      clientRect = clone$1(clientRects[0]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      clientRect = clone$2(clientRects[0]);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      clientRect = clone$1(item.getBoundingClientRect());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      clientRect = clone$2(item.getBoundingClientRect());
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (!isRange(item) && isBr$3(item) && isZeroRect(clientRect)) {
</span><span class="cx" style="display: block; padding: 0 10px">       return getBrClientRect(item);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7998,32 +8346,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">       clientRects.push(clientRect);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var addCharacterOffset = function (container, offset) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var range = createRange(container.ownerDocument);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var range$$1 = createRange(container.ownerDocument);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (offset < container.data.length) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (isExtendingChar(container.data[offset])) {
</span><span class="cx" style="display: block; padding: 0 10px">           return clientRects;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (isExtendingChar(container.data[offset - 1])) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          range.setStart(container, offset);
-          range.setEnd(container, offset + 1);
-          if (!isHiddenWhiteSpaceRange(range)) {
-            addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), false));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          range$$1.setStart(container, offset);
+          range$$1.setEnd(container, offset + 1);
+          if (!isHiddenWhiteSpaceRange(range$$1)) {
+            addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range$$1), false));
</ins><span class="cx" style="display: block; padding: 0 10px">             return clientRects;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (offset > 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        range.setStart(container, offset - 1);
-        range.setEnd(container, offset);
-        if (!isHiddenWhiteSpaceRange(range)) {
-          addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), false));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        range$$1.setStart(container, offset - 1);
+        range$$1.setEnd(container, offset);
+        if (!isHiddenWhiteSpaceRange(range$$1)) {
+          addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range$$1), false));
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (offset < container.data.length) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        range.setStart(container, offset);
-        range.setEnd(container, offset + 1);
-        if (!isHiddenWhiteSpaceRange(range)) {
-          addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        range$$1.setStart(container, offset);
+        range$$1.setEnd(container, offset + 1);
+        if (!isHiddenWhiteSpaceRange(range$$1)) {
+          addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range$$1), true));
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8076,11 +8424,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return offset >= container.childNodes.length;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var toRange = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var range;
-      range = createRange(container.ownerDocument);
-      range.setStart(container, offset);
-      range.setEnd(container, offset);
-      return range;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var range$$1;
+      range$$1 = createRange(container.ownerDocument);
+      range$$1.setStart(container, offset);
+      range$$1.setEnd(container, offset);
+      return range$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getClientRects = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!clientRects) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8098,8 +8446,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return resolveIndex(container, before ? offset - 1 : offset);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      container: $_ebfy8j25jfuw8li1.constant(container),
-      offset: $_ebfy8j25jfuw8li1.constant(offset),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      container: $_4127e12ljjgwe7ww.constant(container),
+      offset: $_4127e12ljjgwe7ww.constant(offset),
</ins><span class="cx" style="display: block; padding: 0 10px">       toRange: toRange,
</span><span class="cx" style="display: block; padding: 0 10px">       getClientRects: getClientRects,
</span><span class="cx" style="display: block; padding: 0 10px">       isVisible: isVisible,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8110,11 +8458,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   (function (CaretPosition) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    CaretPosition.fromRangeStart = function (range) {
-      return CaretPosition(range.startContainer, range.startOffset);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    CaretPosition.fromRangeStart = function (range$$1) {
+      return CaretPosition(range$$1.startContainer, range$$1.startOffset);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    CaretPosition.fromRangeEnd = function (range) {
-      return CaretPosition(range.endContainer, range.endOffset);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    CaretPosition.fromRangeEnd = function (range$$1) {
+      return CaretPosition(range$$1.endContainer, range$$1.endOffset);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     CaretPosition.after = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">       return CaretPosition(node.parentNode, nodeIndex(node) + 1);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8123,15 +8471,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return CaretPosition(node.parentNode, nodeIndex(node));
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     CaretPosition.isAbove = function (pos1, pos2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_5gv5dd26jfuw8li3.liftN([
-        $_9ek1bp4jfuw8kxg.head(pos2.getClientRects()),
-        $_9ek1bp4jfuw8kxg.last(pos1.getClientRects())
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return liftN([
+        head(pos2.getClientRects()),
+        last(pos1.getClientRects())
</ins><span class="cx" style="display: block; padding: 0 10px">       ], isAbove).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     CaretPosition.isBelow = function (pos1, pos2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_5gv5dd26jfuw8li3.liftN([
-        $_9ek1bp4jfuw8kxg.last(pos2.getClientRects()),
-        $_9ek1bp4jfuw8kxg.head(pos1.getClientRects())
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return liftN([
+        last(pos2.getClientRects()),
+        head(pos1.getClientRects())
</ins><span class="cx" style="display: block; padding: 0 10px">       ], isBelow).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     CaretPosition.isAtStart = function (pos) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8141,7 +8489,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return pos ? pos.isAtEnd() : false;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     CaretPosition.isTextPosition = function (pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return pos ? $_ey7ka11qjfuw8ldg.isText(pos.container()) : false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return pos ? $_3b9u2y1rjjgwe7qe.isText(pos.container()) : false;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     CaretPosition.isElementPosition = function (pos) {
</span><span class="cx" style="display: block; padding: 0 10px">       return CaretPosition.isTextPosition(pos) === false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8149,8 +8497,365 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }(CaretPosition || (CaretPosition = {})));
</span><span class="cx" style="display: block; padding: 0 10px">   var CaretPosition$1 = CaretPosition;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isElement$4 = $_ey7ka11qjfuw8ldg.isElement;
-  var isText$5 = $_ey7ka11qjfuw8ldg.isText;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isText$5 = $_3b9u2y1rjjgwe7qe.isText;
+  var isBogus$1 = $_3b9u2y1rjjgwe7qe.isBogus;
+  var nodeIndex$1 = DOMUtils$1.nodeIndex;
+  var normalizedParent = function (node) {
+    var parentNode = node.parentNode;
+    if (isBogus$1(parentNode)) {
+      return normalizedParent(parentNode);
+    }
+    return parentNode;
+  };
+  var getChildNodes = function (node) {
+    if (!node) {
+      return [];
+    }
+    return $_6t4axrmjjgwe7jf.reduce(node.childNodes, function (result, node) {
+      if (isBogus$1(node) && node.nodeName !== 'BR') {
+        result = result.concat(getChildNodes(node));
+      } else {
+        result.push(node);
+      }
+      return result;
+    }, []);
+  };
+  var normalizedTextOffset = function (node, offset) {
+    while (node = node.previousSibling) {
+      if (!isText$5(node)) {
+        break;
+      }
+      offset += node.data.length;
+    }
+    return offset;
+  };
+  var equal$1 = function (a) {
+    return function (b) {
+      return a === b;
+    };
+  };
+  var normalizedNodeIndex = function (node) {
+    var nodes, index, numTextFragments;
+    nodes = getChildNodes(normalizedParent(node));
+    index = $_6t4axrmjjgwe7jf.findIndex(nodes, equal$1(node), node);
+    nodes = nodes.slice(0, index + 1);
+    numTextFragments = $_6t4axrmjjgwe7jf.reduce(nodes, function (result, node, i) {
+      if (isText$5(node) && isText$5(nodes[i - 1])) {
+        result++;
+      }
+      return result;
+    }, 0);
+    nodes = $_6t4axrmjjgwe7jf.filter(nodes, $_3b9u2y1rjjgwe7qe.matchNodeNames(node.nodeName));
+    index = $_6t4axrmjjgwe7jf.findIndex(nodes, equal$1(node), node);
+    return index - numTextFragments;
+  };
+  var createPathItem = function (node) {
+    var name;
+    if (isText$5(node)) {
+      name = 'text()';
+    } else {
+      name = node.nodeName.toLowerCase();
+    }
+    return name + '[' + normalizedNodeIndex(node) + ']';
+  };
+  var parentsUntil = function (root, node, predicate) {
+    var parents = [];
+    for (node = node.parentNode; node !== root; node = node.parentNode) {
+      if (predicate && predicate(node)) {
+        break;
+      }
+      parents.push(node);
+    }
+    return parents;
+  };
+  var create$2 = function (root, caretPosition) {
+    var container, offset, path = [], outputOffset, childNodes, parents;
+    container = caretPosition.container();
+    offset = caretPosition.offset();
+    if (isText$5(container)) {
+      outputOffset = normalizedTextOffset(container, offset);
+    } else {
+      childNodes = container.childNodes;
+      if (offset >= childNodes.length) {
+        outputOffset = 'after';
+        offset = childNodes.length - 1;
+      } else {
+        outputOffset = 'before';
+      }
+      container = childNodes[offset];
+    }
+    path.push(createPathItem(container));
+    parents = parentsUntil(root, container);
+    parents = $_6t4axrmjjgwe7jf.filter(parents, $_4127e12ljjgwe7ww.negate($_3b9u2y1rjjgwe7qe.isBogus));
+    path = path.concat($_6t4axrmjjgwe7jf.map(parents, function (node) {
+      return createPathItem(node);
+    }));
+    return path.reverse().join('/') + ',' + outputOffset;
+  };
+  var resolvePathItem = function (node, name, index) {
+    var nodes = getChildNodes(node);
+    nodes = $_6t4axrmjjgwe7jf.filter(nodes, function (node, index) {
+      return !isText$5(node) || !isText$5(nodes[index - 1]);
+    });
+    nodes = $_6t4axrmjjgwe7jf.filter(nodes, $_3b9u2y1rjjgwe7qe.matchNodeNames(name));
+    return nodes[index];
+  };
+  var findTextPosition = function (container, offset) {
+    var node = container, targetOffset = 0, dataLen;
+    while (isText$5(node)) {
+      dataLen = node.data.length;
+      if (offset >= targetOffset && offset <= targetOffset + dataLen) {
+        container = node;
+        offset = offset - targetOffset;
+        break;
+      }
+      if (!isText$5(node.nextSibling)) {
+        container = node;
+        offset = dataLen;
+        break;
+      }
+      targetOffset += dataLen;
+      node = node.nextSibling;
+    }
+    if (isText$5(container) && offset > container.data.length) {
+      offset = container.data.length;
+    }
+    return CaretPosition$1(container, offset);
+  };
+  var resolve$2 = function (root, path) {
+    var parts, container, offset;
+    if (!path) {
+      return null;
+    }
+    parts = path.split(',');
+    path = parts[0].split('/');
+    offset = parts.length > 1 ? parts[1] : 'before';
+    container = $_6t4axrmjjgwe7jf.reduce(path, function (result, value) {
+      value = /([\w\-\(\)]+)\[([0-9]+)\]/.exec(value);
+      if (!value) {
+        return null;
+      }
+      if (value[1] === 'text()') {
+        value[1] = '#text';
+      }
+      return resolvePathItem(result, value[1], parseInt(value[2], 10));
+    }, root);
+    if (!container) {
+      return null;
+    }
+    if (!isText$5(container)) {
+      if (offset === 'after') {
+        offset = nodeIndex$1(container) + 1;
+      } else {
+        offset = nodeIndex$1(container);
+      }
+      return CaretPosition$1(container.parentNode, offset);
+    }
+    return findTextPosition(container, parseInt(offset, 10));
+  };
+
+  var isContentEditableFalse$2 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
+  var getNormalizedTextOffset = function (trim, container, offset) {
+    var node, trimmedOffset;
+    trimmedOffset = trim(container.data.slice(0, offset)).length;
+    for (node = container.previousSibling; node && $_3b9u2y1rjjgwe7qe.isText(node); node = node.previousSibling) {
+      trimmedOffset += trim(node.data).length;
+    }
+    return trimmedOffset;
+  };
+  var getPoint = function (dom, trim, normalized, rng, start) {
+    var container = rng[start ? 'startContainer' : 'endContainer'];
+    var offset = rng[start ? 'startOffset' : 'endOffset'];
+    var point = [];
+    var childNodes, after = 0;
+    var root = dom.getRoot();
+    if ($_3b9u2y1rjjgwe7qe.isText(container)) {
+      point.push(normalized ? getNormalizedTextOffset(trim, container, offset) : offset);
+    } else {
+      childNodes = container.childNodes;
+      if (offset >= childNodes.length && childNodes.length) {
+        after = 1;
+        offset = Math.max(0, childNodes.length - 1);
+      }
+      point.push(dom.nodeIndex(childNodes[offset], normalized) + after);
+    }
+    for (; container && container !== root; container = container.parentNode) {
+      point.push(dom.nodeIndex(container, normalized));
+    }
+    return point;
+  };
+  var getLocation = function (trim, selection, normalized, rng) {
+    var dom = selection.dom, bookmark = {};
+    bookmark.start = getPoint(dom, trim, normalized, rng, true);
+    if (!selection.isCollapsed()) {
+      bookmark.end = getPoint(dom, trim, normalized, rng, false);
+    }
+    return bookmark;
+  };
+  var trimEmptyTextNode = function (node) {
+    if ($_3b9u2y1rjjgwe7qe.isText(node) && node.data.length === 0) {
+      node.parentNode.removeChild(node);
+    }
+  };
+  var findIndex$3 = function (dom, name, element) {
+    var count = 0;
+    $_6cwiepljjgwe7j4.each(dom.select(name), function (node) {
+      if (node.getAttribute('data-mce-bogus') === 'all') {
+        return;
+      }
+      if (node === element) {
+        return false;
+      }
+      count++;
+    });
+    return count;
+  };
+  var moveEndPoint = function (rng, start) {
+    var container, offset, childNodes;
+    var prefix = start ? 'start' : 'end';
+    container = rng[prefix + 'Container'];
+    offset = rng[prefix + 'Offset'];
+    if ($_3b9u2y1rjjgwe7qe.isElement(container) && container.nodeName === 'TR') {
+      childNodes = container.childNodes;
+      container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)];
+      if (container) {
+        offset = start ? 0 : container.childNodes.length;
+        rng['set' + (start ? 'Start' : 'End')](container, offset);
+      }
+    }
+  };
+  var normalizeTableCellSelection = function (rng) {
+    moveEndPoint(rng, true);
+    moveEndPoint(rng, false);
+    return rng;
+  };
+  var findSibling = function (node, offset) {
+    var sibling;
+    if ($_3b9u2y1rjjgwe7qe.isElement(node)) {
+      node = getNode(node, offset);
+      if (isContentEditableFalse$2(node)) {
+        return node;
+      }
+    }
+    if (isCaretContainer(node)) {
+      if ($_3b9u2y1rjjgwe7qe.isText(node) && isCaretContainerBlock(node)) {
+        node = node.parentNode;
+      }
+      sibling = node.previousSibling;
+      if (isContentEditableFalse$2(sibling)) {
+        return sibling;
+      }
+      sibling = node.nextSibling;
+      if (isContentEditableFalse$2(sibling)) {
+        return sibling;
+      }
+    }
+  };
+  var findAdjacentContentEditableFalseElm = function (rng) {
+    return findSibling(rng.startContainer, rng.startOffset) || findSibling(rng.endContainer, rng.endOffset);
+  };
+  var getOffsetBookmark = function (trim, normalized, selection) {
+    var element = selection.getNode();
+    var name = element ? element.nodeName : null;
+    var rng = selection.getRng();
+    if (isContentEditableFalse$2(element) || name === 'IMG') {
+      return {
+        name: name,
+        index: findIndex$3(selection.dom, name, element)
+      };
+    }
+    var sibling = findAdjacentContentEditableFalseElm(rng);
+    if (sibling) {
+      name = sibling.tagName;
+      return {
+        name: name,
+        index: findIndex$3(selection.dom, name, sibling)
+      };
+    }
+    return getLocation(trim, selection, normalized, rng);
+  };
+  var getCaretBookmark = function (selection) {
+    var rng = selection.getRng();
+    return {
+      start: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeStart(rng)),
+      end: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeEnd(rng))
+    };
+  };
+  var getRangeBookmark = function (selection) {
+    return { rng: selection.getRng() };
+  };
+  var createBookmarkSpan = function (dom, id, filled) {
+    var args = {
+      'data-mce-type': 'bookmark',
+      'id': id,
+      'style': 'overflow:hidden;line-height:0px'
+    };
+    return filled ? dom.create('span', args, '&#xFEFF;') : dom.create('span', args);
+  };
+  var getPersistentBookmark = function (selection, filled) {
+    var dom = selection.dom;
+    var rng = selection.getRng();
+    var id = dom.uniqueId();
+    var collapsed = selection.isCollapsed();
+    var element = selection.getNode();
+    var name = element.nodeName;
+    if (name === 'IMG') {
+      return {
+        name: name,
+        index: findIndex$3(dom, name, element)
+      };
+    }
+    var rng2 = normalizeTableCellSelection(rng.cloneRange());
+    if (!collapsed) {
+      rng2.collapse(false);
+      var endBookmarkNode = createBookmarkSpan(dom, id + '_end', filled);
+      rng2.insertNode(endBookmarkNode);
+      trimEmptyTextNode(endBookmarkNode.nextSibling);
+    }
+    rng = normalizeTableCellSelection(rng);
+    rng.collapse(true);
+    var startBookmarkNode = createBookmarkSpan(dom, id + '_start', filled);
+    rng.insertNode(startBookmarkNode);
+    trimEmptyTextNode(startBookmarkNode.previousSibling);
+    selection.moveToBookmark({
+      id: id,
+      keep: 1
+    });
+    return { id: id };
+  };
+  var getBookmark = function (selection, type, normalized) {
+    if (type === 2) {
+      return getOffsetBookmark($_2xw7ul2pjjgwe7xs.trim, normalized, selection);
+    } else if (type === 3) {
+      return getCaretBookmark(selection);
+    } else if (type) {
+      return getRangeBookmark(selection);
+    } else {
+      return getPersistentBookmark(selection, false);
+    }
+  };
+  var $_ga29lf2jjjgwe7wh = {
+    getBookmark: getBookmark,
+    getUndoBookmark: curry(getOffsetBookmark, identity, true),
+    getPersistentBookmark: getPersistentBookmark
+  };
+
+  var CARET_ID = '_mce_caret';
+  var isCaretNode = function (node) {
+    return $_3b9u2y1rjjgwe7qe.isElement(node) && node.id === CARET_ID;
+  };
+  var getParentCaretContainer = function (body, node) {
+    while (node && node !== body) {
+      if (node.id === CARET_ID) {
+        return node;
+      }
+      node = node.parentNode;
+    }
+    return null;
+  };
+
+  var isElement$4 = $_3b9u2y1rjjgwe7qe.isElement;
+  var isText$6 = $_3b9u2y1rjjgwe7qe.isText;
</ins><span class="cx" style="display: block; padding: 0 10px">   var removeNode = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     var parentNode = node.parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">     if (parentNode) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8172,7 +8877,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimCount = function (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var trimmedText = $_dpfg1321jfuw8lhn.trim(text);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var trimmedText = $_2xw7ul2pjjgwe7xs.trim(text);
</ins><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       count: text.length - trimmedText.length,
</span><span class="cx" style="display: block; padding: 0 10px">       text: trimmedText
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8179,7 +8884,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeUnchanged = function (caretContainer, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    remove$2(caretContainer);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    remove$7(caretContainer);
</ins><span class="cx" style="display: block; padding: 0 10px">     return pos;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeTextAndReposition = function (caretContainer, pos) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8195,14 +8900,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeElementAndReposition = function (caretContainer, pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     var parentNode = pos.container();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var newPosition = $_9ek1bp4jfuw8kxg.indexOf($_9ek1bp4jfuw8kxg.from(parentNode.childNodes), caretContainer).map(function (index) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var newPosition = indexOf(from$1(parentNode.childNodes), caretContainer).map(function (index) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return index < pos.offset() ? CaretPosition$1(parentNode, pos.offset() - 1) : pos;
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(pos);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    remove$2(caretContainer);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    remove$7(caretContainer);
</ins><span class="cx" style="display: block; padding: 0 10px">     return newPosition;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeTextCaretContainer = function (caretContainer, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isText$5(caretContainer) && pos.container() === caretContainer ? removeTextAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isText$6(caretContainer) && pos.container() === caretContainer ? removeTextAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeElementCaretContainer = function (caretContainer, pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     return pos.container() === caretContainer.parentNode ? removeElementAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8210,7 +8915,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var removeAndReposition = function (container, pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     return CaretPosition$1.isTextPosition(pos) ? removeTextCaretContainer(container, pos) : removeElementCaretContainer(container, pos);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var remove$2 = function (caretContainerNode) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var remove$7 = function (caretContainerNode) {
</ins><span class="cx" style="display: block; padding: 0 10px">     if (isElement$4(caretContainerNode) && isCaretContainer(caretContainerNode)) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (hasContent(caretContainerNode)) {
</span><span class="cx" style="display: block; padding: 0 10px">         caretContainerNode.removeAttribute('data-mce-caret');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8218,90 +8923,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">         removeNode(caretContainerNode);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (isText$5(caretContainerNode)) {
-      var text = $_dpfg1321jfuw8lhn.trim(getNodeValue(caretContainerNode));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isText$6(caretContainerNode)) {
+      var text = $_2xw7ul2pjjgwe7xs.trim(getNodeValue(caretContainerNode));
</ins><span class="cx" style="display: block; padding: 0 10px">       setNodeValue(caretContainerNode, text);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dpm5zo2ajfuw8liw = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cueauu31jjgwe7zy = {
</ins><span class="cx" style="display: block; padding: 0 10px">     removeAndReposition: removeAndReposition,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    remove: remove$2
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    remove: remove$7
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var walkToPositionIn = function (forward, root, start) {
-    var position = forward ? CaretPosition$1.before(start) : CaretPosition$1.after(start);
-    return fromPosition(forward, root, position);
-  };
-  var afterElement = function (node) {
-    return $_ey7ka11qjfuw8ldg.isBr(node) ? CaretPosition$1.before(node) : CaretPosition$1.after(node);
-  };
-  var isBeforeOrStart = function (position) {
-    if (CaretPosition$1.isTextPosition(position)) {
-      return position.offset() === 0;
-    } else {
-      return isCaretCandidate(position.getNode());
-    }
-  };
-  var isAfterOrEnd = function (position) {
-    if (CaretPosition$1.isTextPosition(position)) {
-      var container = position.container();
-      return position.offset() === container.data.length;
-    } else {
-      return isCaretCandidate(position.getNode(true));
-    }
-  };
-  var isBeforeAfterSameElement = function (from, to) {
-    return !CaretPosition$1.isTextPosition(from) && !CaretPosition$1.isTextPosition(to) && from.getNode() === to.getNode(true);
-  };
-  var isAtBr = function (position) {
-    return !CaretPosition$1.isTextPosition(position) && $_ey7ka11qjfuw8ldg.isBr(position.getNode());
-  };
-  var shouldSkipPosition = function (forward, from, to) {
-    if (forward) {
-      return !isBeforeAfterSameElement(from, to) && !isAtBr(from) && isAfterOrEnd(from) && isBeforeOrStart(to);
-    } else {
-      return !isBeforeAfterSameElement(to, from) && isBeforeOrStart(from) && isAfterOrEnd(to);
-    }
-  };
-  var fromPosition = function (forward, root, pos) {
-    var walker = CaretWalker(root);
-    return Option.from(forward ? walker.next(pos) : walker.prev(pos));
-  };
-  var navigate = function (forward, root, from) {
-    return fromPosition(forward, root, from).bind(function (to) {
-      if (isInSameBlock(from, to, root) && shouldSkipPosition(forward, from, to)) {
-        return fromPosition(forward, root, to);
-      } else {
-        return Option.some(to);
-      }
-    });
-  };
-  var positionIn = function (forward, element) {
-    var startNode = forward ? element.firstChild : element.lastChild;
-    if ($_ey7ka11qjfuw8ldg.isText(startNode)) {
-      return Option.some(CaretPosition$1(startNode, forward ? 0 : startNode.data.length));
-    } else if (startNode) {
-      if (isCaretCandidate(startNode)) {
-        return Option.some(forward ? CaretPosition$1.before(startNode) : afterElement(startNode));
-      } else {
-        return walkToPositionIn(forward, element, startNode);
-      }
-    } else {
-      return Option.none();
-    }
-  };
-  var $_25kl2c2cjfuw8ljh = {
-    fromPosition: fromPosition,
-    nextPosition: $_68e81l6jfuw8kyc.curry(fromPosition, true),
-    prevPosition: $_68e81l6jfuw8kyc.curry(fromPosition, false),
-    navigate: navigate,
-    positionIn: positionIn,
-    firstPositionIn: $_68e81l6jfuw8kyc.curry(positionIn, true),
-    lastPositionIn: $_68e81l6jfuw8kyc.curry(positionIn, false)
-  };
-
-  var isContentEditableTrue$2 = $_ey7ka11qjfuw8ldg.isContentEditableTrue;
-  var isContentEditableFalse$2 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isContentEditableTrue$2 = $_3b9u2y1rjjgwe7qe.isContentEditableTrue;
+  var isContentEditableFalse$3 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
</ins><span class="cx" style="display: block; padding: 0 10px">   var showCaret = function (direction, editor, node, before, scrollIntoView) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8321,17 +8954,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var normalizedRange = normalizeRange(1, editor.getBody(), range);
</span><span class="cx" style="display: block; padding: 0 10px">     var caretPosition = CaretPosition$1.fromRangeStart(normalizedRange);
</span><span class="cx" style="display: block; padding: 0 10px">     var caretPositionNode = caretPosition.getNode();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (isContentEditableFalse$2(caretPositionNode)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isContentEditableFalse$3(caretPositionNode)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     var caretPositionBeforeNode = caretPosition.getNode(true);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (isContentEditableFalse$2(caretPositionBeforeNode)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isContentEditableFalse$3(caretPositionBeforeNode)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return showCaret(1, editor, caretPositionBeforeNode, false, false);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     var ceRoot = editor.dom.getParent(caretPosition.getNode(), function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return isContentEditableFalse$2(node) || isContentEditableTrue$2(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return isContentEditableFalse$3(node) || isContentEditableTrue$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (isContentEditableFalse$2(ceRoot)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isContentEditableFalse$3(ceRoot)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return showCaret(1, editor, ceRoot, false, scrollIntoView);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8347,6 +8980,169 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return range;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var HDirection;
+  (function (HDirection) {
+    HDirection[HDirection['Backwards'] = -1] = 'Backwards';
+    HDirection[HDirection['Forwards'] = 1] = 'Forwards';
+  }(HDirection || (HDirection = {})));
+  var isContentEditableFalse$4 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
+  var isText$7 = $_3b9u2y1rjjgwe7qe.isText;
+  var isElement$5 = $_3b9u2y1rjjgwe7qe.isElement;
+  var isBr$4 = $_3b9u2y1rjjgwe7qe.isBr;
+  var isCaretCandidate$2 = isCaretCandidate;
+  var isAtomic$1 = isAtomic;
+  var isEditableCaretCandidate$1 = isEditableCaretCandidate;
+  var getParents = function (node, root) {
+    var parents = [];
+    while (node && node !== root) {
+      parents.push(node);
+      node = node.parentNode;
+    }
+    return parents;
+  };
+  var nodeAtIndex = function (container, offset) {
+    if (container.hasChildNodes() && offset < container.childNodes.length) {
+      return container.childNodes[offset];
+    }
+    return null;
+  };
+  var getCaretCandidatePosition = function (direction, node) {
+    if (isForwards(direction)) {
+      if (isCaretCandidate$2(node.previousSibling) && !isText$7(node.previousSibling)) {
+        return CaretPosition$1.before(node);
+      }
+      if (isText$7(node)) {
+        return CaretPosition$1(node, 0);
+      }
+    }
+    if (isBackwards(direction)) {
+      if (isCaretCandidate$2(node.nextSibling) && !isText$7(node.nextSibling)) {
+        return CaretPosition$1.after(node);
+      }
+      if (isText$7(node)) {
+        return CaretPosition$1(node, node.data.length);
+      }
+    }
+    if (isBackwards(direction)) {
+      if (isBr$4(node)) {
+        return CaretPosition$1.before(node);
+      }
+      return CaretPosition$1.after(node);
+    }
+    return CaretPosition$1.before(node);
+  };
+  var isBrBeforeBlock = function (node, root) {
+    var next;
+    if (!$_3b9u2y1rjjgwe7qe.isBr(node)) {
+      return false;
+    }
+    next = findCaretPosition(1, CaretPosition$1.after(node), root);
+    if (!next) {
+      return false;
+    }
+    return !isInSameBlock(CaretPosition$1.before(node), CaretPosition$1.before(next), root);
+  };
+  var findCaretPosition = function (direction, startPos, root) {
+    var node, nextNode, innerNode;
+    var rootContentEditableFalseElm, caretPosition;
+    if (!isElement$5(root) || !startPos) {
+      return null;
+    }
+    if (startPos.isEqual(CaretPosition$1.after(root)) && root.lastChild) {
+      caretPosition = CaretPosition$1.after(root.lastChild);
+      if (isBackwards(direction) && isCaretCandidate$2(root.lastChild) && isElement$5(root.lastChild)) {
+        return isBr$4(root.lastChild) ? CaretPosition$1.before(root.lastChild) : caretPosition;
+      }
+    } else {
+      caretPosition = startPos;
+    }
+    var container = caretPosition.container();
+    var offset = caretPosition.offset();
+    if (isText$7(container)) {
+      if (isBackwards(direction) && offset > 0) {
+        return CaretPosition$1(container, --offset);
+      }
+      if (isForwards(direction) && offset < container.length) {
+        return CaretPosition$1(container, ++offset);
+      }
+      node = container;
+    } else {
+      if (isBackwards(direction) && offset > 0) {
+        nextNode = nodeAtIndex(container, offset - 1);
+        if (isCaretCandidate$2(nextNode)) {
+          if (!isAtomic$1(nextNode)) {
+            innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);
+            if (innerNode) {
+              if (isText$7(innerNode)) {
+                return CaretPosition$1(innerNode, innerNode.data.length);
+              }
+              return CaretPosition$1.after(innerNode);
+            }
+          }
+          if (isText$7(nextNode)) {
+            return CaretPosition$1(nextNode, nextNode.data.length);
+          }
+          return CaretPosition$1.before(nextNode);
+        }
+      }
+      if (isForwards(direction) && offset < container.childNodes.length) {
+        nextNode = nodeAtIndex(container, offset);
+        if (isCaretCandidate$2(nextNode)) {
+          if (isBr$4(nextNode) && root.lastChild === nextNode) {
+            return null;
+          }
+          if (isBrBeforeBlock(nextNode, root)) {
+            return findCaretPosition(direction, CaretPosition$1.after(nextNode), root);
+          }
+          if (!isAtomic$1(nextNode)) {
+            innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);
+            if (innerNode) {
+              if (isText$7(innerNode)) {
+                return CaretPosition$1(innerNode, 0);
+              }
+              return CaretPosition$1.before(innerNode);
+            }
+          }
+          if (isText$7(nextNode)) {
+            return CaretPosition$1(nextNode, 0);
+          }
+          return CaretPosition$1.after(nextNode);
+        }
+      }
+      node = nextNode ? nextNode : caretPosition.getNode();
+    }
+    if (isForwards(direction) && caretPosition.isAtEnd() || isBackwards(direction) && caretPosition.isAtStart()) {
+      node = findNode(node, direction, $_4127e12ljjgwe7ww.constant(true), root, true);
+      if (isEditableCaretCandidate$1(node, root)) {
+        return getCaretCandidatePosition(direction, node);
+      }
+    }
+    nextNode = findNode(node, direction, isEditableCaretCandidate$1, root);
+    rootContentEditableFalseElm = $_6t4axrmjjgwe7jf.last($_6t4axrmjjgwe7jf.filter(getParents(container, root), isContentEditableFalse$4));
+    if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {
+      if (isForwards(direction)) {
+        caretPosition = CaretPosition$1.after(rootContentEditableFalseElm);
+      } else {
+        caretPosition = CaretPosition$1.before(rootContentEditableFalseElm);
+      }
+      return caretPosition;
+    }
+    if (nextNode) {
+      return getCaretCandidatePosition(direction, nextNode);
+    }
+    return null;
+  };
+  var CaretWalker = function (root) {
+    return {
+      next: function (caretPosition) {
+        return findCaretPosition(HDirection.Forwards, caretPosition, root);
+      },
+      prev: function (caretPosition) {
+        return findCaretPosition(HDirection.Backwards, caretPosition, root);
+      }
+    };
+  };
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var BreakType;
</span><span class="cx" style="display: block; padding: 0 10px">   (function (BreakType) {
</span><span class="cx" style="display: block; padding: 0 10px">     BreakType[BreakType['Br'] = 0] = 'Br';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8361,7 +9157,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return direction === HDirection.Forwards ? caretWalker.next(pos) : caretWalker.prev(pos);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getBreakType = function (scope, direction, currentPos, nextPos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isBr(nextPos.getNode(direction === HDirection.Forwards))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isBr(nextPos.getNode(direction === HDirection.Forwards))) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return BreakType.Br;
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (isInSameBlock(currentPos, nextPos) === false) {
</span><span class="cx" style="display: block; padding: 0 10px">       return BreakType.Block;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8378,7 +9174,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!nextPos) {
</span><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isBr(nextPos.getNode(false))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isBr(nextPos.getNode(false))) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (direction === HDirection.Forwards) {
</span><span class="cx" style="display: block; padding: 0 10px">           return {
</span><span class="cx" style="display: block; padding: 0 10px">             positions: flip(direction, positions).concat([nextPos]),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8421,13 +9217,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr([]);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findClosestHorizontalPositionFromPoint = function (positions, x) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.foldl(positions, function (acc, newPos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return foldl(positions, function (acc, newPos) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return acc.fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.some(newPos);
</span><span class="cx" style="display: block; padding: 0 10px">       }, function (lastPos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_5gv5dd26jfuw8li3.liftN([
-          $_9ek1bp4jfuw8kxg.head(lastPos.getClientRects()),
-          $_9ek1bp4jfuw8kxg.head(newPos.getClientRects())
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return liftN([
+          head(lastPos.getClientRects()),
+          head(newPos.getClientRects())
</ins><span class="cx" style="display: block; padding: 0 10px">         ], function (lastRect, newRect) {
</span><span class="cx" style="display: block; padding: 0 10px">           var lastDist = Math.abs(x - lastRect.left);
</span><span class="cx" style="display: block; padding: 0 10px">           var newDist = Math.abs(x - newRect.left);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8437,84 +9233,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }, Option.none());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findClosestHorizontalPosition = function (positions, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.head(pos.getClientRects()).bind(function (targetRect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return head(pos.getClientRects()).bind(function (targetRect) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return findClosestHorizontalPositionFromPoint(positions, targetRect.left);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getPositionsUntilPreviousLine = $_68e81l6jfuw8kyc.curry(getPositionsUntil, CaretPosition.isAbove, -1);
-  var getPositionsUntilNextLine = $_68e81l6jfuw8kyc.curry(getPositionsUntil, CaretPosition.isBelow, 1);
-  var getPositionsAbove = $_68e81l6jfuw8kyc.curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine);
-  var getPositionsBelow = $_68e81l6jfuw8kyc.curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1);
+  var getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1);
+  var getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine);
+  var getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine);
</ins><span class="cx" style="display: block; padding: 0 10px">   var getFirstLinePositions = function (scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.firstPositionIn(scope).map(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.firstPositionIn(scope).map(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return [pos].concat(getPositionsUntilNextLine(scope, pos).positions);
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr([]);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getLastLinePositions = function (scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.lastPositionIn(scope).map(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.lastPositionIn(scope).map(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return getPositionsUntilPreviousLine(scope, pos).positions.concat(pos);
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr([]);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var all$1 = function (predicate) {
-    return descendants($_5nbzws15jfuw8lap.body(), predicate);
-  };
-  var ancestors = function (scope, predicate, isRoot) {
-    return $_9ek1bp4jfuw8kxg.filter($_2j4g5u17jfuw8lav.parents(scope, isRoot), predicate);
-  };
-  var siblings$1 = function (scope, predicate) {
-    return $_9ek1bp4jfuw8kxg.filter($_2j4g5u17jfuw8lav.siblings(scope), predicate);
-  };
-  var children$1 = function (scope, predicate) {
-    return $_9ek1bp4jfuw8kxg.filter($_2j4g5u17jfuw8lav.children(scope), predicate);
-  };
-  var descendants = function (scope, predicate) {
-    var result = [];
-    $_9ek1bp4jfuw8kxg.each($_2j4g5u17jfuw8lav.children(scope), function (x) {
-      if (predicate(x)) {
-        result = result.concat([x]);
-      }
-      result = result.concat(descendants(x, predicate));
-    });
-    return result;
-  };
-  var $_1ufmrf2hjfuw8lkm = {
-    all: all$1,
-    ancestors: ancestors,
-    siblings: siblings$1,
-    children: children$1,
-    descendants: descendants
-  };
-
-  var all$2 = function (selector) {
-    return $_fbwcti1fjfuw8lbx.all(selector);
-  };
-  var ancestors$1 = function (scope, selector, isRoot) {
-    return $_1ufmrf2hjfuw8lkm.ancestors(scope, function (e) {
-      return $_fbwcti1fjfuw8lbx.is(e, selector);
-    }, isRoot);
-  };
-  var siblings$2 = function (scope, selector) {
-    return $_1ufmrf2hjfuw8lkm.siblings(scope, function (e) {
-      return $_fbwcti1fjfuw8lbx.is(e, selector);
-    });
-  };
-  var children$2 = function (scope, selector) {
-    return $_1ufmrf2hjfuw8lkm.children(scope, function (e) {
-      return $_fbwcti1fjfuw8lbx.is(e, selector);
-    });
-  };
-  var descendants$1 = function (scope, selector) {
-    return $_fbwcti1fjfuw8lbx.all(selector, scope);
-  };
-  var $_ryxde2gjfuw8lkk = {
-    all: all$2,
-    ancestors: ancestors$1,
-    siblings: siblings$2,
-    children: children$2,
-    descendants: descendants$1
-  };
-
</del><span class="cx" style="display: block; padding: 0 10px">   var deflate = function (rect, delta) {
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       left: rect.left - delta,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8526,7 +9263,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getCorners = function (getYAxisValue, tds) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.bind(tds, function (td) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bind(tds, function (td) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var rect = deflate(td.getBoundingClientRect(), -1);
</span><span class="cx" style="display: block; padding: 0 10px">       return [
</span><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8543,7 +9280,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findClosestCorner = function (corners, x, y) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.foldl(corners, function (acc, newCorner) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return foldl(corners, function (acc, newCorner) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return acc.fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.some(newCorner);
</span><span class="cx" style="display: block; padding: 0 10px">       }, function (oldCorner) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8554,10 +9291,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }, Option.none());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getClosestCell = function (getYAxisValue, isTargetCorner, table, x, y) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var cells = $_ryxde2gjfuw8lkk.descendants($_c9h6qlzjfuw8l98.fromDom(table), 'td,th').map(function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var cells = $_d3ydn427jjgwe7uf.descendants(Element$$1.fromDom(table), 'td,th').map(function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return e.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var corners = $_9ek1bp4jfuw8kxg.filter(getCorners(getYAxisValue, cells), function (corner) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var corners = filter(getCorners(getYAxisValue, cells), function (corner) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return isTargetCorner(corner, y);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return findClosestCorner(corners, x, y).map(function (corner) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8576,10 +9313,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isBelow$1 = function (corner, y) {
</span><span class="cx" style="display: block; padding: 0 10px">     return corner.y > y;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getClosestCellAbove = $_68e81l6jfuw8kyc.curry(getClosestCell, getBottomValue, isAbove$1);
-  var getClosestCellBelow = $_68e81l6jfuw8kyc.curry(getClosestCell, getTopValue, isBelow$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getClosestCellAbove = curry(getClosestCell, getBottomValue, isAbove$1);
+  var getClosestCellBelow = curry(getClosestCell, getTopValue, isBelow$1);
</ins><span class="cx" style="display: block; padding: 0 10px">   var findClosestPositionInAboveCell = function (table, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.head(pos.getClientRects()).bind(function (rect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return head(pos.getClientRects()).bind(function (rect) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return getClosestCellAbove(table, rect.left, rect.top);
</span><span class="cx" style="display: block; padding: 0 10px">     }).bind(function (cell) {
</span><span class="cx" style="display: block; padding: 0 10px">       return findClosestHorizontalPosition(getLastLinePositions(cell), pos);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8586,7 +9323,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findClosestPositionInBelowCell = function (table, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.last(pos.getClientRects()).bind(function (rect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return last(pos.getClientRects()).bind(function (rect) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return getClosestCellBelow(table, rect.left, rect.top);
</span><span class="cx" style="display: block; padding: 0 10px">     }).bind(function (cell) {
</span><span class="cx" style="display: block; padding: 0 10px">       return findClosestHorizontalPosition(getFirstLinePositions(cell), pos);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8622,7 +9359,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (fireScrollIntoViewEvent(editor, elm, alignToTop)) {
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_ey7ka11qjfuw8ldg.isElement(elm)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_3b9u2y1rjjgwe7qe.isElement(elm)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (alignToTop === false) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8672,7 +9409,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var scrollRangeIntoView = function (editor, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.head(CaretPosition.fromRangeStart(rng).getClientRects()).each(function (rngRect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    head(CaretPosition.fromRangeStart(rng).getClientRects()).each(function (rngRect) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var bodyRect = getViewPortRect(editor);
</span><span class="cx" style="display: block; padding: 0 10px">       var overflow = getOverflow(bodyRect, rngRect);
</span><span class="cx" style="display: block; padding: 0 10px">       var margin = 4;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8681,7 +9418,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       scrollBy(editor, overflow.x !== 0 ? dx : 0, overflow.y !== 0 ? dy : 0);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_254q5e2ijfuw8lkq = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1mgvl137jjgwe825 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     scrollElementIntoView: scrollElementIntoView,
</span><span class="cx" style="display: block; padding: 0 10px">     scrollRangeIntoView: scrollRangeIntoView
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8739,12 +9476,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.getParam('end_container_on_empty_block', false);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getFontStyleValues = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_52qop8kjfuw8l6v.explode(editor.getParam('font_size_style_values', ''));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6cwiepljjgwe7j4.explode(editor.getParam('font_size_style_values', ''));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getFontSizeClasses = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_52qop8kjfuw8l6v.explode(editor.getParam('font_size_classes', ''));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6cwiepljjgwe7j4.explode(editor.getParam('font_size_classes', ''));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6msxiw2jjfuw8lkv = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_259vs538jjgwe82a = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getIframeAttrs: getIframeAttrs,
</span><span class="cx" style="display: block; padding: 0 10px">     getDocType: getDocType,
</span><span class="cx" style="display: block; padding: 0 10px">     getDocumentBaseUrl: getDocumentBaseUrl,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8762,61 +9499,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     getFontSizeClasses: getFontSizeClasses
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var before = function (marker, element) {
-    var parent = $_2j4g5u17jfuw8lav.parent(marker);
-    parent.each(function (v) {
-      v.dom().insertBefore(element.dom(), marker.dom());
-    });
-  };
-  var after = function (marker, element) {
-    var sibling = $_2j4g5u17jfuw8lav.nextSibling(marker);
-    sibling.fold(function () {
-      var parent = $_2j4g5u17jfuw8lav.parent(marker);
-      parent.each(function (v) {
-        append(v, element);
-      });
-    }, function (v) {
-      before(v, element);
-    });
-  };
-  var prepend = function (parent, element) {
-    var firstChild = $_2j4g5u17jfuw8lav.firstChild(parent);
-    firstChild.fold(function () {
-      append(parent, element);
-    }, function (v) {
-      parent.dom().insertBefore(element.dom(), v.dom());
-    });
-  };
-  var append = function (parent, element) {
-    parent.dom().appendChild(element.dom());
-  };
-  var appendAt = function (parent, element, index) {
-    $_2j4g5u17jfuw8lav.child(parent, index).fold(function () {
-      append(parent, element);
-    }, function (v) {
-      before(v, element);
-    });
-  };
-  var wrap$1 = function (element, wrapper) {
-    before(element, wrapper);
-    append(wrapper, element);
-  };
-  var $_doli6x2kjfuw8lky = {
-    before: before,
-    after: after,
-    prepend: prepend,
-    append: append,
-    appendAt: appendAt,
-    wrap: wrap$1
-  };
-
-  var browser$2 = $_f1lbzgnjfuw8l7o.detect().browser;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var browser$2 = $_7vg267ojjgwe7k0.detect().browser;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isFakeCaretTableBrowser = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     return browser$2.isIE() || browser$2.isEdge() || browser$2.isFirefox();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var moveToRange = function (editor, rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.selection.setRng(rng);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_254q5e2ijfuw8lkq.scrollRangeIntoView(editor, rng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_1mgvl137jjgwe825.scrollRangeIntoView(editor, rng);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isAtTableCellLine = function (getPositionsUntil, scope, pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     var lineInfo = getPositionsUntil(scope, pos);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8828,11 +9517,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return lineInfo.breakAt.isNone();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isAtFirstTableCellLine = $_ebfy8j25jfuw8li1.curry(isAtTableCellLine, getPositionsUntilPreviousLine);
-  var isAtLastTableCellLine = $_ebfy8j25jfuw8li1.curry(isAtTableCellLine, getPositionsUntilNextLine);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isAtFirstTableCellLine = $_4127e12ljjgwe7ww.curry(isAtTableCellLine, getPositionsUntilPreviousLine);
+  var isAtLastTableCellLine = $_4127e12ljjgwe7ww.curry(isAtTableCellLine, getPositionsUntilNextLine);
</ins><span class="cx" style="display: block; padding: 0 10px">   var isCaretAtStartOrEndOfTable = function (forward, rng, table) {
</span><span class="cx" style="display: block; padding: 0 10px">     var caretPos = CaretPosition$1.fromRangeStart(rng);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.positionIn(!forward, table).map(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.positionIn(!forward, table).map(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return pos.isEqual(caretPos);
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8848,7 +9537,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getClosestAbovePosition = function (root, table, start) {
</span><span class="cx" style="display: block; padding: 0 10px">     return findClosestPositionInAboveCell(table, start).orThunk(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_9ek1bp4jfuw8kxg.head(start.getClientRects()).bind(function (rect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return head(start.getClientRects()).bind(function (rect) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition$1.before(table)), rect.left);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(CaretPosition$1.before(table));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8855,7 +9544,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getClosestBelowPosition = function (root, table, start) {
</span><span class="cx" style="display: block; padding: 0 10px">     return findClosestPositionInBelowCell(table, start).orThunk(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_9ek1bp4jfuw8kxg.head(start.getClientRects()).bind(function (rect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return head(start.getClientRects()).bind(function (rect) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition$1.after(table)), rect.left);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(CaretPosition$1.after(table));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8862,19 +9551,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getTable = function (previous, pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     var node = pos.getNode(previous);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isElement(node) && node.nodeName === 'TABLE' ? Option.some(node) : Option.none();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isElement(node) && node.nodeName === 'TABLE' ? Option.some(node) : Option.none();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var renderBlock = function (down, editor, table, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var forcedRootBlock = $_6msxiw2jjfuw8lkv.getForcedRootBlock(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var forcedRootBlock = $_259vs538jjgwe82a.getForcedRootBlock(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (forcedRootBlock) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.undoManager.transact(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var element = $_c9h6qlzjfuw8l98.fromTag(forcedRootBlock);
-        $_8g002u14jfuw8la5.setAll(element, $_6msxiw2jjfuw8lkv.getForcedRootBlockAttrs(editor));
-        $_doli6x2kjfuw8lky.append(element, $_c9h6qlzjfuw8l98.fromTag('br'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var element = Element$$1.fromTag(forcedRootBlock);
+        $_etx7gr15jjgwe7mr.setAll(element, $_259vs538jjgwe82a.getForcedRootBlockAttrs(editor));
+        $_ewo3u51yjjgwe7su.append(element, Element$$1.fromTag('br'));
</ins><span class="cx" style="display: block; padding: 0 10px">         if (down) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_doli6x2kjfuw8lky.after($_c9h6qlzjfuw8l98.fromDom(table), element);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_ewo3u51yjjgwe7su.after(Element$$1.fromDom(table), element);
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_doli6x2kjfuw8lky.before($_c9h6qlzjfuw8l98.fromDom(table), element);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_ewo3u51yjjgwe7su.before(Element$$1.fromDom(table), element);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         var rng = editor.dom.createRng();
</span><span class="cx" style="display: block; padding: 0 10px">         rng.setStart(element.dom(), 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8887,11 +9576,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var moveCaret = function (editor, down, pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     var table = down ? getTable(true, pos) : getTable(false, pos);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var last = down === false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var last$$1 = down === false;
</ins><span class="cx" style="display: block; padding: 0 10px">     table.fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return moveToRange(editor, pos.toRange());
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (table) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_25kl2c2cjfuw8ljh.positionIn(last, editor.getBody()).filter(function (lastPos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_8q1ver2yjjgwe7z3.positionIn(last$$1, editor.getBody()).filter(function (lastPos) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return lastPos.isEqual(pos);
</span><span class="cx" style="display: block; padding: 0 10px">       }).fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return moveToRange(editor, pos.toRange());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8935,27 +9624,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var Cell = function (initial) {
-    var value = initial;
-    var get = function () {
-      return value;
-    };
-    var set = function (v) {
-      value = v;
-    };
-    var clone = function () {
-      return Cell(get());
-    };
-    return {
-      get: get,
-      set: set,
-      clone: clone
-    };
-  };
-
-  var isContentEditableFalse$3 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isContentEditableFalse$5 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isTableCell$1 = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isElement(node) && /^(TD|TH)$/i.test(node.tagName);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isElement(node) && /^(TD|TH)$/i.test(node.tagName);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getAbsoluteClientRect = function (root, element, before) {
</span><span class="cx" style="display: block; padding: 0 10px">     var clientRect = collapse(element.getBoundingClientRect(), before);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9040,7 +9711,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         caretContainerNode = insertInline(element, before);
</span><span class="cx" style="display: block; padding: 0 10px">         rng = element.ownerDocument.createRange();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (isContentEditableFalse$3(caretContainerNode.nextSibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (isContentEditableFalse$5(caretContainerNode.nextSibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           rng.setStart(caretContainerNode, 0);
</span><span class="cx" style="display: block; padding: 0 10px">           rng.setEnd(caretContainerNode, 0);
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9054,7 +9725,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var hide = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       trimInlineCaretContainers(root);
</span><span class="cx" style="display: block; padding: 0 10px">       if (caretContainerNode) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_dpm5zo2ajfuw8liw.remove(caretContainerNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_cueauu31jjgwe7zy.remove(caretContainerNode);
</ins><span class="cx" style="display: block; padding: 0 10px">         caretContainerNode = null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       lastVisualCaret.get().each(function (caretState) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9064,7 +9735,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       clearInterval(cursorInterval);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var startBlink = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      cursorInterval = $_2m8wq9hjfuw8l41.setInterval(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      cursorInterval = $_9o1ijaijjgwe7dm.setInterval(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (hasFocus()) {
</span><span class="cx" style="display: block; padding: 0 10px">           DomQuery('div.mce-visual-caret', root).toggleClass('mce-visual-caret-hidden');
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9079,7 +9750,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var destroy = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_2m8wq9hjfuw8l41.clearInterval(cursorInterval);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_9o1ijaijjgwe7dm.clearInterval(cursorInterval);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getCss = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return '.mce-visual-caret {' + 'position: absolute;' + 'background-color: black;' + 'background-color: currentcolor;' + '}' + '.mce-visual-caret-hidden {' + 'display: none;' + '}' + '*[data-mce-caret] {' + 'position: absolute;' + 'left: -1000px;' + 'right: auto;' + 'top: 0;' + 'margin: 0;' + 'padding: 0;' + '}';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9093,16 +9764,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isFakeCaretTarget = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isContentEditableFalse$3(node) || $_ey7ka11qjfuw8ldg.isTable(node) && isFakeCaretTableBrowser();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isContentEditableFalse$5(node) || $_3b9u2y1rjjgwe7qe.isTable(node) && isFakeCaretTableBrowser();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isContentEditableFalse$4 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
-  var isBlockLike = $_ey7ka11qjfuw8ldg.matchStyleValues('display', 'block table table-cell table-caption list-item');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isContentEditableFalse$6 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
+  var isBlockLike = $_3b9u2y1rjjgwe7qe.matchStyleValues('display', 'block table table-cell table-caption list-item');
</ins><span class="cx" style="display: block; padding: 0 10px">   var isCaretContainer$2 = isCaretContainer;
</span><span class="cx" style="display: block; padding: 0 10px">   var isCaretContainerBlock$1 = isCaretContainerBlock;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var curry$2 = $_ebfy8j25jfuw8li1.curry;
-  var isElement$5 = $_ey7ka11qjfuw8ldg.isElement;
-  var isCaretCandidate$2 = isCaretCandidate;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var curry$2 = $_4127e12ljjgwe7ww.curry;
+  var isElement$6 = $_3b9u2y1rjjgwe7qe.isElement;
+  var isCaretCandidate$3 = isCaretCandidate;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isForwards = function (direction) {
</span><span class="cx" style="display: block; padding: 0 10px">     return direction > 0;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9121,7 +9792,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var findNode = function (node, direction, predicateFn, rootNode, shallow) {
</span><span class="cx" style="display: block; padding: 0 10px">     var walker = new TreeWalker(node, rootNode);
</span><span class="cx" style="display: block; padding: 0 10px">     if (isBackwards(direction)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isContentEditableFalse$4(node) || isCaretContainerBlock$1(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isContentEditableFalse$6(node) || isCaretContainerBlock$1(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         node = skipCaretContainers(walker.prev, true);
</span><span class="cx" style="display: block; padding: 0 10px">         if (predicateFn(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">           return node;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9134,7 +9805,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (isForwards(direction)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isContentEditableFalse$4(node) || isCaretContainerBlock$1(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isContentEditableFalse$6(node) || isCaretContainerBlock$1(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         node = skipCaretContainers(walker.next, true);
</span><span class="cx" style="display: block; padding: 0 10px">         if (predicateFn(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">           return node;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9167,7 +9838,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     container = caretPosition.container();
</span><span class="cx" style="display: block; padding: 0 10px">     offset = caretPosition.offset();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!isElement$5(container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!isElement$6(container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return null;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return container.childNodes[offset + relativeOffset];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9198,13 +9869,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (isCaretContainer$2(sibling)) {
</span><span class="cx" style="display: block; padding: 0 10px">         sibling = sibling[siblingName];
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isContentEditableFalse$4(sibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isContentEditableFalse$6(sibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (isNodesInSameBlock(root, sibling, node)) {
</span><span class="cx" style="display: block; padding: 0 10px">           return sibling;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isCaretCandidate$2(sibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isCaretCandidate$3(sibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       node = node.parentNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9211,8 +9882,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return null;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var before$1 = curry$2(beforeAfter, true);
-  var after$1 = curry$2(beforeAfter, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var before$2 = curry$2(beforeAfter, true);
+  var after$2 = curry$2(beforeAfter, false);
</ins><span class="cx" style="display: block; padding: 0 10px">   var normalizeRange = function (direction, root, range) {
</span><span class="cx" style="display: block; padding: 0 10px">     var node, container, offset, location;
</span><span class="cx" style="display: block; padding: 0 10px">     var leanLeft = curry$2(lean, true, root);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9220,7 +9891,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     container = range.startContainer;
</span><span class="cx" style="display: block; padding: 0 10px">     offset = range.startOffset;
</span><span class="cx" style="display: block; padding: 0 10px">     if (isCaretContainerBlock(container)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!isElement$5(container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!isElement$6(container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         container = container.parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       location = container.getAttribute('data-mce-caret');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9227,13 +9898,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (location === 'before') {
</span><span class="cx" style="display: block; padding: 0 10px">         node = container.nextSibling;
</span><span class="cx" style="display: block; padding: 0 10px">         if (isFakeCaretTarget(node)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return before$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return before$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (location === 'after') {
</span><span class="cx" style="display: block; padding: 0 10px">         node = container.previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">         if (isFakeCaretTarget(node)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return after$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return after$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9240,26 +9911,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (!range.collapsed) {
</span><span class="cx" style="display: block; padding: 0 10px">       return range;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isText(container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isText(container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (isCaretContainer$2(container)) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (direction === 1) {
</span><span class="cx" style="display: block; padding: 0 10px">           node = leanRight(container);
</span><span class="cx" style="display: block; padding: 0 10px">           if (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return before$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return before$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           node = leanLeft(container);
</span><span class="cx" style="display: block; padding: 0 10px">           if (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return after$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return after$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (direction === -1) {
</span><span class="cx" style="display: block; padding: 0 10px">           node = leanLeft(container);
</span><span class="cx" style="display: block; padding: 0 10px">           if (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return after$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return after$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           node = leanRight(container);
</span><span class="cx" style="display: block; padding: 0 10px">           if (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return before$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return before$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return range;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9268,7 +9939,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (direction === 1) {
</span><span class="cx" style="display: block; padding: 0 10px">           node = leanRight(container);
</span><span class="cx" style="display: block; padding: 0 10px">           if (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return before$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return before$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return range;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9277,7 +9948,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (direction === -1) {
</span><span class="cx" style="display: block; padding: 0 10px">           node = leanLeft(container);
</span><span class="cx" style="display: block; padding: 0 10px">           if (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return after$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return after$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return range;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9285,7 +9956,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (offset === container.data.length) {
</span><span class="cx" style="display: block; padding: 0 10px">         node = leanRight(container);
</span><span class="cx" style="display: block; padding: 0 10px">         if (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return before$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return before$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return range;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9292,7 +9963,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (offset === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">         node = leanLeft(container);
</span><span class="cx" style="display: block; padding: 0 10px">         if (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return after$1(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return after$2(node);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return range;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9301,13 +9972,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isNextToContentEditableFalse = function (relativeOffset, caretPosition) {
</span><span class="cx" style="display: block; padding: 0 10px">     var node = getChildNodeAtRelativeOffset(relativeOffset, caretPosition);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isContentEditableFalse$4(node) && !$_ey7ka11qjfuw8ldg.isBogusAll(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isContentEditableFalse$6(node) && !$_3b9u2y1rjjgwe7qe.isBogusAll(node);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isNextToTable = function (relativeOffset, caretPosition) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isTable(getChildNodeAtRelativeOffset(relativeOffset, caretPosition));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isTable(getChildNodeAtRelativeOffset(relativeOffset, caretPosition));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getRelativeCefElm = function (forward, caretPosition) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, caretPosition)).filter(isContentEditableFalse$4);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, caretPosition)).filter(isContentEditableFalse$6);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getNormalizedRangeEndPoint = function (direction, root, range) {
</span><span class="cx" style="display: block; padding: 0 10px">     var normalizedRange = normalizeRange(direction, root, range);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9321,668 +9992,78 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isBeforeTable = curry$2(isNextToTable, 0);
</span><span class="cx" style="display: block; padding: 0 10px">   var isAfterTable = curry$2(isNextToTable, -1);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var HDirection;
-  (function (HDirection) {
-    HDirection[HDirection['Backwards'] = -1] = 'Backwards';
-    HDirection[HDirection['Forwards'] = 1] = 'Forwards';
-  }(HDirection || (HDirection = {})));
-  var isContentEditableFalse$5 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
-  var isText$6 = $_ey7ka11qjfuw8ldg.isText;
-  var isElement$6 = $_ey7ka11qjfuw8ldg.isElement;
-  var isBr$4 = $_ey7ka11qjfuw8ldg.isBr;
-  var isCaretCandidate$3 = isCaretCandidate;
-  var isAtomic$1 = isAtomic;
-  var isEditableCaretCandidate$1 = isEditableCaretCandidate;
-  var getParents = function (node, root) {
-    var parents = [];
-    while (node && node !== root) {
-      parents.push(node);
-      node = node.parentNode;
-    }
-    return parents;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var walkToPositionIn = function (forward, root, start) {
+    var position = forward ? CaretPosition$1.before(start) : CaretPosition$1.after(start);
+    return fromPosition(forward, root, position);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var nodeAtIndex = function (container, offset) {
-    if (container.hasChildNodes() && offset < container.childNodes.length) {
-      return container.childNodes[offset];
-    }
-    return null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var afterElement = function (node) {
+    return $_3b9u2y1rjjgwe7qe.isBr(node) ? CaretPosition$1.before(node) : CaretPosition$1.after(node);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getCaretCandidatePosition = function (direction, node) {
-    if (isForwards(direction)) {
-      if (isCaretCandidate$3(node.previousSibling) && !isText$6(node.previousSibling)) {
-        return CaretPosition$1.before(node);
-      }
-      if (isText$6(node)) {
-        return CaretPosition$1(node, 0);
-      }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isBeforeOrStart = function (position) {
+    if (CaretPosition$1.isTextPosition(position)) {
+      return position.offset() === 0;
+    } else {
+      return isCaretCandidate(position.getNode());
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (isBackwards(direction)) {
-      if (isCaretCandidate$3(node.nextSibling) && !isText$6(node.nextSibling)) {
-        return CaretPosition$1.after(node);
-      }
-      if (isText$6(node)) {
-        return CaretPosition$1(node, node.data.length);
-      }
-    }
-    if (isBackwards(direction)) {
-      if (isBr$4(node)) {
-        return CaretPosition$1.before(node);
-      }
-      return CaretPosition$1.after(node);
-    }
-    return CaretPosition$1.before(node);
</del><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isBrBeforeBlock = function (node, root) {
-    var next;
-    if (!$_ey7ka11qjfuw8ldg.isBr(node)) {
-      return false;
-    }
-    next = findCaretPosition(1, CaretPosition$1.after(node), root);
-    if (!next) {
-      return false;
-    }
-    return !isInSameBlock(CaretPosition$1.before(node), CaretPosition$1.before(next), root);
-  };
-  var findCaretPosition = function (direction, startPos, root) {
-    var node, nextNode, innerNode;
-    var rootContentEditableFalseElm, caretPosition;
-    if (!isElement$6(root) || !startPos) {
-      return null;
-    }
-    if (startPos.isEqual(CaretPosition$1.after(root)) && root.lastChild) {
-      caretPosition = CaretPosition$1.after(root.lastChild);
-      if (isBackwards(direction) && isCaretCandidate$3(root.lastChild) && isElement$6(root.lastChild)) {
-        return isBr$4(root.lastChild) ? CaretPosition$1.before(root.lastChild) : caretPosition;
-      }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isAfterOrEnd = function (position) {
+    if (CaretPosition$1.isTextPosition(position)) {
+      var container = position.container();
+      return position.offset() === container.data.length;
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      caretPosition = startPos;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return isCaretCandidate(position.getNode(true));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var container = caretPosition.container();
-    var offset = caretPosition.offset();
-    if (isText$6(container)) {
-      if (isBackwards(direction) && offset > 0) {
-        return CaretPosition$1(container, --offset);
-      }
-      if (isForwards(direction) && offset < container.length) {
-        return CaretPosition$1(container, ++offset);
-      }
-      node = container;
-    } else {
-      if (isBackwards(direction) && offset > 0) {
-        nextNode = nodeAtIndex(container, offset - 1);
-        if (isCaretCandidate$3(nextNode)) {
-          if (!isAtomic$1(nextNode)) {
-            innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);
-            if (innerNode) {
-              if (isText$6(innerNode)) {
-                return CaretPosition$1(innerNode, innerNode.data.length);
-              }
-              return CaretPosition$1.after(innerNode);
-            }
-          }
-          if (isText$6(nextNode)) {
-            return CaretPosition$1(nextNode, nextNode.data.length);
-          }
-          return CaretPosition$1.before(nextNode);
-        }
-      }
-      if (isForwards(direction) && offset < container.childNodes.length) {
-        nextNode = nodeAtIndex(container, offset);
-        if (isCaretCandidate$3(nextNode)) {
-          if (isBr$4(nextNode) && root.lastChild === nextNode) {
-            return null;
-          }
-          if (isBrBeforeBlock(nextNode, root)) {
-            return findCaretPosition(direction, CaretPosition$1.after(nextNode), root);
-          }
-          if (!isAtomic$1(nextNode)) {
-            innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);
-            if (innerNode) {
-              if (isText$6(innerNode)) {
-                return CaretPosition$1(innerNode, 0);
-              }
-              return CaretPosition$1.before(innerNode);
-            }
-          }
-          if (isText$6(nextNode)) {
-            return CaretPosition$1(nextNode, 0);
-          }
-          return CaretPosition$1.after(nextNode);
-        }
-      }
-      node = nextNode ? nextNode : caretPosition.getNode();
-    }
-    if (isForwards(direction) && caretPosition.isAtEnd() || isBackwards(direction) && caretPosition.isAtStart()) {
-      node = findNode(node, direction, $_ebfy8j25jfuw8li1.constant(true), root, true);
-      if (isEditableCaretCandidate$1(node, root)) {
-        return getCaretCandidatePosition(direction, node);
-      }
-    }
-    nextNode = findNode(node, direction, isEditableCaretCandidate$1, root);
-    rootContentEditableFalseElm = $_djuh8tljfuw8l74.last($_djuh8tljfuw8l74.filter(getParents(container, root), isContentEditableFalse$5));
-    if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {
-      if (isForwards(direction)) {
-        caretPosition = CaretPosition$1.after(rootContentEditableFalseElm);
-      } else {
-        caretPosition = CaretPosition$1.before(rootContentEditableFalseElm);
-      }
-      return caretPosition;
-    }
-    if (nextNode) {
-      return getCaretCandidatePosition(direction, nextNode);
-    }
-    return null;
</del><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var CaretWalker = function (root) {
-    return {
-      next: function (caretPosition) {
-        return findCaretPosition(HDirection.Forwards, caretPosition, root);
-      },
-      prev: function (caretPosition) {
-        return findCaretPosition(HDirection.Backwards, caretPosition, root);
-      }
-    };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isBeforeAfterSameElement = function (from, to) {
+    return !CaretPosition$1.isTextPosition(from) && !CaretPosition$1.isTextPosition(to) && from.getNode() === to.getNode(true);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
-  var hasOnlyOneChild = function (node) {
-    return node.firstChild && node.firstChild === node.lastChild;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isAtBr = function (position) {
+    return !CaretPosition$1.isTextPosition(position) && $_3b9u2y1rjjgwe7qe.isBr(position.getNode());
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isPaddingNode = function (node) {
-    return node.name === 'br' || node.value === '\xA0';
-  };
-  var isPaddedEmptyBlock = function (schema, node) {
-    var blockElements = schema.getBlockElements();
-    return blockElements[node.name] && hasOnlyOneChild(node) && isPaddingNode(node.firstChild);
-  };
-  var isEmptyFragmentElement = function (schema, node) {
-    var nonEmptyElements = schema.getNonEmptyElements();
-    return node && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node));
-  };
-  var isListFragment = function (schema, fragment) {
-    var firstChild = fragment.firstChild;
-    var lastChild = fragment.lastChild;
-    if (firstChild && firstChild.name === 'meta') {
-      firstChild = firstChild.next;
-    }
-    if (lastChild && lastChild.attr('id') === 'mce_marker') {
-      lastChild = lastChild.prev;
-    }
-    if (isEmptyFragmentElement(schema, lastChild)) {
-      lastChild = lastChild.prev;
-    }
-    if (!firstChild || firstChild !== lastChild) {
-      return false;
-    }
-    return firstChild.name === 'ul' || firstChild.name === 'ol';
-  };
-  var cleanupDomFragment = function (domFragment) {
-    var firstChild = domFragment.firstChild;
-    var lastChild = domFragment.lastChild;
-    if (firstChild && firstChild.nodeName === 'META') {
-      firstChild.parentNode.removeChild(firstChild);
-    }
-    if (lastChild && lastChild.id === 'mce_marker') {
-      lastChild.parentNode.removeChild(lastChild);
-    }
-    return domFragment;
-  };
-  var toDomFragment = function (dom, serializer, fragment) {
-    var html = serializer.serialize(fragment);
-    var domFragment = dom.createFragment(html);
-    return cleanupDomFragment(domFragment);
-  };
-  var listItems$1 = function (elm) {
-    return $_52qop8kjfuw8l6v.grep(elm.childNodes, function (child) {
-      return child.nodeName === 'LI';
-    });
-  };
-  var isPadding = function (node) {
-    return node.data === '\xA0' || $_ey7ka11qjfuw8ldg.isBr(node);
-  };
-  var isListItemPadded = function (node) {
-    return node && node.firstChild && node.firstChild === node.lastChild && isPadding(node.firstChild);
-  };
-  var isEmptyOrPadded = function (elm) {
-    return !elm.firstChild || isListItemPadded(elm);
-  };
-  var trimListItems = function (elms) {
-    return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms;
-  };
-  var getParentLi = function (dom, node) {
-    var parentBlock = dom.getParent(node, dom.isBlock);
-    return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null;
-  };
-  var isParentBlockLi = function (dom, node) {
-    return !!getParentLi(dom, node);
-  };
-  var getSplit = function (parentNode, rng) {
-    var beforeRng = rng.cloneRange();
-    var afterRng = rng.cloneRange();
-    beforeRng.setStartBefore(parentNode);
-    afterRng.setEndAfter(parentNode);
-    return [
-      beforeRng.cloneContents(),
-      afterRng.cloneContents()
-    ];
-  };
-  var findFirstIn = function (node, rootNode) {
-    var caretPos = CaretPosition$1.before(node);
-    var caretWalker = CaretWalker(rootNode);
-    var newCaretPos = caretWalker.next(caretPos);
-    return newCaretPos ? newCaretPos.toRange() : null;
-  };
-  var findLastOf = function (node, rootNode) {
-    var caretPos = CaretPosition$1.after(node);
-    var caretWalker = CaretWalker(rootNode);
-    var newCaretPos = caretWalker.prev(caretPos);
-    return newCaretPos ? newCaretPos.toRange() : null;
-  };
-  var insertMiddle = function (target, elms, rootNode, rng) {
-    var parts = getSplit(target, rng);
-    var parentElm = target.parentNode;
-    parentElm.insertBefore(parts[0], target);
-    $_52qop8kjfuw8l6v.each(elms, function (li) {
-      parentElm.insertBefore(li, target);
-    });
-    parentElm.insertBefore(parts[1], target);
-    parentElm.removeChild(target);
-    return findLastOf(elms[elms.length - 1], rootNode);
-  };
-  var insertBefore = function (target, elms, rootNode) {
-    var parentElm = target.parentNode;
-    $_52qop8kjfuw8l6v.each(elms, function (elm) {
-      parentElm.insertBefore(elm, target);
-    });
-    return findFirstIn(target, rootNode);
-  };
-  var insertAfter = function (target, elms, rootNode, dom) {
-    dom.insertAfter(elms.reverse(), target);
-    return findLastOf(elms[0], rootNode);
-  };
-  var insertAtCaret = function (serializer, dom, rng, fragment) {
-    var domFragment = toDomFragment(dom, serializer, fragment);
-    var liTarget = getParentLi(dom, rng.startContainer);
-    var liElms = trimListItems(listItems$1(domFragment.firstChild));
-    var BEGINNING = 1, END = 2;
-    var rootNode = dom.getRoot();
-    var isAt = function (location) {
-      var caretPos = CaretPosition$1.fromRangeStart(rng);
-      var caretWalker = CaretWalker(dom.getRoot());
-      var newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);
-      return newPos ? getParentLi(dom, newPos.getNode()) !== liTarget : true;
-    };
-    if (isAt(BEGINNING)) {
-      return insertBefore(liTarget, liElms, rootNode);
-    } else if (isAt(END)) {
-      return insertAfter(liTarget, liElms, rootNode, dom);
-    }
-    return insertMiddle(liTarget, liElms, rootNode, rng);
-  };
-  var $_5shtl51xjfuw8lgk = {
-    isListFragment: isListFragment,
-    insertAtCaret: insertAtCaret,
-    isParentBlockLi: isParentBlockLi,
-    trimListItems: trimListItems,
-    listItems: listItems$1
-  };
-
-  var isText$7 = $_ey7ka11qjfuw8ldg.isText;
-  var isBogus$1 = $_ey7ka11qjfuw8ldg.isBogus;
-  var nodeIndex$1 = DOMUtils$1.nodeIndex;
-  var normalizedParent = function (node) {
-    var parentNode = node.parentNode;
-    if (isBogus$1(parentNode)) {
-      return normalizedParent(parentNode);
-    }
-    return parentNode;
-  };
-  var getChildNodes = function (node) {
-    if (!node) {
-      return [];
-    }
-    return $_djuh8tljfuw8l74.reduce(node.childNodes, function (result, node) {
-      if (isBogus$1(node) && node.nodeName !== 'BR') {
-        result = result.concat(getChildNodes(node));
-      } else {
-        result.push(node);
-      }
-      return result;
-    }, []);
-  };
-  var normalizedTextOffset = function (node, offset) {
-    while (node = node.previousSibling) {
-      if (!isText$7(node)) {
-        break;
-      }
-      offset += node.data.length;
-    }
-    return offset;
-  };
-  var equal$1 = function (a) {
-    return function (b) {
-      return a === b;
-    };
-  };
-  var normalizedNodeIndex = function (node) {
-    var nodes, index, numTextFragments;
-    nodes = getChildNodes(normalizedParent(node));
-    index = $_djuh8tljfuw8l74.findIndex(nodes, equal$1(node), node);
-    nodes = nodes.slice(0, index + 1);
-    numTextFragments = $_djuh8tljfuw8l74.reduce(nodes, function (result, node, i) {
-      if (isText$7(node) && isText$7(nodes[i - 1])) {
-        result++;
-      }
-      return result;
-    }, 0);
-    nodes = $_djuh8tljfuw8l74.filter(nodes, $_ey7ka11qjfuw8ldg.matchNodeNames(node.nodeName));
-    index = $_djuh8tljfuw8l74.findIndex(nodes, equal$1(node), node);
-    return index - numTextFragments;
-  };
-  var createPathItem = function (node) {
-    var name;
-    if (isText$7(node)) {
-      name = 'text()';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var shouldSkipPosition = function (forward, from, to) {
+    if (forward) {
+      return !isBeforeAfterSameElement(from, to) && !isAtBr(from) && isAfterOrEnd(from) && isBeforeOrStart(to);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      name = node.nodeName.toLowerCase();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return !isBeforeAfterSameElement(to, from) && isBeforeOrStart(from) && isAfterOrEnd(to);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return name + '[' + normalizedNodeIndex(node) + ']';
</del><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var parentsUntil = function (root, node, predicate) {
-    var parents = [];
-    for (node = node.parentNode; node !== root; node = node.parentNode) {
-      if (predicate && predicate(node)) {
-        break;
-      }
-      parents.push(node);
-    }
-    return parents;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var fromPosition = function (forward, root, pos) {
+    var walker = CaretWalker(root);
+    return Option.from(forward ? walker.next(pos) : walker.prev(pos));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var create$1 = function (root, caretPosition) {
-    var container, offset, path = [], outputOffset, childNodes, parents;
-    container = caretPosition.container();
-    offset = caretPosition.offset();
-    if (isText$7(container)) {
-      outputOffset = normalizedTextOffset(container, offset);
-    } else {
-      childNodes = container.childNodes;
-      if (offset >= childNodes.length) {
-        outputOffset = 'after';
-        offset = childNodes.length - 1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var navigate = function (forward, root, from) {
+    return fromPosition(forward, root, from).bind(function (to) {
+      if (isInSameBlock(from, to, root) && shouldSkipPosition(forward, from, to)) {
+        return fromPosition(forward, root, to);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        outputOffset = 'before';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return Option.some(to);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      container = childNodes[offset];
-    }
-    path.push(createPathItem(container));
-    parents = parentsUntil(root, container);
-    parents = $_djuh8tljfuw8l74.filter(parents, $_ebfy8j25jfuw8li1.negate($_ey7ka11qjfuw8ldg.isBogus));
-    path = path.concat($_djuh8tljfuw8l74.map(parents, function (node) {
-      return createPathItem(node);
-    }));
-    return path.reverse().join('/') + ',' + outputOffset;
-  };
-  var resolvePathItem = function (node, name, index) {
-    var nodes = getChildNodes(node);
-    nodes = $_djuh8tljfuw8l74.filter(nodes, function (node, index) {
-      return !isText$7(node) || !isText$7(nodes[index - 1]);
</del><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    nodes = $_djuh8tljfuw8l74.filter(nodes, $_ey7ka11qjfuw8ldg.matchNodeNames(name));
-    return nodes[index];
</del><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var findTextPosition = function (container, offset) {
-    var node = container, targetOffset = 0, dataLen;
-    while (isText$7(node)) {
-      dataLen = node.data.length;
-      if (offset >= targetOffset && offset <= targetOffset + dataLen) {
-        container = node;
-        offset = offset - targetOffset;
-        break;
-      }
-      if (!isText$7(node.nextSibling)) {
-        container = node;
-        offset = dataLen;
-        break;
-      }
-      targetOffset += dataLen;
-      node = node.nextSibling;
-    }
-    if (isText$7(container) && offset > container.data.length) {
-      offset = container.data.length;
-    }
-    return CaretPosition$1(container, offset);
-  };
-  var resolve$2 = function (root, path) {
-    var parts, container, offset;
-    if (!path) {
-      return null;
-    }
-    parts = path.split(',');
-    path = parts[0].split('/');
-    offset = parts.length > 1 ? parts[1] : 'before';
-    container = $_djuh8tljfuw8l74.reduce(path, function (result, value) {
-      value = /([\w\-\(\)]+)\[([0-9]+)\]/.exec(value);
-      if (!value) {
-        return null;
-      }
-      if (value[1] === 'text()') {
-        value[1] = '#text';
-      }
-      return resolvePathItem(result, value[1], parseInt(value[2], 10));
-    }, root);
-    if (!container) {
-      return null;
-    }
-    if (!isText$7(container)) {
-      if (offset === 'after') {
-        offset = nodeIndex$1(container) + 1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var positionIn = function (forward, element) {
+    var startNode = forward ? element.firstChild : element.lastChild;
+    if ($_3b9u2y1rjjgwe7qe.isText(startNode)) {
+      return Option.some(CaretPosition$1(startNode, forward ? 0 : startNode.data.length));
+    } else if (startNode) {
+      if (isCaretCandidate(startNode)) {
+        return Option.some(forward ? CaretPosition$1.before(startNode) : afterElement(startNode));
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        offset = nodeIndex$1(container);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return walkToPositionIn(forward, element, startNode);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return CaretPosition$1(container.parentNode, offset);
-    }
-    return findTextPosition(container, parseInt(offset, 10));
-  };
-
-  var isContentEditableFalse$6 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
-  var getNormalizedTextOffset = function (trim, container, offset) {
-    var node, trimmedOffset;
-    trimmedOffset = trim(container.data.slice(0, offset)).length;
-    for (node = container.previousSibling; node && $_ey7ka11qjfuw8ldg.isText(node); node = node.previousSibling) {
-      trimmedOffset += trim(node.data).length;
-    }
-    return trimmedOffset;
-  };
-  var getPoint = function (dom, trim, normalized, rng, start) {
-    var container = rng[start ? 'startContainer' : 'endContainer'];
-    var offset = rng[start ? 'startOffset' : 'endOffset'];
-    var point = [];
-    var childNodes, after = 0;
-    var root = dom.getRoot();
-    if ($_ey7ka11qjfuw8ldg.isText(container)) {
-      point.push(normalized ? getNormalizedTextOffset(trim, container, offset) : offset);
</del><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      childNodes = container.childNodes;
-      if (offset >= childNodes.length && childNodes.length) {
-        after = 1;
-        offset = Math.max(0, childNodes.length - 1);
-      }
-      point.push(dom.nodeIndex(childNodes[offset], normalized) + after);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return Option.none();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    for (; container && container !== root; container = container.parentNode) {
-      point.push(dom.nodeIndex(container, normalized));
-    }
-    return point;
</del><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getLocation = function (trim, selection, normalized, rng) {
-    var dom = selection.dom, bookmark = {};
-    bookmark.start = getPoint(dom, trim, normalized, rng, true);
-    if (!selection.isCollapsed()) {
-      bookmark.end = getPoint(dom, trim, normalized, rng, false);
-    }
-    return bookmark;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8q1ver2yjjgwe7z3 = {
+    fromPosition: fromPosition,
+    nextPosition: curry(fromPosition, true),
+    prevPosition: curry(fromPosition, false),
+    navigate: navigate,
+    positionIn: positionIn,
+    firstPositionIn: curry(positionIn, true),
+    lastPositionIn: curry(positionIn, false)
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var trimEmptyTextNode = function (node) {
-    if ($_ey7ka11qjfuw8ldg.isText(node) && node.data.length === 0) {
-      node.parentNode.removeChild(node);
-    }
-  };
-  var findIndex$3 = function (dom, name, element) {
-    var count = 0;
-    $_52qop8kjfuw8l6v.each(dom.select(name), function (node) {
-      if (node.getAttribute('data-mce-bogus') === 'all') {
-        return;
-      }
-      if (node === element) {
-        return false;
-      }
-      count++;
-    });
-    return count;
-  };
-  var moveEndPoint = function (rng, start) {
-    var container, offset, childNodes;
-    var prefix = start ? 'start' : 'end';
-    container = rng[prefix + 'Container'];
-    offset = rng[prefix + 'Offset'];
-    if ($_ey7ka11qjfuw8ldg.isElement(container) && container.nodeName === 'TR') {
-      childNodes = container.childNodes;
-      container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)];
-      if (container) {
-        offset = start ? 0 : container.childNodes.length;
-        rng['set' + (start ? 'Start' : 'End')](container, offset);
-      }
-    }
-  };
-  var normalizeTableCellSelection = function (rng) {
-    moveEndPoint(rng, true);
-    moveEndPoint(rng, false);
-    return rng;
-  };
-  var findSibling = function (node, offset) {
-    var sibling;
-    if ($_ey7ka11qjfuw8ldg.isElement(node)) {
-      node = getNode(node, offset);
-      if (isContentEditableFalse$6(node)) {
-        return node;
-      }
-    }
-    if (isCaretContainer(node)) {
-      if ($_ey7ka11qjfuw8ldg.isText(node) && isCaretContainerBlock(node)) {
-        node = node.parentNode;
-      }
-      sibling = node.previousSibling;
-      if (isContentEditableFalse$6(sibling)) {
-        return sibling;
-      }
-      sibling = node.nextSibling;
-      if (isContentEditableFalse$6(sibling)) {
-        return sibling;
-      }
-    }
-  };
-  var findAdjacentContentEditableFalseElm = function (rng) {
-    return findSibling(rng.startContainer, rng.startOffset) || findSibling(rng.endContainer, rng.endOffset);
-  };
-  var getOffsetBookmark = function (trim, normalized, selection) {
-    var element = selection.getNode();
-    var name = element ? element.nodeName : null;
-    var rng = selection.getRng();
-    if (isContentEditableFalse$6(element) || name === 'IMG') {
-      return {
-        name: name,
-        index: findIndex$3(selection.dom, name, element)
-      };
-    }
-    var sibling = findAdjacentContentEditableFalseElm(rng);
-    if (sibling) {
-      name = sibling.tagName;
-      return {
-        name: name,
-        index: findIndex$3(selection.dom, name, sibling)
-      };
-    }
-    return getLocation(trim, selection, normalized, rng);
-  };
-  var getCaretBookmark = function (selection) {
-    var rng = selection.getRng();
-    return {
-      start: create$1(selection.dom.getRoot(), CaretPosition$1.fromRangeStart(rng)),
-      end: create$1(selection.dom.getRoot(), CaretPosition$1.fromRangeEnd(rng))
-    };
-  };
-  var getRangeBookmark = function (selection) {
-    return { rng: selection.getRng() };
-  };
-  var createBookmarkSpan = function (dom, id, filled) {
-    var args = {
-      'data-mce-type': 'bookmark',
-      'id': id,
-      'style': 'overflow:hidden;line-height:0px'
-    };
-    return filled ? dom.create('span', args, '&#xFEFF;') : dom.create('span', args);
-  };
-  var getPersistentBookmark = function (selection, filled) {
-    var dom = selection.dom;
-    var rng = selection.getRng();
-    var id = dom.uniqueId();
-    var collapsed = selection.isCollapsed();
-    var element = selection.getNode();
-    var name = element.nodeName;
-    if (name === 'IMG') {
-      return {
-        name: name,
-        index: findIndex$3(dom, name, element)
-      };
-    }
-    var rng2 = normalizeTableCellSelection(rng.cloneRange());
-    if (!collapsed) {
-      rng2.collapse(false);
-      var endBookmarkNode = createBookmarkSpan(dom, id + '_end', filled);
-      rng2.insertNode(endBookmarkNode);
-      trimEmptyTextNode(endBookmarkNode.nextSibling);
-    }
-    rng = normalizeTableCellSelection(rng);
-    rng.collapse(true);
-    var startBookmarkNode = createBookmarkSpan(dom, id + '_start', filled);
-    rng.insertNode(startBookmarkNode);
-    trimEmptyTextNode(startBookmarkNode.previousSibling);
-    selection.moveToBookmark({
-      id: id,
-      keep: 1
-    });
-    return { id: id };
-  };
-  var getBookmark = function (selection, type, normalized) {
-    if (type === 2) {
-      return getOffsetBookmark($_dpfg1321jfuw8lhn.trim, normalized, selection);
-    } else if (type === 3) {
-      return getCaretBookmark(selection);
-    } else if (type) {
-      return getRangeBookmark(selection);
-    } else {
-      return getPersistentBookmark(selection, false);
-    }
-  };
-  var $_cpdbfi2ojfuw8ll6 = {
-    getBookmark: getBookmark,
-    getUndoBookmark: $_68e81l6jfuw8kyc.curry(getOffsetBookmark, $_68e81l6jfuw8kyc.identity, true),
-    getPersistentBookmark: getPersistentBookmark
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var CARET_ID = '_mce_caret';
-  var isCaretNode = function (node) {
-    return $_ey7ka11qjfuw8ldg.isElement(node) && node.id === CARET_ID;
-  };
-  var getParentCaretContainer = function (body, node) {
-    while (node && node !== body) {
-      if (node.id === CARET_ID) {
-        return node;
-      }
-      node = node.parentNode;
-    }
-    return null;
-  };
-
</del><span class="cx" style="display: block; padding: 0 10px">   var isStringPathBookmark = function (bookmark) {
</span><span class="cx" style="display: block; padding: 0 10px">     return typeof bookmark.start === 'string';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9996,11 +10077,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return bookmark.hasOwnProperty('name');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isPathBookmark = function (bookmark) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_52qop8kjfuw8l6v.isArray(bookmark.start);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6cwiepljjgwe7j4.isArray(bookmark.start);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var addBogus = function (dom, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (dom.isBlock(node) && !node.innerHTML && !$_9fhi43ajfuw8l13.ie) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (dom.isBlock(node) && !node.innerHTML && !$_bcvfv9ajjgwe79v.ie) {
</ins><span class="cx" style="display: block; padding: 0 10px">       node.innerHTML = '<br data-mce-bogus="1" />';
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return node;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10015,7 +10096,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return rng;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertZwsp = function (node, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var textNode = node.ownerDocument.createTextNode($_dpfg1321jfuw8lhn.ZWSP);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var textNode = node.ownerDocument.createTextNode($_2xw7ul2pjjgwe7xs.ZWSP);
</ins><span class="cx" style="display: block; padding: 0 10px">     node.appendChild(textNode);
</span><span class="cx" style="display: block; padding: 0 10px">     rng.setStart(textNode, 0);
</span><span class="cx" style="display: block; padding: 0 10px">     rng.setEnd(textNode, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10024,7 +10105,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return node.hasChildNodes() === false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var tryFindRangePosition = function (node, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.lastPositionIn(node).fold(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.lastPositionIn(node).fold(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (pos) {
</span><span class="cx" style="display: block; padding: 0 10px">       rng.setStart(pos.container(), pos.offset());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10074,7 +10155,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return true;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isValidTextNode = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isText(node) && node.data.length > 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isText(node) && node.data.length > 0;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var restoreEndPoint = function (dom, suffix, bookmark) {
</span><span class="cx" style="display: block; padding: 0 10px">     var marker = dom.get(bookmark.id + '_' + suffix), node, idx, next, prev;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10123,8 +10204,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!keep) {
</span><span class="cx" style="display: block; padding: 0 10px">         prev = marker.previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">         next = marker.nextSibling;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_52qop8kjfuw8l6v.each($_52qop8kjfuw8l6v.grep(marker.childNodes), function (node) {
-          if ($_ey7ka11qjfuw8ldg.isText(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6cwiepljjgwe7j4.each($_6cwiepljjgwe7j4.grep(marker.childNodes), function (node) {
+          if ($_3b9u2y1rjjgwe7qe.isText(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             node.nodeValue = node.nodeValue.replace(/\uFEFF/g, '');
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10131,7 +10212,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         while (marker = dom.get(bookmark.id + '_' + suffix)) {
</span><span class="cx" style="display: block; padding: 0 10px">           dom.remove(marker, true);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (prev && next && prev.nodeType === next.nodeType && $_ey7ka11qjfuw8ldg.isText(prev) && !$_9fhi43ajfuw8l13.opera) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (prev && next && prev.nodeType === next.nodeType && $_3b9u2y1rjjgwe7qe.isText(prev) && !$_bcvfv9ajjgwe79v.opera) {
</ins><span class="cx" style="display: block; padding: 0 10px">           idx = prev.nodeValue.length;
</span><span class="cx" style="display: block; padding: 0 10px">           prev.appendData(next.nodeValue);
</span><span class="cx" style="display: block; padding: 0 10px">           dom.remove(next);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10163,7 +10244,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var resolveId = function (dom, bookmark) {
</span><span class="cx" style="display: block; padding: 0 10px">     var startPos = restoreEndPoint(dom, 'start', bookmark);
</span><span class="cx" style="display: block; padding: 0 10px">     var endPos = restoreEndPoint(dom, 'end', bookmark);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5gv5dd26jfuw8li3.liftN([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return liftN([
</ins><span class="cx" style="display: block; padding: 0 10px">       startPos,
</span><span class="cx" style="display: block; padding: 0 10px">       alt(endPos, startPos)
</span><span class="cx" style="display: block; padding: 0 10px">     ], function (spos, epos) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10197,123 +10278,512 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dczulw2qjfuw8llk = { resolve: resolve$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6xjyb22wjjgwe7yr = { resolve: resolve$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getBookmark$1 = function (selection, type, normalized) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_cpdbfi2ojfuw8ll6.getBookmark(selection, type, normalized);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ga29lf2jjjgwe7wh.getBookmark(selection, type, normalized);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var moveToBookmark = function (selection, bookmark) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_dczulw2qjfuw8llk.resolve(selection, bookmark).each(function (rng) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_6xjyb22wjjgwe7yr.resolve(selection, bookmark).each(function (rng) {
</ins><span class="cx" style="display: block; padding: 0 10px">       selection.setRng(rng);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isBookmarkNode$1 = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isElement(node) && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isElement(node) && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_disscn2njfuw8ll3 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6refgt2vjjgwe7yn = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getBookmark: getBookmark$1,
</span><span class="cx" style="display: block; padding: 0 10px">     moveToBookmark: moveToBookmark,
</span><span class="cx" style="display: block; padding: 0 10px">     isBookmarkNode: isBookmarkNode$1
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$8 = $_52qop8kjfuw8l6v.each;
-  var ElementUtils = function (dom) {
-    this.compare = function (node1, node2) {
-      if (node1.nodeName !== node2.nodeName) {
-        return false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isInlineBlock = function (node) {
+    return node && /^(IMG)$/.test(node.nodeName);
+  };
+  var moveStart = function (dom, selection, rng) {
+    var offset = rng.startOffset;
+    var container = rng.startContainer, walker, node, nodes;
+    if (rng.startContainer === rng.endContainer) {
+      if (isInlineBlock(rng.startContainer.childNodes[rng.startOffset])) {
+        return;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var getAttribs = function (node) {
-        var attribs = {};
-        each$8(dom.getAttribs(node), function (attr) {
-          var name = attr.nodeName.toLowerCase();
-          if (name.indexOf('_') !== 0 && name !== 'style' && name.indexOf('data-') !== 0) {
-            attribs[name] = dom.getAttrib(node, name);
-          }
-        });
-        return attribs;
-      };
-      var compareObjects = function (obj1, obj2) {
-        var value, name;
-        for (name in obj1) {
-          if (obj1.hasOwnProperty(name)) {
-            value = obj2[name];
-            if (typeof value === 'undefined') {
-              return false;
-            }
-            if (obj1[name] !== value) {
-              return false;
-            }
-            delete obj2[name];
-          }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    }
+    if (container.nodeType === 1) {
+      nodes = container.childNodes;
+      if (offset < nodes.length) {
+        container = nodes[offset];
+        walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));
+      } else {
+        container = nodes[nodes.length - 1];
+        walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));
+        walker.next(true);
+      }
+      for (node = walker.current(); node; node = walker.next()) {
+        if (node.nodeType === 3 && !isWhiteSpaceNode(node)) {
+          rng.setStart(node, 0);
+          selection.setRng(rng);
+          return;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        for (name in obj2) {
-          if (obj2.hasOwnProperty(name)) {
-            return false;
-          }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      }
+    }
+  };
+  var getNonWhiteSpaceSibling = function (node, next, inc) {
+    if (node) {
+      next = next ? 'nextSibling' : 'previousSibling';
+      for (node = inc ? node : node[next]; node; node = node[next]) {
+        if (node.nodeType === 1 || !isWhiteSpaceNode(node)) {
+          return node;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return true;
-      };
-      if (!compareObjects(getAttribs(node1), getAttribs(node2))) {
-        return false;
</del><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) {
-        return false;
-      }
-      return !$_disscn2njfuw8ll3.isBookmarkNode(node1) && !$_disscn2njfuw8ll3.isBookmarkNode(node2);
-    };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    }
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
-  var before$2 = function (marker, elements) {
-    $_9ek1bp4jfuw8kxg.each(elements, function (x) {
-      $_doli6x2kjfuw8lky.before(marker, x);
-    });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isTextBlock$1 = function (editor, name) {
+    if (name.nodeType) {
+      name = name.nodeName;
+    }
+    return !!editor.schema.getTextBlockElements()[name.toLowerCase()];
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var after$2 = function (marker, elements) {
-    $_9ek1bp4jfuw8kxg.each(elements, function (x, i) {
-      var e = i === 0 ? marker : elements[i - 1];
-      $_doli6x2kjfuw8lky.after(e, x);
-    });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isValid = function (ed, parent, child) {
+    return ed.schema.isValidChild(parent, child);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var prepend$1 = function (parent, elements) {
-    $_9ek1bp4jfuw8kxg.each(elements.slice().reverse(), function (x) {
-      $_doli6x2kjfuw8lky.prepend(parent, x);
-    });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isWhiteSpaceNode = function (node) {
+    return node && node.nodeType === 3 && /^([\t \r\n]+|)$/.test(node.nodeValue);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var append$1 = function (parent, elements) {
-    $_9ek1bp4jfuw8kxg.each(elements, function (x) {
-      $_doli6x2kjfuw8lky.append(parent, x);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var replaceVars = function (value, vars) {
+    if (typeof value !== 'string') {
+      value = value(vars);
+    } else if (vars) {
+      value = value.replace(/%(\w+)/g, function (str, name) {
+        return vars[name] || str;
+      });
+    }
+    return value;
+  };
+  var isEq = function (str1, str2) {
+    str1 = str1 || '';
+    str2 = str2 || '';
+    str1 = '' + (str1.nodeName || str1);
+    str2 = '' + (str2.nodeName || str2);
+    return str1.toLowerCase() === str2.toLowerCase();
+  };
+  var normalizeStyleValue = function (dom, value, name) {
+    if (name === 'color' || name === 'backgroundColor') {
+      value = dom.toHex(value);
+    }
+    if (name === 'fontWeight' && value === 700) {
+      value = 'bold';
+    }
+    if (name === 'fontFamily') {
+      value = value.replace(/[\'\"]/g, '').replace(/,\s+/g, ',');
+    }
+    return '' + value;
+  };
+  var getStyle = function (dom, node, name) {
+    return normalizeStyleValue(dom, dom.getStyle(node, name), name);
+  };
+  var getTextDecoration = function (dom, node) {
+    var decoration;
+    dom.getParent(node, function (n) {
+      decoration = dom.getStyle(n, 'text-decoration');
+      return decoration && decoration !== 'none';
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return decoration;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_84jjow2vjfuw8lml = {
-    before: before$2,
-    after: after$2,
-    prepend: prepend$1,
-    append: append$1
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getParents$1 = function (dom, node, selector) {
+    return dom.getParents(node, selector, dom.getRoot());
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4301413ajjgwe82g = {
+    isInlineBlock: isInlineBlock,
+    moveStart: moveStart,
+    getNonWhiteSpaceSibling: getNonWhiteSpaceSibling,
+    isTextBlock: isTextBlock$1,
+    isValid: isValid,
+    isWhiteSpaceNode: isWhiteSpaceNode,
+    replaceVars: replaceVars,
+    isEq: isEq,
+    normalizeStyleValue: normalizeStyleValue,
+    getStyle: getStyle,
+    getTextDecoration: getTextDecoration,
+    getParents: getParents$1
+  };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var empty = function (element) {
-    element.dom().textContent = '';
-    $_9ek1bp4jfuw8kxg.each($_2j4g5u17jfuw8lav.children(element), function (rogue) {
-      remove$3(rogue);
-    });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isBookmarkNode$2 = $_6refgt2vjjgwe7yn.isBookmarkNode;
+  var getParents$2 = $_4301413ajjgwe82g.getParents;
+  var isWhiteSpaceNode$1 = $_4301413ajjgwe82g.isWhiteSpaceNode;
+  var isTextBlock$2 = $_4301413ajjgwe82g.isTextBlock;
+  var findLeaf = function (node, offset) {
+    if (typeof offset === 'undefined') {
+      offset = node.nodeType === 3 ? node.length : node.childNodes.length;
+    }
+    while (node && node.hasChildNodes()) {
+      node = node.childNodes[offset];
+      if (node) {
+        offset = node.nodeType === 3 ? node.length : node.childNodes.length;
+      }
+    }
+    return {
+      node: node,
+      offset: offset
+    };
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var remove$3 = function (element) {
-    var dom = element.dom();
-    if (dom.parentNode !== null)
-      dom.parentNode.removeChild(dom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var excludeTrailingWhitespace = function (endContainer, endOffset) {
+    var leaf = findLeaf(endContainer, endOffset);
+    if (leaf.node) {
+      while (leaf.node && leaf.offset === 0 && leaf.node.previousSibling) {
+        leaf = findLeaf(leaf.node.previousSibling);
+      }
+      if (leaf.node && leaf.offset > 0 && leaf.node.nodeType === 3 && leaf.node.nodeValue.charAt(leaf.offset - 1) === ' ') {
+        if (leaf.offset > 1) {
+          endContainer = leaf.node;
+          endContainer.splitText(leaf.offset - 1);
+        }
+      }
+    }
+    return endContainer;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var unwrap = function (wrapper) {
-    var children = $_2j4g5u17jfuw8lav.children(wrapper);
-    if (children.length > 0)
-      $_84jjow2vjfuw8lml.before(wrapper, children);
-    remove$3(wrapper);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isBogusBr = function (node) {
+    return node.nodeName === 'BR' && node.getAttribute('data-mce-bogus') && !node.nextSibling;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_byg6a92ujfuw8lmi = {
-    empty: empty,
-    remove: remove$3,
-    unwrap: unwrap
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var findParentContentEditable = function (dom, node) {
+    var parent = node;
+    while (parent) {
+      if (parent.nodeType === 1 && dom.getContentEditable(parent)) {
+        return dom.getContentEditable(parent) === 'false' ? parent : node;
+      }
+      parent = parent.parentNode;
+    }
+    return node;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var findSpace = function (start, remove, node, offset) {
+    var pos, pos2;
+    var str = node.nodeValue;
+    if (typeof offset === 'undefined') {
+      offset = start ? str.length : 0;
+    }
+    if (start) {
+      pos = str.lastIndexOf(' ', offset);
+      pos2 = str.lastIndexOf('\xA0', offset);
+      pos = pos > pos2 ? pos : pos2;
+      if (pos !== -1 && !remove) {
+        pos++;
+      }
+    } else {
+      pos = str.indexOf(' ', offset);
+      pos2 = str.indexOf('\xA0', offset);
+      pos = pos !== -1 && (pos2 === -1 || pos < pos2) ? pos : pos2;
+    }
+    return pos;
+  };
+  var findWordEndPoint = function (dom, body, container, offset, start, remove) {
+    var walker, node, pos, lastTextNode;
+    if (container.nodeType === 3) {
+      pos = findSpace(start, remove, container, offset);
+      if (pos !== -1) {
+        return {
+          container: container,
+          offset: pos
+        };
+      }
+      lastTextNode = container;
+    }
+    walker = new TreeWalker(container, dom.getParent(container, dom.isBlock) || body);
+    while (node = walker[start ? 'prev' : 'next']()) {
+      if (node.nodeType === 3) {
+        lastTextNode = node;
+        pos = findSpace(start, remove, node);
+        if (pos !== -1) {
+          return {
+            container: node,
+            offset: pos
+          };
+        }
+      } else if (dom.isBlock(node)) {
+        break;
+      }
+    }
+    if (lastTextNode) {
+      if (start) {
+        offset = 0;
+      } else {
+        offset = lastTextNode.length;
+      }
+      return {
+        container: lastTextNode,
+        offset: offset
+      };
+    }
+  };
+  var findSelectorEndPoint = function (dom, format, rng, container, siblingName) {
+    var parents, i, y, curFormat;
+    if (container.nodeType === 3 && container.nodeValue.length === 0 && container[siblingName]) {
+      container = container[siblingName];
+    }
+    parents = getParents$2(dom, container);
+    for (i = 0; i < parents.length; i++) {
+      for (y = 0; y < format.length; y++) {
+        curFormat = format[y];
+        if ('collapsed' in curFormat && curFormat.collapsed !== rng.collapsed) {
+          continue;
+        }
+        if (dom.is(parents[i], curFormat.selector)) {
+          return parents[i];
+        }
+      }
+    }
+    return container;
+  };
+  var findBlockEndPoint = function (editor, format, container, siblingName) {
+    var node;
+    var dom = editor.dom;
+    var root = dom.getRoot();
+    if (!format[0].wrapper) {
+      node = dom.getParent(container, format[0].block, root);
+    }
+    if (!node) {
+      var scopeRoot = dom.getParent(container, 'LI,TD,TH');
+      node = dom.getParent(container.nodeType === 3 ? container.parentNode : container, function (node) {
+        return node !== root && isTextBlock$2(editor, node);
+      }, scopeRoot);
+    }
+    if (node && format[0].wrapper) {
+      node = getParents$2(dom, node, 'ul,ol').reverse()[0] || node;
+    }
+    if (!node) {
+      node = container;
+      while (node[siblingName] && !dom.isBlock(node[siblingName])) {
+        node = node[siblingName];
+        if ($_4301413ajjgwe82g.isEq(node, 'br')) {
+          break;
+        }
+      }
+    }
+    return node || container;
+  };
+  var findParentContainer = function (dom, format, startContainer, startOffset, endContainer, endOffset, start) {
+    var container, parent, sibling, siblingName, root;
+    container = parent = start ? startContainer : endContainer;
+    siblingName = start ? 'previousSibling' : 'nextSibling';
+    root = dom.getRoot();
+    if (container.nodeType === 3 && !isWhiteSpaceNode$1(container)) {
+      if (start ? startOffset > 0 : endOffset < container.nodeValue.length) {
+        return container;
+      }
+    }
+    while (true) {
+      if (!format[0].block_expand && dom.isBlock(parent)) {
+        return parent;
+      }
+      for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {
+        if (!isBookmarkNode$2(sibling) && !isWhiteSpaceNode$1(sibling) && !isBogusBr(sibling)) {
+          return parent;
+        }
+      }
+      if (parent === root || parent.parentNode === root) {
+        container = parent;
+        break;
+      }
+      parent = parent.parentNode;
+    }
+    return container;
+  };
+  var expandRng = function (editor, rng, format, remove) {
+    var endPoint, startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;
+    var dom = editor.dom;
+    if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {
+      startContainer = getNode(startContainer, startOffset);
+      if (startContainer.nodeType === 3) {
+        startOffset = 0;
+      }
+    }
+    if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {
+      endContainer = getNode(endContainer, rng.collapsed ? endOffset : endOffset - 1);
+      if (endContainer.nodeType === 3) {
+        endOffset = endContainer.nodeValue.length;
+      }
+    }
+    startContainer = findParentContentEditable(dom, startContainer);
+    endContainer = findParentContentEditable(dom, endContainer);
+    if (isBookmarkNode$2(startContainer.parentNode) || isBookmarkNode$2(startContainer)) {
+      startContainer = isBookmarkNode$2(startContainer) ? startContainer : startContainer.parentNode;
+      startContainer = startContainer.nextSibling || startContainer;
+      if (startContainer.nodeType === 3) {
+        startOffset = 0;
+      }
+    }
+    if (isBookmarkNode$2(endContainer.parentNode) || isBookmarkNode$2(endContainer)) {
+      endContainer = isBookmarkNode$2(endContainer) ? endContainer : endContainer.parentNode;
+      endContainer = endContainer.previousSibling || endContainer;
+      if (endContainer.nodeType === 3) {
+        endOffset = endContainer.length;
+      }
+    }
+    if (format[0].inline) {
+      if (rng.collapsed) {
+        endPoint = findWordEndPoint(dom, editor.getBody(), startContainer, startOffset, true, remove);
+        if (endPoint) {
+          startContainer = endPoint.container;
+          startOffset = endPoint.offset;
+        }
+        endPoint = findWordEndPoint(dom, editor.getBody(), endContainer, endOffset, false, remove);
+        if (endPoint) {
+          endContainer = endPoint.container;
+          endOffset = endPoint.offset;
+        }
+      }
+      endContainer = remove ? endContainer : excludeTrailingWhitespace(endContainer, endOffset);
+    }
+    if (format[0].inline || format[0].block_expand) {
+      if (!format[0].inline || (startContainer.nodeType !== 3 || startOffset === 0)) {
+        startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);
+      }
+      if (!format[0].inline || (endContainer.nodeType !== 3 || endOffset === endContainer.nodeValue.length)) {
+        endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);
+      }
+    }
+    if (format[0].selector && format[0].expand !== false && !format[0].inline) {
+      startContainer = findSelectorEndPoint(dom, format, rng, startContainer, 'previousSibling');
+      endContainer = findSelectorEndPoint(dom, format, rng, endContainer, 'nextSibling');
+    }
+    if (format[0].block || format[0].selector) {
+      startContainer = findBlockEndPoint(editor, format, startContainer, 'previousSibling');
+      endContainer = findBlockEndPoint(editor, format, endContainer, 'nextSibling');
+      if (format[0].block) {
+        if (!dom.isBlock(startContainer)) {
+          startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);
+        }
+        if (!dom.isBlock(endContainer)) {
+          endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);
+        }
+      }
+    }
+    if (startContainer.nodeType === 1) {
+      startOffset = dom.nodeIndex(startContainer);
+      startContainer = startContainer.parentNode;
+    }
+    if (endContainer.nodeType === 1) {
+      endOffset = dom.nodeIndex(endContainer) + 1;
+      endContainer = endContainer.parentNode;
+    }
+    return {
+      startContainer: startContainer,
+      startOffset: startOffset,
+      endContainer: endContainer,
+      endOffset: endOffset
+    };
+  };
+  var $_1f06hv2ujjgwe7y7 = { expandRng: expandRng };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$8 = $_6cwiepljjgwe7j4.each;
+  var getEndChild = function (container, index) {
+    var childNodes = container.childNodes;
+    index--;
+    if (index > childNodes.length - 1) {
+      index = childNodes.length - 1;
+    } else if (index < 0) {
+      index = 0;
+    }
+    return childNodes[index] || container;
+  };
+  var walk$2 = function (dom, rng, callback) {
+    var startContainer = rng.startContainer;
+    var startOffset = rng.startOffset;
+    var endContainer = rng.endContainer;
+    var endOffset = rng.endOffset;
+    var ancestor;
+    var startPoint;
+    var endPoint;
+    var node;
+    var parent;
+    var siblings;
+    var nodes;
+    nodes = dom.select('td[data-mce-selected],th[data-mce-selected]');
+    if (nodes.length > 0) {
+      each$8(nodes, function (node) {
+        callback([node]);
+      });
+      return;
+    }
+    var exclude = function (nodes) {
+      var node;
+      node = nodes[0];
+      if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) {
+        nodes.splice(0, 1);
+      }
+      node = nodes[nodes.length - 1];
+      if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) {
+        nodes.splice(nodes.length - 1, 1);
+      }
+      return nodes;
+    };
+    var collectSiblings = function (node, name, endNode) {
+      var siblings = [];
+      for (; node && node !== endNode; node = node[name]) {
+        siblings.push(node);
+      }
+      return siblings;
+    };
+    var findEndPoint = function (node, root) {
+      do {
+        if (node.parentNode === root) {
+          return node;
+        }
+        node = node.parentNode;
+      } while (node);
+    };
+    var walkBoundary = function (startNode, endNode, next) {
+      var siblingName = next ? 'nextSibling' : 'previousSibling';
+      for (node = startNode, parent = node.parentNode; node && node !== endNode; node = parent) {
+        parent = node.parentNode;
+        siblings = collectSiblings(node === startNode ? node : node[siblingName], siblingName);
+        if (siblings.length) {
+          if (!next) {
+            siblings.reverse();
+          }
+          callback(exclude(siblings));
+        }
+      }
+    };
+    if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {
+      startContainer = startContainer.childNodes[startOffset];
+    }
+    if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {
+      endContainer = getEndChild(endContainer, endOffset);
+    }
+    if (startContainer === endContainer) {
+      return callback(exclude([startContainer]));
+    }
+    ancestor = dom.findCommonAncestor(startContainer, endContainer);
+    for (node = startContainer; node; node = node.parentNode) {
+      if (node === endContainer) {
+        return walkBoundary(startContainer, ancestor, true);
+      }
+      if (node === ancestor) {
+        break;
+      }
+    }
+    for (node = endContainer; node; node = node.parentNode) {
+      if (node === startContainer) {
+        return walkBoundary(endContainer, ancestor);
+      }
+      if (node === ancestor) {
+        break;
+      }
+    }
+    startPoint = findEndPoint(startContainer, ancestor) || startContainer;
+    endPoint = findEndPoint(endContainer, ancestor) || endContainer;
+    walkBoundary(startContainer, startPoint, true);
+    siblings = collectSiblings(startPoint === startContainer ? startPoint : startPoint.nextSibling, 'nextSibling', endPoint === endContainer ? endPoint.nextSibling : endPoint);
+    if (siblings.length) {
+      callback(exclude(siblings));
+    }
+    walkBoundary(endContainer, endPoint);
+  };
+  var $_e2gzn43bjjgwe82k = { walk: walk$2 };
+
+  var zeroWidth = function () {
+    return '\uFEFF';
+  };
+
</ins><span class="cx" style="display: block; padding: 0 10px">   function NodeValue (is, name) {
</span><span class="cx" style="display: block; padding: 0 10px">     var get = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!is(element))
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10330,7 +10800,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var getOptionSafe = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">       return is(element) ? Option.from(element.dom().nodeValue) : Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var browser = $_f1lbzgnjfuw8l7o.detect().browser;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var browser = $_7vg267ojjgwe7k0.detect().browser;
</ins><span class="cx" style="display: block; padding: 0 10px">     var getOption = browser.isIE() && browser.version.major === 10 ? getOptionIE10 : getOptionSafe;
</span><span class="cx" style="display: block; padding: 0 10px">     var set = function (element, value) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!is(element))
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10344,8 +10814,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var api = NodeValue($_eaw33d10jfuw8l9f.isText, 'text');
-  var get$2 = function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var api = NodeValue($_fxxo5411jjgwe7lq.isText, 'text');
+  var get$4 = function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return api.get(element);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getOption = function (element) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10354,48 +10824,376 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var set$2 = function (element, value) {
</span><span class="cx" style="display: block; padding: 0 10px">     api.set(element, value);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_buobzn2wjfuw8lmp = {
-    get: get$2,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8mxs233ejjgwe82u = {
+    get: get$4,
</ins><span class="cx" style="display: block; padding: 0 10px">     getOption: getOption,
</span><span class="cx" style="display: block; padding: 0 10px">     set: set$2
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isZeroWidth = function (elem) {
+    return $_fxxo5411jjgwe7lq.isText(elem) && $_8mxs233ejjgwe82u.get(elem) === zeroWidth();
+  };
+  var context = function (editor, elem, wrapName, nodeName) {
+    return $_d3rmjp18jjgwe7nc.parent(elem).fold(function () {
+      return 'skipping';
+    }, function (parent) {
+      if (nodeName === 'br' || isZeroWidth(elem)) {
+        return 'skipping';
+      } else if (isAnnotation(elem)) {
+        return 'existing';
+      } else if (isCaretNode(elem)) {
+        return 'caret';
+      } else if (!$_4301413ajjgwe82g.isValid(editor, wrapName, nodeName) || !$_4301413ajjgwe82g.isValid(editor, $_fxxo5411jjgwe7lq.name(parent), wrapName)) {
+        return 'invalid-child';
+      } else {
+        return 'valid';
+      }
+    });
+  };
+
+  var __rest = undefined && undefined.__rest || function (s, e) {
+    var t = {};
+    for (var p in s)
+      if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+        t[p] = s[p];
+    if (s != null && typeof Object.getOwnPropertySymbols === 'function')
+      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)
+        if (e.indexOf(p[i]) < 0)
+          t[p[i]] = s[p[i]];
+    return t;
+  };
+  var applyWordGrab = function (editor, rng) {
+    var r = $_1f06hv2ujjgwe7y7.expandRng(editor, rng, [{ inline: true }], false);
+    rng.setStart(r.startContainer, r.startOffset);
+    rng.setEnd(r.endContainer, r.endOffset);
+    editor.selection.setRng(rng);
+  };
+  var annotate = function (editor, rng, annotationName, decorate, _a) {
+    var _b = _a.uid, uid = _b === void 0 ? generate('mce-annotation') : _b, data = __rest(_a, ['uid']);
+    var newWrappers = [];
+    var master = Element$$1.fromTag('span');
+    $_9lrjdk23jjgwe7u2.add(master, annotation());
+    $_etx7gr15jjgwe7mr.set(master, '' + dataAnnotationId(), uid);
+    $_etx7gr15jjgwe7mr.set(master, '' + dataAnnotation(), annotationName);
+    var _c = decorate(uid, data), _d = _c.attributes, attributes = _d === void 0 ? {} : _d, _e = _c.classes, classes = _e === void 0 ? [] : _e;
+    $_etx7gr15jjgwe7mr.setAll(master, attributes);
+    $_cu95hr2hjjgwe7w8.add(master, classes);
+    var wrapper = Cell(Option.none());
+    var finishWrapper = function () {
+      wrapper.set(Option.none());
+    };
+    var getOrOpenWrapper = function () {
+      return wrapper.get().getOrThunk(function () {
+        var nu = $_6do1m42ijjgwe7wd.shallow(master);
+        newWrappers.push(nu);
+        wrapper.set(Option.some(nu));
+        return nu;
+      });
+    };
+    var processElements = function (elems) {
+      each(elems, processElement);
+    };
+    var processElement = function (elem) {
+      var ctx = context(editor, elem, 'span', $_fxxo5411jjgwe7lq.name(elem));
+      switch (ctx) {
+      case 'invalid-child': {
+          finishWrapper();
+          var children = $_d3rmjp18jjgwe7nc.children(elem);
+          processElements(children);
+          finishWrapper();
+          break;
+        }
+      case 'valid': {
+          var w = getOrOpenWrapper();
+          $_ewo3u51yjjgwe7su.wrap(elem, w);
+          break;
+        }
+      case 'skipping':
+      case 'existing':
+      case 'caret': 
+      }
+    };
+    var processNodes = function (nodes) {
+      var elems = map(nodes, Element$$1.fromDom);
+      processElements(elems);
+    };
+    $_e2gzn43bjjgwe82k.walk(editor.dom, rng, function (nodes) {
+      finishWrapper();
+      processNodes(nodes);
+    });
+    return newWrappers;
+  };
+  var annotateWithBookmark = function (editor, name, settings, data) {
+    editor.undoManager.transact(function () {
+      var initialRng = editor.selection.getRng();
+      if (initialRng.collapsed) {
+        applyWordGrab(editor, initialRng);
+      }
+      var bookmark = $_ga29lf2jjjgwe7wh.getPersistentBookmark(editor.selection, true);
+      var rng = editor.selection.getRng();
+      annotate(editor, rng, name, settings.decorate, data);
+      editor.selection.moveToBookmark(bookmark);
+    });
+  };
+
+  function Annotator (editor) {
+    var registry = create$1();
+    setup$1(editor, registry);
+    var changes = setup(editor, registry);
+    return {
+      register: function (name, settings) {
+        registry.register(name, settings);
+      },
+      annotate: function (name, data) {
+        registry.lookup(name).each(function (settings) {
+          annotateWithBookmark(editor, name, settings, data);
+        });
+      },
+      annotationChanged: function (name, callback) {
+        changes.addListener(name, callback);
+      },
+      remove: function (name) {
+        identify(editor, Option.some(name)).each(function (_a) {
+          var elements = _a.elements;
+          each(elements, $_81exq51wjjgwe7sm.unwrap);
+        });
+      },
+      getAll: function (name) {
+        var directory = findAll(editor, name);
+        return map$2(directory, function (elems) {
+          return map(elems, function (elem) {
+            return elem.dom();
+          });
+        });
+      }
+    };
+  }
+
+  var hasOnlyOneChild = function (node) {
+    return node.firstChild && node.firstChild === node.lastChild;
+  };
+  var isPaddingNode = function (node) {
+    return node.name === 'br' || node.value === '\xA0';
+  };
+  var isPaddedEmptyBlock = function (schema, node) {
+    var blockElements = schema.getBlockElements();
+    return blockElements[node.name] && hasOnlyOneChild(node) && isPaddingNode(node.firstChild);
+  };
+  var isEmptyFragmentElement = function (schema, node) {
+    var nonEmptyElements = schema.getNonEmptyElements();
+    return node && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node));
+  };
+  var isListFragment = function (schema, fragment) {
+    var firstChild = fragment.firstChild;
+    var lastChild = fragment.lastChild;
+    if (firstChild && firstChild.name === 'meta') {
+      firstChild = firstChild.next;
+    }
+    if (lastChild && lastChild.attr('id') === 'mce_marker') {
+      lastChild = lastChild.prev;
+    }
+    if (isEmptyFragmentElement(schema, lastChild)) {
+      lastChild = lastChild.prev;
+    }
+    if (!firstChild || firstChild !== lastChild) {
+      return false;
+    }
+    return firstChild.name === 'ul' || firstChild.name === 'ol';
+  };
+  var cleanupDomFragment = function (domFragment) {
+    var firstChild = domFragment.firstChild;
+    var lastChild = domFragment.lastChild;
+    if (firstChild && firstChild.nodeName === 'META') {
+      firstChild.parentNode.removeChild(firstChild);
+    }
+    if (lastChild && lastChild.id === 'mce_marker') {
+      lastChild.parentNode.removeChild(lastChild);
+    }
+    return domFragment;
+  };
+  var toDomFragment = function (dom, serializer, fragment) {
+    var html = serializer.serialize(fragment);
+    var domFragment = dom.createFragment(html);
+    return cleanupDomFragment(domFragment);
+  };
+  var listItems$1 = function (elm) {
+    return $_6cwiepljjgwe7j4.grep(elm.childNodes, function (child) {
+      return child.nodeName === 'LI';
+    });
+  };
+  var isPadding = function (node) {
+    return node.data === '\xA0' || $_3b9u2y1rjjgwe7qe.isBr(node);
+  };
+  var isListItemPadded = function (node) {
+    return node && node.firstChild && node.firstChild === node.lastChild && isPadding(node.firstChild);
+  };
+  var isEmptyOrPadded = function (elm) {
+    return !elm.firstChild || isListItemPadded(elm);
+  };
+  var trimListItems = function (elms) {
+    return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms;
+  };
+  var getParentLi = function (dom, node) {
+    var parentBlock = dom.getParent(node, dom.isBlock);
+    return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null;
+  };
+  var isParentBlockLi = function (dom, node) {
+    return !!getParentLi(dom, node);
+  };
+  var getSplit = function (parentNode, rng) {
+    var beforeRng = rng.cloneRange();
+    var afterRng = rng.cloneRange();
+    beforeRng.setStartBefore(parentNode);
+    afterRng.setEndAfter(parentNode);
+    return [
+      beforeRng.cloneContents(),
+      afterRng.cloneContents()
+    ];
+  };
+  var findFirstIn = function (node, rootNode) {
+    var caretPos = CaretPosition$1.before(node);
+    var caretWalker = CaretWalker(rootNode);
+    var newCaretPos = caretWalker.next(caretPos);
+    return newCaretPos ? newCaretPos.toRange() : null;
+  };
+  var findLastOf = function (node, rootNode) {
+    var caretPos = CaretPosition$1.after(node);
+    var caretWalker = CaretWalker(rootNode);
+    var newCaretPos = caretWalker.prev(caretPos);
+    return newCaretPos ? newCaretPos.toRange() : null;
+  };
+  var insertMiddle = function (target, elms, rootNode, rng) {
+    var parts = getSplit(target, rng);
+    var parentElm = target.parentNode;
+    parentElm.insertBefore(parts[0], target);
+    $_6cwiepljjgwe7j4.each(elms, function (li) {
+      parentElm.insertBefore(li, target);
+    });
+    parentElm.insertBefore(parts[1], target);
+    parentElm.removeChild(target);
+    return findLastOf(elms[elms.length - 1], rootNode);
+  };
+  var insertBefore = function (target, elms, rootNode) {
+    var parentElm = target.parentNode;
+    $_6cwiepljjgwe7j4.each(elms, function (elm) {
+      parentElm.insertBefore(elm, target);
+    });
+    return findFirstIn(target, rootNode);
+  };
+  var insertAfter = function (target, elms, rootNode, dom) {
+    dom.insertAfter(elms.reverse(), target);
+    return findLastOf(elms[0], rootNode);
+  };
+  var insertAtCaret = function (serializer, dom, rng, fragment) {
+    var domFragment = toDomFragment(dom, serializer, fragment);
+    var liTarget = getParentLi(dom, rng.startContainer);
+    var liElms = trimListItems(listItems$1(domFragment.firstChild));
+    var BEGINNING = 1, END = 2;
+    var rootNode = dom.getRoot();
+    var isAt = function (location) {
+      var caretPos = CaretPosition$1.fromRangeStart(rng);
+      var caretWalker = CaretWalker(dom.getRoot());
+      var newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);
+      return newPos ? getParentLi(dom, newPos.getNode()) !== liTarget : true;
+    };
+    if (isAt(BEGINNING)) {
+      return insertBefore(liTarget, liElms, rootNode);
+    } else if (isAt(END)) {
+      return insertAfter(liTarget, liElms, rootNode, dom);
+    }
+    return insertMiddle(liTarget, liElms, rootNode, rng);
+  };
+  var $_1z3gsr3jjjgwe84c = {
+    isListFragment: isListFragment,
+    insertAtCaret: insertAtCaret,
+    isParentBlockLi: isParentBlockLi,
+    trimListItems: trimListItems,
+    listItems: listItems$1
+  };
+
+  var each$9 = $_6cwiepljjgwe7j4.each;
+  var ElementUtils = function (dom) {
+    this.compare = function (node1, node2) {
+      if (node1.nodeName !== node2.nodeName) {
+        return false;
+      }
+      var getAttribs = function (node) {
+        var attribs = {};
+        each$9(dom.getAttribs(node), function (attr) {
+          var name = attr.nodeName.toLowerCase();
+          if (name.indexOf('_') !== 0 && name !== 'style' && name.indexOf('data-') !== 0) {
+            attribs[name] = dom.getAttrib(node, name);
+          }
+        });
+        return attribs;
+      };
+      var compareObjects = function (obj1, obj2) {
+        var value, name;
+        for (name in obj1) {
+          if (obj1.hasOwnProperty(name)) {
+            value = obj2[name];
+            if (typeof value === 'undefined') {
+              return false;
+            }
+            if (obj1[name] !== value) {
+              return false;
+            }
+            delete obj2[name];
+          }
+        }
+        for (name in obj2) {
+          if (obj2.hasOwnProperty(name)) {
+            return false;
+          }
+        }
+        return true;
+      };
+      if (!compareObjects(getAttribs(node1), getAttribs(node2))) {
+        return false;
+      }
+      if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) {
+        return false;
+      }
+      return !$_6refgt2vjjgwe7yn.isBookmarkNode(node1) && !$_6refgt2vjjgwe7yn.isBookmarkNode(node2);
+    };
+  };
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var getLastChildren = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var children = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var rawNode = elm.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     while (rawNode) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      children.push($_c9h6qlzjfuw8l98.fromDom(rawNode));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      children.push(Element$$1.fromDom(rawNode));
</ins><span class="cx" style="display: block; padding: 0 10px">       rawNode = rawNode.lastChild;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return children;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeTrailingBr = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var allBrs = $_ryxde2gjfuw8lkk.descendants(elm, 'br');
-    var brs = $_9ek1bp4jfuw8kxg.filter(getLastChildren(elm).slice(-1), isBr);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var allBrs = $_d3ydn427jjgwe7uf.descendants(elm, 'br');
+    var brs = filter(getLastChildren(elm).slice(-1), isBr);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (allBrs.length === brs.length) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.each(brs, $_byg6a92ujfuw8lmi.remove);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(brs, $_81exq51wjjgwe7sm.remove);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fillWithPaddingBr = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_byg6a92ujfuw8lmi.empty(elm);
-    $_doli6x2kjfuw8lky.append(elm, $_c9h6qlzjfuw8l98.fromHtml('<br data-mce-bogus="1">'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_81exq51wjjgwe7sm.empty(elm);
+    $_ewo3u51yjjgwe7su.append(elm, Element$$1.fromHtml('<br data-mce-bogus="1">'));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isPaddingContents = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_eaw33d10jfuw8l9f.isText(elm) ? $_buobzn2wjfuw8lmp.get(elm) === '\xA0' : isBr(elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_fxxo5411jjgwe7lq.isText(elm) ? $_8mxs233ejjgwe82u.get(elm) === '\xA0' : isBr(elm);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isPaddedElement = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.filter($_2j4g5u17jfuw8lav.children(elm), isPaddingContents).length === 1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter($_d3rmjp18jjgwe7nc.children(elm), isPaddingContents).length === 1;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimBlockTrailingBr = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_2j4g5u17jfuw8lav.lastChild(elm).each(function (lastChild) {
-      $_2j4g5u17jfuw8lav.prevSibling(lastChild).each(function (lastChildPrevSibling) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_d3rmjp18jjgwe7nc.lastChild(elm).each(function (lastChild) {
+      $_d3rmjp18jjgwe7nc.prevSibling(lastChild).each(function (lastChildPrevSibling) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (isBlock(elm) && isBr(lastChild) && isBlock(lastChildPrevSibling)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_byg6a92ujfuw8lmi.remove(lastChild);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_81exq51wjjgwe7sm.remove(lastChild);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5udnjn2tjfuw8lm4 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fhp7pa3ljjgwe84n = {
</ins><span class="cx" style="display: block; padding: 0 10px">     removeTrailingBr: removeTrailingBr,
</span><span class="cx" style="display: block; padding: 0 10px">     fillWithPaddingBr: fillWithPaddingBr,
</span><span class="cx" style="display: block; padding: 0 10px">     isPaddedElement: isPaddedElement,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10402,7 +11200,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     trimBlockTrailingBr: trimBlockTrailingBr
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var makeMap$3 = $_52qop8kjfuw8l6v.makeMap;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var makeMap$3 = $_6cwiepljjgwe7j4.makeMap;
</ins><span class="cx" style="display: block; padding: 0 10px">   function Writer (settings) {
</span><span class="cx" style="display: block; padding: 0 10px">     var html = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var indent, indentBefore, indentAfter, encode, htmlOutput;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10410,7 +11208,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     indent = settings.indent;
</span><span class="cx" style="display: block; padding: 0 10px">     indentBefore = makeMap$3(settings.indent_before || '');
</span><span class="cx" style="display: block; padding: 0 10px">     indentAfter = makeMap$3(settings.indent_after || '');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    encode = $_8uzsfe1rjfuw8ldm.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    encode = $_6pqr9q1sjjgwe7qj.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);
</ins><span class="cx" style="display: block; padding: 0 10px">     htmlOutput = settings.element_format === 'html';
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       start: function (name, attrs, empty) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10588,7 +11386,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var startPos = CaretPosition$1.fromRangeStart(rng);
</span><span class="cx" style="display: block; padding: 0 10px">     var endPos = CaretPosition$1.fromRangeEnd(rng);
</span><span class="cx" style="display: block; padding: 0 10px">     var rootNode = rng.commonAncestorContainer;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.fromPosition(false, rootNode, endPos).map(function (newEndPos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.fromPosition(false, rootNode, endPos).map(function (newEndPos) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!isInSameBlock(startPos, endPos, rootNode) && isInSameBlock(startPos, newEndPos, rootNode)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return createRange$1(startPos.container(), startPos.offset(), newEndPos.container(), newEndPos.offset());
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10599,9 +11397,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var normalize = function (rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     return rng.collapsed ? rng : normalizeBlockSelectionRange(rng);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_538lml30jfuw8ln4 = { normalize: normalize };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_e1wrz53ojjgwe85f = { normalize: normalize };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isTableCell$2 = $_ey7ka11qjfuw8ldg.matchNodeNames('td th');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isTableCell$2 = $_3b9u2y1rjjgwe7qe.matchNodeNames('td th');
</ins><span class="cx" style="display: block; padding: 0 10px">   var validInsertion = function (editor, value, parentNode) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (parentNode.getAttribute('data-mce-bogus') === 'all') {
</span><span class="cx" style="display: block; padding: 0 10px">       parentNode.parentNode.insertBefore(editor.dom.createFragment(value), parentNode);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10616,7 +11414,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimBrsFromTableCell = function (dom, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    Option.from(dom.getParent(elm, 'td,th')).map($_c9h6qlzjfuw8l98.fromDom).each($_5udnjn2tjfuw8lm4.trimBlockTrailingBr);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    Option.from(dom.getParent(elm, 'td,th')).map(Element$$1.fromDom).each($_fhp7pa3ljjgwe84n.trimBlockTrailingBr);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertHtmlAtCaret = function (editor, value, details) {
</span><span class="cx" style="display: block; padding: 0 10px">     var parser, serializer, parentNode, rootNode, fragment, args;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10667,7 +11465,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var reduceInlineTextElements = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       if (merge) {
</span><span class="cx" style="display: block; padding: 0 10px">         var root_1 = editor.getBody(), elementUtils_1 = new ElementUtils(dom);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_52qop8kjfuw8l6v.each(dom.select('*[data-mce-fragment]'), function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6cwiepljjgwe7j4.each(dom.select('*[data-mce-fragment]'), function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           for (var testNode = node.parentNode; testNode && testNode !== root_1; testNode = testNode.parentNode) {
</span><span class="cx" style="display: block; padding: 0 10px">             if (textInlineElements[node.nodeName.toLowerCase()] && elementUtils_1.compare(testNode, node)) {
</span><span class="cx" style="display: block; padding: 0 10px">               dom.remove(node, true);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10685,7 +11483,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var umarkFragmentElements = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_52qop8kjfuw8l6v.each(elm.getElementsByTagName('*'), function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6cwiepljjgwe7j4.each(elm.getElementsByTagName('*'), function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">         elm.removeAttribute('data-mce-fragment');
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10720,7 +11518,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       node = marker.previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">       if (node && node.nodeType === 3) {
</span><span class="cx" style="display: block; padding: 0 10px">         rng.setStart(node, node.nodeValue.length);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!$_9fhi43ajfuw8l13.ie) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!$_bcvfv9ajjgwe79v.ie) {
</ins><span class="cx" style="display: block; padding: 0 10px">           node2 = marker.nextSibling;
</span><span class="cx" style="display: block; padding: 0 10px">           if (node2 && node2.nodeType === 3) {
</span><span class="cx" style="display: block; padding: 0 10px">             node.appendData(node2.data);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10794,7 +11592,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (!selection.isCollapsed()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.selection.setRng($_538lml30jfuw8ln4.normalize(editor.selection.getRng()));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.selection.setRng($_e1wrz53ojjgwe85f.normalize(editor.selection.getRng()));
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.getDoc().execCommand('Delete', false, null);
</span><span class="cx" style="display: block; padding: 0 10px">       trimNbspAfterDeleteAndPaddValue();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10805,8 +11603,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       insert: true
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     fragment = parser.parse(value, parserArgs);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (details.paste === true && $_5shtl51xjfuw8lgk.isListFragment(editor.schema, fragment) && $_5shtl51xjfuw8lgk.isParentBlockLi(dom, parentNode)) {
-      rng = $_5shtl51xjfuw8lgk.insertAtCaret(serializer, dom, editor.selection.getRng(), fragment);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (details.paste === true && $_1z3gsr3jjjgwe84c.isListFragment(editor.schema, fragment) && $_1z3gsr3jjjgwe84c.isParentBlockLi(dom, parentNode)) {
+      rng = $_1z3gsr3jjjgwe84c.insertAtCaret(serializer, dom, editor.selection.getRng(), fragment);
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.selection.setRng(rng);
</span><span class="cx" style="display: block; padding: 0 10px">       editor.fire('SetContent', args);
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10861,7 +11659,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var processValue = function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">     var details;
</span><span class="cx" style="display: block; padding: 0 10px">     if (typeof value !== 'string') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      details = $_52qop8kjfuw8l6v.extend({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      details = $_6cwiepljjgwe7j4.extend({
</ins><span class="cx" style="display: block; padding: 0 10px">         paste: value.paste,
</span><span class="cx" style="display: block; padding: 0 10px">         data: { paste: value.paste }
</span><span class="cx" style="display: block; padding: 0 10px">       }, value);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10879,70 +11677,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var result = processValue(value);
</span><span class="cx" style="display: block; padding: 0 10px">     insertHtmlAtCaret(editor, result.content, result.details);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_c8z6p81wjfuw8lg5 = { insertAtCaret: insertAtCaret$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_7w0ed33ijjgwe841 = { insertAtCaret: insertAtCaret$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {
-    return is(scope, a) ? Option.some(scope) : $_16i8k47jfuw8kyi.isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);
-  }
-
-  var first$1 = function (predicate) {
-    return descendant($_5nbzws15jfuw8lap.body(), predicate);
-  };
-  var ancestor = function (scope, predicate, isRoot) {
-    var element = scope.dom();
-    var stop = $_16i8k47jfuw8kyi.isFunction(isRoot) ? isRoot : $_68e81l6jfuw8kyc.constant(false);
-    while (element.parentNode) {
-      element = element.parentNode;
-      var el = $_c9h6qlzjfuw8l98.fromDom(element);
-      if (predicate(el))
-        return Option.some(el);
-      else if (stop(el))
-        break;
-    }
-    return Option.none();
-  };
-  var closest = function (scope, predicate, isRoot) {
-    var is = function (scope) {
-      return predicate(scope);
-    };
-    return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);
-  };
-  var sibling$1 = function (scope, predicate) {
-    var element = scope.dom();
-    if (!element.parentNode)
-      return Option.none();
-    return child$1($_c9h6qlzjfuw8l98.fromDom(element.parentNode), function (x) {
-      return !$_4fb96d1djfuw8lbl.eq(scope, x) && predicate(x);
-    });
-  };
-  var child$1 = function (scope, predicate) {
-    var result = $_9ek1bp4jfuw8kxg.find(scope.dom().childNodes, $_68e81l6jfuw8kyc.compose(predicate, $_c9h6qlzjfuw8l98.fromDom));
-    return result.map($_c9h6qlzjfuw8l98.fromDom);
-  };
-  var descendant = function (scope, predicate) {
-    var descend = function (element) {
-      for (var i = 0; i < element.childNodes.length; i++) {
-        if (predicate($_c9h6qlzjfuw8l98.fromDom(element.childNodes[i])))
-          return Option.some($_c9h6qlzjfuw8l98.fromDom(element.childNodes[i]));
-        var res = descend(element.childNodes[i]);
-        if (res.isSome())
-          return res;
-      }
-      return Option.none();
-    };
-    return descend(scope.dom());
-  };
-  var $_chabeg35jfuw8lo3 = {
-    first: first$1,
-    ancestor: ancestor,
-    closest: closest,
-    sibling: sibling$1,
-    child: child$1,
-    descendant: descendant
-  };
-
-  var sectionResult = $_1a7eqh18jfuw8lb9.immutable('sections', 'settings');
-  var detection = $_f1lbzgnjfuw8l7o.detect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var sectionResult = Immutable('sections', 'settings');
+  var detection = $_7vg267ojjgwe7k0.detect();
</ins><span class="cx" style="display: block; padding: 0 10px">   var isTouch = detection.deviceType.isTouch();
</span><span class="cx" style="display: block; padding: 0 10px">   var mobilePlugins = [
</span><span class="cx" style="display: block; padding: 0 10px">     'lists',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10951,18 +11689,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">   ];
</span><span class="cx" style="display: block; padding: 0 10px">   var defaultMobileSettings = { theme: 'mobile' };
</span><span class="cx" style="display: block; padding: 0 10px">   var normalizePlugins = function (plugins) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var pluginNames = $_16i8k47jfuw8kyi.isArray(plugins) ? plugins.join(' ') : plugins;
-    var trimmedPlugins = $_9ek1bp4jfuw8kxg.map($_16i8k47jfuw8kyi.isString(pluginNames) ? pluginNames.split(' ') : [], $_e6kxndwjfuw8l91.trim);
-    return $_9ek1bp4jfuw8kxg.filter(trimmedPlugins, function (item) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var pluginNames = isArray(plugins) ? plugins.join(' ') : plugins;
+    var trimmedPlugins = map(isString(pluginNames) ? pluginNames.split(' ') : [], trim$2);
+    return filter(trimmedPlugins, function (item) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return item.length > 0;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var filterMobilePlugins = function (plugins) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.filter(plugins, $_68e81l6jfuw8kyc.curry($_9ek1bp4jfuw8kxg.contains, mobilePlugins));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter(plugins, curry(contains, mobilePlugins));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var extractSections = function (keys, settings) {
-    var result = $_8c8uhu13jfuw8la0.bifilter(settings, function (value, key) {
-      return $_9ek1bp4jfuw8kxg.contains(keys, key);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var extractSections = function (keys$$1, settings) {
+    var result = bifilter(settings, function (value, key) {
+      return contains(keys$$1, key);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return sectionResult(result.t, result.f);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10969,7 +11707,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getSection = function (sectionResult, name, defaults) {
</span><span class="cx" style="display: block; padding: 0 10px">     var sections = sectionResult.sections();
</span><span class="cx" style="display: block; padding: 0 10px">     var sectionSettings = sections.hasOwnProperty(name) ? sections[name] : {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_52qop8kjfuw8l6v.extend({}, defaults, sectionSettings);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6cwiepljjgwe7j4.extend({}, defaults, sectionSettings);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasSection = function (sectionResult, name) {
</span><span class="cx" style="display: block; padding: 0 10px">     return sectionResult.sections().hasOwnProperty(name);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11001,8 +11739,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       inline_styles: true,
</span><span class="cx" style="display: block; padding: 0 10px">       convert_fonts_to_spans: true,
</span><span class="cx" style="display: block; padding: 0 10px">       indent: 'simple',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',
-      indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',
+      indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',
</ins><span class="cx" style="display: block; padding: 0 10px">       entity_encoding: 'named',
</span><span class="cx" style="display: block; padding: 0 10px">       url_converter: editor.convertURL,
</span><span class="cx" style="display: block; padding: 0 10px">       url_converter_scope: editor,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11012,7 +11750,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getExternalPlugins = function (overrideSettings, settings) {
</span><span class="cx" style="display: block; padding: 0 10px">     var userDefinedExternalPlugins = settings.external_plugins ? settings.external_plugins : {};
</span><span class="cx" style="display: block; padding: 0 10px">     if (overrideSettings && overrideSettings.external_plugins) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_52qop8kjfuw8l6v.extend({}, overrideSettings.external_plugins, userDefinedExternalPlugins);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_6cwiepljjgwe7j4.extend({}, overrideSettings.external_plugins, userDefinedExternalPlugins);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return userDefinedExternalPlugins;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11025,7 +11763,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var plugins = normalizePlugins(settings.plugins);
</span><span class="cx" style="display: block; padding: 0 10px">     var platformPlugins = isTouchDevice && hasSection(sectionResult, 'mobile') ? filterMobilePlugins(plugins) : plugins;
</span><span class="cx" style="display: block; padding: 0 10px">     var combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_52qop8kjfuw8l6v.extend(settings, { plugins: combinedPlugins.join(' ') });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6cwiepljjgwe7j4.extend(settings, { plugins: combinedPlugins.join(' ') });
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isOnMobile = function (isTouchDevice, sectionResult) {
</span><span class="cx" style="display: block; padding: 0 10px">     var isInline = sectionResult.settings().inline;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11033,7 +11771,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var combineSettings = function (isTouchDevice, defaultSettings, defaultOverrideSettings, settings) {
</span><span class="cx" style="display: block; padding: 0 10px">     var sectionResult = extractSections(['mobile'], settings);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var extendedSettings = $_52qop8kjfuw8l6v.extend(defaultSettings, defaultOverrideSettings, sectionResult.settings(), isOnMobile(isTouchDevice, sectionResult) ? getSection(sectionResult, 'mobile', defaultMobileSettings) : {}, {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var extendedSettings = $_6cwiepljjgwe7j4.extend(defaultSettings, defaultOverrideSettings, sectionResult.settings(), isOnMobile(isTouchDevice, sectionResult) ? getSection(sectionResult, 'mobile', defaultMobileSettings) : {}, {
</ins><span class="cx" style="display: block; padding: 0 10px">       validate: true,
</span><span class="cx" style="display: block; padding: 0 10px">       content_editable: sectionResult.settings().inline,
</span><span class="cx" style="display: block; padding: 0 10px">       external_plugins: getExternalPlugins(defaultOverrideSettings, sectionResult.settings())
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11047,16 +11785,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getFiltered = function (predicate, editor, name) {
</span><span class="cx" style="display: block; padding: 0 10px">     return Option.from(editor.settings[name]).filter(predicate);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getString = $_68e81l6jfuw8kyc.curry(getFiltered, $_16i8k47jfuw8kyi.isString);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getString = curry(getFiltered, isString);
</ins><span class="cx" style="display: block; padding: 0 10px">   var getParamObject = function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">     var output = {};
</span><span class="cx" style="display: block; padding: 0 10px">     if (typeof value === 'string') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function (val) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function (val) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var arr = val.split('=');
</span><span class="cx" style="display: block; padding: 0 10px">         if (arr.length > 1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          output[$_52qop8kjfuw8l6v.trim(arr[0])] = $_52qop8kjfuw8l6v.trim(arr[1]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          output[$_6cwiepljjgwe7j4.trim(arr[0])] = $_6cwiepljjgwe7j4.trim(arr[1]);
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          output[$_52qop8kjfuw8l6v.trim(arr[0])] = $_52qop8kjfuw8l6v.trim(arr);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          output[$_6cwiepljjgwe7j4.trim(arr[0])] = $_6cwiepljjgwe7j4.trim(arr);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11066,7 +11804,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isArrayOf = function (p) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (a) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_16i8k47jfuw8kyi.isArray(a) && $_9ek1bp4jfuw8kxg.forall(a, p);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return isArray(a) && forall(a, p);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getParam = function (editor, name, defaultVal, type) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11074,19 +11812,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (type === 'hash') {
</span><span class="cx" style="display: block; padding: 0 10px">       return getParamObject(value);
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (type === 'string') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return getFiltered($_16i8k47jfuw8kyi.isString, editor, name).getOr(defaultVal);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return getFiltered(isString, editor, name).getOr(defaultVal);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else if (type === 'number') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return getFiltered($_16i8k47jfuw8kyi.isNumber, editor, name).getOr(defaultVal);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return getFiltered(isNumber, editor, name).getOr(defaultVal);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else if (type === 'boolean') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return getFiltered($_16i8k47jfuw8kyi.isBoolean, editor, name).getOr(defaultVal);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return getFiltered(isBoolean, editor, name).getOr(defaultVal);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else if (type === 'object') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return getFiltered($_16i8k47jfuw8kyi.isObject, editor, name).getOr(defaultVal);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return getFiltered(isObject, editor, name).getOr(defaultVal);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else if (type === 'array') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return getFiltered($_16i8k47jfuw8kyi.isArray, editor, name).getOr(defaultVal);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return getFiltered(isArray, editor, name).getOr(defaultVal);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else if (type === 'string[]') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return getFiltered(isArrayOf($_16i8k47jfuw8kyi.isString), editor, name).getOr(defaultVal);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return getFiltered(isArrayOf(isString), editor, name).getOr(defaultVal);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else if (type === 'function') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return getFiltered($_16i8k47jfuw8kyi.isFunction, editor, name).getOr(defaultVal);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return getFiltered(isFunction, editor, name).getOr(defaultVal);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return value;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11099,13 +11837,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var isInlineTarget = function (editor, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var selector = getString(editor, 'inline_boundaries_selector').getOr('a[href],code');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_fbwcti1fjfuw8lbx.is($_c9h6qlzjfuw8l98.fromDom(elm), selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_4yq1xp1gjjgwe7op.is(Element$$1.fromDom(elm), selector);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isRtl = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">     return DOMUtils$1.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl(element.textContent);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findInlineParents = function (isInlineTarget, rootNode, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.filter(DOMUtils$1.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter(DOMUtils$1.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findRootInline = function (isInlineTarget, rootNode, pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     var parents = findInlineParents(isInlineTarget, rootNode, pos);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11123,7 +11861,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var container = pos.container(), offset = pos.offset();
</span><span class="cx" style="display: block; padding: 0 10px">     if (forward) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (isCaretContainerInline(container)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_ey7ka11qjfuw8ldg.isText(container.nextSibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_3b9u2y1rjjgwe7qe.isText(container.nextSibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return CaretPosition$1(container.nextSibling, 0);
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           return CaretPosition$1.after(container);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11133,7 +11871,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       if (isCaretContainerInline(container)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_ey7ka11qjfuw8ldg.isText(container.previousSibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_3b9u2y1rjjgwe7qe.isText(container.previousSibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return CaretPosition$1(container.previousSibling, container.previousSibling.data.length);
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           return CaretPosition$1.before(container);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11143,9 +11881,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var normalizeForwards = $_68e81l6jfuw8kyc.curry(normalizePosition, true);
-  var normalizeBackwards = $_68e81l6jfuw8kyc.curry(normalizePosition, false);
-  var $_exgtt937jfuw8loj = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var normalizeForwards = curry(normalizePosition, true);
+  var normalizeBackwards = curry(normalizePosition, false);
+  var $_av9utf3tjjgwe86b = {
</ins><span class="cx" style="display: block; padding: 0 10px">     isInlineTarget: isInlineTarget,
</span><span class="cx" style="display: block; padding: 0 10px">     findRootInline: findRootInline,
</span><span class="cx" style="display: block; padding: 0 10px">     isRtl: isRtl,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11158,11 +11896,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var isBeforeRoot = function (rootNode) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_4fb96d1djfuw8lbl.eq(rootNode, $_c9h6qlzjfuw8l98.fromDom(elm.dom().parentNode));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_5raon11ejjgwe7o5.eq(rootNode, Element$$1.fromDom(elm.dom().parentNode));
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getParentBlock$1 = function (rootNode, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_4fb96d1djfuw8lbl.contains(rootNode, elm) ? $_chabeg35jfuw8lo3.closest(elm, function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_5raon11ejjgwe7o5.contains(rootNode, elm) ? $_7kjxyh2ajjgwe7un.closest(elm, function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return isTextBlock(element) || isListItem(element);
</span><span class="cx" style="display: block; padding: 0 10px">     }, isBeforeRoot(rootNode)) : Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11178,82 +11916,49 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var willDeleteLastPositionInElement = function (forward, fromPos, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5gv5dd26jfuw8li3.liftN([
-      $_25kl2c2cjfuw8ljh.firstPositionIn(elm),
-      $_25kl2c2cjfuw8ljh.lastPositionIn(elm)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return liftN([
+      $_8q1ver2yjjgwe7z3.firstPositionIn(elm),
+      $_8q1ver2yjjgwe7z3.lastPositionIn(elm)
</ins><span class="cx" style="display: block; padding: 0 10px">     ], function (firstPos, lastPos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var normalizedFirstPos = $_exgtt937jfuw8loj.normalizePosition(true, firstPos);
-      var normalizedLastPos = $_exgtt937jfuw8loj.normalizePosition(false, lastPos);
-      var normalizedFromPos = $_exgtt937jfuw8loj.normalizePosition(false, fromPos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var normalizedFirstPos = $_av9utf3tjjgwe86b.normalizePosition(true, firstPos);
+      var normalizedLastPos = $_av9utf3tjjgwe86b.normalizePosition(false, lastPos);
+      var normalizedFromPos = $_av9utf3tjjgwe86b.normalizePosition(false, fromPos);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (forward) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_25kl2c2cjfuw8ljh.nextPosition(elm, normalizedFromPos).map(function (nextPos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_8q1ver2yjjgwe7z3.nextPosition(elm, normalizedFromPos).map(function (nextPos) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return nextPos.isEqual(normalizedLastPos) && fromPos.isEqual(normalizedFirstPos);
</span><span class="cx" style="display: block; padding: 0 10px">         }).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_25kl2c2cjfuw8ljh.prevPosition(elm, normalizedFromPos).map(function (prevPos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_8q1ver2yjjgwe7z3.prevPosition(elm, normalizedFromPos).map(function (prevPos) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return prevPos.isEqual(normalizedFirstPos) && fromPos.isEqual(normalizedLastPos);
</span><span class="cx" style="display: block; padding: 0 10px">         }).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(true);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_43wr4w34jfuw8lnu = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3vi93f3sjjgwe861 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getParentBlock: getParentBlock$1,
</span><span class="cx" style="display: block; padding: 0 10px">     paddEmptyBody: paddEmptyBody,
</span><span class="cx" style="display: block; padding: 0 10px">     willDeleteLastPositionInElement: willDeleteLastPositionInElement
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var first$2 = function (selector) {
-    return $_fbwcti1fjfuw8lbx.one(selector);
-  };
-  var ancestor$1 = function (scope, selector, isRoot) {
-    return $_chabeg35jfuw8lo3.ancestor(scope, function (e) {
-      return $_fbwcti1fjfuw8lbx.is(e, selector);
-    }, isRoot);
-  };
-  var sibling$2 = function (scope, selector) {
-    return $_chabeg35jfuw8lo3.sibling(scope, function (e) {
-      return $_fbwcti1fjfuw8lbx.is(e, selector);
-    });
-  };
-  var child$2 = function (scope, selector) {
-    return $_chabeg35jfuw8lo3.child(scope, function (e) {
-      return $_fbwcti1fjfuw8lbx.is(e, selector);
-    });
-  };
-  var descendant$1 = function (scope, selector) {
-    return $_fbwcti1fjfuw8lbx.one(selector, scope);
-  };
-  var closest$1 = function (scope, selector, isRoot) {
-    return ClosestOrAncestor($_fbwcti1fjfuw8lbx.is, ancestor$1, scope, selector, isRoot);
-  };
-  var $_94zo1v3cjfuw8lpg = {
-    first: first$2,
-    ancestor: ancestor$1,
-    sibling: sibling$2,
-    child: child$2,
-    descendant: descendant$1,
-    closest: closest$1
-  };
-
</del><span class="cx" style="display: block; padding: 0 10px">   var any = function (selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.first(selector).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.first(selector).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestor$2 = function (scope, selector, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.ancestor(scope, selector, isRoot).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.ancestor(scope, selector, isRoot).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var sibling$3 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.sibling(scope, selector).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.sibling(scope, selector).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var child$3 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.child(scope, selector).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.child(scope, selector).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendant$2 = function (scope, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.descendant(scope, selector).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.descendant(scope, selector).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var closest$2 = function (scope, selector, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.closest(scope, selector, isRoot).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.closest(scope, selector, isRoot).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8wfxe73bjfuw8lpe = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ct3yqg3xjjgwe8b2 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     any: any,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestor: ancestor$2,
</span><span class="cx" style="display: block; padding: 0 10px">     sibling: sibling$3,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11263,22 +11968,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var hasWhitespacePreserveParent = function (rootNode, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var rootElement = $_c9h6qlzjfuw8l98.fromDom(rootNode);
-    var startNode = $_c9h6qlzjfuw8l98.fromDom(node);
-    return $_8wfxe73bjfuw8lpe.ancestor(startNode, 'pre,code', $_68e81l6jfuw8kyc.curry($_4fb96d1djfuw8lbl.eq, rootElement));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var rootElement = Element$$1.fromDom(rootNode);
+    var startNode = Element$$1.fromDom(node);
+    return $_ct3yqg3xjjgwe8b2.ancestor(startNode, 'pre,code', curry($_5raon11ejjgwe7o5.eq, rootElement));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isWhitespace = function (rootNode, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isText(node) && /^[ \t\r\n]*$/.test(node.data) && hasWhitespacePreserveParent(rootNode, node) === false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isText(node) && /^[ \t\r\n]*$/.test(node.data) && hasWhitespacePreserveParent(rootNode, node) === false;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isNamedAnchor = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isElement(node) && node.nodeName === 'A' && node.hasAttribute('name');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isElement(node) && node.nodeName === 'A' && node.hasAttribute('name');
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isContent = function (rootNode, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     return isCaretCandidate(node) && isWhitespace(rootNode, node) === false || isNamedAnchor(node) || isBookmark(node);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isBookmark = $_ey7ka11qjfuw8ldg.hasAttribute('data-mce-bookmark');
-  var isBogus$2 = $_ey7ka11qjfuw8ldg.hasAttribute('data-mce-bogus');
-  var isBogusAll$1 = $_ey7ka11qjfuw8ldg.hasAttributeValue('data-mce-bogus', 'all');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isBookmark = $_3b9u2y1rjjgwe7qe.hasAttribute('data-mce-bookmark');
+  var isBogus$2 = $_3b9u2y1rjjgwe7qe.hasAttribute('data-mce-bogus');
+  var isBogusAll$1 = $_3b9u2y1rjjgwe7qe.hasAttributeValue('data-mce-bogus', 'all');
</ins><span class="cx" style="display: block; padding: 0 10px">   var isEmptyNode = function (targetNode) {
</span><span class="cx" style="display: block; padding: 0 10px">     var walker, node, brCount = 0;
</span><span class="cx" style="display: block; padding: 0 10px">     if (isContent(targetNode, targetNode)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11298,7 +12003,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           node = walker.next();
</span><span class="cx" style="display: block; padding: 0 10px">           continue;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_ey7ka11qjfuw8ldg.isBr(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_3b9u2y1rjjgwe7qe.isBr(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           brCount++;
</span><span class="cx" style="display: block; padding: 0 10px">           node = walker.next();
</span><span class="cx" style="display: block; padding: 0 10px">           continue;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11314,35 +12019,35 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isEmpty$1 = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return isEmptyNode(elm.dom());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9f7o8q3ajfuw8lp7 = { isEmpty: isEmpty$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_99xuux3wjjgwe8as = { isEmpty: isEmpty$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var BlockPosition = $_1a7eqh18jfuw8lb9.immutable('block', 'position');
-  var BlockBoundary = $_1a7eqh18jfuw8lb9.immutable('from', 'to');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var BlockPosition = Immutable('block', 'position');
+  var BlockBoundary = Immutable('from', 'to');
</ins><span class="cx" style="display: block; padding: 0 10px">   var getBlockPosition = function (rootNode, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var rootElm = $_c9h6qlzjfuw8l98.fromDom(rootNode);
-    var containerElm = $_c9h6qlzjfuw8l98.fromDom(pos.container());
-    return $_43wr4w34jfuw8lnu.getParentBlock(rootElm, containerElm).map(function (block) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var rootElm = Element$$1.fromDom(rootNode);
+    var containerElm = Element$$1.fromDom(pos.container());
+    return $_3vi93f3sjjgwe861.getParentBlock(rootElm, containerElm).map(function (block) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return BlockPosition(block, pos);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isDifferentBlocks = function (blockBoundary) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_4fb96d1djfuw8lbl.eq(blockBoundary.from().block(), blockBoundary.to().block()) === false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_5raon11ejjgwe7o5.eq(blockBoundary.from().block(), blockBoundary.to().block()) === false;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasSameParent = function (blockBoundary) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_2j4g5u17jfuw8lav.parent(blockBoundary.from().block()).bind(function (parent1) {
-      return $_2j4g5u17jfuw8lav.parent(blockBoundary.to().block()).filter(function (parent2) {
-        return $_4fb96d1djfuw8lbl.eq(parent1, parent2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_d3rmjp18jjgwe7nc.parent(blockBoundary.from().block()).bind(function (parent1) {
+      return $_d3rmjp18jjgwe7nc.parent(blockBoundary.to().block()).filter(function (parent2) {
+        return $_5raon11ejjgwe7o5.eq(parent1, parent2);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }).isSome();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isEditable = function (blockBoundary) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isContentEditableFalse(blockBoundary.from().block()) === false && $_ey7ka11qjfuw8ldg.isContentEditableFalse(blockBoundary.to().block()) === false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isContentEditableFalse(blockBoundary.from().block()) === false && $_3b9u2y1rjjgwe7qe.isContentEditableFalse(blockBoundary.to().block()) === false;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var skipLastBr = function (rootNode, forward, blockPosition) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isBr(blockPosition.position().getNode()) && $_9f7o8q3ajfuw8lp7.isEmpty(blockPosition.block()) === false) {
-      return $_25kl2c2cjfuw8ljh.positionIn(false, blockPosition.block().dom()).bind(function (lastPositionInBlock) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isBr(blockPosition.position().getNode()) && $_99xuux3wjjgwe8as.isEmpty(blockPosition.block()) === false) {
+      return $_8q1ver2yjjgwe7z3.positionIn(false, blockPosition.block().dom()).bind(function (lastPositionInBlock) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (lastPositionInBlock.isEqual(blockPosition.position())) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return $_25kl2c2cjfuw8ljh.fromPosition(forward, rootNode, lastPositionInBlock).bind(function (to) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return $_8q1ver2yjjgwe7z3.fromPosition(forward, rootNode, lastPositionInBlock).bind(function (to) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return getBlockPosition(rootNode, to);
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11356,13 +12061,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var readFromRange = function (rootNode, forward, rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     var fromBlockPos = getBlockPosition(rootNode, CaretPosition$1.fromRangeStart(rng));
</span><span class="cx" style="display: block; padding: 0 10px">     var toBlockPos = fromBlockPos.bind(function (blockPos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_25kl2c2cjfuw8ljh.fromPosition(forward, rootNode, blockPos.position()).bind(function (to) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_8q1ver2yjjgwe7z3.fromPosition(forward, rootNode, blockPos.position()).bind(function (to) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return getBlockPosition(rootNode, to).map(function (blockPos) {
</span><span class="cx" style="display: block; padding: 0 10px">           return skipLastBr(rootNode, forward, blockPos);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5gv5dd26jfuw8li3.liftN([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return liftN([
</ins><span class="cx" style="display: block; padding: 0 10px">       fromBlockPos,
</span><span class="cx" style="display: block; padding: 0 10px">       toBlockPos
</span><span class="cx" style="display: block; padding: 0 10px">     ], BlockBoundary).filter(function (blockBoundary) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11369,18 +12074,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return isDifferentBlocks(blockBoundary) && hasSameParent(blockBoundary) && isEditable(blockBoundary);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var read = function (rootNode, forward, rng) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var read$1 = function (rootNode, forward, rng) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return rng.collapsed ? readFromRange(rootNode, forward, rng) : Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dp1erv33jfuw8lna = { read: read };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6p32rm3rjjgwe85q = { read: read$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var dropLast = function (xs) {
</span><span class="cx" style="display: block; padding: 0 10px">     return xs.slice(0, -1);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var parentsUntil$1 = function (startNode, rootElm, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_4fb96d1djfuw8lbl.contains(rootElm, startNode)) {
-      return dropLast($_2j4g5u17jfuw8lav.parents(startNode, function (elm) {
-        return predicate(elm) || $_4fb96d1djfuw8lbl.eq(elm, rootElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_5raon11ejjgwe7o5.contains(rootElm, startNode)) {
+      return dropLast($_d3rmjp18jjgwe7nc.parents(startNode, function (elm) {
+        return predicate(elm) || $_5raon11ejjgwe7o5.eq(elm, rootElm);
</ins><span class="cx" style="display: block; padding: 0 10px">       }));
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11387,12 +12092,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var parents$1 = function (startNode, rootElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return parentsUntil$1(startNode, rootElm, $_68e81l6jfuw8kyc.constant(false));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return parentsUntil$1(startNode, rootElm, constant(false));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var parentsAndSelf = function (startNode, rootElm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return [startNode].concat(parents$1(startNode, rootElm));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3t5pi43ejfuw8lq0 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cvft7x3zjjgwe8bh = {
</ins><span class="cx" style="display: block; padding: 0 10px">     parentsUntil: parentsUntil$1,
</span><span class="cx" style="display: block; padding: 0 10px">     parents: parents$1,
</span><span class="cx" style="display: block; padding: 0 10px">     parentsAndSelf: parentsAndSelf
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11399,8 +12104,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getChildrenUntilBlockBoundary = function (block) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var children = $_2j4g5u17jfuw8lav.children(block);
-    return $_9ek1bp4jfuw8kxg.findIndex(children, isBlock).fold(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var children = $_d3rmjp18jjgwe7nc.children(block);
+    return findIndex(children, isBlock).fold(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">       return children;
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (index) {
</span><span class="cx" style="display: block; padding: 0 10px">       return children.slice(0, index);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11408,33 +12113,33 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var extractChildren = function (block) {
</span><span class="cx" style="display: block; padding: 0 10px">     var children = getChildrenUntilBlockBoundary(block);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.each(children, function (node) {
-      $_byg6a92ujfuw8lmi.remove(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each(children, function (node) {
+      $_81exq51wjjgwe7sm.remove(node);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return children;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimBr = function (first, block) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_25kl2c2cjfuw8ljh.positionIn(first, block.dom()).each(function (position) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_8q1ver2yjjgwe7z3.positionIn(first, block.dom()).each(function (position) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var node = position.getNode();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isBr(node)) {
-        $_byg6a92ujfuw8lmi.remove($_c9h6qlzjfuw8l98.fromDom(node));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isBr(node)) {
+        $_81exq51wjjgwe7sm.remove(Element$$1.fromDom(node));
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeEmptyRoot = function (rootNode, block) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var parents = $_3t5pi43ejfuw8lq0.parentsAndSelf(block, rootNode);
-    return $_9ek1bp4jfuw8kxg.find(parents.reverse(), $_9f7o8q3ajfuw8lp7.isEmpty).each($_byg6a92ujfuw8lmi.remove);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var parents = $_cvft7x3zjjgwe8bh.parentsAndSelf(block, rootNode);
+    return find(parents.reverse(), $_99xuux3wjjgwe8as.isEmpty).each($_81exq51wjjgwe7sm.remove);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findParentInsertPoint = function (toBlock, block) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var parents = $_2j4g5u17jfuw8lav.parents(block, function (elm) {
-      return $_4fb96d1djfuw8lbl.eq(elm, toBlock);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var parents = $_d3rmjp18jjgwe7nc.parents(block, function (elm) {
+      return $_5raon11ejjgwe7o5.eq(elm, toBlock);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return Option.from(parents[parents.length - 2]);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getInsertionPoint = function (fromBlock, toBlock) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_4fb96d1djfuw8lbl.contains(toBlock, fromBlock)) {
-      return $_2j4g5u17jfuw8lav.parent(fromBlock).bind(function (parent) {
-        return $_4fb96d1djfuw8lbl.eq(parent, toBlock) ? Option.some(fromBlock) : findParentInsertPoint(toBlock, fromBlock);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_5raon11ejjgwe7o5.contains(toBlock, fromBlock)) {
+      return $_d3rmjp18jjgwe7nc.parent(fromBlock).bind(function (parent) {
+        return $_5raon11ejjgwe7o5.eq(parent, toBlock) ? Option.some(fromBlock) : findParentInsertPoint(toBlock, fromBlock);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.none();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11441,12 +12146,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeBlockInto = function (rootNode, fromBlock, toBlock) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9f7o8q3ajfuw8lp7.isEmpty(toBlock)) {
-      $_byg6a92ujfuw8lmi.remove(toBlock);
-      if ($_9f7o8q3ajfuw8lp7.isEmpty(fromBlock)) {
-        $_5udnjn2tjfuw8lm4.fillWithPaddingBr(fromBlock);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_99xuux3wjjgwe8as.isEmpty(toBlock)) {
+      $_81exq51wjjgwe7sm.remove(toBlock);
+      if ($_99xuux3wjjgwe8as.isEmpty(fromBlock)) {
+        $_fhp7pa3ljjgwe84n.fillWithPaddingBr(fromBlock);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_25kl2c2cjfuw8ljh.firstPositionIn(fromBlock.dom());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_8q1ver2yjjgwe7z3.firstPositionIn(fromBlock.dom());
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       trimBr(true, fromBlock);
</span><span class="cx" style="display: block; padding: 0 10px">       trimBr(false, toBlock);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11453,15 +12158,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var children_1 = extractChildren(fromBlock);
</span><span class="cx" style="display: block; padding: 0 10px">       return getInsertionPoint(fromBlock, toBlock).fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         removeEmptyRoot(rootNode, fromBlock);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var position = $_25kl2c2cjfuw8ljh.lastPositionIn(toBlock.dom());
-        $_9ek1bp4jfuw8kxg.each(children_1, function (node) {
-          $_doli6x2kjfuw8lky.append(toBlock, node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var position = $_8q1ver2yjjgwe7z3.lastPositionIn(toBlock.dom());
+        each(children_1, function (node) {
+          $_ewo3u51yjjgwe7su.append(toBlock, node);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         return position;
</span><span class="cx" style="display: block; padding: 0 10px">       }, function (target) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var position = $_25kl2c2cjfuw8ljh.prevPosition(toBlock.dom(), CaretPosition$1.before(target.dom()));
-        $_9ek1bp4jfuw8kxg.each(children_1, function (node) {
-          $_doli6x2kjfuw8lky.before(target, node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var position = $_8q1ver2yjjgwe7z3.prevPosition(toBlock.dom(), CaretPosition$1.before(target.dom()));
+        each(children_1, function (node) {
+          $_ewo3u51yjjgwe7su.before(target, node);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         removeEmptyRoot(rootNode, fromBlock);
</span><span class="cx" style="display: block; padding: 0 10px">         return position;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11471,13 +12176,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeBlocks = function (rootNode, forward, block1, block2) {
</span><span class="cx" style="display: block; padding: 0 10px">     return forward ? mergeBlockInto(rootNode, block2, block1) : mergeBlockInto(rootNode, block1, block2);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fm1lyo3djfuw8lpi = { mergeBlocks: mergeBlocks };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_307srp3yjjgwe8b4 = { mergeBlocks: mergeBlocks };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDelete = function (editor, forward) {
</span><span class="cx" style="display: block; padding: 0 10px">     var position;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var rootNode = $_c9h6qlzjfuw8l98.fromDom(editor.getBody());
-    position = $_dp1erv33jfuw8lna.read(rootNode.dom(), forward, editor.selection.getRng()).bind(function (blockBoundary) {
-      return $_fm1lyo3djfuw8lpi.mergeBlocks(rootNode, forward, blockBoundary.from().block(), blockBoundary.to().block());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var rootNode = Element$$1.fromDom(editor.getBody());
+    position = $_6p32rm3rjjgwe85q.read(rootNode.dom(), forward, editor.selection.getRng()).bind(function (blockBoundary) {
+      return $_307srp3yjjgwe8b4.mergeBlocks(rootNode, forward, blockBoundary.from().block(), blockBoundary.to().block());
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     position.each(function (pos) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.selection.setRng(pos.toRange());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11484,17 +12189,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return position.isSome();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cwwff132jfuw8ln7 = { backspaceDelete: backspaceDelete };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6q4s8w3qjjgwe85j = { backspaceDelete: backspaceDelete };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteRangeMergeBlocks = function (rootNode, selection) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rng = selection.getRng();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5gv5dd26jfuw8li3.liftN([
-      $_43wr4w34jfuw8lnu.getParentBlock(rootNode, $_c9h6qlzjfuw8l98.fromDom(rng.startContainer)),
-      $_43wr4w34jfuw8lnu.getParentBlock(rootNode, $_c9h6qlzjfuw8l98.fromDom(rng.endContainer))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return liftN([
+      $_3vi93f3sjjgwe861.getParentBlock(rootNode, Element$$1.fromDom(rng.startContainer)),
+      $_3vi93f3sjjgwe861.getParentBlock(rootNode, Element$$1.fromDom(rng.endContainer))
</ins><span class="cx" style="display: block; padding: 0 10px">     ], function (block1, block2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_4fb96d1djfuw8lbl.eq(block1, block2) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_5raon11ejjgwe7o5.eq(block1, block2) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">         rng.deleteContents();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_fm1lyo3djfuw8lpi.mergeBlocks(rootNode, true, block1, block2).each(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_307srp3yjjgwe8b4.mergeBlocks(rootNode, true, block1, block2).each(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">           selection.setRng(pos.toRange());
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11504,16 +12209,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isRawNodeInTable = function (root, rawNode) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var node = $_c9h6qlzjfuw8l98.fromDom(rawNode);
-    var isRoot = $_68e81l6jfuw8kyc.curry($_4fb96d1djfuw8lbl.eq, root);
-    return $_chabeg35jfuw8lo3.ancestor(node, isTableCell, isRoot).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var node = Element$$1.fromDom(rawNode);
+    var isRoot = curry($_5raon11ejjgwe7o5.eq, root);
+    return $_7kjxyh2ajjgwe7un.ancestor(node, isTableCell, isRoot).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isSelectionInTable = function (root, rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     return isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isEverythingSelected = function (root, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var noPrevious = $_25kl2c2cjfuw8ljh.prevPosition(root.dom(), CaretPosition$1.fromRangeStart(rng)).isNone();
-    var noNext = $_25kl2c2cjfuw8ljh.nextPosition(root.dom(), CaretPosition$1.fromRangeEnd(rng)).isNone();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var noPrevious = $_8q1ver2yjjgwe7z3.prevPosition(root.dom(), CaretPosition$1.fromRangeStart(rng)).isNone();
+    var noNext = $_8q1ver2yjjgwe7z3.nextPosition(root.dom(), CaretPosition$1.fromRangeEnd(rng)).isNone();
</ins><span class="cx" style="display: block; padding: 0 10px">     return !isSelectionInTable(root, rng) && noPrevious && noNext;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var emptyEditor = function (editor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11522,7 +12227,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return true;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteRange = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var rootNode = $_c9h6qlzjfuw8l98.fromDom(editor.getBody());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var rootNode = Element$$1.fromDom(editor.getBody());
</ins><span class="cx" style="display: block; padding: 0 10px">     var rng = editor.selection.getRng();
</span><span class="cx" style="display: block; padding: 0 10px">     return isEverythingSelected(rootNode, rng) ? emptyEditor(editor) : deleteRangeMergeBlocks(rootNode, editor.selection);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11529,10 +12234,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDelete$1 = function (editor, forward) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.selection.isCollapsed() ? false : deleteRange(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_f34seo3fjfuw8lq6 = { backspaceDelete: backspaceDelete$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8u9liw40jjgwe8bn = { backspaceDelete: backspaceDelete$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var generate = function (cases) {
-    if (!$_16i8k47jfuw8kyi.isArray(cases)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var generate$1 = function (cases) {
+    if (!isArray(cases)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       throw new Error('cases must be an array');
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (cases.length === 0) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11540,18 +12245,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     var constructors = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var adt = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.each(cases, function (acase, count) {
-      var keys = $_8c8uhu13jfuw8la0.keys(acase);
-      if (keys.length !== 1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each(cases, function (acase, count) {
+      var keys$$1 = keys(acase);
+      if (keys$$1.length !== 1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         throw new Error('one and only one name per case');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var key = keys[0];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var key = keys$$1[0];
</ins><span class="cx" style="display: block; padding: 0 10px">       var value = acase[key];
</span><span class="cx" style="display: block; padding: 0 10px">       if (adt[key] !== undefined) {
</span><span class="cx" style="display: block; padding: 0 10px">         throw new Error('duplicate key detected:' + key);
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (key === 'cata') {
</span><span class="cx" style="display: block; padding: 0 10px">         throw new Error('cannot have a case named cata (sorry)');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if (!$_16i8k47jfuw8kyi.isArray(value)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (!isArray(value)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         throw new Error('case arguments must be an array');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       constructors.push(key);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11564,12 +12269,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">         for (var i = 0; i < args.length; i++)
</span><span class="cx" style="display: block; padding: 0 10px">           args[i] = arguments[i];
</span><span class="cx" style="display: block; padding: 0 10px">         var match = function (branches) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var branchKeys = $_8c8uhu13jfuw8la0.keys(branches);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var branchKeys = keys(branches);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (constructors.length !== branchKeys.length) {
</span><span class="cx" style="display: block; padding: 0 10px">             throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\nActual: ' + branchKeys.join(','));
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var allReqd = $_9ek1bp4jfuw8kxg.forall(constructors, function (reqKey) {
-            return $_9ek1bp4jfuw8kxg.contains(branchKeys, reqKey);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var allReqd = forall(constructors, function (reqKey) {
+            return contains(branchKeys, reqKey);
</ins><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">           if (!allReqd)
</span><span class="cx" style="display: block; padding: 0 10px">             throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', '));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11596,12 +12301,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return adt;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5ac1li3ijfuw8lqv = { generate: generate };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Adt = { generate: generate$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var isCompoundElement = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isTableCell($_c9h6qlzjfuw8l98.fromDom(node)) || isListItem($_c9h6qlzjfuw8l98.fromDom(node));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isTableCell(Element$$1.fromDom(node)) || isListItem(Element$$1.fromDom(node));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var DeleteAction = $_5ac1li3ijfuw8lqv.generate([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var DeleteAction = Adt.generate([
</ins><span class="cx" style="display: block; padding: 0 10px">     { remove: ['element'] },
</span><span class="cx" style="display: block; padding: 0 10px">     { moveToElement: ['element'] },
</span><span class="cx" style="display: block; padding: 0 10px">     { moveToPosition: ['position'] }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11609,33 +12314,33 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isAtContentEditableBlockCaret = function (forward, from) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elm = from.getNode(forward === false);
</span><span class="cx" style="display: block; padding: 0 10px">     var caretLocation = forward ? 'after' : 'before';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isElement(elm) && elm.getAttribute('data-mce-caret') === caretLocation;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isElement(elm) && elm.getAttribute('data-mce-caret') === caretLocation;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isDeleteFromCefDifferentBlocks = function (root, forward, from, to) {
</span><span class="cx" style="display: block; padding: 0 10px">     var inSameBlock = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return isInline($_c9h6qlzjfuw8l98.fromDom(elm)) && !isInSameBlock(from, to, root);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return isInline(Element$$1.fromDom(elm)) && !isInSameBlock(from, to, root);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return getRelativeCefElm(!forward, from).fold(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return getRelativeCefElm(forward, to).fold($_68e81l6jfuw8kyc.constant(false), inSameBlock);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return getRelativeCefElm(forward, to).fold(constant(false), inSameBlock);
</ins><span class="cx" style="display: block; padding: 0 10px">     }, inSameBlock);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteEmptyBlockOrMoveToCef = function (root, forward, from, to) {
</span><span class="cx" style="display: block; padding: 0 10px">     var toCefElm = to.getNode(forward === false);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_43wr4w34jfuw8lnu.getParentBlock($_c9h6qlzjfuw8l98.fromDom(root), $_c9h6qlzjfuw8l98.fromDom(from.getNode())).map(function (blockElm) {
-      return $_9f7o8q3ajfuw8lp7.isEmpty(blockElm) ? DeleteAction.remove(blockElm.dom()) : DeleteAction.moveToElement(toCefElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3vi93f3sjjgwe861.getParentBlock(Element$$1.fromDom(root), Element$$1.fromDom(from.getNode())).map(function (blockElm) {
+      return $_99xuux3wjjgwe8as.isEmpty(blockElm) ? DeleteAction.remove(blockElm.dom()) : DeleteAction.moveToElement(toCefElm);
</ins><span class="cx" style="display: block; padding: 0 10px">     }).orThunk(function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.some(DeleteAction.moveToElement(toCefElm));
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findCefPosition = function (root, forward, from) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.fromPosition(forward, root, from).bind(function (to) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.fromPosition(forward, root, from).bind(function (to) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (isCompoundElement(to.getNode())) {
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (isDeleteFromCefDifferentBlocks(root, forward, from, to)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.none();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if (forward && $_ey7ka11qjfuw8ldg.isContentEditableFalse(to.getNode())) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (forward && $_3b9u2y1rjjgwe7qe.isContentEditableFalse(to.getNode())) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return deleteEmptyBlockOrMoveToCef(root, forward, from, to);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if (forward === false && $_ey7ka11qjfuw8ldg.isContentEditableFalse(to.getNode(true))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (forward === false && $_3b9u2y1rjjgwe7qe.isContentEditableFalse(to.getNode(true))) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return deleteEmptyBlockOrMoveToCef(root, forward, from, to);
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (forward && isAfterContentEditableFalse(from)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.some(DeleteAction.moveToPosition(to));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11647,9 +12352,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getContentEditableBlockAction = function (forward, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (forward && $_ey7ka11qjfuw8ldg.isContentEditableFalse(elm.nextSibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (forward && $_3b9u2y1rjjgwe7qe.isContentEditableFalse(elm.nextSibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return Option.some(DeleteAction.moveToElement(elm.nextSibling));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if (forward === false && $_ey7ka11qjfuw8ldg.isContentEditableFalse(elm.previousSibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if (forward === false && $_3b9u2y1rjjgwe7qe.isContentEditableFalse(elm.previousSibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return Option.some(DeleteAction.moveToElement(elm.previousSibling));
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.none();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11679,7 +12384,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var read$1 = function (root, forward, rng) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var read$2 = function (root, forward, rng) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var normalizedRange = normalizeRange(forward ? 1 : -1, root, rng);
</span><span class="cx" style="display: block; padding: 0 10px">     var from = CaretPosition$1.fromRangeStart(normalizedRange);
</span><span class="cx" style="display: block; padding: 0 10px">     if (forward === false && isAfterContentEditableFalse(from)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11700,16 +12405,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return needsReposition(pos, elm) ? CaretPosition$1(pos.container(), pos.offset() - 1) : pos;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var beforeOrStartOf = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isText(node) ? CaretPosition$1(node, 0) : CaretPosition$1.before(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isText(node) ? CaretPosition$1(node, 0) : CaretPosition$1.before(node);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var afterOrEndOf = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isText(node) ? CaretPosition$1(node, node.data.length) : CaretPosition$1.after(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isText(node) ? CaretPosition$1(node, node.data.length) : CaretPosition$1.after(node);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getPreviousSiblingCaretPosition = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (isCaretCandidate(elm.previousSibling)) {
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.some(afterOrEndOf(elm.previousSibling));
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return elm.previousSibling ? $_25kl2c2cjfuw8ljh.lastPositionIn(elm.previousSibling) : Option.none();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return elm.previousSibling ? $_8q1ver2yjjgwe7z3.lastPositionIn(elm.previousSibling) : Option.none();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getNextSiblingCaretPosition = function (elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11716,18 +12421,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (isCaretCandidate(elm.nextSibling)) {
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.some(beforeOrStartOf(elm.nextSibling));
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return elm.nextSibling ? $_25kl2c2cjfuw8ljh.firstPositionIn(elm.nextSibling) : Option.none();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return elm.nextSibling ? $_8q1ver2yjjgwe7z3.firstPositionIn(elm.nextSibling) : Option.none();
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findCaretPositionBackwardsFromElm = function (rootElement, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var startPosition = CaretPosition$1.before(elm.previousSibling ? elm.previousSibling : elm.parentNode);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.prevPosition(rootElement, startPosition).fold(function () {
-      return $_25kl2c2cjfuw8ljh.nextPosition(rootElement, CaretPosition$1.after(elm));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.prevPosition(rootElement, startPosition).fold(function () {
+      return $_8q1ver2yjjgwe7z3.nextPosition(rootElement, CaretPosition$1.after(elm));
</ins><span class="cx" style="display: block; padding: 0 10px">     }, Option.some);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findCaretPositionForwardsFromElm = function (rootElement, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.nextPosition(rootElement, CaretPosition$1.after(elm)).fold(function () {
-      return $_25kl2c2cjfuw8ljh.prevPosition(rootElement, CaretPosition$1.before(elm));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.nextPosition(rootElement, CaretPosition$1.after(elm)).fold(function () {
+      return $_8q1ver2yjjgwe7z3.prevPosition(rootElement, CaretPosition$1.before(elm));
</ins><span class="cx" style="display: block; padding: 0 10px">     }, Option.some);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findCaretPositionBackwards = function (rootElement, elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11748,7 +12453,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return forward ? findCaretPositionForward(rootElement, elm) : findCaretPositionBackwards(rootElement, elm);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findCaretPosOutsideElmAfterDelete = function (forward, rootElement, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return findCaretPosition$1(forward, rootElement, elm).map($_68e81l6jfuw8kyc.curry(reposition, elm));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return findCaretPosition$1(forward, rootElement, elm).map(curry(reposition, elm));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setSelection = function (editor, forward, pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     pos.fold(function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11763,13 +12468,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isBlock$2 = function (editor, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return elm && editor.schema.getBlockElements().hasOwnProperty($_eaw33d10jfuw8l9f.name(elm));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return elm && editor.schema.getBlockElements().hasOwnProperty($_fxxo5411jjgwe7lq.name(elm));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var paddEmptyBlock = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9f7o8q3ajfuw8lp7.isEmpty(elm)) {
-      var br = $_c9h6qlzjfuw8l98.fromHtml('<br data-mce-bogus="1">');
-      $_byg6a92ujfuw8lmi.empty(elm);
-      $_doli6x2kjfuw8lky.append(elm, br);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_99xuux3wjjgwe8as.isEmpty(elm)) {
+      var br = Element$$1.fromHtml('<br data-mce-bogus="1">');
+      $_81exq51wjjgwe7sm.empty(elm);
+      $_ewo3u51yjjgwe7su.append(elm, br);
</ins><span class="cx" style="display: block; padding: 0 10px">       return Option.some(CaretPosition$1.before(br.dom()));
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.none();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11776,19 +12481,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteNormalized = function (elm, afterDeletePosOpt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5gv5dd26jfuw8li3.liftN([
-      $_2j4g5u17jfuw8lav.prevSibling(elm),
-      $_2j4g5u17jfuw8lav.nextSibling(elm),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return liftN([
+      $_d3rmjp18jjgwe7nc.prevSibling(elm),
+      $_d3rmjp18jjgwe7nc.nextSibling(elm),
</ins><span class="cx" style="display: block; padding: 0 10px">       afterDeletePosOpt
</span><span class="cx" style="display: block; padding: 0 10px">     ], function (prev, next, afterDeletePos) {
</span><span class="cx" style="display: block; padding: 0 10px">       var offset;
</span><span class="cx" style="display: block; padding: 0 10px">       var prevNode = prev.dom();
</span><span class="cx" style="display: block; padding: 0 10px">       var nextNode = next.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isText(prevNode) && $_ey7ka11qjfuw8ldg.isText(nextNode)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isText(prevNode) && $_3b9u2y1rjjgwe7qe.isText(nextNode)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         offset = prevNode.data.length;
</span><span class="cx" style="display: block; padding: 0 10px">         prevNode.appendData(nextNode.data);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_byg6a92ujfuw8lmi.remove(next);
-        $_byg6a92ujfuw8lmi.remove(elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_81exq51wjjgwe7sm.remove(next);
+        $_81exq51wjjgwe7sm.remove(elm);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (afterDeletePos.container() === nextNode) {
</span><span class="cx" style="display: block; padding: 0 10px">           return CaretPosition$1(prevNode, offset);
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11795,17 +12500,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">           return afterDeletePos;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_byg6a92ujfuw8lmi.remove(elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_81exq51wjjgwe7sm.remove(elm);
</ins><span class="cx" style="display: block; padding: 0 10px">         return afterDeletePos;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }).orThunk(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_byg6a92ujfuw8lmi.remove(elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_81exq51wjjgwe7sm.remove(elm);
</ins><span class="cx" style="display: block; padding: 0 10px">       return afterDeletePosOpt;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteElement = function (editor, forward, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var afterDeletePos = findCaretPosOutsideElmAfterDelete(forward, editor.getBody(), elm.dom());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var parentBlock = $_chabeg35jfuw8lo3.ancestor(elm, $_68e81l6jfuw8kyc.curry(isBlock$2, editor), eqRawNode(editor.getBody()));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var parentBlock = $_7kjxyh2ajjgwe7un.ancestor(elm, curry(isBlock$2, editor), eqRawNode(editor.getBody()));
</ins><span class="cx" style="display: block; padding: 0 10px">     var normalizedAfterDeletePos = deleteNormalized(elm, afterDeletePos);
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.dom.isEmpty(editor.getBody())) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.setContent('');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11818,12 +12523,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ge41qn3jjfuw8lr1 = { deleteElement: deleteElement };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_eg6ib44jjgwe8ck = { deleteElement: deleteElement };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteElement$1 = function (editor, forward) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor._selectionOverrides.hideFakeCaret();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_ge41qn3jjfuw8lr1.deleteElement(editor, forward, $_c9h6qlzjfuw8l98.fromDom(element));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_eg6ib44jjgwe8ck.deleteElement(editor, forward, Element$$1.fromDom(element));
</ins><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11841,20 +12546,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDeleteCaret = function (editor, forward) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var result = read$1(editor.getBody(), forward, editor.selection.getRng()).map(function (deleteAction) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var result = read$2(editor.getBody(), forward, editor.selection.getRng()).map(function (deleteAction) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return deleteAction.fold(deleteElement$1(editor, forward), moveToElement(editor, forward), moveToPosition(editor));
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return result.getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteOffscreenSelection = function (rootElement) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.each($_ryxde2gjfuw8lkk.descendants(rootElement, '.mce-offscreen-selection'), $_byg6a92ujfuw8lmi.remove);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each($_d3ydn427jjgwe7uf.descendants(rootElement, '.mce-offscreen-selection'), $_81exq51wjjgwe7sm.remove);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDeleteRange = function (editor, forward) {
</span><span class="cx" style="display: block; padding: 0 10px">     var selectedElement = editor.selection.getNode();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isContentEditableFalse(selectedElement)) {
-      deleteOffscreenSelection($_c9h6qlzjfuw8l98.fromDom(editor.getBody()));
-      $_ge41qn3jjfuw8lr1.deleteElement(editor, forward, $_c9h6qlzjfuw8l98.fromDom(editor.selection.getNode()));
-      $_43wr4w34jfuw8lnu.paddEmptyBody(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isContentEditableFalse(selectedElement)) {
+      deleteOffscreenSelection(Element$$1.fromDom(editor.getBody()));
+      $_eg6ib44jjgwe8ck.deleteElement(editor, forward, Element$$1.fromDom(editor.selection.getNode()));
+      $_3vi93f3sjjgwe861.paddEmptyBody(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11862,7 +12567,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getContentEditableRoot = function (root, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     while (node && node !== root) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isContentEditableTrue(node) || $_ey7ka11qjfuw8ldg.isContentEditableFalse(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isContentEditableTrue(node) || $_3b9u2y1rjjgwe7qe.isContentEditableFalse(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return node;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       node = node.parentNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11872,7 +12577,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var paddEmptyElement = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var br;
</span><span class="cx" style="display: block; padding: 0 10px">     var ceRoot = getContentEditableRoot(editor.getBody(), editor.selection.getNode());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isContentEditableTrue(ceRoot) && editor.dom.isBlock(ceRoot) && editor.dom.isEmpty(ceRoot)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isContentEditableTrue(ceRoot) && editor.dom.isBlock(ceRoot) && editor.dom.isEmpty(ceRoot)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       br = editor.dom.create('br', { 'data-mce-bogus': '1' });
</span><span class="cx" style="display: block; padding: 0 10px">       editor.dom.setHTML(ceRoot, '');
</span><span class="cx" style="display: block; padding: 0 10px">       ceRoot.appendChild(br);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11887,20 +12592,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return backspaceDeleteRange(editor, forward);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_a7skkj3gjfuw8lqf = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cc2jel41jjgwe8bx = {
</ins><span class="cx" style="display: block; padding: 0 10px">     backspaceDelete: backspaceDelete$2,
</span><span class="cx" style="display: block; padding: 0 10px">     paddEmptyElement: paddEmptyElement
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isText$8 = $_ey7ka11qjfuw8ldg.isText;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isText$8 = $_3b9u2y1rjjgwe7qe.isText;
</ins><span class="cx" style="display: block; padding: 0 10px">   var startsWithCaretContainer$1 = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isText$8(node) && node.data[0] === $_dpfg1321jfuw8lhn.ZWSP;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isText$8(node) && node.data[0] === $_2xw7ul2pjjgwe7xs.ZWSP;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var endsWithCaretContainer$1 = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isText$8(node) && node.data[node.data.length - 1] === $_dpfg1321jfuw8lhn.ZWSP;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isText$8(node) && node.data[node.data.length - 1] === $_2xw7ul2pjjgwe7xs.ZWSP;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createZwsp = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return node.ownerDocument.createTextNode($_dpfg1321jfuw8lhn.ZWSP);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return node.ownerDocument.createTextNode($_2xw7ul2pjjgwe7xs.ZWSP);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertBefore$1 = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (isText$8(node.previousSibling)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11907,7 +12612,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (endsWithCaretContainer$1(node.previousSibling)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return node.previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        node.previousSibling.appendData($_dpfg1321jfuw8lhn.ZWSP);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        node.previousSibling.appendData($_2xw7ul2pjjgwe7xs.ZWSP);
</ins><span class="cx" style="display: block; padding: 0 10px">         return node.previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (isText$8(node)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11914,7 +12619,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (startsWithCaretContainer$1(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return node;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        node.insertData(0, $_dpfg1321jfuw8lhn.ZWSP);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        node.insertData(0, $_2xw7ul2pjjgwe7xs.ZWSP);
</ins><span class="cx" style="display: block; padding: 0 10px">         return node;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11928,7 +12633,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (startsWithCaretContainer$1(node.nextSibling)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return node.nextSibling;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        node.nextSibling.insertData(0, $_dpfg1321jfuw8lhn.ZWSP);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        node.nextSibling.insertData(0, $_2xw7ul2pjjgwe7xs.ZWSP);
</ins><span class="cx" style="display: block; padding: 0 10px">         return node.nextSibling;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (isText$8(node)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11935,7 +12640,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (endsWithCaretContainer$1(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return node;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        node.appendData($_dpfg1321jfuw8lhn.ZWSP);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        node.appendData($_2xw7ul2pjjgwe7xs.ZWSP);
</ins><span class="cx" style="display: block; padding: 0 10px">         return node;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11951,11 +12656,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var insertInline$1 = function (before, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     return before ? insertBefore$1(node) : insertAfter$1(node);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var insertInlineBefore = $_68e81l6jfuw8kyc.curry(insertInline$1, true);
-  var insertInlineAfter = $_68e81l6jfuw8kyc.curry(insertInline$1, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var insertInlineBefore = curry(insertInline$1, true);
+  var insertInlineAfter = curry(insertInline$1, false);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var insertInlinePos = function (pos, before) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isText(pos.container())) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isText(pos.container())) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return insertInline$1(before, pos.container());
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return insertInline$1(before, pos.getNode());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11967,14 +12672,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var renderCaret = function (caret, location) {
</span><span class="cx" style="display: block; padding: 0 10px">     return location.fold(function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_dpm5zo2ajfuw8liw.remove(caret.get());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_cueauu31jjgwe7zy.remove(caret.get());
</ins><span class="cx" style="display: block; padding: 0 10px">       var text = insertInlineBefore(element);
</span><span class="cx" style="display: block; padding: 0 10px">       caret.set(text);
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.some(CaretPosition$1(text, text.length - 1));
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_25kl2c2cjfuw8ljh.firstPositionIn(element).map(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_8q1ver2yjjgwe7z3.firstPositionIn(element).map(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!isPosCaretContainer(pos, caret)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_dpm5zo2ajfuw8liw.remove(caret.get());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_cueauu31jjgwe7zy.remove(caret.get());
</ins><span class="cx" style="display: block; padding: 0 10px">           var text = insertInlinePos(pos, true);
</span><span class="cx" style="display: block; padding: 0 10px">           caret.set(text);
</span><span class="cx" style="display: block; padding: 0 10px">           return CaretPosition$1(text, 1);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11983,9 +12688,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_25kl2c2cjfuw8ljh.lastPositionIn(element).map(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_8q1ver2yjjgwe7z3.lastPositionIn(element).map(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!isPosCaretContainer(pos, caret)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_dpm5zo2ajfuw8liw.remove(caret.get());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_cueauu31jjgwe7zy.remove(caret.get());
</ins><span class="cx" style="display: block; padding: 0 10px">           var text = insertInlinePos(pos, false);
</span><span class="cx" style="display: block; padding: 0 10px">           caret.set(text);
</span><span class="cx" style="display: block; padding: 0 10px">           return CaretPosition$1(text, text.length - 1);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11994,13 +12699,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_dpm5zo2ajfuw8liw.remove(caret.get());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_cueauu31jjgwe7zy.remove(caret.get());
</ins><span class="cx" style="display: block; padding: 0 10px">       var text = insertInlineAfter(element);
</span><span class="cx" style="display: block; padding: 0 10px">       caret.set(text);
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.some(CaretPosition$1(text, 1));
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_40d5vv3ljfuw8lv1 = { renderCaret: renderCaret };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_huqsd46jjgwe8de = { renderCaret: renderCaret };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var evaluateUntil = function (fns, args) {
</span><span class="cx" style="display: block; padding: 0 10px">     for (var i = 0; i < fns.length; i++) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12011,9 +12716,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_d9qu763ojfuw8lvl = { evaluateUntil: evaluateUntil };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2racda49jjgwe8dz = { evaluateUntil: evaluateUntil };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var Location = $_5ac1li3ijfuw8lqv.generate([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Location = Adt.generate([
</ins><span class="cx" style="display: block; padding: 0 10px">     { before: ['element'] },
</span><span class="cx" style="display: block; padding: 0 10px">     { start: ['element'] },
</span><span class="cx" style="display: block; padding: 0 10px">     { end: ['element'] },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12024,10 +12729,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return parentBlock ? parentBlock : rootNode;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var before$3 = function (isInlineTarget, rootNode, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var nPos = $_exgtt937jfuw8loj.normalizeForwards(pos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var nPos = $_av9utf3tjjgwe86b.normalizeForwards(pos);
</ins><span class="cx" style="display: block; padding: 0 10px">     var scope = rescope(rootNode, nPos.container());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_exgtt937jfuw8loj.findRootInline(isInlineTarget, scope, nPos).fold(function () {
-      return $_25kl2c2cjfuw8ljh.nextPosition(scope, nPos).bind($_68e81l6jfuw8kyc.curry($_exgtt937jfuw8loj.findRootInline, isInlineTarget, scope)).map(function (inline) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_av9utf3tjjgwe86b.findRootInline(isInlineTarget, scope, nPos).fold(function () {
+      return $_8q1ver2yjjgwe7z3.nextPosition(scope, nPos).bind(curry($_av9utf3tjjgwe86b.findRootInline, isInlineTarget, scope)).map(function (inline) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return Location.before(inline);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }, Option.none);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12036,36 +12741,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return getParentCaretContainer(rootNode, elm) === null;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findInsideRootInline = function (isInlineTarget, rootNode, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_exgtt937jfuw8loj.findRootInline(isInlineTarget, rootNode, pos).filter($_68e81l6jfuw8kyc.curry(isNotInsideFormatCaretContainer, rootNode));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_av9utf3tjjgwe86b.findRootInline(isInlineTarget, rootNode, pos).filter(curry(isNotInsideFormatCaretContainer, rootNode));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var start = function (isInlineTarget, rootNode, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var nPos = $_exgtt937jfuw8loj.normalizeBackwards(pos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var nPos = $_av9utf3tjjgwe86b.normalizeBackwards(pos);
</ins><span class="cx" style="display: block; padding: 0 10px">     return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var prevPos = $_25kl2c2cjfuw8ljh.prevPosition(inline, nPos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var prevPos = $_8q1ver2yjjgwe7z3.prevPosition(inline, nPos);
</ins><span class="cx" style="display: block; padding: 0 10px">       return prevPos.isNone() ? Option.some(Location.start(inline)) : Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var end = function (isInlineTarget, rootNode, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var nPos = $_exgtt937jfuw8loj.normalizeForwards(pos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var nPos = $_av9utf3tjjgwe86b.normalizeForwards(pos);
</ins><span class="cx" style="display: block; padding: 0 10px">     return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var nextPos = $_25kl2c2cjfuw8ljh.nextPosition(inline, nPos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var nextPos = $_8q1ver2yjjgwe7z3.nextPosition(inline, nPos);
</ins><span class="cx" style="display: block; padding: 0 10px">       return nextPos.isNone() ? Option.some(Location.end(inline)) : Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var after$3 = function (isInlineTarget, rootNode, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var nPos = $_exgtt937jfuw8loj.normalizeBackwards(pos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var nPos = $_av9utf3tjjgwe86b.normalizeBackwards(pos);
</ins><span class="cx" style="display: block; padding: 0 10px">     var scope = rescope(rootNode, nPos.container());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_exgtt937jfuw8loj.findRootInline(isInlineTarget, scope, nPos).fold(function () {
-      return $_25kl2c2cjfuw8ljh.prevPosition(scope, nPos).bind($_68e81l6jfuw8kyc.curry($_exgtt937jfuw8loj.findRootInline, isInlineTarget, scope)).map(function (inline) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_av9utf3tjjgwe86b.findRootInline(isInlineTarget, scope, nPos).fold(function () {
+      return $_8q1ver2yjjgwe7z3.prevPosition(scope, nPos).bind(curry($_av9utf3tjjgwe86b.findRootInline, isInlineTarget, scope)).map(function (inline) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return Location.after(inline);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }, Option.none);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isValidLocation = function (location) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_exgtt937jfuw8loj.isRtl(getElement(location)) === false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_av9utf3tjjgwe86b.isRtl(getElement(location)) === false;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var readLocation = function (isInlineTarget, rootNode, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var location = $_d9qu763ojfuw8lvl.evaluateUntil([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var location = $_2racda49jjgwe8dz.evaluateUntil([
</ins><span class="cx" style="display: block; padding: 0 10px">       before$3,
</span><span class="cx" style="display: block; padding: 0 10px">       start,
</span><span class="cx" style="display: block; padding: 0 10px">       end,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12078,10 +12783,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return location.filter(isValidLocation);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getElement = function (location) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return location.fold($_68e81l6jfuw8kyc.identity, $_68e81l6jfuw8kyc.identity, $_68e81l6jfuw8kyc.identity, $_68e81l6jfuw8kyc.identity);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return location.fold(identity, identity, identity, identity);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getName = function (location) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return location.fold($_68e81l6jfuw8kyc.constant('before'), $_68e81l6jfuw8kyc.constant('start'), $_68e81l6jfuw8kyc.constant('end'), $_68e81l6jfuw8kyc.constant('after'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return location.fold(constant('before'), constant('start'), constant('end'), constant('after'));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var outside = function (location) {
</span><span class="cx" style="display: block; padding: 0 10px">     return location.fold(Location.before, Location.before, Location.after, Location.after);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12089,15 +12794,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var inside = function (location) {
</span><span class="cx" style="display: block; padding: 0 10px">     return location.fold(Location.start, Location.start, Location.end, Location.end);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isEq = function (location1, location2) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isEq$1 = function (location1, location2) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return getName(location1) === getName(location2) && getElement(location1) === getElement(location2);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var betweenInlines = function (forward, isInlineTarget, rootNode, from, to, location) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5gv5dd26jfuw8li3.liftN([
-      $_exgtt937jfuw8loj.findRootInline(isInlineTarget, rootNode, from),
-      $_exgtt937jfuw8loj.findRootInline(isInlineTarget, rootNode, to)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return liftN([
+      $_av9utf3tjjgwe86b.findRootInline(isInlineTarget, rootNode, from),
+      $_av9utf3tjjgwe86b.findRootInline(isInlineTarget, rootNode, to)
</ins><span class="cx" style="display: block; padding: 0 10px">     ], function (fromInline, toInline) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (fromInline !== toInline && $_exgtt937jfuw8loj.hasSameParentBlock(rootNode, fromInline, toInline)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (fromInline !== toInline && $_av9utf3tjjgwe86b.hasSameParentBlock(rootNode, fromInline, toInline)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return Location.after(forward ? fromInline : toInline);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         return location;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12105,39 +12810,39 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(location);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var skipNoMovement = function (fromLocation, toLocation) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return fromLocation.fold($_68e81l6jfuw8kyc.constant(true), function (fromLocation) {
-      return !isEq(fromLocation, toLocation);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return fromLocation.fold(constant(true), function (fromLocation) {
+      return !isEq$1(fromLocation, toLocation);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findLocationTraverse = function (forward, isInlineTarget, rootNode, fromLocation, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var from = $_exgtt937jfuw8loj.normalizePosition(forward, pos);
-    var to = $_25kl2c2cjfuw8ljh.fromPosition(forward, rootNode, from).map($_68e81l6jfuw8kyc.curry($_exgtt937jfuw8loj.normalizePosition, forward));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var from = $_av9utf3tjjgwe86b.normalizePosition(forward, pos);
+    var to = $_8q1ver2yjjgwe7z3.fromPosition(forward, rootNode, from).map(curry($_av9utf3tjjgwe86b.normalizePosition, forward));
</ins><span class="cx" style="display: block; padding: 0 10px">     var location = to.fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return fromLocation.map(outside);
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (to) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return readLocation(isInlineTarget, rootNode, to).map($_68e81l6jfuw8kyc.curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter($_68e81l6jfuw8kyc.curry(skipNoMovement, fromLocation));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return readLocation(isInlineTarget, rootNode, to).map(curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter(curry(skipNoMovement, fromLocation));
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return location.filter(isValidLocation);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findLocationSimple = function (forward, location) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (forward) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return location.fold($_68e81l6jfuw8kyc.compose(Option.some, Location.start), Option.none, $_68e81l6jfuw8kyc.compose(Option.some, Location.after), Option.none);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return location.fold(compose(Option.some, Location.start), Option.none, compose(Option.some, Location.after), Option.none);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return location.fold(Option.none, $_68e81l6jfuw8kyc.compose(Option.some, Location.before), Option.none, $_68e81l6jfuw8kyc.compose(Option.some, Location.end));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return location.fold(Option.none, compose(Option.some, Location.before), Option.none, compose(Option.some, Location.end));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findLocation = function (forward, isInlineTarget, rootNode, pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var from = $_exgtt937jfuw8loj.normalizePosition(forward, pos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var from = $_av9utf3tjjgwe86b.normalizePosition(forward, pos);
</ins><span class="cx" style="display: block; padding: 0 10px">     var fromLocation = readLocation(isInlineTarget, rootNode, from);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return readLocation(isInlineTarget, rootNode, from).bind($_68e81l6jfuw8kyc.curry(findLocationSimple, forward)).orThunk(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return readLocation(isInlineTarget, rootNode, from).bind(curry(findLocationSimple, forward)).orThunk(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">       return findLocationTraverse(forward, isInlineTarget, rootNode, fromLocation, pos);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_80edfj3njfuw8lvb = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_g20q2x48jjgwe8dp = {
</ins><span class="cx" style="display: block; padding: 0 10px">     readLocation: readLocation,
</span><span class="cx" style="display: block; padding: 0 10px">     findLocation: findLocation,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    prevLocation: $_68e81l6jfuw8kyc.curry(findLocation, false),
-    nextLocation: $_68e81l6jfuw8kyc.curry(findLocation, true),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    prevLocation: curry(findLocation, false),
+    nextLocation: curry(findLocation, true),
</ins><span class="cx" style="display: block; padding: 0 10px">     getElement: getElement,
</span><span class="cx" style="display: block; padding: 0 10px">     outside: outside,
</span><span class="cx" style="display: block; padding: 0 10px">     inside: inside
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12144,7 +12849,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var hasSelectionModifyApi = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_16i8k47jfuw8kyi.isFunction(editor.selection.getSel().modify);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isFunction(editor.selection.getSel().modify);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var moveRel = function (forward, selection, pos) {
</span><span class="cx" style="display: block; padding: 0 10px">     var delta = forward ? 1 : -1;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12165,7 +12870,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9q8tuu3qjfuw8lvw = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_c544rm4bjjgwe8ea = {
</ins><span class="cx" style="display: block; padding: 0 10px">     hasSelectionModifyApi: hasSelectionModifyApi,
</span><span class="cx" style="display: block; padding: 0 10px">     moveByWord: moveByWord
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12187,7 +12892,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var renderCaretLocation = function (editor, caret, location) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_40d5vv3ljfuw8lv1.renderCaret(caret, location).map(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_huqsd46jjgwe8de.renderCaret(caret, location).map(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">       setCaretPosition(editor, pos);
</span><span class="cx" style="display: block; padding: 0 10px">       return location;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12195,23 +12900,23 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var findLocation$1 = function (editor, caret, forward) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rootNode = editor.getBody();
</span><span class="cx" style="display: block; padding: 0 10px">     var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isInlineTarget = $_68e81l6jfuw8kyc.curry($_exgtt937jfuw8loj.isInlineTarget, editor);
-    var location = $_80edfj3njfuw8lvb.findLocation(forward, isInlineTarget, rootNode, from);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isInlineTarget = curry($_av9utf3tjjgwe86b.isInlineTarget, editor);
+    var location = $_g20q2x48jjgwe8dp.findLocation(forward, isInlineTarget, rootNode, from);
</ins><span class="cx" style="display: block; padding: 0 10px">     return location.bind(function (location) {
</span><span class="cx" style="display: block; padding: 0 10px">       return renderCaretLocation(editor, caret, location);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var toggleInlines = function (isInlineTarget, dom, elms) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var selectedInlines = $_9ek1bp4jfuw8kxg.filter(dom.select('*[data-mce-selected="inline-boundary"]'), isInlineTarget);
-    var targetInlines = $_9ek1bp4jfuw8kxg.filter(elms, isInlineTarget);
-    $_9ek1bp4jfuw8kxg.each($_9ek1bp4jfuw8kxg.difference(selectedInlines, targetInlines), $_68e81l6jfuw8kyc.curry(setSelected, false));
-    $_9ek1bp4jfuw8kxg.each($_9ek1bp4jfuw8kxg.difference(targetInlines, selectedInlines), $_68e81l6jfuw8kyc.curry(setSelected, true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var selectedInlines = filter(dom.select('*[data-mce-selected="inline-boundary"]'), isInlineTarget);
+    var targetInlines = filter(elms, isInlineTarget);
+    each(difference(selectedInlines, targetInlines), curry(setSelected, false));
+    each(difference(targetInlines, selectedInlines), curry(setSelected, true));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var safeRemoveCaretContainer = function (editor, caret) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.selection.isCollapsed() && editor.composing !== true && caret.get()) {
</span><span class="cx" style="display: block; padding: 0 10px">       var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (CaretPosition$1.isTextPosition(pos) && $_exgtt937jfuw8loj.isAtZwsp(pos) === false) {
-        setCaretPosition(editor, $_dpm5zo2ajfuw8liw.removeAndReposition(caret.get(), pos));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (CaretPosition$1.isTextPosition(pos) && $_av9utf3tjjgwe86b.isAtZwsp(pos) === false) {
+        setCaretPosition(editor, $_cueauu31jjgwe7zy.removeAndReposition(caret.get(), pos));
</ins><span class="cx" style="display: block; padding: 0 10px">         caret.set(null);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12218,10 +12923,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var renderInsideInlineCaret = function (isInlineTarget, editor, caret, elms) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.selection.isCollapsed()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var inlines = $_9ek1bp4jfuw8kxg.filter(elms, isInlineTarget);
-      $_9ek1bp4jfuw8kxg.each(inlines, function (inline) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var inlines = filter(elms, isInlineTarget);
+      each(inlines, function (inline) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_80edfj3njfuw8lvb.readLocation(isInlineTarget, editor.getBody(), pos).bind(function (location) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_g20q2x48jjgwe8dp.readLocation(isInlineTarget, editor.getBody(), pos).bind(function (location) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return renderCaretLocation(editor, caret, location);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12234,12 +12939,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var moveWord = function (forward, editor, caret) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return isFeatureEnabled(editor) ? $_9q8tuu3qjfuw8lvw.moveByWord(forward, editor) : false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return isFeatureEnabled(editor) ? $_c544rm4bjjgwe8ea.moveByWord(forward, editor) : false;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setupSelectedState = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var caret = Cell(null);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isInlineTarget = $_68e81l6jfuw8kyc.curry($_exgtt937jfuw8loj.isInlineTarget, editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isInlineTarget = curry($_av9utf3tjjgwe86b.isInlineTarget, editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.on('NodeChange', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (isFeatureEnabled(editor)) {
</span><span class="cx" style="display: block; padding: 0 10px">         toggleInlines(isInlineTarget, editor.dom, e.parents);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12249,9 +12954,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return caret;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var moveNextWord = $_68e81l6jfuw8kyc.curry(moveWord, true);
-  var movePrevWord = $_68e81l6jfuw8kyc.curry(moveWord, false);
-  var $_enc4983pjfuw8lvo = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var moveNextWord = curry(moveWord, true);
+  var movePrevWord = curry(moveWord, false);
+  var $_80ia3a4ajjgwe8e2 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     move: move,
</span><span class="cx" style="display: block; padding: 0 10px">     moveNextWord: moveNextWord,
</span><span class="cx" style="display: block; padding: 0 10px">     movePrevWord: movePrevWord,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12269,21 +12974,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return range;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasOnlyTwoOrLessPositionsLeft = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5gv5dd26jfuw8li3.liftN([
-      $_25kl2c2cjfuw8ljh.firstPositionIn(elm),
-      $_25kl2c2cjfuw8ljh.lastPositionIn(elm)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return liftN([
+      $_8q1ver2yjjgwe7z3.firstPositionIn(elm),
+      $_8q1ver2yjjgwe7z3.lastPositionIn(elm)
</ins><span class="cx" style="display: block; padding: 0 10px">     ], function (firstPos, lastPos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var normalizedFirstPos = $_exgtt937jfuw8loj.normalizePosition(true, firstPos);
-      var normalizedLastPos = $_exgtt937jfuw8loj.normalizePosition(false, lastPos);
-      return $_25kl2c2cjfuw8ljh.nextPosition(elm, normalizedFirstPos).map(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var normalizedFirstPos = $_av9utf3tjjgwe86b.normalizePosition(true, firstPos);
+      var normalizedLastPos = $_av9utf3tjjgwe86b.normalizePosition(false, lastPos);
+      return $_8q1ver2yjjgwe7z3.nextPosition(elm, normalizedFirstPos).map(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return pos.isEqual(normalizedLastPos);
</span><span class="cx" style="display: block; padding: 0 10px">       }).getOr(true);
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(true);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setCaretLocation = function (editor, caret) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return function (location) {
-      return $_40d5vv3ljfuw8lv1.renderCaret(caret, location).map(function (pos) {
-        $_enc4983pjfuw8lvo.setCaretPosition(editor, pos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return function (location$$1) {
+      return $_huqsd46jjgwe8de.renderCaret(caret, location$$1).map(function (pos) {
+        $_80ia3a4ajjgwe8e2.setCaretPosition(editor, pos);
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12290,11 +12995,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteFromTo = function (editor, caret, from, to) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rootNode = editor.getBody();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isInlineTarget = $_68e81l6jfuw8kyc.curry($_exgtt937jfuw8loj.isInlineTarget, editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isInlineTarget = curry($_av9utf3tjjgwe86b.isInlineTarget, editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.undoManager.ignore(function () {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.selection.setRng(rangeFromPositions(from, to));
</span><span class="cx" style="display: block; padding: 0 10px">       editor.execCommand('Delete');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_80edfj3njfuw8lvb.readLocation(isInlineTarget, rootNode, CaretPosition$1.fromRangeStart(editor.selection.getRng())).map($_80edfj3njfuw8lvb.inside).map(setCaretLocation(editor, caret));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_g20q2x48jjgwe8dp.readLocation(isInlineTarget, rootNode, CaretPosition$1.fromRangeStart(editor.selection.getRng())).map($_g20q2x48jjgwe8dp.inside).map(setCaretLocation(editor, caret));
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12304,23 +13009,23 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDeleteCollapsed = function (editor, caret, forward, from) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rootNode = rescope$1(editor.getBody(), from.container());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isInlineTarget = $_68e81l6jfuw8kyc.curry($_exgtt937jfuw8loj.isInlineTarget, editor);
-    var fromLocation = $_80edfj3njfuw8lvb.readLocation(isInlineTarget, rootNode, from);
-    return fromLocation.bind(function (location) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isInlineTarget = curry($_av9utf3tjjgwe86b.isInlineTarget, editor);
+    var fromLocation = $_g20q2x48jjgwe8dp.readLocation(isInlineTarget, rootNode, from);
+    return fromLocation.bind(function (location$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (forward) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return location.fold($_68e81l6jfuw8kyc.constant(Option.some($_80edfj3njfuw8lvb.inside(location))), Option.none, $_68e81l6jfuw8kyc.constant(Option.some($_80edfj3njfuw8lvb.outside(location))), Option.none);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return location$$1.fold(constant(Option.some($_g20q2x48jjgwe8dp.inside(location$$1))), Option.none, constant(Option.some($_g20q2x48jjgwe8dp.outside(location$$1))), Option.none);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return location.fold(Option.none, $_68e81l6jfuw8kyc.constant(Option.some($_80edfj3njfuw8lvb.outside(location))), Option.none, $_68e81l6jfuw8kyc.constant(Option.some($_80edfj3njfuw8lvb.inside(location))));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return location$$1.fold(Option.none, constant(Option.some($_g20q2x48jjgwe8dp.outside(location$$1))), Option.none, constant(Option.some($_g20q2x48jjgwe8dp.inside(location$$1))));
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }).map(setCaretLocation(editor, caret)).getOrThunk(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var toPosition = $_25kl2c2cjfuw8ljh.navigate(forward, rootNode, from);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var toPosition = $_8q1ver2yjjgwe7z3.navigate(forward, rootNode, from);
</ins><span class="cx" style="display: block; padding: 0 10px">       var toLocation = toPosition.bind(function (pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_80edfj3njfuw8lvb.readLocation(isInlineTarget, rootNode, pos);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_g20q2x48jjgwe8dp.readLocation(isInlineTarget, rootNode, pos);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (fromLocation.isSome() && toLocation.isSome()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_exgtt937jfuw8loj.findRootInline(isInlineTarget, rootNode, from).map(function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_av9utf3tjjgwe86b.findRootInline(isInlineTarget, rootNode, from).map(function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (hasOnlyTwoOrLessPositionsLeft(elm)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_ge41qn3jjfuw8lr1.deleteElement(editor, forward, $_c9h6qlzjfuw8l98.fromDom(elm));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_eg6ib44jjgwe8ck.deleteElement(editor, forward, Element$$1.fromDom(elm));
</ins><span class="cx" style="display: block; padding: 0 10px">             return true;
</span><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             return false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12347,39 +13052,39 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_qeu9d3kjfuw8luq = { backspaceDelete: backspaceDelete$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_fwrmt445jjgwe8d5 = { backspaceDelete: backspaceDelete$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var tableCellRng = $_1a7eqh18jfuw8lb9.immutable('start', 'end');
-  var tableSelection = $_1a7eqh18jfuw8lb9.immutable('rng', 'table', 'cells');
-  var deleteAction = $_5ac1li3ijfuw8lqv.generate([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var tableCellRng = Immutable('start', 'end');
+  var tableSelection = Immutable('rng', 'table', 'cells');
+  var deleteAction = Adt.generate([
</ins><span class="cx" style="display: block; padding: 0 10px">     { removeTable: ['element'] },
</span><span class="cx" style="display: block; padding: 0 10px">     { emptyCells: ['cells'] }
</span><span class="cx" style="display: block; padding: 0 10px">   ]);
</span><span class="cx" style="display: block; padding: 0 10px">   var isRootFromElement = function (root) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_68e81l6jfuw8kyc.curry($_4fb96d1djfuw8lbl.eq, root);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return curry($_5raon11ejjgwe7o5.eq, root);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getClosestCell$1 = function (container, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.closest($_c9h6qlzjfuw8l98.fromDom(container), 'td,th', isRoot);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.closest(Element$$1.fromDom(container), 'td,th', isRoot);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getClosestTable = function (cell, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.ancestor(cell, 'table', isRoot);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.ancestor(cell, 'table', isRoot);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isExpandedCellRng = function (cellRng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_4fb96d1djfuw8lbl.eq(cellRng.start(), cellRng.end()) === false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_5raon11ejjgwe7o5.eq(cellRng.start(), cellRng.end()) === false;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getTableFromCellRng = function (cellRng, isRoot) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getClosestTable(cellRng.start(), isRoot).bind(function (startParentTable) {
</span><span class="cx" style="display: block; padding: 0 10px">       return getClosestTable(cellRng.end(), isRoot).bind(function (endParentTable) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_4fb96d1djfuw8lbl.eq(startParentTable, endParentTable) ? Option.some(startParentTable) : Option.none();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_5raon11ejjgwe7o5.eq(startParentTable, endParentTable) ? Option.some(startParentTable) : Option.none();
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getTableCells = function (table) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ryxde2gjfuw8lkk.descendants(table, 'td,th');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_d3ydn427jjgwe7uf.descendants(table, 'td,th');
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getCellRangeFromStartTable = function (cellRng, isRoot) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getClosestTable(cellRng.start(), isRoot).bind(function (table) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_9ek1bp4jfuw8kxg.last(getTableCells(table)).map(function (endCell) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return last(getTableCells(table)).map(function (endCell) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return tableCellRng(cellRng.start(), endCell);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12387,7 +13092,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var partialSelection = function (isRoot, rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     var startCell = getClosestCell$1(rng.startContainer, isRoot);
</span><span class="cx" style="display: block; padding: 0 10px">     var endCell = getClosestCell$1(rng.endContainer, isRoot);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return rng.collapsed ? Option.none() : $_5gv5dd26jfuw8li3.liftN([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return rng.collapsed ? Option.none() : liftN([
</ins><span class="cx" style="display: block; padding: 0 10px">       startCell,
</span><span class="cx" style="display: block; padding: 0 10px">       endCell
</span><span class="cx" style="display: block; padding: 0 10px">     ], tableCellRng).fold(function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12394,7 +13099,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return startCell.fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return endCell.bind(function (endCell) {
</span><span class="cx" style="display: block; padding: 0 10px">           return getClosestTable(endCell, isRoot).bind(function (table) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return $_9ek1bp4jfuw8kxg.head(getTableCells(table)).map(function (startCell) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return head(getTableCells(table)).map(function (startCell) {
</ins><span class="cx" style="display: block; padding: 0 10px">               return tableCellRng(startCell, endCell);
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12401,7 +13106,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }, function (startCell) {
</span><span class="cx" style="display: block; padding: 0 10px">         return getClosestTable(startCell, isRoot).bind(function (table) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return $_9ek1bp4jfuw8kxg.last(getTableCells(table)).map(function (endCell) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return last(getTableCells(table)).map(function (endCell) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return tableCellRng(startCell, endCell);
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12416,7 +13121,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getCellRng = function (rng, isRoot) {
</span><span class="cx" style="display: block; padding: 0 10px">     var startCell = getClosestCell$1(rng.startContainer, isRoot);
</span><span class="cx" style="display: block; padding: 0 10px">     var endCell = getClosestCell$1(rng.endContainer, isRoot);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5gv5dd26jfuw8li3.liftN([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return liftN([
</ins><span class="cx" style="display: block; padding: 0 10px">       startCell,
</span><span class="cx" style="display: block; padding: 0 10px">       endCell
</span><span class="cx" style="display: block; padding: 0 10px">     ], tableCellRng).filter(isExpandedCellRng).filter(function (cellRng) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12437,12 +13142,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getCellIndex = function (cells, cell) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.findIndex(cells, function (x) {
-      return $_4fb96d1djfuw8lbl.eq(x, cell);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return findIndex(cells, function (x) {
+      return $_5raon11ejjgwe7o5.eq(x, cell);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getSelectedCells = function (tableSelection) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5gv5dd26jfuw8li3.liftN([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return liftN([
</ins><span class="cx" style="display: block; padding: 0 10px">       getCellIndex(tableSelection.cells(), tableSelection.rng().start()),
</span><span class="cx" style="display: block; padding: 0 10px">       getCellIndex(tableSelection.cells(), tableSelection.rng().end())
</span><span class="cx" style="display: block; padding: 0 10px">     ], function (startIndex, endIndex) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12461,7 +13166,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getActionFromRange = function (root, rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getTableSelectionFromRng(root, rng).bind(getAction);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_71oei73sjfuw8lwd = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cyt1v04djjgwe8ex = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getActionFromRange: getActionFromRange,
</span><span class="cx" style="display: block; padding: 0 10px">     getActionFromCells: getActionFromCells
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12476,15 +13181,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return ranges;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getSelectedNodes = function (ranges) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.bind(ranges, function (range) {
-      var node = getSelectedNode(range);
-      return node ? [$_c9h6qlzjfuw8l98.fromDom(node)] : [];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bind(ranges, function (range$$1) {
+      var node = getSelectedNode(range$$1);
+      return node ? [Element$$1.fromDom(node)] : [];
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasMultipleRanges = function (selection) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getRanges(selection).length > 1;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_asx40h3ujfuw8lx3 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2y1a8s4fjjgwe8fm = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getRanges: getRanges,
</span><span class="cx" style="display: block; padding: 0 10px">     getSelectedNodes: getSelectedNodes,
</span><span class="cx" style="display: block; padding: 0 10px">     hasMultipleRanges: hasMultipleRanges
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12491,10 +13196,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getCellsFromRanges = function (ranges) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.filter($_asx40h3ujfuw8lx3.getSelectedNodes(ranges), isTableCell);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return filter($_2y1a8s4fjjgwe8fm.getSelectedNodes(ranges), isTableCell);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getCellsFromElement = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var selectedCells = $_ryxde2gjfuw8lkk.descendants(elm, 'td[data-mce-selected],th[data-mce-selected]');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var selectedCells = $_d3ydn427jjgwe7uf.descendants(elm, 'td[data-mce-selected],th[data-mce-selected]');
</ins><span class="cx" style="display: block; padding: 0 10px">     return selectedCells;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getCellsFromElementOrRanges = function (ranges, element) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12503,9 +13208,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return selectedCells.length > 0 ? selectedCells : rangeCells;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getCellsFromEditor = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return getCellsFromElementOrRanges($_asx40h3ujfuw8lx3.getRanges(editor.selection.getSel()), $_c9h6qlzjfuw8l98.fromDom(editor.getBody()));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return getCellsFromElementOrRanges($_2y1a8s4fjjgwe8fm.getRanges(editor.selection.getSel()), Element$$1.fromDom(editor.getBody()));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6icyb83tjfuw8lwy = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_97ifsc4ejjgwe8fg = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getCellsFromRanges: getCellsFromRanges,
</span><span class="cx" style="display: block; padding: 0 10px">     getCellsFromElement: getCellsFromElement,
</span><span class="cx" style="display: block; padding: 0 10px">     getCellsFromElementOrRanges: getCellsFromElementOrRanges,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12513,17 +13218,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var emptyCells = function (editor, cells) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.each(cells, $_5udnjn2tjfuw8lm4.fillWithPaddingBr);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each(cells, $_fhp7pa3ljjgwe84n.fillWithPaddingBr);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.selection.setCursorLocation(cells[0].dom(), 0);
</span><span class="cx" style="display: block; padding: 0 10px">     return true;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteTableElement = function (editor, table) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_ge41qn3jjfuw8lr1.deleteElement(editor, false, table);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_eg6ib44jjgwe8ck.deleteElement(editor, false, table);
</ins><span class="cx" style="display: block; padding: 0 10px">     return true;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteCellRange = function (editor, rootElm, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_71oei73sjfuw8lwd.getActionFromRange(rootElm, rng).map(function (action) {
-      return action.fold($_68e81l6jfuw8kyc.curry(deleteTableElement, editor), $_68e81l6jfuw8kyc.curry(emptyCells, editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_cyt1v04djjgwe8ex.getActionFromRange(rootElm, rng).map(function (action) {
+      return action.fold(curry(deleteTableElement, editor), curry(emptyCells, editor));
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteCaptionRange = function (editor, caption) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12537,35 +13242,35 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteRange$1 = function (editor, startElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var rootNode = $_c9h6qlzjfuw8l98.fromDom(editor.getBody());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var rootNode = Element$$1.fromDom(editor.getBody());
</ins><span class="cx" style="display: block; padding: 0 10px">     var rng = editor.selection.getRng();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var selectedCells = $_6icyb83tjfuw8lwy.getCellsFromEditor(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var selectedCells = $_97ifsc4ejjgwe8fg.getCellsFromEditor(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     return selectedCells.length !== 0 ? emptyCells(editor, selectedCells) : deleteTableRange(editor, rootNode, rng, startElm);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getParentCell = function (rootElm, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.find($_3t5pi43ejfuw8lq0.parentsAndSelf(elm, rootElm), isTableCell);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return find($_cvft7x3zjjgwe8bh.parentsAndSelf(elm, rootElm), isTableCell);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getParentCaption = function (rootElm, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.find($_3t5pi43ejfuw8lq0.parentsAndSelf(elm, rootElm), function (elm) {
-      return $_eaw33d10jfuw8l9f.name(elm) === 'caption';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return find($_cvft7x3zjjgwe8bh.parentsAndSelf(elm, rootElm), function (elm) {
+      return $_fxxo5411jjgwe7lq.name(elm) === 'caption';
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteBetweenCells = function (editor, rootElm, forward, fromCell, from) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.navigate(forward, editor.getBody(), from).bind(function (to) {
-      return getParentCell(rootElm, $_c9h6qlzjfuw8l98.fromDom(to.getNode())).map(function (toCell) {
-        return $_4fb96d1djfuw8lbl.eq(toCell, fromCell) === false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.navigate(forward, editor.getBody(), from).bind(function (to) {
+      return getParentCell(rootElm, Element$$1.fromDom(to.getNode())).map(function (toCell) {
+        return $_5raon11ejjgwe7o5.eq(toCell, fromCell) === false;
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var emptyElement = function (editor, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_5udnjn2tjfuw8lm4.fillWithPaddingBr(elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_fhp7pa3ljjgwe84n.fillWithPaddingBr(elm);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.selection.setCursorLocation(elm.dom(), 0);
</span><span class="cx" style="display: block; padding: 0 10px">     return Option.some(true);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isDeleteOfLastCharPos = function (fromCaption, forward, from, to) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.firstPositionIn(fromCaption.dom()).bind(function (first) {
-      return $_25kl2c2cjfuw8ljh.lastPositionIn(fromCaption.dom()).map(function (last) {
-        return forward ? from.isEqual(first) && to.isEqual(last) : from.isEqual(last) && to.isEqual(first);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.firstPositionIn(fromCaption.dom()).bind(function (first) {
+      return $_8q1ver2yjjgwe7z3.lastPositionIn(fromCaption.dom()).map(function (last$$1) {
+        return forward ? from.isEqual(first) && to.isEqual(last$$1) : from.isEqual(last$$1) && to.isEqual(first);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(true);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12573,12 +13278,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return emptyElement(editor, elm);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var validateCaretCaption = function (rootElm, fromCaption, to) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return getParentCaption(rootElm, $_c9h6qlzjfuw8l98.fromDom(to.getNode())).map(function (toCaption) {
-      return $_4fb96d1djfuw8lbl.eq(toCaption, fromCaption) === false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return getParentCaption(rootElm, Element$$1.fromDom(to.getNode())).map(function (toCaption) {
+      return $_5raon11ejjgwe7o5.eq(toCaption, fromCaption) === false;
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteCaretInsideCaption = function (editor, rootElm, forward, fromCaption, from) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.navigate(forward, editor.getBody(), from).bind(function (to) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.navigate(forward, editor.getBody(), from).bind(function (to) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return isDeleteOfLastCharPos(fromCaption, forward, from, to) ? emptyCaretCaption(editor, fromCaption) : validateCaretCaption(rootElm, fromCaption, to);
</span><span class="cx" style="display: block; padding: 0 10px">     }).or(Option.some(true));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12585,15 +13290,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteCaretCells = function (editor, forward, rootElm, startElm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());
</span><span class="cx" style="display: block; padding: 0 10px">     return getParentCell(rootElm, startElm).bind(function (fromCell) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_9f7o8q3ajfuw8lp7.isEmpty(fromCell) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_99xuux3wjjgwe8as.isEmpty(fromCell) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteCaretCaption = function (editor, forward, rootElm, fromCaption) {
</span><span class="cx" style="display: block; padding: 0 10px">     var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9f7o8q3ajfuw8lp7.isEmpty(fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_99xuux3wjjgwe8as.isEmpty(fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteCaret = function (editor, forward, startElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var rootElm = $_c9h6qlzjfuw8l98.fromDom(editor.getBody());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var rootElm = Element$$1.fromDom(editor.getBody());
</ins><span class="cx" style="display: block; padding: 0 10px">     return getParentCaption(rootElm, startElm).fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return deleteCaretCells(editor, forward, rootElm, startElm);
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (fromCaption) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12601,47 +13306,47 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDelete$4 = function (editor, forward) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var startElm = $_c9h6qlzjfuw8l98.fromDom(editor.selection.getStart(true));
-    var cells = $_6icyb83tjfuw8lwy.getCellsFromEditor(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var startElm = Element$$1.fromDom(editor.selection.getStart(true));
+    var cells = $_97ifsc4ejjgwe8fg.getCellsFromEditor(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     return editor.selection.isCollapsed() && cells.length === 0 ? deleteCaret(editor, forward, startElm) : deleteRange$1(editor, startElm);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dt1e6j3rjfuw8lw0 = { backspaceDelete: backspaceDelete$4 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_f2hioa4cjjgwe8ee = { backspaceDelete: backspaceDelete$4 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var nativeCommand = function (editor, command) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.getDoc().execCommand(command, false, null);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteCommand = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_a7skkj3gjfuw8lqf.backspaceDelete(editor, false)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_cc2jel41jjgwe8bx.backspaceDelete(editor, false)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_qeu9d3kjfuw8luq.backspaceDelete(editor, false)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_fwrmt445jjgwe8d5.backspaceDelete(editor, false)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_cwwff132jfuw8ln7.backspaceDelete(editor, false)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_6q4s8w3qjjgwe85j.backspaceDelete(editor, false)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_dt1e6j3rjfuw8lw0.backspaceDelete(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_f2hioa4cjjgwe8ee.backspaceDelete(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_f34seo3fjfuw8lq6.backspaceDelete(editor, false)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_8u9liw40jjgwe8bn.backspaceDelete(editor, false)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       nativeCommand(editor, 'Delete');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_43wr4w34jfuw8lnu.paddEmptyBody(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_3vi93f3sjjgwe861.paddEmptyBody(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var forwardDeleteCommand = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_a7skkj3gjfuw8lqf.backspaceDelete(editor, true)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_cc2jel41jjgwe8bx.backspaceDelete(editor, true)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_qeu9d3kjfuw8luq.backspaceDelete(editor, true)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_fwrmt445jjgwe8d5.backspaceDelete(editor, true)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_cwwff132jfuw8ln7.backspaceDelete(editor, true)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_6q4s8w3qjjgwe85j.backspaceDelete(editor, true)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_dt1e6j3rjfuw8lw0.backspaceDelete(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_f2hioa4cjjgwe8ee.backspaceDelete(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_f34seo3fjfuw8lq6.backspaceDelete(editor, true)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_8u9liw40jjgwe8bn.backspaceDelete(editor, true)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       nativeCommand(editor, 'ForwardDelete');
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_93erqy31jfuw8ln6 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_36hh3g3pjjgwe85i = {
</ins><span class="cx" style="display: block; padding: 0 10px">     deleteCommand: deleteCommand,
</span><span class="cx" style="display: block; padding: 0 10px">     forwardDeleteCommand: forwardDeleteCommand
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12648,12 +13353,12 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getSpecifiedFontProp = function (propName, rootElm, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var getProperty = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_cworr512jfuw8l9j.getRaw(elm, propName);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_e0ei5w13jjgwe7m4.getRaw(elm, propName);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var isRoot = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_4fb96d1djfuw8lbl.eq($_c9h6qlzjfuw8l98.fromDom(rootElm), elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_5raon11ejjgwe7o5.eq(Element$$1.fromDom(rootElm), elm);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_chabeg35jfuw8lo3.closest($_c9h6qlzjfuw8l98.fromDom(elm), function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_7kjxyh2ajjgwe7un.closest(Element$$1.fromDom(elm), function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return getProperty(elm).isSome();
</span><span class="cx" style="display: block; padding: 0 10px">     }, isRoot).bind(getProperty);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12675,21 +13380,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getFontProp = function (propName) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (rootElm, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return Option.from(elm).map($_c9h6qlzjfuw8l98.fromDom).filter($_eaw33d10jfuw8l9f.isElement).bind(function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return Option.from(elm).map(Element$$1.fromDom).filter($_fxxo5411jjgwe7lq.isElement).bind(function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return getSpecifiedFontProp(propName, rootElm, element.dom()).or(getComputedFontProp(propName, element.dom()));
</span><span class="cx" style="display: block; padding: 0 10px">       }).getOr('');
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_6b0g9e3wjfuw8lxd = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1jxybs4hjjgwe8fu = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getFontSize: getFontProp('font-size'),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    getFontFamily: $_68e81l6jfuw8kyc.compose(normalizeFontFamily, getFontProp('font-family')),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    getFontFamily: compose(normalizeFontFamily, getFontProp('font-family')),
</ins><span class="cx" style="display: block; padding: 0 10px">     toPt: toPt
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var findFirstCaretElement = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_25kl2c2cjfuw8ljh.firstPositionIn(editor.getBody()).map(function (caret) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_8q1ver2yjjgwe7z3.firstPositionIn(editor.getBody()).map(function (caret) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var container = caret.container();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_ey7ka11qjfuw8ldg.isText(container) ? container.parentNode : container;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_3b9u2y1rjjgwe7qe.isText(container) ? container.parentNode : container;
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isRangeAtStartOfNode = function (rng, root) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12702,14 +13407,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fromFontSizeNumber = function (editor, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var fontSizeNumber = parseInt(value, 10);
-    if (fontSizeNumber >= 1 && fontSizeNumber <= 7) {
-      var fontSizes = $_6msxiw2jjfuw8lkv.getFontStyleValues(editor);
-      var fontClasses = $_6msxiw2jjfuw8lkv.getFontSizeClasses(editor);
-      if (fontClasses) {
-        return fontClasses[fontSizeNumber - 1] || value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (/^[0-9\.]+$/.test(value)) {
+      var fontSizeNumber = parseInt(value, 10);
+      if (fontSizeNumber >= 1 && fontSizeNumber <= 7) {
+        var fontSizes = $_259vs538jjgwe82a.getFontStyleValues(editor);
+        var fontClasses = $_259vs538jjgwe82a.getFontSizeClasses(editor);
+        if (fontClasses) {
+          return fontClasses[fontSizeNumber - 1] || value;
+        } else {
+          return fontSizes[fontSizeNumber - 1] || value;
+        }
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return fontSizes[fontSizeNumber - 1] || value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return value;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return value;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12722,10 +13431,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fontNameQuery = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getCaretElement(editor).fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return findFirstCaretElement(editor).map(function (caretElement) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_6b0g9e3wjfuw8lxd.getFontFamily(editor.getBody(), caretElement);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_1jxybs4hjjgwe8fu.getFontFamily(editor.getBody(), caretElement);
</ins><span class="cx" style="display: block; padding: 0 10px">       }).getOr('');
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (caretElement) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_6b0g9e3wjfuw8lxd.getFontFamily(editor.getBody(), caretElement);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_1jxybs4hjjgwe8fu.getFontFamily(editor.getBody(), caretElement);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fontSizeAction = function (editor, value) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12735,17 +13444,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var fontSizeQuery = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getCaretElement(editor).fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return findFirstCaretElement(editor).map(function (caretElement) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_6b0g9e3wjfuw8lxd.getFontSize(editor.getBody(), caretElement);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_1jxybs4hjjgwe8fu.getFontSize(editor.getBody(), caretElement);
</ins><span class="cx" style="display: block; padding: 0 10px">       }).getOr('');
</span><span class="cx" style="display: block; padding: 0 10px">     }, function (caretElement) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_6b0g9e3wjfuw8lxd.getFontSize(editor.getBody(), caretElement);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_1jxybs4hjjgwe8fu.getFontSize(editor.getBody(), caretElement);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isEq$1 = function (rng1, rng2) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isEq$2 = function (rng1, rng2) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return rng1 && rng2 && (rng1.startContainer === rng2.startContainer && rng1.startOffset === rng2.startOffset) && (rng1.endContainer === rng2.endContainer && rng1.endOffset === rng2.endOffset);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_87lezn3zjfuw8ly9 = { isEq: isEq$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_g1gkxh4kjjgwe8gw = { isEq: isEq$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var findParent = function (node, rootNode, predicate) {
</span><span class="cx" style="display: block; padding: 0 10px">     while (node && node !== rootNode) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12776,7 +13485,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var hasBrBeforeAfter = function (dom, node, left) {
</span><span class="cx" style="display: block; padding: 0 10px">     var walker = new TreeWalker(node, dom.getParent(node.parentNode, dom.isBlock) || dom.getRoot());
</span><span class="cx" style="display: block; padding: 0 10px">     while (node = walker[left ? 'prev' : 'next']()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isBr(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isBr(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12786,7 +13495,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasContentEditableFalseParent = function (body, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     while (node && node !== body) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isContentEditableFalse(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isContentEditableFalse(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       node = node.parentNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12799,7 +13508,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var node;
</span><span class="cx" style="display: block; padding: 0 10px">     var nonEmptyElementsMap = dom.schema.getNonEmptyElements();
</span><span class="cx" style="display: block; padding: 0 10px">     parentBlockContainer = dom.getParent(startNode.parentNode, dom.isBlock) || body;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (left && $_ey7ka11qjfuw8ldg.isBr(startNode) && isAfterNode && dom.isEmpty(parentBlockContainer)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (left && $_3b9u2y1rjjgwe7qe.isBr(startNode) && isAfterNode && dom.isEmpty(parentBlockContainer)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return Option.some(CaretPosition(startNode.parentNode, dom.nodeIndex(startNode)));
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     walker = new TreeWalker(startNode, parentBlockContainer);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12807,7 +13516,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (dom.getContentEditableParent(node) === 'false' || isCeFalseCaretContainer(node, body)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isText(node) && node.nodeValue.length > 0) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isText(node) && node.nodeValue.length > 0) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (hasParentWithName(node, body, 'A') === false) {
</span><span class="cx" style="display: block; padding: 0 10px">           return Option.some(CaretPosition(node, left ? node.nodeValue.length : 0));
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12830,16 +13539,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var directionLeft, isAfterNode, normalized = false;
</span><span class="cx" style="display: block; padding: 0 10px">     container = rng[(start ? 'start' : 'end') + 'Container'];
</span><span class="cx" style="display: block; padding: 0 10px">     offset = rng[(start ? 'start' : 'end') + 'Offset'];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    isAfterNode = $_ey7ka11qjfuw8ldg.isElement(container) && offset === container.childNodes.length;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    isAfterNode = $_3b9u2y1rjjgwe7qe.isElement(container) && offset === container.childNodes.length;
</ins><span class="cx" style="display: block; padding: 0 10px">     nonEmptyElementsMap = dom.schema.getNonEmptyElements();
</span><span class="cx" style="display: block; padding: 0 10px">     directionLeft = start;
</span><span class="cx" style="display: block; padding: 0 10px">     if (isCaretContainer(container)) {
</span><span class="cx" style="display: block; padding: 0 10px">       return Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isElement(container) && offset > container.childNodes.length - 1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isElement(container) && offset > container.childNodes.length - 1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       directionLeft = false;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isDocument(container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isDocument(container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       container = body;
</span><span class="cx" style="display: block; padding: 0 10px">       offset = 0;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12858,7 +13567,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (container.hasChildNodes()) {
</span><span class="cx" style="display: block; padding: 0 10px">         offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1);
</span><span class="cx" style="display: block; padding: 0 10px">         container = container.childNodes[offset];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        offset = $_ey7ka11qjfuw8ldg.isText(container) && isAfterNode ? container.data.length : 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        offset = $_3b9u2y1rjjgwe7qe.isText(container) && isAfterNode ? container.data.length : 0;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!collapsed && container === body.lastChild && isTable$2(container)) {
</span><span class="cx" style="display: block; padding: 0 10px">           return Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12869,11 +13578,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">           node = container;
</span><span class="cx" style="display: block; padding: 0 10px">           walker = new TreeWalker(container, body);
</span><span class="cx" style="display: block; padding: 0 10px">           do {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if ($_ey7ka11qjfuw8ldg.isContentEditableFalse(node) || isCaretContainer(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if ($_3b9u2y1rjjgwe7qe.isContentEditableFalse(node) || isCaretContainer(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">               normalized = false;
</span><span class="cx" style="display: block; padding: 0 10px">               break;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if ($_ey7ka11qjfuw8ldg.isText(node) && node.nodeValue.length > 0) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if ($_3b9u2y1rjjgwe7qe.isText(node) && node.nodeValue.length > 0) {
</ins><span class="cx" style="display: block; padding: 0 10px">               offset = directionLeft ? 0 : node.nodeValue.length;
</span><span class="cx" style="display: block; padding: 0 10px">               container = node;
</span><span class="cx" style="display: block; padding: 0 10px">               normalized = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12893,7 +13602,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (collapsed) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isText(container) && offset === 0) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isText(container) && offset === 0) {
</ins><span class="cx" style="display: block; padding: 0 10px">         findTextNodeRelative(dom, isAfterNode, collapsed, true, container).each(function (pos) {
</span><span class="cx" style="display: block; padding: 0 10px">           container = pos.container();
</span><span class="cx" style="display: block; padding: 0 10px">           offset = pos.offset();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12900,12 +13609,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">           normalized = true;
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isElement(container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isElement(container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         node = container.childNodes[offset];
</span><span class="cx" style="display: block; padding: 0 10px">         if (!node) {
</span><span class="cx" style="display: block; padding: 0 10px">           node = container.childNodes[offset - 1];
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (node && $_ey7ka11qjfuw8ldg.isBr(node) && !isPrevNode(node, 'A') && !hasBrBeforeAfter(dom, node, false) && !hasBrBeforeAfter(dom, node, true)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (node && $_3b9u2y1rjjgwe7qe.isBr(node) && !isPrevNode(node, 'A') && !hasBrBeforeAfter(dom, node, false) && !hasBrBeforeAfter(dom, node, true)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           findTextNodeRelative(dom, isAfterNode, collapsed, true, node).each(function (pos) {
</span><span class="cx" style="display: block; padding: 0 10px">             container = pos.container();
</span><span class="cx" style="display: block; padding: 0 10px">             offset = pos.offset();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12914,7 +13623,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (directionLeft && !collapsed && $_ey7ka11qjfuw8ldg.isText(container) && offset === container.nodeValue.length) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (directionLeft && !collapsed && $_3b9u2y1rjjgwe7qe.isText(container) && offset === container.nodeValue.length) {
</ins><span class="cx" style="display: block; padding: 0 10px">       findTextNodeRelative(dom, isAfterNode, collapsed, false, container).each(function (pos) {
</span><span class="cx" style="display: block; padding: 0 10px">         container = pos.container();
</span><span class="cx" style="display: block; padding: 0 10px">         offset = pos.offset();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12939,9 +13648,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (collapsed) {
</span><span class="cx" style="display: block; padding: 0 10px">       normRng.collapse(true);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_87lezn3zjfuw8ly9.isEq(rng, normRng) ? Option.none() : Option.some(normRng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_g1gkxh4kjjgwe8gw.isEq(rng, normRng) ? Option.none() : Option.some(normRng);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_970szt3yjfuw8ly1 = { normalize: normalize$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_eqgqyj4jjjgwe8gi = { normalize: normalize$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var hasRightSideContent = function (schema, container, parentBlock) {
</span><span class="cx" style="display: block; padding: 0 10px">     var walker = new TreeWalker(container, parentBlock);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12974,7 +13683,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var selection = editor.selection, dom = editor.dom;
</span><span class="cx" style="display: block; padding: 0 10px">     var brElm, extraBr;
</span><span class="cx" style="display: block; padding: 0 10px">     var rng = selection.getRng();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_970szt3yjfuw8ly1.normalize(dom, rng).each(function (normRng) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_eqgqyj4jjjgwe8gi.normalize(dom, rng).each(function (normRng) {
</ins><span class="cx" style="display: block; padding: 0 10px">       rng.setStart(normRng.startContainer, normRng.startOffset);
</span><span class="cx" style="display: block; padding: 0 10px">       rng.setEnd(normRng.endContainer, normRng.endOffset);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13012,29 +13721,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.undoManager.add();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertBrBefore = function (editor, inline) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var br = $_c9h6qlzjfuw8l98.fromTag('br');
-    $_doli6x2kjfuw8lky.before($_c9h6qlzjfuw8l98.fromDom(inline), br);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var br = Element$$1.fromTag('br');
+    $_ewo3u51yjjgwe7su.before(Element$$1.fromDom(inline), br);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.undoManager.add();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertBrAfter = function (editor, inline) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (!hasBrAfter(editor.getBody(), inline)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_doli6x2kjfuw8lky.after($_c9h6qlzjfuw8l98.fromDom(inline), $_c9h6qlzjfuw8l98.fromTag('br'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_ewo3u51yjjgwe7su.after(Element$$1.fromDom(inline), Element$$1.fromTag('br'));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var br = $_c9h6qlzjfuw8l98.fromTag('br');
-    $_doli6x2kjfuw8lky.after($_c9h6qlzjfuw8l98.fromDom(inline), br);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var br = Element$$1.fromTag('br');
+    $_ewo3u51yjjgwe7su.after(Element$$1.fromDom(inline), br);
</ins><span class="cx" style="display: block; padding: 0 10px">     scrollToBr(editor.dom, editor.selection, br.dom());
</span><span class="cx" style="display: block; padding: 0 10px">     moveSelectionToBr(editor.dom, editor.selection, br.dom(), false);
</span><span class="cx" style="display: block; padding: 0 10px">     editor.undoManager.add();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isBeforeBr = function (pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isBr(pos.getNode());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isBr(pos.getNode());
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasBrAfter = function (rootNode, startNode) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (isBeforeBr(CaretPosition$1.after(startNode))) {
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_25kl2c2cjfuw8ljh.nextPosition(rootNode, CaretPosition$1.after(startNode)).map(function (pos) {
-        return $_ey7ka11qjfuw8ldg.isBr(pos.getNode());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_8q1ver2yjjgwe7z3.nextPosition(rootNode, CaretPosition$1.after(startNode)).map(function (pos) {
+        return $_3b9u2y1rjjgwe7qe.isBr(pos.getNode());
</ins><span class="cx" style="display: block; padding: 0 10px">       }).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13042,27 +13751,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return elm && elm.nodeName === 'A' && 'href' in elm;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isInsideAnchor = function (location) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return location.fold($_68e81l6jfuw8kyc.constant(false), isAnchorLink, isAnchorLink, $_68e81l6jfuw8kyc.constant(false));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return location.fold(constant(false), isAnchorLink, isAnchorLink, constant(false));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var readInlineAnchorLocation = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isInlineTarget = $_68e81l6jfuw8kyc.curry($_exgtt937jfuw8loj.isInlineTarget, editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isInlineTarget = curry($_av9utf3tjjgwe86b.isInlineTarget, editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     var position = CaretPosition$1.fromRangeStart(editor.selection.getRng());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_80edfj3njfuw8lvb.readLocation(isInlineTarget, editor.getBody(), position).filter(isInsideAnchor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_g20q2x48jjgwe8dp.readLocation(isInlineTarget, editor.getBody(), position).filter(isInsideAnchor);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertBrOutsideAnchor = function (editor, location) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    location.fold($_68e81l6jfuw8kyc.noop, $_68e81l6jfuw8kyc.curry(insertBrBefore, editor), $_68e81l6jfuw8kyc.curry(insertBrAfter, editor), $_68e81l6jfuw8kyc.noop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    location.fold(noop, curry(insertBrBefore, editor), curry(insertBrAfter, editor), noop);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insert = function (editor, evt) {
</span><span class="cx" style="display: block; padding: 0 10px">     var anchorLocation = readInlineAnchorLocation(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     if (anchorLocation.isSome()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      anchorLocation.each($_68e81l6jfuw8kyc.curry(insertBrOutsideAnchor, editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      anchorLocation.each(curry(insertBrOutsideAnchor, editor));
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       insertBrAtCaret(editor, evt);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_c7z3y13xjfuw8lxq = { insert: insert };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4o98q44ijjgwe8g6 = { insert: insert };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var adt = $_5ac1li3ijfuw8lqv.generate([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var adt = Adt.generate([
</ins><span class="cx" style="display: block; padding: 0 10px">     { 'before': ['element'] },
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">       'on': [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13076,9 +13785,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return subject.fold(onBefore, onOn, onAfter);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getStart = function (situ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return situ.fold($_68e81l6jfuw8kyc.identity, $_68e81l6jfuw8kyc.identity, $_68e81l6jfuw8kyc.identity);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return situ.fold(identity, identity, identity);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7hz43j42jfuw8lz1 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_budkgr4njjgwe8hk = {
</ins><span class="cx" style="display: block; padding: 0 10px">     before: adt.before,
</span><span class="cx" style="display: block; padding: 0 10px">     on: adt.on,
</span><span class="cx" style="display: block; padding: 0 10px">     after: adt.after,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13086,7 +13795,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     getStart: getStart
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var type$1 = $_5ac1li3ijfuw8lqv.generate([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var type$1 = Adt.generate([
</ins><span class="cx" style="display: block; padding: 0 10px">     { domRange: ['rng'] },
</span><span class="cx" style="display: block; padding: 0 10px">     {
</span><span class="cx" style="display: block; padding: 0 10px">       relative: [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13103,7 +13812,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   ]);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var range$1 = $_1a7eqh18jfuw8lb9.immutable('start', 'soffset', 'finish', 'foffset');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var range$1 = Immutable('start', 'soffset', 'finish', 'foffset');
</ins><span class="cx" style="display: block; padding: 0 10px">   var exactFromRange = function (simRange) {
</span><span class="cx" style="display: block; padding: 0 10px">     return type$1.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13110,10 +13819,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getStart$1 = function (selection) {
</span><span class="cx" style="display: block; padding: 0 10px">     return selection.match({
</span><span class="cx" style="display: block; padding: 0 10px">       domRange: function (rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_c9h6qlzjfuw8l98.fromDom(rng.startContainer);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return Element$$1.fromDom(rng.startContainer);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       relative: function (startSitu, finishSitu) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_7hz43j42jfuw8lz1.getStart(startSitu);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_budkgr4njjgwe8hk.getStart(startSitu);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       exact: function (start, soffset, finish, foffset) {
</span><span class="cx" style="display: block; padding: 0 10px">         return start;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13122,9 +13831,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getWin = function (selection) {
</span><span class="cx" style="display: block; padding: 0 10px">     var start = getStart$1(selection);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_2j4g5u17jfuw8lav.defaultView(start);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_d3rmjp18jjgwe7nc.defaultView(start);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8xsorm41jfuw8lyv = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2mbfo14mjjgwe8he = {
</ins><span class="cx" style="display: block; padding: 0 10px">     domRange: type$1.domRange,
</span><span class="cx" style="display: block; padding: 0 10px">     relative: type$1.relative,
</span><span class="cx" style="display: block; padding: 0 10px">     exact: type$1.exact,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13133,9 +13842,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     getWin: getWin
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var browser$3 = $_f1lbzgnjfuw8l7o.detect().browser;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var browser$3 = $_7vg267ojjgwe7k0.detect().browser;
</ins><span class="cx" style="display: block; padding: 0 10px">   var clamp = function (offset, element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var max = $_eaw33d10jfuw8l9f.isText(element) ? $_buobzn2wjfuw8lmp.get(element).length : $_2j4g5u17jfuw8lav.children(element).length + 1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var max = $_fxxo5411jjgwe7lq.isText(element) ? $_8mxs233ejjgwe82u.get(element).length : $_d3rmjp18jjgwe7nc.children(element).length + 1;
</ins><span class="cx" style="display: block; padding: 0 10px">     if (offset > max) {
</span><span class="cx" style="display: block; padding: 0 10px">       return max;
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (offset < 0) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13144,10 +13853,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return offset;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var normalizeRng = function (rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_8xsorm41jfuw8lyv.range(rng.start(), clamp(rng.soffset(), rng.start()), rng.finish(), clamp(rng.foffset(), rng.finish()));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_2mbfo14mjjgwe8he.range(rng.start(), clamp(rng.soffset(), rng.start()), rng.finish(), clamp(rng.foffset(), rng.finish()));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isOrContains = function (root, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_4fb96d1djfuw8lbl.contains(root, elm) || $_4fb96d1djfuw8lbl.eq(root, elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_5raon11ejjgwe7o5.contains(root, elm) || $_5raon11ejjgwe7o5.eq(root, elm);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isRngInRoot = function (root) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (rng) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13158,7 +13867,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.inline === true || browser$3.isIE();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var nativeRangeToSelectionRange = function (r) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_8xsorm41jfuw8lyv.range($_c9h6qlzjfuw8l98.fromDom(r.startContainer), r.startOffset, $_c9h6qlzjfuw8l98.fromDom(r.endContainer), r.endOffset);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_2mbfo14mjjgwe8he.range(Element$$1.fromDom(r.startContainer), r.startOffset, Element$$1.fromDom(r.endContainer), r.endOffset);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var readRange = function (win) {
</span><span class="cx" style="display: block; padding: 0 10px">     var selection = win.getSelection();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13166,7 +13875,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return rng.map(nativeRangeToSelectionRange);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getBookmark$2 = function (root) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var win = $_2j4g5u17jfuw8lav.defaultView(root);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var win = $_d3rmjp18jjgwe7nc.defaultView(root);
</ins><span class="cx" style="display: block; padding: 0 10px">     return readRange(win.dom()).filter(isRngInRoot(root));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var validate = function (root, bookmark) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13183,11 +13892,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var store = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var newBookmark = shouldStore(editor) ? getBookmark$2($_c9h6qlzjfuw8l98.fromDom(editor.getBody())) : Option.none();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var newBookmark = shouldStore(editor) ? getBookmark$2(Element$$1.fromDom(editor.getBody())) : Option.none();
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var storeNative = function (editor, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var root = $_c9h6qlzjfuw8l98.fromDom(editor.getBody());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var root = Element$$1.fromDom(editor.getBody());
</ins><span class="cx" style="display: block; padding: 0 10px">     var range = shouldStore(editor) ? Option.from(rng) : Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">     var newBookmark = range.map(nativeRangeToSelectionRange).filter(isRngInRoot(root));
</span><span class="cx" style="display: block; padding: 0 10px">     editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13194,7 +13903,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getRng = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var bookmark = editor.bookmark ? editor.bookmark : Option.none();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return bookmark.bind($_68e81l6jfuw8kyc.curry(validate, $_c9h6qlzjfuw8l98.fromDom(editor.getBody()))).bind(bookmarkToNativeRng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bookmark.bind(curry(validate, Element$$1.fromDom(editor.getBody()))).bind(bookmarkToNativeRng);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var restore = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     getRng(editor).each(function (rng) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13201,7 +13910,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.selection.setRng(rng);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2a7vvg40jfuw8lyb = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4wtqbt4ljjgwe8gy = {
</ins><span class="cx" style="display: block; padding: 0 10px">     store: store,
</span><span class="cx" style="display: block; padding: 0 10px">     storeNative: storeNative,
</span><span class="cx" style="display: block; padding: 0 10px">     readRange: readRange,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13237,16 +13946,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!settings.forced_root_block && !dom.getParent(selection.getNode(), dom.isBlock)) {
</span><span class="cx" style="display: block; padding: 0 10px">         formatter.apply('div');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.each(selection.getSelectedBlocks(), function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(selection.getSelectedBlocks(), function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return indentElement(dom, command, useMargin, indentValue, indentUnit, element);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$9 = $_52qop8kjfuw8l6v.each;
-  var extend$2 = $_52qop8kjfuw8l6v.extend;
-  var map$2 = $_52qop8kjfuw8l6v.map;
-  var inArray$2 = $_52qop8kjfuw8l6v.inArray;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$10 = $_6cwiepljjgwe7j4.each;
+  var extend$2 = $_6cwiepljjgwe7j4.extend;
+  var map$3 = $_6cwiepljjgwe7j4.map;
+  var inArray$2 = $_6cwiepljjgwe7j4.inArray;
</ins><span class="cx" style="display: block; padding: 0 10px">   function EditorCommands (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var dom, selection, formatter;
</span><span class="cx" style="display: block; padding: 0 10px">     var commands = {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13269,7 +13978,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(command) && (!args || !args.skip_focus)) {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.focus();
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_2a7vvg40jfuw8lyb.restore(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_4wtqbt4ljjgwe8gy.restore(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       args = editor.fire('BeforeExecCommand', {
</span><span class="cx" style="display: block; padding: 0 10px">         command: command,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13289,7 +13998,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$9(editor.plugins, function (p) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$10(editor.plugins, function (p) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (p.execCommand && p.execCommand(command, ui, value)) {
</span><span class="cx" style="display: block; padding: 0 10px">           editor.fire('ExecCommand', {
</span><span class="cx" style="display: block; padding: 0 10px">             command: command,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13356,8 +14065,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var addCommands = function (commandList, type) {
</span><span class="cx" style="display: block; padding: 0 10px">       type = type || 'exec';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$9(commandList, function (callback, command) {
-        each$9(command.toLowerCase().split(','), function (command) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$10(commandList, function (callback, command) {
+        each$10(command.toLowerCase().split(','), function (command) {
</ins><span class="cx" style="display: block; padding: 0 10px">           commands[type][command] = callback;
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13447,7 +14156,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (failed || !doc.queryCommandSupported(command)) {
</span><span class="cx" style="display: block; padding: 0 10px">           var msg = editor.translate('Your browser doesn\'t support direct access to the clipboard. ' + 'Please use the Ctrl+X/C/V keyboard shortcuts instead.');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ($_9fhi43ajfuw8l13.mac) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ($_bcvfv9ajjgwe79v.mac) {
</ins><span class="cx" style="display: block; padding: 0 10px">             msg = msg.replace(/Ctrl\+/g, '\u2318+');
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           editor.notificationManager.open({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13471,7 +14180,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (align === 'full') {
</span><span class="cx" style="display: block; padding: 0 10px">           align = 'justify';
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each$9('left,center,right,justify'.split(','), function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each$10('left,center,right,justify'.split(','), function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (align !== name) {
</span><span class="cx" style="display: block; padding: 0 10px">             formatter.remove('align' + name);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13540,7 +14249,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         selection.select(value);
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       'mceInsertContent': function (command, ui, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_c8z6p81wjfuw8lg5.insertAtCaret(editor, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_7w0ed33ijjgwe841.insertAtCaret(editor, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       'mceInsertRawHTML': function (command, ui, value) {
</span><span class="cx" style="display: block; padding: 0 10px">         var content = editor.getContent();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13585,7 +14294,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       'selectAll': function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var editingHost = dom.getParent(selection.getStart(), $_ey7ka11qjfuw8ldg.isContentEditableTrue);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var editingHost = dom.getParent(selection.getStart(), $_3b9u2y1rjjgwe7qe.isContentEditableTrue);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (editingHost) {
</span><span class="cx" style="display: block; padding: 0 10px">           var rng = dom.createRng();
</span><span class="cx" style="display: block; padding: 0 10px">           rng.selectNodeContents(editingHost);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13593,28 +14302,33 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       'delete': function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_93erqy31jfuw8ln6.deleteCommand(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_36hh3g3pjjgwe85i.deleteCommand(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       'forwardDelete': function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_93erqy31jfuw8ln6.forwardDeleteCommand(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_36hh3g3pjjgwe85i.forwardDeleteCommand(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       'mceNewDocument': function () {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.setContent('');
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       'InsertLineBreak': function (command, ui, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_c7z3y13xjfuw8lxq.insert(editor, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_4o98q44ijjgwe8g6.insert(editor, value);
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    addCommands({
-      'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull': function (command) {
-        var name = 'align' + command.substring(7);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var alignStates = function (name) {
+      return function () {
</ins><span class="cx" style="display: block; padding: 0 10px">         var nodes = selection.isCollapsed() ? [dom.getParent(selection.getNode(), dom.isBlock)] : selection.getSelectedBlocks();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var matches = map$2(nodes, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var matches = map$3(nodes, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return !!formatter.matchNode(node, name);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         return inArray$2(matches, true) !== -1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      },
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      };
+    };
+    addCommands({
+      'JustifyLeft': alignStates('alignleft'),
+      'JustifyCenter': alignStates('aligncenter'),
+      'JustifyRight': alignStates('alignright'),
+      'JustifyFull': alignStates('alignjustify'),
</ins><span class="cx" style="display: block; padding: 0 10px">       'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) {
</span><span class="cx" style="display: block; padding: 0 10px">         return isFormatMatch(command);
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13654,7 +14368,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }, this);
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var nativeEvents = $_52qop8kjfuw8l6v.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend', ' ');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var nativeEvents = $_6cwiepljjgwe7j4.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend', ' ');
</ins><span class="cx" style="display: block; padding: 0 10px">   var Dispatcher = function (settings) {
</span><span class="cx" style="display: block; padding: 0 10px">     var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">     var scope, bindings = {}, toggleEvent;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13719,7 +14433,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (callback) {
</span><span class="cx" style="display: block; padding: 0 10px">         callback = { func: callback };
</span><span class="cx" style="display: block; padding: 0 10px">         if (extra) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_52qop8kjfuw8l6v.extend(callback, extra);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_6cwiepljjgwe7j4.extend(callback, extra);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         names = name.toLowerCase().split(' ');
</span><span class="cx" style="display: block; padding: 0 10px">         i = names.length;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13810,7 +14524,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return obj._eventDispatcher;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_17qpde45jfuw8lze = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5fwo104qjjgwe8hz = {
</ins><span class="cx" style="display: block; padding: 0 10px">     fire: function (name, args, bubble) {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">       if (self.removed && name !== 'remove') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13818,10 +14532,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       args = getEventDispatcher(self).fire(name, args, bubble);
</span><span class="cx" style="display: block; padding: 0 10px">       if (bubble !== false && self.parent) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var parent_1 = self.parent();
-        while (parent_1 && !args.isPropagationStopped()) {
-          parent_1.fire(name, args, false);
-          parent_1 = parent_1.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var parent = self.parent();
+        while (parent && !args.isPropagationStopped()) {
+          parent.fire(name, args, false);
+          parent = parent.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return args;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13840,6 +14554,90 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var firePreProcess = function (editor, args) {
+    return editor.fire('PreProcess', args);
+  };
+  var firePostProcess = function (editor, args) {
+    return editor.fire('PostProcess', args);
+  };
+  var fireRemove = function (editor) {
+    return editor.fire('remove');
+  };
+  var fireSwitchMode = function (editor, mode) {
+    return editor.fire('SwitchMode', { mode: mode });
+  };
+  var fireObjectResizeStart = function (editor, target, width, height) {
+    editor.fire('ObjectResizeStart', {
+      target: target,
+      width: width,
+      height: height
+    });
+  };
+  var fireObjectResized = function (editor, target, width, height) {
+    editor.fire('ObjectResized', {
+      target: target,
+      width: width,
+      height: height
+    });
+  };
+  var $_b2ca654tjjgwe8ic = {
+    firePreProcess: firePreProcess,
+    firePostProcess: firePostProcess,
+    fireRemove: fireRemove,
+    fireSwitchMode: fireSwitchMode,
+    fireObjectResizeStart: fireObjectResizeStart,
+    fireObjectResized: fireObjectResized
+  };
+
+  var setEditorCommandState = function (editor, cmd, state) {
+    try {
+      editor.getDoc().execCommand(cmd, false, state);
+    } catch (ex) {
+    }
+  };
+  var toggleClass = function (elm, cls, state) {
+    if ($_9lrjdk23jjgwe7u2.has(elm, cls) && state === false) {
+      $_9lrjdk23jjgwe7u2.remove(elm, cls);
+    } else if (state) {
+      $_9lrjdk23jjgwe7u2.add(elm, cls);
+    }
+  };
+  var toggleReadOnly = function (editor, state) {
+    toggleClass(Element$$1.fromDom(editor.getBody()), 'mce-content-readonly', state);
+    if (state) {
+      editor.selection.controlSelection.hideResizeRect();
+      editor.readonly = true;
+      editor.getBody().contentEditable = 'false';
+    } else {
+      editor.readonly = false;
+      editor.getBody().contentEditable = 'true';
+      setEditorCommandState(editor, 'StyleWithCSS', false);
+      setEditorCommandState(editor, 'enableInlineTableEditing', false);
+      setEditorCommandState(editor, 'enableObjectResizing', false);
+      editor.focus();
+      editor.nodeChanged();
+    }
+  };
+  var setMode = function (editor, mode) {
+    if (mode === getMode(editor)) {
+      return;
+    }
+    if (editor.initialized) {
+      toggleReadOnly(editor, mode === 'readonly');
+    } else {
+      editor.on('init', function () {
+        toggleReadOnly(editor, mode === 'readonly');
+      });
+    }
+    $_b2ca654tjjgwe8ic.fireSwitchMode(editor, mode);
+  };
+  var getMode = function (editor) {
+    return editor.readonly ? 'readonly' : 'design';
+  };
+  var isReadOnly = function (editor) {
+    return editor.readonly === true;
+  };
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var DOM$1 = DOMUtils$1.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var customEventRootDelegates;
</span><span class="cx" style="display: block; padding: 0 10px">   var getEventTarget = function (editor, eventName) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13857,11 +14655,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.getBody();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isListening = function (editor) {
+    return !editor.hidden && !editor.readonly;
+  };
+  var fireEvent = function (editor, eventName, e) {
+    if (isListening(editor)) {
+      editor.fire(eventName, e);
+    } else if (isReadOnly(editor)) {
+      e.preventDefault();
+    }
+  };
</ins><span class="cx" style="display: block; padding: 0 10px">   var bindEventDelegate = function (editor, eventName) {
</span><span class="cx" style="display: block; padding: 0 10px">     var eventRootElm, delegate;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isListening = function (editor) {
-      return !editor.hidden && !editor.readonly;
-    };
</del><span class="cx" style="display: block; padding: 0 10px">     if (!editor.delegates) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.delegates = {};
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13894,9 +14699,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><span class="cx" style="display: block; padding: 0 10px">           var body = editors[i].getBody();
</span><span class="cx" style="display: block; padding: 0 10px">           if (body === target || DOM$1.isChildOf(target, body)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if (isListening(editors[i])) {
-              editors[i].fire(eventName, e);
-            }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            fireEvent(editors[i], eventName, e);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13904,9 +14707,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       DOM$1.bind(eventRootElm, eventName, delegate);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       delegate = function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (isListening(editor)) {
-          editor.fire(eventName, e);
-        }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        fireEvent(editor, eventName, e);
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       DOM$1.bind(eventRootElm, eventName, delegate);
</span><span class="cx" style="display: block; padding: 0 10px">       editor.delegates[eventName] = delegate;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13915,7 +14716,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var EditorObservable = {
</span><span class="cx" style="display: block; padding: 0 10px">     bindPendingEventDelegates: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_52qop8kjfuw8l6v.each(self._pendingNativeEvents, function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6cwiepljjgwe7j4.each(self._pendingNativeEvents, function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">         bindEventDelegate(self, name);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13961,74 +14762,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  EditorObservable = $_52qop8kjfuw8l6v.extend({}, $_17qpde45jfuw8lze, EditorObservable);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  EditorObservable = $_6cwiepljjgwe7j4.extend({}, $_5fwo104qjjgwe8hz, EditorObservable);
</ins><span class="cx" style="display: block; padding: 0 10px">   var EditorObservable$1 = EditorObservable;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setEditorCommandState = function (editor, cmd, state) {
-    try {
-      editor.getDoc().execCommand(cmd, false, state);
-    } catch (ex) {
-    }
-  };
-  var clickBlocker = function (editor) {
-    var target, handler;
-    target = editor.getBody();
-    handler = function (e) {
-      if (editor.dom.getParents(e.target, 'a').length > 0) {
-        e.preventDefault();
-      }
-    };
-    editor.dom.bind(target, 'click', handler);
-    return {
-      unbind: function () {
-        editor.dom.unbind(target, 'click', handler);
-      }
-    };
-  };
-  var toggleReadOnly = function (editor, state) {
-    if (editor._clickBlocker) {
-      editor._clickBlocker.unbind();
-      editor._clickBlocker = null;
-    }
-    if (state) {
-      editor._clickBlocker = clickBlocker(editor);
-      editor.selection.controlSelection.hideResizeRect();
-      editor.readonly = true;
-      editor.getBody().contentEditable = false;
-    } else {
-      editor.readonly = false;
-      editor.getBody().contentEditable = true;
-      setEditorCommandState(editor, 'StyleWithCSS', false);
-      setEditorCommandState(editor, 'enableInlineTableEditing', false);
-      setEditorCommandState(editor, 'enableObjectResizing', false);
-      editor.focus();
-      editor.nodeChanged();
-    }
-  };
-  var setMode = function (editor, mode) {
-    var currentMode = editor.readonly ? 'readonly' : 'design';
-    if (mode === currentMode) {
-      return;
-    }
-    if (editor.initialized) {
-      toggleReadOnly(editor, mode === 'readonly');
-    } else {
-      editor.on('init', function () {
-        toggleReadOnly(editor, mode === 'readonly');
-      });
-    }
-    editor.fire('SwitchMode', { mode: mode });
-  };
-  var $_886hp247jfuw8lzl = { setMode: setMode };
-
-  var each$10 = $_52qop8kjfuw8l6v.each;
-  var explode$2 = $_52qop8kjfuw8l6v.explode;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$11 = $_6cwiepljjgwe7j4.each;
+  var explode$2 = $_6cwiepljjgwe7j4.explode;
</ins><span class="cx" style="display: block; padding: 0 10px">   var keyCodeLookup = {
</span><span class="cx" style="display: block; padding: 0 10px">     f9: 120,
</span><span class="cx" style="display: block; padding: 0 10px">     f10: 121,
</span><span class="cx" style="display: block; padding: 0 10px">     f11: 122
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var modifierNames = $_52qop8kjfuw8l6v.makeMap('alt,ctrl,shift,meta,access');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var modifierNames = $_6cwiepljjgwe7j4.makeMap('alt,ctrl,shift,meta,access');
</ins><span class="cx" style="display: block; padding: 0 10px">   function Shortcuts (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">     var shortcuts = {};
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14036,7 +14780,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var parseShortcut = function (pattern) {
</span><span class="cx" style="display: block; padding: 0 10px">       var id, key;
</span><span class="cx" style="display: block; padding: 0 10px">       var shortcut = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$10(explode$2(pattern, '+'), function (value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$11(explode$2(pattern, '+'), function (value) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (value in modifierNames) {
</span><span class="cx" style="display: block; padding: 0 10px">           shortcut[value] = true;
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14059,7 +14803,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       shortcut.id = id.join(',');
</span><span class="cx" style="display: block; padding: 0 10px">       if (shortcut.access) {
</span><span class="cx" style="display: block; padding: 0 10px">         shortcut.alt = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_9fhi43ajfuw8l13.mac) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_bcvfv9ajjgwe79v.mac) {
</ins><span class="cx" style="display: block; padding: 0 10px">           shortcut.ctrl = true;
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           shortcut.shift = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14066,7 +14810,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (shortcut.meta) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_9fhi43ajfuw8l13.mac) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_bcvfv9ajjgwe79v.mac) {
</ins><span class="cx" style="display: block; padding: 0 10px">           shortcut.meta = true;
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           shortcut.ctrl = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14077,12 +14821,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var createShortcut = function (pattern, desc, cmdFunc, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">       var shortcuts;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      shortcuts = $_52qop8kjfuw8l6v.map(explode$2(pattern, '>'), parseShortcut);
-      shortcuts[shortcuts.length - 1] = $_52qop8kjfuw8l6v.extend(shortcuts[shortcuts.length - 1], {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      shortcuts = $_6cwiepljjgwe7j4.map(explode$2(pattern, '>'), parseShortcut);
+      shortcuts[shortcuts.length - 1] = $_6cwiepljjgwe7j4.extend(shortcuts[shortcuts.length - 1], {
</ins><span class="cx" style="display: block; padding: 0 10px">         func: cmdFunc,
</span><span class="cx" style="display: block; padding: 0 10px">         scope: scope || editor
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_52qop8kjfuw8l6v.extend(shortcuts[0], {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_6cwiepljjgwe7j4.extend(shortcuts[0], {
</ins><span class="cx" style="display: block; padding: 0 10px">         desc: editor.translate(desc),
</span><span class="cx" style="display: block; padding: 0 10px">         subpatterns: shortcuts.slice(1)
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14114,7 +14858,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('keyup keypress keydown', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       if ((hasModifier(e) || isFunctionKey(e)) && !e.isDefaultPrevented()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each$10(shortcuts, function (shortcut) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each$11(shortcuts, function (shortcut) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (matchShortcut(e, shortcut)) {
</span><span class="cx" style="display: block; padding: 0 10px">             pendingPatterns = shortcut.subpatterns.slice(0);
</span><span class="cx" style="display: block; padding: 0 10px">             if (e.type === 'keydown') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14140,12 +14884,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">         cmdFunc = function () {
</span><span class="cx" style="display: block; padding: 0 10px">           editor.execCommand(cmd, false, null);
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if ($_52qop8kjfuw8l6v.isArray(cmd)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if ($_6cwiepljjgwe7j4.isArray(cmd)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         cmdFunc = function () {
</span><span class="cx" style="display: block; padding: 0 10px">           editor.execCommand(cmd[0], cmd[1], cmd[2]);
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$10(explode$2($_52qop8kjfuw8l6v.trim(pattern.toLowerCase())), function (pattern) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$11(explode$2($_6cwiepljjgwe7j4.trim(pattern.toLowerCase())), function (pattern) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var shortcut = createShortcut(pattern, desc, cmdFunc, scope);
</span><span class="cx" style="display: block; padding: 0 10px">         shortcuts[shortcut.id] = shortcut;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14162,24 +14906,24 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var any$1 = function (predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_chabeg35jfuw8lo3.first(predicate).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_7kjxyh2ajjgwe7un.first(predicate).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ancestor$3 = function (scope, predicate, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_chabeg35jfuw8lo3.ancestor(scope, predicate, isRoot).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_7kjxyh2ajjgwe7un.ancestor(scope, predicate, isRoot).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var closest$3 = function (scope, predicate, isRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_chabeg35jfuw8lo3.closest(scope, predicate, isRoot).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_7kjxyh2ajjgwe7un.closest(scope, predicate, isRoot).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var sibling$4 = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_chabeg35jfuw8lo3.sibling(scope, predicate).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_7kjxyh2ajjgwe7un.sibling(scope, predicate).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var child$4 = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_chabeg35jfuw8lo3.child(scope, predicate).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_7kjxyh2ajjgwe7un.child(scope, predicate).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var descendant$3 = function (scope, predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_chabeg35jfuw8lo3.descendant(scope, predicate).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_7kjxyh2ajjgwe7un.descendant(scope, predicate).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4oy4vv4bjfuw8m07 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d5mwxr4xjjgwe8j6 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     any: any$1,
</span><span class="cx" style="display: block; padding: 0 10px">     ancestor: ancestor$3,
</span><span class="cx" style="display: block; padding: 0 10px">     closest: closest$3,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14188,38 +14932,38 @@
</span><span class="cx" style="display: block; padding: 0 10px">     descendant: descendant$3
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var focus = function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var focus$$1 = function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">     element.dom().focus();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var blur = function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var blur$$1 = function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">     element.dom().blur();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasFocus = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var doc = $_2j4g5u17jfuw8lav.owner(element).dom();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var doc = $_d3rmjp18jjgwe7nc.owner(element).dom();
</ins><span class="cx" style="display: block; padding: 0 10px">     return element.dom() === doc.activeElement;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var active = function (_doc) {
</span><span class="cx" style="display: block; padding: 0 10px">     var doc = _doc !== undefined ? _doc.dom() : document;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(doc.activeElement).map($_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(doc.activeElement).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var focusInside = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var doc = $_2j4g5u17jfuw8lav.owner(element);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var doc = $_d3rmjp18jjgwe7nc.owner(element);
</ins><span class="cx" style="display: block; padding: 0 10px">     var inside = active(doc).filter(function (a) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_4oy4vv4bjfuw8m07.closest(a, $_68e81l6jfuw8kyc.curry($_4fb96d1djfuw8lbl.eq, element));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_d5mwxr4xjjgwe8j6.closest(a, curry($_5raon11ejjgwe7o5.eq, element));
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     inside.fold(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      focus(element);
-    }, $_68e81l6jfuw8kyc.noop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      focus$$1(element);
+    }, noop);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var search = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return active($_2j4g5u17jfuw8lav.owner(element)).filter(function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return active($_d3rmjp18jjgwe7nc.owner(element)).filter(function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return element.dom().contains(e.dom());
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8mrg7v4ajfuw8m02 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_a8y7p34wjjgwe8j0 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     hasFocus: hasFocus,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    focus: focus,
-    blur: blur,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    focus: focus$$1,
+    blur: blur$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">     active: active,
</span><span class="cx" style="display: block; padding: 0 10px">     search: search,
</span><span class="cx" style="display: block; padding: 0 10px">     focusInside: focusInside
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14231,13 +14975,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getCollapsedNode = function (rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return rng.collapsed ? Option.from(getNode(rng.startContainer, rng.startOffset)).map($_c9h6qlzjfuw8l98.fromDom) : Option.none();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return rng.collapsed ? Option.from(getNode(rng.startContainer, rng.startOffset)).map(Element$$1.fromDom) : Option.none();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getFocusInElement = function (root, rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getCollapsedNode(rng).bind(function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (isTableSection(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.some(node);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if ($_4fb96d1djfuw8lbl.contains(root, node) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if ($_5raon11ejjgwe7o5.contains(root, node) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return Option.some(root);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         return Option.none();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14245,8 +14989,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var normalizeSelection = function (editor, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    getFocusInElement($_c9h6qlzjfuw8l98.fromDom(editor.getBody()), rng).bind(function (elm) {
-      return $_25kl2c2cjfuw8ljh.firstPositionIn(elm.dom());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    getFocusInElement(Element$$1.fromDom(editor.getBody()), rng).bind(function (elm) {
+      return $_8q1ver2yjjgwe7z3.firstPositionIn(elm.dom());
</ins><span class="cx" style="display: block; padding: 0 10px">     }).fold(function () {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.selection.normalize();
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14266,14 +15010,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasElementFocus = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_8mrg7v4ajfuw8m02.hasFocus(elm) || $_8mrg7v4ajfuw8m02.search(elm).isSome();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_a8y7p34wjjgwe8j0.hasFocus(elm) || $_a8y7p34wjjgwe8j0.search(elm).isSome();
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasIframeFocus = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return editor.iframeElement && $_8mrg7v4ajfuw8m02.hasFocus($_c9h6qlzjfuw8l98.fromDom(editor.iframeElement));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return editor.iframeElement && $_a8y7p34wjjgwe8j0.hasFocus(Element$$1.fromDom(editor.iframeElement));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasInlineFocus = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rawBody = editor.getBody();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return rawBody && hasElementFocus($_c9h6qlzjfuw8l98.fromDom(rawBody));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return rawBody && hasElementFocus(Element$$1.fromDom(rawBody));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasFocus$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.inline ? hasInlineFocus(editor) : hasIframeFocus(editor);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14291,18 +15035,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.bookmark !== undefined && hasFocus$1(editor) === false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_2a7vvg40jfuw8lyb.getRng(editor).each(function (bookmarkRng) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_4wtqbt4ljjgwe8gy.getRng(editor).each(function (bookmarkRng) {
</ins><span class="cx" style="display: block; padding: 0 10px">         editor.selection.setRng(bookmarkRng);
</span><span class="cx" style="display: block; padding: 0 10px">         rng = bookmarkRng;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (!contentEditable) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!$_9fhi43ajfuw8l13.opera) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!$_bcvfv9ajjgwe79v.opera) {
</ins><span class="cx" style="display: block; padding: 0 10px">         focusBody(body);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       editor.getWin().focus();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9fhi43ajfuw8l13.gecko || contentEditable) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_bcvfv9ajjgwe79v.gecko || contentEditable) {
</ins><span class="cx" style="display: block; padding: 0 10px">       focusBody(body);
</span><span class="cx" style="display: block; padding: 0 10px">       normalizeSelection(editor, rng);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14317,7 +15061,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     skipFocus ? activateEditor(editor) : focusEditor(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_18lipa49jfuw8lzt = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5eyh7w4vjjgwe8ik = {
</ins><span class="cx" style="display: block; padding: 0 10px">     focus: focus$1,
</span><span class="cx" style="display: block; padding: 0 10px">     hasFocus: hasFocus$1
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14327,12 +15071,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return rawElm[propName];
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getComputedSizeProp = function (propName, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return parseInt($_cworr512jfuw8l9j.get(elm, propName), 10);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return parseInt($_e0ei5w13jjgwe7m4.get(elm, propName), 10);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getClientWidth = $_68e81l6jfuw8kyc.curry(getProp, 'clientWidth');
-  var getClientHeight = $_68e81l6jfuw8kyc.curry(getProp, 'clientHeight');
-  var getMarginTop = $_68e81l6jfuw8kyc.curry(getComputedSizeProp, 'margin-top');
-  var getMarginLeft = $_68e81l6jfuw8kyc.curry(getComputedSizeProp, 'margin-left');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getClientWidth = curry(getProp, 'clientWidth');
+  var getClientHeight = curry(getProp, 'clientHeight');
+  var getMarginTop = curry(getComputedSizeProp, 'margin-top');
+  var getMarginLeft = curry(getComputedSizeProp, 'margin-left');
</ins><span class="cx" style="display: block; padding: 0 10px">   var getBoundingClientRect$1 = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return elm.dom().getBoundingClientRect();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14353,21 +15097,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isXYInContentArea = function (editor, clientX, clientY) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var bodyElm = $_c9h6qlzjfuw8l98.fromDom(editor.getBody());
-    var targetElm = editor.inline ? bodyElm : $_2j4g5u17jfuw8lav.documentElement(bodyElm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var bodyElm = Element$$1.fromDom(editor.getBody());
+    var targetElm = editor.inline ? bodyElm : $_d3rmjp18jjgwe7nc.documentElement(bodyElm);
</ins><span class="cx" style="display: block; padding: 0 10px">     var transposedPoint = transpose(editor.inline, targetElm, clientX, clientY);
</span><span class="cx" style="display: block; padding: 0 10px">     return isInsideElementContentArea(targetElm, transposedPoint.x, transposedPoint.y);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fromDomSafe = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(node).map($_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(node).map(Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isEditorAttachedToDom = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rawContainer = editor.inline ? editor.getBody() : editor.getContentAreaContainer();
</span><span class="cx" style="display: block; padding: 0 10px">     return fromDomSafe(rawContainer).map(function (container) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_4fb96d1djfuw8lbl.contains($_2j4g5u17jfuw8lav.owner(container), container);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_5raon11ejjgwe7o5.contains($_d3rmjp18jjgwe7nc.owner(container), container);
</ins><span class="cx" style="display: block; padding: 0 10px">     }).getOr(false);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dy1qjd4ejfuw8m0u = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3j45vj50jjgwe8jq = {
</ins><span class="cx" style="display: block; padding: 0 10px">     isXYInContentArea: isXYInContentArea,
</span><span class="cx" style="display: block; padding: 0 10px">     isEditorAttachedToDom: isEditorAttachedToDom
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14405,7 +15149,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       notifications.push(notification);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var closeNotification = function (notification) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.findIndex(notifications, function (otherNotification) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      findIndex(notifications, function (otherNotification) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return otherNotification === notification;
</span><span class="cx" style="display: block; padding: 0 10px">       }).each(function (index) {
</span><span class="cx" style="display: block; padding: 0 10px">         notifications.splice(index, 1);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14412,10 +15156,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var open = function (args) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (editor.removed || !$_dy1qjd4ejfuw8m0u.isEditorAttachedToDom(editor)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (editor.removed || !$_3j45vj50jjgwe8jq.isEditorAttachedToDom(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_9ek1bp4jfuw8kxg.find(notifications, function (notification) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return find(notifications, function (notification) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return isEqual(getImplementation().getArgs(notification), args);
</span><span class="cx" style="display: block; padding: 0 10px">       }).getOrThunk(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.editorManager.setActive(editor);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14451,10 +15195,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('ResizeEditor ResizeWindow', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_2m8wq9hjfuw8l41.requestAnimationFrame(reposition);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_9o1ijaijjgwe7dm.requestAnimationFrame(reposition);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('remove', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_9ek1bp4jfuw8kxg.each(notifications, function (notification) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each(notifications, function (notification) {
</ins><span class="cx" style="display: block; padding: 0 10px">           getImplementation().close(notification);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14503,7 +15247,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       fireOpenEvent(win);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var closeWindow = function (win) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.findIndex(windows, function (otherWindow) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      findIndex(windows, function (otherWindow) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return otherWindow === win;
</span><span class="cx" style="display: block; padding: 0 10px">       }).each(function (index) {
</span><span class="cx" style="display: block; padding: 0 10px">         windows.splice(index, 1);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14518,7 +15262,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var open = function (args, params) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.editorManager.setActive(editor);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_2a7vvg40jfuw8lyb.store(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_4wtqbt4ljjgwe8gy.store(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       var win = getImplementation().open(args, params, closeWindow);
</span><span class="cx" style="display: block; padding: 0 10px">       addWindow(win);
</span><span class="cx" style="display: block; padding: 0 10px">       return win;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14549,7 +15293,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return windows;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('remove', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.each(windows.slice(0), function (win) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(windows.slice(0), function (win) {
</ins><span class="cx" style="display: block; padding: 0 10px">         getImplementation().close(win);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14567,10 +15311,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var PluginManager = AddOnManager.PluginManager;
</span><span class="cx" style="display: block; padding: 0 10px">   var resolvePluginName = function (targetUrl, suffix) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    for (var name_1 in PluginManager.urls) {
-      var matchUrl = PluginManager.urls[name_1] + '/plugin' + suffix + '.js';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    for (var name$$1 in PluginManager.urls) {
+      var matchUrl = PluginManager.urls[name$$1] + '/plugin' + suffix + '.js';
</ins><span class="cx" style="display: block; padding: 0 10px">       if (matchUrl === targetUrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return name_1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14605,16 +15349,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     for (var _i = 1; _i < arguments.length; _i++) {
</span><span class="cx" style="display: block; padding: 0 10px">       x[_i - 1] = arguments[_i];
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var console = window.console;
-    if (console) {
-      if (console.error) {
-        console.error.apply(console, arguments);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var console$$1 = window.console;
+    if (console$$1) {
+      if (console$$1.error) {
+        console$$1.error.apply(console$$1, arguments);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        console.log.apply(console, arguments);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        console$$1.log.apply(console$$1, arguments);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_80cv3b4ijfuw8m1d = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5ksiiu54jjgwe8k7 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     pluginLoadError: pluginLoadError,
</span><span class="cx" style="display: block; padding: 0 10px">     uploadError: uploadError,
</span><span class="cx" style="display: block; padding: 0 10px">     displayError: displayError,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14626,7 +15370,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var ThemeManager = AddOnManager.ThemeManager;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function XMLHttpRequest () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_3hdbe8cjfuw8l1e.getOrDie('XMLHttpRequest');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_6xhbl4cjjgwe7a3.getOrDie('XMLHttpRequest');
</ins><span class="cx" style="display: block; padding: 0 10px">     return new f();
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14687,7 +15431,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var resolvePending = function (blobUri, result) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_52qop8kjfuw8l6v.each(pendingPromises[blobUri], function (resolve) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6cwiepljjgwe7j4.each(pendingPromises[blobUri], function (resolve) {
</ins><span class="cx" style="display: block; padding: 0 10px">         resolve(result);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       delete pendingPromises[blobUri];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14743,10 +15487,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var uploadBlobs = function (blobInfos, openNotification) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      blobInfos = $_52qop8kjfuw8l6v.grep(blobInfos, function (blobInfo) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      blobInfos = $_6cwiepljjgwe7j4.grep(blobInfos, function (blobInfo) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return !uploadStatus.isUploaded(blobInfo.blobUri());
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return promiseObj.all($_52qop8kjfuw8l6v.map(blobInfos, function (blobInfo) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return promiseObj.all($_6cwiepljjgwe7j4.map(blobInfos, function (blobInfo) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, settings.handler, openNotification);
</span><span class="cx" style="display: block; padding: 0 10px">       }));
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14753,7 +15497,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var upload = function (blobInfos, openNotification) {
</span><span class="cx" style="display: block; padding: 0 10px">       return !settings.url && isDefaultHandler(settings.handler) ? noUpload() : uploadBlobs(blobInfos, openNotification);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    settings = $_52qop8kjfuw8l6v.extend({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    settings = $_6cwiepljjgwe7j4.extend({
</ins><span class="cx" style="display: block; padding: 0 10px">       credentials: false,
</span><span class="cx" style="display: block; padding: 0 10px">       handler: defaultHandler
</span><span class="cx" style="display: block; padding: 0 10px">     }, settings);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14761,29 +15505,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function Blob (parts, properties) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_3hdbe8cjfuw8l1e.getOrDie('Blob');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_6xhbl4cjjgwe7a3.getOrDie('Blob');
</ins><span class="cx" style="display: block; padding: 0 10px">     return new f(parts, properties);
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function FileReader () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_3hdbe8cjfuw8l1e.getOrDie('FileReader');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_6xhbl4cjjgwe7a3.getOrDie('FileReader');
</ins><span class="cx" style="display: block; padding: 0 10px">     return new f();
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function Uint8Array (arr) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_3hdbe8cjfuw8l1e.getOrDie('Uint8Array');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_6xhbl4cjjgwe7a3.getOrDie('Uint8Array');
</ins><span class="cx" style="display: block; padding: 0 10px">     return new f(arr);
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var requestAnimationFrame$1 = function (callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_3hdbe8cjfuw8l1e.getOrDie('requestAnimationFrame');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_6xhbl4cjjgwe7a3.getOrDie('requestAnimationFrame');
</ins><span class="cx" style="display: block; padding: 0 10px">     f(callback);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var atob = function (base64) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var f = $_3hdbe8cjfuw8l1e.getOrDie('atob');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var f = $_6xhbl4cjjgwe7a3.getOrDie('atob');
</ins><span class="cx" style="display: block; padding: 0 10px">     return f(base64);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bq13994vjfuw8m39 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_dx5bag5hjjgwe8lz = {
</ins><span class="cx" style="display: block; padding: 0 10px">     atob: atob,
</span><span class="cx" style="display: block; padding: 0 10px">     requestAnimationFrame: requestAnimationFrame$1
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14828,7 +15572,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var str, arr, i;
</span><span class="cx" style="display: block; padding: 0 10px">       uri = parseDataUri(uri);
</span><span class="cx" style="display: block; padding: 0 10px">       try {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        str = $_bq13994vjfuw8m39.atob(uri.data);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        str = $_dx5bag5hjjgwe8lz.atob(uri.data);
</ins><span class="cx" style="display: block; padding: 0 10px">       } catch (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         resolve(new Blob([]));
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14858,7 +15602,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       reader.readAsDataURL(blob);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ar3id44rjfuw8m2o = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5vfmmd5djjgwe8ln = {
</ins><span class="cx" style="display: block; padding: 0 10px">     uriToBlob: uriToBlob,
</span><span class="cx" style="display: block; padding: 0 10px">     blobToDataUri: blobToDataUri,
</span><span class="cx" style="display: block; padding: 0 10px">     parseDataUri: parseDataUri
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14878,9 +15622,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">           blobInfo: blobInfo
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_ar3id44rjfuw8m2o.uriToBlob(img.src).then(function (blob) {
-          $_ar3id44rjfuw8m2o.blobToDataUri(blob).then(function (dataUri) {
-            base64 = $_ar3id44rjfuw8m2o.parseDataUri(dataUri).data;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_5vfmmd5djjgwe8ln.uriToBlob(img.src).then(function (blob) {
+          $_5vfmmd5djjgwe8ln.blobToDataUri(blob).then(function (dataUri) {
+            base64 = $_5vfmmd5djjgwe8ln.parseDataUri(dataUri).data;
</ins><span class="cx" style="display: block; padding: 0 10px">             blobInfo = blobCache.create(uniqueId(), blob, base64);
</span><span class="cx" style="display: block; padding: 0 10px">             blobCache.add(blobInfo);
</span><span class="cx" style="display: block; padding: 0 10px">             resolve({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14894,7 +15638,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    base64 = $_ar3id44rjfuw8m2o.parseDataUri(img.src).data;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    base64 = $_5vfmmd5djjgwe8ln.parseDataUri(img.src).data;
</ins><span class="cx" style="display: block; padding: 0 10px">     blobInfo = blobCache.findFirst(function (cachedBlobInfo) {
</span><span class="cx" style="display: block; padding: 0 10px">       return cachedBlobInfo.base64() === base64;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14904,7 +15648,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         blobInfo: blobInfo
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_ar3id44rjfuw8m2o.uriToBlob(img.src).then(function (blob) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_5vfmmd5djjgwe8ln.uriToBlob(img.src).then(function (blob) {
</ins><span class="cx" style="display: block; padding: 0 10px">         blobInfo = blobCache.create(uniqueId(), blob, base64);
</span><span class="cx" style="display: block; padding: 0 10px">         blobCache.add(blobInfo);
</span><span class="cx" style="display: block; padding: 0 10px">         resolve({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14924,11 +15668,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var findAll = function (elm, predicate) {
</span><span class="cx" style="display: block; padding: 0 10px">       var images;
</span><span class="cx" style="display: block; padding: 0 10px">       if (!predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        predicate = $_ebfy8j25jfuw8li1.constant(true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        predicate = $_4127e12ljjgwe7ww.constant(true);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      images = $_djuh8tljfuw8l74.filter(getAllImages(elm), function (img) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      images = $_6t4axrmjjgwe7jf.filter(getAllImages(elm), function (img) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var src = img.src;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!$_9fhi43ajfuw8l13.fileApi) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!$_bcvfv9ajjgwe79v.fileApi) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (img.hasAttribute('data-mce-bogus')) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14937,7 +15681,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (img.hasAttribute('data-mce-placeholder')) {
</span><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!src || src === $_9fhi43ajfuw8l13.transparentSrc) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!src || src === $_bcvfv9ajjgwe79v.transparentSrc) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (src.indexOf('blob:') === 0) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14948,7 +15692,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return false;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var promises = $_djuh8tljfuw8l74.map(images, function (img) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var promises = $_6t4axrmjjgwe7jf.map(images, function (img) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (cachedPromises[img.src]) {
</span><span class="cx" style="display: block; padding: 0 10px">           return new promiseObj(function (resolve) {
</span><span class="cx" style="display: block; padding: 0 10px">             cachedPromises[img.src].then(function (imageInfo) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14990,11 +15734,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var uuid = function (prefix) {
</span><span class="cx" style="display: block; padding: 0 10px">     return prefix + count$1++ + seed();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cbl0d24xjfuw8m3f = { uuid: uuid };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_637o4x5jjjgwe8m5 = { uuid: uuid };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function BlobCache () {
</span><span class="cx" style="display: block; padding: 0 10px">     var cache = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var constant = $_ebfy8j25jfuw8li1.constant;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var constant = $_4127e12ljjgwe7ww.constant;
</ins><span class="cx" style="display: block; padding: 0 10px">     var mimeToExt = function (mime) {
</span><span class="cx" style="display: block; padding: 0 10px">       var mimes = {
</span><span class="cx" style="display: block; padding: 0 10px">         'image/jpeg': 'jpg',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15017,7 +15761,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!o.blob || !o.base64) {
</span><span class="cx" style="display: block; padding: 0 10px">         throw new Error('blob and base64 representations of the image are required for BlobInfo to be created');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      id = o.id || $_cbl0d24xjfuw8m3f.uuid('blobid');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      id = o.id || $_637o4x5jjjgwe8m5.uuid('blobid');
</ins><span class="cx" style="display: block; padding: 0 10px">       name = o.name || id;
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         id: constant(id),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15025,7 +15769,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         filename: constant(name + '.' + mimeToExt(o.blob.type)),
</span><span class="cx" style="display: block; padding: 0 10px">         blob: constant(o.blob),
</span><span class="cx" style="display: block; padding: 0 10px">         base64: constant(o.base64),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        blobUri: constant(o.blobUri || $_b6ehwsbjfuw8l1c.createObjectURL(o.blob)),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        blobUri: constant(o.blobUri || $_r9uyubjjgwe7a2.createObjectURL(o.blob)),
</ins><span class="cx" style="display: block; padding: 0 10px">         uri: constant(o.uri)
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15040,7 +15784,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var findFirst = function (predicate) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_djuh8tljfuw8l74.filter(cache, predicate)[0];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_6t4axrmjjgwe7jf.filter(cache, predicate)[0];
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getByUri = function (blobUri) {
</span><span class="cx" style="display: block; padding: 0 10px">       return findFirst(function (blobInfo) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15048,9 +15792,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var removeByUri = function (blobUri) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      cache = $_djuh8tljfuw8l74.filter(cache, function (blobInfo) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      cache = $_6t4axrmjjgwe7jf.filter(cache, function (blobInfo) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (blobInfo.blobUri() === blobUri) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_b6ehwsbjfuw8l1c.revokeObjectURL(blobInfo.blobUri());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_r9uyubjjgwe7a2.revokeObjectURL(blobInfo.blobUri());
</ins><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15057,8 +15801,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var destroy = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_djuh8tljfuw8l74.each(cache, function (cachedBlobInfo) {
-        $_b6ehwsbjfuw8l1c.revokeObjectURL(cachedBlobInfo.blobUri());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6t4axrmjjgwe7jf.each(cache, function (cachedBlobInfo) {
+        $_r9uyubjjgwe7a2.revokeObjectURL(cachedBlobInfo.blobUri());
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       cache = [];
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15152,9 +15896,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return content;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var replaceUrlInUndoStack = function (targetUrl, replacementUrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_djuh8tljfuw8l74.each(editor.undoManager.data, function (level) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6t4axrmjjgwe7jf.each(editor.undoManager.data, function (level) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (level.type === 'fragmented') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          level.fragments = $_djuh8tljfuw8l74.map(level.fragments, function (fragment) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          level.fragments = $_6t4axrmjjgwe7jf.map(level.fragments, function (fragment) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return replaceImageUrl(fragment, targetUrl, replacementUrl);
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15189,16 +15933,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return scanForImages().then(aliveGuard(function (imageInfos) {
</span><span class="cx" style="display: block; padding: 0 10px">         var blobInfos;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        blobInfos = $_djuh8tljfuw8l74.map(imageInfos, function (imageInfo) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        blobInfos = $_6t4axrmjjgwe7jf.map(imageInfos, function (imageInfo) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return imageInfo.blobInfo;
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         return uploader.upload(blobInfos, openNotification).then(aliveGuard(function (result) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var filteredResult = $_djuh8tljfuw8l74.map(result, function (uploadInfo, index) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var filteredResult = $_6t4axrmjjgwe7jf.map(result, function (uploadInfo, index) {
</ins><span class="cx" style="display: block; padding: 0 10px">             var image = imageInfos[index].image;
</span><span class="cx" style="display: block; padding: 0 10px">             if (uploadInfo.status && editor.settings.images_replace_blob_uris !== false) {
</span><span class="cx" style="display: block; padding: 0 10px">               replaceImageUri(image, uploadInfo.url);
</span><span class="cx" style="display: block; padding: 0 10px">             } else if (uploadInfo.error) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              $_80cv3b4ijfuw8m1d.uploadError(editor, uploadInfo.error);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              $_5ksiiu54jjgwe8k7.uploadError(editor, uploadInfo.error);
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             return {
</span><span class="cx" style="display: block; padding: 0 10px">               element: image,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15225,14 +15969,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         imageScanner = ImageScanner(uploadStatus, blobCache);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return imageScanner.findAll(editor.getBody(), isValidDataUriImage).then(aliveGuard(function (result) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        result = $_djuh8tljfuw8l74.filter(result, function (resultItem) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        result = $_6t4axrmjjgwe7jf.filter(result, function (resultItem) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (typeof resultItem === 'string') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_80cv3b4ijfuw8m1d.displayError(editor, resultItem);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_5ksiiu54jjgwe8k7.displayError(editor, resultItem);
</ins><span class="cx" style="display: block; padding: 0 10px">             return false;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           return true;
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_djuh8tljfuw8l74.each(result, function (resultItem) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6t4axrmjjgwe7jf.each(result, function (resultItem) {
</ins><span class="cx" style="display: block; padding: 0 10px">           replaceUrlInUndoStack(resultItem.image.src, resultItem.blobInfo.blobUri());
</span><span class="cx" style="display: block; padding: 0 10px">           resultItem.image.src = resultItem.blobInfo.blobUri();
</span><span class="cx" style="display: block; padding: 0 10px">           resultItem.image.removeAttribute('data-mce-src');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15253,7 +15997,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         var blobInfo = blobCache.getByUri(blobUri);
</span><span class="cx" style="display: block; padding: 0 10px">         if (!blobInfo) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          blobInfo = $_djuh8tljfuw8l74.reduce(editor.editorManager.get(), function (result, editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          blobInfo = $_6t4axrmjjgwe7jf.reduce(editor.editorManager.get(), function (result, editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return result || editor.editorUpload && editor.editorUpload.blobCache.getByUri(blobUri);
</span><span class="cx" style="display: block; padding: 0 10px">           }, null);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15281,7 +16025,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('PostRender', function () {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.parser.addNodeFilter('img', function (images) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_djuh8tljfuw8l74.each(images, function (img) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6t4axrmjjgwe7jf.each(images, function (img) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var src = img.attr('src');
</span><span class="cx" style="display: block; padding: 0 10px">           if (blobCache.getByUri(src)) {
</span><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15306,21 +16050,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return blockElements.hasOwnProperty(node.nodeName);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isValidTarget = function (blockElements, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isText(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isText(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_ey7ka11qjfuw8ldg.isElement(node)) {
-      return !isBlockElement(blockElements, node) && !$_disscn2njfuw8ll3.isBookmarkNode(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_3b9u2y1rjjgwe7qe.isElement(node)) {
+      return !isBlockElement(blockElements, node) && !$_6refgt2vjjgwe7yn.isBookmarkNode(node);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasBlockParent = function (blockElements, root, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.exists($_3t5pi43ejfuw8lq0.parents($_c9h6qlzjfuw8l98.fromDom(node), $_c9h6qlzjfuw8l98.fromDom(root)), function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return exists($_cvft7x3zjjgwe8bh.parents(Element$$1.fromDom(node), Element$$1.fromDom(root)), function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return isBlockElement(blockElements, elm.dom());
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var shouldRemoveTextNode = function (blockElements, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isText(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isText(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (node.nodeValue.length === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (/^\s+$/.test(node.nodeValue) && (!node.nextSibling || isBlockElement(blockElements, node.nextSibling))) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15339,7 +16083,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var tempNode, wrapped, restoreSelection;
</span><span class="cx" style="display: block; padding: 0 10px">     var rootNodeName, forcedRootBlock;
</span><span class="cx" style="display: block; padding: 0 10px">     forcedRootBlock = settings.forced_root_block;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!node || !$_ey7ka11qjfuw8ldg.isElement(node) || !forcedRootBlock) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!node || !$_3b9u2y1rjjgwe7qe.isElement(node) || !forcedRootBlock) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     rootNodeName = rootNode.nodeName.toLowerCase();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15351,7 +16095,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     startOffset = rng.startOffset;
</span><span class="cx" style="display: block; padding: 0 10px">     endContainer = rng.endContainer;
</span><span class="cx" style="display: block; padding: 0 10px">     endOffset = rng.endOffset;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    restoreSelection = $_18lipa49jfuw8lzt.hasFocus(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    restoreSelection = $_5eyh7w4vjjgwe8ik.hasFocus(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     node = rootNode.firstChild;
</span><span class="cx" style="display: block; padding: 0 10px">     while (node) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (isValidTarget(blockElements, node)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15381,13 +16125,101 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup = function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$2 = function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">     if (editor.settings.forced_root_block) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.on('NodeChange', $_68e81l6jfuw8kyc.curry(addRootBlocks, editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.on('NodeChange', curry(addRootBlocks, editor));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1x8v3o4zjfuw8m3j = { setup: setup };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_g8uzqo5ljjgwe8m8 = { setup: setup$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var getStartNode = function (rng) {
+    var sc = rng.startContainer, so = rng.startOffset;
+    if ($_3b9u2y1rjjgwe7qe.isText(sc)) {
+      return so === 0 ? Option.some(Element$$1.fromDom(sc)) : Option.none();
+    } else {
+      return Option.from(sc.childNodes[so]).map(Element$$1.fromDom);
+    }
+  };
+  var getEndNode = function (rng) {
+    var ec = rng.endContainer, eo = rng.endOffset;
+    if ($_3b9u2y1rjjgwe7qe.isText(ec)) {
+      return eo === ec.data.length ? Option.some(Element$$1.fromDom(ec)) : Option.none();
+    } else {
+      return Option.from(ec.childNodes[eo - 1]).map(Element$$1.fromDom);
+    }
+  };
+  var getFirstChildren = function (node) {
+    return $_d3rmjp18jjgwe7nc.firstChild(node).fold(constant([node]), function (child) {
+      return [node].concat(getFirstChildren(child));
+    });
+  };
+  var getLastChildren$1 = function (node) {
+    return $_d3rmjp18jjgwe7nc.lastChild(node).fold(constant([node]), function (child) {
+      if ($_fxxo5411jjgwe7lq.name(child) === 'br') {
+        return $_d3rmjp18jjgwe7nc.prevSibling(child).map(function (sibling) {
+          return [node].concat(getLastChildren$1(sibling));
+        }).getOr([]);
+      } else {
+        return [node].concat(getLastChildren$1(child));
+      }
+    });
+  };
+  var hasAllContentsSelected = function (elm, rng) {
+    return liftN([
+      getStartNode(rng),
+      getEndNode(rng)
+    ], function (startNode, endNode) {
+      var start = find(getFirstChildren(elm), curry($_5raon11ejjgwe7o5.eq, startNode));
+      var end = find(getLastChildren$1(elm), curry($_5raon11ejjgwe7o5.eq, endNode));
+      return start.isSome() && end.isSome();
+    }).getOr(false);
+  };
+  var moveEndPoint$1 = function (dom, rng, node, start) {
+    var root = node, walker = new TreeWalker(node, root);
+    var nonEmptyElementsMap = dom.schema.getNonEmptyElements();
+    do {
+      if (node.nodeType === 3 && $_6cwiepljjgwe7j4.trim(node.nodeValue).length !== 0) {
+        if (start) {
+          rng.setStart(node, 0);
+        } else {
+          rng.setEnd(node, node.nodeValue.length);
+        }
+        return;
+      }
+      if (nonEmptyElementsMap[node.nodeName] && !/^(TD|TH)$/.test(node.nodeName)) {
+        if (start) {
+          rng.setStartBefore(node);
+        } else {
+          if (node.nodeName === 'BR') {
+            rng.setEndBefore(node);
+          } else {
+            rng.setEndAfter(node);
+          }
+        }
+        return;
+      }
+      if ($_bcvfv9ajjgwe79v.ie && $_bcvfv9ajjgwe79v.ie < 11 && dom.isBlock(node) && dom.isEmpty(node)) {
+        if (start) {
+          rng.setStart(node, 0);
+        } else {
+          rng.setEnd(node, 0);
+        }
+        return;
+      }
+    } while (node = start ? walker.next() : walker.prev());
+    if (root.nodeName === 'BODY') {
+      if (start) {
+        rng.setStart(root, 0);
+      } else {
+        rng.setEnd(root, root.childNodes.length);
+      }
+    }
+  };
+  var hasAnyRanges = function (editor) {
+    var sel = editor.selection.getSel();
+    return sel && sel.rangeCount > 0;
+  };
+
</ins><span class="cx" style="display: block; padding: 0 10px">   function NodeChange (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var lastRng, lastPath = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var isSameElementPath = function (startElm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15417,7 +16249,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           endContainer: nativeRng.endContainer,
</span><span class="cx" style="display: block; padding: 0 10px">           endOffset: nativeRng.endOffset
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (e.type === 'nodechange' || !$_87lezn3zjfuw8ly9.isEq(fakeRng, lastRng)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (e.type === 'nodechange' || !$_g1gkxh4kjjgwe8gw.isEq(fakeRng, lastRng)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           editor.fire('SelectionChange');
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         lastRng = fakeRng;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15428,17 +16260,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('SelectionChange', function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var startElm = editor.selection.getStart(true);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!startElm || !$_9fhi43ajfuw8l13.range && editor.selection.isCollapsed()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!startElm || !$_bcvfv9ajjgwe79v.range && editor.selection.isCollapsed()) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (hasAnyRanges(editor) && !isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) {
</ins><span class="cx" style="display: block; padding: 0 10px">         editor.nodeChanged({ selectionChange: true });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('MouseUp', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!e.isDefaultPrevented()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!e.isDefaultPrevented() && hasAnyRanges(editor)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (editor.selection.getNode().nodeName === 'IMG') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_2m8wq9hjfuw8l41.setEditorTimeout(editor, function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_9o1ijaijjgwe7dm.setEditorTimeout(editor, function () {
</ins><span class="cx" style="display: block; padding: 0 10px">             editor.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15532,10 +16364,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var calc = function (editor, event) {
</span><span class="cx" style="display: block; padding: 0 10px">     return calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_bx2jdz53jfuw8m4l = { calc: calc };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ddlajs5qjjgwe8o0 = { calc: calc };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isContentEditableFalse$7 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
-  var isContentEditableTrue$4 = $_ey7ka11qjfuw8ldg.isContentEditableTrue;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isContentEditableFalse$7 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
+  var isContentEditableTrue$4 = $_3b9u2y1rjjgwe7qe.isContentEditableTrue;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isDraggable = function (rootElm, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return isContentEditableFalse$7(elm) && elm !== rootElm;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15621,7 +16453,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var start$1 = function (state, editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (isLeftMouseButtonPressed(e)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var ceElm = $_djuh8tljfuw8l74.find(editor.dom.getParents(e.target), $_ebfy8j25jfuw8li1.or(isContentEditableFalse$7, isContentEditableTrue$4));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var ceElm = $_6t4axrmjjgwe7jf.find(editor.dom.getParents(e.target), $_4127e12ljjgwe7ww.or(isContentEditableFalse$7, isContentEditableTrue$4));
</ins><span class="cx" style="display: block; padding: 0 10px">         if (isDraggable(editor.getBody(), ceElm)) {
</span><span class="cx" style="display: block; padding: 0 10px">           var elmPos = editor.dom.getPos(ceElm);
</span><span class="cx" style="display: block; padding: 0 10px">           var bodyElm = editor.getBody();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15641,7 +16473,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var move$1 = function (state, editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var throttledPlaceCaretAt = $_2m8wq9hjfuw8l41.throttle(function (clientX, clientY) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var throttledPlaceCaretAt = $_9o1ijaijjgwe7dm.throttle(function (clientX, clientY) {
</ins><span class="cx" style="display: block; padding: 0 10px">       editor._selectionOverrides.hideFakeCaret();
</span><span class="cx" style="display: block; padding: 0 10px">       editor.selection.placeCaretAt(clientX, clientY);
</span><span class="cx" style="display: block; padding: 0 10px">     }, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15656,7 +16488,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         editor.focus();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (state.dragging) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var targetPos = applyRelPos(state, $_bx2jdz53jfuw8m4l.calc(editor, e));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var targetPos = applyRelPos(state, $_ddlajs5qjjgwe8o0.calc(editor, e));
</ins><span class="cx" style="display: block; padding: 0 10px">         appendGhostToBody(state.ghost, editor.getBody());
</span><span class="cx" style="display: block; padding: 0 10px">         moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY);
</span><span class="cx" style="display: block; padding: 0 10px">         throttledPlaceCaretAt(e.clientX, e.clientY);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15691,12 +16523,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       removeDragState(state);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var stop = function (state, editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var stop$$1 = function (state, editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      removeDragState(state);
</del><span class="cx" style="display: block; padding: 0 10px">       if (state.dragging) {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.fire('dragend');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      removeDragState(state);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeDragState = function (state) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15712,7 +16544,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     dragStartHandler = start$1(state, editor);
</span><span class="cx" style="display: block; padding: 0 10px">     dragHandler = move$1(state, editor);
</span><span class="cx" style="display: block; padding: 0 10px">     dropHandler = drop(state, editor);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    dragEndHandler = stop(state, editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    dragEndHandler = stop$$1(state, editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.on('mousedown', dragStartHandler);
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('mousemove', dragHandler);
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('mouseup', dropHandler);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15735,20 +16567,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     bindFakeDragEvents(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     blockIeDrop(editor);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7g0llv52jfuw8m4f = { init: init };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d2ggl65pjjgwe8nv = { init: init };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getNodeClientRects = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     var toArrayWithNode = function (clientRects) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_djuh8tljfuw8l74.map(clientRects, function (clientRect) {
-        clientRect = clone$1(clientRect);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_6t4axrmjjgwe7jf.map(clientRects, function (clientRect) {
+        clientRect = clone$2(clientRect);
</ins><span class="cx" style="display: block; padding: 0 10px">         clientRect.node = node;
</span><span class="cx" style="display: block; padding: 0 10px">         return clientRect;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isElement(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isElement(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return toArrayWithNode(node.getClientRects());
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isText(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isText(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var rng = node.ownerDocument.createRange();
</span><span class="cx" style="display: block; padding: 0 10px">       rng.setStart(node, 0);
</span><span class="cx" style="display: block; padding: 0 10px">       rng.setEnd(node, node.data.length);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15756,7 +16588,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getClientRects = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_djuh8tljfuw8l74.reduce(node, function (result, node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6t4axrmjjgwe7jf.reduce(node, function (result, node) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return result.concat(getNodeClientRects(node));
</span><span class="cx" style="display: block; padding: 0 10px">     }, []);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15788,7 +16620,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (isBeflowFn(clientRect, targetClientRect)) {
</span><span class="cx" style="display: block; padding: 0 10px">           continue;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (result.length > 0 && isAboveFn(clientRect, $_djuh8tljfuw8l74.last(result))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (result.length > 0 && isAboveFn(clientRect, $_6t4axrmjjgwe7jf.last(result))) {
</ins><span class="cx" style="display: block; padding: 0 10px">           line++;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         clientRect.line = line;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15798,7 +16630,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         result.push(clientRect);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    targetClientRect = $_djuh8tljfuw8l74.last(caretPosition.getClientRects());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    targetClientRect = $_6t4axrmjjgwe7jf.last(caretPosition.getClientRects());
</ins><span class="cx" style="display: block; padding: 0 10px">     if (!targetClientRect) {
</span><span class="cx" style="display: block; padding: 0 10px">       return result;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15813,8 +16645,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isLineNumber = function (lineNumber, clientRect) {
</span><span class="cx" style="display: block; padding: 0 10px">     return clientRect.line === lineNumber;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var upUntil = $_68e81l6jfuw8kyc.curry(walkUntil, VDirection.Up, isAbove, isBelow);
-  var downUntil = $_68e81l6jfuw8kyc.curry(walkUntil, VDirection.Down, isBelow, isAbove);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var upUntil = curry(walkUntil, VDirection.Up, isAbove, isBelow);
+  var downUntil = curry(walkUntil, VDirection.Down, isBelow, isAbove);
</ins><span class="cx" style="display: block; padding: 0 10px">   var positionsUntil = function (direction, root, predicateFn, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     var caretWalker = CaretWalker(root);
</span><span class="cx" style="display: block; padding: 0 10px">     var walkFn, isBelowFn, isAboveFn, caretPosition;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15822,9 +16654,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var line = 0, clientRect, targetClientRect;
</span><span class="cx" style="display: block; padding: 0 10px">     var getClientRect = function (caretPosition) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (direction === 1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_djuh8tljfuw8l74.last(caretPosition.getClientRects());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_6t4axrmjjgwe7jf.last(caretPosition.getClientRects());
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_djuh8tljfuw8l74.last(caretPosition.getClientRects());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_6t4axrmjjgwe7jf.last(caretPosition.getClientRects());
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     if (direction === 1) {
</span><span class="cx" style="display: block; padding: 0 10px">       walkFn = caretWalker.next;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15846,10 +16678,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (isAboveFn(clientRect, targetClientRect)) {
</span><span class="cx" style="display: block; padding: 0 10px">         continue;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (result.length > 0 && isBelowFn(clientRect, $_djuh8tljfuw8l74.last(result))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (result.length > 0 && isBelowFn(clientRect, $_6t4axrmjjgwe7jf.last(result))) {
</ins><span class="cx" style="display: block; padding: 0 10px">         line++;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      clientRect = clone$1(clientRect);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      clientRect = clone$2(clientRect);
</ins><span class="cx" style="display: block; padding: 0 10px">       clientRect.position = caretPosition;
</span><span class="cx" style="display: block; padding: 0 10px">       clientRect.line = line;
</span><span class="cx" style="display: block; padding: 0 10px">       if (predicateFn(clientRect)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15870,7 +16702,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isContentEditableFalse$8 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isContentEditableFalse$8 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
</ins><span class="cx" style="display: block; padding: 0 10px">   var findNode$1 = findNode;
</span><span class="cx" style="display: block; padding: 0 10px">   var distanceToRectLeft = function (clientRect, clientX) {
</span><span class="cx" style="display: block; padding: 0 10px">     return Math.abs(clientRect.left - clientX);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15882,7 +16714,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return clientX >= clientRect.left && clientX <= clientRect.right;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findClosestClientRect = function (clientRects, clientX) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_djuh8tljfuw8l74.reduce(clientRects, function (oldClientRect, clientRect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6t4axrmjjgwe7jf.reduce(clientRects, function (oldClientRect, clientRect) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var oldDistance, newDistance;
</span><span class="cx" style="display: block; padding: 0 10px">       oldDistance = Math.min(distanceToRectLeft(oldClientRect, clientX), distanceToRectRight(oldClientRect, clientX));
</span><span class="cx" style="display: block; padding: 0 10px">       newDistance = Math.min(distanceToRectLeft(clientRect, clientX), distanceToRectRight(clientRect, clientX));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15912,7 +16744,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var clientRects = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var collect = function (checkPosFn, node) {
</span><span class="cx" style="display: block; padding: 0 10px">       var lineRects;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      lineRects = $_djuh8tljfuw8l74.filter(getClientRects([node]), function (clientRect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      lineRects = $_6t4axrmjjgwe7jf.filter(getClientRects([node]), function (clientRect) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return !checkPosFn(clientRect, targetNodeRect);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       clientRects = clientRects.concat(lineRects);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15919,12 +16751,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return lineRects.length === 0;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     clientRects.push(targetNodeRect);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    walkUntil$1(VDirection.Up, root, $_68e81l6jfuw8kyc.curry(collect, isAbove), targetNodeRect.node);
-    walkUntil$1(VDirection.Down, root, $_68e81l6jfuw8kyc.curry(collect, isBelow), targetNodeRect.node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    walkUntil$1(VDirection.Up, root, curry(collect, isAbove), targetNodeRect.node);
+    walkUntil$1(VDirection.Down, root, curry(collect, isBelow), targetNodeRect.node);
</ins><span class="cx" style="display: block; padding: 0 10px">     return clientRects;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getFakeCaretTargets = function (root) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_djuh8tljfuw8l74.filter($_djuh8tljfuw8l74.toArray(root.getElementsByTagName('*')), isFakeCaretTarget);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6t4axrmjjgwe7jf.filter($_6t4axrmjjgwe7jf.toArray(root.getElementsByTagName('*')), isFakeCaretTarget);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var caretInfo = function (clientRect, clientX) {
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15935,7 +16767,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var closestCaret = function (root, clientX, clientY) {
</span><span class="cx" style="display: block; padding: 0 10px">     var closestNodeRect;
</span><span class="cx" style="display: block; padding: 0 10px">     var contentEditableFalseNodeRects = getClientRects(getFakeCaretTargets(root));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var targetNodeRects = $_djuh8tljfuw8l74.filter(contentEditableFalseNodeRects, function (rect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var targetNodeRects = $_6t4axrmjjgwe7jf.filter(contentEditableFalseNodeRects, function (rect) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return clientY >= rect.top && clientY <= rect.bottom;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     closestNodeRect = findClosestClientRect(targetNodeRects, clientX);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15948,95 +16780,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return null;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isXYWithinRange = function (clientX, clientY, range) {
-    if (range.collapsed) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isXYWithinRange = function (clientX, clientY, range$$1) {
+    if (range$$1.collapsed) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.foldl(range.getClientRects(), function (state, rect) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return foldl(range$$1.getClientRects(), function (state, rect) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return state || containsXY(rect, clientX, clientY);
</span><span class="cx" style="display: block; padding: 0 10px">     }, false);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ew17fe57jfuw8m5c = { isXYWithinRange: isXYWithinRange };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_bswl8d5ujjgwe8oh = { isXYWithinRange: isXYWithinRange };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var adaptable = function (fn, rate) {
-    var timer = null;
-    var args = null;
-    var cancel = function () {
-      if (timer !== null) {
-        clearTimeout(timer);
-        timer = null;
-        args = null;
-      }
-    };
-    var throttle = function () {
-      args = arguments;
-      if (timer === null) {
-        timer = setTimeout(function () {
-          fn.apply(null, args);
-          timer = null;
-          args = null;
-        }, rate);
-      }
-    };
-    return {
-      cancel: cancel,
-      throttle: throttle
-    };
-  };
-  var first$3 = function (fn, rate) {
-    var timer = null;
-    var cancel = function () {
-      if (timer !== null) {
-        clearTimeout(timer);
-        timer = null;
-      }
-    };
-    var throttle = function () {
-      var args = arguments;
-      if (timer === null) {
-        timer = setTimeout(function () {
-          fn.apply(null, args);
-          timer = null;
-          args = null;
-        }, rate);
-      }
-    };
-    return {
-      cancel: cancel,
-      throttle: throttle
-    };
-  };
-  var last$3 = function (fn, rate) {
-    var timer = null;
-    var cancel = function () {
-      if (timer !== null) {
-        clearTimeout(timer);
-        timer = null;
-      }
-    };
-    var throttle = function () {
-      var args = arguments;
-      if (timer !== null)
-        clearTimeout(timer);
-      timer = setTimeout(function () {
-        fn.apply(null, args);
-        timer = null;
-        args = null;
-      }, rate);
-    };
-    return {
-      cancel: cancel,
-      throttle: throttle
-    };
-  };
-  var $_6aemaw59jfuw8m5h = {
-    adaptable: adaptable,
-    first: first$3,
-    last: last$3
-  };
-
-  var setup$1 = function (editor) {
-    var renderFocusCaret = $_6aemaw59jfuw8m5h.first(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$3 = function (editor) {
+    var renderFocusCaret = first$1(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!editor.removed) {
</span><span class="cx" style="display: block; padding: 0 10px">         var rng = editor.selection.getRng();
</span><span class="cx" style="display: block; padding: 0 10px">         if (rng.collapsed) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16052,9 +16807,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       renderFocusCaret.cancel();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_eq1t5458jfuw8m5e = { setup: setup$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_gvlmc5vjjgwe8ok = { setup: setup$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1nvqmv5ajfuw8m5j = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9udk9k5wjjgwe8on = {
</ins><span class="cx" style="display: block; padding: 0 10px">     BACKSPACE: 8,
</span><span class="cx" style="display: block; padding: 0 10px">     DELETE: 46,
</span><span class="cx" style="display: block; padding: 0 10px">     DOWN: 40,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16068,12 +16823,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     metaKeyPressed: function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_9fhi43ajfuw8l13.mac ? e.metaKey : e.ctrlKey && !e.altKey;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_bcvfv9ajjgwe79v.mac ? e.metaKey : e.ctrlKey && !e.altKey;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isContentEditableTrue$5 = $_ey7ka11qjfuw8ldg.isContentEditableTrue;
-  var isContentEditableFalse$9 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isContentEditableTrue$5 = $_3b9u2y1rjjgwe7qe.isContentEditableTrue;
+  var isContentEditableFalse$9 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isAfterContentEditableFalse$1 = isAfterContentEditableFalse;
</span><span class="cx" style="display: block; padding: 0 10px">   var isBeforeContentEditableFalse$1 = isBeforeContentEditableFalse;
</span><span class="cx" style="display: block; padding: 0 10px">   var getContentEditableRoot$1 = function (editor, node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16092,7 +16847,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var rootNode = editor.getBody();
</span><span class="cx" style="display: block; padding: 0 10px">     var fakeCaret = FakeCaret(editor.getBody(), isBlock, function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_18lipa49jfuw8lzt.hasFocus(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_5eyh7w4vjjgwe8ik.hasFocus(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     var realSelectionId = 'sel-' + editor.dom.uniqueId();
</span><span class="cx" style="display: block; padding: 0 10px">     var selectedContentEditableNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16103,9 +16858,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var container = editor.dom.get(realSelectionId);
</span><span class="cx" style="display: block; padding: 0 10px">       return container ? container.getElementsByTagName('*')[0] : container;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var setRange = function (range) {
-      if (range) {
-        editor.selection.setRng(range);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var setRange = function (range$$1) {
+      if (range$$1) {
+        editor.selection.setRng(range$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getRange = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16129,12 +16884,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return fakeCaret.show(before, node);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getNormalizedRangeEndPoint$$1 = function (direction, range) {
-      range = normalizeRange(direction, rootNode, range);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getNormalizedRangeEndPoint$$1 = function (direction, range$$1) {
+      range$$1 = normalizeRange(direction, rootNode, range$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (direction === -1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return CaretPosition$1.fromRangeStart(range);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return CaretPosition$1.fromRangeStart(range$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return CaretPosition$1.fromRangeEnd(range);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return CaretPosition$1.fromRangeEnd(range$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var showBlockCaretContainer = function (blockCaretContainer) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (blockCaretContainer.hasAttribute('data-mce-caret')) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16145,9 +16900,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var registerEvents = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('mouseup', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var range = getRange();
-        if (range.collapsed && $_dy1qjd4ejfuw8m0u.isXYInContentArea(editor, e.clientX, e.clientY)) {
-          setRange(renderCaretAtRange(editor, range, false));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var range$$1 = getRange();
+        if (range$$1.collapsed && $_3j45vj50jjgwe8jq.isXYInContentArea(editor, e.clientX, e.clientY)) {
+          setRange(renderCaretAtRange(editor, range$$1, false));
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('click', function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16218,7 +16973,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (targetElm !== rootNode && targetElm.nodeName !== 'HTML' && !editor.dom.isChildOf(targetElm, rootNode)) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_dy1qjd4ejfuw8m0u.isXYInContentArea(editor, e.clientX, e.clientY) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_3j45vj50jjgwe8jq.isXYInContentArea(editor, e.clientX, e.clientY) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         contentEditableRoot = getContentEditableRoot$1(editor, targetElm);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16228,7 +16983,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">             setContentEditableSelection(selectNode(editor, contentEditableRoot));
</span><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             removeContentEditableSelection();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if (!(isContentEditableTrue$5(contentEditableRoot) && e.shiftKey) && !$_ew17fe57jfuw8m5c.isXYWithinRange(e.clientX, e.clientY, editor.selection.getRng())) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if (!(isContentEditableTrue$5(contentEditableRoot) && e.shiftKey) && !$_bswl8d5ujjgwe8oh.isXYWithinRange(e.clientX, e.clientY, editor.selection.getRng())) {
+              hideFakeCaret();
</ins><span class="cx" style="display: block; padding: 0 10px">               editor.selection.placeCaretAt(e.clientX, e.clientY);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16239,15 +16995,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">           if (caretInfo) {
</span><span class="cx" style="display: block; padding: 0 10px">             if (!hasBetterMouseTarget(e.target, caretInfo.node)) {
</span><span class="cx" style="display: block; padding: 0 10px">               e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              var range = showCaret$$1(1, caretInfo.node, caretInfo.before, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              var range$$1 = showCaret$$1(1, caretInfo.node, caretInfo.before, false);
</ins><span class="cx" style="display: block; padding: 0 10px">               editor.getBody().focus();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              setRange(range);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              setRange(range$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('keypress', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_1nvqmv5ajfuw8m5j.modifierPressed(e)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_9udk9k5wjjgwe8on.modifierPressed(e)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         switch (e.keyCode) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16288,7 +17044,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('copy', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         var clipboardData = e.clipboardData;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!e.isDefaultPrevented() && e.clipboardData && !$_9fhi43ajfuw8l13.ie) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!e.isDefaultPrevented() && e.clipboardData && !$_bcvfv9ajjgwe79v.ie) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var realSelectionElement = getRealSelectionElement();
</span><span class="cx" style="display: block; padding: 0 10px">           if (realSelectionElement) {
</span><span class="cx" style="display: block; padding: 0 10px">             e.preventDefault();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16298,8 +17054,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_7g0llv52jfuw8m4f.init(editor);
-      $_eq1t5458jfuw8m5e.setup(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_d2ggl65pjjgwe8nv.init(editor);
+      $_gvlmc5vjjgwe8ok.setup(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var addCss = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var styles = editor.contentStyles, rootClass = '.mce-content-body';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16312,18 +17068,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var isRangeInCaretContainer = function (rng) {
</span><span class="cx" style="display: block; padding: 0 10px">       return isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var setContentEditableSelection = function (range, forward) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var setContentEditableSelection = function (range$$1, forward) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var node;
</span><span class="cx" style="display: block; padding: 0 10px">       var $ = editor.$;
</span><span class="cx" style="display: block; padding: 0 10px">       var dom = editor.dom;
</span><span class="cx" style="display: block; padding: 0 10px">       var $realSelectionContainer, sel, startContainer, startOffset, endOffset, e, caretPosition, targetClone, origTargetClone;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!range) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!range$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (range.collapsed) {
-        if (!isRangeInCaretContainer(range)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (range$$1.collapsed) {
+        if (!isRangeInCaretContainer(range$$1)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (forward === false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            caretPosition = getNormalizedRangeEndPoint$$1(-1, range);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            caretPosition = getNormalizedRangeEndPoint$$1(-1, range$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">             if (isFakeCaretTarget(caretPosition.getNode(true))) {
</span><span class="cx" style="display: block; padding: 0 10px">               return showCaret$$1(-1, caretPosition.getNode(true), false, false);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16331,7 +17087,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">               return showCaret$$1(-1, caretPosition.getNode(), !caretPosition.isAtEnd(), false);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            caretPosition = getNormalizedRangeEndPoint$$1(1, range);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            caretPosition = getNormalizedRangeEndPoint$$1(1, range$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">             if (isFakeCaretTarget(caretPosition.getNode())) {
</span><span class="cx" style="display: block; padding: 0 10px">               return showCaret$$1(1, caretPosition.getNode(), !caretPosition.isAtEnd(), false);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16342,9 +17098,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      startContainer = range.startContainer;
-      startOffset = range.startOffset;
-      endOffset = range.endOffset;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      startContainer = range$$1.startContainer;
+      startOffset = range$$1.startOffset;
+      endOffset = range$$1.endOffset;
</ins><span class="cx" style="display: block; padding: 0 10px">       if (startContainer.nodeType === 3 && startOffset === 0 && isContentEditableFalse$9(startContainer.parentNode)) {
</span><span class="cx" style="display: block; padding: 0 10px">         startContainer = startContainer.parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">         startOffset = dom.nodeIndex(startContainer);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16367,7 +17123,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (e.isDefaultPrevented()) {
</span><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $realSelectionContainer = $_94zo1v3cjfuw8lpg.descendant($_c9h6qlzjfuw8l98.fromDom(editor.getBody()), '#' + realSelectionId).fold(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $realSelectionContainer = $_ajwe9029jjgwe7ul.descendant(Element$$1.fromDom(editor.getBody()), '#' + realSelectionId).fold(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">         return $([]);
</span><span class="cx" style="display: block; padding: 0 10px">       }, function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">         return $([elm.dom()]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16377,35 +17133,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">         $realSelectionContainer = $('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr('id', realSelectionId);
</span><span class="cx" style="display: block; padding: 0 10px">         $realSelectionContainer.appendTo(editor.getBody());
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      range = editor.dom.createRng();
-      if (targetClone === origTargetClone && $_9fhi43ajfuw8l13.ie) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      range$$1 = editor.dom.createRng();
+      if (targetClone === origTargetClone && $_bcvfv9ajjgwe79v.ie) {
</ins><span class="cx" style="display: block; padding: 0 10px">         $realSelectionContainer.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xA0</p>').append(targetClone);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        range.setStartAfter($realSelectionContainer[0].firstChild.firstChild);
-        range.setEndAfter(targetClone);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        range$$1.setStartAfter($realSelectionContainer[0].firstChild.firstChild);
+        range$$1.setEndAfter(targetClone);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         $realSelectionContainer.empty().append('\xA0').append(targetClone).append('\xA0');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        range.setStart($realSelectionContainer[0].firstChild, 1);
-        range.setEnd($realSelectionContainer[0].lastChild, 0);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        range$$1.setStart($realSelectionContainer[0].firstChild, 1);
+        range$$1.setEnd($realSelectionContainer[0].lastChild, 0);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       $realSelectionContainer.css({ top: dom.getPos(node, editor.getBody()).y });
</span><span class="cx" style="display: block; padding: 0 10px">       $realSelectionContainer[0].focus();
</span><span class="cx" style="display: block; padding: 0 10px">       sel = editor.selection.getSel();
</span><span class="cx" style="display: block; padding: 0 10px">       sel.removeAllRanges();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      sel.addRange(range);
-      $_9ek1bp4jfuw8kxg.each($_ryxde2gjfuw8lkk.descendants($_c9h6qlzjfuw8l98.fromDom(editor.getBody()), '*[data-mce-selected]'), function (elm) {
-        $_8g002u14jfuw8la5.remove(elm, 'data-mce-selected');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      sel.addRange(range$$1);
+      each($_d3ydn427jjgwe7uf.descendants(Element$$1.fromDom(editor.getBody()), '*[data-mce-selected]'), function (elm) {
+        $_etx7gr15jjgwe7mr.remove(elm, 'data-mce-selected');
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       node.setAttribute('data-mce-selected', '1');
</span><span class="cx" style="display: block; padding: 0 10px">       selectedContentEditableNode = node;
</span><span class="cx" style="display: block; padding: 0 10px">       hideFakeCaret();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return range;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return range$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var removeContentEditableSelection = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       if (selectedContentEditableNode) {
</span><span class="cx" style="display: block; padding: 0 10px">         selectedContentEditableNode.removeAttribute('data-mce-selected');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_94zo1v3cjfuw8lpg.descendant($_c9h6qlzjfuw8l98.fromDom(editor.getBody()), '#' + realSelectionId).each($_byg6a92ujfuw8lmi.remove);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_ajwe9029jjgwe7ul.descendant(Element$$1.fromDom(editor.getBody()), '#' + realSelectionId).each($_81exq51wjjgwe7sm.remove);
</ins><span class="cx" style="display: block; padding: 0 10px">         selectedContentEditableNode = null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_ajwe9029jjgwe7ul.descendant(Element$$1.fromDom(editor.getBody()), '#' + realSelectionId).each($_81exq51wjjgwe7sm.remove);
+      selectedContentEditableNode = null;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var destroy = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       fakeCaret.destroy();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16414,7 +17172,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var hideFakeCaret = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       fakeCaret.hide();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9fhi43ajfuw8l13.ceFalse) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_bcvfv9ajjgwe79v.ceFalse) {
</ins><span class="cx" style="display: block; padding: 0 10px">       registerEvents();
</span><span class="cx" style="display: block; padding: 0 10px">       addCss();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16426,7 +17184,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$11 = $_52qop8kjfuw8l6v.each;
</del><span class="cx" style="display: block; padding: 0 10px">   var isValidPrefixAttrName = function (name) {
</span><span class="cx" style="display: block; padding: 0 10px">     return name.indexOf('data-') === 0 || name.indexOf('aria-') === 0;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16433,6 +17190,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var trimComments = function (text) {
</span><span class="cx" style="display: block; padding: 0 10px">     return text.replace(/<!--|-->/g, '');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isInvalidUri = function (settings, uri) {
+    if (settings.allow_html_data_urls) {
+      return false;
+    } else if (/^data:image\//i.test(uri)) {
+      return settings.allow_svg_data_urls === false && /^data:image\/svg\+xml/i.test(uri);
+    } else {
+      return /^data:/i.test(uri);
+    }
+  };
</ins><span class="cx" style="display: block; padding: 0 10px">   var findEndTagIndex = function (schema, html, startIndex) {
</span><span class="cx" style="display: block; padding: 0 10px">     var count = 1, index, matches, tokenRegExp, shortEndedElements;
</span><span class="cx" style="display: block; padding: 0 10px">     shortEndedElements = schema.getShortEndedElements();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16464,11 +17230,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (settings.fix_self_closing !== false) {
</span><span class="cx" style="display: block; padding: 0 10px">       settings.fix_self_closing = true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$11('comment cdata text start end pi doctype'.split(' '), function (name) {
-      if (name) {
-        self[name] = settings[name] || noop;
-      }
-    });
</del><span class="cx" style="display: block; padding: 0 10px">     var comment = settings.comment ? settings.comment : noop;
</span><span class="cx" style="display: block; padding: 0 10px">     var cdata = settings.cdata ? settings.cdata : noop;
</span><span class="cx" style="display: block; padding: 0 10px">     var text = settings.text ? settings.text : noop;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16484,10 +17245,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var validate, elementRule, isValidElement, attr, attribsValue, validAttributesMap, validAttributePatterns;
</span><span class="cx" style="display: block; padding: 0 10px">       var attributesRequired, attributesDefault, attributesForced, processHtml;
</span><span class="cx" style="display: block; padding: 0 10px">       var anyAttributesRequired, selfClosing, tokenRegExp, attrRegExp, specialElements, attrValue, idCount = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var decode = $_8uzsfe1rjfuw8ldm.decode;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var decode = $_6pqr9q1sjjgwe7qj.decode;
</ins><span class="cx" style="display: block; padding: 0 10px">       var fixSelfClosing;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var filteredUrlAttrs = $_52qop8kjfuw8l6v.makeMap('src,href,data,background,formaction,poster');
-      var scriptUriRegExp = /((java|vb)script|mhtml):/i, dataUriRegExp = /^data:/i;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var filteredUrlAttrs = $_6cwiepljjgwe7j4.makeMap('src,href,data,background,formaction,poster,xlink:href');
+      var scriptUriRegExp = /((java|vb)script|mhtml):/i;
</ins><span class="cx" style="display: block; padding: 0 10px">       var processEndTag = function (name) {
</span><span class="cx" style="display: block; padding: 0 10px">         var pos, i;
</span><span class="cx" style="display: block; padding: 0 10px">         pos = stack.length;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16542,7 +17303,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           if (scriptUriRegExp.test(uri)) {
</span><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (!settings.allow_html_data_urls && dataUriRegExp.test(uri) && !/^data:image\//i.test(uri)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (isInvalidUri(settings, uri)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16761,10 +17522,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       content = content.substring(0, index - matchLength) + content.substring(endTagIndex);
</span><span class="cx" style="display: block; padding: 0 10px">       bogusAllRegExp.lastIndex = index - matchLength;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_dpfg1321jfuw8lhn.trim(content);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_2xw7ul2pjjgwe7xs.trim(content);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimExternal = trimInternal;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fglg0l5djfuw8m62 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_87j7cq5zjjgwe8pf = {
</ins><span class="cx" style="display: block; padding: 0 10px">     trimExternal: trimExternal,
</span><span class="cx" style="display: block; padding: 0 10px">     trimInternal: trimInternal
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16887,7 +17648,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     buildScript(0, left.length, 0, right.length, script);
</span><span class="cx" style="display: block; padding: 0 10px">     return script;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9jf9ba5gjfuw8m6m = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_2llrn562jjgwe8py = {
</ins><span class="cx" style="display: block; padding: 0 10px">     KEEP: KEEP,
</span><span class="cx" style="display: block; padding: 0 10px">     DELETE: DELETE,
</span><span class="cx" style="display: block; padding: 0 10px">     INSERT: INSERT,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16895,11 +17656,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getOuterHtml = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isElement(elm)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isElement(elm)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return elm.outerHTML;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_ey7ka11qjfuw8ldg.isText(elm)) {
-      return $_8uzsfe1rjfuw8ldm.encodeRaw(elm.data, false);
-    } else if ($_ey7ka11qjfuw8ldg.isComment(elm)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if ($_3b9u2y1rjjgwe7qe.isText(elm)) {
+      return $_6pqr9q1sjjgwe7qj.encodeRaw(elm.data, false);
+    } else if ($_3b9u2y1rjjgwe7qe.isComment(elm)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return '<!--' + elm.data + '-->';
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return '';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16933,29 +17694,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var applyDiff = function (diff, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var index = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_djuh8tljfuw8l74.each(diff, function (action) {
-      if (action[0] === $_9jf9ba5gjfuw8m6m.KEEP) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_6t4axrmjjgwe7jf.each(diff, function (action) {
+      if (action[0] === $_2llrn562jjgwe8py.KEEP) {
</ins><span class="cx" style="display: block; padding: 0 10px">         index++;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if (action[0] === $_9jf9ba5gjfuw8m6m.INSERT) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (action[0] === $_2llrn562jjgwe8py.INSERT) {
</ins><span class="cx" style="display: block; padding: 0 10px">         insertAt(elm, action[1], index);
</span><span class="cx" style="display: block; padding: 0 10px">         index++;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if (action[0] === $_9jf9ba5gjfuw8m6m.DELETE) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (action[0] === $_2llrn562jjgwe8py.DELETE) {
</ins><span class="cx" style="display: block; padding: 0 10px">         removeAt(elm, index);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var read$2 = function (elm) {
-    return $_djuh8tljfuw8l74.filter($_djuh8tljfuw8l74.map(elm.childNodes, getOuterHtml), function (item) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var read$3 = function (elm) {
+    return $_6t4axrmjjgwe7jf.filter($_6t4axrmjjgwe7jf.map(elm.childNodes, getOuterHtml), function (item) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return item.length > 0;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var write = function (fragments, elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var currentFragments = $_djuh8tljfuw8l74.map(elm.childNodes, getOuterHtml);
-    applyDiff($_9jf9ba5gjfuw8m6m.diff(currentFragments, fragments), elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var currentFragments = $_6t4axrmjjgwe7jf.map(elm.childNodes, getOuterHtml);
+    applyDiff($_2llrn562jjgwe8py.diff(currentFragments, fragments), elm);
</ins><span class="cx" style="display: block; padding: 0 10px">     return elm;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3bhk0u5fjfuw8m6j = {
-    read: read$2,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6w5mhp61jjgwe8pt = {
+    read: read$3,
</ins><span class="cx" style="display: block; padding: 0 10px">     write: write
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16963,22 +17724,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var doc = scope || document;
</span><span class="cx" style="display: block; padding: 0 10px">     var div = doc.createElement('div');
</span><span class="cx" style="display: block; padding: 0 10px">     div.innerHTML = html;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_2j4g5u17jfuw8lav.children($_c9h6qlzjfuw8l98.fromDom(div));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_d3rmjp18jjgwe7nc.children(Element$$1.fromDom(div));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fromTags = function (tags, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.map(tags, function (x) {
-      return $_c9h6qlzjfuw8l98.fromTag(x, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(tags, function (x) {
+      return Element$$1.fromTag(x, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fromText$1 = function (texts, scope) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.map(texts, function (x) {
-      return $_c9h6qlzjfuw8l98.fromText(x, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(texts, function (x) {
+      return Element$$1.fromText(x, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fromDom$1 = function (nodes) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.map(nodes, $_c9h6qlzjfuw8l98.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(nodes, Element$$1.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_565w5h5ijfuw8m6s = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_28ipi364jjgwe8q6 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     fromHtml: fromHtml$1,
</span><span class="cx" style="display: block; padding: 0 10px">     fromTags: fromTags,
</span><span class="cx" style="display: block; padding: 0 10px">     fromText: fromText$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16985,30 +17746,38 @@
</span><span class="cx" style="display: block; padding: 0 10px">     fromDom: fromDom$1
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var get$4 = function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var get$6 = function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return element.dom().innerHTML;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var set$3 = function (element, content) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var owner = $_2j4g5u17jfuw8lav.owner(element);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var owner = $_d3rmjp18jjgwe7nc.owner(element);
</ins><span class="cx" style="display: block; padding: 0 10px">     var docDom = owner.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var fragment = $_c9h6qlzjfuw8l98.fromDom(docDom.createDocumentFragment());
-    var contentElements = $_565w5h5ijfuw8m6s.fromHtml(content, docDom);
-    $_84jjow2vjfuw8lml.append(fragment, contentElements);
-    $_byg6a92ujfuw8lmi.empty(element);
-    $_doli6x2kjfuw8lky.append(element, fragment);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var fragment = Element$$1.fromDom(docDom.createDocumentFragment());
+    var contentElements = $_28ipi364jjgwe8q6.fromHtml(content, docDom);
+    $_4wf3mo1xjjgwe7sq.append(fragment, contentElements);
+    $_81exq51wjjgwe7sm.empty(element);
+    $_ewo3u51yjjgwe7su.append(element, fragment);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getOuter = function (element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var container = $_c9h6qlzjfuw8l98.fromTag('div');
-    var clone = $_c9h6qlzjfuw8l98.fromDom(element.dom().cloneNode(true));
-    $_doli6x2kjfuw8lky.append(container, clone);
-    return get$4(container);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var container = Element$$1.fromTag('div');
+    var clone = Element$$1.fromDom(element.dom().cloneNode(true));
+    $_ewo3u51yjjgwe7su.append(container, clone);
+    return get$6(container);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_98tc655hjfuw8m6r = {
-    get: get$4,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_103qrc63jjgwe8q4 = {
+    get: get$6,
</ins><span class="cx" style="display: block; padding: 0 10px">     set: set$3,
</span><span class="cx" style="display: block; padding: 0 10px">     getOuter: getOuter
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var undoLevelDocument = Cell(Option.none());
+  var lazyTempDocument = function () {
+    return undoLevelDocument.get().getOrThunk(function () {
+      var doc = document.implementation.createHTMLDocument('undo');
+      undoLevelDocument.set(Option.some(doc));
+      return doc;
+    });
+  };
</ins><span class="cx" style="display: block; padding: 0 10px">   var hasIframes = function (html) {
</span><span class="cx" style="display: block; padding: 0 10px">     return html.indexOf('</iframe>') !== -1;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17032,9 +17801,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createFromEditor = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var fragments, content, trimmedFragments;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    fragments = $_3bhk0u5fjfuw8m6j.read(editor.getBody());
-    trimmedFragments = $_9ek1bp4jfuw8kxg.bind(fragments, function (html) {
-      var trimmed = $_fglg0l5djfuw8m62.trimInternal(editor.serializer, html);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    fragments = $_6w5mhp61jjgwe8pt.read(editor.getBody());
+    trimmedFragments = bind(fragments, function (html) {
+      var trimmed = $_87j7cq5zjjgwe8pf.trimInternal(editor.serializer, html);
</ins><span class="cx" style="display: block; padding: 0 10px">       return trimmed.length > 0 ? [trimmed] : [];
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     content = trimmedFragments.join('');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17042,7 +17811,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var applyToEditor = function (editor, level, before) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (level.type === 'fragmented') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_3bhk0u5fjfuw8m6j.write(level.fragments, editor.getBody());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6w5mhp61jjgwe8pt.write(level.fragments, editor.getBody());
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.setContent(level.content, { format: 'raw' });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17052,10 +17821,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return level.type === 'fragmented' ? level.fragments.join('') : level.content;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getCleanLevelContent = function (level) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var elm = $_c9h6qlzjfuw8l98.fromTag('body');
-    $_98tc655hjfuw8m6r.set(elm, getLevelContent(level));
-    $_9ek1bp4jfuw8kxg.each($_ryxde2gjfuw8lkk.descendants(elm, '*[data-mce-bogus]'), $_byg6a92ujfuw8lmi.unwrap);
-    return $_98tc655hjfuw8m6r.get(elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var elm = Element$$1.fromTag('body', lazyTempDocument());
+    $_103qrc63jjgwe8q4.set(elm, getLevelContent(level));
+    each($_d3ydn427jjgwe7uf.descendants(elm, '*[data-mce-bogus]'), $_81exq51wjjgwe7sm.unwrap);
+    return $_103qrc63jjgwe8q4.get(elm);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasEqualContent = function (level1, level2) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getLevelContent(level1) === getLevelContent(level2);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17063,7 +17832,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var hasEqualCleanedContent = function (level1, level2) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getCleanLevelContent(level1) === getCleanLevelContent(level2);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isEq$2 = function (level1, level2) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isEq$3 = function (level1, level2) {
</ins><span class="cx" style="display: block; padding: 0 10px">     if (!level1 || !level2) {
</span><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (hasEqualContent(level1, level2)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17072,12 +17841,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return hasEqualCleanedContent(level1, level2);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7pq3kv5cjfuw8m5t = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4qf2in5yjjgwe8ow = {
</ins><span class="cx" style="display: block; padding: 0 10px">     createFragmentedLevel: createFragmentedLevel,
</span><span class="cx" style="display: block; padding: 0 10px">     createCompleteLevel: createCompleteLevel,
</span><span class="cx" style="display: block; padding: 0 10px">     createFromEditor: createFromEditor,
</span><span class="cx" style="display: block; padding: 0 10px">     applyToEditor: applyToEditor,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    isEq: isEq$2
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    isEq: isEq$3
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function UndoManager (editor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17136,7 +17905,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (keyCode === 46 || keyCode === 8) {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isFirstTypedCharacter && self.typing && $_7pq3kv5cjfuw8m5t.isEq($_7pq3kv5cjfuw8m5t.createFromEditor(editor), data[0]) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isFirstTypedCharacter && self.typing && $_4qf2in5yjjgwe8ow.isEq($_4qf2in5yjjgwe8ow.createFromEditor(editor), data[0]) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (editor.isDirty() === false) {
</span><span class="cx" style="display: block; padding: 0 10px">           setDirty(true);
</span><span class="cx" style="display: block; padding: 0 10px">           editor.fire('change', {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17196,7 +17965,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       typing: false,
</span><span class="cx" style="display: block; padding: 0 10px">       beforeChange: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         if (isUnlocked()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          beforeBookmark = $_cpdbfi2ojfuw8ll6.getUndoBookmark(editor.selection);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          beforeBookmark = $_ga29lf2jjjgwe7wh.getUndoBookmark(editor.selection);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       add: function (level, event) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17203,9 +17972,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var i;
</span><span class="cx" style="display: block; padding: 0 10px">         var settings = editor.settings;
</span><span class="cx" style="display: block; padding: 0 10px">         var lastLevel, currentLevel;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        currentLevel = $_7pq3kv5cjfuw8m5t.createFromEditor(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        currentLevel = $_4qf2in5yjjgwe8ow.createFromEditor(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         level = level || {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        level = $_52qop8kjfuw8l6v.extend(level, currentLevel);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        level = $_6cwiepljjgwe7j4.extend(level, currentLevel);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (isUnlocked() === false || editor.removed) {
</span><span class="cx" style="display: block; padding: 0 10px">           return null;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17217,7 +17986,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }).isDefaultPrevented()) {
</span><span class="cx" style="display: block; padding: 0 10px">           return null;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (lastLevel && $_7pq3kv5cjfuw8m5t.isEq(lastLevel, level)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (lastLevel && $_4qf2in5yjjgwe8ow.isEq(lastLevel, level)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return null;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (data[index]) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17232,7 +18001,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             index = data.length;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        level.bookmark = $_cpdbfi2ojfuw8ll6.getUndoBookmark(editor.selection);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        level.bookmark = $_ga29lf2jjjgwe7wh.getUndoBookmark(editor.selection);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (index < data.length - 1) {
</span><span class="cx" style="display: block; padding: 0 10px">           data.length = index + 1;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17259,7 +18028,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (index > 0) {
</span><span class="cx" style="display: block; padding: 0 10px">           level = data[--index];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_7pq3kv5cjfuw8m5t.applyToEditor(editor, level, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_4qf2in5yjjgwe8ow.applyToEditor(editor, level, true);
</ins><span class="cx" style="display: block; padding: 0 10px">           setDirty(true);
</span><span class="cx" style="display: block; padding: 0 10px">           editor.fire('undo', { level: level });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17269,7 +18038,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var level;
</span><span class="cx" style="display: block; padding: 0 10px">         if (index < data.length - 1) {
</span><span class="cx" style="display: block; padding: 0 10px">           level = data[++index];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_7pq3kv5cjfuw8m5t.applyToEditor(editor, level, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_4qf2in5yjjgwe8ow.applyToEditor(editor, level, false);
</ins><span class="cx" style="display: block; padding: 0 10px">           setDirty(true);
</span><span class="cx" style="display: block; padding: 0 10px">           editor.fire('redo', { level: level });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17283,7 +18052,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         editor.fire('ClearUndos');
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       hasUndo: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return index > 0 || self.typing && data[0] && !$_7pq3kv5cjfuw8m5t.isEq($_7pq3kv5cjfuw8m5t.createFromEditor(editor), data[0]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return index > 0 || self.typing && data[0] && !$_4qf2in5yjjgwe8ow.isEq($_4qf2in5yjjgwe8ow.createFromEditor(editor), data[0]);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       hasRedo: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return index < data.length - 1 && !self.typing;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17307,7 +18076,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (self.transact(callback1)) {
</span><span class="cx" style="display: block; padding: 0 10px">           bookmark = data[index].bookmark;
</span><span class="cx" style="display: block; padding: 0 10px">           lastLevel = data[index - 1];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_7pq3kv5cjfuw8m5t.applyToEditor(editor, lastLevel, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_4qf2in5yjjgwe8ow.applyToEditor(editor, lastLevel, true);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (self.transact(callback2)) {
</span><span class="cx" style="display: block; padding: 0 10px">             data[index - 1].beforeBookmark = bookmark;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17317,383 +18086,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return self;
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isInlineBlock = function (node) {
-    return node && /^(IMG)$/.test(node.nodeName);
-  };
-  var moveStart = function (dom, selection, rng) {
-    var offset = rng.startOffset;
-    var container = rng.startContainer, walker, node, nodes;
-    if (rng.startContainer === rng.endContainer) {
-      if (isInlineBlock(rng.startContainer.childNodes[rng.startOffset])) {
-        return;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  function Experimental (editor) {
+    var annotator = Annotator(editor);
+    var experimental = {};
+    Object.defineProperty(experimental, 'annotator', {
+      get: function () {
+        console.warn('Using experimental API: annotator');
+        return annotator;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    }
-    if (container.nodeType === 1) {
-      nodes = container.childNodes;
-      if (offset < nodes.length) {
-        container = nodes[offset];
-        walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));
-      } else {
-        container = nodes[nodes.length - 1];
-        walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));
-        walker.next(true);
-      }
-      for (node = walker.current(); node; node = walker.next()) {
-        if (node.nodeType === 3 && !isWhiteSpaceNode(node)) {
-          rng.setStart(node, 0);
-          selection.setRng(rng);
-          return;
-        }
-      }
-    }
-  };
-  var getNonWhiteSpaceSibling = function (node, next, inc) {
-    if (node) {
-      next = next ? 'nextSibling' : 'previousSibling';
-      for (node = inc ? node : node[next]; node; node = node[next]) {
-        if (node.nodeType === 1 || !isWhiteSpaceNode(node)) {
-          return node;
-        }
-      }
-    }
-  };
-  var isTextBlock$1 = function (editor, name) {
-    if (name.nodeType) {
-      name = name.nodeName;
-    }
-    return !!editor.schema.getTextBlockElements()[name.toLowerCase()];
-  };
-  var isValid = function (ed, parent, child) {
-    return ed.schema.isValidChild(parent, child);
-  };
-  var isWhiteSpaceNode = function (node) {
-    return node && node.nodeType === 3 && /^([\t \r\n]+|)$/.test(node.nodeValue);
-  };
-  var replaceVars = function (value, vars) {
-    if (typeof value !== 'string') {
-      value = value(vars);
-    } else if (vars) {
-      value = value.replace(/%(\w+)/g, function (str, name) {
-        return vars[name] || str;
-      });
-    }
-    return value;
-  };
-  var isEq$3 = function (str1, str2) {
-    str1 = str1 || '';
-    str2 = str2 || '';
-    str1 = '' + (str1.nodeName || str1);
-    str2 = '' + (str2.nodeName || str2);
-    return str1.toLowerCase() === str2.toLowerCase();
-  };
-  var normalizeStyleValue = function (dom, value, name) {
-    if (name === 'color' || name === 'backgroundColor') {
-      value = dom.toHex(value);
-    }
-    if (name === 'fontWeight' && value === 700) {
-      value = 'bold';
-    }
-    if (name === 'fontFamily') {
-      value = value.replace(/[\'\"]/g, '').replace(/,\s+/g, ',');
-    }
-    return '' + value;
-  };
-  var getStyle = function (dom, node, name) {
-    return normalizeStyleValue(dom, dom.getStyle(node, name), name);
-  };
-  var getTextDecoration = function (dom, node) {
-    var decoration;
-    dom.getParent(node, function (n) {
-      decoration = dom.getStyle(n, 'text-decoration');
-      return decoration && decoration !== 'none';
</del><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return decoration;
-  };
-  var getParents$1 = function (dom, node, selector) {
-    return dom.getParents(node, selector, dom.getRoot());
-  };
-  var $_5nzvub5njfuw8m89 = {
-    isInlineBlock: isInlineBlock,
-    moveStart: moveStart,
-    getNonWhiteSpaceSibling: getNonWhiteSpaceSibling,
-    isTextBlock: isTextBlock$1,
-    isValid: isValid,
-    isWhiteSpaceNode: isWhiteSpaceNode,
-    replaceVars: replaceVars,
-    isEq: isEq$3,
-    normalizeStyleValue: normalizeStyleValue,
-    getStyle: getStyle,
-    getTextDecoration: getTextDecoration,
-    getParents: getParents$1
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return experimental;
+  }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isBookmarkNode$2 = $_disscn2njfuw8ll3.isBookmarkNode;
-  var getParents$2 = $_5nzvub5njfuw8m89.getParents;
-  var isWhiteSpaceNode$1 = $_5nzvub5njfuw8m89.isWhiteSpaceNode;
-  var isTextBlock$2 = $_5nzvub5njfuw8m89.isTextBlock;
-  var findLeaf = function (node, offset) {
-    if (typeof offset === 'undefined') {
-      offset = node.nodeType === 3 ? node.length : node.childNodes.length;
-    }
-    while (node && node.hasChildNodes()) {
-      node = node.childNodes[offset];
-      if (node) {
-        offset = node.nodeType === 3 ? node.length : node.childNodes.length;
-      }
-    }
-    return {
-      node: node,
-      offset: offset
-    };
-  };
-  var excludeTrailingWhitespace = function (endContainer, endOffset) {
-    var leaf = findLeaf(endContainer, endOffset);
-    if (leaf.node) {
-      while (leaf.node && leaf.offset === 0 && leaf.node.previousSibling) {
-        leaf = findLeaf(leaf.node.previousSibling);
-      }
-      if (leaf.node && leaf.offset > 0 && leaf.node.nodeType === 3 && leaf.node.nodeValue.charAt(leaf.offset - 1) === ' ') {
-        if (leaf.offset > 1) {
-          endContainer = leaf.node;
-          endContainer.splitText(leaf.offset - 1);
-        }
-      }
-    }
-    return endContainer;
-  };
-  var isBogusBr = function (node) {
-    return node.nodeName === 'BR' && node.getAttribute('data-mce-bogus') && !node.nextSibling;
-  };
-  var findParentContentEditable = function (dom, node) {
-    var parent = node;
-    while (parent) {
-      if (parent.nodeType === 1 && dom.getContentEditable(parent)) {
-        return dom.getContentEditable(parent) === 'false' ? parent : node;
-      }
-      parent = parent.parentNode;
-    }
-    return node;
-  };
-  var findSpace = function (start, remove, node, offset) {
-    var pos, pos2;
-    var str = node.nodeValue;
-    if (typeof offset === 'undefined') {
-      offset = start ? str.length : 0;
-    }
-    if (start) {
-      pos = str.lastIndexOf(' ', offset);
-      pos2 = str.lastIndexOf('\xA0', offset);
-      pos = pos > pos2 ? pos : pos2;
-      if (pos !== -1 && !remove) {
-        pos++;
-      }
-    } else {
-      pos = str.indexOf(' ', offset);
-      pos2 = str.indexOf('\xA0', offset);
-      pos = pos !== -1 && (pos2 === -1 || pos < pos2) ? pos : pos2;
-    }
-    return pos;
-  };
-  var findWordEndPoint = function (dom, body, container, offset, start, remove) {
-    var walker, node, pos, lastTextNode;
-    if (container.nodeType === 3) {
-      pos = findSpace(start, remove, container, offset);
-      if (pos !== -1) {
-        return {
-          container: container,
-          offset: pos
-        };
-      }
-      lastTextNode = container;
-    }
-    walker = new TreeWalker(container, dom.getParent(container, dom.isBlock) || body);
-    while (node = walker[start ? 'prev' : 'next']()) {
-      if (node.nodeType === 3) {
-        lastTextNode = node;
-        pos = findSpace(start, remove, node);
-        if (pos !== -1) {
-          return {
-            container: node,
-            offset: pos
-          };
-        }
-      } else if (dom.isBlock(node)) {
-        break;
-      }
-    }
-    if (lastTextNode) {
-      if (start) {
-        offset = 0;
-      } else {
-        offset = lastTextNode.length;
-      }
-      return {
-        container: lastTextNode,
-        offset: offset
-      };
-    }
-  };
-  var findSelectorEndPoint = function (dom, format, rng, container, siblingName) {
-    var parents, i, y, curFormat;
-    if (container.nodeType === 3 && container.nodeValue.length === 0 && container[siblingName]) {
-      container = container[siblingName];
-    }
-    parents = getParents$2(dom, container);
-    for (i = 0; i < parents.length; i++) {
-      for (y = 0; y < format.length; y++) {
-        curFormat = format[y];
-        if ('collapsed' in curFormat && curFormat.collapsed !== rng.collapsed) {
-          continue;
-        }
-        if (dom.is(parents[i], curFormat.selector)) {
-          return parents[i];
-        }
-      }
-    }
-    return container;
-  };
-  var findBlockEndPoint = function (editor, format, container, siblingName) {
-    var node;
-    var dom = editor.dom;
-    var root = dom.getRoot();
-    if (!format[0].wrapper) {
-      node = dom.getParent(container, format[0].block, root);
-    }
-    if (!node) {
-      var scopeRoot = dom.getParent(container, 'LI,TD,TH');
-      node = dom.getParent(container.nodeType === 3 ? container.parentNode : container, function (node) {
-        return node !== root && isTextBlock$2(editor, node);
-      }, scopeRoot);
-    }
-    if (node && format[0].wrapper) {
-      node = getParents$2(dom, node, 'ul,ol').reverse()[0] || node;
-    }
-    if (!node) {
-      node = container;
-      while (node[siblingName] && !dom.isBlock(node[siblingName])) {
-        node = node[siblingName];
-        if ($_5nzvub5njfuw8m89.isEq(node, 'br')) {
-          break;
-        }
-      }
-    }
-    return node || container;
-  };
-  var findParentContainer = function (dom, format, startContainer, startOffset, endContainer, endOffset, start) {
-    var container, parent, sibling, siblingName, root;
-    container = parent = start ? startContainer : endContainer;
-    siblingName = start ? 'previousSibling' : 'nextSibling';
-    root = dom.getRoot();
-    if (container.nodeType === 3 && !isWhiteSpaceNode$1(container)) {
-      if (start ? startOffset > 0 : endOffset < container.nodeValue.length) {
-        return container;
-      }
-    }
-    while (true) {
-      if (!format[0].block_expand && dom.isBlock(parent)) {
-        return parent;
-      }
-      for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {
-        if (!isBookmarkNode$2(sibling) && !isWhiteSpaceNode$1(sibling) && !isBogusBr(sibling)) {
-          return parent;
-        }
-      }
-      if (parent === root || parent.parentNode === root) {
-        container = parent;
-        break;
-      }
-      parent = parent.parentNode;
-    }
-    return container;
-  };
-  var expandRng = function (editor, rng, format, remove) {
-    var endPoint, startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;
-    var dom = editor.dom;
-    if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {
-      startContainer = getNode(startContainer, startOffset);
-      if (startContainer.nodeType === 3) {
-        startOffset = 0;
-      }
-    }
-    if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {
-      endContainer = getNode(endContainer, rng.collapsed ? endOffset : endOffset - 1);
-      if (endContainer.nodeType === 3) {
-        endOffset = endContainer.nodeValue.length;
-      }
-    }
-    startContainer = findParentContentEditable(dom, startContainer);
-    endContainer = findParentContentEditable(dom, endContainer);
-    if (isBookmarkNode$2(startContainer.parentNode) || isBookmarkNode$2(startContainer)) {
-      startContainer = isBookmarkNode$2(startContainer) ? startContainer : startContainer.parentNode;
-      startContainer = startContainer.nextSibling || startContainer;
-      if (startContainer.nodeType === 3) {
-        startOffset = 0;
-      }
-    }
-    if (isBookmarkNode$2(endContainer.parentNode) || isBookmarkNode$2(endContainer)) {
-      endContainer = isBookmarkNode$2(endContainer) ? endContainer : endContainer.parentNode;
-      endContainer = endContainer.previousSibling || endContainer;
-      if (endContainer.nodeType === 3) {
-        endOffset = endContainer.length;
-      }
-    }
-    if (format[0].inline) {
-      if (rng.collapsed) {
-        endPoint = findWordEndPoint(dom, editor.getBody(), startContainer, startOffset, true, remove);
-        if (endPoint) {
-          startContainer = endPoint.container;
-          startOffset = endPoint.offset;
-        }
-        endPoint = findWordEndPoint(dom, editor.getBody(), endContainer, endOffset, false, remove);
-        if (endPoint) {
-          endContainer = endPoint.container;
-          endOffset = endPoint.offset;
-        }
-      }
-      endContainer = remove ? endContainer : excludeTrailingWhitespace(endContainer, endOffset);
-    }
-    if (format[0].inline || format[0].block_expand) {
-      if (!format[0].inline || (startContainer.nodeType !== 3 || startOffset === 0)) {
-        startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);
-      }
-      if (!format[0].inline || (endContainer.nodeType !== 3 || endOffset === endContainer.nodeValue.length)) {
-        endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);
-      }
-    }
-    if (format[0].selector && format[0].expand !== false && !format[0].inline) {
-      startContainer = findSelectorEndPoint(dom, format, rng, startContainer, 'previousSibling');
-      endContainer = findSelectorEndPoint(dom, format, rng, endContainer, 'nextSibling');
-    }
-    if (format[0].block || format[0].selector) {
-      startContainer = findBlockEndPoint(editor, format, startContainer, 'previousSibling');
-      endContainer = findBlockEndPoint(editor, format, endContainer, 'nextSibling');
-      if (format[0].block) {
-        if (!dom.isBlock(startContainer)) {
-          startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);
-        }
-        if (!dom.isBlock(endContainer)) {
-          endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);
-        }
-      }
-    }
-    if (startContainer.nodeType === 1) {
-      startOffset = dom.nodeIndex(startContainer);
-      startContainer = startContainer.parentNode;
-    }
-    if (endContainer.nodeType === 1) {
-      endOffset = dom.nodeIndex(endContainer) + 1;
-      endContainer = endContainer.parentNode;
-    }
-    return {
-      startContainer: startContainer,
-      startOffset: startOffset,
-      endContainer: endContainer,
-      endOffset: endOffset
-    };
-  };
-  var $_eq6rbn5mjfuw8m82 = { expandRng: expandRng };
-
-  var isEq$4 = $_5nzvub5njfuw8m89.isEq;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isEq$4 = $_4301413ajjgwe82g.isEq;
</ins><span class="cx" style="display: block; padding: 0 10px">   var matchesUnInheritedFormatSelector = function (ed, node, name) {
</span><span class="cx" style="display: block; padding: 0 10px">     var formatList = ed.formatter.get(name);
</span><span class="cx" style="display: block; padding: 0 10px">     if (formatList) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17743,12 +18148,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">             if (itemName === 'attributes') {
</span><span class="cx" style="display: block; padding: 0 10px">               value = dom.getAttrib(node, key);
</span><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              value = $_5nzvub5njfuw8m89.getStyle(dom, node, key);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              value = $_4301413ajjgwe82g.getStyle(dom, node, key);
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             if (similar && !value && !format.exact) {
</span><span class="cx" style="display: block; padding: 0 10px">               return;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if ((!similar || format.exact) && !isEq$4(value, $_5nzvub5njfuw8m89.normalizeStyleValue(dom, $_5nzvub5njfuw8m89.replaceVars(items[key], vars), key))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if ((!similar || format.exact) && !isEq$4(value, $_4301413ajjgwe82g.normalizeStyleValue(dom, $_4301413ajjgwe82g.replaceVars(items[key], vars), key))) {
</ins><span class="cx" style="display: block; padding: 0 10px">               return;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17755,7 +18160,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         for (i = 0; i < items.length; i++) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : $_5nzvub5njfuw8m89.getStyle(dom, node, items[i])) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : $_4301413ajjgwe82g.getStyle(dom, node, items[i])) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return format;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17823,7 +18228,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = editor.dom;
</span><span class="cx" style="display: block; padding: 0 10px">     if (formatList) {
</span><span class="cx" style="display: block; padding: 0 10px">       startNode = editor.selection.getStart();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      parents = $_5nzvub5njfuw8m89.getParents(dom, startNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      parents = $_4301413ajjgwe82g.getParents(dom, startNode);
</ins><span class="cx" style="display: block; padding: 0 10px">       for (x = formatList.length - 1; x >= 0; x--) {
</span><span class="cx" style="display: block; padding: 0 10px">         selector = formatList[x].selector;
</span><span class="cx" style="display: block; padding: 0 10px">         if (!selector || formatList[x].defaultBlock) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17838,7 +18243,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ggpery5ojfuw8m8e = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_7svyif69jjgwe8rf = {
</ins><span class="cx" style="display: block; padding: 0 10px">     matchNode: matchNode,
</span><span class="cx" style="display: block; padding: 0 10px">     matchName: matchName,
</span><span class="cx" style="display: block; padding: 0 10px">     match: match,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17852,7 +18257,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var split$1 = function (rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     var startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (startContainer === endContainer && $_ey7ka11qjfuw8ldg.isText(startContainer)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (startContainer === endContainer && $_3b9u2y1rjjgwe7qe.isText(startContainer)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (startOffset > 0 && startOffset < startContainer.nodeValue.length) {
</span><span class="cx" style="display: block; padding: 0 10px">         endContainer = splitText(startContainer, startOffset);
</span><span class="cx" style="display: block; padding: 0 10px">         startContainer = endContainer.previousSibling;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17866,11 +18271,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isText(startContainer) && startOffset > 0 && startOffset < startContainer.nodeValue.length) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isText(startContainer) && startOffset > 0 && startOffset < startContainer.nodeValue.length) {
</ins><span class="cx" style="display: block; padding: 0 10px">         startContainer = splitText(startContainer, startOffset);
</span><span class="cx" style="display: block; padding: 0 10px">         startOffset = 0;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isText(endContainer) && endOffset > 0 && endOffset < endContainer.nodeValue.length) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isText(endContainer) && endOffset > 0 && endOffset < endContainer.nodeValue.length) {
</ins><span class="cx" style="display: block; padding: 0 10px">         endContainer = splitText(endContainer, endOffset).previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">         endOffset = endContainer.nodeValue.length;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17882,9 +18287,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       endOffset: endOffset
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5l67ss5pjfuw8m8j = { split: split$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_10670d6ajjgwe8rj = { split: split$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var ZWSP$1 = $_dpfg1321jfuw8lhn.ZWSP;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var ZWSP$1 = $_2xw7ul2pjjgwe7xs.ZWSP;
</ins><span class="cx" style="display: block; padding: 0 10px">   var CARET_ID$1 = '_mce_caret';
</span><span class="cx" style="display: block; padding: 0 10px">   var importNode = function (ownerDocument, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     return ownerDocument.importNode(node, true);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17918,14 +18323,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return null;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createCaretContainer = function (fill) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var caretContainer = $_c9h6qlzjfuw8l98.fromTag('span');
-    $_8g002u14jfuw8la5.setAll(caretContainer, {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var caretContainer = Element$$1.fromTag('span');
+    $_etx7gr15jjgwe7mr.setAll(caretContainer, {
</ins><span class="cx" style="display: block; padding: 0 10px">       'id': CARET_ID$1,
</span><span class="cx" style="display: block; padding: 0 10px">       'data-mce-bogus': '1',
</span><span class="cx" style="display: block; padding: 0 10px">       'data-mce-type': 'format-caret'
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     if (fill) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_doli6x2kjfuw8lky.append(caretContainer, $_c9h6qlzjfuw8l98.fromText(ZWSP$1));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_ewo3u51yjjgwe7su.append(caretContainer, Element$$1.fromText(ZWSP$1));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return caretContainer;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17957,7 +18362,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       dom.remove(node, true);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (block && dom.isEmpty(block)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_5udnjn2tjfuw8lm4.fillWithPaddingBr($_c9h6qlzjfuw8l98.fromDom(block));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_fhp7pa3ljjgwe84n.fillWithPaddingBr(Element$$1.fromDom(block));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     selection.setRng(rng);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17974,11 +18379,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertCaretContainerNode = function (editor, caretContainer, formatNode) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var dom = editor.dom, block = dom.getParent(formatNode, $_ebfy8j25jfuw8li1.curry($_5nzvub5njfuw8m89.isTextBlock, editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var dom = editor.dom, block = dom.getParent(formatNode, $_4127e12ljjgwe7ww.curry($_4301413ajjgwe82g.isTextBlock, editor));
</ins><span class="cx" style="display: block; padding: 0 10px">     if (block && dom.isEmpty(block)) {
</span><span class="cx" style="display: block; padding: 0 10px">       formatNode.parentNode.replaceChild(caretContainer, formatNode);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_5udnjn2tjfuw8lm4.removeTrailingBr($_c9h6qlzjfuw8l98.fromDom(formatNode));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_fhp7pa3ljjgwe84n.removeTrailingBr(Element$$1.fromDom(formatNode));
</ins><span class="cx" style="display: block; padding: 0 10px">       if (dom.isEmpty(formatNode)) {
</span><span class="cx" style="display: block; padding: 0 10px">         formatNode.parentNode.replaceChild(caretContainer, formatNode);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17991,7 +18396,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return node;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertFormatNodesIntoCaretContainer = function (formatNodes, caretContainer) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var innerMostFormatNode = $_9ek1bp4jfuw8kxg.foldr(formatNodes, function (parentNode, formatNode) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var innerMostFormatNode = foldr(formatNodes, function (parentNode, formatNode) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return appendNode(parentNode, formatNode.cloneNode(false));
</span><span class="cx" style="display: block; padding: 0 10px">     }, caretContainer);
</span><span class="cx" style="display: block; padding: 0 10px">     return appendNode(innerMostFormatNode, innerMostFormatNode.ownerDocument.createTextNode(ZWSP$1));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18011,8 +18416,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (text && offset > 0 && offset < text.length && wordcharRegex.test(text.charAt(offset)) && wordcharRegex.test(text.charAt(offset - 1))) {
</span><span class="cx" style="display: block; padding: 0 10px">       bookmark = selection.getBookmark();
</span><span class="cx" style="display: block; padding: 0 10px">       rng.collapse(true);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      rng = $_eq6rbn5mjfuw8m82.expandRng(editor, rng, editor.formatter.get(name));
-      rng = $_5l67ss5pjfuw8m8j.split(rng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      rng = $_1f06hv2ujjgwe7y7.expandRng(editor, rng, editor.formatter.get(name));
+      rng = $_10670d6ajjgwe8rj.split(rng);
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.formatter.apply(name, vars, rng);
</span><span class="cx" style="display: block; padding: 0 10px">       selection.moveToBookmark(bookmark);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18044,7 +18449,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       node = node.parentNode;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     while (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ggpery5ojfuw8m8e.matchNode(editor, node, name, vars, similar)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_7svyif69jjgwe8rf.matchNode(editor, node, name, vars, similar)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         formatNode = node;
</span><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18060,8 +18465,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (hasContentAfter) {
</span><span class="cx" style="display: block; padding: 0 10px">       bookmark = selection.getBookmark();
</span><span class="cx" style="display: block; padding: 0 10px">       rng.collapse(true);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var expandedRng = $_eq6rbn5mjfuw8m82.expandRng(editor, rng, editor.formatter.get(name), true);
-      expandedRng = $_5l67ss5pjfuw8m8j.split(expandedRng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var expandedRng = $_1f06hv2ujjgwe7y7.expandRng(editor, rng, editor.formatter.get(name), true);
+      expandedRng = $_10670d6ajjgwe8rj.split(expandedRng);
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.formatter.remove(name, vars, expandedRng);
</span><span class="cx" style="display: block; padding: 0 10px">       selection.moveToBookmark(bookmark);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18089,7 +18494,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       removeCaretContainer(body, dom, selection, getParentCaretContainer(body, selection.getStart()));
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$2 = function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$4 = function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var dom = editor.dom, selection = editor.selection;
</span><span class="cx" style="display: block; padding: 0 10px">     var body = editor.getBody();
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('mouseup keydown', function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18099,18 +18504,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var replaceWithCaretFormat = function (targetNode, formatNodes) {
</span><span class="cx" style="display: block; padding: 0 10px">     var caretContainer = createCaretContainer(false);
</span><span class="cx" style="display: block; padding: 0 10px">     var innerMost = insertFormatNodesIntoCaretContainer(formatNodes, caretContainer.dom());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_doli6x2kjfuw8lky.before($_c9h6qlzjfuw8l98.fromDom(targetNode), caretContainer);
-    $_byg6a92ujfuw8lmi.remove($_c9h6qlzjfuw8l98.fromDom(targetNode));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_ewo3u51yjjgwe7su.before(Element$$1.fromDom(targetNode), caretContainer);
+    $_81exq51wjjgwe7sm.remove(Element$$1.fromDom(targetNode));
</ins><span class="cx" style="display: block; padding: 0 10px">     return CaretPosition$1(innerMost, 0);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isFormatElement = function (editor, element) {
</span><span class="cx" style="display: block; padding: 0 10px">     var inlineElements = editor.schema.getTextInlineElements();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return inlineElements.hasOwnProperty($_eaw33d10jfuw8l9f.name(element)) && !isCaretNode(element.dom()) && !$_ey7ka11qjfuw8ldg.isBogus(element.dom());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return inlineElements.hasOwnProperty($_fxxo5411jjgwe7lq.name(element)) && !isCaretNode(element.dom()) && !$_3b9u2y1rjjgwe7qe.isBogus(element.dom());
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var postProcessHooks = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var filter$2 = $_djuh8tljfuw8l74.filter;
-  var each$12 = $_djuh8tljfuw8l74.each;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var filter$2 = $_6t4axrmjjgwe7jf.filter;
+  var each$12 = $_6t4axrmjjgwe7jf.each;
</ins><span class="cx" style="display: block; padding: 0 10px">   var addPostProcessHook = function (name, hook) {
</span><span class="cx" style="display: block; padding: 0 10px">     var hooks = postProcessHooks[name];
</span><span class="cx" style="display: block; padding: 0 10px">     if (!hooks) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18127,13 +18532,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var rng = editor.selection.getRng();
</span><span class="cx" style="display: block; padding: 0 10px">     var isPre, blocks;
</span><span class="cx" style="display: block; padding: 0 10px">     var hasPreSibling = function (pre) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return isPre(pre.previousSibling) && $_djuh8tljfuw8l74.indexOf(blocks, pre.previousSibling) !== -1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return isPre(pre.previousSibling) && $_6t4axrmjjgwe7jf.indexOf(blocks, pre.previousSibling) !== -1;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var joinPre = function (pre1, pre2) {
</span><span class="cx" style="display: block; padding: 0 10px">       DomQuery(pre2).remove();
</span><span class="cx" style="display: block; padding: 0 10px">       DomQuery(pre1).append('<br><br>').append(pre2.childNodes);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    isPre = $_ey7ka11qjfuw8ldg.matchNodeNames('pre');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    isPre = $_3b9u2y1rjjgwe7qe.matchNodeNames('pre');
</ins><span class="cx" style="display: block; padding: 0 10px">     if (!rng.collapsed) {
</span><span class="cx" style="display: block; padding: 0 10px">       blocks = editor.selection.getSelectedBlocks();
</span><span class="cx" style="display: block; padding: 0 10px">       each$12(filter$2(filter$2(blocks, isPre), hasPreSibling), function (pre) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18141,118 +18546,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_18y3c15qjfuw8m8m = { postProcess: postProcess };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_49rwy16bjjgwe8rl = { postProcess: postProcess };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$13 = $_52qop8kjfuw8l6v.each;
-  var getEndChild = function (container, index) {
-    var childNodes = container.childNodes;
-    index--;
-    if (index > childNodes.length - 1) {
-      index = childNodes.length - 1;
-    } else if (index < 0) {
-      index = 0;
-    }
-    return childNodes[index] || container;
-  };
-  var walk$2 = function (dom, rng, callback) {
-    var startContainer = rng.startContainer;
-    var startOffset = rng.startOffset;
-    var endContainer = rng.endContainer;
-    var endOffset = rng.endOffset;
-    var ancestor;
-    var startPoint;
-    var endPoint;
-    var node;
-    var parent;
-    var siblings;
-    var nodes;
-    nodes = dom.select('td[data-mce-selected],th[data-mce-selected]');
-    if (nodes.length > 0) {
-      each$13(nodes, function (node) {
-        callback([node]);
-      });
-      return;
-    }
-    var exclude = function (nodes) {
-      var node;
-      node = nodes[0];
-      if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) {
-        nodes.splice(0, 1);
-      }
-      node = nodes[nodes.length - 1];
-      if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) {
-        nodes.splice(nodes.length - 1, 1);
-      }
-      return nodes;
-    };
-    var collectSiblings = function (node, name, endNode) {
-      var siblings = [];
-      for (; node && node !== endNode; node = node[name]) {
-        siblings.push(node);
-      }
-      return siblings;
-    };
-    var findEndPoint = function (node, root) {
-      do {
-        if (node.parentNode === root) {
-          return node;
-        }
-        node = node.parentNode;
-      } while (node);
-    };
-    var walkBoundary = function (startNode, endNode, next) {
-      var siblingName = next ? 'nextSibling' : 'previousSibling';
-      for (node = startNode, parent = node.parentNode; node && node !== endNode; node = parent) {
-        parent = node.parentNode;
-        siblings = collectSiblings(node === startNode ? node : node[siblingName], siblingName);
-        if (siblings.length) {
-          if (!next) {
-            siblings.reverse();
-          }
-          callback(exclude(siblings));
-        }
-      }
-    };
-    if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {
-      startContainer = startContainer.childNodes[startOffset];
-    }
-    if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {
-      endContainer = getEndChild(endContainer, endOffset);
-    }
-    if (startContainer === endContainer) {
-      return callback(exclude([startContainer]));
-    }
-    ancestor = dom.findCommonAncestor(startContainer, endContainer);
-    for (node = startContainer; node; node = node.parentNode) {
-      if (node === endContainer) {
-        return walkBoundary(startContainer, ancestor, true);
-      }
-      if (node === ancestor) {
-        break;
-      }
-    }
-    for (node = endContainer; node; node = node.parentNode) {
-      if (node === startContainer) {
-        return walkBoundary(endContainer, ancestor);
-      }
-      if (node === ancestor) {
-        break;
-      }
-    }
-    startPoint = findEndPoint(startContainer, ancestor) || startContainer;
-    endPoint = findEndPoint(endContainer, ancestor) || endContainer;
-    walkBoundary(startContainer, startPoint, true);
-    siblings = collectSiblings(startPoint === startContainer ? startPoint : startPoint.nextSibling, 'nextSibling', endPoint === endContainer ? endPoint.nextSibling : endPoint);
-    if (siblings.length) {
-      callback(exclude(siblings));
-    }
-    walkBoundary(endContainer, endPoint);
-  };
-  var $_1l4f5i5tjfuw8m9h = { walk: walk$2 };
-
</del><span class="cx" style="display: block; padding: 0 10px">   var MCE_ATTR_RE = /^(src|href|style)$/;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$14 = $_52qop8kjfuw8l6v.each;
-  var isEq$5 = $_5nzvub5njfuw8m89.isEq;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$13 = $_6cwiepljjgwe7j4.each;
+  var isEq$5 = $_4301413ajjgwe82g.isEq;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isTableCell$4 = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     return /^(TH|TD)$/.test(node.nodeName);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18260,7 +18558,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var container, offset, lastIdx;
</span><span class="cx" style="display: block; padding: 0 10px">     container = rng[start ? 'startContainer' : 'endContainer'];
</span><span class="cx" style="display: block; padding: 0 10px">     offset = rng[start ? 'startOffset' : 'endOffset'];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isElement(container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isElement(container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       lastIdx = container.childNodes.length - 1;
</span><span class="cx" style="display: block; padding: 0 10px">       if (!start && offset) {
</span><span class="cx" style="display: block; padding: 0 10px">         offset--;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18267,10 +18565,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       container = container.childNodes[offset > lastIdx ? lastIdx : offset];
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isText(container) && start && offset >= container.nodeValue.length) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isText(container) && start && offset >= container.nodeValue.length) {
</ins><span class="cx" style="display: block; padding: 0 10px">       container = new TreeWalker(container, ed.getBody()).next() || container;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isText(container) && !start && offset === 0) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isText(container) && !start && offset === 0) {
</ins><span class="cx" style="display: block; padding: 0 10px">       container = new TreeWalker(container, ed.getBody()).prev() || container;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return container;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18289,7 +18587,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (format.selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_ey7ka11qjfuw8ldg.isElement(node) && dom.is(node, format.selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_3b9u2y1rjjgwe7qe.isElement(node) && dom.is(node, format.selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isColorFormatAndAnchor = function (node, format) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18296,7 +18594,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return format.links && node.tagName === 'A';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var find$4 = function (dom, node, next, inc) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    node = $_5nzvub5njfuw8m89.getNonWhiteSpaceSibling(node, next, inc);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    node = $_4301413ajjgwe82g.getNonWhiteSpaceSibling(node, next, inc);
</ins><span class="cx" style="display: block; padding: 0 10px">     return !node || (node.nodeName === 'BR' || dom.isBlock(node));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var removeNode$1 = function (ed, node, format) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18316,8 +18614,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         if (parentNode === dom.getRoot()) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (!format.list_block || !isEq$5(node, format.list_block)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            each$14($_52qop8kjfuw8l6v.grep(node.childNodes), function (node) {
-              if ($_5nzvub5njfuw8m89.isValid(ed, forcedRootBlock, node.nodeName.toLowerCase())) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            each$13($_6cwiepljjgwe7j4.grep(node.childNodes), function (node) {
+              if ($_4301413ajjgwe82g.isValid(ed, forcedRootBlock, node.nodeName.toLowerCase())) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 if (!rootBlockElm) {
</span><span class="cx" style="display: block; padding: 0 10px">                   rootBlockElm = wrap$2(dom, node, forcedRootBlock);
</span><span class="cx" style="display: block; padding: 0 10px">                   dom.setAttribs(rootBlockElm, ed.settings.forced_root_block_attrs);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18344,13 +18642,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (format.remove !== 'all') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$14(format.styles, function (value, name) {
-        value = $_5nzvub5njfuw8m89.normalizeStyleValue(dom, $_5nzvub5njfuw8m89.replaceVars(value, vars), name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$13(format.styles, function (value, name) {
+        value = $_4301413ajjgwe82g.normalizeStyleValue(dom, $_4301413ajjgwe82g.replaceVars(value, vars), name);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (typeof name === 'number') {
</span><span class="cx" style="display: block; padding: 0 10px">           name = value;
</span><span class="cx" style="display: block; padding: 0 10px">           compareNode = 0;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (format.remove_similar || (!compareNode || isEq$5($_5nzvub5njfuw8m89.getStyle(dom, compareNode, name), value))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (format.remove_similar || (!compareNode || isEq$5($_4301413ajjgwe82g.getStyle(dom, compareNode, name), value))) {
</ins><span class="cx" style="display: block; padding: 0 10px">           dom.setStyle(node, name, '');
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         stylesModified = 1;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18359,9 +18657,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         node.removeAttribute('style');
</span><span class="cx" style="display: block; padding: 0 10px">         node.removeAttribute('data-mce-style');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$14(format.attributes, function (value, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$13(format.attributes, function (value, name) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var valueOut;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        value = $_5nzvub5njfuw8m89.replaceVars(value, vars);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        value = $_4301413ajjgwe82g.replaceVars(value, vars);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (typeof name === 'number') {
</span><span class="cx" style="display: block; padding: 0 10px">           name = value;
</span><span class="cx" style="display: block; padding: 0 10px">           compareNode = 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18371,7 +18669,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             value = dom.getAttrib(node, name);
</span><span class="cx" style="display: block; padding: 0 10px">             if (value) {
</span><span class="cx" style="display: block; padding: 0 10px">               valueOut = '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              each$14(value.split(/\s+/), function (cls) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              each$13(value.split(/\s+/), function (cls) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 if (/mce\-\w+/.test(cls)) {
</span><span class="cx" style="display: block; padding: 0 10px">                   valueOut += (valueOut ? ' ' : '') + cls;
</span><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18391,8 +18689,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">           node.removeAttribute(name);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$14(format.classes, function (value) {
-        value = $_5nzvub5njfuw8m89.replaceVars(value, vars);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$13(format.classes, function (value) {
+        value = $_4301413ajjgwe82g.replaceVars(value, vars);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!compareNode || dom.hasClass(compareNode, value)) {
</span><span class="cx" style="display: block; padding: 0 10px">           dom.removeClass(node, value);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18412,10 +18710,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findFormatRoot = function (editor, container, name, vars, similar) {
</span><span class="cx" style="display: block; padding: 0 10px">     var formatRoot;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$14($_5nzvub5njfuw8m89.getParents(editor.dom, container.parentNode).reverse(), function (parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$13($_4301413ajjgwe82g.getParents(editor.dom, container.parentNode).reverse(), function (parent) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var format;
</span><span class="cx" style="display: block; padding: 0 10px">       if (!formatRoot && parent.id !== '_start' && parent.id !== '_end') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        format = $_ggpery5ojfuw8m8e.matchNode(editor, parent, name, vars, similar);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        format = $_7svyif69jjgwe8rf.matchNode(editor, parent, name, vars, similar);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (format && format.split !== false) {
</span><span class="cx" style="display: block; padding: 0 10px">           formatRoot = parent;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18456,7 +18754,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return container;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var remove$4 = function (ed, name, vars, node, similar) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var remove$8 = function (ed, name, vars, node, similar) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var formatList = ed.formatter.get(name), format = formatList[0];
</span><span class="cx" style="display: block; padding: 0 10px">     var bookmark, rng, contentEditable = true;
</span><span class="cx" style="display: block; padding: 0 10px">     var dom = ed.dom;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18467,12 +18765,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var process = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">       var children, i, l, lastContentEditable, hasContentEditableState;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isElement(node) && dom.getContentEditable(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isElement(node) && dom.getContentEditable(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         lastContentEditable = contentEditable;
</span><span class="cx" style="display: block; padding: 0 10px">         contentEditable = dom.getContentEditable(node) === 'true';
</span><span class="cx" style="display: block; padding: 0 10px">         hasContentEditableState = true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      children = $_52qop8kjfuw8l6v.grep(node.childNodes);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      children = $_6cwiepljjgwe7j4.grep(node.childNodes);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (contentEditable && !hasContentEditableState) {
</span><span class="cx" style="display: block; padding: 0 10px">         for (i = 0, l = formatList.length; i < l; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (removeFormat(ed, formatList[i], vars, node, node)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18494,10 +18792,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var unwrap = function (start) {
</span><span class="cx" style="display: block; padding: 0 10px">       var node = dom.get(start ? '_start' : '_end');
</span><span class="cx" style="display: block; padding: 0 10px">       var out = node[start ? 'firstChild' : 'lastChild'];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_disscn2njfuw8ll3.isBookmarkNode(out)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_6refgt2vjjgwe7yn.isBookmarkNode(out)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         out = out[start ? 'firstChild' : 'lastChild'];
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isText(out) && out.data.length === 0) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isText(out) && out.data.length === 0) {
</ins><span class="cx" style="display: block; padding: 0 10px">         out = start ? node.previousSibling || node.nextSibling : node.nextSibling || node.previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       dom.remove(node, true);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18506,7 +18804,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var removeRngStyle = function (rng) {
</span><span class="cx" style="display: block; padding: 0 10px">       var startContainer, endContainer;
</span><span class="cx" style="display: block; padding: 0 10px">       var commonAncestorContainer = rng.commonAncestorContainer;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      rng = $_eq6rbn5mjfuw8m82.expandRng(ed, rng, formatList, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      rng = $_1f06hv2ujjgwe7y7.expandRng(ed, rng, formatList, true);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (format.split) {
</span><span class="cx" style="display: block; padding: 0 10px">         startContainer = getContainer(ed, rng, true);
</span><span class="cx" style="display: block; padding: 0 10px">         endContainer = getContainer(ed, rng);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18550,10 +18848,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         rng.endContainer = endContainer.parentNode ? endContainer.parentNode : endContainer;
</span><span class="cx" style="display: block; padding: 0 10px">         rng.endOffset = dom.nodeIndex(endContainer) + 1;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_1l4f5i5tjfuw8m9h.walk(dom, rng, function (nodes) {
-        each$14(nodes, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_e2gzn43bjjgwe82k.walk(dom, rng, function (nodes) {
+        each$13(nodes, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           process(node);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ($_ey7ka11qjfuw8ldg.isElement(node) && ed.dom.getStyle(node, 'text-decoration') === 'underline' && node.parentNode && $_5nzvub5njfuw8m89.getTextDecoration(dom, node.parentNode) === 'underline') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ($_3b9u2y1rjjgwe7qe.isElement(node) && ed.dom.getStyle(node, 'text-decoration') === 'underline' && node.parentNode && $_4301413ajjgwe82g.getTextDecoration(dom, node.parentNode) === 'underline') {
</ins><span class="cx" style="display: block; padding: 0 10px">             removeFormat(ed, {
</span><span class="cx" style="display: block; padding: 0 10px">               deep: false,
</span><span class="cx" style="display: block; padding: 0 10px">               exact: true,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18587,11 +18885,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (!selection.isCollapsed() || !format.inline || dom.select('td[data-mce-selected],th[data-mce-selected]').length) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      bookmark = $_cpdbfi2ojfuw8ll6.getPersistentBookmark(ed.selection, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      bookmark = $_ga29lf2jjjgwe7wh.getPersistentBookmark(ed.selection, true);
</ins><span class="cx" style="display: block; padding: 0 10px">       removeRngStyle(selection.getRng());
</span><span class="cx" style="display: block; padding: 0 10px">       selection.moveToBookmark(bookmark);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (format.inline && $_ggpery5ojfuw8m8e.match(ed, name, vars, selection.getStart())) {
-        $_5nzvub5njfuw8m89.moveStart(dom, selection, selection.getRng());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (format.inline && $_7svyif69jjgwe8rf.match(ed, name, vars, selection.getStart())) {
+        $_4301413ajjgwe82g.moveStart(dom, selection, selection.getRng());
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       ed.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18598,14 +18896,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">       removeCaretFormat(ed, name, vars, similar);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cm1urk5sjfuw8m8x = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_y6kng6djjgwe8ry = {
</ins><span class="cx" style="display: block; padding: 0 10px">     removeFormat: removeFormat,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    remove: remove$4
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    remove: remove$8
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$15 = $_52qop8kjfuw8l6v.each;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$14 = $_6cwiepljjgwe7j4.each;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isElementNode = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return node && node.nodeType === 1 && !$_disscn2njfuw8ll3.isBookmarkNode(node) && !isCaretNode(node) && !$_ey7ka11qjfuw8ldg.isBogus(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return node && node.nodeType === 1 && !$_6refgt2vjjgwe7yn.isBookmarkNode(node) && !isCaretNode(node) && !$_3b9u2y1rjjgwe7qe.isBogus(node);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findElementSibling = function (node, siblingName) {
</span><span class="cx" style="display: block; padding: 0 10px">     var sibling;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18613,7 +18911,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (sibling.nodeType === 3 && sibling.nodeValue.length !== 0) {
</span><span class="cx" style="display: block; padding: 0 10px">         return node;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (sibling.nodeType === 1 && !$_disscn2njfuw8ll3.isBookmarkNode(sibling)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (sibling.nodeType === 1 && !$_6refgt2vjjgwe7yn.isBookmarkNode(sibling)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return sibling;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18632,7 +18930,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           prev.appendChild(tmpSibling);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         dom.remove(next);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_52qop8kjfuw8l6v.each($_52qop8kjfuw8l6v.grep(next.childNodes), function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6cwiepljjgwe7j4.each($_6cwiepljjgwe7j4.grep(next.childNodes), function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           prev.appendChild(node);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         return prev;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18641,7 +18939,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return next;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var processChildElements = function (node, filter, process) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$15(node.childNodes, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$14(node.childNodes, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (isElementNode(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (filter(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">           process(node);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18653,12 +18951,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasStyle = function (dom, name) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_68e81l6jfuw8kyc.curry(function (name, node) {
-      return !!(node && $_5nzvub5njfuw8m89.getStyle(dom, node, name));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return curry(function (name, node) {
+      return !!(node && $_4301413ajjgwe82g.getStyle(dom, node, name));
</ins><span class="cx" style="display: block; padding: 0 10px">     }, name);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var applyStyle = function (dom, name, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_68e81l6jfuw8kyc.curry(function (name, value, node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return curry(function (name, value, node) {
</ins><span class="cx" style="display: block; padding: 0 10px">       dom.setStyle(node, name, value);
</span><span class="cx" style="display: block; padding: 0 10px">       if (node.getAttribute('style') === '') {
</span><span class="cx" style="display: block; padding: 0 10px">         node.removeAttribute('style');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18674,7 +18972,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var processUnderlineAndColor = function (dom, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     var textDecoration;
</span><span class="cx" style="display: block; padding: 0 10px">     if (node.nodeType === 1 && node.parentNode && node.parentNode.nodeType === 1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      textDecoration = $_5nzvub5njfuw8m89.getTextDecoration(dom, node.parentNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      textDecoration = $_4301413ajjgwe82g.getTextDecoration(dom, node.parentNode);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (dom.getStyle(node, 'color') && textDecoration) {
</span><span class="cx" style="display: block; padding: 0 10px">         dom.setStyle(node, 'text-decoration', textDecoration);
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (dom.getStyle(node, 'text-decoration') === textDecoration) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18684,13 +18982,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeUnderlineAndColor = function (dom, format, vars, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (format.styles.color || format.styles.textDecoration) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_52qop8kjfuw8l6v.walk(node, $_68e81l6jfuw8kyc.curry(processUnderlineAndColor, dom), 'childNodes');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6cwiepljjgwe7j4.walk(node, curry(processUnderlineAndColor, dom), 'childNodes');
</ins><span class="cx" style="display: block; padding: 0 10px">       processUnderlineAndColor(dom, node);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeBackgroundColorAndFontSize = function (dom, format, vars, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (format.styles && format.styles.backgroundColor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'backgroundColor', $_5nzvub5njfuw8m89.replaceVars(format.styles.backgroundColor, vars)));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'backgroundColor', $_4301413ajjgwe82g.replaceVars(format.styles.backgroundColor, vars)));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeSubSup = function (dom, format, vars, node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18701,16 +18999,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeSiblings = function (dom, format, vars, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (node && format.merge_siblings !== false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      node = mergeSiblingsNodes(dom, $_5nzvub5njfuw8m89.getNonWhiteSpaceSibling(node), node);
-      node = mergeSiblingsNodes(dom, node, $_5nzvub5njfuw8m89.getNonWhiteSpaceSibling(node, true));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      node = mergeSiblingsNodes(dom, $_4301413ajjgwe82g.getNonWhiteSpaceSibling(node), node);
+      node = mergeSiblingsNodes(dom, node, $_4301413ajjgwe82g.getNonWhiteSpaceSibling(node, true));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var clearChildStyles = function (dom, format, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (format.clear_child_styles) {
</span><span class="cx" style="display: block; padding: 0 10px">       var selector = format.links ? '*:not(a)' : '*';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$15(dom.select(selector, node), function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$14(dom.select(selector, node), function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (isElementNode(node)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$15(format.styles, function (value, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$14(format.styles, function (value, name) {
</ins><span class="cx" style="display: block; padding: 0 10px">             dom.setStyle(node, name, '');
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18718,32 +19016,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeWithChildren = function (editor, formatList, vars, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$15(formatList, function (format) {
-      each$15(editor.dom.select(format.inline, node), function (child) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$14(formatList, function (format) {
+      each$14(editor.dom.select(format.inline, node), function (child) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!isElementNode(child)) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_cm1urk5sjfuw8m8x.removeFormat(editor, format, vars, child, format.exact ? child : null);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_y6kng6djjgwe8ry.removeFormat(editor, format, vars, child, format.exact ? child : null);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       clearChildStyles(editor.dom, format, node);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var mergeWithParents = function (editor, format, name, vars, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ggpery5ojfuw8m8e.matchNode(editor, node.parentNode, name, vars)) {
-      if ($_cm1urk5sjfuw8m8x.removeFormat(editor, format, vars, node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_7svyif69jjgwe8rf.matchNode(editor, node.parentNode, name, vars)) {
+      if ($_y6kng6djjgwe8ry.removeFormat(editor, format, vars, node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (format.merge_with_parents) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.dom.getParent(node.parentNode, function (parent) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_ggpery5ojfuw8m8e.matchNode(editor, parent, name, vars)) {
-          $_cm1urk5sjfuw8m8x.removeFormat(editor, format, vars, node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_7svyif69jjgwe8rf.matchNode(editor, parent, name, vars)) {
+          $_y6kng6djjgwe8ry.removeFormat(editor, format, vars, node);
</ins><span class="cx" style="display: block; padding: 0 10px">           return true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5wjyn05rjfuw8m8o = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_3rh05e6cjjgwe8rp = {
</ins><span class="cx" style="display: block; padding: 0 10px">     mergeWithChildren: mergeWithChildren,
</span><span class="cx" style="display: block; padding: 0 10px">     mergeUnderlineAndColor: mergeUnderlineAndColor,
</span><span class="cx" style="display: block; padding: 0 10px">     mergeBackgroundColorAndFontSize: mergeBackgroundColorAndFontSize,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18752,9 +19050,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     mergeWithParents: mergeWithParents
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$16 = $_52qop8kjfuw8l6v.each;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$15 = $_6cwiepljjgwe7j4.each;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isElementNode$1 = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return node && node.nodeType === 1 && !$_disscn2njfuw8ll3.isBookmarkNode(node) && !isCaretNode(node) && !$_ey7ka11qjfuw8ldg.isBogus(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return node && node.nodeType === 1 && !$_6refgt2vjjgwe7yn.isBookmarkNode(node) && !isCaretNode(node) && !$_3b9u2y1rjjgwe7qe.isBogus(node);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var applyFormat = function (ed, name, vars, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     var formatList = ed.formatter.get(name);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18768,8 +19066,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (fmt.onformat) {
</span><span class="cx" style="display: block; padding: 0 10px">           fmt.onformat(elm, fmt, vars, node);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each$16(fmt.styles, function (value, name) {
-          dom.setStyle(elm, name, $_5nzvub5njfuw8m89.replaceVars(value, vars));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each$15(fmt.styles, function (value, name) {
+          dom.setStyle(elm, name, $_4301413ajjgwe82g.replaceVars(value, vars));
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         if (fmt.styles) {
</span><span class="cx" style="display: block; padding: 0 10px">           var styleVal = dom.getAttrib(elm, 'style');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18777,11 +19075,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">             elm.setAttribute('data-mce-style', styleVal);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each$16(fmt.attributes, function (value, name) {
-          dom.setAttrib(elm, name, $_5nzvub5njfuw8m89.replaceVars(value, vars));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each$15(fmt.attributes, function (value, name) {
+          dom.setAttrib(elm, name, $_4301413ajjgwe82g.replaceVars(value, vars));
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each$16(fmt.classes, function (value) {
-          value = $_5nzvub5njfuw8m89.replaceVars(value, vars);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each$15(fmt.classes, function (value) {
+          value = $_4301413ajjgwe82g.replaceVars(value, vars);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!dom.hasClass(elm, value)) {
</span><span class="cx" style="display: block; padding: 0 10px">             dom.addClass(elm, value);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18793,7 +19091,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!format.selector) {
</span><span class="cx" style="display: block; padding: 0 10px">         return false;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$16(formatList, function (format) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$15(formatList, function (format) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if ('collapsed' in format && format.collapsed !== isCollapsed) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18811,7 +19109,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       wrapName = format.inline || format.block;
</span><span class="cx" style="display: block; padding: 0 10px">       wrapElm = dom.create(wrapName);
</span><span class="cx" style="display: block; padding: 0 10px">       setElementFormat(wrapElm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_1l4f5i5tjfuw8m9h.walk(dom, rng, function (nodes) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_e2gzn43bjjgwe82k.walk(dom, rng, function (nodes) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var currentWrapElm;
</span><span class="cx" style="display: block; padding: 0 10px">         var process = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">           var nodeName, parentName, hasContentEditableState, lastContentEditable;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18823,7 +19121,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             contentEditable = dom.getContentEditable(node) === 'true';
</span><span class="cx" style="display: block; padding: 0 10px">             hasContentEditableState = true;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ($_5nzvub5njfuw8m89.isEq(nodeName, 'br')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ($_4301413ajjgwe82g.isEq(nodeName, 'br')) {
</ins><span class="cx" style="display: block; padding: 0 10px">             currentWrapElm = 0;
</span><span class="cx" style="display: block; padding: 0 10px">             if (format.block) {
</span><span class="cx" style="display: block; padding: 0 10px">               dom.remove(node);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18830,11 +19128,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (format.wrapper && $_ggpery5ojfuw8m8e.matchNode(ed, node, name, vars)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (format.wrapper && $_7svyif69jjgwe8rf.matchNode(ed, node, name, vars)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             currentWrapElm = 0;
</span><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (contentEditable && !hasContentEditableState && format.block && !format.wrapper && $_5nzvub5njfuw8m89.isTextBlock(ed, nodeName) && $_5nzvub5njfuw8m89.isValid(ed, parentName, wrapName)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (contentEditable && !hasContentEditableState && format.block && !format.wrapper && $_4301413ajjgwe82g.isTextBlock(ed, nodeName) && $_4301413ajjgwe82g.isValid(ed, parentName, wrapName)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             node = dom.rename(node, wrapName);
</span><span class="cx" style="display: block; padding: 0 10px">             setElementFormat(node);
</span><span class="cx" style="display: block; padding: 0 10px">             newWrappers.push(node);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18848,7 +19146,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">               return;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (contentEditable && !hasContentEditableState && $_5nzvub5njfuw8m89.isValid(ed, wrapName, nodeName) && $_5nzvub5njfuw8m89.isValid(ed, parentName, wrapName) && !(!nodeSpecific && node.nodeType === 3 && node.nodeValue.length === 1 && node.nodeValue.charCodeAt(0) === 65279) && !isCaretNode(node) && (!format.inline || !dom.isBlock(node))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (contentEditable && !hasContentEditableState && $_4301413ajjgwe82g.isValid(ed, wrapName, nodeName) && $_4301413ajjgwe82g.isValid(ed, parentName, wrapName) && !(!nodeSpecific && node.nodeType === 3 && node.nodeValue.length === 1 && node.nodeValue.charCodeAt(0) === 65279) && !isCaretNode(node) && (!format.inline || !dom.isBlock(node))) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (!currentWrapElm) {
</span><span class="cx" style="display: block; padding: 0 10px">               currentWrapElm = dom.clone(wrapElm, false);
</span><span class="cx" style="display: block; padding: 0 10px">               node.parentNode.insertBefore(currentWrapElm, node);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18857,7 +19155,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             currentWrapElm.appendChild(node);
</span><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             currentWrapElm = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            each$16($_52qop8kjfuw8l6v.grep(node.childNodes), process);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            each$15($_6cwiepljjgwe7j4.grep(node.childNodes), process);
</ins><span class="cx" style="display: block; padding: 0 10px">             if (hasContentEditableState) {
</span><span class="cx" style="display: block; padding: 0 10px">               contentEditable = lastContentEditable;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18864,25 +19162,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">             currentWrapElm = 0;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each$16(nodes, process);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each$15(nodes, process);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (format.links === true) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each$16(newWrappers, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each$15(newWrappers, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var process = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">             if (node.nodeName === 'A') {
</span><span class="cx" style="display: block; padding: 0 10px">               setElementFormat(node, format);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            each$16($_52qop8kjfuw8l6v.grep(node.childNodes), process);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            each$15($_6cwiepljjgwe7j4.grep(node.childNodes), process);
</ins><span class="cx" style="display: block; padding: 0 10px">           };
</span><span class="cx" style="display: block; padding: 0 10px">           process(node);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$16(newWrappers, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$15(newWrappers, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var childCount;
</span><span class="cx" style="display: block; padding: 0 10px">         var getChildCount = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">           var count = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$16(node.childNodes, function (node) {
-            if (!$_5nzvub5njfuw8m89.isWhiteSpaceNode(node) && !$_disscn2njfuw8ll3.isBookmarkNode(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$15(node.childNodes, function (node) {
+            if (!$_4301413ajjgwe82g.isWhiteSpaceNode(node) && !$_6refgt2vjjgwe7yn.isBookmarkNode(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">               count++;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18890,7 +19188,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">         var getChildElementNode = function (root) {
</span><span class="cx" style="display: block; padding: 0 10px">           var child = false;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$16(root.childNodes, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$15(root.childNodes, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (isElementNode$1(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">               child = node;
</span><span class="cx" style="display: block; padding: 0 10px">               return false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18901,7 +19199,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var mergeStyles = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">           var child, clone;
</span><span class="cx" style="display: block; padding: 0 10px">           child = getChildElementNode(node);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (child && !$_disscn2njfuw8ll3.isBookmarkNode(child) && $_ggpery5ojfuw8m8e.matchName(dom, child, format)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (child && !$_6refgt2vjjgwe7yn.isBookmarkNode(child) && $_7svyif69jjgwe8rf.matchName(dom, child, format)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             clone = dom.clone(child, false);
</span><span class="cx" style="display: block; padding: 0 10px">             setElementFormat(clone);
</span><span class="cx" style="display: block; padding: 0 10px">             dom.replace(clone, node, true);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18918,11 +19216,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">           if (!format.exact && childCount === 1) {
</span><span class="cx" style="display: block; padding: 0 10px">             node = mergeStyles(node);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_5wjyn05rjfuw8m8o.mergeWithChildren(ed, formatList, vars, node);
-          $_5wjyn05rjfuw8m8o.mergeWithParents(ed, format, name, vars, node);
-          $_5wjyn05rjfuw8m8o.mergeBackgroundColorAndFontSize(dom, format, vars, node);
-          $_5wjyn05rjfuw8m8o.mergeSubSup(dom, format, vars, node);
-          $_5wjyn05rjfuw8m8o.mergeSiblings(dom, format, vars, node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_3rh05e6cjjgwe8rp.mergeWithChildren(ed, formatList, vars, node);
+          $_3rh05e6cjjgwe8rp.mergeWithParents(ed, format, name, vars, node);
+          $_3rh05e6cjjgwe8rp.mergeBackgroundColorAndFontSize(dom, format, vars, node);
+          $_3rh05e6cjjgwe8rp.mergeSubSup(dom, format, vars, node);
+          $_3rh05e6cjjgwe8rp.mergeSiblings(dom, format, vars, node);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18943,7 +19241,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             rng = dom.createRng();
</span><span class="cx" style="display: block; padding: 0 10px">             rng.setStartBefore(node);
</span><span class="cx" style="display: block; padding: 0 10px">             rng.setEndAfter(node);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            applyRngStyle(dom, $_eq6rbn5mjfuw8m82.expandRng(ed, rng, formatList), null, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            applyRngStyle(dom, $_1f06hv2ujjgwe7y7.expandRng(ed, rng, formatList), null, true);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           applyRngStyle(dom, node, null, true);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18954,39 +19252,39 @@
</span><span class="cx" style="display: block; padding: 0 10px">           if (!ed.settings.forced_root_block && formatList[0].defaultBlock && !dom.getParent(curSelNode, dom.isBlock)) {
</span><span class="cx" style="display: block; padding: 0 10px">             applyFormat(ed, formatList[0].defaultBlock);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          ed.selection.setRng($_538lml30jfuw8ln4.normalize(ed.selection.getRng()));
-          bookmark = $_cpdbfi2ojfuw8ll6.getPersistentBookmark(ed.selection, true);
-          applyRngStyle(dom, $_eq6rbn5mjfuw8m82.expandRng(ed, selection.getRng(), formatList), bookmark);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          ed.selection.setRng($_e1wrz53ojjgwe85f.normalize(ed.selection.getRng()));
+          bookmark = $_ga29lf2jjjgwe7wh.getPersistentBookmark(ed.selection, true);
+          applyRngStyle(dom, $_1f06hv2ujjgwe7y7.expandRng(ed, selection.getRng(), formatList), bookmark);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (format.styles) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_5wjyn05rjfuw8m8o.mergeUnderlineAndColor(dom, format, vars, curSelNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_3rh05e6cjjgwe8rp.mergeUnderlineAndColor(dom, format, vars, curSelNode);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           selection.moveToBookmark(bookmark);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_5nzvub5njfuw8m89.moveStart(dom, selection, selection.getRng());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_4301413ajjgwe82g.moveStart(dom, selection, selection.getRng());
</ins><span class="cx" style="display: block; padding: 0 10px">           ed.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           applyCaretFormat(ed, name, vars);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_18y3c15qjfuw8m8m.postProcess(name, ed);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_49rwy16bjjgwe8rl.postProcess(name, ed);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_62fw7e5kjfuw8m7d = { applyFormat: applyFormat };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_b0knyc67jjgwe8qi = { applyFormat: applyFormat };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$17 = $_52qop8kjfuw8l6v.each;
-  var setup$3 = function (formatChangeData, editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$16 = $_6cwiepljjgwe7j4.each;
+  var setup$5 = function (formatChangeData, editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var currentFormats = {};
</span><span class="cx" style="display: block; padding: 0 10px">     formatChangeData.set({});
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('NodeChange', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parents = $_5nzvub5njfuw8m89.getParents(editor.dom, e.element);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parents = $_4301413ajjgwe82g.getParents(editor.dom, e.element);
</ins><span class="cx" style="display: block; padding: 0 10px">       var matchedFormats = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      parents = $_52qop8kjfuw8l6v.grep(parents, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      parents = $_6cwiepljjgwe7j4.grep(parents, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return node.nodeType === 1 && !node.getAttribute('data-mce-bogus');
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$17(formatChangeData.get(), function (callbacks, format) {
-        each$17(parents, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$16(formatChangeData.get(), function (callbacks, format) {
+        each$16(parents, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (editor.formatter.matchNode(node, format, {}, callbacks.similar)) {
</span><span class="cx" style="display: block; padding: 0 10px">             if (!currentFormats[format]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              each$17(callbacks, function (callback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              each$16(callbacks, function (callback) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 callback(true, {
</span><span class="cx" style="display: block; padding: 0 10px">                   node: node,
</span><span class="cx" style="display: block; padding: 0 10px">                   format: format,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18998,15 +19296,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">             matchedFormats[format] = callbacks;
</span><span class="cx" style="display: block; padding: 0 10px">             return false;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ($_ggpery5ojfuw8m8e.matchesUnInheritedFormatSelector(editor, node, format)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ($_7svyif69jjgwe8rf.matchesUnInheritedFormatSelector(editor, node, format)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return false;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$17(currentFormats, function (callbacks, format) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$16(currentFormats, function (callbacks, format) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!matchedFormats[format]) {
</span><span class="cx" style="display: block; padding: 0 10px">           delete currentFormats[format];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$17(callbacks, function (callback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$16(callbacks, function (callback) {
</ins><span class="cx" style="display: block; padding: 0 10px">             callback(false, {
</span><span class="cx" style="display: block; padding: 0 10px">               node: e.element,
</span><span class="cx" style="display: block; padding: 0 10px">               format: format,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19019,7 +19317,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var addListeners = function (formatChangeData, formats, callback, similar) {
</span><span class="cx" style="display: block; padding: 0 10px">     var formatChangeItems = formatChangeData.get();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$17(formats.split(','), function (format) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$16(formats.split(','), function (format) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!formatChangeItems[format]) {
</span><span class="cx" style="display: block; padding: 0 10px">         formatChangeItems[format] = [];
</span><span class="cx" style="display: block; padding: 0 10px">         formatChangeItems[format].similar = similar;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19030,13 +19328,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var formatChanged = function (editor, formatChangeState, formats, callback, similar) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (formatChangeState.get() === null) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      setup$3(formatChangeState, editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      setup$5(formatChangeState, editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     addListeners(formatChangeState, formats, callback, similar);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_coezzd5ujfuw8m9l = { formatChanged: formatChanged };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4iv60i6ejjgwe8sa = { formatChanged: formatChanged };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var get$5 = function (dom) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var get$7 = function (dom) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var formats = {
</span><span class="cx" style="display: block; padding: 0 10px">       valigntop: [{
</span><span class="cx" style="display: block; padding: 0 10px">           selector: 'td,th',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19234,7 +19532,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           return true;
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         onformat: function (elm, fmt, vars) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_52qop8kjfuw8l6v.each(vars, function (value, key) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_6cwiepljjgwe7j4.each(vars, function (value, key) {
</ins><span class="cx" style="display: block; padding: 0 10px">             dom.setAttrib(elm, key, value);
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19271,7 +19569,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_52qop8kjfuw8l6v.each('p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp'.split(/\s/), function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_6cwiepljjgwe7j4.each('p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp'.split(/\s/), function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">       formats[name] = {
</span><span class="cx" style="display: block; padding: 0 10px">         block: name,
</span><span class="cx" style="display: block; padding: 0 10px">         remove: 'all'
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19279,7 +19577,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     return formats;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4hczfz5wjfuw8m9q = { get: get$5 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5phnzx6gjjgwe8sf = { get: get$7 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function FormatRegistry (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var formats = {};
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19289,12 +19587,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var register = function (name, format) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (name) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (typeof name !== 'string') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_52qop8kjfuw8l6v.each(name, function (format, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_6cwiepljjgwe7j4.each(name, function (format, name) {
</ins><span class="cx" style="display: block; padding: 0 10px">             register(name, format);
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           format = format.length ? format : [format];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_52qop8kjfuw8l6v.each(format, function (format) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_6cwiepljjgwe7j4.each(format, function (format) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (typeof format.deep === 'undefined') {
</span><span class="cx" style="display: block; padding: 0 10px">               format.deep = !format.selector;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19322,7 +19620,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return formats;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    register($_4hczfz5wjfuw8m9q.get(editor.dom));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    register($_5phnzx6gjjgwe8sf.get(editor.dom));
</ins><span class="cx" style="display: block; padding: 0 10px">     register(editor.settings.formats);
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       get: get,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19331,7 +19629,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$18 = $_52qop8kjfuw8l6v.each;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$17 = $_6cwiepljjgwe7j4.each;
</ins><span class="cx" style="display: block; padding: 0 10px">   var dom = DOMUtils$1.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var parsedSelectorToHtml = function (ancestry, editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var elm, item, fragment;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19358,7 +19656,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var elmRule = schema.getElementRule(name);
</span><span class="cx" style="display: block; padding: 0 10px">       var parentsRequired = elmRule && elmRule.parentsRequired;
</span><span class="cx" style="display: block; padding: 0 10px">       if (parentsRequired && parentsRequired.length) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return candidate && $_52qop8kjfuw8l6v.inArray(parentsRequired, candidate) !== -1 ? candidate : parentsRequired[0];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return candidate && $_6cwiepljjgwe7j4.inArray(parentsRequired, candidate) !== -1 ? candidate : parentsRequired[0];
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         return false;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19390,7 +19688,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           parent = dom.create('div');
</span><span class="cx" style="display: block; padding: 0 10px">           parent.appendChild(elm);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_52qop8kjfuw8l6v.each(siblings, function (sibling) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6cwiepljjgwe7j4.each(siblings, function (sibling) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var siblingElm = createElement(sibling);
</span><span class="cx" style="display: block; padding: 0 10px">           parent.insertBefore(siblingElm, elm);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19416,7 +19714,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       classes: [],
</span><span class="cx" style="display: block; padding: 0 10px">       attrs: {}
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    item = obj.selector = $_52qop8kjfuw8l6v.trim(item);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    item = obj.selector = $_6cwiepljjgwe7j4.trim(item);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (item !== '*') {
</span><span class="cx" style="display: block; padding: 0 10px">       tagName = item.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g, function ($0, $1, $2, $3, $4) {
</span><span class="cx" style="display: block; padding: 0 10px">         switch ($1) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19427,7 +19725,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           obj.classes.push($2);
</span><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="cx" style="display: block; padding: 0 10px">         case ':':
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ($_52qop8kjfuw8l6v.inArray('checked disabled enabled read-only required'.split(' '), $2) !== -1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ($_6cwiepljjgwe7j4.inArray('checked disabled enabled read-only required'.split(' '), $2) !== -1) {
</ins><span class="cx" style="display: block; padding: 0 10px">             obj.attrs[$2] = $2;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19450,8 +19748,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     selector = selector.split(/\s*,\s*/)[0];
</span><span class="cx" style="display: block; padding: 0 10px">     selector = selector.replace(/\s*(~\+|~|\+|>)\s*/g, '$1');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_52qop8kjfuw8l6v.map(selector.split(/(?:>|\s+(?![^\[\]]+\]))/), function (item) {
-      var siblings = $_52qop8kjfuw8l6v.map(item.split(/(?:~\+|~|\+)/), parseSelectorItem);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_6cwiepljjgwe7j4.map(selector.split(/(?:>|\s+(?![^\[\]]+\]))/), function (item) {
+      var siblings = $_6cwiepljjgwe7j4.map(item.split(/(?:~\+|~|\+)/), parseSelectorItem);
</ins><span class="cx" style="display: block; padding: 0 10px">       var obj = siblings.pop();
</span><span class="cx" style="display: block; padding: 0 10px">       if (siblings.length) {
</span><span class="cx" style="display: block; padding: 0 10px">         obj.siblings = siblings;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19497,19 +19795,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">       previewFrag = parsedSelectorToHtml([name], editor);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$18(format.styles, function (value, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$17(format.styles, function (value, name) {
</ins><span class="cx" style="display: block; padding: 0 10px">       value = removeVars(value);
</span><span class="cx" style="display: block; padding: 0 10px">       if (value) {
</span><span class="cx" style="display: block; padding: 0 10px">         dom.setStyle(previewElm, name, value);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$18(format.attributes, function (value, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$17(format.attributes, function (value, name) {
</ins><span class="cx" style="display: block; padding: 0 10px">       value = removeVars(value);
</span><span class="cx" style="display: block; padding: 0 10px">       if (value) {
</span><span class="cx" style="display: block; padding: 0 10px">         dom.setAttrib(previewElm, name, value);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$18(format.classes, function (value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$17(format.classes, function (value) {
</ins><span class="cx" style="display: block; padding: 0 10px">       value = removeVars(value);
</span><span class="cx" style="display: block; padding: 0 10px">       if (!dom.hasClass(previewElm, value)) {
</span><span class="cx" style="display: block; padding: 0 10px">         dom.addClass(previewElm, value);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19523,7 +19821,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.getBody().appendChild(previewFrag);
</span><span class="cx" style="display: block; padding: 0 10px">     parentFontSize = dom.getStyle(editor.getBody(), 'fontSize', true);
</span><span class="cx" style="display: block; padding: 0 10px">     parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$18(previewStyles.split(' '), function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$17(previewStyles.split(' '), function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var value = dom.getStyle(previewElm, name, true);
</span><span class="cx" style="display: block; padding: 0 10px">       if (name === 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) {
</span><span class="cx" style="display: block; padding: 0 10px">         value = dom.getStyle(editor.getBody(), name, true);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19554,23 +19852,23 @@
</span><span class="cx" style="display: block; padding: 0 10px">     dom.remove(previewFrag);
</span><span class="cx" style="display: block; padding: 0 10px">     return previewCss;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_85m0vg5xjfuw8m9v = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6zfajg6hjjgwe8sl = {
</ins><span class="cx" style="display: block; padding: 0 10px">     getCssText: getCssText,
</span><span class="cx" style="display: block; padding: 0 10px">     parseSelector: parseSelector,
</span><span class="cx" style="display: block; padding: 0 10px">     selectorToHtml: selectorToHtml
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var toggle = function (editor, formats, name, vars, node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var toggle$3 = function (editor, formats, name, vars, node) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var fmt = formats.get(name);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ggpery5ojfuw8m8e.match(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {
-      $_cm1urk5sjfuw8m8x.remove(editor, name, vars, node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_7svyif69jjgwe8rf.match(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {
+      $_y6kng6djjgwe8ry.remove(editor, name, vars, node);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_62fw7e5kjfuw8m7d.applyFormat(editor, name, vars, node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_b0knyc67jjgwe8qi.applyFormat(editor, name, vars, node);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_22sexu5yjfuw8ma1 = { toggle: toggle };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_d9x3256ijjgwe8sr = { toggle: toggle$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$4 = function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$6 = function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.addShortcut('meta+b', '', 'Bold');
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addShortcut('meta+i', '', 'Italic');
</span><span class="cx" style="display: block; padding: 0 10px">     editor.addShortcut('meta+u', '', 'Underline');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19597,36 +19895,33 @@
</span><span class="cx" style="display: block; padding: 0 10px">       'address'
</span><span class="cx" style="display: block; padding: 0 10px">     ]);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cw7jar5zjfuw8ma2 = { setup: setup$4 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5sdg916jjjgwe8ss = { setup: setup$6 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function Formatter (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var formats = FormatRegistry(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     var formatChangeState = Cell(null);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_cw7jar5zjfuw8ma2.setup(editor);
-    setup$2(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_5sdg916jjjgwe8ss.setup(editor);
+    setup$4(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       get: formats.get,
</span><span class="cx" style="display: block; padding: 0 10px">       register: formats.register,
</span><span class="cx" style="display: block; padding: 0 10px">       unregister: formats.unregister,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      apply: $_68e81l6jfuw8kyc.curry($_62fw7e5kjfuw8m7d.applyFormat, editor),
-      remove: $_68e81l6jfuw8kyc.curry($_cm1urk5sjfuw8m8x.remove, editor),
-      toggle: $_68e81l6jfuw8kyc.curry($_22sexu5yjfuw8ma1.toggle, editor, formats),
-      match: $_68e81l6jfuw8kyc.curry($_ggpery5ojfuw8m8e.match, editor),
-      matchAll: $_68e81l6jfuw8kyc.curry($_ggpery5ojfuw8m8e.matchAll, editor),
-      matchNode: $_68e81l6jfuw8kyc.curry($_ggpery5ojfuw8m8e.matchNode, editor),
-      canApply: $_68e81l6jfuw8kyc.curry($_ggpery5ojfuw8m8e.canApply, editor),
-      formatChanged: $_68e81l6jfuw8kyc.curry($_coezzd5ujfuw8m9l.formatChanged, editor, formatChangeState),
-      getCssText: $_68e81l6jfuw8kyc.curry($_85m0vg5xjfuw8m9v.getCssText, editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      apply: curry($_b0knyc67jjgwe8qi.applyFormat, editor),
+      remove: curry($_y6kng6djjgwe8ry.remove, editor),
+      toggle: curry($_d9x3256ijjgwe8sr.toggle, editor, formats),
+      match: curry($_7svyif69jjgwe8rf.match, editor),
+      matchAll: curry($_7svyif69jjgwe8rf.matchAll, editor),
+      matchNode: curry($_7svyif69jjgwe8rf.matchNode, editor),
+      canApply: curry($_7svyif69jjgwe8rf.canApply, editor),
+      formatChanged: curry($_4iv60i6ejjgwe8sa.formatChanged, editor, formatChangeState),
+      getCssText: curry($_6zfajg6hjjgwe8sl.getCssText, editor)
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var shallow = function (old, nu) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
+  var shallow$1 = function (old, nu) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return nu;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var deep = function (old, nu) {
-    var bothObjects = $_16i8k47jfuw8kyi.isObject(old) && $_16i8k47jfuw8kyi.isObject(nu);
-    return bothObjects ? deepMerge(old, nu) : nu;
-  };
</del><span class="cx" style="display: block; padding: 0 10px">   var baseMerge = function (merger) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var objects = new Array(arguments.length);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19638,7 +19933,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       for (var j = 0; j < objects.length; j++) {
</span><span class="cx" style="display: block; padding: 0 10px">         var curObject = objects[j];
</span><span class="cx" style="display: block; padding: 0 10px">         for (var key in curObject)
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (curObject.hasOwnProperty(key)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (hasOwnProperty$1.call(curObject, key)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             ret[key] = merger(ret[key], curObject[key]);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19645,27 +19940,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return ret;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var deepMerge = baseMerge(deep);
-  var merge = baseMerge(shallow);
-  var $_dt8zuf62jfuw8mab = {
-    deepMerge: deepMerge,
-    merge: merge
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var firePreProcess = function (editor, args) {
-    return editor.fire('PreProcess', args);
-  };
-  var firePostProcess = function (editor, args) {
-    return editor.fire('PostProcess', args);
-  };
-  var fireRemove = function (editor) {
-    return editor.fire('remove');
-  };
-  var $_47gnpy63jfuw8mad = {
-    firePreProcess: firePreProcess,
-    firePostProcess: firePostProcess,
-    fireRemove: fireRemove
-  };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var merge = baseMerge(shallow$1);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var register = function (htmlParser, settings, dom) {
</span><span class="cx" style="display: block; padding: 0 10px">     htmlParser.addAttributeFilter('data-mce-tabindex', function (nodes, name) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19723,7 +19999,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><span class="cx" style="display: block; padding: 0 10px">         node = nodes[i].firstChild;
</span><span class="cx" style="display: block; padding: 0 10px">         if (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          node.value = $_8uzsfe1rjfuw8ldm.decode(node.value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          node.value = $_6pqr9q1sjjgwe7qj.decode(node.value);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19780,7 +20056,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     htmlParser.addAttributeFilter('data-mce-type', function (nodes) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.each(nodes, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(nodes, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (node.attr('data-mce-type') === 'format-caret') {
</span><span class="cx" style="display: block; padding: 0 10px">           if (node.isEmpty(htmlParser.schema.getNonEmptyElements())) {
</span><span class="cx" style="display: block; padding: 0 10px">             node.remove();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19811,7 +20087,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fdsvd664jfuw8maf = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_51rhs16njjgwe8ts = {
</ins><span class="cx" style="display: block; padding: 0 10px">     register: register,
</span><span class="cx" style="display: block; padding: 0 10px">     trimTrailingBr: trimTrailingBr
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19823,7 +20099,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     impl = document.implementation;
</span><span class="cx" style="display: block; padding: 0 10px">     if (impl.createHTMLDocument) {
</span><span class="cx" style="display: block; padding: 0 10px">       doc = impl.createHTMLDocument('');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_52qop8kjfuw8l6v.each(node.nodeName === 'BODY' ? node.childNodes : [node], function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6cwiepljjgwe7j4.each(node.nodeName === 'BODY' ? node.childNodes : [node], function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">         doc.body.appendChild(doc.importNode(node, true));
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (node.nodeName !== 'BODY') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19834,7 +20110,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       oldDoc = dom.doc;
</span><span class="cx" style="display: block; padding: 0 10px">       dom.doc = doc;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_47gnpy63jfuw8mad.firePreProcess(editor, $_dt8zuf62jfuw8mab.merge(args, { node: node }));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_b2ca654tjjgwe8ic.firePreProcess(editor, merge(args, { node: node }));
</ins><span class="cx" style="display: block; padding: 0 10px">     if (oldDoc) {
</span><span class="cx" style="display: block; padding: 0 10px">       dom.doc = oldDoc;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19846,16 +20122,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var process = function (editor, node, args) {
</span><span class="cx" style="display: block; padding: 0 10px">     return shouldFireEvent(editor, args) ? preProcess(editor, node, args) : node;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8z5s265jfuw8mal = { process: process };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5u4dpu6ojjgwe8u3 = { process: process };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var removeAttrs = function (node, names) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.each(names, function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each(names, function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">       node.attr(name, null);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var addFontToSpansFilter = function (domParser, styles, fontSizes) {
</span><span class="cx" style="display: block; padding: 0 10px">     domParser.addNodeFilter('font', function (nodes) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.each(nodes, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(nodes, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var props = styles.parse(node.attr('style'));
</span><span class="cx" style="display: block; padding: 0 10px">         var color = node.attr('color');
</span><span class="cx" style="display: block; padding: 0 10px">         var face = node.attr('face');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19881,7 +20157,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var addStrikeToSpanFilter = function (domParser, styles) {
</span><span class="cx" style="display: block; padding: 0 10px">     domParser.addNodeFilter('strike', function (nodes) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9ek1bp4jfuw8kxg.each(nodes, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(nodes, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var props = styles.parse(node.attr('style'));
</span><span class="cx" style="display: block; padding: 0 10px">         props['text-decoration'] = 'line-through';
</span><span class="cx" style="display: block; padding: 0 10px">         node.name = 'span';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19892,7 +20168,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var addFilters = function (domParser, settings) {
</span><span class="cx" style="display: block; padding: 0 10px">     var styles = Styles();
</span><span class="cx" style="display: block; padding: 0 10px">     if (settings.convert_fonts_to_spans) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      addFontToSpansFilter(domParser, styles, $_52qop8kjfuw8l6v.explode(settings.font_size_legacy_values));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      addFontToSpansFilter(domParser, styles, $_6cwiepljjgwe7j4.explode(settings.font_size_legacy_values));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     addStrikeToSpanFilter(domParser, styles);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19901,7 +20177,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       addFilters(domParser, settings);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5qetf467jfuw8mbf = { register: register$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ee8az66qjjgwe8up = { register: register$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var whiteSpaceRegExp$3 = /^[ \t\r\n]*$/;
</span><span class="cx" style="display: block; padding: 0 10px">   var typeLookup = {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20217,7 +20493,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var i;
</span><span class="cx" style="display: block; padding: 0 10px">         var l = nodes.length;
</span><span class="cx" style="display: block; padding: 0 10px">         var node;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var blockElements = $_52qop8kjfuw8l6v.extend({}, schema.getBlockElements());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var blockElements = $_6cwiepljjgwe7j4.extend({}, schema.getBlockElements());
</ins><span class="cx" style="display: block; padding: 0 10px">         var nonEmptyElements = schema.getNonEmptyElements();
</span><span class="cx" style="display: block; padding: 0 10px">         var parent, lastParent, prev, prevName;
</span><span class="cx" style="display: block; padding: 0 10px">         var whiteSpaceElements = schema.getNonEmptyElements();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20281,7 +20557,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return parts.concat(['noopener']).sort().join(' ');
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var addNoOpener = function (rel) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var newRel = rel ? $_52qop8kjfuw8l6v.trim(rel) : '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var newRel = rel ? $_6cwiepljjgwe7j4.trim(rel) : '';
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!/\b(noopener)\b/g.test(newRel)) {
</span><span class="cx" style="display: block; padding: 0 10px">           return appendRel(newRel);
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20368,10 +20644,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var makeMap$4 = $_52qop8kjfuw8l6v.makeMap;
-  var each$19 = $_52qop8kjfuw8l6v.each;
-  var explode$3 = $_52qop8kjfuw8l6v.explode;
-  var extend$3 = $_52qop8kjfuw8l6v.extend;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var makeMap$4 = $_6cwiepljjgwe7j4.makeMap;
+  var each$18 = $_6cwiepljjgwe7j4.each;
+  var explode$3 = $_6cwiepljjgwe7j4.explode;
+  var extend$3 = $_6cwiepljjgwe7j4.extend;
</ins><span class="cx" style="display: block; padding: 0 10px">   function DomParser (settings, schema) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (schema === void 0) {
</span><span class="cx" style="display: block; padding: 0 10px">       schema = Schema();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20494,7 +20770,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return node;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var addNodeFilter = function (name, callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$19(explode$3(name), function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$18(explode$3(name), function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var list = nodeFilters[name];
</span><span class="cx" style="display: block; padding: 0 10px">         if (!list) {
</span><span class="cx" style="display: block; padding: 0 10px">           nodeFilters[name] = list = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20504,11 +20780,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getNodeFilters = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var out = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (var name_1 in nodeFilters) {
-        if (nodeFilters.hasOwnProperty(name_1)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (var name in nodeFilters) {
+        if (nodeFilters.hasOwnProperty(name)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           out.push({
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            name: name_1,
-            callbacks: nodeFilters[name_1]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            name: name,
+            callbacks: nodeFilters[name]
</ins><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20515,7 +20791,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return out;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var addAttributeFilter = function (name, callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$19(explode$3(name), function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$18(explode$3(name), function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var i;
</span><span class="cx" style="display: block; padding: 0 10px">         for (i = 0; i < attributeFilters.length; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (attributeFilters[i].name === name) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20551,6 +20827,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var endWhiteSpaceRegExp = /[ \t\r\n]+$/;
</span><span class="cx" style="display: block; padding: 0 10px">       var allWhiteSpaceRegExp = /[ \t\r\n]+/g;
</span><span class="cx" style="display: block; padding: 0 10px">       var isAllWhiteSpaceRegExp = /^[ \t\r\n]+$/;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      isInWhiteSpacePreservedElement = whiteSpaceElements.hasOwnProperty(args.context) || whiteSpaceElements.hasOwnProperty(settings.root_name);
</ins><span class="cx" style="display: block; padding: 0 10px">       var addRootBlocks = function () {
</span><span class="cx" style="display: block; padding: 0 10px">         var node = rootNode.firstChild, next, rootBlockNode;
</span><span class="cx" style="display: block; padding: 0 10px">         var trim = function (rootBlockNode) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20831,12 +21108,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       parse: parse
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     register$2(exports, settings);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_5qetf467jfuw8mbf.register(exports, settings);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_ee8az66qjjgwe8up.register(exports, settings);
</ins><span class="cx" style="display: block; padding: 0 10px">     return exports;
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var addTempAttr = function (htmlParser, tempAttrs, name) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_52qop8kjfuw8l6v.inArray(tempAttrs, name) === -1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_6cwiepljjgwe7j4.inArray(tempAttrs, name) === -1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       htmlParser.addAttributeFilter(name, function (nodes, name) {
</span><span class="cx" style="display: block; padding: 0 10px">         var i = nodes.length;
</span><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20848,7 +21125,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var postProcess$1 = function (editor, args, content) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (!args.no_events && editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var outArgs = $_47gnpy63jfuw8mad.firePostProcess(editor, $_dt8zuf62jfuw8mab.merge(args, { content: content }));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var outArgs = $_b2ca654tjjgwe8ic.firePostProcess(editor, merge(args, { content: content }));
</ins><span class="cx" style="display: block; padding: 0 10px">       return outArgs.content;
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return content;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20855,13 +21132,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getHtmlFromNode = function (dom, node, args) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var html = $_dpfg1321jfuw8lhn.trim(args.getInner ? node.innerHTML : dom.getOuterHTML(node));
-    return args.selection ? html : $_52qop8kjfuw8l6v.trim(html);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var html = $_2xw7ul2pjjgwe7xs.trim(args.getInner ? node.innerHTML : dom.getOuterHTML(node));
+    return args.selection || isWsPreserveElement(Element$$1.fromDom(node)) ? html : $_6cwiepljjgwe7j4.trim(html);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var parseHtml = function (htmlParser, dom, html, args) {
-    var parserArgs = args.selection ? $_dt8zuf62jfuw8mab.merge({ forced_root_block: false }, args) : args;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var parseHtml = function (htmlParser, html, args) {
+    var parserArgs = args.selection ? merge({ forced_root_block: false }, args) : args;
</ins><span class="cx" style="display: block; padding: 0 10px">     var rootNode = htmlParser.parse(html, parserArgs);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_fdsvd664jfuw8maf.trimTrailingBr(rootNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_51rhs16njjgwe8ts.trimTrailingBr(rootNode);
</ins><span class="cx" style="display: block; padding: 0 10px">     return rootNode;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var serializeNode = function (settings, schema, node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20880,12 +21157,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     settings.entity_encoding = settings.entity_encoding || 'named';
</span><span class="cx" style="display: block; padding: 0 10px">     settings.remove_trailing_brs = 'remove_trailing_brs' in settings ? settings.remove_trailing_brs : true;
</span><span class="cx" style="display: block; padding: 0 10px">     htmlParser = DomParser(settings, schema);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_fdsvd664jfuw8maf.register(htmlParser, settings, dom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_51rhs16njjgwe8ts.register(htmlParser, settings, dom);
</ins><span class="cx" style="display: block; padding: 0 10px">     var serialize = function (node, parserArgs) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var args = $_dt8zuf62jfuw8mab.merge({ format: 'html' }, parserArgs ? parserArgs : {});
-      var targetNode = $_8z5s265jfuw8mal.process(editor, node, args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var args = merge({ format: 'html' }, parserArgs ? parserArgs : {});
+      var targetNode = $_5u4dpu6ojjgwe8u3.process(editor, node, args);
</ins><span class="cx" style="display: block; padding: 0 10px">       var html = getHtmlFromNode(dom, targetNode, args);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var rootNode = parseHtml(htmlParser, dom, html, args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var rootNode = parseHtml(htmlParser, html, args);
</ins><span class="cx" style="display: block; padding: 0 10px">       return args.format === 'tree' ? rootNode : toHtml(editor, settings, schema, rootNode, args);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20899,7 +21176,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       setRules: function (rules) {
</span><span class="cx" style="display: block; padding: 0 10px">         schema.setValidElements(rules);
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      addTempAttr: $_68e81l6jfuw8kyc.curry(addTempAttr, htmlParser, tempAttrs),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      addTempAttr: curry(addTempAttr, htmlParser, tempAttrs),
</ins><span class="cx" style="display: block; padding: 0 10px">       getTempAttrs: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return tempAttrs;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20922,17 +21199,17 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function BookmarkManager(selection) {
</span><span class="cx" style="display: block; padding: 0 10px">     return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      getBookmark: $_68e81l6jfuw8kyc.curry($_disscn2njfuw8ll3.getBookmark, selection),
-      moveToBookmark: $_68e81l6jfuw8kyc.curry($_disscn2njfuw8ll3.moveToBookmark, selection)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getBookmark: curry($_6refgt2vjjgwe7yn.getBookmark, selection),
+      moveToBookmark: curry($_6refgt2vjjgwe7yn.moveToBookmark, selection)
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   (function (BookmarkManager) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    BookmarkManager.isBookmarkNode = $_disscn2njfuw8ll3.isBookmarkNode;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    BookmarkManager.isBookmarkNode = $_6refgt2vjjgwe7yn.isBookmarkNode;
</ins><span class="cx" style="display: block; padding: 0 10px">   }(BookmarkManager || (BookmarkManager = {})));
</span><span class="cx" style="display: block; padding: 0 10px">   var BookmarkManager$1 = BookmarkManager;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isContentEditableFalse$10 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
-  var isContentEditableTrue$6 = $_ey7ka11qjfuw8ldg.isContentEditableTrue;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isContentEditableFalse$10 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
+  var isContentEditableTrue$6 = $_3b9u2y1rjjgwe7qe.isContentEditableTrue;
</ins><span class="cx" style="display: block; padding: 0 10px">   var getContentEditableRoot$2 = function (root, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     while (node && node !== root) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (isContentEditableTrue$6(node) || isContentEditableFalse$10(node)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20943,7 +21220,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return null;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var ControlSelection = function (selection, editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var dom = editor.dom, each = $_52qop8kjfuw8l6v.each;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var dom = editor.dom, each = $_6cwiepljjgwe7j4.each;
</ins><span class="cx" style="display: block; padding: 0 10px">     var selectedElm, selectedElmGhost, resizeHelper, resizeHandles, selectedHandle;
</span><span class="cx" style="display: block; padding: 0 10px">     var startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted;
</span><span class="cx" style="display: block; padding: 0 10px">     var width, height;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20977,12 +21254,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       ]
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var rootClass = '.mce-content-body';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    editor.contentStyles.push(rootClass + ' div.mce-resizehandle {' + 'position: absolute;' + 'border: 1px solid black;' + 'box-sizing: content-box;' + 'background: #FFF;' + 'width: 7px;' + 'height: 7px;' + 'z-index: 10000' + '}' + rootClass + ' .mce-resizehandle:hover {' + 'background: #000' + '}' + rootClass + ' img[data-mce-selected],' + rootClass + ' hr[data-mce-selected] {' + 'outline: 1px solid black;' + 'resize: none' + '}' + rootClass + ' .mce-clonedresizable {' + 'position: absolute;' + ($_9fhi43ajfuw8l13.gecko ? '' : 'outline: 1px dashed black;') + 'opacity: .5;' + 'filter: alpha(opacity=50);' + 'z-index: 10000' + '}' + rootClass + ' .mce-resize-helper {' + 'background: #555;' + 'background: rgba(0,0,0,0.75);' + 'border-radius: 3px;' + 'border: 1px;' + 'color: white;' + 'display: none;' + 'font-family: sans-serif;' + 'font-size: 12px;' + 'white-space: nowrap;' + 'line-height: 1
 4px;' + 'margin: 5px 10px;' + 'padding: 5px;' + 'position: absolute;' + 'z-index: 10001' + '}');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.contentStyles.push(rootClass + ' div.mce-resizehandle {' + 'position: absolute;' + 'border: 1px solid black;' + 'box-sizing: content-box;' + 'background: #FFF;' + 'width: 7px;' + 'height: 7px;' + 'z-index: 10000' + '}' + rootClass + ' .mce-resizehandle:hover {' + 'background: #000' + '}' + rootClass + ' img[data-mce-selected],' + rootClass + ' hr[data-mce-selected] {' + 'outline: 1px solid black;' + 'resize: none' + '}' + rootClass + ' .mce-clonedresizable {' + 'position: absolute;' + ($_bcvfv9ajjgwe79v.gecko ? '' : 'outline: 1px dashed black;') + 'opacity: .5;' + 'filter: alpha(opacity=50);' + 'z-index: 10000' + '}' + rootClass + ' .mce-resize-helper {' + 'background: #555;' + 'background: rgba(0,0,0,0.75);' + 'border-radius: 3px;' + 'border: 1px;' + 'color: white;' + 'display: none;' + 'font-family: sans-serif;' + 'font-size: 12px;' + 'white-space: nowrap;' + 'line-height: 14
 px;' + 'margin: 5px 10px;' + 'padding: 5px;' + 'position: absolute;' + 'z-index: 10001' + '}');
</ins><span class="cx" style="display: block; padding: 0 10px">     var isImage = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">       return elm && (elm.nodeName === 'IMG' || editor.dom.is(elm, 'figure.image'));
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var isEventOnImageOutsideRange = function (evt, range) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return isImage(evt.target) && !$_ew17fe57jfuw8m5c.isXYWithinRange(evt.clientX, evt.clientY, range);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return isImage(evt.target) && !$_bswl8d5ujjgwe8oh.isXYWithinRange(evt.clientX, evt.clientY, range);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var contextMenuSelectImage = function (evt) {
</span><span class="cx" style="display: block; padding: 0 10px">       var target = evt.target;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20996,7 +21273,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var isResizable = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">       var selector = editor.settings.object_resizing;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (selector === false || $_9fhi43ajfuw8l13.iOS) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (selector === false || $_bcvfv9ajjgwe79v.iOS) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return false;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof selector !== 'string') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21008,7 +21285,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (elm === editor.getBody()) {
</span><span class="cx" style="display: block; padding: 0 10px">         return false;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_fbwcti1fjfuw8lbx.is($_c9h6qlzjfuw8l98.fromDom(elm), selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_4yq1xp1gjjgwe7op.is(Element$$1.fromDom(elm), selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var resizeGhostElement = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       var deltaX, deltaY, proportional;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21020,9 +21297,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       width = width < 5 ? 5 : width;
</span><span class="cx" style="display: block; padding: 0 10px">       height = height < 5 ? 5 : height;
</span><span class="cx" style="display: block; padding: 0 10px">       if (isImage(selectedElm) && editor.settings.resize_img_proportional !== false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        proportional = !$_1nvqmv5ajfuw8m5j.modifierPressed(e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        proportional = !$_9udk9k5wjjgwe8on.modifierPressed(e);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        proportional = $_1nvqmv5ajfuw8m5j.modifierPressed(e) || isImage(selectedElm) && selectedHandle[2] * selectedHandle[3] !== 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        proportional = $_9udk9k5wjjgwe8on.modifierPressed(e) || isImage(selectedElm) && selectedHandle[2] * selectedHandle[3] !== 0;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (proportional) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (abs(deltaX) > abs(deltaY)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21062,22 +21339,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (!resizeStarted) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        editor.fire('ObjectResizeStart', {
-          target: selectedElm,
-          width: startW,
-          height: startH
-        });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_b2ca654tjjgwe8ic.fireObjectResizeStart(editor, selectedElm, startW, startH);
</ins><span class="cx" style="display: block; padding: 0 10px">         resizeStarted = true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var endGhostResize = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       resizeStarted = false;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var setSizeProp = function (name, value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var setSizeProp = function (name$$1, value) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (selectedElm.style[name] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name)) {
-            dom.setStyle(getResizeTarget(selectedElm), name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (selectedElm.style[name$$1] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name$$1)) {
+            dom.setStyle(getResizeTarget(selectedElm), name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            dom.setAttrib(getResizeTarget(selectedElm), name, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            dom.setAttrib(getResizeTarget(selectedElm), name$$1, value);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21092,11 +21365,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       dom.remove(selectedElmGhost);
</span><span class="cx" style="display: block; padding: 0 10px">       dom.remove(resizeHelper);
</span><span class="cx" style="display: block; padding: 0 10px">       showResizeRect(selectedElm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.fire('ObjectResized', {
-        target: selectedElm,
-        width: width,
-        height: height
-      });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_b2ca654tjjgwe8ic.fireObjectResized(editor, selectedElm, width, height);
</ins><span class="cx" style="display: block; padding: 0 10px">       dom.setAttrib(selectedElm, 'style', dom.getAttrib(selectedElm, 'style'));
</span><span class="cx" style="display: block; padding: 0 10px">       editor.nodeChanged();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21116,7 +21385,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       e = editor.fire('ObjectSelected', { target: targetElm });
</span><span class="cx" style="display: block; padding: 0 10px">       if (isResizable(targetElm) && !e.isDefaultPrevented()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each(resizeHandles, function (handle, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each(resizeHandles, function (handle, name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var handleElm;
</span><span class="cx" style="display: block; padding: 0 10px">           var startDrag = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">             startX = e.screenX;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21154,18 +21423,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">               'data-mce-bogus': 'all'
</span><span class="cx" style="display: block; padding: 0 10px">             }, startW + ' &times; ' + startH);
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          handleElm = dom.get('mceResizeHandle' + name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          handleElm = dom.get('mceResizeHandle' + name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (handleElm) {
</span><span class="cx" style="display: block; padding: 0 10px">             dom.remove(handleElm);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           handleElm = dom.add(rootElement, 'div', {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            'id': 'mceResizeHandle' + name,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            'id': 'mceResizeHandle' + name$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">             'data-mce-bogus': 'all',
</span><span class="cx" style="display: block; padding: 0 10px">             'class': 'mce-resizehandle',
</span><span class="cx" style="display: block; padding: 0 10px">             'unselectable': true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            'style': 'cursor:' + name + '-resize; margin:0; padding:0'
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            'style': 'cursor:' + name$$1 + '-resize; margin:0; padding:0'
</ins><span class="cx" style="display: block; padding: 0 10px">           });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ($_9fhi43ajfuw8l13.ie) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ($_bcvfv9ajjgwe79v.ie === 11) {
</ins><span class="cx" style="display: block; padding: 0 10px">             handleElm.contentEditable = false;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           dom.bind(handleElm, 'mousedown', function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21185,13 +21454,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       selectedElm.setAttribute('data-mce-selected', '1');
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var hideResizeRect = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var name, handleElm;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var name$$1, handleElm;
</ins><span class="cx" style="display: block; padding: 0 10px">       unbindResizeHandleEvents();
</span><span class="cx" style="display: block; padding: 0 10px">       if (selectedElm) {
</span><span class="cx" style="display: block; padding: 0 10px">         selectedElm.removeAttribute('data-mce-selected');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (name in resizeHandles) {
-        handleElm = dom.get('mceResizeHandle' + name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (name$$1 in resizeHandles) {
+        handleElm = dom.get('mceResizeHandle' + name$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (handleElm) {
</span><span class="cx" style="display: block; padding: 0 10px">           dom.unbind(handleElm);
</span><span class="cx" style="display: block; padding: 0 10px">           dom.remove(handleElm);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21200,10 +21469,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var updateResizeRect = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       var startElm, controlElm;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var isChildOrEqual = function (node, parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var isChildOrEqual = function (node, parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (node) {
</span><span class="cx" style="display: block; padding: 0 10px">           do {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if (node === parent) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if (node === parent$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">               return true;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           } while (node = node.parentNode);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21231,8 +21500,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return isContentEditableFalse$10(getContentEditableRoot$2(editor.getBody(), elm));
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var unbindResizeHandleEvents = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (var name_1 in resizeHandles) {
-        var handle = resizeHandles[name_1];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (var name$$1 in resizeHandles) {
+        var handle = resizeHandles[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">         if (handle.elm) {
</span><span class="cx" style="display: block; padding: 0 10px">           dom.unbind(handle.elm);
</span><span class="cx" style="display: block; padding: 0 10px">           delete handle.elm;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21247,7 +21516,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('init', function () {
</span><span class="cx" style="display: block; padding: 0 10px">       disableGeckoResize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_9fhi43ajfuw8l13.ie && $_9fhi43ajfuw8l13.ie >= 11) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_bcvfv9ajjgwe79v.ie && $_bcvfv9ajjgwe79v.ie >= 11) {
</ins><span class="cx" style="display: block; padding: 0 10px">         editor.on('mousedown click', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           var target = e.target, nodeName = target.nodeName;
</span><span class="cx" style="display: block; padding: 0 10px">           if (!resizeStarted && /^(TABLE|IMG|HR)$/.test(nodeName) && !isWithinContentEditableFalse(target)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21261,7 +21530,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         editor.dom.bind(rootElement, 'mscontrolselect', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           var delayedSelect = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_2m8wq9hjfuw8l41.setEditorTimeout(editor, function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_9o1ijaijjgwe7dm.setEditorTimeout(editor, function () {
</ins><span class="cx" style="display: block; padding: 0 10px">               editor.selection.select(node);
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21278,7 +21547,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var throttledUpdateResizeRect = $_2m8wq9hjfuw8l41.throttle(function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var throttledUpdateResizeRect = $_9o1ijaijjgwe7dm.throttle(function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!editor.composing) {
</span><span class="cx" style="display: block; padding: 0 10px">           updateResizeRect(e);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21306,7 +21575,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var hasCeProperty = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isContentEditableTrue(node) || $_ey7ka11qjfuw8ldg.isContentEditableFalse(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isContentEditableTrue(node) || $_3b9u2y1rjjgwe7qe.isContentEditableFalse(node);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findParent$1 = function (node, rootNode, predicate) {
</span><span class="cx" style="display: block; padding: 0 10px">     while (node && node !== rootNode) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21325,7 +21594,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       element = doc.body;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     rng.moveToElementText(element);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    rects = $_52qop8kjfuw8l6v.toArray(rng.getClientRects());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    rects = $_6cwiepljjgwe7j4.toArray(rng.getClientRects());
</ins><span class="cx" style="display: block; padding: 0 10px">     rects = rects.sort(function (a, b) {
</span><span class="cx" style="display: block; padding: 0 10px">       a = Math.abs(Math.max(a.top - clientY, a.bottom - clientY));
</span><span class="cx" style="display: block; padding: 0 10px">       b = Math.abs(Math.max(b.top - clientY, b.bottom - clientY));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21344,7 +21613,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var moveOutOfContentEditableFalse = function (rng, rootNode) {
</span><span class="cx" style="display: block; padding: 0 10px">     var parentElement = rng && rng.parentElement ? rng.parentElement() : null;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isContentEditableFalse(findParent$1(parentElement, rootNode, hasCeProperty)) ? null : rng;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isContentEditableFalse(findParent$1(parentElement, rootNode, hasCeProperty)) ? null : rng;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fromPoint$1 = function (clientX, clientY, doc) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rng, point;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21370,152 +21639,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return rng;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_dyytu76ejfuw8md2 = { fromPoint: fromPoint$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_269jak6xjjgwe8wp = { fromPoint: fromPoint$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var processRanges = function (editor, ranges) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.map(ranges, function (range) {
-      var evt = editor.fire('GetSelectionRange', { range: range });
-      return evt.range !== range ? evt.range : range;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(ranges, function (range$$1) {
+      var evt = editor.fire('GetSelectionRange', { range: range$$1 });
+      return evt.range !== range$$1 ? evt.range : range$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2shlx66fjfuw8md6 = { processRanges: processRanges };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_atnm1d6yjjgwe8wr = { processRanges: processRanges };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var clone$2 = function (original, deep) {
-    return $_c9h6qlzjfuw8l98.fromDom(original.dom().cloneNode(deep));
-  };
-  var shallow$1 = function (original) {
-    return clone$2(original, false);
-  };
-  var deep$1 = function (original) {
-    return clone$2(original, true);
-  };
-  var shallowAs = function (original, tag) {
-    var nu = $_c9h6qlzjfuw8l98.fromTag(tag);
-    var attributes = $_8g002u14jfuw8la5.clone(original);
-    $_8g002u14jfuw8la5.setAll(nu, attributes);
-    return nu;
-  };
-  var copy$1 = function (original, tag) {
-    var nu = shallowAs(original, tag);
-    var cloneChildren = $_2j4g5u17jfuw8lav.children(deep$1(original));
-    $_84jjow2vjfuw8lml.append(nu, cloneChildren);
-    return nu;
-  };
-  var mutate = function (original, tag) {
-    var nu = shallowAs(original, tag);
-    $_doli6x2kjfuw8lky.before(original, nu);
-    var children = $_2j4g5u17jfuw8lav.children(original);
-    $_84jjow2vjfuw8lml.append(nu, children);
-    $_byg6a92ujfuw8lmi.remove(original);
-    return nu;
-  };
-  var $_bde3we6ijfuw8mdt = {
-    shallow: shallow$1,
-    shallowAs: shallowAs,
-    deep: deep$1,
-    copy: copy$1,
-    mutate: mutate
-  };
-
</del><span class="cx" style="display: block; padding: 0 10px">   var fromElements = function (elements, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">     var doc = scope || document;
</span><span class="cx" style="display: block; padding: 0 10px">     var fragment = doc.createDocumentFragment();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.each(elements, function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each(elements, function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">       fragment.appendChild(element.dom());
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_c9h6qlzjfuw8l98.fromDom(fragment);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Element$$1.fromDom(fragment);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_aj5cq36jjfuw8mdv = { fromElements: fromElements };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_xpi1671jjgwe8xg = { fromElements: fromElements };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getStartNode = function (rng) {
-    var sc = rng.startContainer, so = rng.startOffset;
-    if ($_ey7ka11qjfuw8ldg.isText(sc)) {
-      return so === 0 ? Option.some($_c9h6qlzjfuw8l98.fromDom(sc)) : Option.none();
-    } else {
-      return Option.from(sc.childNodes[so]).map($_c9h6qlzjfuw8l98.fromDom);
-    }
-  };
-  var getEndNode = function (rng) {
-    var ec = rng.endContainer, eo = rng.endOffset;
-    if ($_ey7ka11qjfuw8ldg.isText(ec)) {
-      return eo === ec.data.length ? Option.some($_c9h6qlzjfuw8l98.fromDom(ec)) : Option.none();
-    } else {
-      return Option.from(ec.childNodes[eo - 1]).map($_c9h6qlzjfuw8l98.fromDom);
-    }
-  };
-  var getFirstChildren = function (node) {
-    return $_2j4g5u17jfuw8lav.firstChild(node).fold($_68e81l6jfuw8kyc.constant([node]), function (child) {
-      return [node].concat(getFirstChildren(child));
-    });
-  };
-  var getLastChildren$1 = function (node) {
-    return $_2j4g5u17jfuw8lav.lastChild(node).fold($_68e81l6jfuw8kyc.constant([node]), function (child) {
-      if ($_eaw33d10jfuw8l9f.name(child) === 'br') {
-        return $_2j4g5u17jfuw8lav.prevSibling(child).map(function (sibling) {
-          return [node].concat(getLastChildren$1(sibling));
-        }).getOr([]);
-      } else {
-        return [node].concat(getLastChildren$1(child));
-      }
-    });
-  };
-  var hasAllContentsSelected = function (elm, rng) {
-    return $_5gv5dd26jfuw8li3.liftN([
-      getStartNode(rng),
-      getEndNode(rng)
-    ], function (startNode, endNode) {
-      var start = $_9ek1bp4jfuw8kxg.find(getFirstChildren(elm), $_68e81l6jfuw8kyc.curry($_4fb96d1djfuw8lbl.eq, startNode));
-      var end = $_9ek1bp4jfuw8kxg.find(getLastChildren$1(elm), $_68e81l6jfuw8kyc.curry($_4fb96d1djfuw8lbl.eq, endNode));
-      return start.isSome() && end.isSome();
-    }).getOr(false);
-  };
-  var moveEndPoint$1 = function (dom, rng, node, start) {
-    var root = node, walker = new TreeWalker(node, root);
-    var nonEmptyElementsMap = dom.schema.getNonEmptyElements();
-    do {
-      if (node.nodeType === 3 && $_52qop8kjfuw8l6v.trim(node.nodeValue).length !== 0) {
-        if (start) {
-          rng.setStart(node, 0);
-        } else {
-          rng.setEnd(node, node.nodeValue.length);
-        }
-        return;
-      }
-      if (nonEmptyElementsMap[node.nodeName] && !/^(TD|TH)$/.test(node.nodeName)) {
-        if (start) {
-          rng.setStartBefore(node);
-        } else {
-          if (node.nodeName === 'BR') {
-            rng.setEndBefore(node);
-          } else {
-            rng.setEndAfter(node);
-          }
-        }
-        return;
-      }
-      if ($_9fhi43ajfuw8l13.ie && $_9fhi43ajfuw8l13.ie < 11 && dom.isBlock(node) && dom.isEmpty(node)) {
-        if (start) {
-          rng.setStart(node, 0);
-        } else {
-          rng.setEnd(node, 0);
-        }
-        return;
-      }
-    } while (node = start ? walker.next() : walker.prev());
-    if (root.nodeName === 'BODY') {
-      if (start) {
-        rng.setStart(root, 0);
-      } else {
-        rng.setEnd(root, root.childNodes.length);
-      }
-    }
-  };
-
-  var tableModel = $_1a7eqh18jfuw8lb9.immutable('element', 'width', 'rows');
-  var tableRow = $_1a7eqh18jfuw8lb9.immutable('element', 'cells');
-  var cellPosition = $_1a7eqh18jfuw8lb9.immutable('x', 'y');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var tableModel = Immutable('element', 'width', 'rows');
+  var tableRow = Immutable('element', 'cells');
+  var cellPosition = Immutable('x', 'y');
</ins><span class="cx" style="display: block; padding: 0 10px">   var getSpan = function (td, key) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var value = parseInt($_8g002u14jfuw8la5.get(td, key), 10);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var value = parseInt($_etx7gr15jjgwe7mr.get(td, key), 10);
</ins><span class="cx" style="display: block; padding: 0 10px">     return isNaN(value) ? 1 : value;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fillout = function (table, x, y, tr, td) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21524,11 +21672,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var rows = table.rows();
</span><span class="cx" style="display: block; padding: 0 10px">     for (var y2 = y; y2 < y + rowspan; y2++) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!rows[y2]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        rows[y2] = tableRow($_bde3we6ijfuw8mdt.deep(tr), []);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        rows[y2] = tableRow($_6do1m42ijjgwe7wd.deep(tr), []);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       for (var x2 = x; x2 < x + colspan; x2++) {
</span><span class="cx" style="display: block; padding: 0 10px">         var cells = rows[y2].cells();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        cells[x2] = y2 === y && x2 === x ? td : $_bde3we6ijfuw8mdt.shallow(td);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        cells[x2] = y2 === y && x2 === x ? td : $_6do1m42ijjgwe7wd.shallow(td);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21544,7 +21692,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return x;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getWidth = function (rows) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.foldl(rows, function (acc, row) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return foldl(rows, function (acc, row) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return row.cells().length > acc ? row.cells().length : acc;
</span><span class="cx" style="display: block; padding: 0 10px">     }, 0);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21553,7 +21701,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     for (var y = 0; y < rows.length; y++) {
</span><span class="cx" style="display: block; padding: 0 10px">       var cells = rows[y].cells();
</span><span class="cx" style="display: block; padding: 0 10px">       for (var x = 0; x < cells.length; x++) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_4fb96d1djfuw8lbl.eq(cells[x], element)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_5raon11ejjgwe7o5.eq(cells[x], element)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return Option.some(cellPosition(x, y));
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21577,29 +21725,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return tableModel(table.element(), getWidth(newRows), newRows);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createDomTable = function (table, rows) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var tableElement = $_bde3we6ijfuw8mdt.shallow(table.element());
-    var tableBody = $_c9h6qlzjfuw8l98.fromTag('tbody');
-    $_84jjow2vjfuw8lml.append(tableBody, rows);
-    $_doli6x2kjfuw8lky.append(tableElement, tableBody);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var tableElement = $_6do1m42ijjgwe7wd.shallow(table.element());
+    var tableBody = Element$$1.fromTag('tbody');
+    $_4wf3mo1xjjgwe7sq.append(tableBody, rows);
+    $_ewo3u51yjjgwe7su.append(tableElement, tableBody);
</ins><span class="cx" style="display: block; padding: 0 10px">     return tableElement;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var modelRowsToDomRows = function (table) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.map(table.rows(), function (row) {
-      var cells = $_9ek1bp4jfuw8kxg.map(row.cells(), function (cell) {
-        var td = $_bde3we6ijfuw8mdt.deep(cell);
-        $_8g002u14jfuw8la5.remove(td, 'colspan');
-        $_8g002u14jfuw8la5.remove(td, 'rowspan');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(table.rows(), function (row) {
+      var cells = map(row.cells(), function (cell) {
+        var td = $_6do1m42ijjgwe7wd.deep(cell);
+        $_etx7gr15jjgwe7mr.remove(td, 'colspan');
+        $_etx7gr15jjgwe7mr.remove(td, 'rowspan');
</ins><span class="cx" style="display: block; padding: 0 10px">         return td;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var tr = $_bde3we6ijfuw8mdt.shallow(row.element());
-      $_84jjow2vjfuw8lml.append(tr, cells);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var tr = $_6do1m42ijjgwe7wd.shallow(row.element());
+      $_4wf3mo1xjjgwe7sq.append(tr, cells);
</ins><span class="cx" style="display: block; padding: 0 10px">       return tr;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fromDom$2 = function (tableElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var table = tableModel($_bde3we6ijfuw8mdt.shallow(tableElm), 0, []);
-    $_9ek1bp4jfuw8kxg.each($_ryxde2gjfuw8lkk.descendants(tableElm, 'tr'), function (tr, y) {
-      $_9ek1bp4jfuw8kxg.each($_ryxde2gjfuw8lkk.descendants(tr, 'td,th'), function (td, x) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var table = tableModel($_6do1m42ijjgwe7wd.shallow(tableElm), 0, []);
+    each($_d3ydn427jjgwe7uf.descendants(tableElm, 'tr'), function (tr, y) {
+      each($_d3ydn427jjgwe7uf.descendants(tr, 'td,th'), function (td, x) {
</ins><span class="cx" style="display: block; padding: 0 10px">         fillout(table, skipCellsX(table, x, y), y, tr, td);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21615,7 +21763,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ep4zvn6ljfuw8mee = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_frz8qx72jjgwe8xv = {
</ins><span class="cx" style="display: block; padding: 0 10px">     fromDom: fromDom$2,
</span><span class="cx" style="display: block; padding: 0 10px">     toDom: toDom,
</span><span class="cx" style="display: block; padding: 0 10px">     subsection: subsection
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21622,32 +21770,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var findParentListContainer = function (parents) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.find(parents, function (elm) {
-      return $_eaw33d10jfuw8l9f.name(elm) === 'ul' || $_eaw33d10jfuw8l9f.name(elm) === 'ol';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return find(parents, function (elm) {
+      return $_fxxo5411jjgwe7lq.name(elm) === 'ul' || $_fxxo5411jjgwe7lq.name(elm) === 'ol';
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getFullySelectedListWrappers = function (parents, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.find(parents, function (elm) {
-      return $_eaw33d10jfuw8l9f.name(elm) === 'li' && hasAllContentsSelected(elm, rng);
-    }).fold($_68e81l6jfuw8kyc.constant([]), function (li) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return find(parents, function (elm) {
+      return $_fxxo5411jjgwe7lq.name(elm) === 'li' && hasAllContentsSelected(elm, rng);
+    }).fold(constant([]), function (li) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return findParentListContainer(parents).map(function (listCont) {
</span><span class="cx" style="display: block; padding: 0 10px">         return [
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_c9h6qlzjfuw8l98.fromTag('li'),
-          $_c9h6qlzjfuw8l98.fromTag($_eaw33d10jfuw8l9f.name(listCont))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          Element$$1.fromTag('li'),
+          Element$$1.fromTag($_fxxo5411jjgwe7lq.name(listCont))
</ins><span class="cx" style="display: block; padding: 0 10px">         ];
</span><span class="cx" style="display: block; padding: 0 10px">       }).getOr([]);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var wrap$3 = function (innerElm, elms) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var wrapped = $_9ek1bp4jfuw8kxg.foldl(elms, function (acc, elm) {
-      $_doli6x2kjfuw8lky.append(elm, acc);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var wrapped = foldl(elms, function (acc, elm) {
+      $_ewo3u51yjjgwe7su.append(elm, acc);
</ins><span class="cx" style="display: block; padding: 0 10px">       return elm;
</span><span class="cx" style="display: block; padding: 0 10px">     }, innerElm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return elms.length > 0 ? $_aj5cq36jjfuw8mdv.fromElements([wrapped]) : wrapped;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return elms.length > 0 ? $_xpi1671jjgwe8xg.fromElements([wrapped]) : wrapped;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var directListWrappers = function (commonAnchorContainer) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (isListItem(commonAnchorContainer)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_2j4g5u17jfuw8lav.parent(commonAnchorContainer).filter(isList).fold($_68e81l6jfuw8kyc.constant([]), function (listElm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_d3rmjp18jjgwe7nc.parent(commonAnchorContainer).filter(isList).fold(constant([]), function (listElm) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return [
</span><span class="cx" style="display: block; padding: 0 10px">           commonAnchorContainer,
</span><span class="cx" style="display: block; padding: 0 10px">           listElm
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21658,31 +21806,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getWrapElements = function (rootNode, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var commonAnchorContainer = $_c9h6qlzjfuw8l98.fromDom(rng.commonAncestorContainer);
-    var parents = $_3t5pi43ejfuw8lq0.parentsAndSelf(commonAnchorContainer, rootNode);
-    var wrapElements = $_9ek1bp4jfuw8kxg.filter(parents, function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var commonAnchorContainer = Element$$1.fromDom(rng.commonAncestorContainer);
+    var parents = $_cvft7x3zjjgwe8bh.parentsAndSelf(commonAnchorContainer, rootNode);
+    var wrapElements = filter(parents, function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return isInline(elm) || isHeading(elm);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     var listWrappers = getFullySelectedListWrappers(parents, rng);
</span><span class="cx" style="display: block; padding: 0 10px">     var allWrappers = wrapElements.concat(listWrappers.length ? listWrappers : directListWrappers(commonAnchorContainer));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.map(allWrappers, $_bde3we6ijfuw8mdt.shallow);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(allWrappers, $_6do1m42ijjgwe7wd.shallow);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var emptyFragment = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_aj5cq36jjfuw8mdv.fromElements([]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_xpi1671jjgwe8xg.fromElements([]);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getFragmentFromRange = function (rootNode, rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return wrap$3($_c9h6qlzjfuw8l98.fromDom(rng.cloneContents()), getWrapElements(rootNode, rng));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return wrap$3(Element$$1.fromDom(rng.cloneContents()), getWrapElements(rootNode, rng));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getParentTable = function (rootElm, cell) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.ancestor(cell, 'table', $_68e81l6jfuw8kyc.curry($_4fb96d1djfuw8lbl.eq, rootElm));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.ancestor(cell, 'table', curry($_5raon11ejjgwe7o5.eq, rootElm));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getTableFragment = function (rootNode, selectedTableCells) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getParentTable(rootNode, selectedTableCells[0]).bind(function (tableElm) {
</span><span class="cx" style="display: block; padding: 0 10px">       var firstCell = selectedTableCells[0];
</span><span class="cx" style="display: block; padding: 0 10px">       var lastCell = selectedTableCells[selectedTableCells.length - 1];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var fullTableModel = $_ep4zvn6ljfuw8mee.fromDom(tableElm);
-      return $_ep4zvn6ljfuw8mee.subsection(fullTableModel, firstCell, lastCell).map(function (sectionedTableModel) {
-        return $_aj5cq36jjfuw8mdv.fromElements([$_ep4zvn6ljfuw8mee.toDom(sectionedTableModel)]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var fullTableModel = $_frz8qx72jjgwe8xv.fromDom(tableElm);
+      return $_frz8qx72jjgwe8xv.subsection(fullTableModel, firstCell, lastCell).map(function (sectionedTableModel) {
+        return $_xpi1671jjgwe8xg.fromElements([$_frz8qx72jjgwe8xv.toDom(sectionedTableModel)]);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOrThunk(emptyFragment);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21689,17 +21837,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var getSelectionFragment = function (rootNode, ranges) {
</span><span class="cx" style="display: block; padding: 0 10px">     return ranges.length > 0 && ranges[0].collapsed ? emptyFragment() : getFragmentFromRange(rootNode, ranges[0]);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var read$3 = function (rootNode, ranges) {
-    var selectedCells = $_6icyb83tjfuw8lwy.getCellsFromElementOrRanges(ranges, rootNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var read$4 = function (rootNode, ranges) {
+    var selectedCells = $_97ifsc4ejjgwe8fg.getCellsFromElementOrRanges(ranges, rootNode);
</ins><span class="cx" style="display: block; padding: 0 10px">     return selectedCells.length > 0 ? getTableFragment(rootNode, selectedCells) : getSelectionFragment(rootNode, ranges);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_f00v4h6hjfuw8mde = { read: read$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_c5lgd70jjgwe8wz = { read: read$4 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getContent = function (editor, args) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rng = editor.selection.getRng(), tmpElm = editor.dom.create('body');
</span><span class="cx" style="display: block; padding: 0 10px">     var sel = editor.selection.getSel();
</span><span class="cx" style="display: block; padding: 0 10px">     var fragment;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var ranges = $_2shlx66fjfuw8md6.processRanges(editor, $_asx40h3ujfuw8lx3.getRanges(sel));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var ranges = $_atnm1d6yjjgwe8wr.processRanges(editor, $_2y1a8s4fjjgwe8fm.getRanges(sel));
</ins><span class="cx" style="display: block; padding: 0 10px">     args = args || {};
</span><span class="cx" style="display: block; padding: 0 10px">     args.get = true;
</span><span class="cx" style="display: block; padding: 0 10px">     args.format = args.format || 'html';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21710,10 +21858,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return args.content;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (args.format === 'text') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return editor.selection.isCollapsed() ? '' : $_dpfg1321jfuw8lhn.trim(rng.text || (sel.toString ? sel.toString() : ''));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return editor.selection.isCollapsed() ? '' : $_2xw7ul2pjjgwe7xs.trim(rng.text || (sel.toString ? sel.toString() : ''));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (rng.cloneContents) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      fragment = args.contextual ? $_f00v4h6hjfuw8mde.read($_c9h6qlzjfuw8l98.fromDom(editor.getBody()), ranges).dom() : rng.cloneContents();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      fragment = args.contextual ? $_c5lgd70jjgwe8wz.read(Element$$1.fromDom(editor.getBody()), ranges).dom() : rng.cloneContents();
</ins><span class="cx" style="display: block; padding: 0 10px">       if (fragment) {
</span><span class="cx" style="display: block; padding: 0 10px">         tmpElm.appendChild(fragment);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21732,7 +21880,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.fire('GetContent', args);
</span><span class="cx" style="display: block; padding: 0 10px">     return args.content;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_elw9bs6gjfuw8md8 = { getContent: getContent };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_41mrdx6zjjgwe8wu = { getContent: getContent };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var setContent = function (editor, content, args) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rng = editor.selection.getRng(), caretNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21796,15 +21944,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.fire('SetContent', args);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_629mjb6mjfuw8mf2 = { setContent: setContent };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_e043ey73jjgwe8yg = { setContent: setContent };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getEndpointElement = function (root, rng, start, real, resolve) {
</span><span class="cx" style="display: block; padding: 0 10px">     var container = start ? rng.startContainer : rng.endContainer;
</span><span class="cx" style="display: block; padding: 0 10px">     var offset = start ? rng.startOffset : rng.endOffset;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(container).map($_c9h6qlzjfuw8l98.fromDom).map(function (elm) {
-      return !real || !rng.collapsed ? $_2j4g5u17jfuw8lav.child(elm, resolve(elm, offset)).getOr(elm) : elm;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(container).map(Element$$1.fromDom).map(function (elm) {
+      return !real || !rng.collapsed ? $_d3rmjp18jjgwe7nc.child(elm, resolve(elm, offset)).getOr(elm) : elm;
</ins><span class="cx" style="display: block; padding: 0 10px">     }).bind(function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_eaw33d10jfuw8l9f.isElement(elm) ? Option.some(elm) : $_2j4g5u17jfuw8lav.parent(elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_fxxo5411jjgwe7lq.isElement(elm) ? Option.some(elm) : $_d3rmjp18jjgwe7nc.parent(elm);
</ins><span class="cx" style="display: block; padding: 0 10px">     }).map(function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">       return elm.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     }).getOr(root);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21811,7 +21959,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getStart$2 = function (root, rng, real) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getEndpointElement(root, rng, true, real, function (elm, offset) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return Math.min($_2j4g5u17jfuw8lav.childNodesCount(elm), offset);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return Math.min($_d3rmjp18jjgwe7nc.childNodesCount(elm), offset);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getEnd = function (root, rng, real) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21821,7 +21969,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var skipEmptyTextNodes = function (node, forwards) {
</span><span class="cx" style="display: block; padding: 0 10px">     var orig = node;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    while (node && $_ey7ka11qjfuw8ldg.isText(node) && node.length === 0) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    while (node && $_3b9u2y1rjjgwe7qe.isText(node) && node.length === 0) {
</ins><span class="cx" style="display: block; padding: 0 10px">       node = forwards ? node.nextSibling : node.previousSibling;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return node || orig;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21902,12 +22050,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$20 = $_52qop8kjfuw8l6v.each;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$19 = $_6cwiepljjgwe7j4.each;
</ins><span class="cx" style="display: block; padding: 0 10px">   var isNativeIeSelection = function (rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     return !!rng.select;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isAttachedToDom = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return !!(node && node.ownerDocument) && $_4fb96d1djfuw8lbl.contains($_c9h6qlzjfuw8l98.fromDom(node.ownerDocument), $_c9h6qlzjfuw8l98.fromDom(node));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return !!(node && node.ownerDocument) && $_5raon11ejjgwe7o5.contains(Element$$1.fromDom(node.ownerDocument), Element$$1.fromDom(node));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isValidRange = function (rng) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (!rng) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21934,10 +22082,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getContent = function (args) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_elw9bs6gjfuw8md8.getContent(editor, args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_41mrdx6zjjgwe8wu.getContent(editor, args);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var setContent = function (content, args) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_629mjb6mjfuw8mf2.setContent(editor, content, args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_e043ey73jjgwe8yg.setContent(editor, content, args);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getStart = function (real) {
</span><span class="cx" style="display: block; padding: 0 10px">       return getStart$2(editor.getBody(), getRng(), real);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21989,11 +22137,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (typeof doc === 'undefined' || doc === null) {
</span><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (editor.bookmark !== undefined && $_18lipa49jfuw8lzt.hasFocus(editor) === false) {
-        var bookmark = $_2a7vvg40jfuw8lyb.getRng(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (editor.bookmark !== undefined && $_5eyh7w4vjjgwe8ik.hasFocus(editor) === false) {
+        var bookmark = $_4wtqbt4ljjgwe8gy.getRng(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (bookmark.isSome()) {
</span><span class="cx" style="display: block; padding: 0 10px">           return bookmark.map(function (r) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return $_2shlx66fjfuw8md6.processRanges(editor, [r])[0];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return $_atnm1d6yjjgwe8wr.processRanges(editor, [r])[0];
</ins><span class="cx" style="display: block; padding: 0 10px">           }).getOr(doc.createRange());
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22007,7 +22155,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       } catch (ex) {
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      rng = $_2shlx66fjfuw8md6.processRanges(editor, [rng])[0];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      rng = $_atnm1d6yjjgwe8wr.processRanges(editor, [rng])[0];
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!rng) {
</span><span class="cx" style="display: block; padding: 0 10px">         rng = doc.createRange ? doc.createRange() : doc.body.createTextRange();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22059,7 +22207,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!rng.collapsed && rng.startContainer === rng.endContainer && sel.setBaseAndExtent && !$_9fhi43ajfuw8l13.ie) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!rng.collapsed && rng.startContainer === rng.endContainer && sel.setBaseAndExtent && !$_bcvfv9ajjgwe79v.ie) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (rng.endOffset - rng.startOffset < 2) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (rng.startContainer.hasChildNodes()) {
</span><span class="cx" style="display: block; padding: 0 10px">             node = rng.startContainer.childNodes[rng.startOffset];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22103,8 +22251,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var normalize = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var rng = getRng();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!$_asx40h3ujfuw8lx3.hasMultipleRanges(getSel())) {
-        var normRng = $_970szt3yjfuw8ly1.normalize(dom, rng);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var sel = getSel();
+      if (!$_2y1a8s4fjjgwe8fm.hasMultipleRanges(sel) && hasAnyRanges(editor)) {
+        var normRng = $_eqgqyj4jjjgwe8gi.normalize(dom, rng);
</ins><span class="cx" style="display: block; padding: 0 10px">         normRng.each(function (normRng) {
</span><span class="cx" style="display: block; padding: 0 10px">           setRng(normRng, isForward());
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22119,11 +22268,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         currentSelectors = {};
</span><span class="cx" style="display: block; padding: 0 10px">         editor.on('NodeChange', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           var node = e.element, parents = dom.getParents(node, null, dom.getRoot()), matchedSelectors = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$20(selectorChangedData, function (callbacks, selector) {
-            each$20(parents, function (node) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$19(selectorChangedData, function (callbacks, selector) {
+            each$19(parents, function (node) {
</ins><span class="cx" style="display: block; padding: 0 10px">               if (dom.is(node, selector)) {
</span><span class="cx" style="display: block; padding: 0 10px">                 if (!currentSelectors[selector]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                  each$20(callbacks, function (callback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                  each$19(callbacks, function (callback) {
</ins><span class="cx" style="display: block; padding: 0 10px">                     callback(true, {
</span><span class="cx" style="display: block; padding: 0 10px">                       node: node,
</span><span class="cx" style="display: block; padding: 0 10px">                       selector: selector,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22137,10 +22286,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$20(currentSelectors, function (callbacks, selector) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$19(currentSelectors, function (callbacks, selector) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (!matchedSelectors[selector]) {
</span><span class="cx" style="display: block; padding: 0 10px">               delete currentSelectors[selector];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              each$20(callbacks, function (callback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              each$19(callbacks, function (callback) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 callback(false, {
</span><span class="cx" style="display: block; padding: 0 10px">                   node: node,
</span><span class="cx" style="display: block; padding: 0 10px">                   selector: selector,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22170,10 +22319,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return scrollContainer;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var scrollIntoView = function (elm, alignToTop) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_254q5e2ijfuw8lkq.scrollElementIntoView(editor, elm, alignToTop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_1mgvl137jjgwe825.scrollElementIntoView(editor, elm, alignToTop);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var placeCaretAt = function (clientX, clientY) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return setRng($_dyytu76ejfuw8md2.fromPoint(clientX, clientY, editor.getDoc()));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return setRng($_269jak6xjjgwe8wp.fromPoint(clientX, clientY, editor.getDoc()));
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getBoundingClientRect = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var rng = getRng();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22222,7 +22371,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return exports;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var isContentEditableFalse$11 = $_ey7ka11qjfuw8ldg.isContentEditableFalse;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var isContentEditableFalse$11 = $_3b9u2y1rjjgwe7qe.isContentEditableFalse;
</ins><span class="cx" style="display: block; padding: 0 10px">   var getSelectedNode$1 = getSelectedNode;
</span><span class="cx" style="display: block; padding: 0 10px">   var isAfterContentEditableFalse$2 = isAfterContentEditableFalse;
</span><span class="cx" style="display: block; padding: 0 10px">   var isBeforeContentEditableFalse$2 = isBeforeContentEditableFalse;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22236,7 +22385,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isMoveInsideSameBlock = function (from, to) {
</span><span class="cx" style="display: block; padding: 0 10px">     var inSameBlock = isInSameBlock(from, to);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!inSameBlock && $_ey7ka11qjfuw8ldg.isBr(from.getNode())) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!inSameBlock && $_3b9u2y1rjjgwe7qe.isBr(from.getNode())) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return true;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return inSameBlock;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22284,8 +22433,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     contentEditableFalseNode = getSelectedNode$1(range);
</span><span class="cx" style="display: block; padding: 0 10px">     caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);
</span><span class="cx" style="display: block; padding: 0 10px">     linePositions = walkerFn(editor.getBody(), isAboveLine(1), caretPosition);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    nextLinePositions = $_djuh8tljfuw8l74.filter(linePositions, isLine(1));
-    caretClientRect = $_djuh8tljfuw8l74.last(caretPosition.getClientRects());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    nextLinePositions = $_6t4axrmjjgwe7jf.filter(linePositions, isLine(1));
+    caretClientRect = $_6t4axrmjjgwe7jf.last(caretPosition.getClientRects());
</ins><span class="cx" style="display: block; padding: 0 10px">     if (isBeforeContentEditableFalse$2(caretPosition) || isBeforeTable(caretPosition)) {
</span><span class="cx" style="display: block; padding: 0 10px">       contentEditableFalseNode = caretPosition.getNode();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22306,11 +22455,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (contentEditableFalseNode) {
</span><span class="cx" style="display: block; padding: 0 10px">       var caretPositions = positionsUntil(direction, editor.getBody(), isAboveLine(1), contentEditableFalseNode);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      closestNextLineRect = findClosestClientRect($_djuh8tljfuw8l74.filter(caretPositions, isLine(1)), clientX);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      closestNextLineRect = findClosestClientRect($_6t4axrmjjgwe7jf.filter(caretPositions, isLine(1)), clientX);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (closestNextLineRect) {
</span><span class="cx" style="display: block; padding: 0 10px">         return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      closestNextLineRect = $_djuh8tljfuw8l74.last($_djuh8tljfuw8l74.filter(caretPositions, isLine(0)));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      closestNextLineRect = $_6t4axrmjjgwe7jf.last($_6t4axrmjjgwe7jf.filter(caretPositions, isLine(0)));
</ins><span class="cx" style="display: block; padding: 0 10px">       if (closestNextLineRect) {
</span><span class="cx" style="display: block; padding: 0 10px">         return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22318,7 +22467,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createTextBlock = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var textBlock = editor.dom.create(editor.settings.forced_root_block);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_9fhi43ajfuw8l13.ie || $_9fhi43ajfuw8l13.ie >= 11) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_bcvfv9ajjgwe79v.ie || $_bcvfv9ajjgwe79v.ie >= 11) {
</ins><span class="cx" style="display: block; padding: 0 10px">       textBlock.innerHTML = '<br data-mce-bogus="1">';
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return textBlock;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22326,8 +22475,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var exitPreBlock = function (editor, direction, range) {
</span><span class="cx" style="display: block; padding: 0 10px">     var pre, caretPos, newBlock;
</span><span class="cx" style="display: block; padding: 0 10px">     var caretWalker = CaretWalker(editor.getBody());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getNextVisualCaretPosition = $_ebfy8j25jfuw8li1.curry(getVisualCaretPosition, caretWalker.next);
-    var getPrevVisualCaretPosition = $_ebfy8j25jfuw8li1.curry(getVisualCaretPosition, caretWalker.prev);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getNextVisualCaretPosition = $_4127e12ljjgwe7ww.curry(getVisualCaretPosition, caretWalker.next);
+    var getPrevVisualCaretPosition = $_4127e12ljjgwe7ww.curry(getVisualCaretPosition, caretWalker.prev);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (range.collapsed && editor.settings.forced_root_block) {
</span><span class="cx" style="display: block; padding: 0 10px">       pre = editor.dom.getParent(range.startContainer, 'PRE');
</span><span class="cx" style="display: block; padding: 0 10px">       if (!pre) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22352,8 +22501,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getHorizontalRange = function (editor, forward) {
</span><span class="cx" style="display: block; padding: 0 10px">     var caretWalker = CaretWalker(editor.getBody());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getNextVisualCaretPosition = $_ebfy8j25jfuw8li1.curry(getVisualCaretPosition, caretWalker.next);
-    var getPrevVisualCaretPosition = $_ebfy8j25jfuw8li1.curry(getVisualCaretPosition, caretWalker.prev);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getNextVisualCaretPosition = $_4127e12ljjgwe7ww.curry(getVisualCaretPosition, caretWalker.next);
+    var getPrevVisualCaretPosition = $_4127e12ljjgwe7ww.curry(getVisualCaretPosition, caretWalker.prev);
</ins><span class="cx" style="display: block; padding: 0 10px">     var newRange;
</span><span class="cx" style="display: block; padding: 0 10px">     var direction = forward ? HDirection.Forwards : HDirection.Backwards;
</span><span class="cx" style="display: block; padding: 0 10px">     var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22407,14 +22556,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var defaultPatterns = function (patterns) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.map(patterns, function (pattern) {
-      return $_dt8zuf62jfuw8mab.merge({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return map(patterns, function (pattern) {
+      return merge({
</ins><span class="cx" style="display: block; padding: 0 10px">         shiftKey: false,
</span><span class="cx" style="display: block; padding: 0 10px">         altKey: false,
</span><span class="cx" style="display: block; padding: 0 10px">         ctrlKey: false,
</span><span class="cx" style="display: block; padding: 0 10px">         metaKey: false,
</span><span class="cx" style="display: block; padding: 0 10px">         keyCode: 0,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        action: $_68e81l6jfuw8kyc.noop
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        action: noop
</ins><span class="cx" style="display: block; padding: 0 10px">       }, pattern);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22422,7 +22571,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return evt.keyCode === pattern.keyCode && evt.shiftKey === pattern.shiftKey && evt.altKey === pattern.altKey && evt.ctrlKey === pattern.ctrlKey && evt.metaKey === pattern.metaKey;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var match$1 = function (patterns, evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.bind(defaultPatterns(patterns), function (pattern) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return bind(defaultPatterns(patterns), function (pattern) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return matchesEvent(pattern, evt) ? [pattern] : [];
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22437,11 +22586,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var execute = function (patterns, evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_9ek1bp4jfuw8kxg.find(match$1(patterns, evt), function (pattern) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return find(match$1(patterns, evt), function (pattern) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return pattern.action();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_16uyj26rjfuw8mfp = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4hb46d78jjgwe8z6 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     match: match$1,
</span><span class="cx" style="display: block; padding: 0 10px">     action: action,
</span><span class="cx" style="display: block; padding: 0 10px">     execute: execute
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22448,65 +22597,65 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var executeKeydownOverride = function (editor, caret, evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var os = $_f1lbzgnjfuw8l7o.detect().os;
-    $_16uyj26rjfuw8mfp.execute([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var os = $_7vg267ojjgwe7k0.detect().os;
+    $_4hb46d78jjgwe8z6.execute([
</ins><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.RIGHT,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.RIGHT,
</ins><span class="cx" style="display: block; padding: 0 10px">         action: moveH$1(editor, true)
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.LEFT,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.LEFT,
</ins><span class="cx" style="display: block; padding: 0 10px">         action: moveH$1(editor, false)
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.UP,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.UP,
</ins><span class="cx" style="display: block; padding: 0 10px">         action: moveV$1(editor, false)
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.DOWN,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.DOWN,
</ins><span class="cx" style="display: block; padding: 0 10px">         action: moveV$1(editor, true)
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.RIGHT,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.RIGHT,
</ins><span class="cx" style="display: block; padding: 0 10px">         action: moveH(editor, true)
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.LEFT,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.LEFT,
</ins><span class="cx" style="display: block; padding: 0 10px">         action: moveH(editor, false)
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.UP,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.UP,
</ins><span class="cx" style="display: block; padding: 0 10px">         action: moveV(editor, false)
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.DOWN,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.DOWN,
</ins><span class="cx" style="display: block; padding: 0 10px">         action: moveV(editor, true)
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.RIGHT,
-        action: $_enc4983pjfuw8lvo.move(editor, caret, true)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.RIGHT,
+        action: $_80ia3a4ajjgwe8e2.move(editor, caret, true)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.LEFT,
-        action: $_enc4983pjfuw8lvo.move(editor, caret, false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.LEFT,
+        action: $_80ia3a4ajjgwe8e2.move(editor, caret, false)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.RIGHT,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.RIGHT,
</ins><span class="cx" style="display: block; padding: 0 10px">         ctrlKey: !os.isOSX(),
</span><span class="cx" style="display: block; padding: 0 10px">         altKey: os.isOSX(),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        action: $_enc4983pjfuw8lvo.moveNextWord(editor, caret)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        action: $_80ia3a4ajjgwe8e2.moveNextWord(editor, caret)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.LEFT,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.LEFT,
</ins><span class="cx" style="display: block; padding: 0 10px">         ctrlKey: !os.isOSX(),
</span><span class="cx" style="display: block; padding: 0 10px">         altKey: os.isOSX(),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        action: $_enc4983pjfuw8lvo.movePrevWord(editor, caret)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        action: $_80ia3a4ajjgwe8e2.movePrevWord(editor, caret)
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     ], evt).each(function (_) {
</span><span class="cx" style="display: block; padding: 0 10px">       evt.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$5 = function (editor, caret) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$7 = function (editor, caret) {
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.on('keydown', function (evt) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (evt.isDefaultPrevented() === false) {
</span><span class="cx" style="display: block; padding: 0 10px">         executeKeydownOverride(editor, caret, evt);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22513,24 +22662,24 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_2prsz46pjfuw8mff = { setup: setup$5 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_97nc1t76jjgwe8yv = { setup: setup$7 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var getParentInlines = function (rootElm, startElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var parents = $_3t5pi43ejfuw8lq0.parentsAndSelf(startElm, rootElm);
-    return $_9ek1bp4jfuw8kxg.findIndex(parents, isBlock).fold($_68e81l6jfuw8kyc.constant(parents), function (index) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var parents = $_cvft7x3zjjgwe8bh.parentsAndSelf(startElm, rootElm);
+    return findIndex(parents, isBlock).fold(constant(parents), function (index) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return parents.slice(0, index);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasOnlyOneChild$1 = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_2j4g5u17jfuw8lav.children(elm).length === 1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_d3rmjp18jjgwe7nc.children(elm).length === 1;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteLastPosition = function (forward, editor, target, parentInlines) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isFormatElement$$1 = $_68e81l6jfuw8kyc.curry(isFormatElement, editor);
-    var formatNodes = $_9ek1bp4jfuw8kxg.map($_9ek1bp4jfuw8kxg.filter(parentInlines, isFormatElement$$1), function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isFormatElement$$1 = curry(isFormatElement, editor);
+    var formatNodes = map(filter(parentInlines, isFormatElement$$1), function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return elm.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     if (formatNodes.length === 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_ge41qn3jjfuw8lr1.deleteElement(editor, forward, target);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_eg6ib44jjgwe8ck.deleteElement(editor, forward, target);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       var pos = replaceWithCaretFormat(target.dom(), formatNodes);
</span><span class="cx" style="display: block; padding: 0 10px">       editor.selection.setRng(pos.toRange());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22537,12 +22686,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var deleteCaret$1 = function (editor, forward) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var rootElm = $_c9h6qlzjfuw8l98.fromDom(editor.getBody());
-    var startElm = $_c9h6qlzjfuw8l98.fromDom(editor.selection.getStart());
-    var parentInlines = $_9ek1bp4jfuw8kxg.filter(getParentInlines(rootElm, startElm), hasOnlyOneChild$1);
-    return $_9ek1bp4jfuw8kxg.last(parentInlines).map(function (target) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var rootElm = Element$$1.fromDom(editor.getBody());
+    var startElm = Element$$1.fromDom(editor.selection.getStart());
+    var parentInlines = filter(getParentInlines(rootElm, startElm), hasOnlyOneChild$1);
+    return last(parentInlines).map(function (target) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_43wr4w34jfuw8lnu.willDeleteLastPositionInElement(forward, fromPos, target.dom())) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3vi93f3sjjgwe861.willDeleteLastPositionInElement(forward, fromPos, target.dom())) {
</ins><span class="cx" style="display: block; padding: 0 10px">         deleteLastPosition(forward, editor, target, parentInlines);
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22553,57 +22702,57 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var backspaceDelete$5 = function (editor, forward) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.selection.isCollapsed() ? deleteCaret$1(editor, forward) : false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3zo6mo6tjfuw8mfy = { backspaceDelete: backspaceDelete$5 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_529ibl7ajjgwe8zf = { backspaceDelete: backspaceDelete$5 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var executeKeydownOverride$1 = function (editor, caret, evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_16uyj26rjfuw8mfp.execute([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_4hb46d78jjgwe8z6.execute([
</ins><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.BACKSPACE,
-        action: $_16uyj26rjfuw8mfp.action($_a7skkj3gjfuw8lqf.backspaceDelete, editor, false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.BACKSPACE,
+        action: $_4hb46d78jjgwe8z6.action($_cc2jel41jjgwe8bx.backspaceDelete, editor, false)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.DELETE,
-        action: $_16uyj26rjfuw8mfp.action($_a7skkj3gjfuw8lqf.backspaceDelete, editor, true)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.DELETE,
+        action: $_4hb46d78jjgwe8z6.action($_cc2jel41jjgwe8bx.backspaceDelete, editor, true)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.BACKSPACE,
-        action: $_16uyj26rjfuw8mfp.action($_qeu9d3kjfuw8luq.backspaceDelete, editor, caret, false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.BACKSPACE,
+        action: $_4hb46d78jjgwe8z6.action($_fwrmt445jjgwe8d5.backspaceDelete, editor, caret, false)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.DELETE,
-        action: $_16uyj26rjfuw8mfp.action($_qeu9d3kjfuw8luq.backspaceDelete, editor, caret, true)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.DELETE,
+        action: $_4hb46d78jjgwe8z6.action($_fwrmt445jjgwe8d5.backspaceDelete, editor, caret, true)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.BACKSPACE,
-        action: $_16uyj26rjfuw8mfp.action($_f34seo3fjfuw8lq6.backspaceDelete, editor, false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.BACKSPACE,
+        action: $_4hb46d78jjgwe8z6.action($_f2hioa4cjjgwe8ee.backspaceDelete, editor, false)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.DELETE,
-        action: $_16uyj26rjfuw8mfp.action($_f34seo3fjfuw8lq6.backspaceDelete, editor, true)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.DELETE,
+        action: $_4hb46d78jjgwe8z6.action($_f2hioa4cjjgwe8ee.backspaceDelete, editor, true)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.BACKSPACE,
-        action: $_16uyj26rjfuw8mfp.action($_cwwff132jfuw8ln7.backspaceDelete, editor, false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.BACKSPACE,
+        action: $_4hb46d78jjgwe8z6.action($_8u9liw40jjgwe8bn.backspaceDelete, editor, false)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.DELETE,
-        action: $_16uyj26rjfuw8mfp.action($_cwwff132jfuw8ln7.backspaceDelete, editor, true)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.DELETE,
+        action: $_4hb46d78jjgwe8z6.action($_8u9liw40jjgwe8bn.backspaceDelete, editor, true)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.BACKSPACE,
-        action: $_16uyj26rjfuw8mfp.action($_dt1e6j3rjfuw8lw0.backspaceDelete, editor, false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.BACKSPACE,
+        action: $_4hb46d78jjgwe8z6.action($_6q4s8w3qjjgwe85j.backspaceDelete, editor, false)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.DELETE,
-        action: $_16uyj26rjfuw8mfp.action($_dt1e6j3rjfuw8lw0.backspaceDelete, editor, true)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.DELETE,
+        action: $_4hb46d78jjgwe8z6.action($_6q4s8w3qjjgwe85j.backspaceDelete, editor, true)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.BACKSPACE,
-        action: $_16uyj26rjfuw8mfp.action($_3zo6mo6tjfuw8mfy.backspaceDelete, editor, false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.BACKSPACE,
+        action: $_4hb46d78jjgwe8z6.action($_529ibl7ajjgwe8zf.backspaceDelete, editor, false)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.DELETE,
-        action: $_16uyj26rjfuw8mfp.action($_3zo6mo6tjfuw8mfy.backspaceDelete, editor, true)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.DELETE,
+        action: $_4hb46d78jjgwe8z6.action($_529ibl7ajjgwe8zf.backspaceDelete, editor, true)
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     ], evt).each(function (_) {
</span><span class="cx" style="display: block; padding: 0 10px">       evt.preventDefault();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22610,18 +22759,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var executeKeyupOverride = function (editor, evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_16uyj26rjfuw8mfp.execute([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_4hb46d78jjgwe8z6.execute([
</ins><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.BACKSPACE,
-        action: $_16uyj26rjfuw8mfp.action($_a7skkj3gjfuw8lqf.paddEmptyElement, editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.BACKSPACE,
+        action: $_4hb46d78jjgwe8z6.action($_cc2jel41jjgwe8bx.paddEmptyElement, editor)
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        keyCode: $_1nvqmv5ajfuw8m5j.DELETE,
-        action: $_16uyj26rjfuw8mfp.action($_a7skkj3gjfuw8lqf.paddEmptyElement, editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        keyCode: $_9udk9k5wjjgwe8on.DELETE,
+        action: $_4hb46d78jjgwe8z6.action($_cc2jel41jjgwe8bx.paddEmptyElement, editor)
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     ], evt);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$6 = function (editor, caret) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$8 = function (editor, caret) {
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.on('keydown', function (evt) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (evt.isDefaultPrevented() === false) {
</span><span class="cx" style="display: block; padding: 0 10px">         executeKeydownOverride$1(editor, caret, evt);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22633,7 +22782,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9h3qgr6sjfuw8mfv = { setup: setup$6 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cacenr79jjgwe8zc = { setup: setup$8 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var firstNonWhiteSpaceNodeSibling = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     while (node) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22661,7 +22810,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (root.hasChildNodes()) {
</span><span class="cx" style="display: block; padding: 0 10px">       walker = new TreeWalker(root, root);
</span><span class="cx" style="display: block; padding: 0 10px">       while (node = walker.current()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_ey7ka11qjfuw8ldg.isText(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_3b9u2y1rjjgwe7qe.isText(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           rng.setStart(node, 0);
</span><span class="cx" style="display: block; padding: 0 10px">           rng.setEnd(node, 0);
</span><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22679,7 +22828,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         rng.setEnd(lastNode, 0);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isBr(root)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isBr(root)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (root.nextSibling && dom.isBlock(root.nextSibling)) {
</span><span class="cx" style="display: block; padding: 0 10px">           rng.setStartBefore(root);
</span><span class="cx" style="display: block; padding: 0 10px">           rng.setEndBefore(root);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22712,16 +22861,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return Option.from(editor.dom.getParent(editor.selection.getStart(true), editor.dom.isBlock));
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getParentBlockName = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return getParentBlock$2(editor).fold($_68e81l6jfuw8kyc.constant(''), function (parentBlock) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return getParentBlock$2(editor).fold(constant(''), function (parentBlock) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return parentBlock.nodeName.toUpperCase();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isListItemParentBlock = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return getParentBlock$2(editor).filter(function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return isListItem($_c9h6qlzjfuw8l98.fromDom(elm));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return isListItem(Element$$1.fromDom(elm));
</ins><span class="cx" style="display: block; padding: 0 10px">     }).isSome();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cm0iqf6yjfuw8mgv = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_7rkd6o7fjjgwe90j = {
</ins><span class="cx" style="display: block; padding: 0 10px">     moveToCaretPosition: moveToCaretPosition,
</span><span class="cx" style="display: block; padding: 0 10px">     getEditableRoot: getEditableRoot,
</span><span class="cx" style="display: block; padding: 0 10px">     getParentBlock: getParentBlock$2,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22751,7 +22900,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isFirstOrLastLi = function (containerBlock, parentBlock, first) {
</span><span class="cx" style="display: block; padding: 0 10px">     var node = containerBlock[first ? 'firstChild' : 'lastChild'];
</span><span class="cx" style="display: block; padding: 0 10px">     while (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isElement(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isElement(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       node = node[first ? 'nextSibling' : 'previousSibling'];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22799,12 +22948,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     dom.remove(parentBlock);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_cm0iqf6yjfuw8mgv.moveToCaretPosition(editor, newBlock);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_7rkd6o7fjjgwe90j.moveToCaretPosition(editor, newBlock);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_cdzn766xjfuw8mgs = { insert: insert$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6mi4nu7ejjgwe90f = { insert: insert$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var isEmptyAnchor = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return elm && elm.nodeName === 'A' && $_52qop8kjfuw8l6v.trim($_dpfg1321jfuw8lhn.trim(elm.innerText || elm.textContent)).length === 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return elm && elm.nodeName === 'A' && $_6cwiepljjgwe7j4.trim($_2xw7ul2pjjgwe7xs.trim(elm.innerText || elm.textContent)).length === 0;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isTableCell$5 = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     return node && /^(TD|TH|CAPTION)$/.test(node.nodeName);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22829,7 +22978,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (dom.isBlock(node)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isElement(node) && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isElement(node) && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) {
</ins><span class="cx" style="display: block; padding: 0 10px">         firstChilds.push(node);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22846,12 +22995,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var normalizeZwspOffset = function (start, container, offset) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isText(container) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isText(container) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return offset;
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (start) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return offset === 1 && container.data.charAt(offset - 1) === $_dpfg1321jfuw8lhn.ZWSP ? 0 : offset;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return offset === 1 && container.data.charAt(offset - 1) === $_2xw7ul2pjjgwe7xs.ZWSP ? 0 : offset;
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return offset === container.data.length - 1 && container.data.charAt(offset) === $_dpfg1321jfuw8lhn.ZWSP ? container.data.length : offset;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return offset === container.data.length - 1 && container.data.charAt(offset) === $_2xw7ul2pjjgwe7xs.ZWSP ? container.data.length : offset;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var includeZwspInRange = function (rng) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22862,7 +23011,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var trimLeadingLineBreaks = function (node) {
</span><span class="cx" style="display: block; padding: 0 10px">     do {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isText(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isText(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         node.nodeValue = node.nodeValue.replace(/^[\r\n]+/, '');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       node = node.firstChild;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22881,9 +23030,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return parent !== root ? editableRoot : root;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var setForcedBlockAttrs = function (editor, node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var forcedRootBlockName = $_6msxiw2jjfuw8lkv.getForcedRootBlock(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var forcedRootBlockName = $_259vs538jjgwe82a.getForcedRootBlock(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.dom.setAttribs(node, $_6msxiw2jjfuw8lkv.getForcedRootBlockAttrs(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.dom.setAttribs(node, $_259vs538jjgwe82a.getForcedRootBlockAttrs(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var wrapSelfAndSiblingsInDefaultBlock = function (editor, newBlockName, rng, container, offset) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22954,7 +23103,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         block = parentBlock.cloneNode(false);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       caretNode = block;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_6msxiw2jjfuw8lkv.shouldKeepStyles(editor) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_259vs538jjgwe82a.shouldKeepStyles(editor) === false) {
</ins><span class="cx" style="display: block; padding: 0 10px">         dom.setAttrib(block, 'style', null);
</span><span class="cx" style="display: block; padding: 0 10px">         dom.setAttrib(block, 'class', null);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22981,13 +23130,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var isCaretAtStartOrEndOfBlock = function (start) {
</span><span class="cx" style="display: block; padding: 0 10px">       var walker, node, name, normalizedOffset;
</span><span class="cx" style="display: block; padding: 0 10px">       normalizedOffset = normalizeZwspOffset(start, container, offset);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isText(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.nodeValue.length)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isText(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.nodeValue.length)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return false;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (container.parentNode === parentBlock && isAfterLastNodeInContainer && !start) {
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (start && $_ey7ka11qjfuw8ldg.isElement(container) && container === parentBlock.firstChild) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (start && $_3b9u2y1rjjgwe7qe.isElement(container) && container === parentBlock.firstChild) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (containerAndSiblingName(container, 'TABLE') || containerAndSiblingName(container, 'HR')) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22994,7 +23143,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return isAfterLastNodeInContainer && !start || !isAfterLastNodeInContainer && start;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       walker = new TreeWalker(container, parentBlock);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_ey7ka11qjfuw8ldg.isText(container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_3b9u2y1rjjgwe7qe.isText(container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (start && normalizedOffset === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">           walker.prev();
</span><span class="cx" style="display: block; padding: 0 10px">         } else if (!start && normalizedOffset === container.nodeValue.length) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23002,7 +23151,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       while (node = walker.current()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_ey7ka11qjfuw8ldg.isElement(node)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_3b9u2y1rjjgwe7qe.isElement(node)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!node.getAttribute('data-mce-bogus')) {
</span><span class="cx" style="display: block; padding: 0 10px">             name = node.nodeName.toLowerCase();
</span><span class="cx" style="display: block; padding: 0 10px">             if (nonEmptyElementsMap[name] && name !== 'br') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23009,7 +23158,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">               return false;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        } else if ($_ey7ka11qjfuw8ldg.isText(node) && !/^[ \t\r\n]*$/.test(node.nodeValue)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        } else if ($_3b9u2y1rjjgwe7qe.isText(node) && !/^[ \t\r\n]*$/.test(node.nodeValue)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return false;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (start) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23026,25 +23175,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         newBlock = createNewBlock();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_6msxiw2jjfuw8lkv.shouldEndContainerOnEmptyBlock(editor) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_259vs538jjgwe82a.shouldEndContainerOnEmptyBlock(editor) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         newBlock = dom.split(containerBlock, parentBlock);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         dom.insertAfter(newBlock, parentBlock);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_cm0iqf6yjfuw8mgv.moveToCaretPosition(editor, newBlock);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_7rkd6o7fjjgwe90j.moveToCaretPosition(editor, newBlock);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_970szt3yjfuw8ly1.normalize(dom, rng).each(function (normRng) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_eqgqyj4jjjgwe8gi.normalize(dom, rng).each(function (normRng) {
</ins><span class="cx" style="display: block; padding: 0 10px">       rng.setStart(normRng.startContainer, normRng.startOffset);
</span><span class="cx" style="display: block; padding: 0 10px">       rng.setEnd(normRng.endContainer, normRng.endOffset);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     container = rng.startContainer;
</span><span class="cx" style="display: block; padding: 0 10px">     offset = rng.startOffset;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    newBlockName = $_6msxiw2jjfuw8lkv.getForcedRootBlock(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    newBlockName = $_259vs538jjgwe82a.getForcedRootBlock(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     shiftKey = evt.shiftKey;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_ey7ka11qjfuw8ldg.isElement(container) && container.hasChildNodes()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_3b9u2y1rjjgwe7qe.isElement(container) && container.hasChildNodes()) {
</ins><span class="cx" style="display: block; padding: 0 10px">       isAfterLastNodeInContainer = offset > container.childNodes.length - 1;
</span><span class="cx" style="display: block; padding: 0 10px">       container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isAfterLastNodeInContainer && $_ey7ka11qjfuw8ldg.isText(container)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isAfterLastNodeInContainer && $_3b9u2y1rjjgwe7qe.isText(container)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         offset = container.nodeValue.length;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         offset = 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23068,7 +23217,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (/^(LI|DT|DD)$/.test(parentBlockName)) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (dom.isEmpty(parentBlock)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_cdzn766xjfuw8mgs.insert(editor, createNewBlock, containerBlock, parentBlock, newBlockName);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6mi4nu7ejjgwe90f.insert(editor, createNewBlock, containerBlock, parentBlock, newBlockName);
</ins><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23081,12 +23230,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (dom.isEmpty(parentBlock)) {
</span><span class="cx" style="display: block; padding: 0 10px">         emptyBlock(parentBlock);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_cm0iqf6yjfuw8mgv.moveToCaretPosition(editor, newBlock);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_7rkd6o7fjjgwe90j.moveToCaretPosition(editor, newBlock);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else if (isCaretAtStartOrEndOfBlock()) {
</span><span class="cx" style="display: block; padding: 0 10px">       insertNewBlockAfter();
</span><span class="cx" style="display: block; padding: 0 10px">     } else if (isCaretAtStartOrEndOfBlock(true)) {
</span><span class="cx" style="display: block; padding: 0 10px">       newBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_cm0iqf6yjfuw8mgv.moveToCaretPosition(editor, containerAndSiblingName(parentBlock, 'HR') ? newBlock : parentBlock);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_7rkd6o7fjjgwe90j.moveToCaretPosition(editor, containerAndSiblingName(parentBlock, 'HR') ? newBlock : parentBlock);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       tmpRng = includeZwspInRange(rng).cloneRange();
</span><span class="cx" style="display: block; padding: 0 10px">       tmpRng.setEndAfter(parentBlock);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23104,74 +23253,80 @@
</span><span class="cx" style="display: block; padding: 0 10px">         dom.remove(newBlock);
</span><span class="cx" style="display: block; padding: 0 10px">         insertNewBlockAfter();
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_cm0iqf6yjfuw8mgv.moveToCaretPosition(editor, newBlock);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_7rkd6o7fjjgwe90j.moveToCaretPosition(editor, newBlock);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     dom.setAttrib(newBlock, 'id', '');
</span><span class="cx" style="display: block; padding: 0 10px">     editor.fire('NewBlock', { newBlock: newBlock });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8l5fmu6wjfuw8mgc = { insert: insert$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_546sjh7djjgwe905 = { insert: insert$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var matchesSelector = function (editor, selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_cm0iqf6yjfuw8mgv.getParentBlock(editor).filter(function (parentBlock) {
-      return selector.length > 0 && $_fbwcti1fjfuw8lbx.is($_c9h6qlzjfuw8l98.fromDom(parentBlock), selector);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_7rkd6o7fjjgwe90j.getParentBlock(editor).filter(function (parentBlock) {
+      return selector.length > 0 && $_4yq1xp1gjjgwe7op.is(Element$$1.fromDom(parentBlock), selector);
</ins><span class="cx" style="display: block; padding: 0 10px">     }).isSome();
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var shouldInsertBr = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return matchesSelector(editor, $_6msxiw2jjfuw8lkv.getBrNewLineSelector(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return matchesSelector(editor, $_259vs538jjgwe82a.getBrNewLineSelector(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var shouldBlockNewLine = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return matchesSelector(editor, $_6msxiw2jjfuw8lkv.getNoNewLineSelector(editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return matchesSelector(editor, $_259vs538jjgwe82a.getNoNewLineSelector(editor));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5bc62770jfuw8mh9 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_aulrkk7hjjgwe90w = {
</ins><span class="cx" style="display: block; padding: 0 10px">     shouldInsertBr: shouldInsertBr,
</span><span class="cx" style="display: block; padding: 0 10px">     shouldBlockNewLine: shouldBlockNewLine
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var newLineAction = $_5ac1li3ijfuw8lqv.generate([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var newLineAction = Adt.generate([
</ins><span class="cx" style="display: block; padding: 0 10px">     { br: [] },
</span><span class="cx" style="display: block; padding: 0 10px">     { block: [] },
</span><span class="cx" style="display: block; padding: 0 10px">     { none: [] }
</span><span class="cx" style="display: block; padding: 0 10px">   ]);
</span><span class="cx" style="display: block; padding: 0 10px">   var shouldBlockNewLine$1 = function (editor, shiftKey) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5bc62770jfuw8mh9.shouldBlockNewLine(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_aulrkk7hjjgwe90w.shouldBlockNewLine(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isBrMode = function (requiredState) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (editor, shiftKey) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var brMode = $_6msxiw2jjfuw8lkv.getForcedRootBlock(editor) === '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var brMode = $_259vs538jjgwe82a.getForcedRootBlock(editor) === '';
</ins><span class="cx" style="display: block; padding: 0 10px">       return brMode === requiredState;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var inListBlock = function (requiredState) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (editor, shiftKey) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_cm0iqf6yjfuw8mgv.isListItemParentBlock(editor) === requiredState;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_7rkd6o7fjjgwe90j.isListItemParentBlock(editor) === requiredState;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var inPreBlock = function (requiredState) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var inBlock = function (blockName, requiredState) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return function (editor, shiftKey) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var inPre = $_cm0iqf6yjfuw8mgv.getParentBlockName(editor) === 'PRE';
-      return inPre === requiredState;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var state = $_7rkd6o7fjjgwe90j.getParentBlockName(editor) === blockName.toUpperCase();
+      return state === requiredState;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var inPreBlock = function (requiredState) {
+    return inBlock('pre', requiredState);
+  };
+  var inSummaryBlock = function () {
+    return inBlock('summary', true);
+  };
</ins><span class="cx" style="display: block; padding: 0 10px">   var shouldPutBrInPre$1 = function (requiredState) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (editor, shiftKey) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_6msxiw2jjfuw8lkv.shouldPutBrInPre(editor) === requiredState;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_259vs538jjgwe82a.shouldPutBrInPre(editor) === requiredState;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var inBrContext = function (editor, shiftKey) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_5bc62770jfuw8mh9.shouldInsertBr(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_aulrkk7hjjgwe90w.shouldInsertBr(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var hasShiftKey = function (editor, shiftKey) {
</span><span class="cx" style="display: block; padding: 0 10px">     return shiftKey;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var canInsertIntoEditableRoot = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var forcedRootBlock = $_6msxiw2jjfuw8lkv.getForcedRootBlock(editor);
-    var rootEditable = $_cm0iqf6yjfuw8mgv.getEditableRoot(editor.dom, editor.selection.getStart());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var forcedRootBlock = $_259vs538jjgwe82a.getForcedRootBlock(editor);
+    var rootEditable = $_7rkd6o7fjjgwe90j.getEditableRoot(editor.dom, editor.selection.getStart());
</ins><span class="cx" style="display: block; padding: 0 10px">     return rootEditable && editor.schema.isValidChild(rootEditable.nodeName, forcedRootBlock ? forcedRootBlock : 'P');
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var match$2 = function (predicates, action) {
</span><span class="cx" style="display: block; padding: 0 10px">     return function (editor, shiftKey) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var isMatch = $_9ek1bp4jfuw8kxg.foldl(predicates, function (res, p) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var isMatch = foldl(predicates, function (res, p) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return res && p(editor, shiftKey);
</span><span class="cx" style="display: block; padding: 0 10px">       }, true);
</span><span class="cx" style="display: block; padding: 0 10px">       return isMatch ? Option.some(action) : Option.none();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23178,8 +23333,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getAction$1 = function (editor, evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_d9qu763ojfuw8lvl.evaluateUntil([
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_2racda49jjgwe8dz.evaluateUntil([
</ins><span class="cx" style="display: block; padding: 0 10px">       match$2([shouldBlockNewLine$1], newLineAction.none()),
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      match$2([inSummaryBlock()], newLineAction.br()),
</ins><span class="cx" style="display: block; padding: 0 10px">       match$2([
</span><span class="cx" style="display: block; padding: 0 10px">         inPreBlock(true),
</span><span class="cx" style="display: block; padding: 0 10px">         shouldPutBrInPre$1(false),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23220,16 +23376,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">       evt.shiftKey
</span><span class="cx" style="display: block; padding: 0 10px">     ]).getOr(newLineAction.none());
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_buedid6zjfuw8mh3 = { getAction: getAction$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_csna0e7gjjgwe90q = { getAction: getAction$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var insert$3 = function (editor, evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_buedid6zjfuw8mh3.getAction(editor, evt).fold(function () {
-      $_c7z3y13xjfuw8lxq.insert(editor, evt);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_csna0e7gjjgwe90q.getAction(editor, evt).fold(function () {
+      $_4o98q44ijjgwe8g6.insert(editor, evt);
</ins><span class="cx" style="display: block; padding: 0 10px">     }, function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_8l5fmu6wjfuw8mgc.insert(editor, evt);
-    }, $_68e81l6jfuw8kyc.noop);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_546sjh7djjgwe905.insert(editor, evt);
+    }, noop);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_1kudjf6vjfuw8mg6 = { insert: insert$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8clxtd7cjjgwe8zw = { insert: insert$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var endTypingLevel = function (undoManager) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (undoManager.typing) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23247,20 +23403,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (editor.selection.isCollapsed() === false) {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.execCommand('Delete');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_1kudjf6vjfuw8mg6.insert(editor, event);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_8clxtd7cjjgwe8zw.insert(editor, event);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$7 = function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$9 = function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.on('keydown', function (event) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (event.keyCode === $_1nvqmv5ajfuw8m5j.ENTER) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (event.keyCode === $_9udk9k5wjjgwe8on.ENTER) {
</ins><span class="cx" style="display: block; padding: 0 10px">         handleEnterKeyEvent(editor, event);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_650vyj6ujfuw8mg5 = { setup: setup$7 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6sjbmj7bjjgwe8zo = { setup: setup$9 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var isValidInsertPoint = function (location, caretPosition) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return isAtStartOrEnd(location) && $_ey7ka11qjfuw8ldg.isText(caretPosition.container());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return isAtStartOrEnd(location) && $_3b9u2y1rjjgwe7qe.isText(caretPosition.container());
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertNbspAtPosition = function (editor, caretPosition) {
</span><span class="cx" style="display: block; padding: 0 10px">     var container = caretPosition.container();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23277,28 +23433,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertAtCaret$2 = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isInlineTarget = $_68e81l6jfuw8kyc.curry($_exgtt937jfuw8loj.isInlineTarget, editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isInlineTarget = curry($_av9utf3tjjgwe86b.isInlineTarget, editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     var caretPosition = CaretPosition$1.fromRangeStart(editor.selection.getRng());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var boundaryLocation = $_80edfj3njfuw8lvb.readLocation(isInlineTarget, editor.getBody(), caretPosition);
-    return boundaryLocation.map($_68e81l6jfuw8kyc.curry(insertAtLocation, editor, caretPosition)).getOr(false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var boundaryLocation = $_g20q2x48jjgwe8dp.readLocation(isInlineTarget, editor.getBody(), caretPosition);
+    return boundaryLocation.map(curry(insertAtLocation, editor, caretPosition)).getOr(false);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isAtStartOrEnd = function (location) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return location.fold($_68e81l6jfuw8kyc.constant(false), $_68e81l6jfuw8kyc.constant(true), $_68e81l6jfuw8kyc.constant(true), $_68e81l6jfuw8kyc.constant(false));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return location.fold(constant(false), constant(true), constant(true), constant(false));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var insertAtSelection = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     return editor.selection.isCollapsed() ? insertAtCaret$2(editor) : false;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_62p2nv72jfuw8mhf = { insertAtSelection: insertAtSelection };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_azr5r97jjjgwe913 = { insertAtSelection: insertAtSelection };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var executeKeydownOverride$2 = function (editor, evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_16uyj26rjfuw8mfp.execute([{
-        keyCode: $_1nvqmv5ajfuw8m5j.SPACEBAR,
-        action: $_16uyj26rjfuw8mfp.action($_62p2nv72jfuw8mhf.insertAtSelection, editor)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_4hb46d78jjgwe8z6.execute([{
+        keyCode: $_9udk9k5wjjgwe8on.SPACEBAR,
+        action: $_4hb46d78jjgwe8z6.action($_azr5r97jjjgwe913.insertAtSelection, editor)
</ins><span class="cx" style="display: block; padding: 0 10px">       }], evt).each(function (_) {
</span><span class="cx" style="display: block; padding: 0 10px">       evt.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$8 = function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$10 = function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.on('keydown', function (evt) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (evt.isDefaultPrevented() === false) {
</span><span class="cx" style="display: block; padding: 0 10px">         executeKeydownOverride$2(editor, evt);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23305,10 +23461,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8bru0u71jfuw8mhd = { setup: setup$8 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_biwd8y7ijjgwe910 = { setup: setup$10 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var findBlockCaretContainer = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_94zo1v3cjfuw8lpg.descendant($_c9h6qlzjfuw8l98.fromDom(editor.getBody()), '*[data-mce-caret]').fold($_68e81l6jfuw8kyc.constant(null), function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_ajwe9029jjgwe7ul.descendant(Element$$1.fromDom(editor.getBody()), '*[data-mce-caret]').fold(constant(null), function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return elm.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23338,25 +23494,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.undoManager.add();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$9 = function (editor) {
-    editor.on('keyup compositionstart', $_68e81l6jfuw8kyc.curry(handleBlockContainer, editor));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$11 = function (editor) {
+    editor.on('keyup compositionstart', curry(handleBlockContainer, editor));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_9ktdd473jfuw8mhi = { setup: setup$9 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_1hbznl7kjjgwe916 = { setup: setup$11 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$10 = function (editor) {
-    var caret = $_enc4983pjfuw8lvo.setupSelectedState(editor);
-    $_9ktdd473jfuw8mhi.setup(editor);
-    $_2prsz46pjfuw8mff.setup(editor, caret);
-    $_9h3qgr6sjfuw8mfv.setup(editor, caret);
-    $_650vyj6ujfuw8mg5.setup(editor);
-    $_8bru0u71jfuw8mhd.setup(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$12 = function (editor) {
+    var caret = $_80ia3a4ajjgwe8e2.setupSelectedState(editor);
+    $_1hbznl7kjjgwe916.setup(editor);
+    $_97nc1t76jjgwe8yv.setup(editor, caret);
+    $_cacenr79jjgwe8zc.setup(editor, caret);
+    $_6sjbmj7bjjgwe8zo.setup(editor);
+    $_biwd8y7ijjgwe910.setup(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_8u7nyh6ojfuw8mfe = { setup: setup$10 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_ajiltf75jjgwe8yt = { setup: setup$12 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function Quirks (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var each = $_52qop8kjfuw8l6v.each;
-    var BACKSPACE = $_1nvqmv5ajfuw8m5j.BACKSPACE, DELETE = $_1nvqmv5ajfuw8m5j.DELETE, dom = editor.dom, selection = editor.selection, settings = editor.settings, parser = editor.parser;
-    var isGecko = $_9fhi43ajfuw8l13.gecko, isIE = $_9fhi43ajfuw8l13.ie, isWebKit = $_9fhi43ajfuw8l13.webkit;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var each = $_6cwiepljjgwe7j4.each;
+    var BACKSPACE = $_9udk9k5wjjgwe8on.BACKSPACE, DELETE = $_9udk9k5wjjgwe8on.DELETE, dom = editor.dom, selection = editor.selection, settings = editor.settings, parser = editor.parser;
+    var isGecko = $_bcvfv9ajjgwe79v.gecko, isIE = $_bcvfv9ajjgwe79v.ie, isWebKit = $_bcvfv9ajjgwe79v.webkit;
</ins><span class="cx" style="display: block; padding: 0 10px">     var mceInternalUrlPrefix = 'data:text/mce-internal,';
</span><span class="cx" style="display: block; padding: 0 10px">     var mceInternalDataType = isIE ? 'Text' : 'URL';
</span><span class="cx" style="display: block; padding: 0 10px">     var setEditorCommandState = function (cmd, state) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23492,7 +23648,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           if (!isDefaultPrevented(e) && e.target.nodeName === 'HTML') {
</span><span class="cx" style="display: block; padding: 0 10px">             var body_1 = editor.getBody();
</span><span class="cx" style="display: block; padding: 0 10px">             body_1.blur();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $_2m8wq9hjfuw8l41.setEditorTimeout(editor, function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $_9o1ijaijjgwe7dm.setEditorTimeout(editor, function () {
</ins><span class="cx" style="display: block; padding: 0 10px">               body_1.focus();
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23543,7 +23699,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var applyAttributes;
</span><span class="cx" style="display: block; padding: 0 10px">         if (!isDefaultPrevented(e) && isSelectionAcrossElements()) {
</span><span class="cx" style="display: block; padding: 0 10px">           applyAttributes = getAttributeApplyFunction();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_2m8wq9hjfuw8l41.setEditorTimeout(editor, function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_9o1ijaijjgwe7dm.setEditorTimeout(editor, function () {
</ins><span class="cx" style="display: block; padding: 0 10px">             applyAttributes();
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23564,8 +23720,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var removeBlockQuoteOnBackSpace = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('keydown', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var rng, container, offset, root, parent;
-        if (isDefaultPrevented(e) || e.keyCode !== $_1nvqmv5ajfuw8m5j.BACKSPACE) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var rng, container, offset, root, parent$$1;
+        if (isDefaultPrevented(e) || e.keyCode !== $_9udk9k5wjjgwe8on.BACKSPACE) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         rng = selection.getRng();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23572,15 +23728,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">         container = rng.startContainer;
</span><span class="cx" style="display: block; padding: 0 10px">         offset = rng.startOffset;
</span><span class="cx" style="display: block; padding: 0 10px">         root = dom.getRoot();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        parent = container;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        parent$$1 = container;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!rng.collapsed || offset !== 0) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        while (parent && parent.parentNode && parent.parentNode.firstChild === parent && parent.parentNode !== root) {
-          parent = parent.parentNode;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        while (parent$$1 && parent$$1.parentNode && parent$$1.parentNode.firstChild === parent$$1 && parent$$1.parentNode !== root) {
+          parent$$1 = parent$$1.parentNode;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (parent.tagName === 'BLOCKQUOTE') {
-          editor.formatter.toggle('blockquote', null, parent);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (parent$$1.tagName === 'BLOCKQUOTE') {
+          editor.formatter.toggle('blockquote', null, parent$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">           rng = dom.createRng();
</span><span class="cx" style="display: block; padding: 0 10px">           rng.setStart(container, 0);
</span><span class="cx" style="display: block; padding: 0 10px">           rng.setEnd(container, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23631,7 +23787,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var normalizeSelection = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('keyup focusin mouseup', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!$_1nvqmv5ajfuw8m5j.modifierPressed(e)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!$_9udk9k5wjjgwe8on.modifierPressed(e)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           selection.normalize();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }, true);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23654,7 +23810,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         editor.on('click', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           var rng;
</span><span class="cx" style="display: block; padding: 0 10px">           if (e.target.nodeName === 'HTML') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if ($_9fhi43ajfuw8l13.ie > 11) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if ($_bcvfv9ajjgwe79v.ie > 11) {
</ins><span class="cx" style="display: block; padding: 0 10px">               editor.getBody().focus();
</span><span class="cx" style="display: block; padding: 0 10px">               return;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23668,9 +23824,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var blockCmdArrowNavigation = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_9fhi43ajfuw8l13.mac) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_bcvfv9ajjgwe79v.mac) {
</ins><span class="cx" style="display: block; padding: 0 10px">         editor.on('keydown', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if ($_1nvqmv5ajfuw8m5j.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if ($_9udk9k5wjjgwe8on.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">             editor.selection.getSel().modify('move', e.keyCode === 37 ? 'backward' : 'forward', 'lineboundary');
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23718,7 +23874,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           var internalContent = getMceInternalContent(e);
</span><span class="cx" style="display: block; padding: 0 10px">           if (internalContent && internalContent.id !== editor.id) {
</span><span class="cx" style="display: block; padding: 0 10px">             e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            var rng = $_dyytu76ejfuw8md2.fromPoint(e.x, e.y, editor.getDoc());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            var rng = $_269jak6xjjgwe8wp.fromPoint(e.x, e.y, editor.getDoc());
</ins><span class="cx" style="display: block; padding: 0 10px">             selection.setRng(rng);
</span><span class="cx" style="display: block; padding: 0 10px">             insertClipboardContents(internalContent.html, true);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23737,7 +23893,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     removeBlockQuoteOnBackSpace();
</span><span class="cx" style="display: block; padding: 0 10px">     emptyEditorWhenDeleting();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_9fhi43ajfuw8l13.windowsPhone) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_bcvfv9ajjgwe79v.windowsPhone) {
</ins><span class="cx" style="display: block; padding: 0 10px">       normalizeSelection();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (isWebKit) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23747,7 +23903,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       blockFormSubmitInsideEditor();
</span><span class="cx" style="display: block; padding: 0 10px">       disableBackspaceIntoATable();
</span><span class="cx" style="display: block; padding: 0 10px">       removeAppleInterchangeBrs();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_9fhi43ajfuw8l13.iOS) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_bcvfv9ajjgwe79v.iOS) {
</ins><span class="cx" style="display: block; padding: 0 10px">         restoreFocusOnKeyDown();
</span><span class="cx" style="display: block; padding: 0 10px">         bodyHeight();
</span><span class="cx" style="display: block; padding: 0 10px">         tapLinksAndImages();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23755,11 +23911,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         selectAll();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9fhi43ajfuw8l13.ie >= 11) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_bcvfv9ajjgwe79v.ie >= 11) {
</ins><span class="cx" style="display: block; padding: 0 10px">       bodyHeight();
</span><span class="cx" style="display: block; padding: 0 10px">       disableBackspaceIntoATable();
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_9fhi43ajfuw8l13.ie) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_bcvfv9ajjgwe79v.ie) {
</ins><span class="cx" style="display: block; padding: 0 10px">       selectAll();
</span><span class="cx" style="display: block; padding: 0 10px">       disableAutoUrlDetect();
</span><span class="cx" style="display: block; padding: 0 10px">       ieInternalDragAndDrop();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23781,7 +23937,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var isTextBlockNode = function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_ey7ka11qjfuw8ldg.isElement(node) && isTextBlock($_c9h6qlzjfuw8l98.fromDom(node));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_3b9u2y1rjjgwe7qe.isElement(node) && isTextBlock(Element$$1.fromDom(node));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var normalizeSelection$1 = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var rng = editor.selection.getRng();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23790,7 +23946,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (CaretPosition.isElementPosition(startPos)) {
</span><span class="cx" style="display: block; padding: 0 10px">       var container = startPos.container();
</span><span class="cx" style="display: block; padding: 0 10px">       if (isTextBlockNode(container)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_25kl2c2cjfuw8ljh.firstPositionIn(container).each(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_8q1ver2yjjgwe7z3.firstPositionIn(container).each(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return rng.setStart(pos.container(), pos.offset());
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23798,14 +23954,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (CaretPosition.isElementPosition(endPos)) {
</span><span class="cx" style="display: block; padding: 0 10px">       var container = startPos.container();
</span><span class="cx" style="display: block; padding: 0 10px">       if (isTextBlockNode(container)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_25kl2c2cjfuw8ljh.lastPositionIn(container).each(function (pos) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_8q1ver2yjjgwe7z3.lastPositionIn(container).each(function (pos) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return rng.setEnd(pos.container(), pos.offset());
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    editor.selection.setRng($_538lml30jfuw8ln4.normalize(rng));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.selection.setRng($_e1wrz53ojjgwe85f.normalize(rng));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$11 = function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$13 = function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.on('click', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (e.detail === 3) {
</span><span class="cx" style="display: block; padding: 0 10px">         normalizeSelection$1(editor);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23812,42 +23968,69 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_3x9p1n75jfuw8mhz = { setup: setup$11 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_y8ycw7mjjgwe91o = { setup: setup$13 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var preventSummaryToggle = function (editor) {
+    editor.on('click', function (e) {
+      if (editor.dom.getParent(e.target, 'details')) {
+        e.preventDefault();
+      }
+    });
+  };
+  var filterDetails = function (editor) {
+    editor.parser.addNodeFilter('details', function (elms) {
+      each(elms, function (details) {
+        details.attr('data-mce-open', details.attr('open'));
+        details.attr('open', 'open');
+      });
+    });
+    editor.serializer.addNodeFilter('details', function (elms) {
+      each(elms, function (details) {
+        var open = details.attr('data-mce-open');
+        details.attr('open', isString(open) ? open : null);
+        details.attr('data-mce-open', null);
+      });
+    });
+  };
+  var setup$14 = function (editor) {
+    preventSummaryToggle(editor);
+    filterDetails(editor);
+  };
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var DOM$2 = DOMUtils$1.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var appendStyle = function (editor, text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var head = $_c9h6qlzjfuw8l98.fromDom(editor.getDoc().head);
-    var tag = $_c9h6qlzjfuw8l98.fromTag('style');
-    $_8g002u14jfuw8la5.set(tag, 'type', 'text/css');
-    $_doli6x2kjfuw8lky.append(tag, $_c9h6qlzjfuw8l98.fromText(text));
-    $_doli6x2kjfuw8lky.append(head, tag);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var head = Element$$1.fromDom(editor.getDoc().head);
+    var tag = Element$$1.fromTag('style');
+    $_etx7gr15jjgwe7mr.set(tag, 'type', 'text/css');
+    $_ewo3u51yjjgwe7su.append(tag, Element$$1.fromText(text));
+    $_ewo3u51yjjgwe7su.append(head, tag);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createParser = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var parser = DomParser(editor.settings, editor.schema);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    parser.addAttributeFilter('src,href,style,tabindex', function (nodes, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    parser.addAttributeFilter('src,href,style,tabindex', function (nodes, name$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var i = nodes.length, node;
</span><span class="cx" style="display: block; padding: 0 10px">       var dom = editor.dom;
</span><span class="cx" style="display: block; padding: 0 10px">       var value, internalName;
</span><span class="cx" style="display: block; padding: 0 10px">       while (i--) {
</span><span class="cx" style="display: block; padding: 0 10px">         node = nodes[i];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        value = node.attr(name);
-        internalName = 'data-mce-' + name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        value = node.attr(name$$1);
+        internalName = 'data-mce-' + name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!node.attributes.map[internalName]) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (value.indexOf('data:') === 0 || value.indexOf('blob:') === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">             continue;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (name === 'style') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (name$$1 === 'style') {
</ins><span class="cx" style="display: block; padding: 0 10px">             value = dom.serializeStyle(dom.parseStyle(value), node.name);
</span><span class="cx" style="display: block; padding: 0 10px">             if (!value.length) {
</span><span class="cx" style="display: block; padding: 0 10px">               value = null;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             node.attr(internalName, value);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            node.attr(name, value);
-          } else if (name === 'tabindex') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            node.attr(name$$1, value);
+          } else if (name$$1 === 'tabindex') {
</ins><span class="cx" style="display: block; padding: 0 10px">             node.attr(internalName, value);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            node.attr(name, null);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            node.attr(name$$1, null);
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            node.attr(internalName, editor.convertURL(value, name, node.name));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            node.attr(internalName, editor.convertURL(value, name$$1, node.name));
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23885,7 +24068,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var autoFocus = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.settings.auto_focus) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_2m8wq9hjfuw8l41.setEditorTimeout(editor, function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_9o1ijaijjgwe7dm.setEditorTimeout(editor, function () {
</ins><span class="cx" style="display: block; padding: 0 10px">         var focusEditor;
</span><span class="cx" style="display: block; padding: 0 10px">         if (editor.settings.auto_focus === true) {
</span><span class="cx" style="display: block; padding: 0 10px">           focusEditor = editor;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23965,13 +24148,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.parser = createParser(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     editor.serializer = DomSerializer$1(settings, editor);
</span><span class="cx" style="display: block; padding: 0 10px">     editor.selection = Selection$1(editor.dom, editor.getWin(), editor.serializer, editor);
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editor.experimental = Experimental(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.formatter = Formatter(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     editor.undoManager = UndoManager(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     editor._nodeChangeDispatcher = new NodeChange(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     editor._selectionOverrides = SelectionOverrides(editor);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_3x9p1n75jfuw8mhz.setup(editor);
-    $_8u7nyh6ojfuw8mfe.setup(editor);
-    $_1x8v3o4zjfuw8m3j.setup(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    setup$14(editor);
+    $_y8ycw7mjjgwe91o.setup(editor);
+    $_ajiltf75jjgwe8yt.setup(editor);
+    $_g8uzqo5ljjgwe8m8.setup(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.fire('PreInit');
</span><span class="cx" style="display: block; padding: 0 10px">     if (!settings.browser_spellcheck && !settings.gecko_spellcheck) {
</span><span class="cx" style="display: block; padding: 0 10px">       doc.body.spellcheck = false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23987,7 +24172,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (settings.protect) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.on('BeforeSetContent', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_52qop8kjfuw8l6v.each(settings.protect, function (pattern) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6cwiepljjgwe7j4.each(settings.protect, function (pattern) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.content = e.content.replace(pattern, function (str) {
</span><span class="cx" style="display: block; padding: 0 10px">             return '<!--mce:protected ' + escape(str) + '-->';
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24007,7 +24192,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.contentStyles.length > 0) {
</span><span class="cx" style="display: block; padding: 0 10px">       contentCssText = '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_52qop8kjfuw8l6v.each(editor.contentStyles, function (style) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6cwiepljjgwe7j4.each(editor.contentStyles, function (style) {
</ins><span class="cx" style="display: block; padding: 0 10px">         contentCssText += style + '\r\n';
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       editor.dom.addStyle(contentCssText);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24021,14 +24206,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">       appendStyle(editor, settings.content_style);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_89zvk04mjfuw8m1p = { initContentBody: initContentBody };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_e2a9gf58jjgwe8kl = { initContentBody: initContentBody };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$3 = DOMUtils$1.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var relaxDomain = function (editor, ifr) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (document.domain !== window.location.hostname && $_9fhi43ajfuw8l13.ie && $_9fhi43ajfuw8l13.ie < 12) {
-      var bodyUuid = $_cbl0d24xjfuw8m3f.uuid('mce');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (document.domain !== window.location.hostname && $_bcvfv9ajjgwe79v.ie && $_bcvfv9ajjgwe79v.ie < 12) {
+      var bodyUuid = $_637o4x5jjjgwe8m5.uuid('mce');
</ins><span class="cx" style="display: block; padding: 0 10px">       editor[bodyUuid] = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_89zvk04mjfuw8m1p.initContentBody(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_e2a9gf58jjgwe8kl.initContentBody(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var domainRelaxUrl = 'javascript:(function(){' + 'document.open();document.domain="' + document.domain + '";' + 'var ed = window.parent.tinymce.get("' + editor.id + '");document.write(ed.iframeHTML);' + 'document.close();ed.' + bodyUuid + '(true);})()';
</span><span class="cx" style="display: block; padding: 0 10px">       DOM$3.setAttrib(ifr, 'src', domainRelaxUrl);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24041,15 +24226,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return normalizedHeight ? normalizedHeight : '';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createIframeElement = function (id, title, height, customAttrs) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var iframe = $_c9h6qlzjfuw8l98.fromTag('iframe');
-    $_8g002u14jfuw8la5.setAll(iframe, customAttrs);
-    $_8g002u14jfuw8la5.setAll(iframe, {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var iframe = Element$$1.fromTag('iframe');
+    $_etx7gr15jjgwe7mr.setAll(iframe, customAttrs);
+    $_etx7gr15jjgwe7mr.setAll(iframe, {
</ins><span class="cx" style="display: block; padding: 0 10px">       id: id + '_ifr',
</span><span class="cx" style="display: block; padding: 0 10px">       frameBorder: '0',
</span><span class="cx" style="display: block; padding: 0 10px">       allowTransparency: 'true',
</span><span class="cx" style="display: block; padding: 0 10px">       title: title
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_cworr512jfuw8l9j.setAll(iframe, {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_e0ei5w13jjgwe7m4.setAll(iframe, {
</ins><span class="cx" style="display: block; padding: 0 10px">       width: '100%',
</span><span class="cx" style="display: block; padding: 0 10px">       height: normalizeHeight(height),
</span><span class="cx" style="display: block; padding: 0 10px">       display: 'block'
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24058,15 +24243,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getIframeHtml = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var bodyId, bodyClass, iframeHTML;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    iframeHTML = $_6msxiw2jjfuw8lkv.getDocType(editor) + '<html><head>';
-    if ($_6msxiw2jjfuw8lkv.getDocumentBaseUrl(editor) !== editor.documentBaseUrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    iframeHTML = $_259vs538jjgwe82a.getDocType(editor) + '<html><head>';
+    if ($_259vs538jjgwe82a.getDocumentBaseUrl(editor) !== editor.documentBaseUrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">       iframeHTML += '<base href="' + editor.documentBaseURI.getURI() + '" />';
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    bodyId = $_6msxiw2jjfuw8lkv.getBodyId(editor);
-    bodyClass = $_6msxiw2jjfuw8lkv.getBodyClass(editor);
-    if ($_6msxiw2jjfuw8lkv.getContentSecurityPolicy(editor)) {
-      iframeHTML += '<meta http-equiv="Content-Security-Policy" content="' + $_6msxiw2jjfuw8lkv.getContentSecurityPolicy(editor) + '" />';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    bodyId = $_259vs538jjgwe82a.getBodyId(editor);
+    bodyClass = $_259vs538jjgwe82a.getBodyClass(editor);
+    if ($_259vs538jjgwe82a.getContentSecurityPolicy(editor)) {
+      iframeHTML += '<meta http-equiv="Content-Security-Policy" content="' + $_259vs538jjgwe82a.getContentSecurityPolicy(editor) + '" />';
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     iframeHTML += '</head><body id="' + bodyId + '" class="mce-content-body ' + bodyClass + '" data-id="' + editor.id + '"><br></body></html>';
</span><span class="cx" style="display: block; padding: 0 10px">     return iframeHTML;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24073,7 +24258,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var createIframe = function (editor, o) {
</span><span class="cx" style="display: block; padding: 0 10px">     var title = editor.editorManager.translate('Rich Text Area. Press ALT-F9 for menu. ' + 'Press ALT-F10 for toolbar. Press ALT-0 for help');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var ifr = createIframeElement(editor.id, title, o.height, $_6msxiw2jjfuw8lkv.getIframeAttrs(editor)).dom();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var ifr = createIframeElement(editor.id, title, o.height, $_259vs538jjgwe82a.getIframeAttrs(editor)).dom();
</ins><span class="cx" style="display: block; padding: 0 10px">     ifr.onload = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       ifr.onload = null;
</span><span class="cx" style="display: block; padding: 0 10px">       editor.fire('load');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24094,10 +24279,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.getElement().style.display = 'none';
</span><span class="cx" style="display: block; padding: 0 10px">     DOM$3.setAttrib(editor.id, 'aria-hidden', 'true');
</span><span class="cx" style="display: block; padding: 0 10px">     if (!isDomainRelaxed) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_89zvk04mjfuw8m1p.initContentBody(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_e2a9gf58jjgwe8kl.initContentBody(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_fvi56r76jfuw8mi2 = { init: init$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9gp6wy7ojjgwe924 = { init: init$1 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$4 = DOMUtils$1.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var initPlugin = function (editor, initializedPlugins, plugin) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24104,9 +24289,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var Plugin = PluginManager$1.get(plugin);
</span><span class="cx" style="display: block; padding: 0 10px">     var pluginUrl, pluginInstance;
</span><span class="cx" style="display: block; padding: 0 10px">     pluginUrl = PluginManager$1.urls[plugin] || editor.documentBaseUrl.replace(/\/$/, '');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    plugin = $_52qop8kjfuw8l6v.trim(plugin);
-    if (Plugin && $_52qop8kjfuw8l6v.inArray(initializedPlugins, plugin) === -1) {
-      $_52qop8kjfuw8l6v.each(PluginManager$1.dependencies(plugin), function (dep) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    plugin = $_6cwiepljjgwe7j4.trim(plugin);
+    if (Plugin && $_6cwiepljjgwe7j4.inArray(initializedPlugins, plugin) === -1) {
+      $_6cwiepljjgwe7j4.each(PluginManager$1.dependencies(plugin), function (dep) {
</ins><span class="cx" style="display: block; padding: 0 10px">         initPlugin(editor, initializedPlugins, dep);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">       if (editor.plugins[plugin]) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24125,7 +24310,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var initPlugins = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var initializedPlugins = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_52qop8kjfuw8l6v.each(editor.settings.plugins.split(/[ ,]/), function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_6cwiepljjgwe7j4.each(editor.settings.plugins.split(/[ ,]/), function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">       initPlugin(editor, initializedPlugins, trimLegacyPrefix(name));
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24132,7 +24317,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var initTheme = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var Theme;
</span><span class="cx" style="display: block; padding: 0 10px">     var theme = editor.settings.theme;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_16i8k47jfuw8kyi.isString(theme)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isString(theme)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.settings.theme = trimLegacyPrefix(theme);
</span><span class="cx" style="display: block; padding: 0 10px">       Theme = ThemeManager.get(theme);
</span><span class="cx" style="display: block; padding: 0 10px">       editor.theme = new Theme(editor, ThemeManager.urls[theme]);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24204,9 +24389,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var renderThemeUi = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var settings = editor.settings, elm = editor.getElement();
</span><span class="cx" style="display: block; padding: 0 10px">     editor.orgDisplay = elm.style.display;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_16i8k47jfuw8kyi.isString(settings.theme)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isString(settings.theme)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return renderFromLoadedTheme(editor);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    } else if ($_16i8k47jfuw8kyi.isFunction(settings.theme)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    } else if (isFunction(settings.theme)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return renderFromThemeFunc(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       return renderThemeFalse(editor);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24225,21 +24410,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">     boxInfo = renderThemeUi(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     editor.editorContainer = boxInfo.editorContainer ? boxInfo.editorContainer : null;
</span><span class="cx" style="display: block; padding: 0 10px">     if (settings.content_css) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_52qop8kjfuw8l6v.each($_52qop8kjfuw8l6v.explode(settings.content_css), function (u) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_6cwiepljjgwe7j4.each($_6cwiepljjgwe7j4.explode(settings.content_css), function (u) {
</ins><span class="cx" style="display: block; padding: 0 10px">         editor.contentCSS.push(editor.documentBaseURI.toAbsolute(u));
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (settings.content_editable) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_89zvk04mjfuw8m1p.initContentBody(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_e2a9gf58jjgwe8kl.initContentBody(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_fvi56r76jfuw8mi2.init(editor, boxInfo);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_9gp6wy7ojjgwe924.init(editor, boxInfo);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_b5t8gg4jjfuw8m1h = { init: init$2 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_4jdwwz55jjgwe8kc = { init: init$2 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$5 = DOMUtils$1.DOM;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var hasSkipLoadPrefix = function (name) {
-    return name.charAt(0) === '-';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var hasSkipLoadPrefix = function (name$$1) {
+    return name$$1.charAt(0) === '-';
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var loadLanguage = function (scriptLoader, editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     var settings = editor.settings;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24252,7 +24437,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var loadTheme = function (scriptLoader, editor, suffix, callback) {
</span><span class="cx" style="display: block; padding: 0 10px">     var settings = editor.settings, theme = settings.theme;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_16i8k47jfuw8kyi.isString(theme)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (isString(theme)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!hasSkipLoadPrefix(theme) && !ThemeManager.urls.hasOwnProperty(theme)) {
</span><span class="cx" style="display: block; padding: 0 10px">         var themeUrl = settings.theme_url;
</span><span class="cx" style="display: block; padding: 0 10px">         if (themeUrl) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24269,20 +24454,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var loadPlugins = function (settings, suffix) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if ($_52qop8kjfuw8l6v.isArray(settings.plugins)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if ($_6cwiepljjgwe7j4.isArray(settings.plugins)) {
</ins><span class="cx" style="display: block; padding: 0 10px">       settings.plugins = settings.plugins.join(' ');
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_52qop8kjfuw8l6v.each(settings.external_plugins, function (url, name) {
-      PluginManager$1.load(name, url);
-      settings.plugins += ' ' + name;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_6cwiepljjgwe7j4.each(settings.external_plugins, function (url, name$$1) {
+      PluginManager$1.load(name$$1, url);
+      settings.plugins += ' ' + name$$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_52qop8kjfuw8l6v.each(settings.plugins.split(/[ ,]/), function (plugin) {
-      plugin = $_52qop8kjfuw8l6v.trim(plugin);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_6cwiepljjgwe7j4.each(settings.plugins.split(/[ ,]/), function (plugin) {
+      plugin = $_6cwiepljjgwe7j4.trim(plugin);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (plugin && !PluginManager$1.urls[plugin]) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (hasSkipLoadPrefix(plugin)) {
</span><span class="cx" style="display: block; padding: 0 10px">           plugin = plugin.substr(1, plugin.length);
</span><span class="cx" style="display: block; padding: 0 10px">           var dependencies = PluginManager$1.dependencies(plugin);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_52qop8kjfuw8l6v.each(dependencies, function (dep) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_6cwiepljjgwe7j4.each(dependencies, function (dep) {
</ins><span class="cx" style="display: block; padding: 0 10px">             var defaultSettings = {
</span><span class="cx" style="display: block; padding: 0 10px">               prefix: 'plugins/',
</span><span class="cx" style="display: block; padding: 0 10px">               resource: dep,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24308,12 +24493,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       loadPlugins(editor.settings, suffix);
</span><span class="cx" style="display: block; padding: 0 10px">       scriptLoader.loadQueue(function () {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!editor.removed) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_b5t8gg4jjfuw8m1h.init(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_4jdwwz55jjgwe8kc.init(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }, editor, function (urls) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_80cv3b4ijfuw8m1d.pluginLoadError(editor, urls[0]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_5ksiiu54jjgwe8k7.pluginLoadError(editor, urls[0]);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!editor.removed) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_b5t8gg4jjfuw8m1h.init(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_4jdwwz55jjgwe8kc.init(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24331,7 +24516,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (!editor.getElement()) {
</span><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    if (!$_9fhi43ajfuw8l13.contentEditable) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    if (!$_bcvfv9ajjgwe79v.contentEditable) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (!settings.inline) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24397,9 +24582,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     editor.editorManager.add(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     loadScripts(editor, editor.suffix);
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_7wiqk54cjfuw8m0b = { render: render };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_f3cxe94yjjgwe8ja = { render: render };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var add = function (editor, name, settings) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var add$4 = function (editor, name, settings) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var sidebars = editor.sidebars ? editor.sidebars : [];
</span><span class="cx" style="display: block; padding: 0 10px">     sidebars.push({
</span><span class="cx" style="display: block; padding: 0 10px">       name: name,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24407,10 +24592,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.sidebars = sidebars;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_777mua77jfuw8mih = { add: add };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9tpo0o7pjjgwe92c = { add: add$4 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$21 = $_52qop8kjfuw8l6v.each;
-  var trim$4 = $_52qop8kjfuw8l6v.trim;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$20 = $_6cwiepljjgwe7j4.each;
+  var trim$4 = $_6cwiepljjgwe7j4.trim;
</ins><span class="cx" style="display: block; padding: 0 10px">   var queryParts = 'source protocol authority userInfo user password host port relative path directory file query anchor'.split(' ');
</span><span class="cx" style="display: block; padding: 0 10px">   var DEFAULT_PORTS = {
</span><span class="cx" style="display: block; padding: 0 10px">     ftp: 21,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24419,13 +24604,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     mailto: 25
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var URI = function (url, settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">     var baseUri, baseUrl;
</span><span class="cx" style="display: block; padding: 0 10px">     url = trim$4(url);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    settings = self.settings = settings || {};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    settings = self$$1.settings = settings || {};
</ins><span class="cx" style="display: block; padding: 0 10px">     baseUri = settings.base_uri;
</span><span class="cx" style="display: block; padding: 0 10px">     if (/^([\w\-]+):([^\/]{2})/i.test(url) || /^\s*#/.test(url)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.source = url;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.source = url;
</ins><span class="cx" style="display: block; padding: 0 10px">       return;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     var isProtocolRelative = url.indexOf('//') === 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24435,65 +24620,65 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (!/^[\w\-]*:?\/\//.test(url)) {
</span><span class="cx" style="display: block; padding: 0 10px">       baseUrl = settings.base_uri ? settings.base_uri.path : new URI(document.location.href).directory;
</span><span class="cx" style="display: block; padding: 0 10px">       if (settings.base_uri.protocol == '') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        url = '//mce_host' + self.toAbsPath(baseUrl, url);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        url = '//mce_host' + self$$1.toAbsPath(baseUrl, url);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         url = /([^#?]*)([#?]?.*)/.exec(url);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self.toAbsPath(baseUrl, url[1]) + url[2];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self$$1.toAbsPath(baseUrl, url[1]) + url[2];
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     url = url.replace(/@@/g, '(mce_at)');
</span><span class="cx" style="display: block; padding: 0 10px">     url = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(url);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$21(queryParts, function (v, i) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$20(queryParts, function (v, i) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var part = url[i];
</span><span class="cx" style="display: block; padding: 0 10px">       if (part) {
</span><span class="cx" style="display: block; padding: 0 10px">         part = part.replace(/\(mce_at\)/g, '@@');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self[v] = part;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1[v] = part;
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     if (baseUri) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.protocol) {
-        self.protocol = baseUri.protocol;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.protocol) {
+        self$$1.protocol = baseUri.protocol;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.userInfo) {
-        self.userInfo = baseUri.userInfo;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.userInfo) {
+        self$$1.userInfo = baseUri.userInfo;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.port && self.host === 'mce_host') {
-        self.port = baseUri.port;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.port && self$$1.host === 'mce_host') {
+        self$$1.port = baseUri.port;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!self.host || self.host === 'mce_host') {
-        self.host = baseUri.host;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (!self$$1.host || self$$1.host === 'mce_host') {
+        self$$1.host = baseUri.host;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.source = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.source = '';
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (isProtocolRelative) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.protocol = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.protocol = '';
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   URI.prototype = {
</span><span class="cx" style="display: block; padding: 0 10px">     setPath: function (path) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       path = /^(.*?)\/?(\w+)?$/.exec(path);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.path = path[0];
-      self.directory = path[1];
-      self.file = path[2];
-      self.source = '';
-      self.getURI();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.path = path[0];
+      self$$1.directory = path[1];
+      self$$1.file = path[2];
+      self$$1.source = '';
+      self$$1.getURI();
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     toRelative: function (uri) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var output;
</span><span class="cx" style="display: block; padding: 0 10px">       if (uri === './') {
</span><span class="cx" style="display: block; padding: 0 10px">         return uri;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      uri = new URI(uri, { base_uri: self });
-      if (uri.host !== 'mce_host' && self.host !== uri.host && uri.host || self.port !== uri.port || self.protocol !== uri.protocol && uri.protocol !== '') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      uri = new URI(uri, { base_uri: self$$1 });
+      if (uri.host !== 'mce_host' && self$$1.host !== uri.host && uri.host || self$$1.port !== uri.port || self$$1.protocol !== uri.protocol && uri.protocol !== '') {
</ins><span class="cx" style="display: block; padding: 0 10px">         return uri.getURI();
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var tu = self.getURI(), uu = uri.getURI();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var tu = self$$1.getURI(), uu = uri.getURI();
</ins><span class="cx" style="display: block; padding: 0 10px">       if (tu === uu || tu.charAt(tu.length - 1) === '/' && tu.substr(0, tu.length - 1) === uu) {
</span><span class="cx" style="display: block; padding: 0 10px">         return tu;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      output = self.toRelPath(self.path, uri.path);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      output = self$$1.toRelPath(self$$1.path, uri.path);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (uri.query) {
</span><span class="cx" style="display: block; padding: 0 10px">         output += '?' + uri.query;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24559,7 +24744,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       tr = /\/$/.test(path) ? '/' : '';
</span><span class="cx" style="display: block; padding: 0 10px">       base = base.split('/');
</span><span class="cx" style="display: block; padding: 0 10px">       path = path.split('/');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$21(base, function (k) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$20(base, function (k) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (k) {
</span><span class="cx" style="display: block; padding: 0 10px">           o.push(k);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24595,37 +24780,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     getURI: function (noProtoHost) {
</span><span class="cx" style="display: block; padding: 0 10px">       var s;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      if (!self.source || noProtoHost) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      if (!self$$1.source || noProtoHost) {
</ins><span class="cx" style="display: block; padding: 0 10px">         s = '';
</span><span class="cx" style="display: block; padding: 0 10px">         if (!noProtoHost) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (self.protocol) {
-            s += self.protocol + '://';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (self$$1.protocol) {
+            s += self$$1.protocol + '://';
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             s += '//';
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (self.userInfo) {
-            s += self.userInfo + '@';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (self$$1.userInfo) {
+            s += self$$1.userInfo + '@';
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (self.host) {
-            s += self.host;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (self$$1.host) {
+            s += self$$1.host;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (self.port) {
-            s += ':' + self.port;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (self$$1.port) {
+            s += ':' + self$$1.port;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self.path) {
-          s += self.path;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1.path) {
+          s += self$$1.path;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self.query) {
-          s += '?' + self.query;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1.query) {
+          s += '?' + self$$1.query;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self.anchor) {
-          s += '#' + self.anchor;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self$$1.anchor) {
+          s += '#' + self$$1.anchor;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.source = s;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.source = s;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return self.source;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return self$$1.source;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   URI.parseDataUri = function (uri) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24656,6 +24841,48 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return baseUrl;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var defaultFormat = 'html';
+  var trimEmptyContents = function (editor, html) {
+    var blockName = $_259vs538jjgwe82a.getForcedRootBlock(editor);
+    var emptyRegExp = new RegExp('^(<' + blockName + '[^>]*>(&nbsp;|&#160;|\\s|\xA0|<br \\/>|)<\\/' + blockName + '>[\r\n]*|<br \\/>[\r\n]*)$');
+    return html.replace(emptyRegExp, '');
+  };
+  var getContentFromBody = function (editor, args, body) {
+    var content;
+    args.format = args.format ? args.format : defaultFormat;
+    args.get = true;
+    args.getInner = true;
+    if (!args.no_events) {
+      editor.fire('BeforeGetContent', args);
+    }
+    if (args.format === 'raw') {
+      content = $_6cwiepljjgwe7j4.trim($_87j7cq5zjjgwe8pf.trimExternal(editor.serializer, body.innerHTML));
+    } else if (args.format === 'text') {
+      content = $_2xw7ul2pjjgwe7xs.trim(body.innerText || body.textContent);
+    } else if (args.format === 'tree') {
+      return editor.serializer.serialize(body, args);
+    } else {
+      content = trimEmptyContents(editor, editor.serializer.serialize(body, args));
+    }
+    if (args.format !== 'text' && !isWsPreserveElement(Element$$1.fromDom(body))) {
+      args.content = $_6cwiepljjgwe7j4.trim(content);
+    } else {
+      args.content = content;
+    }
+    if (!args.no_events) {
+      editor.fire('GetContent', args);
+    }
+    return args.content;
+  };
+  var getContent$1 = function (editor, args) {
+    if (args === void 0) {
+      args = {};
+    }
+    return Option.from(editor.getBody()).fold(constant(args.format === 'tree' ? new Node$2('body', 11) : ''), function (body) {
+      return getContentFromBody(editor, args, body);
+    });
+  };
+
</ins><span class="cx" style="display: block; padding: 0 10px">   var traverse = function (node, fn) {
</span><span class="cx" style="display: block; padding: 0 10px">     fn(node);
</span><span class="cx" style="display: block; padding: 0 10px">     if (node.firstChild) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24671,25 +24898,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var matches = [];
</span><span class="cx" style="display: block; padding: 0 10px">     if (node.firstChild) {
</span><span class="cx" style="display: block; padding: 0 10px">       traverse(node.firstChild, function (node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_9ek1bp4jfuw8kxg.each(nodeFilters, function (filter) {
-          if (filter.name === node.name) {
-            if (nodeMatches[filter.name]) {
-              nodeMatches[filter.name].nodes.push(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each(nodeFilters, function (filter$$1) {
+          if (filter$$1.name === node.name) {
+            if (nodeMatches[filter$$1.name]) {
+              nodeMatches[filter$$1.name].nodes.push(node);
</ins><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              nodeMatches[filter.name] = {
-                filter: filter,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              nodeMatches[filter$$1.name] = {
+                filter: filter$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">                 nodes: [node]
</span><span class="cx" style="display: block; padding: 0 10px">               };
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_9ek1bp4jfuw8kxg.each(attributeFilters, function (filter) {
-          if (typeof node.attr(filter.name) === 'string') {
-            if (attrMatches[filter.name]) {
-              attrMatches[filter.name].nodes.push(node);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each(attributeFilters, function (filter$$1) {
+          if (typeof node.attr(filter$$1.name) === 'string') {
+            if (attrMatches[filter$$1.name]) {
+              attrMatches[filter$$1.name].nodes.push(node);
</ins><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              attrMatches[filter.name] = {
-                filter: filter,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              attrMatches[filter$$1.name] = {
+                filter: filter$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">                 nodes: [node]
</span><span class="cx" style="display: block; padding: 0 10px">               };
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24697,14 +24924,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    for (var name_1 in nodeMatches) {
-      if (nodeMatches.hasOwnProperty(name_1)) {
-        matches.push(nodeMatches[name_1]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    for (var name in nodeMatches) {
+      if (nodeMatches.hasOwnProperty(name)) {
+        matches.push(nodeMatches[name]);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    for (var name_2 in attrMatches) {
-      if (attrMatches.hasOwnProperty(name_2)) {
-        matches.push(attrMatches[name_2]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    for (var name in attrMatches) {
+      if (attrMatches.hasOwnProperty(name)) {
+        matches.push(attrMatches[name]);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return matches;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24711,17 +24938,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var filter$3 = function (nodeFilters, attributeFilters, node) {
</span><span class="cx" style="display: block; padding: 0 10px">     var matches = findMatchingNodes(nodeFilters, attributeFilters, node);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_9ek1bp4jfuw8kxg.each(matches, function (match) {
-      $_9ek1bp4jfuw8kxg.each(match.filter.callbacks, function (callback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each(matches, function (match) {
+      each(match.filter.callbacks, function (callback) {
</ins><span class="cx" style="display: block; padding: 0 10px">         callback(match.nodes, match.filter.name, {});
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var defaultFormat = 'html';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var defaultFormat$1 = 'html';
</ins><span class="cx" style="display: block; padding: 0 10px">   var isTreeNode = function (content) {
</span><span class="cx" style="display: block; padding: 0 10px">     return content instanceof Node$2;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var moveSelection = function (editor) {
+    if ($_5eyh7w4vjjgwe8ik.hasFocus(editor)) {
+      $_8q1ver2yjjgwe7z3.firstPositionIn(editor.getBody()).each(function (pos) {
+        var node = pos.getNode();
+        var caretPos = $_3b9u2y1rjjgwe7qe.isTable(node) ? $_8q1ver2yjjgwe7z3.firstPositionIn(node).getOr(pos) : pos;
+        editor.selection.setRng(caretPos.toRange());
+      });
+    }
+  };
+  var setEditorHtml = function (editor, html) {
+    editor.dom.setHTML(editor.getBody(), html);
+    moveSelection(editor);
+  };
</ins><span class="cx" style="display: block; padding: 0 10px">   var setContentString = function (editor, body, content, args) {
</span><span class="cx" style="display: block; padding: 0 10px">     var forcedRootBlockName, padd;
</span><span class="cx" style="display: block; padding: 0 10px">     if (content.length === 0 || /^\s+$/.test(content)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24731,7 +24971,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (/^(UL|OL)$/.test(body.nodeName)) {
</span><span class="cx" style="display: block; padding: 0 10px">         content = '<li>' + padd + '</li>';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      forcedRootBlockName = $_6msxiw2jjfuw8lkv.getForcedRootBlock(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      forcedRootBlockName = $_259vs538jjgwe82a.getForcedRootBlock(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (forcedRootBlockName && editor.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) {
</span><span class="cx" style="display: block; padding: 0 10px">         content = padd;
</span><span class="cx" style="display: block; padding: 0 10px">         content = editor.dom.createHTML(forcedRootBlockName, editor.settings.forced_root_block_attrs, content);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24738,7 +24978,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       } else if (!content) {
</span><span class="cx" style="display: block; padding: 0 10px">         content = '<br data-mce-bogus="1">';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.dom.setHTML(body, content);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      setEditorHtml(editor, content);
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.fire('SetContent', args);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       if (args.format !== 'raw') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24747,8 +24987,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">           insert: true
</span><span class="cx" style="display: block; padding: 0 10px">         }));
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      args.content = $_52qop8kjfuw8l6v.trim(content);
-      editor.dom.setHTML(body, args.content);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      args.content = isWsPreserveElement(Element$$1.fromDom(body)) ? content : $_6cwiepljjgwe7j4.trim(content);
+      setEditorHtml(editor, args.content);
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!args.no_events) {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.fire('SetContent', args);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24758,50 +24998,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var setContentTree = function (editor, body, content, args) {
</span><span class="cx" style="display: block; padding: 0 10px">     filter$3(editor.parser.getNodeFilters(), editor.parser.getAttributeFilters(), content);
</span><span class="cx" style="display: block; padding: 0 10px">     var html = HtmlSerializer({ validate: editor.validate }, editor.schema).serialize(content);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    args.content = $_52qop8kjfuw8l6v.trim(html);
-    editor.dom.setHTML(body, args.content);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    args.content = isWsPreserveElement(Element$$1.fromDom(body)) ? html : $_6cwiepljjgwe7j4.trim(html);
+    setEditorHtml(editor, args.content);
</ins><span class="cx" style="display: block; padding: 0 10px">     if (!args.no_events) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.fire('SetContent', args);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return content;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var trimEmptyContents = function (editor, html) {
-    var blockName = $_6msxiw2jjfuw8lkv.getForcedRootBlock(editor);
-    var emptyRegExp = new RegExp('^(<' + blockName + '[^>]*>(&nbsp;|&#160;|\\s|\xA0|<br \\/>|)<\\/' + blockName + '>[\r\n]*|<br \\/>[\r\n]*)$');
-    return html.replace(emptyRegExp, '');
-  };
-  var getContentFromBody = function (editor, args, body) {
-    var content;
-    args.format = args.format ? args.format : defaultFormat;
-    args.get = true;
-    args.getInner = true;
-    if (!args.no_events) {
-      editor.fire('BeforeGetContent', args);
-    }
-    if (args.format === 'raw') {
-      content = $_52qop8kjfuw8l6v.trim($_fglg0l5djfuw8m62.trimExternal(editor.serializer, body.innerHTML));
-    } else if (args.format === 'text') {
-      content = $_dpfg1321jfuw8lhn.trim(body.innerText || body.textContent);
-    } else if (args.format === 'tree') {
-      return editor.serializer.serialize(body, args);
-    } else {
-      content = trimEmptyContents(editor, editor.serializer.serialize(body, args));
-    }
-    if (args.format !== 'text') {
-      args.content = $_52qop8kjfuw8l6v.trim(content);
-    } else {
-      args.content = content;
-    }
-    if (!args.no_events) {
-      editor.fire('GetContent', args);
-    }
-    return args.content;
-  };
</del><span class="cx" style="display: block; padding: 0 10px">   var setContent$1 = function (editor, content, args) {
</span><span class="cx" style="display: block; padding: 0 10px">     if (args === void 0) {
</span><span class="cx" style="display: block; padding: 0 10px">       args = {};
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    args.format = args.format ? args.format : defaultFormat;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    args.format = args.format ? args.format : defaultFormat$1;
</ins><span class="cx" style="display: block; padding: 0 10px">     args.set = true;
</span><span class="cx" style="display: block; padding: 0 10px">     args.content = isTreeNode(content) ? '' : content;
</span><span class="cx" style="display: block; padding: 0 10px">     if (!isTreeNode(content) && !args.no_events) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24808,18 +25016,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       editor.fire('BeforeSetContent', args);
</span><span class="cx" style="display: block; padding: 0 10px">       content = args.content;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return Option.from(editor.getBody()).fold($_68e81l6jfuw8kyc.constant(content), function (body) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return Option.from(editor.getBody()).fold(constant(content), function (body) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return isTreeNode(content) ? setContentTree(editor, body, content, args) : setContentString(editor, body, content, args);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var getContent$1 = function (editor, args) {
-    if (args === void 0) {
-      args = {};
-    }
-    return Option.from(editor.getBody()).fold($_68e81l6jfuw8kyc.constant(args.format === 'tree' ? new Node$2('body', 11) : ''), function (body) {
-      return getContentFromBody(editor, args, body);
-    });
-  };
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$6 = DOMUtils$1.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var restoreOriginalStyles = function (editor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24848,7 +25048,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       DOM$6.unbind(form, 'submit reset', editor.formEventDelegate);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var remove$5 = function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var remove$9 = function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">     if (!editor.removed) {
</span><span class="cx" style="display: block; padding: 0 10px">       var _selectionOverrides = editor._selectionOverrides, editorUpload = editor.editorUpload;
</span><span class="cx" style="display: block; padding: 0 10px">       var body = editor.getBody();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24864,7 +25064,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!editor.inline && body) {
</span><span class="cx" style="display: block; padding: 0 10px">         restoreOriginalStyles(editor);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_47gnpy63jfuw8mad.fireRemove(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_b2ca654tjjgwe8ic.fireRemove(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       editor.editorManager.remove(editor);
</span><span class="cx" style="display: block; padding: 0 10px">       DOM$6.remove(editor.getContainer());
</span><span class="cx" style="display: block; padding: 0 10px">       safeDestroy(_selectionOverrides);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24895,10 +25095,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$7 = DOMUtils$1.DOM;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var extend$4 = $_52qop8kjfuw8l6v.extend;
-  var each$22 = $_52qop8kjfuw8l6v.each;
-  var resolve$4 = $_52qop8kjfuw8l6v.resolve;
-  var ie$2 = $_9fhi43ajfuw8l13.ie;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var extend$4 = $_6cwiepljjgwe7j4.extend;
+  var each$21 = $_6cwiepljjgwe7j4.each;
+  var resolve$4 = $_6cwiepljjgwe7j4.resolve;
+  var ie$2 = $_bcvfv9ajjgwe79v.ie;
</ins><span class="cx" style="display: block; padding: 0 10px">   var Editor = function (id, settings, editorManager) {
</span><span class="cx" style="display: block; padding: 0 10px">     var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">     var documentBaseUrl = self.documentBaseUrl = editorManager.documentBaseURL;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24924,10 +25124,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">     self.buttons = {};
</span><span class="cx" style="display: block; padding: 0 10px">     self.menuItems = {};
</span><span class="cx" style="display: block; padding: 0 10px">     if (settings.cache_suffix) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9fhi43ajfuw8l13.cacheSuffix = settings.cache_suffix.replace(/^[\?\&]+/, '');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_bcvfv9ajjgwe79v.cacheSuffix = settings.cache_suffix.replace(/^[\?\&]+/, '');
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (settings.override_viewport === false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_9fhi43ajfuw8l13.overrideViewPort = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_bcvfv9ajjgwe79v.overrideViewPort = false;
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     editorManager.fire('SetupEditor', { editor: self });
</span><span class="cx" style="display: block; padding: 0 10px">     self.execCallback('setup', self);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24940,13 +25140,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   Editor.prototype = {
</span><span class="cx" style="display: block; padding: 0 10px">     render: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_7wiqk54cjfuw8m0b.render(this);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_f3cxe94yjjgwe8ja.render(this);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     focus: function (skipFocus) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_18lipa49jfuw8lzt.focus(this, skipFocus);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_5eyh7w4vjjgwe8ik.focus(this, skipFocus);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     hasFocus: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_18lipa49jfuw8lzt.hasFocus(this);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_5eyh7w4vjjgwe8ik.hasFocus(this);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     execCallback: function (name) {
</span><span class="cx" style="display: block; padding: 0 10px">       var x = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24975,7 +25175,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return callback.apply(scope || self, Array.prototype.slice.call(arguments, 1));
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     translate: function (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (text && $_52qop8kjfuw8l6v.is(text, 'string')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (text && $_6cwiepljjgwe7j4.is(text, 'string')) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var lang_1 = this.settings.language || 'en', i18n_1 = this.editorManager.i18n;
</span><span class="cx" style="display: block; padding: 0 10px">         text = i18n_1.data[lang_1 + '.' + text] || text.replace(/\{\#([^\}]+)\}/g, function (a, b) {
</span><span class="cx" style="display: block; padding: 0 10px">           return i18n_1.data[lang_1 + '.' + b] || '{#' + b + '}';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25010,7 +25210,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       self.buttons[name] = settings;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     addSidebar: function (name, settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_777mua77jfuw8mih.add(this, name, settings);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_9tpo0o7pjjgwe92c.add(this, name, settings);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     addMenuItem: function (name, settings) {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25033,7 +25233,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       self.contextToolbars.push({
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        id: $_cbl0d24xjfuw8m3f.uuid('mcet'),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        id: $_637o4x5jjjgwe8m5.uuid('mcet'),
</ins><span class="cx" style="display: block; padding: 0 10px">         predicate: predicate,
</span><span class="cx" style="display: block; padding: 0 10px">         items: items
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25141,11 +25341,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       html = args.content;
</span><span class="cx" style="display: block; padding: 0 10px">       if (!/TEXTAREA|INPUT/i.test(elm.nodeName)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!self.inline) {
-          elm.innerHTML = html;
-        }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        elm.innerHTML = html;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (form = DOM$7.getParent(self.id, 'form')) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$22(form.elements, function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$21(form.elements, function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (elm.name === self.id) {
</span><span class="cx" style="display: block; padding: 0 10px">               elm.value = html;
</span><span class="cx" style="display: block; padding: 0 10px">               return false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25184,7 +25382,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     setMode: function (mode) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_886hp247jfuw8lzl.setMode(this, mode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      setMode(this, mode);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     getContainer: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var self = this;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25251,7 +25449,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (self.hasVisual === undefined) {
</span><span class="cx" style="display: block; padding: 0 10px">         self.hasVisual = settings.visual;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$22(dom.select('table,a', elm), function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$21(dom.select('table,a', elm), function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var value;
</span><span class="cx" style="display: block; padding: 0 10px">         switch (elm.nodeName) {
</span><span class="cx" style="display: block; padding: 0 10px">         case 'TABLE':
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25282,7 +25480,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      remove$5(this);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      remove$9(this);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     destroy: function (automatic) {
</span><span class="cx" style="display: block; padding: 0 10px">       destroy(this, automatic);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25299,7 +25497,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   var isEditorUIElement = function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     return elm.className.toString().indexOf('mce-') !== -1;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_du4u8r7ejfuw8mjp = { isEditorUIElement: isEditorUIElement };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_264dtu7yjjgwe947 = { isEditorUIElement: isEditorUIElement };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var isManualNodeChange = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">     return e.type === 'nodechange' && e.selectionChange;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25315,7 +25513,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var registerFocusOut = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('focusout', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_2a7vvg40jfuw8lyb.store(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_4wtqbt4ljjgwe8gy.store(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var registerMouseUp = function (editor, throttledStore) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25324,8 +25522,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var registerEditorEvents = function (editor, throttledStore) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var browser = $_f1lbzgnjfuw8l7o.detect().browser;
-    if (browser.isIE() || browser.isEdge()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var browser = $_7vg267ojjgwe7k0.detect().browser;
+    if (browser.isIE()) {
</ins><span class="cx" style="display: block; padding: 0 10px">       registerFocusOut(editor);
</span><span class="cx" style="display: block; padding: 0 10px">     } else {
</span><span class="cx" style="display: block; padding: 0 10px">       registerMouseUp(editor, throttledStore);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25332,13 +25530,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('keyup nodechange', function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!isManualNodeChange(e)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_2a7vvg40jfuw8lyb.store(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_4wtqbt4ljjgwe8gy.store(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var register$3 = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var throttledStore = $_6aemaw59jfuw8m5h.first(function () {
-      $_2a7vvg40jfuw8lyb.store(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var throttledStore = first$1(function () {
+      $_4wtqbt4ljjgwe8gy.store(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     }, 0);
</span><span class="cx" style="display: block; padding: 0 10px">     if (editor.inline) {
</span><span class="cx" style="display: block; padding: 0 10px">       registerPageMouseUp(editor, throttledStore);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25350,19 +25548,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">       throttledStore.cancel();
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_5uzmvs7fjfuw8mjq = { register: register$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_6aodh87zjjgwe948 = { register: register$3 };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var documentFocusInHandler;
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$8 = DOMUtils$1.DOM;
</span><span class="cx" style="display: block; padding: 0 10px">   var isEditorUIElement$1 = function (elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return $_du4u8r7ejfuw8mjp.isEditorUIElement(elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return $_264dtu7yjjgwe947.isEditorUIElement(elm);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var isUIElement = function (editor, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">     var customSelector = editor ? editor.settings.custom_ui_selector : '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var parent = DOM$8.getParent(elm, function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var parent$$1 = DOM$8.getParent(elm, function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return isEditorUIElement$1(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return parent !== null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return parent$$1 !== null;
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var getActiveElement = function () {
</span><span class="cx" style="display: block; padding: 0 10px">     try {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25373,26 +25571,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var registerEvents = function (editorManager, e) {
</span><span class="cx" style="display: block; padding: 0 10px">     var editor = e.editor;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    $_5uzmvs7fjfuw8mjq.register(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    $_6aodh87zjjgwe948.register(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">     editor.on('focusin', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var focusedEditor = editorManager.focusedEditor;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (focusedEditor !== self) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (focusedEditor !== self$$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (focusedEditor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          focusedEditor.fire('blur', { focusedEditor: self });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          focusedEditor.fire('blur', { focusedEditor: self$$1 });
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        editorManager.setActive(self);
-        editorManager.focusedEditor = self;
-        self.fire('focus', { blurredEditor: focusedEditor });
-        self.focus(true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        editorManager.setActive(self$$1);
+        editorManager.focusedEditor = self$$1;
+        self$$1.fire('focus', { blurredEditor: focusedEditor });
+        self$$1.focus(true);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     editor.on('focusout', function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
-      $_2m8wq9hjfuw8l41.setEditorTimeout(self, function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
+      $_9o1ijaijjgwe7dm.setEditorTimeout(self$$1, function () {
</ins><span class="cx" style="display: block; padding: 0 10px">         var focusedEditor = editorManager.focusedEditor;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!isUIElement(self, getActiveElement()) && focusedEditor === self) {
-          self.fire('blur', { focusedEditor: null });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!isUIElement(self$$1, getActiveElement()) && focusedEditor === self$$1) {
+          self$$1.fire('blur', { focusedEditor: null });
</ins><span class="cx" style="display: block; padding: 0 10px">           editorManager.focusedEditor = null;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25421,12 +25619,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       documentFocusInHandler = null;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var setup$12 = function (editorManager) {
-    editorManager.on('AddEditor', $_68e81l6jfuw8kyc.curry(registerEvents, editorManager));
-    editorManager.on('RemoveEditor', $_68e81l6jfuw8kyc.curry(unregisterDocumentEvents, editorManager));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var setup$15 = function (editorManager) {
+    editorManager.on('AddEditor', curry(registerEvents, editorManager));
+    editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager));
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_4p4q557djfuw8mjm = {
-    setup: setup$12,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_8o8it37xjjgwe943 = {
+    setup: setup$15,
</ins><span class="cx" style="display: block; padding: 0 10px">     isEditorUIElement: isEditorUIElement$1,
</span><span class="cx" style="display: block; padding: 0 10px">     isUIElement: isUIElement
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25433,7 +25631,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var data = {};
</span><span class="cx" style="display: block; padding: 0 10px">   var code = 'en';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_ai97we7gjfuw8mjv = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_65s8hc80jjgwe94e = {
</ins><span class="cx" style="display: block; padding: 0 10px">     setCode: function (newCode) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (newCode) {
</span><span class="cx" style="display: block; padding: 0 10px">         code = newCode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25449,8 +25647,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!langData) {
</span><span class="cx" style="display: block; padding: 0 10px">         data[code] = langData = {};
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (var name_1 in items) {
-        langData[name_1] = items[name_1];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (var name in items) {
+        langData[name] = items[name];
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       this.setCode(code);
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25457,28 +25655,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">     translate: function (text) {
</span><span class="cx" style="display: block; padding: 0 10px">       var langData = data[code] || {};
</span><span class="cx" style="display: block; padding: 0 10px">       var toString = function (obj) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_52qop8kjfuw8l6v.is(obj, 'function')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_6cwiepljjgwe7j4.is(obj, 'function')) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return Object.prototype.toString.call(obj);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return !isEmpty(obj) ? '' + obj : '';
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var isEmpty = function (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return text === '' || text === null || $_52qop8kjfuw8l6v.is(text, 'undefined');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return text === '' || text === null || $_6cwiepljjgwe7j4.is(text, 'undefined');
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var getLangData = function (text) {
</span><span class="cx" style="display: block; padding: 0 10px">         text = toString(text);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return $_52qop8kjfuw8l6v.hasOwn(langData, text) ? toString(langData[text]) : text;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return $_6cwiepljjgwe7j4.hasOwn(langData, text) ? toString(langData[text]) : text;
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       if (isEmpty(text)) {
</span><span class="cx" style="display: block; padding: 0 10px">         return '';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_52qop8kjfuw8l6v.is(text, 'object') && $_52qop8kjfuw8l6v.hasOwn(text, 'raw')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_6cwiepljjgwe7j4.is(text, 'object') && $_6cwiepljjgwe7j4.hasOwn(text, 'raw')) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return toString(text.raw);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_52qop8kjfuw8l6v.is(text, 'array')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if ($_6cwiepljjgwe7j4.is(text, 'array')) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var values_1 = text.slice(1);
</span><span class="cx" style="display: block; padding: 0 10px">         text = getLangData(text[0]).replace(/\{([0-9]+)\}/g, function ($1, $2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return $_52qop8kjfuw8l6v.hasOwn(values_1, $2) ? toString(values_1[$2]) : $1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return $_6cwiepljjgwe7j4.hasOwn(values_1, $2) ? toString(values_1[$2]) : $1;
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return getLangData(text).replace(/{context:\w+}$/, '');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25487,9 +25685,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var DOM$9 = DOMUtils$1.DOM;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var explode$4 = $_52qop8kjfuw8l6v.explode;
-  var each$23 = $_52qop8kjfuw8l6v.each;
-  var extend$5 = $_52qop8kjfuw8l6v.extend;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var explode$4 = $_6cwiepljjgwe7j4.explode;
+  var each$22 = $_6cwiepljjgwe7j4.each;
+  var extend$5 = $_6cwiepljjgwe7j4.extend;
</ins><span class="cx" style="display: block; padding: 0 10px">   var instanceCounter = 0;
</span><span class="cx" style="display: block; padding: 0 10px">   var beforeUnloadDelegate;
</span><span class="cx" style="display: block; padding: 0 10px">   var EditorManager;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25500,7 +25698,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return id !== 'length';
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var globalEventDelegate = function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    each$23(EditorManager.get(), function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    each$22(EditorManager.get(), function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (e.type === 'scroll') {
</span><span class="cx" style="display: block; padding: 0 10px">         editor.fire('ScrollWindow', e);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25527,7 +25725,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         break;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    editors = $_9ek1bp4jfuw8kxg.filter(editors, function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    editors = filter(editors, function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return targetEditor !== editor;
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     if (EditorManager.activeEditor === targetEditor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25552,14 +25750,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">     defaultSettings: {},
</span><span class="cx" style="display: block; padding: 0 10px">     $: DomQuery,
</span><span class="cx" style="display: block; padding: 0 10px">     majorVersion: '4',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    minorVersion: '7.11',
-    releaseDate: '2018-04-11',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    minorVersion: '8.0',
+    releaseDate: '2018-06-27',
</ins><span class="cx" style="display: block; padding: 0 10px">     editors: legacyEditors,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    i18n: $_ai97we7gjfuw8mjv,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    i18n: $_65s8hc80jjgwe94e,
</ins><span class="cx" style="display: block; padding: 0 10px">     activeEditor: null,
</span><span class="cx" style="display: block; padding: 0 10px">     settings: {},
</span><span class="cx" style="display: block; padding: 0 10px">     setup: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var baseURL, documentBaseURL, suffix = '', preInit, src;
</span><span class="cx" style="display: block; padding: 0 10px">       documentBaseURL = URI.getDocumentBaseUrl(document.location);
</span><span class="cx" style="display: block; padding: 0 10px">       if (/^[^:]+:\/\/\/?[^\/]+\//.test(documentBaseURL)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25593,11 +25791,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">           baseURL = src.substring(0, src.lastIndexOf('/'));
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL);
-      self.documentBaseURL = documentBaseURL;
-      self.baseURI = new URI(self.baseURL);
-      self.suffix = suffix;
-      $_4p4q557djfuw8mjm.setup(self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.baseURL = new URI(documentBaseURL).toAbsolute(baseURL);
+      self$$1.documentBaseURL = documentBaseURL;
+      self$$1.baseURI = new URI(self$$1.baseURL);
+      self$$1.suffix = suffix;
+      $_8o8it37xjjgwe943.setup(self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     overrideDefaults: function (defaultSettings) {
</span><span class="cx" style="display: block; padding: 0 10px">       var baseUrl, suffix;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25612,14 +25810,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       this.defaultSettings = defaultSettings;
</span><span class="cx" style="display: block; padding: 0 10px">       var pluginBaseUrls = defaultSettings.plugin_base_urls;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      for (var name_1 in pluginBaseUrls) {
-        AddOnManager.PluginManager.urls[name_1] = pluginBaseUrls[name_1];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      for (var name$$1 in pluginBaseUrls) {
+        AddOnManager.PluginManager.urls[name$$1] = pluginBaseUrls[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var result, invalidInlineTargets;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      invalidInlineTargets = $_52qop8kjfuw8l6v.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu', ' ');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      invalidInlineTargets = $_6cwiepljjgwe7j4.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu', ' ');
</ins><span class="cx" style="display: block; padding: 0 10px">       var isInvalidInlineTarget = function (settings, elm) {
</span><span class="cx" style="display: block; padding: 0 10px">         return settings.inline && elm.tagName.toLowerCase() in invalidInlineTargets;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25636,12 +25834,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return id;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var execCallback = function (name) {
-        var callback = settings[name];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var execCallback = function (name$$1) {
+        var callback = settings[name$$1];
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!callback) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return callback.apply(self, Array.prototype.slice.call(arguments, 2));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return callback.apply(self$$1, Array.prototype.slice.call(arguments, 2));
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var hasClass = function (elm, className) {
</span><span class="cx" style="display: block; padding: 0 10px">         return className.constructor === RegExp ? className.test(elm.className) : DOM$9.hasClass(elm, className);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25648,12 +25846,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var findTargets = function (settings) {
</span><span class="cx" style="display: block; padding: 0 10px">         var l, targets = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if ($_9fhi43ajfuw8l13.ie && $_9fhi43ajfuw8l13.ie < 11) {
-          $_80cv3b4ijfuw8m1d.initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if ($_bcvfv9ajjgwe79v.ie && $_bcvfv9ajjgwe79v.ie < 11) {
+          $_5ksiiu54jjgwe8k7.initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/');
</ins><span class="cx" style="display: block; padding: 0 10px">           return [];
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (settings.types) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$23(settings.types, function (type) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$22(settings.types, function (type) {
</ins><span class="cx" style="display: block; padding: 0 10px">             targets = targets.concat(DOM$9.select(type.selector));
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">           return targets;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25666,13 +25864,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         case 'exact':
</span><span class="cx" style="display: block; padding: 0 10px">           l = settings.elements || '';
</span><span class="cx" style="display: block; padding: 0 10px">           if (l.length > 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            each$23(explode$4(l), function (id) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            each$22(explode$4(l), function (id) {
</ins><span class="cx" style="display: block; padding: 0 10px">               var elm;
</span><span class="cx" style="display: block; padding: 0 10px">               if (elm = DOM$9.get(id)) {
</span><span class="cx" style="display: block; padding: 0 10px">                 targets.push(elm);
</span><span class="cx" style="display: block; padding: 0 10px">               } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                each$23(document.forms, function (f) {
-                  each$23(f.elements, function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                each$22(document.forms, function (f) {
+                  each$22(f.elements, function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">                     if (e.name === id) {
</span><span class="cx" style="display: block; padding: 0 10px">                       id = 'mce_editor_' + instanceCounter++;
</span><span class="cx" style="display: block; padding: 0 10px">                       DOM$9.setAttrib(e, 'id', id);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25686,7 +25884,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           break;
</span><span class="cx" style="display: block; padding: 0 10px">         case 'textareas':
</span><span class="cx" style="display: block; padding: 0 10px">         case 'specific_textareas':
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$23(DOM$9.select('textarea'), function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$22(DOM$9.select('textarea'), function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) {
</span><span class="cx" style="display: block; padding: 0 10px">               return;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25706,7 +25904,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var editors = [];
</span><span class="cx" style="display: block; padding: 0 10px">         var targets;
</span><span class="cx" style="display: block; padding: 0 10px">         var createEditor = function (id, settings, targetElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var editor = new Editor(id, settings, self);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var editor = new Editor(id, settings, self$$1);
</ins><span class="cx" style="display: block; padding: 0 10px">           editors.push(editor);
</span><span class="cx" style="display: block; padding: 0 10px">           editor.on('init', function () {
</span><span class="cx" style="display: block; padding: 0 10px">             if (++initCount === targets.length) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25720,8 +25918,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         execCallback('onpageload');
</span><span class="cx" style="display: block; padding: 0 10px">         targets = DomQuery.unique(findTargets(settings));
</span><span class="cx" style="display: block; padding: 0 10px">         if (settings.types) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$23(settings.types, function (type) {
-            $_52qop8kjfuw8l6v.each(targets, function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$22(settings.types, function (type) {
+            $_6cwiepljjgwe7j4.each(targets, function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">               if (DOM$9.is(elm, type.selector)) {
</span><span class="cx" style="display: block; padding: 0 10px">                 createEditor(createId(elm), extend$5({}, settings, type), elm);
</span><span class="cx" style="display: block; padding: 0 10px">                 return false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25731,18 +25929,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $_52qop8kjfuw8l6v.each(targets, function (elm) {
-          purgeDestroyedEditor(self.get(elm.id));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $_6cwiepljjgwe7j4.each(targets, function (elm) {
+          purgeDestroyedEditor(self$$1.get(elm.id));
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        targets = $_52qop8kjfuw8l6v.grep(targets, function (elm) {
-          return !self.get(elm.id);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        targets = $_6cwiepljjgwe7j4.grep(targets, function (elm) {
+          return !self$$1.get(elm.id);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         if (targets.length === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">           provideResults([]);
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          each$23(targets, function (elm) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          each$22(targets, function (elm) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (isInvalidInlineTarget(settings, elm)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              $_80cv3b4ijfuw8m1d.initError('Could not initialize inline editor on invalid inline target element', elm);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              $_5ksiiu54jjgwe8k7.initError('Could not initialize inline editor on invalid inline target element', elm);
</ins><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><span class="cx" style="display: block; padding: 0 10px">               createEditor(createId(elm), settings, elm);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25749,7 +25947,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.settings = settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.settings = settings;
</ins><span class="cx" style="display: block; padding: 0 10px">       DOM$9.bind(window, 'ready', initEditors);
</span><span class="cx" style="display: block; padding: 0 10px">       return new promiseObj(function (resolve) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (result) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25764,11 +25962,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">     get: function (id) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (arguments.length === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">         return editors.slice(0);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if ($_16i8k47jfuw8kyi.isString(id)) {
-        return $_9ek1bp4jfuw8kxg.find(editors, function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (isString(id)) {
+        return find(editors, function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return editor.id === id;
</span><span class="cx" style="display: block; padding: 0 10px">         }).getOr(null);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      } else if ($_16i8k47jfuw8kyi.isNumber(id)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (isNumber(id)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return editors[id] ? editors[id] : null;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25775,13 +25973,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     add: function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var existingEditor;
</span><span class="cx" style="display: block; padding: 0 10px">       existingEditor = legacyEditors[editor.id];
</span><span class="cx" style="display: block; padding: 0 10px">       if (existingEditor === editor) {
</span><span class="cx" style="display: block; padding: 0 10px">         return editor;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.get(editor.id) === null) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.get(editor.id) === null) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (isValidLegacyKey(editor.id)) {
</span><span class="cx" style="display: block; padding: 0 10px">           legacyEditors[editor.id] = editor;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25789,11 +25987,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         editors.push(editor);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       toggleGlobalEvents(true);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      self.activeEditor = editor;
-      self.fire('AddEditor', { editor: editor });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      self$$1.activeEditor = editor;
+      self$$1.fire('AddEditor', { editor: editor });
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!beforeUnloadDelegate) {
</span><span class="cx" style="display: block; padding: 0 10px">         beforeUnloadDelegate = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.fire('BeforeUnload');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.fire('BeforeUnload');
</ins><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">         DOM$9.bind(window, 'beforeunload', beforeUnloadDelegate);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25803,30 +26001,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return this.add(new Editor(id, settings, this));
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     remove: function (selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this;
</ins><span class="cx" style="display: block; padding: 0 10px">       var i, editor;
</span><span class="cx" style="display: block; padding: 0 10px">       if (!selector) {
</span><span class="cx" style="display: block; padding: 0 10px">         for (i = editors.length - 1; i >= 0; i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.remove(editors[i]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.remove(editors[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_16i8k47jfuw8kyi.isString(selector)) {
-        selector = selector.selector || selector;
-        each$23(DOM$9.select(selector), function (elm) {
-          editor = self.get(elm.id);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isString(selector)) {
+        each$22(DOM$9.select(selector), function (elm) {
+          editor = self$$1.get(elm.id);
</ins><span class="cx" style="display: block; padding: 0 10px">           if (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self.remove(editor);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self$$1.remove(editor);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       editor = selector;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if ($_16i8k47jfuw8kyi.isNull(self.get(editor.id))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isNull(self$$1.get(editor.id))) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (removeEditorFromList(editor)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self.fire('RemoveEditor', { editor: editor });
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self$$1.fire('RemoveEditor', { editor: editor });
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (editors.length === 0) {
</span><span class="cx" style="display: block; padding: 0 10px">         DOM$9.unbind(window, 'beforeunload', beforeUnloadDelegate);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25836,11 +26033,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return editor;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     execCommand: function (cmd, ui, value) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var self = this, editor = self.get(value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var self$$1 = this, editor = self$$1.get(value);
</ins><span class="cx" style="display: block; padding: 0 10px">       switch (cmd) {
</span><span class="cx" style="display: block; padding: 0 10px">       case 'mceAddEditor':
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (!self.get(value)) {
-          new Editor(value, self.settings, self).render();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (!self$$1.get(value)) {
+          new Editor(value, self$$1.settings, self$$1).render();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       case 'mceRemoveEditor':
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25850,7 +26047,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       case 'mceToggleEditor':
</span><span class="cx" style="display: block; padding: 0 10px">         if (!editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self.execCommand('mceAddEditor', 0, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self$$1.execCommand('mceAddEditor', 0, value);
</ins><span class="cx" style="display: block; padding: 0 10px">           return true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (editor.isHidden()) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25860,21 +26057,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (self.activeEditor) {
-        return self.activeEditor.execCommand(cmd, ui, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (self$$1.activeEditor) {
+        return self$$1.activeEditor.execCommand(cmd, ui, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       return false;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     triggerSave: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$23(editors, function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$22(editors, function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">         editor.save();
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     addI18n: function (code, items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      $_ai97we7gjfuw8mjv.add(code, items);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      $_65s8hc80jjgwe94e.add(code, items);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     translate: function (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_ai97we7gjfuw8mjv.translate(text);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_65s8hc80jjgwe94e.translate(text);
</ins><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     setActive: function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">       var activeEditor = this.activeEditor;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25887,17 +26084,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">       this.activeEditor = editor;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  extend$5(EditorManager, $_17qpde45jfuw8lze);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  extend$5(EditorManager, $_5fwo104qjjgwe8hz);
</ins><span class="cx" style="display: block; padding: 0 10px">   EditorManager.setup();
</span><span class="cx" style="display: block; padding: 0 10px">   var EditorManager$1 = EditorManager;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   function RangeUtils(dom) {
</span><span class="cx" style="display: block; padding: 0 10px">     var walk = function (rng, callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_1l4f5i5tjfuw8m9h.walk(dom, rng, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_e2gzn43bjjgwe82k.walk(dom, rng, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var split = $_5l67ss5pjfuw8m8j.split;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var split = $_10670d6ajjgwe8rj.split;
</ins><span class="cx" style="display: block; padding: 0 10px">     var normalize = function (rng) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return $_970szt3yjfuw8ly1.normalize(dom, rng).fold($_68e81l6jfuw8kyc.constant(false), function (normalizedRng) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return $_eqgqyj4jjjgwe8gi.normalize(dom, rng).fold(constant(false), function (normalizedRng) {
</ins><span class="cx" style="display: block; padding: 0 10px">         rng.setStart(normalizedRng.startContainer, normalizedRng.startOffset);
</span><span class="cx" style="display: block; padding: 0 10px">         rng.setEnd(normalizedRng.endContainer, normalizedRng.endOffset);
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25910,8 +26107,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   }
</span><span class="cx" style="display: block; padding: 0 10px">   (function (RangeUtils) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    RangeUtils.compareRanges = $_87lezn3zjfuw8ly9.isEq;
-    RangeUtils.getCaretRangeFromPoint = $_dyytu76ejfuw8md2.fromPoint;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    RangeUtils.compareRanges = $_g1gkxh4kjjgwe8gw.isEq;
+    RangeUtils.getCaretRangeFromPoint = $_269jak6xjjgwe8wp.fromPoint;
</ins><span class="cx" style="display: block; padding: 0 10px">     RangeUtils.getSelectedNode = getSelectedNode;
</span><span class="cx" style="display: block; padding: 0 10px">     RangeUtils.getNode = getNode;
</span><span class="cx" style="display: block; padding: 0 10px">   }(RangeUtils || (RangeUtils = {})));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25953,7 +26150,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (rel[4] === 'c') {
</span><span class="cx" style="display: block; padding: 0 10px">       x -= round$2(w / 2);
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return create$2(x, y, w, h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return create$3(x, y, w, h);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var findBestRelativePosition = function (rect, targetRect, constrainRect, rels) {
</span><span class="cx" style="display: block; padding: 0 10px">     var pos, i;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25966,7 +26163,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     return null;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var inflate = function (rect, w, h) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return create$2(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return create$3(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var intersect = function (rect, cropRect) {
</span><span class="cx" style="display: block; padding: 0 10px">     var x1, y1, x2, y2;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25977,7 +26174,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     if (x2 - x1 < 0 || y2 - y1 < 0) {
</span><span class="cx" style="display: block; padding: 0 10px">       return null;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return create$2(x1, y1, x2 - x1, y2 - y1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return create$3(x1, y1, x2 - x1, y2 - y1);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var clamp$1 = function (rect, clampRect, fixedSize) {
</span><span class="cx" style="display: block; padding: 0 10px">     var underflowX1, underflowY1, overflowX2, overflowY2, x1, y1, x2, y2, cx2, cy2;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26001,9 +26198,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     x2 -= overflowX2;
</span><span class="cx" style="display: block; padding: 0 10px">     y2 -= overflowY2;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return create$2(x1, y1, x2 - x1, y2 - y1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return create$3(x1, y1, x2 - x1, y2 - y1);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var create$2 = function (x, y, w, h) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var create$3 = function (x, y, w, h) {
</ins><span class="cx" style="display: block; padding: 0 10px">     return {
</span><span class="cx" style="display: block; padding: 0 10px">       x: x,
</span><span class="cx" style="display: block; padding: 0 10px">       y: y,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26012,20 +26209,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px">   var fromClientRect = function (clientRect) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    return create$2(clientRect.left, clientRect.top, clientRect.width, clientRect.height);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    return create$3(clientRect.left, clientRect.top, clientRect.width, clientRect.height);
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_nkvpl7ijfuw8mkc = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_5hxmix82jjgwe94o = {
</ins><span class="cx" style="display: block; padding: 0 10px">     inflate: inflate,
</span><span class="cx" style="display: block; padding: 0 10px">     relativePosition: relativePosition,
</span><span class="cx" style="display: block; padding: 0 10px">     findBestRelativePosition: findBestRelativePosition,
</span><span class="cx" style="display: block; padding: 0 10px">     intersect: intersect,
</span><span class="cx" style="display: block; padding: 0 10px">     clamp: clamp$1,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    create: create$2,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    create: create$3,
</ins><span class="cx" style="display: block; padding: 0 10px">     fromClientRect: fromClientRect
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var types = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_81mtl67jjfuw8mkg = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_9yg02e83jjgwe94t = {
</ins><span class="cx" style="display: block; padding: 0 10px">     add: function (type, typeClass) {
</span><span class="cx" style="display: block; padding: 0 10px">       types[type.toLowerCase()] = typeClass;
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26060,13 +26257,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var each$24 = $_52qop8kjfuw8l6v.each;
-  var extend$6 = $_52qop8kjfuw8l6v.extend;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var each$23 = $_6cwiepljjgwe7j4.each;
+  var extend$6 = $_6cwiepljjgwe7j4.extend;
</ins><span class="cx" style="display: block; padding: 0 10px">   var extendClass;
</span><span class="cx" style="display: block; padding: 0 10px">   var initializing;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var Class = function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var Class$1 = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  Class.extend = extendClass = function (prop) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  Class$1.extend = extendClass = function (prop) {
</ins><span class="cx" style="display: block; padding: 0 10px">     var self = this;
</span><span class="cx" style="display: block; padding: 0 10px">     var _super = self.prototype;
</span><span class="cx" style="display: block; padding: 0 10px">     var prototype, name, member;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26107,7 +26304,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     prototype = new self();
</span><span class="cx" style="display: block; padding: 0 10px">     initializing = false;
</span><span class="cx" style="display: block; padding: 0 10px">     if (prop.Mixins) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$24(prop.Mixins, function (mixin) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$23(prop.Mixins, function (mixin) {
</ins><span class="cx" style="display: block; padding: 0 10px">         for (var name_1 in mixin) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (name_1 !== 'init') {
</span><span class="cx" style="display: block; padding: 0 10px">             prop[name_1] = mixin[name_1];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26119,12 +26316,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (prop.Methods) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$24(prop.Methods.split(','), function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$23(prop.Methods.split(','), function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">         prop[name] = dummy;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (prop.Properties) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$24(prop.Properties.split(','), function (name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$23(prop.Properties.split(','), function (name) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var fieldName = '_' + name;
</span><span class="cx" style="display: block; padding: 0 10px">         prop[name] = function (value) {
</span><span class="cx" style="display: block; padding: 0 10px">           var self = this;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26137,7 +26334,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     if (prop.Statics) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      each$24(prop.Statics, function (func, name) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each$23(prop.Statics, function (func, name) {
</ins><span class="cx" style="display: block; padding: 0 10px">         Class[name] = func;
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26341,7 +26538,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     return '' + o;
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_43kb9b7mjfuw8mkq = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_28aphl86jjgwe953 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     serialize: serialize,
</span><span class="cx" style="display: block; padding: 0 10px">     parse: function (text) {
</span><span class="cx" style="display: block; padding: 0 10px">       try {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26351,7 +26548,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var $_10akm7njfuw8mks = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var $_cmhhqy87jjgwe955 = {
</ins><span class="cx" style="display: block; padding: 0 10px">     callbacks: {},
</span><span class="cx" style="display: block; padding: 0 10px">     count: 0,
</span><span class="cx" style="display: block; padding: 0 10px">     send: function (settings) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26405,7 +26602,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           xhr.setRequestHeader('Content-Type', settings.content_type);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (settings.requestheaders) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          $_52qop8kjfuw8l6v.each(settings.requestheaders, function (header) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          $_6cwiepljjgwe7j4.each(settings.requestheaders, function (header) {
</ins><span class="cx" style="display: block; padding: 0 10px">             xhr.setRequestHeader(header.key, header.value);
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26422,9 +26619,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  $_52qop8kjfuw8l6v.extend(XHR, $_17qpde45jfuw8lze);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  $_6cwiepljjgwe7j4.extend(XHR, $_5fwo104qjjgwe8hz);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var extend$7 = $_52qop8kjfuw8l6v.extend;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var extend$7 = $_6cwiepljjgwe7j4.extend;
</ins><span class="cx" style="display: block; padding: 0 10px">   var JSONRequest = function (settings) {
</span><span class="cx" style="display: block; padding: 0 10px">     this.settings = extend$7({}, settings);
</span><span class="cx" style="display: block; padding: 0 10px">     this.count = 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26437,7 +26634,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var ecb = args.error, scb = args.success;
</span><span class="cx" style="display: block; padding: 0 10px">       args = extend$7(this.settings, args);
</span><span class="cx" style="display: block; padding: 0 10px">       args.success = function (c, x) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        c = $_43kb9b7mjfuw8mkq.parse(c);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        c = $_28aphl86jjgwe953.parse(c);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (typeof c === 'undefined') {
</span><span class="cx" style="display: block; padding: 0 10px">           c = { error: 'JSON Parse error.' };
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26452,7 +26649,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           ecb.call(args.error_scope || args.scope, ty, x);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      args.data = $_43kb9b7mjfuw8mkq.serialize({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      args.data = $_28aphl86jjgwe953.serialize({
</ins><span class="cx" style="display: block; padding: 0 10px">         id: args.id || 'c' + this.count++,
</span><span class="cx" style="display: block; padding: 0 10px">         method: args.method,
</span><span class="cx" style="display: block; padding: 0 10px">         params: args.params
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26462,26 +26659,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">   };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  var localStorage = window.localStorage;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  var localStorage$$1 = window.localStorage;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var tinymce = EditorManager$1;
</span><span class="cx" style="display: block; padding: 0 10px">   var publicApi = {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    geom: { Rect: $_nkvpl7ijfuw8mkc },
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    geom: { Rect: $_5hxmix82jjgwe94o },
</ins><span class="cx" style="display: block; padding: 0 10px">     util: {
</span><span class="cx" style="display: block; padding: 0 10px">       Promise: promiseObj,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Delay: $_2m8wq9hjfuw8l41,
-      Tools: $_52qop8kjfuw8l6v,
-      VK: $_1nvqmv5ajfuw8m5j,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Delay: $_9o1ijaijjgwe7dm,
+      Tools: $_6cwiepljjgwe7j4,
+      VK: $_9udk9k5wjjgwe8on,
</ins><span class="cx" style="display: block; padding: 0 10px">       URI: URI,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Class: Class,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Class: Class$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       EventDispatcher: Dispatcher,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Observable: $_17qpde45jfuw8lze,
-      I18n: $_ai97we7gjfuw8mjv,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Observable: $_5fwo104qjjgwe8hz,
+      I18n: $_65s8hc80jjgwe94e,
</ins><span class="cx" style="display: block; padding: 0 10px">       XHR: XHR,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      JSON: $_43kb9b7mjfuw8mkq,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      JSON: $_28aphl86jjgwe953,
</ins><span class="cx" style="display: block; padding: 0 10px">       JSONRequest: JSONRequest,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      JSONP: $_10akm7njfuw8mks,
-      LocalStorage: localStorage,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      JSONP: $_cmhhqy87jjgwe955,
+      LocalStorage: localStorage$$1,
</ins><span class="cx" style="display: block; padding: 0 10px">       Color: Color
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     dom: {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26500,7 +26697,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><span class="cx" style="display: block; padding: 0 10px">     html: {
</span><span class="cx" style="display: block; padding: 0 10px">       Styles: Styles,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      Entities: $_8uzsfe1rjfuw8ldm,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      Entities: $_6pqr9q1sjjgwe7qj,
</ins><span class="cx" style="display: block; padding: 0 10px">       Node: Node$2,
</span><span class="cx" style="display: block; padding: 0 10px">       Schema: Schema,
</span><span class="cx" style="display: block; padding: 0 10px">       SaxParser: SaxParser$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26508,9 +26705,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">       Writer: Writer,
</span><span class="cx" style="display: block; padding: 0 10px">       Serializer: HtmlSerializer
</span><span class="cx" style="display: block; padding: 0 10px">     },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    ui: { Factory: $_81mtl67jjfuw8mkg },
-    Env: $_9fhi43ajfuw8l13,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    ui: { Factory: $_9yg02e83jjgwe94t },
+    Env: $_bcvfv9ajjgwe79v,
</ins><span class="cx" style="display: block; padding: 0 10px">     AddOnManager: AddOnManager,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    Annotator: Annotator,
</ins><span class="cx" style="display: block; padding: 0 10px">     Formatter: Formatter,
</span><span class="cx" style="display: block; padding: 0 10px">     UndoManager: UndoManager,
</span><span class="cx" style="display: block; padding: 0 10px">     EditorCommands: EditorCommands,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26519,35 +26717,35 @@
</span><span class="cx" style="display: block; padding: 0 10px">     EditorObservable: EditorObservable$1,
</span><span class="cx" style="display: block; padding: 0 10px">     Shortcuts: Shortcuts,
</span><span class="cx" style="display: block; padding: 0 10px">     Editor: Editor,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    FocusManager: $_du4u8r7ejfuw8mjp,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    FocusManager: $_264dtu7yjjgwe947,
</ins><span class="cx" style="display: block; padding: 0 10px">     EditorManager: EditorManager$1,
</span><span class="cx" style="display: block; padding: 0 10px">     DOM: DOMUtils$1.DOM,
</span><span class="cx" style="display: block; padding: 0 10px">     ScriptLoader: ScriptLoader.ScriptLoader,
</span><span class="cx" style="display: block; padding: 0 10px">     PluginManager: AddOnManager.PluginManager,
</span><span class="cx" style="display: block; padding: 0 10px">     ThemeManager: AddOnManager.ThemeManager,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    trim: $_52qop8kjfuw8l6v.trim,
-    isArray: $_52qop8kjfuw8l6v.isArray,
-    is: $_52qop8kjfuw8l6v.is,
-    toArray: $_52qop8kjfuw8l6v.toArray,
-    makeMap: $_52qop8kjfuw8l6v.makeMap,
-    each: $_52qop8kjfuw8l6v.each,
-    map: $_52qop8kjfuw8l6v.map,
-    grep: $_52qop8kjfuw8l6v.grep,
-    inArray: $_52qop8kjfuw8l6v.inArray,
-    extend: $_52qop8kjfuw8l6v.extend,
-    create: $_52qop8kjfuw8l6v.create,
-    walk: $_52qop8kjfuw8l6v.walk,
-    createNS: $_52qop8kjfuw8l6v.createNS,
-    resolve: $_52qop8kjfuw8l6v.resolve,
-    explode: $_52qop8kjfuw8l6v.explode,
-    _addCacheSuffix: $_52qop8kjfuw8l6v._addCacheSuffix,
-    isOpera: $_9fhi43ajfuw8l13.opera,
-    isWebKit: $_9fhi43ajfuw8l13.webkit,
-    isIE: $_9fhi43ajfuw8l13.ie,
-    isGecko: $_9fhi43ajfuw8l13.gecko,
-    isMac: $_9fhi43ajfuw8l13.mac
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    trim: $_6cwiepljjgwe7j4.trim,
+    isArray: $_6cwiepljjgwe7j4.isArray,
+    is: $_6cwiepljjgwe7j4.is,
+    toArray: $_6cwiepljjgwe7j4.toArray,
+    makeMap: $_6cwiepljjgwe7j4.makeMap,
+    each: $_6cwiepljjgwe7j4.each,
+    map: $_6cwiepljjgwe7j4.map,
+    grep: $_6cwiepljjgwe7j4.grep,
+    inArray: $_6cwiepljjgwe7j4.inArray,
+    extend: $_6cwiepljjgwe7j4.extend,
+    create: $_6cwiepljjgwe7j4.create,
+    walk: $_6cwiepljjgwe7j4.walk,
+    createNS: $_6cwiepljjgwe7j4.createNS,
+    resolve: $_6cwiepljjgwe7j4.resolve,
+    explode: $_6cwiepljjgwe7j4.explode,
+    _addCacheSuffix: $_6cwiepljjgwe7j4._addCacheSuffix,
+    isOpera: $_bcvfv9ajjgwe79v.opera,
+    isWebKit: $_bcvfv9ajjgwe79v.webkit,
+    isIE: $_bcvfv9ajjgwe79v.ie,
+    isGecko: $_bcvfv9ajjgwe79v.gecko,
+    isMac: $_bcvfv9ajjgwe79v.mac
</ins><span class="cx" style="display: block; padding: 0 10px">   };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  tinymce = $_52qop8kjfuw8l6v.extend(tinymce, publicApi);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  tinymce = $_6cwiepljjgwe7j4.extend(tinymce, publicApi);
</ins><span class="cx" style="display: block; padding: 0 10px">   var Tinymce = tinymce;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">   var exportToModuleLoaders = function (tinymce) {
</span></span></pre></div>
<a id="trunksrcjs_enqueuesvendortinymcetinymceminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/vendor/tinymce/tinymce.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/vendor/tinymce/tinymce.min.js      2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/js/_enqueues/vendor/tinymce/tinymce.min.js        2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,2 +1,2 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-// 4.7.11 (2018-04-11)
-!function(){"use strict";var e,t,n,r,o,i,a,u,s,c,l,f,d,m,p,g,h,v=function(e){return function(){return e}},V={noop:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},noarg:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n()}},compose:function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,arguments))}},constant:v,identity:function(e){return e},tripleEquals:function(e,t){return e===t},curry:function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var a=new Array(arguments.length-1),n=1;n<arguments.length;n++)a[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var o=a.concat(n);return i.apply(null,o)}},not:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];retu
 rn!n.apply(null,arguments)}},die:function(e){return function(){throw new Error(e)}},apply:function(e){return e()},call:function(e){e()},never:v(!1),always:v(!0)},y=V.never,b=V.always,C=function(){return x},x=(r={fold:function(e,t){return e()},is:y,isSome:y,isNone:b,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},or:n,orThunk:t,map:C,ap:C,each:function(){},bind:C,flatten:C,exists:y,forall:b,filter:C,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:V.constant("none()")},Object.freeze&&Object.freeze(r),r),w=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:b,isNone:y,getOr:e,getOrThunk:e,getOrDie:e,or:t,orThunk:t,map:function(e){return w(e(n))},ap:function(e){return e.fold(C,function(e){return w(e(n))})},each:function(
 e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:x},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(y,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},A={some:w,none:C,from:function(e){return null===e||e===undefined?x:w(e)}},N=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},E={isString:N("string"),isObject:N("object"),isArray:N("array"),isNull:N("null"),isBoolean:N("boolean"),isUndefined:N("undefined"),isFunction:N("function"),isNumber:N("number")},S=(o=Array.prototype.indexOf)===undefined?function(e,t){return O(e,t)}:function(e,t){return o
 .call(e,t)},k=function(e,t){return-1<S(e,t)},T=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var i=e[o];r[o]=t(i,o,e)}return r},R=function(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)},B=function(e,t){for(var n=e.length-1;0<=n;n--)t(e[n],n,e)},_=function(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r];t(i,r,e)&&n.push(i)}return n},D=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t(e[n],n,e))return A.some(n);return A.none()},O=function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},P=Array.prototype.push,L=function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);P.apply(t,e[n])}return t},I=function(e,t){for(var n=0,r=e.length;n<r;++n)if(!0!==t(e[n],n,e))return!1;return!0},M=Array.prototype.slice,F=E.isFunction(Array.from)?Array.from:function(e){return M.call(e)},H={map:T,each:R,eachr:B,
 partition:function(e,t){for(var n=[],r=[],o=0,i=e.length;o<i;o++){var a=e[o];(t(a,o,e)?n:r).push(a)}return{pass:n,fail:r}},filter:_,groupBy:function(e,t){if(0===e.length)return[];for(var n=t(e[0]),r=[],o=[],i=0,a=e.length;i<a;i++){var u=e[i],s=t(u);s!==n&&(r.push(o),o=[]),n=s,o.push(u)}return 0!==o.length&&r.push(o),r},indexOf:function(e,t){var n=S(e,t);return-1===n?A.none():A.some(n)},foldr:function(e,t,n){return B(e,function(e){n=t(n,e)}),n},foldl:function(e,t,n){return R(e,function(e){n=t(n,e)}),n},find:function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n,e))return A.some(o)}return A.none()},findIndex:D,flatten:L,bind:function(e,t){var n=T(e,t);return L(n)},forall:I,exists:function(e,t){return D(e,t).isSome()},contains:k,equal:function(e,n){return e.length===n.length&&I(e,function(e,t){return e===n[t]})},reverse:function(e){var t=M.call(e,0);return t.reverse(),t},chunk:function(e,t){for(var n=[],r=0;r<e.length;r+=t){var o=e.slice(r
 ,r+t);n.push(o)}return n},difference:function(e,t){return _(e,function(e){return!k(t,e)})},mapToObject:function(e,t){for(var n={},r=0,o=e.length;r<o;r++){var i=e[r];n[String(i)]=t(i,r)}return n},pure:function(e){return[e]},sort:function(e,t){var n=M.call(e,0);return n.sort(t),n},range:function(e,t){for(var n=[],r=0;r<e;r++)n.push(t(r));return n},head:function(e){return 0===e.length?A.none():A.some(e[0])},last:function(e){return 0===e.length?A.none():A.some(e[e.length-1])},from:F},z="undefined"!=typeof window?window:Function("return this;")(),U=function(e,t){for(var n=t!==undefined&&null!==t?t:z,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n},q=function(e,t){var n=e.split(".");return U(n,t)},j={getOrDie:function(e,t){var n=q(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n}},$=function(){return j.getOrDie("URL")},W={createObjectURL:function(e){return $()
 .createObjectURL(e)},revokeObjectURL:function(e){$().revokeObjectURL(e)}},K=navigator,X=K.userAgent,Y=function(e){return"matchMedia"in window&&matchMedia(e).matches};d=/Android/.test(X),a=(a=!(i=/WebKit/.test(X))&&/MSIE/gi.test(X)&&/Explorer/gi.test(K.appName))&&/MSIE (\w+)\./.exec(X)[1],u=-1!==X.indexOf("Trident/")&&(-1!==X.indexOf("rv:")||-1!==K.appName.indexOf("Netscape"))&&11,s=-1!==X.indexOf("Edge/")&&!a&&!u&&12,a=a||u||s,c=!i&&!u&&/Gecko/.test(X),l=-1!==X.indexOf("Mac"),f=/(iPad|iPhone)/.test(X),m="FormData"in window&&"FileReader"in window&&"URL"in window&&!!W.createObjectURL,p=Y("only screen and (max-device-width: 480px)")&&(d||f),g=Y("only screen and (min-width: 800px)")&&(d||f),h=-1!==X.indexOf("Windows Phone"),s&&(i=!1);v
 ar G,J,Q,Z,ee,te,ne,re,oe,ie,ae,ue,se,ce,le,fe,de,me,pe,ge={opera:!1,webkit:i,ie:a,gecko:c,mac:l,iOS:f,android:d,contentEditable:!f||m||534<=parseInt(X.match(/AppleWebKit\/(\d*)/)[1],10),transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!==a,range:window.getSelection&&"Range"in window,documentMode:a&&!s?document.documentMode||7:10,fileApi:m,ceFalse:!1===a||8<a,cacheSuffix:null,container:null,overrideViewPort:null,experimentalShadowDom:!1,canHaveCSP:!1===a||11<a,desktop:!p&&!g,windowsPhone:h},he=window.Promise?window.Promise:function(){function r(e,t){return function(){e.apply(t,arguments)}}var e=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=function(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a f
 unction");this._state=null,this._value=null,this._deferreds=[],l(e,r(o,this),r(u,this))},t=i.immediateFn||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,1)};function a(r){var o=this;null!==this._state?t(function(){var e=o._state?r.onFulfilled:r.onRejected;if(null!==e){var t;try{t=e(o._value)}catch(n){return void r.reject(n)}r.resolve(t)}else(o._state?r.resolve:r.reject)(o._value)}):this._deferreds.push(r)}function o(e){try{if(e===this)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if("function"==typeof t)return void l(r(t,e),r(o,this),r(u,this))}this._state=!0,this._value=e,s.call(this)}catch(n){u.call(this,n)}}function u(e){this._state=!1,this._value=e,s.call(this)}function s(){for(var e=0,t=this._deferreds.length;e<t;e++)a.call(this,this._deferreds[e]);this._deferreds=null}function c(e,t,n,r){this.onFulf
 illed="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=r}function l(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(o){if(r)return;r=!0,n(o)}}return i.prototype["catch"]=function(e){return this.then(null,e)},i.prototype.then=function(n,r){var o=this;return new i(function(e,t){a.call(o,new c(n,r,e,t))})},i.all=function(){var s=Array.prototype.slice.call(1===arguments.length&&e(arguments[0])?arguments[0]:arguments);return new i(function(o,i){if(0===s.length)return o([]);var a=s.length;function u(t,e){try{if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if("function"==typeof n)return void n.call(e,function(e){u(t,e)},i)}s[t]=e,0==--a&&o(s)}catch(r){i(r)}}for(var e=0;e<s.length;e++)u(e,s[e])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(funct
 ion(e){e(t)})},i.reject=function(n){return new i(function(e,t){t(n)})},i.race=function(o){return new i(function(e,t){for(var n=0,r=o.length;n<r;n++)o[n].then(e,t)})},i}(),ve=function(e,t){return"number"!=typeof t&&(t=0),setTimeout(e,t)},ye=function(e,t){return"number"!=typeof t&&(t=1),setInterval(e,t)},be=function(t,n){var r,e;return(e=function(){var e=arguments;clearTimeout(r),r=ve(function(){t.apply(this,e)},n)}).stop=function(){clearTimeout(r)},e},Ce={requestAnimationFrame:function(e,t){G?G.then(e):G=new he(function(e){t||(t=document.body),function(e,t){var n,r=window.requestAnimationFrame,o=["ms","moz","webkit"];for(n=0;n<o.length&&!r;n++)r=window[o[n]+"RequestAnimationFrame"];r||(r=function(e){window.setTimeout(e,0)}),r(e,t)}(e,t)}).then(e)},setTimeout:ve,setInterval:ye,setEditorTimeout:function(e,t,n){return ve(function(){e.removed||t()},n)},setEditorInterval:function(e,t,n){var r;return 
 r=ye(function(){e.removed?clearInterval(r):t()},n)},debounce:be,throttle:be,clearInterval:function(e){return clearInterval(e)},clearTimeout:function(e){return clearTimeout(e)}},xe=/^(?:mouse|contextmenu)|click/,we={keyLocation:1,layerX:1,layerY:1,returnValue:1,webkitMovementX:1,webkitMovementY:1,keyIdentifier:1},Ne=function(){return!1},Ee=function(){return!0},Se=function(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)},ke=function(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)},Te=function(e,t){var n,r,o,i,a,u,s=t||{};for(n in e)we[n]||(s[n]=e[n]);if(s.target||(s.target=s.srcElement||document),ge.experimentalShadowDom&&(s.target=(r=e,o=s.target,a=o,(i=r.path)&&0<i.length&&(a=i[0]),r.composedPath&&(i=r.composedPath())&&0<i.length&&(a=i[0]),a)),e&&xe.test(e.type)&&e.pageX===und
 efined&&e.clientX!==undefined){var c=s.target.ownerDocument||document,l=c.documentElement,f=c.body;s.pageX=e.clientX+(l&&l.scrollLeft||f&&f.scrollLeft||0)-(l&&l.clientLeft||f&&f.clientLeft||0),s.pageY=e.clientY+(l&&l.scrollTop||f&&f.scrollTop||0)-(l&&l.clientTop||f&&f.clientTop||0)}return s.preventDefault=function(){s.isDefaultPrevented=Ee,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},s.stopPropagation=function(){s.isPropagationStopped=Ee,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},!(s.stopImmediatePropagation=function(){s.isImmediatePropagationStopped=Ee,s.stopPropagation()})==((u=s).isDefaultPrevented===Ee||u.isDefaultPrevented===Ne)&&(s.isDefaultPrevented=Ne,s.isPropagationStopped=Ne,s.isImmediatePropagationStopped=Ne),"undefined"==typeof s.metaKey&&(s.metaKey=!1),s},Ae=function(e,t,n){var r=e.document,o={type:"ready"};if(n.dom
 Loaded)t(o);else{var i=function(){return"complete"===r.readyState||"interactive"===r.readyState&&r.body},a=function(){n.domLoaded||(n.domLoaded=!0,t(o))},u=function(){i()&&(ke(r,"readystatechange",u),a())},s=function(){try{r.documentElement.doScroll("left")}catch(e){return void Ce.setTimeout(s)}a()};!r.addEventListener||ge.ie&&ge.ie<11?(Se(r,"readystatechange",u),r.documentElement.doScroll&&e.self===e.top&&s()):i()?a():Se(e,"DOMContentLoaded",a),Se(e,"load",a)}},Re=function(){var m,p,g,h,v,y=this,b={};p="mce-data-"+(+new Date).toString(32),h="onmouseenter"in document.documentElement,g="onfocusin"in document.documentElement,v={mouseenter:"mouseover",mouseleave:"mouseout"},m=1,y.domLoaded=!1,y.events=b;var C=function(e,t){var n,r,o,i,a=b[t];if(n=a&&a[e.type])for(r=0,o=n.length;r<o;r++)if((i=n[r])&&!1===i.f
 unc.call(i.scope,e)&&e.preventDefault(),e.isImmediatePropagationStopped())return};y.bind=function(e,t,n,r){var o,i,a,u,s,c,l,f=window,d=function(e){C(Te(e||f.event),o)};if(e&&3!==e.nodeType&&8!==e.nodeType){for(e[p]?o=e[p]:(o=m++,e[p]=o,b[o]={}),r=r||e,a=(t=t.split(" ")).length;a--;)c=d,s=l=!1,"DOMContentLoaded"===(u=t[a])&&(u="ready"),y.domLoaded&&"ready"===u&&"complete"===e.readyState?n.call(r,Te({type:u})):(h||(s=v[u])&&(c=function(e){var t,n;if(t=e.currentTarget,(n=e.relatedTarget)&&t.contains)n=t.contains(n);else for(;n&&n!==t;)n=n.parentNode;n||((e=Te(e||f.event)).type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,C(e,o))}),g||"focusin"!==u&&"focusout"!==u||(l=!0,s="focusin"===u?"focus":"blur",c=function(e){(e=Te(e||f.event)).type="focus"===e.type?&q
 uot;focusin":"focusout",C(e,o)}),(i=b[o][u])?"ready"===u&&y.domLoaded?n({type:u}):i.push({func:n,scope:r}):(b[o][u]=i=[{func:n,scope:r}],i.fakeName=s,i.capture=l,i.nativeHandler=c,"ready"===u?Ae(e,c,y):Se(e,s||u,c,l)));return e=i=0,n}},y.unbind=function(e,t,n){var r,o,i,a,u,s;if(!e||3===e.nodeType||8===e.nodeType)return y;if(r=e[p]){if(s=b[r],t){for(i=(t=t.split(" ")).length;i--;)if(o=s[u=t[i]]){if(n)for(a=o.length;a--;)if(o[a].func===n){var c=o.nativeHandler,l=o.fakeName,f=o.capture;(o=o.slice(0,a).concat(o.slice(a+1))).nativeHandler=c,o.fakeName=l,o.capture=f,s[u]=o}n&&0!==o.length||(delete s[u],ke(e,o.fakeName||u,o.nativeHandler,o.capture))}}else{for(u in s)o=s[u],ke(e,o.fakeName||u,o.nativeHandler,o.capture);s={}}for(u in s)return y;delete b[r];try{delete e[p]}catch(d){e[p]=null}}return y},y.fire=function(e,t,n){var r;if(!e||3===e.nodeType||8===e.nodeType)return y;for((n=Te(null,n)).type=t,n.target=e;(r=e[p])&&
 C(n,r),(e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow)&&!n.isPropagationStopped(););return y},y.clean=function(e){var t,n,r=y.unbind;if(!e||3===e.nodeType||8===e.nodeType)return y;if(e[p]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),t=(n=e.getElementsByTagName("*")).length;t--;)(e=n[t])[p]&&r(e);return y},y.destroy=function(){b={}},y.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}};Re.Event=new Re,Re.Event.bind(window,"ready",function(){});var Be="sizzle"+-new Date,_e=window.document,De=0,Oe=0,Pe=mt(),Le=mt(),Ie=mt(),Me=function(e,t){return e===t&&(ue=!0),0},Fe=typeof undefined,ze=1<<31,Ue={}.hasOwnProperty,qe=[],Ve=qe.pop,He=qe.push,je=qe.push,$e=qe.slice,We=qe.indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(this[t]===e)return t;return-1},Ke="[\\x20\\t\\r\\n\\f]",Xe="(?:\\\\.|[\\w-]|[^\
 \x00-\\xa0])+",Ye="\\["+Ke+"*("+Xe+")(?:"+Ke+"*([*^$|!~]?=)"+Ke+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+Xe+"))|)"+Ke+"*\\]",Ge=":("+Xe+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+Ye+")*)|.*)\\)|)",Je=new RegExp("^"+Ke+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Ke+"+$","g"),Qe=new RegExp("^"+Ke+"*,"+Ke+"*"),Ze=new RegExp("^"+Ke+"*([>+~]|"+Ke+")"+Ke+"*"),et=new RegExp("="+Ke+"*([^\\]'\"]*?)"+Ke+"*\\]","g"),tt=new RegExp(Ge),nt=new RegExp("^"+Xe+"$"),rt={ID:new RegExp("^#("+Xe+")"),CLASS:new RegExp("^\\.("+Xe+")"),TAG:new RegExp("^("+Xe+"|[*])"),ATTR:new RegExp("^&q
 uot;+Ye),PSEUDO:new RegExp("^"+Ge),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+Ke+"*(even|odd|(([+-]|)(\\d*)n|)"+Ke+"*(?:([+-]|)"+Ke+"*(\\d+)|))"+Ke+"*\\)|)","i"),bool:new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:new RegExp("^"+Ke+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+Ke+"*((?:-\\d)?\\d*)"+Ke+"*\\)|)(?=[^-]|$)","i")},ot=/^(?:input|select|textarea|button)$/i,it=/^h\d$/i,at=/^[^{]+\{\s*\[native \w/,ut=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,st=/[+~]/,ct=/'|\\/g,lt=new RegExp("\\\\([\\da-f]{1,6}"+Ke+"?|("+Ke+")|.)","ig"),ft=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|5529
 6,1023&r|56320)};try{je.apply(qe=$e.call(_e.childNodes),_e.childNodes),qe[_e.childNodes.length].nodeType}catch(Zx){je={apply:qe.length?function(e,t){He.apply(e,$e.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}var dt=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m;if((t?t.ownerDocument||t:_e)!==ce&&se(t),n=n||[],!e||"string"!=typeof e)return n;if(1!==(u=(t=t||ce).nodeType)&&9!==u)return[];if(fe&&!r){if(o=ut.exec(e))if(a=o[1]){if(9===u){if(!(i=t.getElementById(a))||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&pe(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return je.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&Q.getElementsByClassName)return je.apply(n,t.getElementsByClassName(a)),n}if(Q.qsa&&(!de||!de.test(e))){if(f=l=Be,d=t,m=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()
 ){for(c=ne(e),(l=t.getAttribute("id"))?f=l.replace(ct,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",s=c.length;s--;)c[s]=f+xt(c[s]);d=st.test(e)&&bt(t.parentNode)||t,m=c.join(",")}if(m)try{return je.apply(n,d.querySelectorAll(m)),n}catch(p){}finally{l||t.removeAttribute("id")}}}return oe(e.replace(Je,"$1"),t,n,r)};function mt(){var r=[];return function e(t,n){return r.push(t+" ")>Z.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function pt(e){return e[Be]=!0,e}function gt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||ze)-(~e.sourceIndex||ze);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ht(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function vt(n){return function(e){var t=e.nodeName.toLowerCase();return("input"=
 ==t||"button"===t)&&e.type===n}}function yt(a){return pt(function(i){return i=+i,pt(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function bt(e){return e&&typeof e.getElementsByTagName!==Fe&&e}for(J in Q=dt.support={},te=dt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},se=dt.setDocument=function(e){var t,s=e?e.ownerDocument||e:_e,n=s.defaultView;return s!==ce&&9===s.nodeType&&s.documentElement?(le=(ce=s).documentElement,fe=!te(s),n&&n!==function(e){try{return e.top}catch(t){}return null}(n)&&(n.addEventListener?n.addEventListener("unload",function(){se()},!1):n.attachEvent&&n.attachEvent("onunload",function(){se()})),Q.attributes=!0,Q.getElementsByTagName=!0,Q.getElementsByClassName=at.test(s.getElementsByClassName),Q.getById=!0,Z.find.ID=function(e,t){if(typeo
 f t.getElementById!==Fe&&fe){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},Z.filter.ID=function(e){var t=e.replace(lt,ft);return function(e){return e.getAttribute("id")===t}},Z.find.TAG=Q.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==Fe)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},Z.find.CLASS=Q.getElementsByClassName&&function(e,t){if(fe)return t.getElementsByClassName(e)},me=[],de=[],Q.disconnectedMatch=!0,de=de.length&&new RegExp(de.join("|")),me=me.length&&new RegExp(me.join("|")),t=at.test(le.compareDocumentPosition),pe=t||at.test(le.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocum
 entPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},Me=t?function(e,t){if(e===t)return ue=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!Q.sortDetached&&t.compareDocumentPosition(e)===n?e===s||e.ownerDocument===_e&&pe(_e,e)?-1:t===s||t.ownerDocument===_e&&pe(_e,t)?1:ae?We.call(ae,e)-We.call(ae,t):0:4&n?-1:1)}:function(e,t){if(e===t)return ue=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],u=[t];if(!o||!i)return e===s?-1:t===s?1:o?-1:i?1:ae?We.call(ae,e)-We.call(ae,t):0;if(o===i)return gt(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?gt(a[r],u[r]):a[r]===_e?-1:u[r]===_e?1:0},s):ce},dt.matches=function(e,t){return dt(e,null,null,t)},dt.matchesSelector=function(e,t){if((e.ownerDocument||e)!==ce&&se(e),t=t.replace(et,"='$1']"),Q
 .matchesSelector&&fe&&(!me||!me.test(t))&&(!de||!de.test(t)))try{var n=(void 0).call(e,t);if(n||Q.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(Zx){}return 0<dt(t,ce,null,[e]).length},dt.contains=function(e,t){return(e.ownerDocument||e)!==ce&&se(e),pe(e,t)},dt.attr=function(e,t){(e.ownerDocument||e)!==ce&&se(e);var n=Z.attrHandle[t.toLowerCase()],r=n&&Ue.call(Z.attrHandle,t.toLowerCase())?n(e,t,!fe):undefined;return r!==undefined?r:Q.attributes||!fe?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},dt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},dt.uniqueSort=function(e){var t,n=[],r=0,o=0;if(ue=!Q.detectDuplicates,ae=!Q.sortStable&&e.slice(0),e.sort(Me),ue){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return ae=null,e},ee=dt.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if
 (1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=ee(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=ee(t);return n},(Z=dt.selectors={cacheLength:50,createPseudo:pt,match:rt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(lt,ft),e[3]=(e[3]||e[4]||e[5]||"").replace(lt,ft),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||dt.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&dt.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&
 amp;&e[2];return rt.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&tt.test(n)&&(t=ne(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(lt,ft).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=Pe[e+" "];return t||(t=new RegExp("(^|"+Ke+")"+e+"("+Ke+"|$)"))&&Pe(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Fe&&e.getAttribute("class")||"")})},ATTR:function(n,r,o){return function(e){var t=dt.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===o:"!="===r?t!==o:"^="===r?o&&0===t.indexOf(o):"*="===r?o&&-1&l
 t;t.indexOf(o):"$="===r?o&&t.slice(-o.length)===o:"~="===r?-1<(" "+t+" ").indexOf(o):"|="===r&&(t===o||t.slice(0,o.length+1)===o+"-"))}},CHILD:function(m,e,t,p,g){var h="nth"!==m.slice(0,3),v="last"!==m.slice(-4),y="of-type"===e;return 1===p&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,o,i,a,u,s,c=h!==v?"nextSibling":"previousSibling",l=e.parentNode,f=y&&e.nodeName.toLowerCase(),d=!n&&!y;if(l){if(h){for(;c;){for(i=e;i=i[c];)if(y?i.nodeName.toLowerCase()===f:1===i.nodeType)return!1;s=c="only"===m&&!s&&"nextSibling"}return!0}if(s=[v?l.firstChild:l.lastChild],v&&d){for(u=(r=(o=l[Be]||(l[Be]={}))[m]||[])[0]===De&&r[1],a=r[0]===De&&r[2],i=u&&l.childNodes[u];i=++u&&i&&i[c]||(a=u=0)||s.pop();)if(1===i.nodeType&&++a&&i===e){
 o[m]=[De,u,a];break}}else if(d&&(r=(e[Be]||(e[Be]={}))[m])&&r[0]===De)a=r[1];else for(;(i=++u&&i&&i[c]||(a=u=0)||s.pop())&&((y?i.nodeName.toLowerCase()!==f:1!==i.nodeType)||!++a||(d&&((i[Be]||(i[Be]={}))[m]=[De,a]),i!==e)););return(a-=g)===p||a%p==0&&0<=a/p}}},PSEUDO:function(e,i){var t,a=Z.pseudos[e]||Z.setFilters[e.toLowerCase()]||dt.error("unsupported pseudo: "+e);return a[Be]?a(i):1<a.length?(t=[e,e,"",i],Z.setFilters.hasOwnProperty(e.toLowerCase())?pt(function(e,t){for(var n,r=a(e,i),o=r.length;o--;)e[n=We.call(e,r[o])]=!(t[n]=r[o])}):function(e){return a(e,0,t)}):a}},pseudos:{not:pt(function(e){var r=[],o=[],u=re(e.replace(Je,"$1"));return u[Be]?pt(function(e,t,n,r){for(var o,i=u(e,null,r,[]),a=e.length;a--;)(o=i[a])&&(e[a]=!(t[a]=o))}):function(e,t,n){return r[0]=e,u(r,null,n,o),!o.pop()}}),has:pt(function(t){return function(e){return 0<dt(t,e).length}}),contains:pt(function
 (t){return t=t.replace(lt,ft),function(e){return-1<(e.textContent||e.innerText||ee(e)).indexOf(t)}}),lang:pt(function(n){return nt.test(n||"")||dt.error("unsupported lang: "+n),n=n.replace(lt,ft).toLowerCase(),function(e){var t;do{if(t=fe?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===le},focus:function(e){return e===ce.activeElement&&(!ce.hasFocus||ce.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.pare
 ntNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!Z.pseudos.empty(e)},header:function(e){return it.test(e.nodeName)},input:function(e){return ot.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:yt(function(){return[0]}),last:yt(function(e,t){return[t-1]}),eq:yt(function(e,t,n){return[n<0?n+t:n]}),even:yt(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:yt(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:yt(function(e,t,n){for(var r=n<0?n+t:n;0<=--r;)e.push(r);return e}),gt:yt(function(e,t,n){for(var r=n<0?n+t
 :n;++r<t;)e.push(r);return e})}}).pseudos.nth=Z.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})Z.pseudos[J]=ht(J);for(J in{submit:!0,reset:!0})Z.pseudos[J]=vt(J);function Ct(){}function xt(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function wt(a,e,t){var u=e.dir,s=t&&"parentNode"===u,c=Oe++;return e.first?function(e,t,n){for(;e=e[u];)if(1===e.nodeType||s)return a(e,t,n)}:function(e,t,n){var r,o,i=[De,c];if(n){for(;e=e[u];)if((1===e.nodeType||s)&&a(e,t,n))return!0}else for(;e=e[u];)if(1===e.nodeType||s){if((r=(o=e[Be]||(e[Be]={}))[u])&&r[0]===De&&r[1]===c)return i[2]=r[2];if((o[u]=i)[2]=a(e,t,n))return!0}}}function Nt(o){return 1<o.length?function(e,t,n){for(var r=o.length;r--;)if(!o[r](e,t,n))return!1;return!0}:o[0]}function Et(e,t,n,r,o){for(var i,a=[],u=0,s=e.length,c=null!=t;u<s;u++)(i=e[u])&&(n&&!n(i,r,o)||(a.push(i),c&&t.push(u)));return a}function St(m,p,g
 ,h,v,e){return h&&!h[Be]&&(h=St(h)),v&&!v[Be]&&(v=St(v,e)),pt(function(e,t,n,r){var o,i,a,u=[],s=[],c=t.length,l=e||function(e,t,n){for(var r=0,o=t.length;r<o;r++)dt(e,t[r],n);return n}(p||"*",n.nodeType?[n]:n,[]),f=!m||!e&&p?l:Et(l,u,m,n,r),d=g?v||(e?m:c||h)?[]:t:f;if(g&&g(f,d,n,r),h)for(o=Et(d,s),h(o,[],n,r),i=o.length;i--;)(a=o[i])&&(d[s[i]]=!(f[s[i]]=a));if(e){if(v||m){if(v){for(o=[],i=d.length;i--;)(a=d[i])&&o.push(f[i]=a);v(null,d=[],o,r)}for(i=d.length;i--;)(a=d[i])&&-1<(o=v?We.call(e,a):u[i])&&(e[o]=!(t[o]=a))}}else d=Et(d===t?d.splice(c,d.length):d),v?v(null,t,d,r):je.apply(t,d)})}function kt(e){for(var r,t,n,o=e.length,i=Z.relative[e[0].type],a=i||Z.relative[" "],u=i?1:0,s=wt(function(e){return e===r},a,!0),c=wt(function(e){return-1<We.call(r,e)},a,!0),l=[function(e,t,n){return!i&&(n||t!==ie)||((r=t).nodeType?s(e,t,n):c(e,t,n))}];u<o;u++)if(t=Z.relative[e
 [u].type])l=[wt(Nt(l),t)];else{if((t=Z.filter[e[u].type].apply(null,e[u].matches))[Be]){for(n=++u;n<o&&!Z.relative[e[n].type];n++);return St(1<u&&Nt(l),1<u&&xt(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(Je,"$1"),t,u<n&&kt(e.slice(u,n)),n<o&&kt(e=e.slice(n)),n<o&&xt(e))}l.push(t)}return Nt(l)}Ct.prototype=Z.filters=Z.pseudos,Z.setFilters=new Ct,ne=dt.tokenize=function(e,t){var n,r,o,i,a,u,s,c=Le[e+" "];if(c)return t?0:c.slice(0);for(a=e,u=[],s=Z.preFilter;a;){for(i in n&&!(r=Qe.exec(a))||(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=Ze.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(Je," ")}),a=a.slice(n.length)),Z.filter)!(r=rt[i].exec(a))||s[i]&&!(r=s[i](r))||(n=r.shift(),o.push({value:n,type:i,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?dt.error(e):Le(e,u).slice(0)},
 re=dt.compile=function(e,t){var n,h,v,y,b,r,o=[],i=[],a=Ie[e+" "];if(!a){for(t||(t=ne(e)),n=t.length;n--;)(a=kt(t[n]))[Be]?o.push(a):i.push(a);(a=Ie(e,(h=i,y=0<(v=o).length,b=0<h.length,r=function(e,t,n,r,o){var i,a,u,s=0,c="0",l=e&&[],f=[],d=ie,m=e||b&&Z.find.TAG("*",o),p=De+=null==d?1:Math.random()||.1,g=m.length;for(o&&(ie=t!==ce&&t);c!==g&&null!=(i=m[c]);c++){if(b&&i){for(a=0;u=h[a++];)if(u(i,t,n)){r.push(i);break}o&&(De=p)}y&&((i=!u&&i)&&s--,e&&l.push(i))}if(s+=c,y&&c!==s){for(a=0;u=v[a++];)u(l,f,t,n);if(e){if(0<s)for(;c--;)l[c]||f[c]||(f[c]=Ve.call(r));f=Et(f)}je.apply(r,f),o&&!e&&0<f.length&&1<s+v.length&&dt.uniqueSort(r)}return o&&(De=p,ie=d),l},y?pt(r):r))).selector=e}return a},oe=dt.select=function(e,t,n,r){var o,i,a,u,s,c="function"==typeof e&&e,l=!r&&ne(e=c.selector||
 e);if(n=n||[],1===l.length){if(2<(i=l[0]=l[0].slice(0)).length&&"ID"===(a=i[0]).type&&Q.getById&&9===t.nodeType&&fe&&Z.relative[i[1].type]){if(!(t=(Z.find.ID(a.matches[0].replace(lt,ft),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=rt.needsContext.test(e)?0:i.length;o--&&(a=i[o],!Z.relative[u=a.type]);)if((s=Z.find[u])&&(r=s(a.matches[0].replace(lt,ft),st.test(i[0].type)&&bt(t.parentNode)||t))){if(i.splice(o,1),!(e=r.length&&xt(i)))return je.apply(n,r),n;break}}return(c||re(e,l))(r,t,!fe,n,st.test(e)&&bt(t.parentNode)||t),n},Q.sortStable=Be.split("").sort(Me).join("")===Be,Q.detectDuplicates=!!ue,se(),Q.sortDetached=!0;var Tt=Array.isArray,At=function(e,t,n){var r,o;if(!e)return 0;if(n=n||e,e.length!==undefined){for(r=0,o=e.length;r<o;r++)if(!1===t.call(n,e[r],r,e))return 0}else for(r in e)if(e.hasOwnProperty(r)&&!1===
 t.call(n,e[r],r,e))return 0;return 1},Rt=function(e,t,n){var r,o;for(r=0,o=e.length;r<o;r++)if(t.call(n,e[r],r,e))return r;return-1},Bt={isArray:Tt,toArray:function(e){var t,n,r=e;if(!Tt(e))for(r=[],t=0,n=e.length;t<n;t++)r[t]=e[t];return r},each:At,map:function(n,r){var o=[];return At(n,function(e,t){o.push(r(e,t,n))}),o},filter:function(n,r){var o=[];return At(n,function(e,t){r&&!r(e,t,n)||o.push(e)}),o},indexOf:function(e,t){var n,r;if(e)for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},reduce:function(e,t,n,r){var o=0;for(arguments.length<3&&(n=e[0]);o<e.length;o++)n=t.call(r,n,e[o],o);return n},findIndex:Rt,find:function(e,t,n){var r=Rt(e,t,n);return-1!==r?e[r]:undefined},last:function(e){return e[e.length-1]}},_t=/^\s*|\s*$/g,Dt=function(e){return null===e||e===undefined?"":(""+e).replace(_t,"")},Ot=function(e,t){return t?!("array"!==t||!Bt.isArray(e))||typeof e===t:e!==undefined},Pt=function(e,n,r,
 o){o=o||this,e&&(r&&(e=e[r]),Bt.each(e,function(e,t){if(!1===n.call(o,e,t,r))return!1;Pt(e,n,r,o)}))},Lt={trim:Dt,isArray:Bt.isArray,is:Ot,toArray:Bt.toArray,makeMap:function(e,t,n){var r;for(t=t||",","string"==typeof(e=e||[])&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n},each:Bt.each,map:Bt.map,grep:Bt.filter,inArray:Bt.indexOf,hasOwn:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},extend:function(e,t){for(var n,r,o,i=[],a=2;a<arguments.length;a++)i[a-2]=arguments[a];var u,s=arguments;for(n=1,r=s.length;n<r;n++)for(o in t=s[n])t.hasOwnProperty(o)&&(u=t[o])!==undefined&&(e[o]=u);return e},create:function(e,t,n){var r,o,i,a,u,s=this,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),i=e[3].match(/(^|\.)(\w+)$/i)[2],!(o=s.createNS(e[3].replace(/\.\w+$/,""),n))[i]){if("static"===e[2])return o[i]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[i]));t[i]||(t[i]=f
 unction(){},c=1),o[i]=t[i],s.extend(o[i].prototype,t),e[5]&&(r=s.resolve(e[5]).prototype,a=e[5].match(/\.(\w+)$/i)[1],u=o[i],o[i]=c?function(){return r[a].apply(this,arguments)}:function(){return this.parent=r[a],u.apply(this,arguments)},o[i].prototype[i]=o[i],s.each(r,function(e,t){o[i].prototype[t]=r[t]}),s.each(t,function(e,t){r[t]?o[i].prototype[t]=function(){return this.parent=r[t],e.apply(this,arguments)}:t!==i&&(o[i].prototype[t]=e)})),s.each(t["static"],function(e,t){o[i][t]=e})}},walk:Pt,createNS:function(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)t[r=e[n]]||(t[r]={}),t=t[r];return t},resolve:function(e,t){var n,r;for(t=t||window,n=0,r=(e=e.split(".")).length;n<r&&(t=t[e[n]]);n++);return t},explode:function(e,t){return!e||Ot(e,"array")?e:Bt.map(e.split(t||","),Dt)},_addCacheSuffix:function(e){var t=ge.cacheSuffix;return t&&(e+=(-1===e.indexOf("?")?"?&qu
 ot;:"&")+t),e}},It=document,Mt=Array.prototype.push,Ft=Array.prototype.slice,zt=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,Ut=Re.Event,qt=Lt.makeMap("children,contents,next,prev"),Vt=function(e){return void 0!==e},Ht=function(e){return"string"==typeof e},jt=function(e,t){var n,r,o;for(o=(t=t||It).createElement("div"),n=t.createDocumentFragment(),o.innerHTML=e;r=o.firstChild;)n.appendChild(r);return n},$t=function(e,t,n,r){var o;if(Ht(t))t=jt(t,an(e[0]));else if(t.length&&!t.nodeType){if(t=en.makeArray(t),r)for(o=t.length-1;0<=o;o--)$t(e,t[o],n,r);else for(o=0;o<t.length;o++)$t(e,t[o],n,r);return e}if(t.nodeType)for(o=e.length;o--;)n.call(e[o],t);return e},Wt=function(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")},Kt=function(e,t,n){var r,o;return t=en(t)[0],e.each(function(){var e=this;n&&r===e.parentNode||(r=e.parentNode,o=t.cloneNo
 de(!1),e.parentNode.insertBefore(o,e)),o.appendChild(e)}),e},Xt=Lt.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),Yt=Lt.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),Gt={"for":"htmlFor","class":"className",readonly:"readOnly"},Jt={"float":"cssFloat"},Qt={},Zt={},en=function(e,t){return new en.fn.init(e,t)},tn=/^\s*|\s*$/g,nn=function(e){return null===e||e===undefined?"":(""+e).replace(tn,"")},rn=function(e,t){var n,r,o,i;if(e)if((n=e.length)===undefined){for(r in e)if(e.hasOwnProperty(r)&&(i=e[r],!1===t.call(i,r,i)))break}else for(o=0;o<n&&(i=e[o],!1!==t.call(i,o,i));o++);return e},on=function(e,n){var r=[];return rn(e,function(e,t){n(t,e)&&r.push(t)}),r},an=function(e){return e?9===e.nodeType?e:e.ownerDocument:It};en.fn
 =en.prototype={constructor:en,selector:"",context:null,length:0,init:function(e,t){var n,r,o=this;if(!e)return o;if(e.nodeType)return o.context=o[0]=e,o.length=1,o;if(t&&t.nodeType)o.context=t;else{if(t)return en(e).attr(t);o.context=t=document}if(Ht(e)){if(!(n="<"===(o.selector=e).charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:zt.exec(e)))return en(t).find(e);if(n[1])for(r=jt(e,an(t)).firstChild;r;)Mt.call(o,r),r=r.nextSibling;else{if(!(r=an(t).getElementById(n[2])))return o;if(r.id!==n[2])return o.find(e);o.length=1,o[0]=r}}else this.add(e,!1);return o},toArray:function(){return Lt.toArray(this)},add:function(e,t){var n,r,o=this;if(Ht(e))return o.add(en(e));if(!1!==t)for(n=en.unique(o.toArray().concat(en.makeArray(e))),o.length=n.length,r=0;r<n.length;r++)o[r]=n[r];else Mt.apply(o,en.makeArray(e));return o},attr:function(t,n){var e,r=this;if("object"==typeof t)rn(t,function(e,t){r.attr(e,
 t)});else{if(!Vt(n)){if(r[0]&&1===r[0].nodeType){if((e=Qt[t])&&e.get)return e.get(r[0],t);if(Yt[t])return r.prop(t)?t:undefined;null===(n=r[0].getAttribute(t,2))&&(n=undefined)}return n}this.each(function(){var e;if(1===this.nodeType){if((e=Qt[t])&&e.set)return void e.set(this,n);null===n?this.removeAttribute(t,2):this.setAttribute(t,n,2)}})}return r},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if("object"==typeof(e=Gt[e]||e))rn(e,function(e,t){n.prop(e,t)});else{if(!Vt(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1===this.nodeType&&(this[e]=t)})}return n},css:function(n,r){var e,o,i=this,t=function(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})},a=function(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})};if("object"==typeof n)rn(n,function(e,t){i.css(e,t)});else if(Vt(r))n=t(n),"number"!=typeof r||X
 t[n]||(r=r.toString()+"px"),i.each(function(){var e=this.style;if((o=Zt[n])&&o.set)o.set(this,r);else{try{this.style[Jt[n]||n]=r}catch(t){}null!==r&&""!==r||(e.removeProperty?e.removeProperty(a(n)):e.removeAttribute(n))}});else{if(e=i[0],(o=Zt[n])&&o.get)return o.get(e);if(!e.ownerDocument.defaultView)return e.currentStyle?e.currentStyle[t(n)]:"";try{return e.ownerDocument.defaultView.getComputedStyle(e,null).getPropertyValue(a(n))}catch(u){return undefined}}return i},remove:function(){for(var e,t=this.length;t--;)e=this[t],Ut.clean(e),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var e,t=this.length;t--;)for(e=this[t];e.firstChild;)e.removeChild(e.firstChild);return this},html:function(e){var t,n=this;if(Vt(e)){t=n.length;try{for(;t--;)n[t].innerHTML=e}catch(r){en(n[t]).empty().append(e)}return n}return n[0]?n[0].innerHTML:""},text:function(e){var t,n=this;if(Vt(e)){for(t=n.length;
 t--;)"innerText"in n[t]?n[t].innerText=e:n[0].textContent=e;return n}return n[0]?n[0].innerText||n[0].textContent:""},append:function(){return $t(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.appendChild(e)})},prepend:function(){return $t(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.insertBefore(e,this.firstChild)},!0)},before:function(){return this[0]&&this[0].parentNode?$t(this,arguments,function(e){this.parentNode.insertBefore(e,this)}):this},after:function(){return this[0]&&this[0].parentNode?$t(this,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):this},appendTo:function(e){return en(e).append(this),this},prependTo:function(e){return en(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return Kt(this,e)},wrapAll:function(e){return Kt(this,e,!0)},wrapInner:
 function(e){return this.each(function(){en(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){en(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),en(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(o,i){var e=this;return"string"!=typeof o||(-1!==o.indexOf(" ")?rn(o.split(" "),function(){e.toggleClass(this,i)}):e.each(function(e,t){var n,r;(r=Wt(t,o))!==i&&(n=t.className,r?t.className=nn((" "+n+" ").replace(" "+o+" "," ")):t.className+=n?" "+o:o)})),e},hasClass:function(e){return Wt(this[0],e)},each:function(e){return rn(this,e)},on:function(e,t){return this.each(function(){Ut.bind(this,e,t)})},off:function(e,t){return this.each(function(){Ut.unbind(this,e,t)})},trigger:function(e){return this.ea
 ch(function(){"object"==typeof e?Ut.fire(this,e.type,e):Ut.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new en(Ft.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;t<n;t++)en.find(e,this[t],r);return en(r)},filter:function(n){return en("function"==typeof n?on(this.toArray(),function(e,t){return n(t,e)}):en.filter(n,this.toArray()))},closest:function(n){var r=[];return n instanceof en&&(n=n[0]),this.each(function(e,t){for(;t;){if("string"==typeof n&&en(t).is(n)){r.push(t);break}if(t===n){r.push(t);break}t=t.parentNode}}),en(r)},offset:function(e){var t,n,r,o,i=0,a=0;return e?this.css(e):((t=this[0])&&(r=(n=t.ownerDocument).documentElement,t
 .getBoundingClientRect&&(i=(o=t.getBoundingClientRect()).left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,a=o.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:a})},push:Mt,sort:[].sort,splice:[].splice},Lt.extend(en,{extend:Lt.extend,makeArray:function(e){return(t=e)&&t===t.window||e.nodeType?[e]:Lt.toArray(e);var t},inArray:function(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1},isArray:Lt.isArray,each:rn,trim:nn,grep:on,find:dt,expr:dt.selectors,unique:dt.uniqueSort,text:dt.getText,contains:dt.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!==t[r].nodeType&&t.splice(r,1);return t=1===t.length?en.find.matchesSelector(t[0],e)?[t[0]]:[]:en.find.matches(e,t)}});var un=function(e,t,n){var r=[],o=e[t];for("string"!=typeof n&&n instanceof en&&(n=n[0]);o&&9!==o.nodeType;){if(n!==undefined){if(o===n)break;if(&qu
 ot;string"==typeof n&&en(o).is(n))break}1===o.nodeType&&r.push(o),o=o[t]}return r},sn=function(e,t,n,r){var o=[];for(r instanceof en&&(r=r[0]);e;e=e[t])if(!n||e.nodeType===n){if(r!==undefined){if(e===r)break;if("string"==typeof r&&en(e).is(r))break}o.push(e)}return o},cn=function(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType===n)return e;return null};rn({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return un(e,"parentNode")},next:function(e){return cn(e,"nextSibling",1)},prev:function(e){return cn(e,"previousSibling",1)},children:function(e){return sn(e.firstChild,"nextSibling",1)},contents:function(e){return Lt.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,r){en.fn[e]=function(t){var n=[];return this.each(function(){var e=r.call(n,this,t,n);e&&(en.isArray(e)?n.push.apply(n,
 e):n.push(e))}),1<this.length&&(qt[e]||(n=en.unique(n)),0===e.indexOf("parents")&&(n=n.reverse())),n=en(n),t?n.filter(t):n}}),rn({parentsUntil:function(e,t){return un(e,"parentNode",t)},nextUntil:function(e,t){return sn(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return sn(e,"previousSibling",1,t).slice(1)}},function(r,o){en.fn[r]=function(t,e){var n=[];return this.each(function(){var e=o.call(n,this,t,n);e&&(en.isArray(e)?n.push.apply(n,e):n.push(e))}),1<this.length&&(n=en.unique(n),0!==r.indexOf("parents")&&"prevUntil"!==r||(n=n.reverse())),n=en(n),e?n.filter(e):n}}),en.fn.is=function(e){return!!e&&0<this.filter(e).length},en.fn.init.prototype=en.fn,en.overrideDefaults=function(n){var r,o=function(e,t){return r=r||n(),0===arguments.length&&(e=r.element),t||(t=r.context),new o.fn.init(e,t)};return en.extend(o,this),o};var ln=function(n,r,e){rn(e,fu
 nction(e,t){n[e]=n[e]||{},n[e][r]=t})};ge.ie&&ge.ie<8&&(ln(Qt,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?undefined:t},size:function(e){var t=e.size;return 20===t?undefined:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?undefined:t}}),ln(Qt,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),ge.ie&&ge.ie<9&&(Jt["float"]="styleFloat",ln(Zt,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),en.attrHooks=Qt,en.cssHooks=Zt;var fn,dn=function(e){var t,n=!1;return function(){return n||(n=!0,t=e.apply(null,arguments)),t}},mn=function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.test(t))return r}return undefined}(e,t);i
 f(!n)return{major:0,minor:0};var r=function(e){return Number(t.replace(n,"$"+e))};return gn(r(1),r(2))},pn=function(){return gn(0,0)},gn=function(e,t){return{major:e,minor:t}},hn={nu:gn,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?pn():mn(e,n)},unknown:pn},vn="Firefox",yn=function(e,t){return function(){return t===e}},bn=function(e){var t=e.current;return{current:t,version:e.version,isEdge:yn("Edge",t),isChrome:yn("Chrome",t),isIE:yn("IE",t),isOpera:yn("Opera",t),isFirefox:yn(vn,t),isSafari:yn("Safari",t)}},Cn={unknown:function(){return bn({current:undefined,version:hn.unknown()})},nu:bn,edge:V.constant("Edge"),chrome:V.constant("Chrome"),ie:V.constant("IE"),opera:V.constant("Opera"),firefox:V.constant(vn),safari:V.constant("Safari")},xn="Windows",wn="Android",Nn="Solaris",En="FreeBSD",Sn=function(e,
 t){return function(){return t===e}},kn=function(e){var t=e.current;return{current:t,version:e.version,isWindows:Sn(xn,t),isiOS:Sn("iOS",t),isAndroid:Sn(wn,t),isOSX:Sn("OSX",t),isLinux:Sn("Linux",t),isSolaris:Sn(Nn,t),isFreeBSD:Sn(En,t)}},Tn={unknown:function(){return kn({current:undefined,version:hn.unknown()})},nu:kn,windows:V.constant(xn),ios:V.constant("iOS"),android:V.constant(wn),linux:V.constant("Linux"),osx:V.constant("OSX"),solaris:V.constant(Nn),freebsd:V.constant(En)},An=function(e,t){var n=String(t).toLowerCase();return H.find(e,function(e){return e.search(n)})},Rn=function(e,n){return An(e,n).map(function(e){var t=hn.detect(e.versionRegexes,n);return{current:e.name,version:t}})},Bn=function(e,n){return An(e,n).map(function(e){var t=hn.detect(e.versionRegexes,n);return{current:e.name,version:t}})},_n=function(e,t){return-1!==e.indexOf(t)},Dn=function(e){return e.replace(/^\s+|\s+$/g,"")},On=/.*?version\
 /\ ?([0-9]+)\.([0-9]+).*/,Pn=function(t){return function(e){return _n(e,t)}},Ln=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return _n(e,"edge/")&&_n(e,"chrome")&&_n(e,"safari")&&_n(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,On],search:function(e){return _n(e,"chrome")&&!_n(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return _n(e,"msie")||_n(e,"trident")}},{name:"Opera",versionRegexes:[On,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Pn("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Pn("firefox")},{name:"Safari",versionRegexes:[On,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(_n(e,"
 safari")||_n(e,"mobile/"))&&_n(e,"applewebkit")}}],In=[{name:"Windows",search:Pn("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return _n(e,"iphone")||_n(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Pn("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Pn("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Pn("linux"),versionRegexes:[]},{name:"Solaris",search:Pn("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Pn("freebsd"),versionRegexes:[]}],Mn={browsers:V.constant(Ln),oses:V.constant(In)},Fn=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=Mn.browsers(),m=Mn.oses(),p=Rn(d,e).fold(Cn.unkn
 own,Cn.nu),g=Bn(m,e).fold(Tn.unknown,Tn.nu);return{browser:p,os:g,deviceType:(n=p,r=e,o=(t=g).isiOS()&&!0===/ipad/i.test(r),i=t.isiOS()&&!o,a=t.isAndroid()&&3===t.version.major,u=t.isAndroid()&&4===t.version.major,s=o||a||u&&!0===/mobile/i.test(r),c=t.isiOS()||t.isAndroid(),l=c&&!s,f=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(r),{isiPad:V.constant(o),isiPhone:V.constant(i),isTablet:V.constant(s),isPhone:V.constant(l),isTouch:V.constant(c),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:V.constant(f)})}},zn={detect:dn(function(){var e=navigator.userAgent;return Fn(e)})},Un=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:V.constant(e)}},qn={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",e),"HTML mu
 st have a single root node";return Un(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return Un(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return Un(n)},fromDom:Un,fromPoint:function(e,t,n){return A.from(e.dom().elementFromPoint(t,n)).map(Un)}},Vn=8,Hn=9,jn=1,$n=3,Wn=function(e){return e.dom().nodeName.toLowerCase()},Kn=function(e){return e.dom().nodeType},Xn=function(t){return function(e){return Kn(e)===t}},Yn=Xn(jn),Gn=Xn($n),Jn=Xn(Hn),Qn={name:Wn,type:Kn,value:function(e){return e.dom().nodeValue},isElement:Yn,isText:Gn,isDocument:Jn,isComment:function(e){return Kn(e)===Vn||"#comment"===Wn(e)}},Zn=(fn=Object.keys)===undefined?function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t}:fn,er=function(e,t){for(var n=Zn(e),r=0,o=n.length;r<o;r++){var i=n[r];t(e[i],i,e)}},tr=function(r,o){var i={};return er(r,function(e,t){var n=o(e,t,r);i[n.k]=n.v}),i},nr=function(e,n){var r=[];return er(e,
 function(e,t){r.push(n(e,t))}),r},rr=function(e){return nr(e,function(e){return e})},or={bifilter:function(e,n){var r={},o={};return er(e,function(e,t){(n(e,t)?r:o)[t]=e}),{t:r,f:o}},each:er,map:function(e,r){return tr(e,function(e,t,n){return{k:t,v:r(e,t,n)}})},mapToArray:nr,tupleMap:tr,find:function(e,t){for(var n=Zn(e),r=0,o=n.length;r<o;r++){var i=n[r],a=e[i];if(t(a,i,e))return A.some(a)}return A.none()},keys:Zn,values:rr,size:function(e){return rr(e).length}},ir=function(e,t,n){if(!(E.isString(n)||E.isBoolean(n)||E.isNumber(n)))throw console.error("Invalid call to Attr.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")},ar=function(e,t,n){ir(e.dom(),t,n)},ur=function(e,t){var n=e.dom().getAttribute(t);return null===n?undefined:n},sr=function(e,t){var n=e.dom();return!(!n||!n.hasAttribute)&&n.hasAttribute(t)},cr={clone:function(e){return H.foldl(e.dom().attrib
 utes,function(e,t){return e[t.name]=t.value,e},{})},set:ar,setAll:function(e,t){var n=e.dom();or.each(t,function(e,t){ir(n,t,e)})},get:ur,has:sr,remove:function(e,t){e.dom().removeAttribute(t)},hasNone:function(e){var t=e.dom().attributes;return t===undefined||null===t||0===t.length},transfer:function(o,i,e){Qn.isElement(o)&&Qn.isElement(i)&&H.each(e,function(e){var t,n,r;n=i,sr(t=o,r=e)&&!sr(n,r)&&ar(n,r,ur(t,r))})}},lr=dn(function(){return fr(qn.fromDom(document))}),fr=function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return qn.fromDom(t)},dr={body:lr,getBody:fr,inBody:function(e){var t=Qn.isText(e)?e.dom().parentNode:e.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}},mr=function(e){return e.style!==undefined},pr=function(e,t,n){if(!E.isString(n))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element &quot
 ;,e),new Error("CSS value must be a string: "+n);mr(e)&&e.style.setProperty(t,n)},gr=function(e,t){return mr(e)?e.style.getPropertyValue(t):""},hr=function(e,t){var n=e.dom(),r=gr(n,t);return A.from(r).filter(function(e){return 0<e.length})},vr=function(e,t){var n=e.dom();or.each(t,function(e,t){pr(n,t,e)})},yr=function(e,t){var n=e.dom(),r=window.getComputedStyle(n).getPropertyValue(t),o=""!==r||dr.inBody(e)?r:gr(n,t);return null===o?undefined:o},br=hr,Cr=function(e){return e.slice(0).sort()},xr={sort:Cr,reqMessage:function(e,t){throw new Error("All required keys ("+Cr(e).join(", ")+") were not specified. Specified keys were: "+Cr(t).join(", ")+".")},unsuppMessage:function(e){throw new Error("Unsupported keys for object: "+Cr(e).join(", "))},validateStrArr:function(t,e){if(!E.isArray(e))throw new Error("The "+t+" fields must be an array. Was: "+e+"
 .");H.each(e,function(e){if(!E.isString(e))throw new Error("The value "+e+" in the "+t+" fields was not a string.")})},invalidTypeMessage:function(e,t){throw new Error("All values need to be of type: "+t+". Keys ("+Cr(e).join(", ")+") were not.")},checkDupes:function(e){var n=Cr(e);H.find(n,function(e,t){return t<n.length-1&&e===n[t+1]}).each(function(e){throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})}},wr={immutable:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+n.length+" arguments");var r={};return H.each(t,function(e,t){r[e]=V.constant(n[t])}),r}},immutableBag:function(o
 ,i){var a=o.concat(i);if(0===a.length)throw new Error("You must specify at least one required or optional field.");return xr.validateStrArr("required",o),xr.validateStrArr("optional",i),xr.checkDupes(a),function(t){var n=or.keys(t);H.forall(o,function(e){return H.contains(n,e)})||xr.reqMessage(o,n);var e=H.filter(n,function(e){return!H.contains(a,e)});0<e.length&&xr.unsuppMessage(e);var r={};return H.each(o,function(e){r[e]=V.constant(t[e])}),H.each(i,function(e){r[e]=V.constant(Object.prototype.hasOwnProperty.call(t,e)?A.some(t[e]):A.none())}),r}}},Nr=function(e,t){for(var n=[],r=function(e){return n.push(e),t(e)},o=t(e);(o=o.bind(r)).isSome(););return n},Er=function(){return j.getOrDie("Node")},Sr=function(e,t,n){return 0!=(e.compareDocumentPosition(t)&n)},kr=function(e,t){return Sr(e,t,Er().DOCUMENT_POSITION_CONTAINED_BY)},Tr=jn,Ar=Hn,Rr=function(e){return e.nodeType!==Tr&&e.nodeType!==Ar||0===e.childElementCount},Br=
 {all:function(e,t){var n=t===undefined?document:t.dom();return Rr(n)?[]:H.map(n.querySelectorAll(e),qn.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==Tr)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return Rr(n)?A.none():A.from(n.querySelector(e)).map(qn.fromDom)}},_r=function(e,t){return e.dom()===t.dom()},Dr=zn.detect().browser.isIE()?function(e,t){return kr(e.dom(),t.dom())}:function(e,t){var n=e.dom(),r=t.dom();return n!==r&&n.contains(r)},Or={eq:_r,isEqualNode:function(e,t){return e.dom().isEqualNode(t.dom())},member:function(e,t){return H.exists(t,V.curry(_r,e))},contains:Dr,is:Br.is},Pr=function(e){return qn.fromDom(e.dom().ownerDocume
 nt)},Lr=function(e){var t=e.dom();return A.from(t.parentNode).map(qn.fromDom)},Ir=function(e){var t=e.dom();return A.from(t.previousSibling).map(qn.fromDom)},Mr=function(e){var t=e.dom();return A.from(t.nextSibling).map(qn.fromDom)},Fr=function(e){var t=e.dom();return H.map(t.childNodes,qn.fromDom)},zr=function(e,t){var n=e.dom().childNodes;return A.from(n[t]).map(qn.fromDom)},Ur=wr.immutable("element","offset"),qr={owner:Pr,defaultView:function(e){var t=e.dom().ownerDocument.defaultView;return qn.fromDom(t)},documentElement:function(e){var t=Pr(e);return qn.fromDom(t.dom().documentElement)},parent:Lr,findIndex:function(n){return Lr(n).bind(function(e){var t=Fr(e);return H.findIndex(t,function(e){return Or.eq(n,e)})})},parents:function(e,t){for(var n=E.isFunction(t)?t:V.constant(!1),r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,a=qn.fromDom(i);if(o.push(a),!0===n(a))break;r=i}return o},siblings:function(t){return Lr(t).
 map(Fr).map(function(e){return H.filter(e,function(e){return!Or.eq(t,e)})}).getOr([])},prevSibling:Ir,offsetParent:function(e){var t=e.dom();return A.from(t.offsetParent).map(qn.fromDom)},prevSiblings:function(e){return H.reverse(Nr(e,Ir))},nextSibling:Mr,nextSiblings:function(e){return Nr(e,Mr)},children:Fr,child:zr,firstChild:function(e){return zr(e,0)},lastChild:function(e){return zr(e,e.dom().childNodes.length-1)},childNodesCount:function(e){return e.dom().childNodes.length},hasChildNodes:function(e){return e.dom().hasChildNodes()},leaf:function(e,t){var n=Fr(e);return 0<n.length&&t<n.length?Ur(n[t],0):Ur(e,t)}},Vr=zn.detect().browser,Hr=function(e){return H.find(e,Qn.isElement)},jr={getPos:function(e,t,n){var r,o,i,a=0,u=0,s=e.ownerDocument;if(n=n||e,t){if(n===e&&t.getBoundingClientRect&&"static"===yr(qn.fromDom(e),"position"))return{x:a=(o=t.getBoundingClientRect()).left+(s.documentElement.scrollLeft||e.scrollLeft)-s.documentEl
 ement.clientLeft,y:u=o.top+(s.documentElement.scrollTop||e.scrollTop)-s.documentElement.clientTop};for(r=t;r&&r!==n&&r.nodeType;)a+=r.offsetLeft||0,u+=r.offsetTop||0,r=r.offsetParent;for(r=t.parentNode;r&&r!==n&&r.nodeType;)a-=r.scrollLeft||0,u-=r.scrollTop||0,r=r.parentNode;u+=(i=qn.fromDom(t),Vr.isFirefox()&&"table"===Qn.name(i)?Hr(qr.children(i)).filter(function(e){return"caption"===Qn.name(e)}).bind(function(o){return Hr(qr.nextSiblings(o)).map(function(e){var t=e.dom().offsetTop,n=o.dom().offsetTop,r=o.dom().offsetHeight;return t<=n?-r:0})}).getOr(0):0)}return{x:a,y:u}}},$r=function(e){var n=A.none(),t=[],r=function(e){o()?a(e):t.push(e)},o=function(){return n.isSome()},i=function(e){H.each(e,a)},a=function(t){n.each(function(e){setTimeout(function(){t(e)},0)})};return e(function(e){n=A.some(e),i(t),t=[]}),{get:r,map:function(n){return $r(function(t){r(function(e){t(n(e))})})},isReady:o}},Wr={nu:$r,pure:function(t){
 return $r(function(e){e(t)})}},Kr=function(n){return function(){var e=Array.prototype.slice.call(arguments),t=this;setTimeout(function(){n.apply(t,e)},0)}},Xr=function(t){var e=function(e){t(Kr(e))};return{map:function(r){return Xr(function(n){e(function(e){var t=r(e);n(t)})})},bind:function(n){return Xr(function(t){e(function(e){n(e).get(t)})})},anonBind:function(n){return Xr(function(t){e(function(e){n.get(t)})})},toLazy:function(){return Wr.nu(e)},get:e}},Yr={nu:Xr,pure:function(t){return Xr(function(e){e(t)})}},Gr=function(a,e){return e(function(r){var o=[],i=0;0===a.length?r([]):H.each(a,function(e,t){var n;e.get((n=t,function(e){o[n]=e,++i>=a.length&&r(o)}))})})},Jr=function(e){return Gr(e,Yr.nu)},Qr={par:Jr,mapM:function(e,t){var n=H.map(e,t);return Jr(n)},compose:function(t,n){return function(e){return n(e).bind(t)}}},Zr=function(n){return{is:function(e){return n===e},isValue:V.always,isError:V.never,getOr:V.constant(n),getOrThunk:V.constant(n),getOrDie:V.constant
 (n),or:function(e){return Zr(n)},orThunk:function(e){return Zr(n)},fold:function(e,t){return t(n)},map:function(e){return Zr(e(n))},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return A.some(n)}}},eo=function(n){return{is:V.never,isValue:V.never,isError:V.always,getOr:V.identity,getOrThunk:function(e){return e()},getOrDie:function(){return V.die(String(n))()},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return eo(n)},each:V.noop,bind:function(e){return eo(n)},exists:V.never,forall:V.always,toOption:A.none}},to={value:Zr,error:eo};function no(e,u){var t=e,n=function(e,t,n,r){var o,i;if(e){if(!r&&e[t])return e[t];if(e!==u){if(o=e[n])return o;for(i=e.parentNode;i&&i!==u;i=i.parentNode)if(o=i[n])return o}}};this.current=function(){return t},this.next=function(e){return t=n(t,"firstChild","nextSibling",
 e)},this.prev=function(e){return t=n(t,"lastChild","previousSibling",e)},this.prev2=function(e){return t=function(e,t,n,r){var o,i,a;if(e){if(o=e[n],u&&o===u)return;if(o){if(!r)for(a=o[t];a;a=a[t])if(!a[t])return a;return o}if((i=e.parentNode)&&i!==u)return i}}(t,"lastChild","previousSibling",e)}}var ro,oo,io,ao=function(t){var n;return function(e){return(n=n||H.mapToObject(t,V.constant(!0))).hasOwnProperty(Qn.name(e))}},uo=ao(["h1","h2","h3","h4","h5","h6"]),so=ao(["article","aside","details","div","dt","figcaption","footer","form","fieldset","header","hgroup","html","main","nav","section","summary","body","p","dl","multicol","dd","figure","addres
 s","center","blockquote","h1","h2","h3","h4","h5","h6","listing","xmp","pre","plaintext","menu","dir","ul","ol","li","hr","table","tbody","thead","tfoot","th","tr","td","caption"]),co=function(e){return Qn.isElement(e)&&!so(e)},lo=function(e){return Qn.isElement(e)&&"br"===Qn.name(e)},fo=ao(["h1","h2","h3","h4","h5","h6","p","div","address","pre","form","blockquote","center","dir","fieldset","header","footer","article","section","hgroup","aside","nav","figure"]),mo=ao([&q
 uot;ul","ol","dl"]),po=ao(["li","dd","dt"]),go=ao(["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param","embed","source","wbr","track"]),ho=ao(["thead","tbody","tfoot"]),vo=ao(["td","th"]),yo=function(t){return function(e){return!!e&&e.nodeType===t}},bo=yo(1),Co=function(e){var r=e.toLowerCase().split(" ");return function(e){var t,n;if(e&&e.nodeType)for(n=e.nodeName.toLowerCase(),t=0;t<r.length;t++)if(n===r[t])return!0;return!1}},xo=function(t){return function(e){if(bo(e)){if(e.contentEditable===t)return!0;if(e.getAttribute("data-mce-contenteditable")===t)return!0}return!1}},wo=yo(3),No=yo(8),Eo=yo(9),So=Co("br"),ko=xo(&quo
 t;true"),To=xo("false"),Ao={isText:wo,isElement:bo,isComment:No,isDocument:Eo,isBr:So,isContentEditableTrue:ko,isContentEditableFalse:To,matchNodeNames:Co,hasPropValue:function(t,n){return function(e){return bo(e)&&e[t]===n}},hasAttribute:function(t,e){return function(e){return bo(e)&&e.hasAttribute(t)}},hasAttributeValue:function(t,n){return function(e){return bo(e)&&e.getAttribute(t)===n}},matchStyleValues:function(r,e){var o=e.toLowerCase().split(" ");return function(e){var t;if(bo(e))for(t=0;t<o.length;t++){var n=e.ownerDocument.defaultView.getComputedStyle(e,null);if((n?n.getPropertyValue(r):null)===o[t])return!0}return!1}},isBogus:function(e){return bo(e)&&e.hasAttribute("data-mce-bogus")},isBogusAll:function(e){return bo(e)&&"all"===e.getAttribute("data-mce-bogus")},isTable:function(e){return bo(e)&&"TABLE"===e.tagName}},Ro=function(e){return e&&"SP
 AN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},Bo=function(e,t){var n,r=t.childNodes;if(!Ao.isElement(t)||!Ro(t)){for(n=r.length-1;0<=n;n--)Bo(e,r[n]);if(!1===Ao.isDocument(t)){if(Ao.isText(t)&&0<t.nodeValue.length){var o=Lt.trim(t.nodeValue).length;if(e.isBlock(t.parentNode)||0<o)return;if(0===o&&(a=(i=t).previousSibling&&"SPAN"===i.previousSibling.nodeName,u=i.nextSibling&&"SPAN"===i.nextSibling.nodeName,a&&u))return}else if(Ao.isElement(t)&&(1===(r=t.childNodes).length&&Ro(r[0])&&t.parentNode.insertBefore(r[0],t),r.length||go(qn.fromDom(t))))return;e.remove(t)}var i,a,u;return t}},_o={trimNode:Bo},Do=Lt.makeMap,Oo=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Po=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Lo=/[<>&\"\']/g,Io=/&#([a-z0-9]+);?|&([
 a-z0-9]+);/gi,Mo={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};oo={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;","`":"&#96;"},io={"&lt;":"<","&gt;":">","&amp;":"&","&q
 uot;":'"',"&apos;":"'"};var Fo=function(e,t){var n,r,o,i={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),oo[r]||(o="&"+e[n+1]+";",i[r]=o,i[o]=r);return i}};ro=Fo("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc
 ,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,
 8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var zo=function(e,t){return e.replace(t?Oo:Po,function(e){return oo[e]||e})},Uo=function(e,t){return e.replace(t?Oo:Po,function(e){return 1<e.length?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":oo[e]||"&#"+e.charCodeAt(0)+";"})},qo=function(e,t,n){return n=n||ro,e.replace(t?Oo:Po,function(e){return oo[e]||n[e]||e})},Vo={encodeRaw:zo,encodeAllRaw:function(e){return(""+e
 ).replace(Lo,function(e){return oo[e]||e})},encodeNumeric:Uo,encodeNamed:qo,getEncodeFunc:function(e,t){var n=Fo(t)||ro,r=Do(e.replace(/\+/g,","));return r.named&&r.numeric?function(e,t){return e.replace(t?Oo:Po,function(e){return oo[e]!==undefined?oo[e]:n[e]!==undefined?n[e]:1<e.length?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":"&#"+e.charCodeAt(0)+";"})}:r.named?t?function(e,t){return qo(e,t,n)}:qo:r.numeric?Uo:zo},decode:function(e){return e.replace(Io,function(e,t){return t?65535<(t="x"===t.charAt(0).toLowerCase()?parseInt(t.substr(1),16):parseInt(t,10))?(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t))):Mo[t]||String.fromCharCode(t):io[e]||ro[e]||(n=e,(r=qn.fromTag("div").dom()).innerHTML=n,r.textContent||r.innerText||n);var n,r})}},Ho={},jo={},$o=Lt.makeMap,Wo=Lt.each,Ko=Lt.extend,Xo=Lt.explode,Yo=Lt.inArray,Go=function(e,t){return(e=Lt.tri
 m(e))?e.split(t||" "):[]},Jo=function(e){var u,t,n,r,o,i,s={},a=function(e,t,n){var r,o,i,a=function(e,t){var n,r,o={};for(n=0,r=e.length;n<r;n++)o[e[n]]=t||{};return o};for(t=t||"","string"==typeof(n=n||[])&&(n=Go(n)),r=(e=Go(e)).length;r--;)i={attributes:a(o=Go([u,t].join(" "))),attributesOrder:o,children:a(n,jo)},s[e[r]]=i},c=function(e,t){var n,r,o,i;for(n=(e=Go(e)).length,t=Go(t);n--;)for(r=s[e[n]],o=0,i=t.length;o<i;o++)r.attributes[t[o]]={},r.attributesOrder.push(t[o])};return Ho[e]?Ho[e]:(u="id accesskey class dir lang style tabindex title role",t="address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul",n="a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment","html4"!==e&&(u+=" contenteditable contextmenu draggable
  dropzone hidden spellcheck translate",t+=" article aside details dialog figure header footer hgroup section nav",n+=" audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"),"html5-strict"!==e&&(u+=" xml:lang",n=[n,i="acronym applet basefont big font strike tt"].join(" "),Wo(Go(i),function(e){a(e,"",n)}),t=[t,o="center dir isindex noframes"].join(" "),r=[t,n].join(" "),Wo(Go(o),function(e){a(e,"",r)})),r=r||[t,n].join(" "),a("html","manifest","head body"),a("head","","base command link meta noscript script style title"),a("title hr noscript br"),a("base","href target"),a("link","href rel media hreflang type sizes hreflang"),a("meta","name http-equiv content charset"),a("style&q
 uot;,"media type scoped"),a("script","src async defer type charset"),a("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",r),a("address dt dd div caption","",r),a("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",n),a("blockquote","cite",r),a("ol","reversed start type","li"),a("ul","","li"),a("li","value",r),a("dl","","dt dd"),a("a","href target rel media hreflang type",n),a("q","cite",n),a("ins del","cite datetime",r),a("img","src sizes srcset alt usemap ismap width height"),a("iframe&
 quot;,"src name width height",r),a("embed","src type width height"),a("object","data type typemustmatch name usemap form width height",[r,"param"].join(" ")),a("param","name value"),a("map","name",[r,"area"].join(" ")),a("area","alt coords shape href target rel media hreflang type"),a("table","border","caption colgroup thead tfoot tbody tr"+("html4"===e?" col":"")),a("colgroup","span","col"),a("col","span"),a("tbody thead tfoot","","tr"),a("tr","","td th"),a("td","colspan rowspan headers",r),a("th","colspan rowspan headers scope abbr",r),a("form","accept-charset action autocomplete enctype method name novalidate ta
 rget",r),a("fieldset","disabled form name",[r,"legend"].join(" ")),a("label","form for",n),a("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),a("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"===e?r:n),a("select","disabled form multiple name required size","option optgroup"),a("optgroup","disabled label","option"),a("option","disabled label selected value"),a("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),a("menu","type label",[r,"li"].join(" ")),a("noscript&
 quot;,"",r),"html4"!==e&&(a("wbr"),a("ruby","",[n,"rt rp"].join(" ")),a("figcaption","",r),a("mark rt rp summary bdi","",n),a("canvas","width height",r),a("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",[r,"track source"].join(" ")),a("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",[r,"track source"].join(" ")),a("picture","","img source"),a("source","src srcset type media sizes"),a("track","kind src srclang label default"),a("datalist","",[n,"option"].join(" ")),a("article section nav aside header footer","",r),a("hgroup","",
 "h1 h2 h3 h4 h5 h6"),a("figure","",[r,"figcaption"].join(" ")),a("time","datetime",n),a("dialog","open",r),a("command","type label icon disabled checked radiogroup command"),a("output","for form name",n),a("progress","value max",n),a("meter","value min max low high optimum",n),a("details","open",[r,"summary"].join(" ")),a("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!==e&&(c("script","language xml:space"),c("style","xml:space"),c("object","declare classid code codebase codetype archive standby align border hspace vspace"),c("embed","align name hspace vspace"),c("param","valuetype type"),c("a","char
 set name rev shape coords"),c("br","clear"),c("applet","codebase archive code object alt name width height align hspace vspace"),c("img","name longdesc align border hspace vspace"),c("iframe","longdesc frameborder marginwidth marginheight scrolling align"),c("font basefont","size color face"),c("input","usemap align"),c("select","onchange"),c("textarea"),c("h1 h2 h3 h4 h5 h6 div p legend caption","align"),c("ul","type compact"),c("li","type"),c("ol dl menu dir","compact"),c("pre","width xml:space"),c("hr","align noshade size width"),c("isindex","prompt"),c("table","summary width frame rules cellspacing cellpadding align bgcolor"),c("col","width align char cha
 roff valign"),c("colgroup","width align char charoff valign"),c("thead","align char charoff valign"),c("tr","align char charoff valign bgcolor"),c("th","axis align char charoff valign nowrap bgcolor width height"),c("form","accept"),c("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),c("tfoot","align char charoff valign"),c("tbody","align char charoff valign"),c("area","nohref"),c("body","background bgcolor text link vlink alink")),"html4"!==e&&(c("input button select textarea","autofocus"),c("input textarea","placeholder"),c("a","download"),c("link script img","crossorigin"),c("iframe","sandbox seamless allowfullscreen")),Wo(Go("a f
 orm meter progress dfn"),function(e){s[e]&&delete s[e].children[e]}),delete s.caption.children.table,delete s.script,Ho[e]=s)},Qo=function(e,n){var r;return e&&(r={},"string"==typeof e&&(e={"*":e}),Wo(e,function(e,t){r[t]=r[t.toUpperCase()]="map"===n?$o(e,/[, ]/):Xo(e,/[, ]/)})),r};function Zo(i){var e,t,n,r,o,a,u,s,c,l,f,d,m,N={},p={},E=[],g={},h={},v=function(e,t,n){var r=i[e];return r?r=$o(r,/[, ]/,$o(r.toUpperCase(),/[, ]/)):(r=Ho[e])||(r=$o(t," ",$o(t.toUpperCase()," ")),r=Ko(r,n),Ho[e]=r),r};n=Jo((i=i||{}).schema),!1===i.verify_html&&(i.valid_elements="*[*]"),e=Qo(i.valid_styles),t=Qo(i.invalid_styles,"map"),s=Qo(i.valid_classes,"map"),r=v("whitespace_elements","pre script noscript style textarea video audio iframe object code"),o=v("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),a=v("short_
 ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),u=v("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),l=v("non_empty_elements","td th iframe video audio object script pre code",a),f=v("move_caret_before_on_enter_elements","table",l),d=v("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),c=v("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption",d),m=v("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),Wo((i.special||"script noscript noframes noembed tit
 le style textarea xmp").split(" "),function(e){h[e]=new RegExp("</"+e+"[^>]*>","gi")});var S=function(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")},y=function(e){var t,n,r,o,i,a,u,s,c,l,f,d,m,p,g,h,v,y,b,C=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,x=/^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/,w=/[*?+]/;if(e)for(e=Go(e,","),N["@"]&&(h=N["@"].attributes,v=N["@"].attributesOrder),t=0,n=e.length;t<n;t++)if(i=C.exec(e[t])){if(p=i[1],c=i[2],g=i[3],s=i[5],a={attributes:d={},attributesOrder:m=[]},"#"===p&&(a.paddEmpty=!0),"-"===p&&(a.removeEmpty=!0),"!"===i[4]&&(a.removeEmptyAttrs=!0),h){for(y in h)d[y]=h[y];m.push.apply(m,v)}if(s)for(r=0,o=(s=Go(s,"|")).length;r<o;r++)if(i=x.exec(s[r])){if(u={},f=i[1],l=i[2].replace(/[\\:]:/g,":"),p=i[
 3],b=i[4],"!"===f&&(a.attributesRequired=a.attributesRequired||[],a.attributesRequired.push(l),u.required=!0),"-"===f){delete d[l],m.splice(Yo(m,l),1);continue}p&&("="===p&&(a.attributesDefault=a.attributesDefault||[],a.attributesDefault.push({name:l,value:b}),u.defaultValue=b),":"===p&&(a.attributesForced=a.attributesForced||[],a.attributesForced.push({name:l,value:b}),u.forcedValue=b),"<"===p&&(u.validValues=$o(b,"?"))),w.test(l)?(a.attributePatterns=a.attributePatterns||[],u.pattern=S(l),a.attributePatterns.push(u)):(d[l]||m.push(l),d[l]=u)}h||"@"!==c||(h=d,v=m),g&&(a.outputName=c,N[g]=a),w.test(c)?(a.pattern=S(c),E.push(a)):N[c]=a}},b=function(e){N={},E=[],y(e),Wo(n,function(e,t){p[t]=e.children})},C=function(e){var a=/^(~)?(.+)$/;e&&(Ho.text_block_elements=Ho.block_elements=null,Wo(Go(e,","),function(e){var t=a.exec(e),n="~"===t[1]
 ,r=n?"span":"div",o=t[2];if(p[o]=p[r],g[o]=r,n||(c[o.toUpperCase()]={},c[o]={}),!N[o]){var i=N[r];delete(i=Ko({},i)).removeEmptyAttrs,delete i.removeEmpty,N[o]=i}Wo(p,function(e,t){e[r]&&(p[t]=e=Ko({},p[t]),e[o]=e[r])})}))},x=function(e){var o=/^([+\-]?)(\w+)\[([^\]]+)\]$/;Ho[i.schema]=null,e&&Wo(Go(e,","),function(e){var t,n,r=o.exec(e);r&&(n=r[1],t=n?p[r[2]]:p[r[2]]={"#comment":{}},t=p[r[2]],Wo(Go(r[3],"|"),function(e){"-"===n?delete t[e]:t[e]={}}))})},w=function(e){var t,n=N[e];if(n)return n;for(t=E.length;t--;)if((n=E[t]).pattern.test(e))return n};return i.valid_elements?b(i.valid_elements):(Wo(n,function(e,t){N[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},p[t]=e.children}),"html5"!==i.schema&&Wo(Go("strong/b em/i"),function(e){e=Go(e,"/"),N[e[1]].outputName=e[0]}),Wo(Go("ol ul sub sup blockquote span font a table tbody tr strong em b i
 "),function(e){N[e]&&(N[e].removeEmpty=!0)}),Wo(Go("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"),function(e){N[e].paddEmpty=!0}),Wo(Go("span"),function(e){N[e].removeEmptyAttrs=!0})),C(i.custom_elements),x(i.valid_children),y(i.extended_valid_elements),x("+ol[ul|ol],+ul[ul|ol]"),Wo({dd:"dl",dt:"dl",li:"ul ol",td:"tr",th:"tr",tr:"tbody thead tfoot",tbody:"table",thead:"table",tfoot:"table",legend:"fieldset",area:"map",param:"video audio object"},function(e,t){N[t]&&(N[t].parentsRequired=Go(e))}),i.invalid_elements&&Wo(Xo(i.invalid_elements),function(e){N[e]&&delete N[e]}),w("span")||y("span[!data-mce-type|*]"),{children:p,elements:N,getValidStyles:function(){return e},getValidClasses:function(){return s},getBlockElements:function(){return c},getInvalidStyles:function(){r
 eturn t},getShortEndedElements:function(){return a},getTextBlockElements:function(){return d},getTextInlineElements:function(){return m},getBoolAttrs:function(){return u},getElementRule:w,getSelfClosingElements:function(){return o},getNonEmptyElements:function(){return l},getMoveCaretBeforeOnEnterElements:function(){return f},getWhiteSpaceElements:function(){return r},getSpecialElements:function(){return h},isValidChild:function(e,t){var n=p[e.toLowerCase()];return!(!n||!n[t.toLowerCase()])},isValid:function(e,t){var n,r,o=w(e);if(o){if(!t)return!0;if(o.attributes[t])return!0;if(n=o.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},getCustomElements:function(){return g},addValidElements:y,setValidElements:b,addCustomElements:C,addValidChildren:x}}var ei=function(e,t,n,r){var o=function(e){return 1<(e=parseInt(e,10).toString(16)).length?e:"0"+e};return"#"+o(t)+o(n)+o(r)};function ti(b,e){var C,t,c,l,x=/rgb\s*\(\s*([0-9]+)\s*,\s*([
 0-9]+)\s*,\s*([0-9]+)\s*\)/gi,w=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,N=/\s*([^:]+):\s*([^;]+);?/g,E=/\s+$/,S={},k="\ufeff";for(b=b||{},e&&(c=e.getValidStyles(),l=e.getInvalidStyles()),t=("\\\" \\' \\; \\: ; : "+k).split(" "),C=0;C<t.length;C++)S[t[C]]=k+C,S[k+C]=t[C];return{toHex:function(e){return e.replace(x,ei)},parse:function(e){var t,n,r,o,i,a,u,s,c={},l=b.url_converter,f=b.url_converter_scope||this,d=function(e,t,n){var r,o,i,a;if((r=c[e+"-top"+t])&&(o=c[e+"-right"+t])&&(i=c[e+"-bottom"+t])&&(a=c[e+"-left"+t])){var u=[r,o,i,a];for(C=u.length-1;C--&&u[C]===u[C+1];);-1<C&&n||(c[e+t]=-1===C?u[0]:u.join(" "),delete c[e+"-top"+t],delete c[e+"-right"+t],delete c[e+"-bottom"+t],delete c[e+"-left
 "+t])}},m=function(e){var t,n=c[e];if(n){for(t=(n=n.split(" ")).length;t--;)if(n[t]!==n[0])return!1;return c[e]=n[0],!0}},p=function(e){return o=!0,S[e]},g=function(e,t){return o&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return S[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e},h=function(e){return String.fromCharCode(parseInt(e.slice(1),16))},v=function(e){return e.replace(/\\[0-9a-f]+/gi,h)},y=function(e,t,n,r,o,i){if(o=o||i)return"'"+(o=g(o)).replace(/\'/g,"\\'")+"'";if(t=g(t||n||r),!b.allow_script_urls){var a=t.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(a))return"";if(!b.allow_svg_data_urls&&/^data:image\/svg/i.test(a))return""}return l&&(t=l.call(f,t,"style")),"url('"+t.replace(/\'/g,"\\'")+"')"};if(e){for(e=(e=e.replace(/[\u0000-\u001F]/g,"")).replace(/\\[\"\';:\uFEFF]/g,p).replace(/\"[^\"]+\&
 quot;|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,p)});t=N.exec(e);)if(N.lastIndex=t.index+t[0].length,n=t[1].replace(E,"").toLowerCase(),r=t[2].replace(E,""),n&&r){if(n=v(n),r=v(r),-1!==n.indexOf(k)||-1!==n.indexOf('"'))continue;if(!b.allow_script_urls&&("behavior"===n||/expression\s*\(|\/\*|\*\//.test(r)))continue;"font-weight"===n&&"700"===r?r="bold":"color"!==n&&"background-color"!==n||(r=r.toLowerCase()),r=(r=r.replace(x,ei)).replace(w,y),c[n]=o?g(r,!0):r}d("border","",!0),d("border","-width"),d("border","-color"),d("border","-style"),d("padding",""),d("margin",""),i="border",u="border-style",s="border-color",m(a="border-width")&&m(u)&&m(s)&&(c[i]=c[a]+" "+c[u]+&quot
 ; "+c[s],delete c[a],delete c[u],delete c[s]),"medium none"===c.border&&delete c.border,"none"===c["border-image"]&&delete c["border-image"]}return c},serialize:function(i,e){var t,n,r,o,a,u="",s=function(e){var t,n,r,o;if(t=c[e])for(n=0,r=t.length;n<r;n++)e=t[n],(o=i[e])&&(u+=(0<u.length?" ":"")+e+": "+o+";")};if(e&&c)s("*"),s(e);else for(t in i)!(n=i[t])||l&&(r=t,o=e,a=void 0,(a=l["*"])&&a[r]||(a=l[o])&&a[r])||(u+=(0<u.length?" ":"")+t+": "+n+";");return u}}}var ni,ri=Lt.each,oi=Lt.grep,ii=ge.ie,ai=/^([a-z0-9],?)+$/i,ui=/^[ \t\r\n]*$/,si=function(n,r,o){var e={},i=r.keep_values,t={set:function(e,t,n){r.url_converter&&(t=r.url_converter.call(r.url_converter_scope||o(),t,n,e[0])),e.attr("data-mce-"+n,t).attr(n,t)},get:function(e,t){return e.attr(&qu
 ot;data-mce-"+t)||e.attr(t)}};return e={style:{set:function(e,t){null===t||"object"!=typeof t?(i&&e.attr("data-mce-style",t),e.attr("style",t)):e.css(t)},get:function(e){var t=e.attr("data-mce-style")||e.attr("style");return t=n.serialize(n.parse(t),e[0].nodeName)}}},i&&(e.href=e.src=t),e},ci=function(e,t){var n=t.attr("style"),r=e.serialize(e.parse(n),t[0].nodeName);r||(r=null),t.attr("data-mce-style",r)},li=function(e,t){var n,r,o=0;if(e)for(n=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)r=e.nodeType,(!t||3!==r||r!==n&&e.nodeValue.length)&&(o++,n=r);return o};function fi(a,u){var s,c=this;void 0===u&&(u={});var r={},i=window,o={},t=0,e=function(m,e){var p,g=0,h={};p=(e=e||{}).maxLoadTime||5e3;var v=function(e){m.getElementsByTagName("head")[0].appendChild(e)},n=function(e,t,n){var o,r,i,a,u=function(){for(var e=a.passed,t=e.length;t--;)e[t]();a.statu
 s=2,a.passed=[],a.failed=[]},s=function(){for(var e=a.failed,t=e.length;t--;)e[t]();a.status=3,a.passed=[],a.failed=[]},c=function(e,t){e()||((new Date).getTime()-i<p?Ce.setTimeout(t):s())},l=function(){c(function(){for(var e,t,n=m.styleSheets,r=n.length;r--;)if((t=(e=n[r]).ownerNode?e.ownerNode:e.owningElement)&&t.id===o.id)return u(),!0},l)},f=function(){c(function(){try{var e=r.sheet.cssRules;return u(),!!e}catch(t){}},f)};if(e=Lt._addCacheSuffix(e),h[e]?a=h[e]:(a={passed:[],failed:[]},h[e]=a),t&&a.passed.push(t),n&&a.failed.push(n),1!==a.status)if(2!==a.status)if(3!==a.status){if(a.status=1,(o=m.createElement("link")).rel="stylesheet",o.type="text/css",o.id="u"+g++,o.async=!1,o.defer=!1,i=(new Date).getTime(),"onload"in o&&!((d=navigator.userAgent.match(/WebKit\/(\d*)/))&&parseInt(d[1],10)<536))o.onload=l,o.onerror=s;else{if(0<navigator.userAgent.indexOf("Firefox"))return
 (r=m.createElement("style")).textContent='@import "'+e+'"',f(),void v(r);l()}var d;v(o),o.href=e}else s();else u()},t=function(t){return Yr.nu(function(e){n(t,V.compose(e,V.constant(to.value(t))),V.compose(e,V.constant(to.error(t))))})},o=function(e){return e.fold(V.identity,V.identity)};return{load:n,loadAll:function(e,n,r){Qr.par(H.map(e,t)).get(function(e){var t=H.partition(e,function(e){return e.isValue()});0<t.fail.length?r(t.fail.map(o)):n(t.pass.map(o))})}}}(a),l=[],f=u.schema?u.schema:Zo({}),d=ti({url_converter:u.url_converter,url_converter_scope:u.url_converter_scope},u.schema),m=u.ownEvents?new Re(u.proxy):Re.Event,n=f.getBlockElements(),p=en.overrideDefaults(function(){return{context:a,element:q.getRoot()}}),g=function(e){if(e&&a&&"string"==typeof e){var t=a.getElementById(e);return t&&t.id!==e?a.getElementsByName(e)[1]:t}return e},h=function(e){return"string"==typeof e&&(e=g(e)),p(e)},v=function(e
 ,t,n){var r,o,i=h(e);return i.length&&(o=(r=s[t])&&r.get?r.get(i,t):i.attr(t)),void 0===o&&(o=n||""),o},y=function(e){var t=g(e);return t?t.attributes:[]},b=function(e,t,n){var r,o;""===n&&(n=null);var i=h(e);r=i.attr(t),i.length&&((o=s[t])&&o.set?o.set(i,n,t):i.attr(t,n),r!==n&&u.onSetAttrib&&u.onSetAttrib({attrElm:i,attrName:t,attrValue:n}))},C=function(){return u.root_element||a.body},x=function(e,t){return jr.getPos(a.body,g(e),t)},w=function(e,t,n){var r=h(e);return n?r.css(t):("float"===(t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}))&&(t=ge.ie&&ge.ie<12?"styleFloat":"cssFloat"),r[0]&&r[0].style?r[0].style[t]:undefined)},N=function(e){var t,n;return e=g(e),t=w(e,"width"),n=w(e,"height"),-1===t.indexOf("px")&&(t=0),-1===n.indexOf("px")&&(n=0),{w:parseInt(t,10)||e.offsetWi
 dth||e.clientWidth,h:parseInt(n,10)||e.offsetHeight||e.clientHeight}},E=function(e,t){var n;if(!e)return!1;if(!Array.isArray(e)){if("*"===t)return 1===e.nodeType;if(ai.test(t)){var r=t.toLowerCase().split(/,/),o=e.nodeName.toLowerCase();for(n=r.length-1;0<=n;n--)if(r[n]===o)return!0;return!1}if(e.nodeType&&1!==e.nodeType)return!1}var i=Array.isArray(e)?e:[e];return 0<dt(t,i[0].ownerDocument||i[0],null,i).length},S=function(e,t,n,r){var o,i=[],a=g(e);for(r=r===undefined,n=n||("BODY"!==C().nodeName?C().parentNode:null),Lt.is(t,"string")&&(t="*"===(o=t)?function(e){return 1===e.nodeType}:function(e){return E(e,o)});a&&a!==n&&a.nodeType&&9!==a.nodeType;){if(!t||"function"==typeof t&&t(a)){if(!r)return[a];i.push(a)}a=a.parentNode}return r?i:null},k=function(e,t,n){var r=t;if(e)for("string"==typeof t&&(r=function(e){return E(e,t)}),e=e[n];e;e=e[n])if("function&quo
 t;==typeof r&&r(e))return e;return null},T=function(e,n,r){var o,t="string"==typeof e?g(e):e;if(!t)return!1;if(Lt.isArray(t)&&(t.length||0===t.length))return o=[],ri(t,function(e,t){e&&("string"==typeof e&&(e=g(e)),o.push(n.call(r,e,t)))}),o;var i=r||c;return n.call(i,t)},A=function(e,t){h(e).each(function(e,n){ri(t,function(e,t){b(n,t,e)})})},R=function(e,r){var t=h(e);ii?t.each(function(e,t){if(!1!==t.canHaveHTML){for(;t.firstChild;)t.removeChild(t.firstChild);try{t.innerHTML="<br>"+r,t.removeChild(t.firstChild)}catch(n){en("<div></div>").html("<br>"+r).contents().slice(1).appendTo(t)}return r}}):t.html(r)},B=function(e,n,r,o,i){return T(e,function(e){var t="string"==typeof n?a.createElement(n):n;return A(t,r),o&&("string"!=typeof o&&o.nodeType?t.appendChild(o):"string"==typeof o&&R(t,o)),i?t:e.appendChild(t)})},_=function(
 e,t,n){return B(a.createElement(e),e,t,n,!0)},D=Vo.decode,O=Vo.encodeAllRaw,P=function(e,t){var n=h(e);return t?n.each(function(){for(var e;e=this.firstChild;)3===e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():n.remove(),1<n.length?n.toArray():n[0]},L=function(e,t,n){h(e).toggleClass(t,n).each(function(){""===this.className&&en(this).attr("class",null)})},I=function(t,e,n){return T(e,function(e){return Lt.is(e,"array")&&(t=t.cloneNode(!0)),n&&ri(oi(e.childNodes),function(e){t.appendChild(e)}),e.parentNode.replaceChild(t,e)})},M=function(){return a.createRange()},F=function(e,t,n,r){if(Lt.isArray(e)){for(var o=e.length;o--;)e[o]=F(e[o],t,n,r);return e}return!u.collect||e!==a&&e!==i||l.push([e,t,n,r]),m.bind(e,t,n,r||q)},z=function(e,t,n){var r;if(Lt.isArray(e)){for(r=e.length;r--;)e[r]=z(e[r],t,n);return e}if(l&&(e===a||e===i))for(r=l.length;r--;){var o=
 l[r];e!==o[0]||t&&t!==o[1]||n&&n!==o[2]||m.unbind(o[0],o[1],o[2])}return m.unbind(e,t,n)},U=function(e){if(e&&Ao.isElement(e)){var t=e.getAttribute("data-mce-contenteditable");return t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null}return null},q={doc:a,settings:u,win:i,files:o,stdMode:!0,boxModel:!0,styleSheetLoader:e,boundEvents:l,styles:d,schema:f,events:m,isBlock:function(e){if("string"==typeof e)return!!n[e];if(e){var t=e.nodeType;if(t)return!(1!==t||!n[e.nodeName])}return!1},$:p,$$:h,root:null,clone:function(t,e){if(!ii||1!==t.nodeType||e)return t.cloneNode(e);if(!e){var n=a.createElement(t.nodeName);return ri(y(t),function(e){b(n,e.nodeName,v(t,e.nodeName))}),n}return null},getRoot:C,getViewPort:function(e){var t=e||i,n=t.document,r=n.documentElement;return{x:t.pageXOffset||r.scrollLeft,y:t.pageYOffset||r.scrollTop,w:t.innerWidth||r.clientWidth,h:t.innerHeight||r.clientHeight}},getR
 ect:function(e){var t,n;return e=g(e),t=x(e),n=N(e),{x:t.x,y:t.y,w:n.w,h:n.h}},getSize:N,getParent:function(e,t,n){var r=S(e,t,n,!1);return r&&0<r.length?r[0]:null},getParents:S,get:g,getNext:function(e,t){return k(e,t,"nextSibling")},getPrev:function(e,t){return k(e,t,"previousSibling")},select:function(e,t){return dt(e,g(t)||u.root_element||a,[])},is:E,add:B,create:_,createHTML:function(e,t,n){var r,o="";for(r in o+="<"+e,t)t.hasOwnProperty(r)&&null!==t[r]&&"undefined"!=typeof t[r]&&(o+=" "+r+'="'+O(t[r])+'"');return void 0!==n?o+">"+n+"</"+e+">":o+" />"},createFragment:function(e){var t,n=a.createElement("div"),r=a.createDocumentFragment();for(e&&(n.innerHTML=e);t=n.firstChild;)r.appendChild(t);return r},remove:P,setStyle:function(e,t,n){var r=h(e).css(t,n);u.update_styles&&ci(d,r)},getStyle:w,set
 Styles:function(e,t){var n=h(e).css(t);u.update_styles&&ci(d,n)},removeAllAttribs:function(e){return T(e,function(e){var t,n=e.attributes;for(t=n.length-1;0<=t;t--)e.removeAttributeNode(n.item(t))})},setAttrib:b,setAttribs:A,getAttrib:v,getPos:x,parseStyle:function(e){return d.parse(e)},serializeStyle:function(e,t){return d.serialize(e,t)},addStyle:function(e){var t,n;if(q!==fi.DOM&&a===document){if(r[e])return;r[e]=!0}(n=a.getElementById("mceDefaultStyles"))||((n=a.createElement("style")).id="mceDefaultStyles",n.type="text/css",(t=a.getElementsByTagName("head")[0]).firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(a.createTextNode(e))},loadCSS:function(e){var n;q===fi.DOM||a!==document?(e||(e=""),n=a.getElementsByTagName("head")[0],ri(e.split(","),function(e){var t;e=Lt._addCacheSuffix(e),o[e]||(o[e]=!0,t=_("link",
 {rel:"stylesheet",href:e}),n.appendChild(t))})):fi.DOM.loadCSS(e)},addClass:function(e,t){h(e).addClass(t)},removeClass:function(e,t){L(e,t,!1)},hasClass:function(e,t){return h(e).hasClass(t)},toggleClass:L,show:function(e){h(e).show()},hide:function(e){h(e).hide()},isHidden:function(e){return"none"===h(e).css("display")},uniqueId:function(e){return(e||"mce_")+t++},setHTML:R,getOuterHTML:function(e){var t="string"==typeof e?g(e):e;return Ao.isElement(t)?t.outerHTML:en("<div></div>").append(en(t).clone()).html()},setOuterHTML:function(e,t){h(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}P(en(this).html(t),!0)})},decode:D,encode:O,insertAfter:function(e,t){var r=g(t);return T(e,function(e){var t,n;return t=r.parentNode,(n=r.nextSibling)?t.insertBefore(e,n):t.appendChild(e),e})},replace:I,rename:function(t,e){var n;return t.nodeName!==e.toUpperCase()&&(n=_(e)
 ,ri(y(t),function(e){b(n,e.nodeName,v(t,e.nodeName))}),I(n,t,!0)),n||t},findCommonAncestor:function(e,t){for(var n,r=e;r;){for(n=t;n&&r!==n;)n=n.parentNode;if(r===n)break;r=r.parentNode}return!r&&e.ownerDocument?e.ownerDocument.documentElement:r},toHex:function(e){return d.toHex(Lt.trim(e))},run:T,getAttribs:y,isEmpty:function(e,t){var n,r,o,i,a,u,s=0;if(e=e.firstChild){a=new no(e,e.parentNode),t=t||(f?f.getNonEmptyElements():null),i=f?f.getWhiteSpaceElements():{};do{if(o=e.nodeType,Ao.isElement(e)){var c=e.getAttribute("data-mce-bogus");if(c){e=a.next("all"===c);continue}if(u=e.nodeName.toLowerCase(),t&&t[u]){if("br"===u){s++,e=a.next();continue}return!1}for(n=(r=y(e)).length;n--;)if("name"===(u=r[n].nodeName)||"data-mce-bookmark"===u)return!1}if(8===o)return!1;if(3===o&&!ui.test(e.nodeValue))return!1;if(3===o&&e.parentNode&&i[e.parentNode.nodeName]&&ui.test(e.nodeValue))return
 !1;e=a.next()}while(e)}return s<=1},createRng:M,nodeIndex:li,split:function(e,t,n){var r,o,i,a=M();if(e&&t)return a.setStart(e.parentNode,li(e)),a.setEnd(t.parentNode,li(t)),r=a.extractContents(),(a=M()).setStart(t.parentNode,li(t)+1),a.setEnd(e.parentNode,li(e)+1),o=a.extractContents(),(i=e.parentNode).insertBefore(_o.trimNode(q,r),e),n?i.insertBefore(n,e):i.insertBefore(t,e),i.insertBefore(_o.trimNode(q,o),e),P(e),n||t},bind:F,unbind:z,fire:function(e,t,n){return m.fire(e,t,n)},getContentEditable:U,getContentEditableParent:function(e){for(var t=C(),n=null;e&&e!==t&&null===(n=U(e));e=e.parentNode);return n},destroy:function(){if(l)for(var e=l.length;e--;){var t=l[e];m.unbind(t[0],t[1],t[2])}dt.setDocument&&dt.setDocument()},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "
 +e.endContainer.nodeName+", endOffset: "+e.endOffset}};return s=si(d,u,function(){return q}),q}(ni=fi||(fi={})).DOM=ni(document),ni.nodeIndex=li;var di=fi,mi=di.DOM,pi=Lt.each,gi=Lt.grep,hi=function(e){return"function"==typeof e},vi=function(){var f={},o=[],i={},a=[],d=0;this.isDone=function(e){return 2===f[e]},this.markDone=function(e){f[e]=2},this.add=this.load=function(e,t,n,r){f[e]===undefined&&(o.push(e),f[e]=0),t&&(i[e]||(i[e]=[]),i[e].push({success:t,failure:r,scope:n||this}))},this.remove=function(e){delete f[e],delete i[e]},this.loadQueue=function(e,t,n){this.loadScripts(o,e,t,n)},this.loadScripts=function(n,e,t,r){var s,c=[],l=function(t,e){pi(i[e],function(e){hi(e[t])&&e[t].call(e.scope)}),i[e]=undefined};a.push({success:e,failure:r,scope:t||this}),(s=function(){var e=gi(n);if(n.length=0,pi(e,function(e){var t,n,r,o,i,a,u;2!==f[e]?3!==f[e]?1!==f[e]&&(f[e]=1,d++,t=e,n=function(){f[e]=2,d--,l("success",e),s()},r=
 function(){f[e]=3,d--,c.push(e),l("failure",e),s()},u=function(){a.remove(i),o&&(o.onreadystatechange=o.onload=o=null),n()},i=(a=mi).uniqueId(),(o=document.createElement("script")).id=i,o.type="text/javascript",o.src=Lt._addCacheSuffix(t),"onreadystatechange"in o?o.onreadystatechange=function(){/loaded|complete/.test(o.readyState)&&u()}:o.onload=u,o.onerror=function(){hi(r)?r():"undefined"!=typeof console&&console.log&&console.log("Failed to load script: "+t)},(document.getElementsByTagName("head")[0]||document.body).appendChild(o)):l("failure",e):l("success",e)}),!d){var t=a.slice(0);a.length=0,pi(t,function(e){0===c.length?hi(e.success)&&e.success.call(e.scope):hi(e.failure)&&e.failure.call(e.scope,c)})}})()}};vi.ScriptLoader=new vi;var yi,bi=Lt.each;function Ci(){var r=this,o=[],a={},u={},i=[],s=function(e){var t;return u[e]&&(t=u[e].de
 pendencies),t||[]},c=function(e,t){return"object"==typeof t?t:"string"==typeof e?{prefix:"",resource:t,suffix:""}:{prefix:e.prefix,resource:t,suffix:e.suffix}},l=function(n,e,t){var r=s(name);bi(r,function(e){var t=c(n,e);f(t.resource,t,undefined,undefined)}),e&&(t?e.call(t):e.call(vi))},f=function(e,t,n,r,o){if(!a[e]){var i="string"==typeof t?t:t.prefix+t.resource+t.suffix;0!==i.indexOf("/")&&-1===i.indexOf("://")&&(i=Ci.baseURL+"/"+i),a[e]=i.substring(0,i.lastIndexOf("/")),u[e]?l(t,n,r):vi.ScriptLoader.add(i,function(){return l(t,n,r)},r,o)}};return{items:o,urls:a,lookup:u,_listeners:i,get:function(e){return u[e]?u[e].instance:undefined},dependencies:s,requireLangPack:function(e,t){var n=Ci.language;if(n&&!1!==Ci.languageLoad){if(t)if(-1!==(t=","+t+",").indexOf(","+n.substr(0,2)+","))n=n.substr(0,2);else if(-1===t.indexOf
 (","+n+","))return;vi.ScriptLoader.add(a[e]+"/langs/"+n+".js")}},add:function(t,e,n){o.push(e),u[t]={instance:e,dependencies:n};var r=H.partition(i,function(e){return e.name===t});return i=r.fail,bi(r.pass,function(e){e.callback()}),e},remove:function(e){delete a[e],delete u[e]},createUrl:c,addComponents:function(e,t){var n=r.urls[e];bi(t,function(e){vi.ScriptLoader.add(n+"/"+e)})},load:f,waitFor:function(e,t){u.hasOwnProperty(e)?t():i.push({name:e,callback:t})}}}(yi=Ci||(Ci={})).PluginManager=yi(),yi.ThemeManager=yi();var xi,wi="\ufeff",Ni=function(e){return e===wi},Ei=wi,Si=function(e){return e.replace(new RegExp(wi,"g"),"")},ki=Ao.isElement,Ti=Ao.isText,Ai=function(e){return Ti(e)&&(e=e.parentNode),ki(e)&&e.hasAttribute("data-mce-caret")},Ri=function(e){return Ti(e)&&Ni(e.data)},Bi=function(e){return Ai(e)||Ri(e)},_i=function(e){return e.firstChild!==e.lastChild||!Ao.
 isBr(e.firstChild)},Di=function(e){var t=e.container();return e&&Ao.isText(t)&&t.data.charAt(e.offset())===Ei},Oi=function(e){var t=e.container();return e&&Ao.isText(t)&&t.data.charAt(e.offset()-1)===Ei},Pi=function(e,t,n){var r,o,i;return(r=t.ownerDocument.createElement(e)).setAttribute("data-mce-caret",n?"before":"after"),r.setAttribute("data-mce-bogus","all"),r.appendChild(((i=document.createElement("br")).setAttribute("data-mce-bogus","1"),i)),o=t.parentNode,n?o.insertBefore(r,t):t.nextSibling?o.insertBefore(r,t.nextSibling):o.appendChild(r),r},Li=function(e){return Ti(e)&&e.data[0]===Ei},Ii=function(e){return Ti(e)&&e.data[e.data.length-1]===Ei},Mi=function(e){return e&&e.hasAttribute("data-mce-caret")?(t=e.getElementsByTagName("br"),n=t[t.length-1],Ao.isBogus(n)&&n.parentNode.removeChild(n),e.removeAttribute("d
 ata-mce-caret"),e.removeAttribute("data-mce-bogus"),e.removeAttribute("style"),e.removeAttribute("_moz_abspos"),e):null;var t,n},Fi=Ao.isContentEditableTrue,zi=Ao.isContentEditableFalse,Ui=Ao.isBr,qi=Ao.isText,Vi=Ao.matchNodeNames("script style textarea"),Hi=Ao.matchNodeNames("img input textarea hr iframe video audio object"),ji=Ao.matchNodeNames("table"),$i=Bi,Wi=function(e){return!$i(e)&&(qi(e)?!Vi(e.parentNode):Hi(e)||Ui(e)||ji(e)||Ki(e))},Ki=function(e){return!1===(t=e,Ao.isElement(t)&&"true"===t.getAttribute("unselectable"))&&zi(e);var t},Xi=function(e,t){return Wi(e)&&function(e,t){for(e=e.parentNode;e&&e!==t;e=e.parentNode){if(Ki(e))return!1;if(Fi(e))return!0}return!0}(e,t)},Yi=Math.round,Gi=function(e){return e?{left:Yi(e.left),top:Yi(e.top),bottom:Yi(e.bottom),right:Yi(e.right),width:Yi(e.width),height:Yi(e.height)}:{left:0,top:0,bottom:0,right:0,widt
 h:0,height:0}},Ji=function(e,t){return e=Gi(e),t||(e.left=e.left+e.width),e.right=e.left,e.width=0,e},Qi=function(e,t,n){return 0<=e&&e<=Math.min(t.height,n.height)/2},Zi=function(e,t){return e.bottom-e.height/2<t.top||!(e.top>t.bottom)&&Qi(t.top-e.bottom,e,t)},ea=function(e,t){return e.top>t.bottom||!(e.bottom<t.top)&&Qi(t.bottom-e.top,e,t)},ta=function(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes()&&e.endOffset===n+1?t.childNodes[n]:null},na=function(e,t){return 1===e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e},ra=new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093
 a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd
 \u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]"),oa=function(e){return"string"==typeof e&
 amp;&768<=e.charCodeAt(0)&&ra.test(e)},ia=[].slice,aa=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=ia.call(arguments);return r.length-1>=e.length?e.apply(this,r.slice(1)):function(){var e=r.concat([].slice.call(arguments));return aa.apply(this,e)}},ua={constant:function(e){return function(){return e}},negate:function(t){return function(e){return!t(e)}},and:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=ia.call(arguments);return function(e){for(var t=0;t<n.length;t++)if(!n[t](e))return!1;return!0}},or:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=ia.call(arguments);return function(e){for(var t=0;t<n.length;t++)if(n[t](e))return!0;return!1}},curry:aa,compose:function(t,n){return function(e){return t(n(e))}},noop:function(){}},sa=function(e,t){for(var n=[],r=0;r<e.length;r++){var o=e[r];if(!o.isSome())return A.none();n.push(o.getOrDie())}return A.some(t.apply(nu
 ll,n))},ca=Ao.isElement,la=Wi,fa=Ao.matchStyleValues("display","block table"),da=Ao.matchStyleValues("float","left right"),ma=ua.and(ca,la,ua.negate(da)),pa=ua.negate(Ao.matchStyleValues("white-space","pre pre-line pre-wrap")),ga=Ao.isText,ha=Ao.isBr,va=di.nodeIndex,ya=na,ba=function(e){return"createRange"in e?e.createRange():di.DOM.createRng()},Ca=function(e){return e&&/[\r\n\t ]/.test(e)},xa=function(e){return!!e.setStart&&!!e.setEnd},wa=function(e){var t,n=e.startContainer,r=e.startOffset;return!!(Ca(e.toString())&&pa(n.parentNode)&&Ao.isText(n)&&(t=n.data,Ca(t[r-1])||Ca(t[r+1])))},Na=function(e){return 0===e.left&&0===e.right&&0===e.top&&0===e.bottom},Ea=function(e){var t,n,r,o,i,a,u,s;return t=0<(n=e.getClientRects()).length?Gi(n[0]):Gi(e.getBoundingClientRect()),!xa(e)&&ha(e)&&Na(t)?(i=(r=e).ownerDocument,a=ba(i),u=i.createTex
 tNode("\xa0"),(s=r.parentNode).insertBefore(u,r),a.setStart(u,0),a.setEnd(u,1),o=Gi(a.getBoundingClientRect()),s.removeChild(u),o):Na(t)&&xa(e)?function(e){var t=e.startContainer,n=e.endContainer,r=e.startOffset,o=e.endOffset;if(t===n&&Ao.isText(n)&&0===r&&1===o){var i=e.cloneRange();return i.setEndAfter(n),Ea(i)}return null}(e):t},Sa=function(e,t){var n=Ji(e,t);return n.width=1,n.right=n.left+1,n},ka=function(e){var t,n,r=[],o=function(e){var t,n;0!==e.height&&(0<r.length&&(t=e,n=r[r.length-1],t.left===n.left&&t.top===n.top&&t.bottom===n.bottom&&t.right===n.right)||r.push(e))},i=function(e,t){var n=ba(e.ownerDocument);if(t<e.data.length){if(oa(e.data[t]))return r;if(oa(e.data[t-1])&&(n.setStart(e,t),n.setEnd(e,t+1),!wa(n)))return o(Sa(Ea(n),!1)),r}0<t&&(n.setStart(e,t-1),n.setEnd(e,t),wa(n)||o(Sa(Ea(n),!1))),t<e.data.length&&(n.setStart(e,t),n.setEnd(e,t+1),wa(n)||o
 (Sa(Ea(n),!0)))};if(ga(e.container()))return i(e.container(),e.offset()),r;if(ca(e.container()))if(e.isAtEnd())n=ya(e.container(),e.offset()),ga(n)&&i(n,n.data.length),ma(n)&&!ha(n)&&o(Sa(Ea(n),!1));else{if(n=ya(e.container(),e.offset()),ga(n)&&i(n,0),ma(n)&&e.isAtEnd())return o(Sa(Ea(n),!1)),r;t=ya(e.container(),e.offset()-1),ma(t)&&!ha(t)&&(fa(t)||fa(n)||!ma(n))&&o(Sa(Ea(t),!1)),ma(n)&&o(Sa(Ea(n),!0))}return r};function Ta(t,n,e){var r=function(){return e||(e=ka(Ta(t,n))),e};return{container:ua.constant(t),offset:ua.constant(n),toRange:function(){var e;return(e=ba(t.ownerDocument)).setStart(t,n),e.setEnd(t,n),e},getClientRects:r,isVisible:function(){return 0<r().length},isAtStart:function(){return ga(t),0===n},isAtEnd:function(){return ga(t)?n>=t.data.length:n>=t.childNodes.length},isEqual:function(e){return e&&t===e.container()&&n===e.offset()},getNode:function(e){return ya(t,e?n-1:n)
 }}}(xi=Ta||(Ta={})).fromRangeStart=function(e){return xi(e.startContainer,e.startOffset)},xi.fromRangeEnd=function(e){return xi(e.endContainer,e.endOffset)},xi.after=function(e){return xi(e.parentNode,va(e)+1)},xi.before=function(e){return xi(e.parentNode,va(e))},xi.isAbove=function(e,t){return sa([H.head(t.getClientRects()),H.last(e.getClientRects())],Zi).getOr(!1)},xi.isBelow=function(e,t){return sa([H.last(t.getClientRects()),H.head(e.getClientRects())],ea).getOr(!1)},xi.isAtStart=function(e){return!!e&&e.isAtStart()},xi.isAtEnd=function(e){return!!e&&e.isAtEnd()},xi.isTextPosition=function(e){return!!e&&Ao.isText(e.container())},xi.isElementPosition=function(e){return!1===xi.isTextPosition(e)};var Aa,Ra,Ba=Ta,_a=Ao.isElement,Da=Ao.isText,Oa=function(e){var t=e.parentNode;t&&t.removeChild(e)},Pa=function(e,t){0===t.length?Oa(e):e.nodeValue=t},La=function(e){var t=Si(e);return{count:e.length-t.length,text:t}},Ia=function(e,t){return za(e),t},Ma=func
 tion(e,t){return Da(e)&&t.container()===e?(r=t,o=La((n=e).data.substr(0,r.offset())),i=La(n.data.substr(r.offset())),0<(a=o.text+i.text).length?(Pa(n,a),Ba(n,r.offset()-o.count)):r):Ia(e,t);var n,r,o,i,a},Fa=function(e,t){return t.container()===e.parentNode?(n=e,o=(r=t).container(),i=H.indexOf(H.from(o.childNodes),n).map(function(e){return e<r.offset()?Ba(o,r.offset()-1):r}).getOr(r),za(n),i):Ia(e,t);var n,r,o,i},za=function(e){if(_a(e)&&Bi(e)&&(_i(e)?e.removeAttribute("data-mce-caret"):Oa(e)),Da(e)){var t=Si(function(e){try{return e.nodeValue}catch(t){return""}}(e));Pa(e,t)}},Ua={removeAndReposition:function(e,t){return Ba.isTextPosition(t)?Ma(e,t):Fa(e,t)},remove:za},qa=function(e){return Ba.isTextPosition(e)?0===e.offset():Wi(e.getNode())},Va=function(e){if(Ba.isTextPosition(e)){var t=e.container();return e.offset()===t.data.length}return Wi(e.getNode(!0))},Ha=function(e,t){return!Ba.isTextPosition(e)&&!Ba.isTextPosition(t
 )&&e.getNode()===t.getNode(!0)},ja=function(e,t,n){return e?!Ha(t,n)&&(r=t,!(!Ba.isTextPosition(r)&&Ao.isBr(r.getNode())))&&Va(t)&&qa(n):!Ha(n,t)&&qa(t)&&Va(n);var r},$a=function(e,t,n){var r=js(t);return A.from(e?r.next(n):r.prev(n))},Wa=function(e,t){var n,r,o,i,a,u=e?t.firstChild:t.lastChild;return Ao.isText(u)?A.some(Ba(u,e?0:u.data.length)):u?Wi(u)?A.some(e?Ba.before(u):(a=u,Ao.isBr(a)?Ba.before(a):Ba.after(a))):(r=t,o=u,i=(n=e)?Ba.before(o):Ba.after(o),$a(n,r,i)):A.none()},Ka={fromPosition:$a,nextPosition:V.curry($a,!0),prevPosition:V.curry($a,!1),navigate:function(t,n,r){return $a(t,n,r).bind(function(e){return ps(r,e,n)&&ja(t,r,e)?$a(t,n,e):A.some(e)})},positionIn:Wa,firstPositionIn:V.curry(Wa,!0),lastPositionIn:V.curry(Wa,!1)},Xa=Ao.isContentEditableTrue,Ya=Ao.isContentEditableFalse,Ga=function(e,t,n,r,o){return t._selectionOverrides.showCaret(e,n,r,o)},Ja=function(e,t){var n,r;return e.fire("BeforeObjectS
 elected",{target:t}).isDefaultPrevented()?null:((r=(n=t).ownerDocument.createRange()).selectNode(n),r)},Qa=function(e,t,n){var r=Cs(1,e.getBody(),t),o=Ba.fromRangeStart(r),i=o.getNode();if(Ya(i))return Ga(1,e,i,!o.isAtEnd(),!1);var a=o.getNode(!0);if(Ya(a))return Ga(1,e,a,!1,!1);var u=e.dom.getParent(o.getNode(),function(e){return Ya(e)||Xa(e)});return Ya(u)?Ga(1,e,u,!1,n):null},Za=function(e,t,n){if(!t||!t.collapsed)return t;var r=Qa(e,t,n);return r||t};(Ra=Aa||(Aa={}))[Ra.Br=0]="Br",Ra[Ra.Block=1]="Block",Ra[Ra.Wrap=2]="Wrap",Ra[Ra.Eol=3]="Eol";var eu,tu,nu=function(e,t){return e===eu.Backwards?t.reverse():t},ru=function(e,t,n,r){for(var o,i,a,u,s,c,l=js(n),f=r,d=[];f&&(s=l,c=f,o=t===eu.Forwards?s.next(c):s.prev(c));){if(Ao.isBr(o.getNode(!1)))return t===eu.Forwards?{positions:nu(t,d).concat([o]),breakType:Aa.Br,breakAt:A.some(o)}:{positions:nu(t,d),breakType:Aa.Br,breakAt:A.some(o)};if(o.isVisible()){if(e(f,o)){var m=(i=t,a=f,u
 =o,Ao.isBr(u.getNode(i===eu.Forwards))?Aa.Br:!1===ps(a,u)?Aa.Block:Aa.Wrap);return{positions:nu(t,d),breakType:m,breakAt:A.some(o)}}d.push(o),f=o}else f=o}return{positions:nu(t,d),breakType:Aa.Eol,breakAt:A.none()}},ou=function(n,r,o,e){return r(o,e).breakAt.map(function(e){var t=r(o,e).positions;return n===eu.Backwards?t.concat(e):[e].concat(t)}).getOr([])},iu=function(e,i){return H.foldl(e,function(e,o){return e.fold(function(){return A.some(o)},function(r){return sa([H.head(r.getClientRects()),H.head(o.getClientRects())],function(e,t){var n=Math.abs(i-e.left);return Math.abs(i-t.left)<=n?o:r}).or(e)})},A.none())},au=function(t,e){return H.head(e.getClientRects()).bind(function(e){return iu(t,e.left)})},uu=V.curry(ru,Ta.isAbove,-1),su=V.curry(ru,Ta.isBelow,1),cu=V.curry(ou,-1,uu),lu=V.curry(ou,1,su),fu=function(e,t){return Br.all(t,e)},du=function(e,t,n,r,o){var i,a,u,s,c,l=fu(qn.fromDom(n),"td,th").map(function(e){return e.dom()}),f=H.filter((i=e,a=l,H.bind(a,functio
 n(e){var t,n,r=(t=e.getBoundingClientRect(),n=-1,{left:t.left-n,top:t.top-n,right:t.right+2*n,bottom:t.bottom+2*n,width:t.width+n,height:t.height+n});return[{x:r.left,y:i(r),cell:e},{x:r.right,y:i(r),cell:e}]})),function(e){return t(e,o)});return(u=f,s=r,c=o,H.foldl(u,function(e,r){return e.fold(function(){return A.some(r)},function(e){var t=Math.sqrt(Math.abs(e.x-s)+Math.abs(e.y-c)),n=Math.sqrt(Math.abs(r.x-s)+Math.abs(r.y-c));return A.some(n<t?r:e)})},A.none())).map(function(e){return e.cell})},mu=V.curry(du,function(e){return e.bottom},function(e,t){return e.y<t}),pu=V.curry(du,function(e){return e.top},function(e,t){return e.y>t}),gu=function(t,n){return H.head(n.getClientRects()).bind(function(e){return mu(t,e.left,e.top)}).bind(function(e){return au((t=e,Ka.lastPositionIn(t).map(function(e){return uu(t,e).positions.concat(e)}).getOr([])),n);var t})},hu=function(t,n){return H.last(n.getClientRects()).bind(function(e){return pu(t,e.left,e.top)}).bind(function(e){return 
 au((t=e,Ka.firstPositionIn(t).map(function(e){return[e].concat(su(t,e).positions)}).getOr([])),n);var t})},vu=function(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}},yu=function(e,t,n){var r,o,i,a,u,s=e.dom,c=s.getRoot(),l=0;if(u={elm:t,alignToTop:n},e.fire("scrollIntoView",u),!u.isDefaultPrevented()&&Ao.isElement(t)){if(!1===n&&(l=t.offsetHeight),"BODY"!==c.nodeName){var f=e.selection.getScrollContainer();if(f)return r=vu(t).y-vu(f).y+l,a=f.clientHeight,void((r<(i=f.scrollTop)||i+a<r+25)&&(f.scrollTop=r<i?r:r-a+25))}o=s.getViewPort(e.getWin()),r=s.getPos(t).y+l,i=o.y,a=o.h,(r<o.y||i+a<r+25)&&e.getWin().scrollTo(0,r<i?r:r-a+25)}},bu=function(d,e){H.head(Ta.fromRangeStart(e).getClientRects()).each(function(e){var t,n,r,o,i,a,u,s,c,l=function(e){if(e.inline)return e.getBody().getBoundingClientRect();var t=e.getWin();return{left:0,right:t.innerWidt
 h,top:0,bottom:t.innerHeight,width:t.innerWidth,height:t.innerHeight}}(d),f={x:(i=t=l,a=n=e,a.left>i.left&&a.right<i.right?0:a.left<i.left?a.left-i.left:a.right-i.right),y:(r=t,o=n,o.top>r.top&&o.bottom<r.bottom?0:o.top<r.top?o.top-r.top:o.bottom-r.bottom)};s=0!==f.x?0<f.x?f.x+4:f.x-4:0,c=0!==f.y?0<f.y?f.y+4:f.y-4:0,(u=d).inline?(u.getBody().scrollLeft+=s,u.getBody().scrollTop+=c):u.getWin().scrollBy(s,c)})},Cu=function(e,t,n){var r=e.getParam(t,n);if(-1!==r.indexOf("=")){var o=e.getParam(t,"","hash");return o.hasOwnProperty(e.id)?o[e.id]:n}return r},xu=function(e){return e.getParam("iframe_attrs",{})},wu=function(e){return e.getParam("doctype","<!DOCTYPE html>")},Nu=function(e){return e.getParam("document_base_url","")},Eu=function(e){return Cu(e,"body_id","tinymce")},Su=function(e){return Cu(e,"body_class","")},ku=fun
 ction(e){return e.getParam("content_security_policy","")},Tu=function(e){return e.getParam("br_in_pre",!0)},Au=function(e){if(e.getParam("force_p_newlines",!1))return"p";var t=e.getParam("forced_root_block","p");return!1===t?"":t},Ru=function(e){return e.getParam("forced_root_block_attrs",{})},Bu=function(e){return e.getParam("br_newline_selector",".mce-toc h2,figcaption,caption")},_u=function(e){return e.getParam("no_newline_selector","")},Du=function(e){return e.getParam("keep_styles",!0)},Ou=function(e){return e.getParam("end_container_on_empty_block",!1)},Pu=function(e){return Lt.explode(e.getParam("font_size_style_values",""))},Lu=function(e){return Lt.explode(e.getParam("font_size_classes",""))},Iu=function(t,n){qr.parent(t).each(function(e){e.dom().insertBefore(n.dom(),t.dom())})},Mu=funct
 ion(e,t){e.dom().appendChild(t.dom())},Fu={before:Iu,after:function(e,t){qr.nextSibling(e).fold(function(){qr.parent(e).each(function(e){Mu(e,t)})},function(e){Iu(e,t)})},prepend:function(t,n){qr.firstChild(t).fold(function(){Mu(t,n)},function(e){t.dom().insertBefore(n.dom(),e.dom())})},append:Mu,appendAt:function(e,t,n){qr.child(e,n).fold(function(){Mu(e,t)},function(e){Iu(e,t)})},wrap:function(e,t){Iu(e,t),Mu(t,e)}},zu=zn.detect().browser,Uu=function(){return zu.isIE()||zu.isEdge()||zu.isFirefox()},qu=function(e,t){e.selection.setRng(t),bu(e,t)},Vu=function(t,n,e){var r=t(n,e);return r.breakType===Aa.Wrap&&0===r.positions.length?r.breakAt.map(function(e){return t(n,e).breakAt.isNone()}).getOr(!0):r.breakAt.isNone()},Hu=ua.curry(Vu,uu),ju=ua.curry(Vu,su),$u=function(e,t,n,r){var o,i,a,u,s=e.selection.getRng(),c=t?1:-1;if(Uu()&&(o=t,i=s,a=n,u=Ba.fromRangeStart(i),Ka.positionIn(!o,a).map(function(e){return e.isEqual(u)}).getOr(!1))){var l=Ga(c,e,n,!t,!0);return qu(e,l
 ),!0}return!1},Wu=function(e,t){var n=t.getNode(e);return Ao.isElement(n)&&"TABLE"===n.nodeName?A.some(n):A.none()},Ku=function(u,s,c){var e=Wu(!!s,c),t=!1===s;e.fold(function(){return qu(u,c.toRange())},function(a){return Ka.positionIn(t,u.getBody()).filter(function(e){return e.isEqual(c)}).fold(function(){return qu(u,c.toRange())},function(e){return n=s,o=a,t=c,void((i=Au(r=u))?r.undoManager.transact(function(){var e=qn.fromTag(i);cr.setAll(e,Ru(r)),Fu.append(e,qn.fromTag("br")),n?Fu.after(qn.fromDom(o),e):Fu.before(qn.fromDom(o),e);var t=r.dom.createRng();t.setStart(e.dom(),0),t.setEnd(e.dom(),0),qu(r,t)}):qu(r,t.toRange()));var n,r,o,t,i})})},Xu=function(e,t,n,r){var o,i,a,u,s,c,l=e.selection.getRng(),f=Ba.fromRangeStart(l),d=e.getBody();if(!t&&Hu(r,f)){var m=(u=d,gu(s=n,c=f).orThunk(function(){return H.head(c.getClientRects()).bind(function(e){return iu(cu(u,Ba.before(s)),e.left)})}).getOr(Ba.before(s)));return Ku(e,t,m),!0}return!(!t||!ju(r,
 f))&&(o=d,m=hu(i=n,a=f).orThunk(function(){return H.head(a.getClientRects()).bind(function(e){return iu(lu(o,Ba.after(i)),e.left)})}).getOr(Ba.after(i)),Ku(e,t,m),!0)},Yu=function(t,n){return function(){return A.from(t.dom.getParent(t.selection.getNode(),"td,th")).bind(function(e){return A.from(t.dom.getParent(e,"table")).map(function(e){return $u(t,n,e)})}).getOr(!1)}},Gu=function(n,r){return function(){return A.from(n.dom.getParent(n.selection.getNode(),"td,th")).bind(function(t){return A.from(n.dom.getParent(t,"table")).map(function(e){return Xu(n,r,e,t)})}).getOr(!1)}},Ju=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return Ju(n())}}},Qu=Ao.isContentEditableFalse,Zu=function(e,t,n){var r,o,i,a,u,s=Ji(t.getBoundingClientRect(),n);return"BODY"===e.tagName?(r=e.ownerDocument.documentElement,o=e.scrollLeft||r.scrollLeft,i=e.scrollTop||r.scrollTop):(u=e.getBoundingClientRect(),o=
 e.scrollLeft-u.left,i=e.scrollTop-u.top),s.left+=o,s.right+=o,s.top+=i,s.bottom+=i,s.width=1,0<(a=t.offsetWidth-t.clientWidth)&&(n&&(a*=-1),s.left+=a,s.right+=a),s},es=function(a,u,e){var t,s,c=Ju(A.none()),l=function(){!function(e){var t,n,r,o,i;for(t=en("*[contentEditable=false]",e),o=0;o<t.length;o++)r=(n=t[o]).previousSibling,Ii(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(i.length-1,1)),r=n.nextSibling,Li(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(0,1))}(a),s&&(Ua.remove(s),s=null),c.get().each(function(e){en(e.caret).remove(),c.set(A.none())}),clearInterval(t)},f=function(){t=Ce.setInterval(function(){e()?en("div.mce-visual-caret",a).toggleClass("mce-visual-caret-hidden"):en("div.mce-visual-caret",a).addClass("mce-visual-caret-hidden")},500)};return{show:function(t,e){var n,r,o;if(l(),o=e,Ao.isElement(o)&&/^(TD|TH)$/i.test(o.ta
 gName))return null;if(!u(e))return s=function(e,t){var n,r,o;if(r=e.ownerDocument.createTextNode(Ei),o=e.parentNode,t){if(n=e.previousSibling,Ti(n)){if(Bi(n))return n;if(Ii(n))return n.splitText(n.data.length-1)}o.insertBefore(r,e)}else{if(n=e.nextSibling,Ti(n)){if(Bi(n))return n;if(Li(n))return n.splitText(1),n}e.nextSibling?o.insertBefore(r,e.nextSibling):o.appendChild(r)}return r}(e,t),r=e.ownerDocument.createRange(),Qu(s.nextSibling)?(r.setStart(s,0),r.setEnd(s,0)):(r.setStart(s,1),r.setEnd(s,1)),r;s=Pi("p",e,t),n=Zu(a,e,t),en(s).css("top",n.top);var i=en('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(n).appendTo(a)[0];return c.set(A.some({caret:i,element:e,before:t})),c.get().each(function(e){t&&en(e.caret).addClass("mce-visual-caret-before")}),f(),(r=e.ownerDocument.createRange()).setStart(s,0),r.setEnd(s,0),r},hide:l,getCss:function(){return".mce-visual-caret {position: absolute;backg
 round-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"},reposition:function(){c.get().each(function(e){var t=Zu(a,e.element,e.before);en(e.caret).css(t)})},destroy:function(){return Ce.clearInterval(t)}}},ts=function(e){return Qu(e)||Ao.isTable(e)&&Uu()},ns=Ao.isContentEditableFalse,rs=Ao.matchStyleValues("display","block table table-cell table-caption list-item"),os=Bi,is=Ai,as=ua.curry,us=Ao.isElement,ss=Wi,cs=function(e){return 0<e},ls=function(e){return e<0},fs=function(e,t){for(var n;n=e(t);)if(!is(n))return n;return null},ds=function(e,t,n,r,o){var i=new no(e,r);if(ls(t)){if((ns(e)||is(e))&&n(e=fs(i.prev,!0)))return e;for(;e=fs(i.prev,o);)if(n(e))return e}if(cs(t)){if((ns(e)||is(e))&&n(e=fs(i.next,!0)))return e;for(;e=fs(i.next,o);)if(n(e))return e}return null},ms=function(e,t){for(;e&&amp
 ;e!==t;){if(rs(e))return e;e=e.parentNode}return null},ps=function(e,t,n){return ms(e.container(),n)===ms(t.container(),n)},gs=function(e,t){var n,r;return t?(n=t.container(),r=t.offset(),us(n)?n.childNodes[r+e]:null):null},hs=function(e,t){var n=t.ownerDocument.createRange();return e?(n.setStartBefore(t),n.setEndBefore(t)):(n.setStartAfter(t),n.setEndAfter(t)),n},vs=function(e,t,n){var r,o,i,a;for(o=e?"previousSibling":"nextSibling";n&&n!==t;){if(r=n[o],os(r)&&(r=r[o]),ns(r)){if(a=n,ms(r,i=t)===ms(a,i))return r;break}if(ss(r))break;n=n.parentNode}return null},ys=as(hs,!0),bs=as(hs,!1),Cs=function(e,t,n){var r,o,i,a,u=as(vs,!0,t),s=as(vs,!1,t);if(o=n.startContainer,i=n.startOffset,Ai(o)){if(us(o)||(o=o.parentNode),"before"===(a=o.getAttribute("data-mce-caret"))&&(r=o.nextSibling,ts(r)))return ys(r);if("after"===a&&(r=o.previousSibling,ts(r)))return bs(r)}if(!n.collapsed)return n;if(Ao.isText(o)){if(os(
 o)){if(1===e){if(r=s(o))return ys(r);if(r=u(o))return bs(r)}if(-1===e){if(r=u(o))return bs(r);if(r=s(o))return ys(r)}return n}if(Ii(o)&&i>=o.data.length-1)return 1===e&&(r=s(o))?ys(r):n;if(Li(o)&&i<=1)return-1===e&&(r=u(o))?bs(r):n;if(i===o.data.length)return(r=s(o))?ys(r):n;if(0===i)return(r=u(o))?bs(r):n}return n},xs=function(e,t){var n=gs(e,t);return ns(n)&&!Ao.isBogusAll(n)},ws=function(e,t){return Ao.isTable(gs(e,t))},Ns=function(e,t){return A.from(gs(e?0:-1,t)).filter(ns)},Es=function(e,t,n){var r=Cs(e,t,n);return-1===e?Ta.fromRangeStart(r):Ta.fromRangeEnd(r)},Ss=as(xs,0),ks=as(xs,-1),Ts=as(ws,0),As=as(ws,-1);(tu=eu||(eu={}))[tu.Backwards=-1]="Backwards",tu[tu.Forwards=1]="Forwards";var Rs,Bs,_s,Ds,Os,Ps=Ao.isContentEditableFalse,Ls=Ao.isText,Is=Ao.isElement,Ms=Ao.isBr,Fs=Wi,zs=function(e){return Hi(e)||!!Ki(t=e)&&!0!==Bt.reduce(t.getElementsByTagName("*"),function(e,t){return e||Fi(t)},!1);var
  t},Us=Xi,qs=function(e,t){return e.hasChildNodes()&&t<e.childNodes.length?e.childNodes[t]:null},Vs=function(e,t){if(cs(e)){if(Fs(t.previousSibling)&&!Ls(t.previousSibling))return Ba.before(t);if(Ls(t))return Ba(t,0)}if(ls(e)){if(Fs(t.nextSibling)&&!Ls(t.nextSibling))return Ba.after(t);if(Ls(t))return Ba(t,t.data.length)}return ls(e)?Ms(t)?Ba.before(t):Ba.after(t):Ba.before(t)},Hs=function(e,t,n){var r,o,i,a,u;if(!Is(n)||!t)return null;if(t.isEqual(Ba.after(n))&&n.lastChild){if(u=Ba.after(n.lastChild),ls(e)&&Fs(n.lastChild)&&Is(n.lastChild))return Ms(n.lastChild)?Ba.before(n.lastChild):u}else u=t;var s,c,l,f=u.container(),d=u.offset();if(Ls(f)){if(ls(e)&&0<d)return Ba(f,--d);if(cs(e)&&d<f.length)return Ba(f,++d);r=f}else{if(ls(e)&&0<d&&(o=qs(f,d-1),Fs(o)))return!zs(o)&&(i=ds(o,e,Us,o))?Ls(i)?Ba(i,i.data.length):Ba.after(i):Ls(o)?Ba(o,o.data.length):Ba.before(o);if(cs(e)&&d<
 f.childNodes.length&&(o=qs(f,d),Fs(o)))return Ms(o)&&n.lastChild===o?null:(s=o,c=n,Ao.isBr(s)&&(l=Hs(1,Ba.after(s),c))&&!ps(Ba.before(s),Ba.before(l),c)?Hs(e,Ba.after(o),n):!zs(o)&&(i=ds(o,e,Us,o))?Ls(i)?Ba(i,0):Ba.before(i):Ls(o)?Ba(o,0):Ba.after(o));r=o||u.getNode()}return(cs(e)&&u.isAtEnd()||ls(e)&&u.isAtStart())&&(r=ds(r,e,ua.constant(!0),n,!0),Us(r,n))?Vs(e,r):(o=ds(r,e,Us,n),!(a=Bt.last(Bt.filter(function(e,t){for(var n=[];e&&e!==t;)n.push(e),e=e.parentNode;return n}(f,n),Ps)))||o&&a.contains(o)?o?Vs(e,o):null:u=cs(e)?Ba.after(a):Ba.before(a))},js=function(t){return{next:function(e){return Hs(eu.Forwards,e,t)},prev:function(e){return Hs(eu.Backwards,e,t)}}},$s=function(e){return Lt.grep(e.childNodes,function(e){return"LI"===e.nodeName})},Ws=function(e){return e&&e.firstChild&&e.firstChild===e.lastChild&&("\xa0"===(t=e.firstChild).data||Ao.isBr(t));var t},
 Ks=function(e){return 0<e.length&&(!(t=e[e.length-1]).firstChild||Ws(t))?e.slice(0,-1):e;var t},Xs=function(e,t){var n=e.getParent(t,e.isBlock);return n&&"LI"===n.nodeName?n:null},Ys=function(e,t){var n=Ba.after(e),r=js(t).prev(n);return r?r.toRange():null},Gs=function(t,e,n){var r,o,i,a,u=t.parentNode;return Lt.each(e,function(e){u.insertBefore(e,t)}),r=t,o=n,i=Ba.before(r),(a=js(o).next(i))?a.toRange():null},Js=function(e,t){var n,r,o,i,a,u,s=t.firstChild,c=t.lastChild;return s&&"meta"===s.name&&(s=s.next),c&&"mce_marker"===c.attr("id")&&(c=c.prev),r=c,u=(n=e).getNonEmptyElements(),r&&(r.isEmpty(u)||(o=r,n.getBlockElements()[o.name]&&(a=o).firstChild&&a.firstChild===a.lastChild&&("br"===(i=o.firstChild).name||"\xa0"===i.value)))&&(c=c.prev),!(!s||s!==c||"ul"!==s.name&&"ol"!==s.name)},Qs=function(e,o,i,t){
 var n,r,a,u,s,c,l,f,d,m,p,g,h,v,y,b,C,x,w,N=(n=o,r=t,c=e.serialize(r),l=n.createFragment(c),u=(a=l).firstChild,s=a.lastChild,u&&"META"===u.nodeName&&u.parentNode.removeChild(u),s&&"mce_marker"===s.id&&s.parentNode.removeChild(s),a),E=Xs(o,i.startContainer),S=Ks($s(N.firstChild)),k=o.getRoot(),T=function(e){var t=Ba.fromRangeStart(i),n=js(o.getRoot()),r=1===e?n.prev(t):n.next(t);return!r||Xs(o,r.getNode())!==E};return T(1)?Gs(E,S,k):T(2)?(f=E,d=S,m=k,o.insertAfter(d.reverse(),f),Ys(d[0],m)):(g=S,h=k,v=p=E,b=(y=i).cloneRange(),C=y.cloneRange(),b.setStartBefore(v),C.setEndAfter(v),x=[b.cloneContents(),C.cloneContents()],(w=p.parentNode).insertBefore(x[0],p),Lt.each(g,function(e){w.insertBefore(e,p)}),w.insertBefore(x[1],p),w.removeChild(p),Ys(g[g.length-1],h))},Zs=function(e,t){return!!Xs(e,t)},ec=Ao.isText,tc=Ao.isBogus,nc=di.nodeIndex,rc=function(e){var t=e.parentNode;return tc(t)?rc(t):t},oc=function(e){return e?Bt.reduce(e.childNo
 des,function(e,t){return tc(t)&&"BR"!==t.nodeName?e=e.concat(oc(t)):e.push(t),e},[]):[]},ic=function(t){return function(e){return t===e}},ac=function(e){var t,r,n,o;return(ec(e)?"text()":e.nodeName.toLowerCase())+"["+(r=oc(rc(t=e)),n=Bt.findIndex(r,ic(t),t),r=r.slice(0,n+1),o=Bt.reduce(r,function(e,t,n){return ec(t)&&ec(r[n-1])&&e++,e},0),r=Bt.filter(r,Ao.matchNodeNames(t.nodeName)),(n=Bt.findIndex(r,ic(t),t))-o)+"]"},uc=function(e,t){var n,r,o,i,a,u=[];return n=t.container(),r=t.offset(),ec(n)?o=function(e,t){for(;(e=e.previousSibling)&&ec(e);)t+=e.data.length;return t}(n,r):(r>=(i=n.childNodes).length?(o="after",r=i.length-1):o="before",n=i[r]),u.push(ac(n)),a=function(e,t,n){var r=[];for(t=t.parentNode;!(t===e||n&&n(t));t=t.parentNode)r.push(t);return r}(e,n),a=Bt.filter(a,ua.negate(Ao.isBogus)),(u=u.concat(Bt.map(a,function(e){return ac(e)}))).reverse().join("/")+&quo
 t;,"+o},sc=function(e,t){var n,r,o;return t?(t=(n=t.split(","))[0].split("/"),o=1<n.length?n[1]:"before",(r=Bt.reduce(t,function(e,t){return(t=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(t))?("text()"===t[1]&&(t[1]="#text"),n=e,r=t[1],o=parseInt(t[2],10),i=oc(n),i=Bt.filter(i,function(e,t){return!ec(e)||!ec(i[t-1])}),(i=Bt.filter(i,Ao.matchNodeNames(r)))[o]):null;var n,r,o,i},e))?ec(r)?function(e,t){for(var n,r=e,o=0;ec(r);){if(n=r.data.length,o<=t&&t<=o+n){e=r,t-=o;break}if(!ec(r.nextSibling)){e=r,t=n;break}o+=n,r=r.nextSibling}return ec(e)&&t>e.data.length&&(t=e.data.length),Ba(e,t)}(r,parseInt(o,10)):(o="after"===o?nc(r)+1:nc(r),Ba(r.parentNode,o)):null):null},cc=Ao.isContentEditableFalse,lc=function(e,t,n,r,o){var i,a=r[o?"startContainer":"endContainer"],u=r[o?"startOffset":"endOffset"],s=[],c=0,l=e.getRoot();for(Ao.isText(a)?s.push(n?function
 (e,t,n){var r,o;for(o=e(t.data.slice(0,n)).length,r=t.previousSibling;r&&Ao.isText(r);r=r.previousSibling)o+=e(r.data).length;return o}(t,a,u):u):(u>=(i=a.childNodes).length&&i.length&&(c=1,u=Math.max(0,i.length-1)),s.push(e.nodeIndex(i[u],n)+c));a&&a!==l;a=a.parentNode)s.push(e.nodeIndex(a,n));return s},fc=function(e){Ao.isText(e)&&0===e.data.length&&e.parentNode.removeChild(e)},dc=function(e,t,n){var r=0;return Lt.each(e.select(t),function(e){if("all"!==e.getAttribute("data-mce-bogus"))return e!==n&&void r++}),r},mc=function(e,t){var n,r,o,i=t?"start":"end";n=e[i+"Container"],r=e[i+"Offset"],Ao.isElement(n)&&"TR"===n.nodeName&&(n=(o=n.childNodes)[Math.min(t?r:r-1,o.length-1)])&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r))},pc=function(e){return mc(e,!0),mc(e,!1),e},gc=function(e,t){var 
 n;if(Ao.isElement(e)&&(e=na(e,t),cc(e)))return e;if(Bi(e)){if(Ao.isText(e)&&Ai(e)&&(e=e.parentNode),n=e.previousSibling,cc(n))return n;if(n=e.nextSibling,cc(n))return n}},hc=function(e,t,n){var r=n.getNode(),o=r?r.nodeName:null,i=n.getRng();if(cc(r)||"IMG"===o)return{name:o,index:dc(n.dom,o,r)};var a,u,s,c,l,f,d,m=gc((a=i).startContainer,a.startOffset)||gc(a.endContainer,a.endOffset);return m?{name:o=m.tagName,index:dc(n.dom,o,m)}:(u=e,c=t,l=i,f=(s=n).dom,(d={}).start=lc(f,u,c,l,!0),s.isCollapsed()||(d.end=lc(f,u,c,l,!1)),d)},vc=function(e,t,n){var r={"data-mce-type":"bookmark",id:t,style:"overflow:hidden;line-height:0px"};return n?e.create("span",r,"&#xFEFF;"):e.create("span",r)},yc=function(e,t){var n=e.dom,r=e.getRng(),o=n.uniqueId(),i=e.isCollapsed(),a=e.getNode(),u=a.nodeName;if("IMG"===u)return{name:u,index:dc(n,u,a)};var s=pc(r.cloneRange());if(!i){s.collapse(!1);var c=
 vc(n,o+"_end",t);s.insertNode(c),fc(c.nextSibling)}(r=pc(r)).collapse(!0);var l=vc(n,o+"_start",t);return r.insertNode(l),fc(l.previousSibling),e.moveToBookmark({id:o,keep:1}),{id:o}},bc={getBookmark:function(e,t,n){return 2===t?hc(Si,n,e):3===t?(o=(r=e).getRng(),{start:uc(r.dom.getRoot(),Ba.fromRangeStart(o)),end:uc(r.dom.getRoot(),Ba.fromRangeEnd(o))}):t?{rng:e.getRng()}:yc(e,!1);var r,o},getUndoBookmark:V.curry(hc,V.identity,!0),getPersistentBookmark:yc},Cc="_mce_caret",xc=function(e){return Ao.isElement(e)&&e.id===Cc},wc=function(e,t){for(;t&&t!==e;){if(t.id===Cc)return t;t=t.parentNode}return null},Nc=function(e,t){return!e.isBlock(t)||t.innerHTML||ge.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t},Ec=function(e,t){return Ka.lastPositionIn(e).fold(function(){return!1},function(e){return t.setStart(e.container(),e.offset()),t.setEnd(e.container(),e.offset()),!0})},Sc=function(e,t,n){return!(!1!==t.hasChildNodes()||!w
 c(e,t)||(o=n,i=(r=t).ownerDocument.createTextNode(Ei),r.appendChild(i),o.setStart(i,0),o.setEnd(i,0),0));var r,o,i},kc=function(e,t,n,r){var o,i,a,u,s=n[t?"start":"end"],c=e.getRoot();if(s){for(a=s[0],i=c,o=s.length-1;1<=o;o--){if(u=i.childNodes,Sc(c,i,r))return!0;if(s[o]>u.length-1)return!!Sc(c,i,r)||Ec(i,r);i=u[s[o]]}3===i.nodeType&&(a=Math.min(s[0],i.nodeValue.length)),1===i.nodeType&&(a=Math.min(s[0],i.childNodes.length)),t?r.setStart(i,a):r.setEnd(i,a)}return!0},Tc=function(e){return Ao.isText(e)&&0<e.data.length},Ac=function(e,t,n){var r,o,i,a,u,s,c=e.get(n.id+"_"+t),l=n.keep;if(c){if(r=c.parentNode,"start"===t?l?c.hasChildNodes()?(r=c.firstChild,o=1):Tc(c.nextSibling)?(r=c.nextSibling,o=0):Tc(c.previousSibling)?(r=c.previousSibling,o=c.previousSibling.data.length):(r=c.parentNode,o=e.nodeIndex(c)+1):o=e.nodeIndex(c):l?c.hasChildNodes()?(r=c.firstChild,o=1):Tc(c.previousSibling)?(r=c.previousSibling,o=c.p
 reviousSibling.data.length):(r=c.parentNode,o=e.nodeIndex(c)):o=e.nodeIndex(c),u=r,s=o,!l){for(a=c.previousSibling,i=c.nextSibling,Lt.each(Lt.grep(c.childNodes),function(e){Ao.isText(e)&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});c=e.get(n.id+"_"+t);)e.remove(c,!0);a&&i&&a.nodeType===i.nodeType&&Ao.isText(a)&&!ge.opera&&(o=a.nodeValue.length,a.appendData(i.nodeValue),e.remove(i),u=a,s=o)}return A.some(Ba(u,s))}return A.none()},Rc=function(e,t){var n,r,o,i,a,u,s,c,l,f,d,m,p,g,h,v,y=e.dom;if(t){if(v=t,Lt.isArray(v.start))return g=t,h=(p=y).createRng(),kc(p,!0,g,h)&&kc(p,!1,g,h)?A.some(h):A.none();if("string"==typeof t.start)return A.some((f=t,d=(l=y).createRng(),m=sc(l.getRoot(),f.start),d.setStart(m.container(),m.offset()),m=sc(l.getRoot(),f.end),d.setEnd(m.container(),m.offset()),d));if(t.hasOwnProperty("id"))return s=Ac(o=y,"start",i=t),c=Ac(o,"end",i),sa([s,(a
 =c,u=s,a.isSome()?a:u)],function(e,t){var n=o.createRng();return n.setStart(Nc(o,e.container()),e.offset()),n.setEnd(Nc(o,t.container()),t.offset()),n});if(t.hasOwnProperty("name"))return n=y,r=t,A.from(n.select(r.name)[r.index]).map(function(e){var t=n.createRng();return t.selectNode(e),t});if(t.hasOwnProperty("rng"))return A.some(t.rng)}return A.none()},Bc={getBookmark:function(e,t,n){return bc.getBookmark(e,t,n)},moveToBookmark:function(t,e){Rc(t,e).each(function(e){t.setRng(e)})},isBookmarkNode:function(e){return Ao.isElement(e)&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")}},_c=Lt.each,Dc=function(o){this.compare=function(e,t){if(e.nodeName!==t.nodeName)return!1;var n=function(n){var r={};return _c(o.getAttribs(n),function(e){var t=e.nodeName.toLowerCase();0!==t.indexOf("_")&&"style"!==t&&0!==t.indexOf("data-")&&(r[t]=o.getAttrib(n,t))}),r}
 ,r=function(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(void 0===(n=t[r]))return!1;if(e[r]!==n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0};return!(!r(n(e),n(t))||!r(o.parseStyle(o.getAttrib(e,"style")),o.parseStyle(o.getAttrib(t,"style")))||Bc.isBookmarkNode(e)||Bc.isBookmarkNode(t))}},Oc=function(t,e){H.each(e,function(e){Fu.before(t,e)})},Pc=function(t,e){H.each(e,function(e){Fu.append(t,e)})},Lc=function(e){var t=e.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},Ic={empty:function(e){e.dom().textContent="",H.each(qr.children(e),function(e){Lc(e)})},remove:Lc,unwrap:function(e){var t=qr.children(e);0<t.length&&Oc(e,t),Lc(e)}},Mc=(Rs=Qn.isText,Bs="text",_s=function(e){return Rs(e)?A.from(e.dom().nodeValue):A.none()},Ds=zn.detect().browser,{get:function(e){if(!Rs(e))throw new Error("Can only get "+Bs+" value of a "+Bs+" node");return Os(e).getOr(&quot
 ;")},getOption:Os=Ds.isIE()&&10===Ds.version.major?function(e){try{return _s(e)}catch(Zx){return A.none()}}:_s,set:function(e,t){if(!Rs(e))throw new Error("Can only set raw "+Bs+" value of a "+Bs+" node");e.dom().nodeValue=t}}),Fc=function(e){return Mc.get(e)},zc=function(e){var t=fu(e,"br"),n=H.filter(function(e){for(var t=[],n=e.dom();n;)t.push(qn.fromDom(n)),n=n.lastChild;return t}(e).slice(-1),lo);t.length===n.length&&H.each(n,Ic.remove)},Uc=function(e){Ic.empty(e),Fu.append(e,qn.fromHtml('<br data-mce-bogus="1">'))},qc=function(n){qr.lastChild(n).each(function(t){qr.prevSibling(t).each(function(e){so(n)&&lo(t)&&so(e)&&Ic.remove(t)})})},Vc=Lt.makeMap;function Hc(e){var u,s,c,l,f,d=[];return u=(e=e||{}).indent,s=Vc(e.indent_before||""),c=Vc(e.indent_after||""),l=Vo.getEncodeFunc(e.entity_encoding||"raw",e.entities),f="html"===e.element_forma
 t,{start:function(e,t,n){var r,o,i,a;if(u&&s[e]&&0<d.length&&0<(a=d[d.length-1]).length&&"\n"!==a&&d.push("\n"),d.push("<",e),t)for(r=0,o=t.length;r<o;r++)i=t[r],d.push(" ",i.name,'="',l(i.value,!0),'"');d[d.length]=!n||f?">":" />",n&&u&&c[e]&&0<d.length&&0<(a=d[d.length-1]).length&&"\n"!==a&&d.push("\n")},end:function(e){var t;d.push("</",e,">"),u&&c[e]&&0<d.length&&0<(t=d[d.length-1]).length&&"\n"!==t&&d.push("\n")},text:function(e,t){0<e.length&&(d[d.length]=t?e:l(e))},cdata:function(e){d.push("<![CDATA[",e,"]]>")},comment:function(e){d.push("\x3c!--",e,"--\x3e")},pi:function(e,t){t?d.push("<?",e," ",l(t),"?
 >"):d.push("<?",e,"?>"),u&&d.push("\n")},doctype:function(e){d.push("<!DOCTYPE",e,">",u?"\n":"")},reset:function(){d.length=0},getContent:function(){return d.join("").replace(/\n$/,"")}}}function jc(t,p){void 0===p&&(p=Zo());var g=Hc(t);return(t=t||{}).validate=!("validate"in t)||t.validate,{serialize:function(e){var f,d;d=t.validate,f={3:function(e){g.text(e.value,e.raw)},8:function(e){g.comment(e.value)},7:function(e){g.pi(e.name,e.value)},10:function(e){g.doctype(e.value)},4:function(e){g.cdata(e.value)},11:function(e){if(e=e.firstChild)for(;m(e),e=e.next;);}},g.reset();var m=function(e){var t,n,r,o,i,a,u,s,c,l=f[e.type];if(l)l(e);else{if(t=e.name,n=e.shortEnded,r=e.attributes,d&&r&&1<r.length&&((a=[]).map={},c=p.getElementRule(e.name))){for(u=0,s=c.attributesOrder.length;u<s;u++)(o=c.attributesOrder[u])in r.map&
 &(i=r.map[o],a.map[o]=i,a.push({name:o,value:i}));for(u=0,s=r.length;u<s;u++)(o=r[u].name)in a.map||(i=r.map[o],a.map[o]=i,a.push({name:o,value:i}));r=a}if(g.start(e.name,r,n),!n){if(e=e.firstChild)for(;m(e),e=e.next;);g.end(t)}}};return 1!==e.type||t.inner?f[11](e):m(e),g.getContent()}}}var $c=function(a){var u=Ba.fromRangeStart(a),s=Ba.fromRangeEnd(a),c=a.commonAncestorContainer;return Ka.fromPosition(!1,c,s).map(function(e){return!ps(u,s,c)&&ps(u,e,c)?(t=u.container(),n=u.offset(),r=e.container(),o=e.offset(),(i=document.createRange()).setStart(t,n),i.setEnd(r,o),i):a;var t,n,r,o,i}).getOr(a)},Wc=function(e){return e.collapsed?e:$c(e)},Kc=Ao.matchNodeNames("td th"),Xc=function(o,e,t){var n,r,i,a,u,s,c,l,f,d,m,p,g=o.schema.getTextInlineElements(),h=o.selection,v=o.dom;if(/^ | $/.test(e)&&(e=function(e){var t,n,r;t=h.getRng(),n=t.startContainer,r=t.startOffset;var o=function(e){return n[e]&&3===n[e].nodeType};return 3===n.nodeType&&(
 0<r?e=e.replace(/^&nbsp;/," "):o("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),r<n.length?e=e.replace(/&nbsp;(<br>|)$/," "):o("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}(e)),n=o.parser,p=t.merge,r=jc({validate:o.settings.validate},o.schema),m='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#x200B;</span>',s={content:e,format:"html",selection:!0,paste:t.paste},(s=o.fire("BeforeSetContent",s)).isDefaultPrevented())o.fire("SetContent",{content:s.content,format:"html",selection:!0,paste:t.paste});else{-1===(e=s.content).indexOf("{$caret}")&&(e+="{$caret}"),e=e.replace(/\{\$caret\}/,m);var y,b,C,x,w=(l=h.getRng()).startContainer||(l.parentElement?l.parentElement():null),N=o.getBody();w===N&&h.isCollapsed()&&v.isBlock(N.firstChild)&&a
 mp;(y=N.firstChild)&&!o.schema.getShortEndedElements()[y.nodeName]&&v.isEmpty(N.firstChild)&&((l=v.createRng()).setStart(N.firstChild,0),l.setEnd(N.firstChild,0),h.setRng(l)),h.isCollapsed()||(o.selection.setRng(Wc(o.selection.getRng())),o.getDoc().execCommand("Delete",!1,null),C=(b=h.getRng()).startContainer,x=b.startOffset,3===C.nodeType&&b.collapsed&&("\xa0"===C.data[x]?(C.deleteData(x,1),/[\u00a0| ]$/.test(e)||(e+=" ")):"\xa0"===C.data[x-1]&&(C.deleteData(x-1,1),/[\u00a0| ]$/.test(e)||(e=" "+e))));var E,S,k,T={context:(i=h.getNode()).nodeName.toLowerCase(),data:t.data,insert:!0};if(u=n.parse(e,T),!0===t.paste&&Js(o.schema,u)&&Zs(v,i))return l=Qs(r,v,o.selection.getRng(),u),o.selection.setRng(l),void o.fire("SetContent",s);if(function(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}(u),"mce_marker"
 ===(f=u.lastChild).attr("id"))for(f=(c=f).prev;f;f=f.walk(!0))if(3===f.type||!v.isBlock(f.name)){o.schema.isValidChild(f.parent.name,"span")&&f.parent.insert(c,f,"br"===f.name);break}if(o._selectionOverrides.showBlockCaretContainer(i),T.invalid){for(h.setContent(m),i=h.getNode(),a=o.getBody(),9===i.nodeType?i=f=a:f=i;f!==a;)f=(i=f).parentNode;e=i===a?a.innerHTML:v.getOuterHTML(i),e=r.serialize(n.parse(e.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return r.serialize(u)}))),i===a?v.setHTML(a,e):v.setOuterHTML(i,e)}else e=r.serialize(u),function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,o=n.lastChild;!r||r===o&&"BR"===r.nodeName?e.dom.setHTML(n,t):e.selection.setContent(t)}}(o,e,i);!function(){if(p){var n=o.getBody(),r=new Dc(v);Lt.each(v.select("*[data-mce-fragment]"),fu
 nction(e){for(var t=e.parentNode;t&&t!==n;t=t.parentNode)g[e.nodeName.toLowerCase()]&&r.compare(t,e)&&v.remove(e,!0)})}}(),function(e){var t,n,r;if(e){if(h.scrollIntoView(e),t=function(e){for(var t=o.getBody();e&&e!==t;e=e.parentNode)if("false"===o.dom.getContentEditable(e))return e;return null}(e))return v.remove(e),h.select(t);l=v.createRng(),(f=e.previousSibling)&&3===f.nodeType?(l.setStart(f,f.nodeValue.length),ge.ie||(d=e.nextSibling)&&3===d.nodeType&&(f.appendData(d.data),d.parentNode.removeChild(d))):(l.setStartBefore(e),l.setEndBefore(e)),n=v.getParent(e,v.isBlock),v.remove(e),n&&v.isEmpty(n)&&(o.$(n).empty(),l.setStart(n,0),l.setEnd(n,0),Kc(n)||n.getAttribute("data-mce-fragment")||!(r=function(e){var t=Ba.fromRangeStart(e);if(t=js(o.getBody()).next(t))return t.toRange()}(l))?v.add(n,v.create("br",{"data-mce-bogus":"1"})):(l=r,v.remove(n))),h.setRng(l)}}(
 v.get("mce_marker")),E=o.getBody(),Lt.each(E.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")}),S=o.dom,k=o.selection.getStart(),A.from(S.getParent(k,"td,th")).map(qn.fromDom).each(qc),o.fire("SetContent",s),o.addVisual()}},Yc={insertAtCaret:function(e,t){var n,r,o="string"!=typeof(n=t)?(r=Lt.extend({paste:n.paste,data:{paste:n.paste}},n),{content:n.content,details:r}):{content:n,details:{}};Xc(e,o.content,o.details)}};function Gc(e,t,n,r,o){return e(n,r)?A.some(n):E.isFunction(o)&&o(n)?A.none():t(n,r,o)}var Jc=function(e,t,n){for(var r=e.dom(),o=E.isFunction(n)?n:V.constant(!1);r.parentNode;){r=r.parentNode;var i=qn.fromDom(r);if(t(i))return A.some(i);if(o(i))break}return A.none()},Qc=function(e,t){return H.find(e.dom().childNodes,V.compose(t,qn.fromDom)).map(qn.fromDom)},Zc=function(e,r){var o=function(e){for(var t=0;t<e.childNodes.length;t++){if(r(qn.fromDom(e.childNodes[t])))return
  A.some(qn.fromDom(e.childNodes[t]));var n=o(e.childNodes[t]);if(n.isSome())return n}return A.none()};return o(e.dom())},el={first:function(e){return Zc(dr.body(),e)},ancestor:Jc,closest:function(e,t,n){return Gc(function(e){return t(e)},Jc,e,t,n)},sibling:function(t,n){var e=t.dom();return e.parentNode?Qc(qn.fromDom(e.parentNode),function(e){return!Or.eq(t,e)&&n(e)}):A.none()},child:Qc,descendant:Zc},tl=wr.immutable("sections","settings"),nl=zn.detect().deviceType.isTouch(),rl=["lists","autolink","autosave"],ol={theme:"mobile"},il=function(e){var t=E.isArray(e)?e.join(" "):e,n=H.map(E.isString(t)?t.split(" "):[],Dn);return H.filter(n,function(e){return 0<e.length})},al=function(e,t){return e.sections().hasOwnProperty(t)},ul=function(e,t,n,r){var o,i,a=il(n.forced_plugins),u=il(r.plugins),s=e&&al(t,"mobile")?(o=u,H.filter(o,V.curry(H.contains,rl))):u,c=(i=s,[].concat(il(a)).c
 oncat(il(i)));return Lt.extend(r,{plugins:c.join(" ")})},sl=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m,p,g,h,v=(o=["mobile"],i=r,a=or.bifilter(i,function(e,t){return H.contains(o,t)}),tl(a.t,a.f)),y=Lt.extend(t,n,v.settings(),(p=e,h=(g=v).settings().inline,p&&al(g,"mobile")&&!h?(l="mobile",f=ol,d=v.sections(),m=d.hasOwnProperty(l)?d[l]:{},Lt.extend({},f,m)):{}),{validate:!0,content_editable:v.settings().inline,external_plugins:(u=n,s=v.settings(),c=s.external_plugins?s.external_plugins:{},u&&u.external_plugins?Lt.extend({},u.external_plugins,c):c)});return ul(e,v,n,y)},cl=function(e,t,n){return A.from(t.settings[n]).filter(e)},ll=V.curry(cl,E.isString),fl=function(e,t,n,r){var o,i,a,u=t in e.settings?e.settings[t]:n;return"hash"===r?(a={},"string"==typeof(i=u)?H.each(0<i.indexOf("=")?i.split(/[;,](?![^=;,]*(?:[;,]|$))/):i.split(","),function(e){var t=e.split("=");1<
 t.length?a[Lt.trim(t[0])]=Lt.trim(t[1]):a[Lt.trim(t[0])]=Lt.trim(t)}):a=i,a):"string"===r?cl(E.isString,e,t).getOr(n):"number"===r?cl(E.isNumber,e,t).getOr(n):"boolean"===r?cl(E.isBoolean,e,t).getOr(n):"object"===r?cl(E.isObject,e,t).getOr(n):"array"===r?cl(E.isArray,e,t).getOr(n):"string[]"===r?cl((o=E.isString,function(e){return E.isArray(e)&&H.forall(e,o)}),e,t).getOr(n):"function"===r?cl(E.isFunction,e,t).getOr(n):u},dl=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,ml=function(e,t){var n=t.container(),r=t.offset();return e?Ri(n)?Ao.isText(n.nextSibling)?Ba(n.nextSibling,0):Ba.after(n):Di(t)?Ba(n,r+1):t:Ri(n)?Ao.isText(n.previousSibling)?Ba(n.previousSibling,n.previousSibling.data.length):Ba.before(n):Oi(t)?Ba(n,r-1):t},pl={isInlineTarget:function(e,t){var n=ll(e,"inline_boundaries_selector").getOr("a[href],code");return Br.is(qn.fromDom(t),n)},findRootInline:function(e,t,n){var r,o,i,
 a=(r=e,o=t,i=n,H.filter(di.DOM.getParents(i.container(),"*",o),r));return A.from(a[a.length-1])},isRtl:function(e){return"rtl"===di.DOM.getStyle(e,"direction",!0)||(t=e.textContent,dl.test(t));var t},isAtZwsp:function(e){return Di(e)||Oi(e)},normalizePosition:ml,normalizeForwards:V.curry(ml,!0),normalizeBackwards:V.curry(ml,!1),hasSameParentBlock:function(e,t,n){var r=ms(t,e),o=ms(n,e);return r&&r===o}},gl=function(e,t){return Or.contains(e,t)?el.closest(t,function(e){return fo(e)||po(e)},(n=e,function(e){return Or.eq(n,qn.fromDom(e.dom().parentNode))})):A.none();var n},hl=function(e){var t,n,r;e.dom.isEmpty(e.getBody())&&(e.setContent(""),n=(t=e).getBody(),r=n.firstChild&&t.dom.isBlock(n.firstChild)?n.firstChild:n,t.selection.setCursorLocation(r,0))},vl=function(i,a,u){return sa([Ka.firstPositionIn(u),Ka.lastPositionIn(u)],function(e,t){var n=pl.normalizePosition(!0,e),r=pl.normalizePosition(!1,t),o=pl.normalizePositio
 n(!1,a);return i?Ka.nextPosition(u,o).map(function(e){return e.isEqual(r)&&a.isEqual(n)}).getOr(!1):Ka.prevPosition(u,o).map(function(e){return e.isEqual(n)&&a.isEqual(r)}).getOr(!1)}).getOr(!0)},yl=function(e,t,n){return el.ancestor(e,function(e){return Br.is(e,t)},n)},bl=yl,Cl=function(e,t){return Br.one(t,e)},xl=function(e,t,n){return Gc(Br.is,yl,e,t,n)},wl=function(e,t,n){return bl(e,t,n).isSome()},Nl=function(e,t){return Ao.isText(t)&&/^[ \t\r\n]*$/.test(t.data)&&!1===(n=e,r=t,o=qn.fromDom(n),i=qn.fromDom(r),wl(i,"pre,code",V.curry(Or.eq,o)));var n,r,o,i},El=function(e,t){return Wi(t)&&!1===Nl(e,t)||(n=t,Ao.isElement(n)&&"A"===n.nodeName&&n.hasAttribute("name"))||Sl(t);var n},Sl=Ao.hasAttribute("data-mce-bookmark"),kl=Ao.hasAttribute("data-mce-bogus"),Tl=Ao.hasAttributeValue("data-mce-bogus","all"),Al=function(e){return function(e){var t,n,r=0;if(El(e,e)
 )return!1;if(!(n=e.firstChild))return!0;t=new no(n,e);do{if(Tl(n))n=t.next(!0);else if(kl(n))n=t.next();else if(Ao.isBr(n))r++,n=t.next();else{if(El(e,n))return!1;n=t.next()}}while(n);return r<=1}(e.dom())},Rl=wr.immutable("block","position"),Bl=wr.immutable("from","to"),_l=function(e,t){var n=qn.fromDom(e),r=qn.fromDom(t.container());return gl(n,r).map(function(e){return Rl(e,t)})},Dl=function(o,i,e){var t=_l(o,Ba.fromRangeStart(e)),n=t.bind(function(e){return Ka.fromPosition(i,o,e.position()).bind(function(e){return _l(o,e).map(function(e){return t=o,n=i,r=e,Ao.isBr(r.position().getNode())&&!1===Al(r.block())?Ka.positionIn(!1,r.block().dom()).bind(function(e){return e.isEqual(r.position())?Ka.fromPosition(n,t,e).bind(function(e){return _l(t,e)}):A.some(r)}).getOr(r):r;var t,n,r})})});return sa([t,n],Bl).filter(function(e){return r=e,!1===Or.eq(r.from().block(),r.to().block())&&(n=e,qr.parent(n.from().block()).bind(function
 (t){return qr.parent(n.to().block()).filter(function(e){return Or.eq(t,e)})}).isSome())&&(t=e,!1===Ao.isContentEditableFalse(t.from().block())&&!1===Ao.isContentEditableFalse(t.to().block()));var t,n,r})},Ol=function(e,t,n){return n.collapsed?Dl(e,t,n):A.none()},Pl=function(e,t,n){return Or.contains(t,e)?qr.parents(e,function(e){return n(e)||Or.eq(e,t)}).slice(0,-1):[]},Ll=function(e,t){return Pl(e,t,V.constant(!1))},Il=Ll,Ml=function(e,t){return[e].concat(Ll(e,t))},Fl=function(e){var t,n,r=(t=e,n=qr.children(t),H.findIndex(n,so).fold(function(){return n},function(e){return n.slice(0,e)}));return H.each(r,function(e){Ic.remove(e)}),r},zl=function(e,t){Ka.positionIn(e,t.dom()).each(function(e){var t=e.getNode();Ao.isBr(t)&&Ic.remove(qn.fromDom(t))})},Ul=function(e,t){var n=Ml(t,e);return H.find(n.reverse(),Al).each(Ic.remove)},ql=function(o,i){return Or.contains(i,o)?qr.parent(o).bind(function(e){return Or.eq(e,i)?A.some(o):(t=i,n=o,r=qr.parents(n,function(e){
 return Or.eq(e,t)}),A.from(r[r.length-2]));var t,n,r}):A.none()},Vl=function(n,r,o){if(Al(o))return Ic.remove(o),Al(r)&&Uc(r),Ka.firstPositionIn(r.dom());zl(!0,r),zl(!1,o);var i=Fl(r);return ql(r,o).fold(function(){Ul(n,r);var e=Ka.lastPositionIn(o.dom());return H.each(i,function(e){Fu.append(o,e)}),e},function(t){var e=Ka.prevPosition(o.dom(),Ba.before(t.dom()));return H.each(i,function(e){Fu.before(t,e)}),Ul(n,r),e})},Hl=function(e,t,n,r){return t?Vl(e,r,n):Vl(e,n,r)},jl=function(t,n){var e,r=qn.fromDom(t.getBody());return(e=Ol(r.dom(),n,t.selection.getRng()).bind(function(e){return Hl(r,n,e.from().block(),e.to().block())})).each(function(e){t.selection.setRng(e.toRange())}),e.isSome()},$l=function(e,t){var n=qn.fromDom(t),r=V.curry(Or.eq,e);return el.ancestor(n,vo,r).isSome()},Wl=function(e,t){var n,r,o=Ka.prevPosition(e.dom(),Ba.fromRangeStart(t)).isNone(),i=Ka.nextPosition(e.dom(),Ba.fromRangeEnd(t)).isNone();return!($l(n=e,(r=t).startContainer)||$l(n,r.endContainer))&a
 mp;&o&&i},Kl=function(e){var n,r,o,t,i=qn.fromDom(e.getBody()),a=e.selection.getRng();return Wl(i,a)?((t=e).setContent(""),t.selection.setCursorLocation(),!0):(n=i,r=e.selection,o=r.getRng(),sa([gl(n,qn.fromDom(o.startContainer)),gl(n,qn.fromDom(o.endContainer))],function(e,t){return!1===Or.eq(e,t)&&(o.deleteContents(),Hl(n,!0,e,t).each(function(e){r.setRng(e.toRange())}),!0)}).getOr(!1))},Xl=function(e,t){return!e.selection.isCollapsed()&&Kl(e)},Yl=function(a){if(!E.isArray(a))throw new Error("cases must be an array");if(0===a.length)throw new Error("there must be at least one case");var u=[],n={};return H.each(a,function(e,r){var t=or.keys(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!E.isArray(i))throw new
  Error("case arguments must be an array");u.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t<n.length;t++)n[t]=arguments[t];return{fold:function(){if(arguments.length!==a.length)throw new Error("Wrong number of arguments to fold. Expected "+a.length+", got "+arguments.length);return arguments[r].apply(null,n)},match:function(e){var t=or.keys(e);if(u.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+u.join(",")+"\nActual: "+t.join(","));if(!H.forall(u,function(e){return H.contains(t,e)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+u.join(", "));return e[o].apply(null,n)},log:function(e){console.log(e
 ,{constructors:u,constructor:o,params:n})}}}}),n},Gl=Yl([{remove:["element"]},{moveToElement:["element"]},{moveToPosition:["position"]}]),Jl=function(e,t,n,r){var o=r.getNode(!1===t);return gl(qn.fromDom(e),qn.fromDom(n.getNode())).map(function(e){return Al(e)?Gl.remove(e.dom()):Gl.moveToElement(o)}).orThunk(function(){return A.some(Gl.moveToElement(o))})},Ql=function(u,s,c){return Ka.fromPosition(s,u,c).bind(function(e){return a=e.getNode(),vo(qn.fromDom(a))||po(qn.fromDom(a))?A.none():(t=u,o=e,i=function(e){return co(qn.fromDom(e))&&!ps(r,o,t)},Ns(!(n=s),r=c).fold(function(){return Ns(n,o).fold(V.constant(!1),i)},i)?A.none():s&&Ao.isContentEditableFalse(e.getNode())?Jl(u,s,c,e):!1===s&&Ao.isContentEditableFalse(e.getNode(!0))?Jl(u,s,c,e):s&&ks(c)?A.some(Gl.moveToPosition(e)):!1===s&&Ss(c)?A.some(Gl.moveToPosition(e)):A.none());var t,n,r,o,i,a})},Zl=function(r,e,o){return i=e,a=o.getNode(!1===i),u=i?"after&q
 uot;:"before",Ao.isElement(a)&&a.getAttribute("data-mce-caret")===u?(t=e,n=o.getNode(!1===e),t&&Ao.isContentEditableFalse(n.nextSibling)?A.some(Gl.moveToElement(n.nextSibling)):!1===t&&Ao.isContentEditableFalse(n.previousSibling)?A.some(Gl.moveToElement(n.previousSibling)):A.none()).fold(function(){return Ql(r,e,o)},A.some):Ql(r,e,o).bind(function(e){return t=r,n=o,e.fold(function(e){return A.some(Gl.remove(e))},function(e){return A.some(Gl.moveToElement(e))},function(e){return ps(n,e,t)?A.none():A.some(Gl.moveToPosition(e))});var t,n});var t,n,i,a,u},ef=function(e,t){return r=e,o=(n=t).container(),i=n.offset(),!1===Ba.isTextPosition(n)&&o===r.parentNode&&i>Ba.before(r).offset()?Ba(t.container(),t.offset()-1):t;var n,r,o,i},tf=function(e){return Wi(e.previousSibling)?A.some((t=e.previousSibling,Ao.isText(t)?Ba(t,t.data.length):Ba.after(t))):e.previousSibling?Ka.lastPositionIn(e.previousSibling):A.none();var t},nf=functio
 n(e){return Wi(e.nextSibling)?A.some((t=e.nextSibling,Ao.isText(t)?Ba(t,0):Ba.before(t))):e.nextSibling?Ka.firstPositionIn(e.nextSibling):A.none();var t},rf=function(r,o){return tf(o).orThunk(function(){return nf(o)}).orThunk(function(){return e=r,t=o,n=Ba.before(t.previousSibling?t.previousSibling:t.parentNode),Ka.prevPosition(e,n).fold(function(){return Ka.nextPosition(e,Ba.after(t))},A.some);var e,t,n})},of=function(n,r){return nf(r).orThunk(function(){return tf(r)}).orThunk(function(){return e=n,t=r,Ka.nextPosition(e,Ba.after(t)).fold(function(){return Ka.prevPosition(e,Ba.before(t))},A.some);var e,t})},af=function(e,t,n){return(r=e,o=t,i=n,r?of(o,i):rf(o,i)).map(V.curry(ef,n));var r,o,i},uf=function(t,n,e){e.fold(function(){t.focus()},function(e){t.selection.setRng(e.toRange(),n)})},sf=function(e,t){return t&&e.schema.getBlockElements().hasOwnProperty(Qn.name(t))},cf=function(e){if(Al(e)){var t=qn.fromHtml('<br data-mce-bogus="1">');return Ic.empty(e),Fu
 .append(e,t),A.some(Ba.before(t.dom()))}return A.none()},lf=function(t,n,e){var r,a,o,i=af(n,t.getBody(),e.dom()),u=el.ancestor(e,V.curry(sf,t),(r=t.getBody(),function(e){return e.dom()===r})),s=(a=e,o=i,sa([qr.prevSibling(a),qr.nextSibling(a),o],function(e,t,n){var r,o=e.dom(),i=t.dom();return Ao.isText(o)&&Ao.isText(i)?(r=o.data.length,o.appendData(i.data),Ic.remove(t),Ic.remove(a),n.container()===i?Ba(o,r):n):(Ic.remove(a),n)}).orThunk(function(){return Ic.remove(a),o}));t.dom.isEmpty(t.getBody())?(t.setContent(""),t.selection.setCursorLocation()):u.bind(cf).fold(function(){uf(t,n,s)},function(e){uf(t,n,A.some(e))})},ff=function(a,u){var e,t,n,r,o;return(e=a.getBody(),t=u,n=a.selection.getRng(),r=Cs(t?1:-1,e,n),o=Ba.fromRangeStart(r),!1===t&&ks(o)?A.some(Gl.remove(o.getNode(!0))):t&&Ss(o)?A.some(Gl.remove(o.getNode())):Zl(e,t,o)).map(function(e){return e.fold((o=a,i=u,function(e){return o._selectionOverrides.hideFakeCaret(),lf(o,i,qn.fromDom(e)),
 !0}),(n=a,r=u,function(e){var t=r?Ba.before(e):Ba.after(e);return n.selection.setRng(t.toRange()),!0}),(t=a,function(e){return t.selection.setRng(e.toRange()),!0}));var t,n,r,o,i}).getOr(!1)},df=function(e,t){var n,r=e.selection.getNode();return!!Ao.isContentEditableFalse(r)&&(n=qn.fromDom(e.getBody()),H.each(fu(n,".mce-offscreen-selection"),Ic.remove),lf(e,t,qn.fromDom(e.selection.getNode())),hl(e),!0)},mf=function(e,t){return e.selection.isCollapsed()?ff(e,t):df(e,t)},pf=function(e){var t,n=function(e,t){for(;t&&t!==e;){if(Ao.isContentEditableTrue(t)||Ao.isContentEditableFalse(t))return t;t=t.parentNode}return null}(e.getBody(),e.selection.getNode());return Ao.isContentEditableTrue(n)&&e.dom.isBlock(n)&&e.dom.isEmpty(n)&&(t=e.dom.create("br",{"data-mce-bogus":"1"}),e.dom.setHTML(n,""),n.appendChild(t),e.selection.setRng(Ba.before(t).toRange())),!0},gf=Ao.isText,hf=function(e){return gf(e)&amp
 ;&e.data[0]===Ei},vf=function(e){return gf(e)&&e.data[e.data.length-1]===Ei},yf=function(e){return e.ownerDocument.createTextNode(Ei)},bf=function(e,t){return e?function(e){if(gf(e.previousSibling))return vf(e.previousSibling)||e.previousSibling.appendData(Ei),e.previousSibling;if(gf(e))return hf(e)||e.insertData(0,Ei),e;var t=yf(e);return e.parentNode.insertBefore(t,e),t}(t):function(e){if(gf(e.nextSibling))return hf(e.nextSibling)||e.nextSibling.insertData(0,Ei),e.nextSibling;if(gf(e))return vf(e)||e.appendData(Ei),e;var t=yf(e);return e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t}(t)},Cf=V.curry(bf,!0),xf=V.curry(bf,!1),wf=function(e,t){return Ao.isText(e.container())?bf(t,e.container()):bf(t,e.getNode())},Nf=function(e,t){var n=t.get();return n&&e.container()===n&&Ri(n)},Ef=function(n,e){return e.fold(function(e){Ua.remove(n.get());var t=Cf(e);return n.set(t),A.some(Ba(t,t.length-1))},function(e){return Ka.firs
 tPositionIn(e).map(function(e){if(Nf(e,n))return Ba(n.get(),1);Ua.remove(n.get());var t=wf(e,!0);return n.set(t),Ba(t,1)})},function(e){return Ka.lastPositionIn(e).map(function(e){if(Nf(e,n))return Ba(n.get(),n.get().length-1);Ua.remove(n.get());var t=wf(e,!1);return n.set(t),Ba(t,t.length-1)})},function(e){Ua.remove(n.get());var t=xf(e);return n.set(t),A.some(Ba(t,1))})},Sf=function(e,t){for(var n=0;n<e.length;n++){var r=e[n].apply(null,t);if(r.isSome())return r}return A.none()},kf=Yl([{before:["element"]},{start:["element"]},{end:["element"]},{after:["element"]}]),Tf=function(e,t){var n=ms(t,e);return n||e},Af=function(e,t,n){var r=pl.normalizeForwards(n),o=Tf(t,r.container());return pl.findRootInline(e,o,r).fold(function(){return Ka.nextPosition(o,r).bind(V.curry(pl.findRootInline,e,o)).map(function(e){return kf.before(e)})},A.none)},Rf=function(e,t){return null===wc(e,t)},Bf=function(e,t,n){return pl.findRootInline(e,t,n).filter(V.curry
 (Rf,t))},_f=function(e,t,n){var r=pl.normalizeBackwards(n);return Bf(e,t,r).bind(function(e){return Ka.prevPosition(e,r).isNone()?A.some(kf.start(e)):A.none()})},Df=function(e,t,n){var r=pl.normalizeForwards(n);return Bf(e,t,r).bind(function(e){return Ka.nextPosition(e,r).isNone()?A.some(kf.end(e)):A.none()})},Of=function(e,t,n){var r=pl.normalizeBackwards(n),o=Tf(t,r.container());return pl.findRootInline(e,o,r).fold(function(){return Ka.prevPosition(o,r).bind(V.curry(pl.findRootInline,e,o)).map(function(e){return kf.after(e)})},A.none)},Pf=function(e){return!1===pl.isRtl(If(e))},Lf=function(e,t,n){return Sf([Af,_f,Df,Of],[e,t,n]).filter(Pf)},If=function(e){return e.fold(V.identity,V.identity,V.identity,V.identity)},Mf=function(e){return e.fold(V.constant("before"),V.constant("start"),V.constant("end"),V.constant("after"))},Ff=function(e){return e.fold(kf.before,kf.before,kf.after,kf.after)},zf=function(n,e,r,t,o,i){return sa([pl.findRootInlin
 e(e,r,t),pl.findRootInline(e,r,o)],function(e,t){return e!==t&&pl.hasSameParentBlock(r,e,t)?kf.after(n?e:t):i}).getOr(i)},Uf=function(e,r){return e.fold(V.constant(!0),function(e){return n=r,!(Mf(t=e)===Mf(n)&&If(t)===If(n));var t,n})},qf=function(e,t){return e?t.fold(V.compose(A.some,kf.start),A.none,V.compose(A.some,kf.after),A.none):t.fold(A.none,V.compose(A.some,kf.before),A.none,V.compose(A.some,kf.end))},Vf=function(a,u,s,c){var e=pl.normalizePosition(a,c),l=Lf(u,s,e);return Lf(u,s,e).bind(V.curry(qf,a)).orThunk(function(){return t=a,n=u,r=s,o=l,e=c,i=pl.normalizePosition(t,e),Ka.fromPosition(t,r,i).map(V.curry(pl.normalizePosition,t)).fold(function(){return o.map(Ff)},function(e){return Lf(n,r,e).map(V.curry(zf,t,n,r,i,e)).filter(V.curry(Uf,o))}).filter(Pf);var t,n,r,o,e,i})},Hf=Lf,jf=Vf,$f=(V.curry(Vf,!1),V.curry(Vf,!0),Ff),Wf=function(e){return e.fold(kf.start,kf.start,kf.end,kf.end)},Kf=function(e){return E.isFunction(e.selection.getSel().modify)},Xf=functi
 on(e,t,n){var r=e?1:-1;return t.setRng(Ba(n.container(),n.offset()+r).toRange()),t.getSel().modify("move",e?"forward":"backward","word"),!0},Yf=function(e,t){var n=t.selection.getRng(),r=e?Ba.fromRangeEnd(n):Ba.fromRangeStart(n);return!!Kf(t)&&(e&&Di(r)?Xf(!0,t.selection,r):!(e||!Oi(r))&&Xf(!1,t.selection,r))},Gf=function(e,t){var n=e.dom.createRng();n.setStart(t.container(),t.offset()),n.setEnd(t.container(),t.offset()),e.selection.setRng(n)},Jf=function(e){return!1!==e.settings.inline_boundaries},Qf=function(e,t){e?t.setAttribute("data-mce-selected","inline-boundary"):t.removeAttribute("data-mce-selected")},Zf=function(t,e,n){return Ef(e,n).map(function(e){return Gf(t,e),n})},ed=function(e,t,n){return function(){return!!Jf(t)&&Yf(e,t)}},td={move:function(a,u,s){return function(){return!!Jf(a)&&(t=a,n=u,e=s,r=t.getBody(),o=Ba.fromRangeStart(t.selection.getRng()),i=V.curry(p
 l.isInlineTarget,t),jf(e,i,r,o).bind(function(e){return Zf(t,n,e)})).isSome();var t,n,e,r,o,i}},moveNextWord:V.curry(ed,!0),movePrevWord:V.curry(ed,!1),setupSelectedState:function(a){var u=Ju(null),s=V.curry(pl.isInlineTarget,a);return a.on("NodeChange",function(e){var t,n,r,o,i;Jf(a)&&(t=s,n=a.dom,r=e.parents,o=H.filter(n.select('*[data-mce-selected="inline-boundary"]'),t),i=H.filter(r,t),H.each(H.difference(o,i),V.curry(Qf,!1)),H.each(H.difference(i,o),V.curry(Qf,!0)),function(e,t){if(e.selection.isCollapsed()&&!0!==e.composing&&t.get()){var n=Ba.fromRangeStart(e.selection.getRng());Ba.isTextPosition(n)&&!1===pl.isAtZwsp(n)&&(Gf(e,Ua.removeAndReposition(t.get(),n)),t.set(null))}}(a,u),function(n,r,o,e){if(r.selection.isCollapsed()){var t=H.filter(e,n);H.each(t,function(e){var t=Ba.fromRangeStart(r.selection.getRng());Hf(n,r.getBody(),t).bind(function(e){return Zf(r,o,e)})})}}(s,a,u,e.parents))}),u},setCaretPosition:Gf},nd
 =function(t,n){return function(e){return Ef(n,e).map(function(e){return td.setCaretPosition(t,e),!0}).getOr(!1)}},rd=function(r,o,i,a){var u=r.getBody(),s=V.curry(pl.isInlineTarget,r);r.undoManager.ignore(function(){var e,t,n;r.selection.setRng((e=i,t=a,(n=document.createRange()).setStart(e.container(),e.offset()),n.setEnd(t.container(),t.offset()),n)),r.execCommand("Delete"),Hf(s,u,Ba.fromRangeStart(r.selection.getRng())).map(Wf).map(nd(r,o))}),r.nodeChanged()},od=function(n,r,i,o){var e,t,a=(e=n.getBody(),t=o.container(),ms(t,e)||e),u=V.curry(pl.isInlineTarget,n),s=Hf(u,a,o);return s.bind(function(e){return i?e.fold(V.constant(A.some(Wf(e))),A.none,V.constant(A.some($f(e))),A.none):e.fold(A.none,V.constant(A.some($f(e))),A.none,V.constant(A.some(Wf(e))))}).map(nd(n,r)).getOrThunk(function(){var t=Ka.navigate(i,a,o),e=t.bind(function(e){return Hf(u,a,e)});return s.isSome()&&e.isSome()?pl.findRootInline(u,a,o).map(function(e){return o=e,!!sa([Ka.firstPositionIn(o),
 Ka.lastPositionIn(o)],function(e,t){var n=pl.normalizePosition(!0,e),r=pl.normalizePosition(!1,t);return Ka.nextPosition(o,n).map(function(e){return e.isEqual(r)}).getOr(!0)}).getOr(!0)&&(lf(n,i,qn.fromDom(e)),!0);var o}).getOr(!1):e.bind(function(e){return t.map(function(e){return i?rd(n,r,o,e):rd(n,r,e,o),!0})}).getOr(!1)})},id=function(e,t,n){if(e.selection.isCollapsed()&&!1!==e.settings.inline_boundaries){var r=Ba.fromRangeStart(e.selection.getRng());return od(e,t,n,r)}return!1},ad=wr.immutable("start","end"),ud=wr.immutable("rng","table","cells"),sd=Yl([{removeTable:["element"]},{emptyCells:["cells"]}]),cd=function(e,t){return xl(qn.fromDom(e),"td,th",t)},ld=function(e,t){return bl(e,"table",t)},fd=function(e){return!1===Or.eq(e.start(),e.end())},dd=function(e,n){return ld(e.start(),n).bind(function(t){return ld(e.end(),n).bind(function(e){return Or.eq(t,e)?A.some(t):A.none
 ()})})},md=function(e){return fu(e,"td,th")},pd=function(r,e){var t=cd(e.startContainer,r),n=cd(e.endContainer,r);return e.collapsed?A.none():sa([t,n],ad).fold(function(){return t.fold(function(){return n.bind(function(t){return ld(t,r).bind(function(e){return H.head(md(e)).map(function(e){return ad(e,t)})})})},function(t){return ld(t,r).bind(function(e){return H.last(md(e)).map(function(e){return ad(t,e)})})})},function(e){return gd(r,e)?A.none():(n=r,ld((t=e).start(),n).bind(function(e){return H.last(md(e)).map(function(e){return ad(t.start(),e)})}));var t,n})},gd=function(e,t){return dd(t,e).isSome()},hd=function(e,t){var n,r,o,i,a,u=(n=e,V.curry(Or.eq,n));return(r=t,o=u,i=cd(r.startContainer,o),a=cd(r.endContainer,o),sa([i,a],ad).filter(fd).filter(function(e){return gd(o,e)}).orThunk(function(){return pd(o,r)})).bind(function(e){return dd(t=e,u).map(function(e){return ud(t,e,md(e))});var t})},vd=function(e,t){return H.findIndex(e,function(e){return Or.eq(e,t)})},yd=fun
 ction(n){return(r=n,sa([vd(r.cells(),r.rng().start()),vd(r.cells(),r.rng().end())],function(e,t){return r.cells().slice(e,t+1)})).map(function(e){var t=n.cells();return e.length===t.length?sd.removeTable(n.table()):sd.emptyCells(e)});var r},bd=function(e,t){return hd(e,t).bind(yd)},Cd=function(e){var t=[];if(e)for(var n=0;n<e.rangeCount;n++)t.push(e.getRangeAt(n));return t},xd=Cd,wd=function(e){return H.bind(e,function(e){var t=ta(e);return t?[qn.fromDom(t)]:[]})},Nd=function(e){return 1<Cd(e).length},Ed=function(e){return H.filter(wd(e),vo)},Sd=function(e){return fu(e,"td[data-mce-selected],th[data-mce-selected]")},kd=function(e,t){var n=Sd(t),r=Ed(e);return 0<n.length?n:r},Td=kd,Ad=function(e){return kd(xd(e.selection.getSel()),qn.fromDom(e.getBody()))},Rd=function(e,t){return H.each(t,Uc),e.selection.setCursorLocation(t[0].dom(),0),!0},Bd=function(e,t){return lf(e,!1,t),!0},_d=function(n,e,r,t){return Od(e,t).fold(function(){return t=n,bd(e,r).map(function(e){r
 eturn e.fold(V.curry(Bd,t),V.curry(Rd,t))});var t},function(e){return Pd(n,e)}).getOr(!1)},Dd=function(e,t){return H.find(Ml(t,e),vo)},Od=function(e,t){return H.find(Ml(t,e),function(e){return"caption"===Qn.name(e)})},Pd=function(e,t){return Uc(t),e.selection.setCursorLocation(t.dom(),0),A.some(!0)},Ld=function(u,s,c,l,f){return Ka.navigate(c,u.getBody(),f).bind(function(e){return r=l,o=c,i=f,a=e,Ka.firstPositionIn(r.dom()).bind(function(t){return Ka.lastPositionIn(r.dom()).map(function(e){return o?i.isEqual(t)&&a.isEqual(e):i.isEqual(e)&&a.isEqual(t)})}).getOr(!0)?Pd(u,l):(t=l,n=e,Od(s,qn.fromDom(n.getNode())).map(function(e){return!1===Or.eq(e,t)}));var t,n,r,o,i,a}).or(A.some(!0))},Id=function(a,u,s,e){var c=Ba.fromRangeStart(a.selection.getRng());return Dd(s,e).bind(function(e){return Al(e)?Pd(a,e):(t=a,n=s,r=u,o=e,i=c,Ka.navigate(r,t.getBody(),i).bind(function(e){return Dd(n,qn.fromDom(e.getNode())).map(function(e){return!1===Or.eq(e,o)})}));var t,n,r,
 o,i})},Md=function(a,u,e){var s=qn.fromDom(a.getBody());return Od(s,e).fold(function(){return Id(a,u,s,e)},function(e){return t=a,n=u,r=s,o=e,i=Ba.fromRangeStart(t.selection.getRng()),Al(o)?Pd(t,o):Ld(t,r,n,o,i);var t,n,r,o,i}).getOr(!1)},Fd=function(e,t){var n,r,o,i,a,u=qn.fromDom(e.selection.getStart(!0)),s=Ad(e);return e.selection.isCollapsed()&&0===s.length?Md(e,t,u):(n=e,r=u,o=qn.fromDom(n.getBody()),i=n.selection.getRng(),0!==(a=Ad(n)).length?Rd(n,a):_d(n,o,i,r))},zd=function(e,t){e.getDoc().execCommand(t,!1,null)},Ud={deleteCommand:function(e){mf(e,!1)||id(e,!1)||jl(e,!1)||Fd(e)||Xl(e,!1)||(zd(e,"Delete"),hl(e))},forwardDeleteCommand:function(e){mf(e,!0)||id(e,!0)||jl(e,!0)||Fd(e)||Xl(e,!0)||zd(e,"ForwardDelete")}},qd=function(s){return function(u,e){return A.from(e).map(qn.fromDom).filter(Qn.isElement).bind(function(e){return(r=s,o=u,i=e.dom(),a=function(e){return br(e,r)},el.closest(qn.fromDom(i),function(e){return a(e).isSome()},function(e){retu
 rn Or.eq(qn.fromDom(o),e)}).bind(a)).or((t=s,n=e.dom(),A.from(di.DOM.getStyle(n,t,!0))));var t,n,r,o,i,a}).getOr("")}},Vd={getFontSize:qd("font-size"),getFontFamily:V.compose(function(e){return e.replace(/[\'\"\\]/g,"").replace(/,\s+/g,",")},qd("font-family")),toPt:function(e,t){return/[0-9.]+px$/.test(e)?(n=72*parseInt(e,10)/96,r=t||0,o=Math.pow(10,r),Math.round(n*o)/o+"pt"):e;var n,r,o}},Hd=function(e){return Ka.firstPositionIn(e.getBody()).map(function(e){var t=e.container();return Ao.isText(t)?t.parentNode:t})},jd=function(o){return A.from(o.selection.getRng()).bind(function(e){var t,n,r=o.getBody();return n=r,(t=e).startContainer===n&&0===t.startOffset?A.none():A.from(o.selection.getStart(!0))})},$d=function(e,t){var n=parseInt(t,10);if(1<=n&&n<=7){var r=Pu(e),o=Lu(e);return o?o[n-1]||t:r[n-1]||t}return t},Wd=function(e,t){e.formatter.toggle("fontname",{value:$d(e,t)}),e.nodeChanged
 ()},Kd=function(t){return jd(t).fold(function(){return Hd(t).map(function(e){return Vd.getFontFamily(t.getBody(),e)}).getOr("")},function(e){return Vd.getFontFamily(t.getBody(),e)})},Xd=function(e,t){e.formatter.toggle("fontsize",{value:$d(e,t)}),e.nodeChanged()},Yd=function(t){return jd(t).fold(function(){return Hd(t).map(function(e){return Vd.getFontSize(t.getBody(),e)}).getOr("")},function(e){return Vd.getFontSize(t.getBody(),e)})},Gd={isEq:function(e,t){return e&&t&&e.startContainer===t.startContainer&&e.startOffset===t.startOffset&&e.endContainer===t.endContainer&&e.endOffset===t.endOffset}},Jd=function(e,t,n){return null!==function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(e,t,n)},Qd=function(e,t,n){return Jd(e,t,function(e){return e.nodeName===n})},Zd=function(e){return e&&"TABLE"===e.nodeName},em=function(e,t,n){for(var r=new no(t,e.getParent(t.parentNode
 ,e.isBlock)||e.getRoot());t=r[n?"prev":"next"]();)if(Ao.isBr(t))return!0},tm=function(e,t,n,r,o){var i,a,u,s,c,l,f=e.getRoot(),d=e.schema.getNonEmptyElements();if(u=e.getParent(o.parentNode,e.isBlock)||f,r&&Ao.isBr(o)&&t&&e.isEmpty(u))return A.some(Ta(o.parentNode,e.nodeIndex(o)));for(i=new no(o,u);s=i[r?"prev":"next"]();){if("false"===e.getContentEditableParent(s)||(l=f,Bi(c=s)&&!1===Jd(c,l,xc)))return A.none();if(Ao.isText(s)&&0<s.nodeValue.length)return!1===Qd(s,f,"A")?A.some(Ta(s,r?s.nodeValue.length:0)):A.none();if(e.isBlock(s)||d[s.nodeName.toLowerCase()])return A.none();a=s}return n&&a?A.some(Ta(a,0)):A.none()},nm=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m,p=e.getRoot(),g=!1;if(o=r[(n?"start":"end")+"Container"],i=r[(n?"start":"end")+"Offset"],l=Ao.isElement(o)&&i===o.childNodes.length,s=e.schema.getN
 onEmptyElements(),c=n,Bi(o))return A.none();if(Ao.isElement(o)&&i>o.childNodes.length-1&&(c=!1),Ao.isDocument(o)&&(o=p,i=0),o===p){if(c&&(u=o.childNodes[0<i?i-1:0])){if(Bi(u))return A.none();if(s[u.nodeName]||Zd(u))return A.none()}if(o.hasChildNodes()){if(i=Math.min(!c&&0<i?i-1:i,o.childNodes.length-1),o=o.childNodes[i],i=Ao.isText(o)&&l?o.data.length:0,!t&&o===p.lastChild&&Zd(o))return A.none();if(function(e,t){for(;t&&t!==e;){if(Ao.isContentEditableFalse(t))return!0;t=t.parentNode}return!1}(p,o)||Bi(o))return A.none();if(o.hasChildNodes()&&!1===Zd(o)){a=new no(u=o,p);do{if(Ao.isContentEditableFalse(u)||Bi(u)){g=!1;break}if(Ao.isText(u)&&0<u.nodeValue.length){i=c?0:u.nodeValue.length,o=u,g=!0;break}if(s[u.nodeName.toLowerCase()]&&(!(f=u)||!/^(TD|TH|CAPTION)$/.test(f.nodeName))){i=e.nodeIndex(u),o=u.parentNode,c||i++,g=!0;break}}while(u=c?a.next():a.prev())}}}return t&&amp
 ;(Ao.isText(o)&&0===i&&tm(e,l,t,!0,o).each(function(e){o=e.container(),i=e.offset(),g=!0}),Ao.isElement(o)&&((u=o.childNodes[i])||(u=o.childNodes[i-1]),!u||!Ao.isBr(u)||(m="A",(d=u).previousSibling&&d.previousSibling.nodeName===m)||em(e,u,!1)||em(e,u,!0)||tm(e,l,t,!0,u).each(function(e){o=e.container(),i=e.offset(),g=!0}))),c&&!t&&Ao.isText(o)&&i===o.nodeValue.length&&tm(e,l,t,!1,o).each(function(e){o=e.container(),i=e.offset(),g=!0}),g?A.some(Ta(o,i)):A.none()},rm={normalize:function(e,t){var n=t.collapsed,r=t.cloneRange(),o=Ta.fromRangeStart(t);return nm(e,n,!0,r).each(function(e){n&&Ta.isAbove(o,e)||r.setStart(e.container(),e.offset())}),n||nm(e,n,!1,r).each(function(e){r.setEnd(e.container(),e.offset())}),n&&r.collapse(!0),Gd.isEq(t,r)?A.none():A.some(r)}},om=function(e,t,n){var r=e.create("span",{},"&nbsp;");n.parentNode.insertBefore(r,n),t.scrollIntoView(r),e.remov
 e(r)},im=function(e,t,n,r){var o=e.createRng();r?(o.setStartBefore(n),o.setEndBefore(n)):(o.setStartAfter(n),o.setEndAfter(n)),t.setRng(o)},am=function(e,t){var n,r,o=e.selection,i=e.dom,a=o.getRng();rm.normalize(i,a).each(function(e){a.setStart(e.startContainer,e.startOffset),a.setEnd(e.endContainer,e.endOffset)});var u=a.startOffset,s=a.startContainer;if(1===s.nodeType&&s.hasChildNodes()){var c=u>s.childNodes.length-1;s=s.childNodes[Math.min(u,s.childNodes.length-1)]||s,u=c&&3===s.nodeType?s.nodeValue.length:0}var l=i.getParent(s,i.isBlock),f=l?i.getParent(l.parentNode,i.isBlock):null,d=f?f.nodeName.toUpperCase():"",m=t&&t.ctrlKey;"LI"!==d||m||(l=f),s&&3===s.nodeType&&u>=s.nodeValue.length&&(function(e,t,n){for(var r,o=new no(t,n),i=e.getNonEmptyElements();r=o.next();)if(i[r.nodeName.toLowerCase()]||0<r.length)return!0}(e.schema,s,l)||(n=i.create("br"),a.insertNode(n),a.setStartAfter(n),a.setEnd
 After(n),r=!0)),n=i.create("br"),a.insertNode(n),om(i,o,n),im(i,o,n,r),e.undoManager.add()},um=function(e,t){var n=qn.fromTag("br");Fu.before(qn.fromDom(t),n),e.undoManager.add()},sm=function(e,t){cm(e.getBody(),t)||Fu.after(qn.fromDom(t),qn.fromTag("br"));var n=qn.fromTag("br");Fu.after(qn.fromDom(t),n),om(e.dom,e.selection,n.dom()),im(e.dom,e.selection,n.dom(),!1),e.undoManager.add()},cm=function(e,t){return n=Ba.after(t),!!Ao.isBr(n.getNode())||Ka.nextPosition(e,Ba.after(t)).map(function(e){return Ao.isBr(e.getNode())}).getOr(!1);var n},lm=function(e){return e&&"A"===e.nodeName&&"href"in e},fm=function(e){return e.fold(V.constant(!1),lm,lm,V.constant(!1))},dm=function(e,t){t.fold(V.noop,V.curry(um,e),V.curry(sm,e),V.noop)},mm={insert:function(e,t){var n,r,o,i=(n=e,r=V.curry(pl.isInlineTarget,n),o=Ba.fromRangeStart(n.selection.getRng()),Hf(r,n.getBody(),o).filter(fm));i.isSome()?i.each(V.curry(dm,e)):am(e,
 t)}},pm=Yl([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),gm=(pm.before,pm.on,pm.after,function(e){return e.fold(V.identity,V.identity,V.identity)}),hm=Yl([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),vm=wr.immutable("start","soffset","finish","foffset"),ym={domRange:hm.domRange,relative:hm.relative,exact:hm.exact,exactFromRange:function(e){return hm.exact(e.start(),e.soffset(),e.finish(),e.foffset())},range:vm,getWin:function(e){var t=e.match({domRange:function(e){return qn.fromDom(e.startContainer)},relative:function(e,t){return gm(e)},exact:function(e,t,n,r){return e}});return qr.defaultView(t)}},bm=zn.detect().browser,Cm=function(e,t){var n=Qn.isText(t)?Fc(t).length:qr.children(t).length+1;return n<e?n:e<0?0:e},xm=function(e){return ym.range(e
 .start(),Cm(e.soffset(),e.start()),e.finish(),Cm(e.foffset(),e.finish()))},wm=function(e,t){return Or.contains(e,t)||Or.eq(e,t)},Nm=function(t){return function(e){return wm(t,e.start())&&wm(t,e.finish())}},Em=function(e){return!0===e.inline||bm.isIE()},Sm=function(e){return ym.range(qn.fromDom(e.startContainer),e.startOffset,qn.fromDom(e.endContainer),e.endOffset)},km=function(e){var t=e.getSelection();return(t&&0!==t.rangeCount?A.from(t.getRangeAt(0)):A.none()).map(Sm)},Tm=function(e){var t=qr.defaultView(e);return km(t.dom()).filter(Nm(e))},Am=function(e,t){return A.from(t).filter(Nm(e)).map(xm)},Rm=function(e){var t=document.createRange();try{return t.setStart(e.start().dom(),e.soffset()),t.setEnd(e.finish().dom(),e.foffset()),A.some(t)}catch(n){return A.none()}},Bm=function(e){return(e.bookmark?e.bookmark:A.none()).bind(V.curry(Am,qn.fromDom(e.getBody()))).bind(Rm)},_m={store:function(e){var t=Em(e)?Tm(qn.fromDom(e.getBody())):A.none();e.bookmark=t.isSome()?t:e.b
 ookmark},storeNative:function(e,t){var n=qn.fromDom(e.getBody()),r=(Em(e)?A.from(t):A.none()).map(Sm).filter(Nm(n));e.bookmark=r.isSome()?r:e.bookmark},readRange:km,restore:function(t){Bm(t).each(function(e){t.selection.setRng(e)})},getRng:Bm,getBookmark:Tm,validate:Am},Dm=function(e,t){var n=e.settings,r=e.dom,o=e.selection,i=e.formatter,a=/[a-z%]+$/i.exec(n.indentation)[0],u=parseInt(n.indentation,10),s=e.getParam("indent_use_margin",!1);e.queryCommandState("InsertUnorderedList")||e.queryCommandState("InsertOrderedList")||(n.forced_root_block||r.getParent(o.getNode(),r.isBlock)||i.apply("div"),H.each(o.getSelectedBlocks(),function(e){return function(e,t,n,r,o,i){if("false"!==e.getContentEditable(i)&&"LI"!==i.nodeName){var a=n?"margin":"padding";if(a="TABLE"===i.nodeName?"margin":a,a+="rtl"===e.getStyle(i,"direction",!0)?"Right":"Left",
 "outdent"===t){var u=Math.max(0,parseInt(i.style[a]||0,10)-r);e.setStyle(i,a,u?u+o:"")}else u=parseInt(i.style[a]||0,10)+r+o,e.setStyle(i,a,u)}}(r,t,s,u,a,e)}))},Om=Lt.each,Pm=Lt.extend,Lm=Lt.map,Im=Lt.inArray;function Mm(s){var o,i,a,t,c={state:{},exec:{},value:{}},n=s.settings;s.on("PreInit",function(){o=s.dom,i=s.selection,n=s.settings,a=s.formatter});var r=function(e){var t;if(!s.quirks.isHidden()&&!s.removed){if(e=e.toLowerCase(),t=c.state[e])return t(e);try{return s.getDoc().queryCommandState(e)}catch(n){}return!1}},e=function(e,n){n=n||"exec",Om(e,function(t,e){Om(e.toLowerCase().split(","),function(e){c[n][e]=t})})},u=function(e,t,n){e=e.toLowerCase(),c.value[e]=function(){return t.call(n||s)}};Pm(this,{execCommand:function(t,n,r,e){var o,i,a=!1;if(!s.removed){if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(t)||e&&e.skip_focus?_m.restore(s):s.focus(),(e=s.fire("BeforeExecCommand
 ",{command:t,ui:n,value:r})).isDefaultPrevented())return!1;if(i=t.toLowerCase(),o=c.exec[i])return o(i,n,r),s.fire("ExecCommand",{command:t,ui:n,value:r}),!0;if(Om(s.plugins,function(e){if(e.execCommand&&e.execCommand(t,n,r))return s.fire("ExecCommand",{command:t,ui:n,value:r}),!(a=!0)}),a)return a;if(s.theme&&s.theme.execCommand&&s.theme.execCommand(t,n,r))return s.fire("ExecCommand",{command:t,ui:n,value:r}),!0;try{a=s.getDoc().execCommand(t,n,r)}catch(u){}return!!a&&(s.fire("ExecCommand",{command:t,ui:n,value:r}),!0)}},queryCommandState:r,queryCommandValue:function(e){var t;if(!s.quirks.isHidden()&&!s.removed){if(e=e.toLowerCase(),t=c.value[e])return t(e);try{return s.getDoc().queryCommandValue(e)}catch(n){}}},queryCommandSupported:function(e){if(e=e.toLowerCase(),c.exec[e])return!0;try{return s.getDoc().queryCommandSupported(e)}catch(t){}return!1},addCommands:e,addCommand:function(e,o,i){e=e.toL
 owerCase(),c.exec[e]=function(e,t,n,r){return o.call(i||s,t,n,r)}},addQueryStateHandler:function(e,t,n){e=e.toLowerCase(),c.state[e]=function(){return t.call(n||s)}},addQueryValueHandler:u,hasCustomCommand:function(e){return e=e.toLowerCase(),!!c.exec[e]}});var l=function(e,t,n){return t===undefined&&(t=!1),n===undefined&&(n=null),s.getDoc().execCommand(e,t,n)},f=function(e){return a.match(e)},d=function(e,t){a.toggle(e,t?{value:t}:undefined),s.nodeChanged()},m=function(e){t=i.getBookmark(e)},p=function(){i.moveToBookmark(t)};e({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){s.undoManager.add()},"Cut,Copy,Paste":function(e){var t,n=s.getDoc();try{l(e)}catch(o){t=!0}if("paste"!==e||n.queryCommandEnabled(e)||(t=!0),t||!n.queryCommandSupported(e)){var r=s.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instea
 d.");ge.mac&&(r=r.replace(/Ctrl\+/g,"\u2318+")),s.notificationManager.open({text:r,type:"error"})}},unlink:function(){if(i.isCollapsed()){var e=s.dom.getParent(s.selection.getStart(),"a");e&&s.dom.remove(e,!0)}else a.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(e){var t=e.substring(7);"full"===t&&(t="justify"),Om("left,center,right,justify".split(","),function(e){t!==e&&a.remove("align"+e)}),"none"!==t&&d("align"+t)},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;l(e),(t=o.getParent(i.getNode(),"ol,ul"))&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(m(),o.split(n,t),p()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){d(e)},"ForeColor,HiliteColor":function(e,t,n){d(e
 ,n)},FontName:function(e,t,n){Wd(s,n)},FontSize:function(e,t,n){Xd(s,n)},RemoveFormat:function(e){a.remove(e)},mceBlockQuote:function(){d("blockquote")},FormatBlock:function(e,t,n){return d(n||"p")},mceCleanup:function(){var e=i.getBookmark();s.setContent(s.getContent()),i.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var r=n||i.getNode();r!==s.getBody()&&(m(),s.dom.remove(r,!0),p())},mceSelectNodeDepth:function(e,t,n){var r=0;o.getParent(i.getNode(),function(e){if(1===e.nodeType&&r++===n)return i.select(e),!1},s.getBody())},mceSelectNode:function(e,t,n){i.select(n)},mceInsertContent:function(e,t,n){Yc.insertAtCaret(s,n)},mceInsertRawHTML:function(e,t,n){var r=s.getContent();i.setContent("tiny_mce_marker"),s.setContent(r.replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){d(n)},mceSetContent:function(e,t,n){s.setContent(n)},"Indent,Outdent":function(e){Dm(s,e)},mceRepaint:function(){},InsertHor
 izontalRule:function(){s.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){s.hasVisual=!s.hasVisual,s.addVisual()},mceReplaceContent:function(e,t,n){s.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,i.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=o.getParent(i.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||a.remove("link"),n.href&&a.apply("link",n,r)},selectAll:function(){var e=o.getParent(i.getStart(),Ao.isContentEditableTrue);if(e){var t=o.createRng();t.selectNodeContents(e),i.setRng(t)}},"delete":function(){Ud.deleteCommand(s)},forwardDelete:function(){Ud.forwardDeleteCommand(s)},mceNewDocument:function(){s.setContent("")},InsertLineBreak:function(e,t,n){return mm.insert(s,n),!0}}),e({"JustifyLeft,JustifyCenter,JustifyRig
 ht,JustifyFull":function(e){var t="align"+e.substring(7),n=i.isCollapsed()?[o.getParent(i.getNode(),o.isBlock)]:i.getSelectedBlocks(),r=Lm(n,function(e){return!!a.matchNode(e,t)});return-1!==Im(r,!0)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return f(e)},mceBlockQuote:function(){return f("blockquote")},Outdent:function(){var e;if(n.inline_styles){if((e=o.getParent(i.getStart(),o.isBlock))&&0<parseInt(e.style.paddingLeft,10))return!0;if((e=o.getParent(i.getEnd(),o.isBlock))&&0<parseInt(e.style.paddingLeft,10))return!0}return r("InsertUnorderedList")||r("InsertOrderedList")||!n.inline_styles&&!!o.getParent(i.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=o.getParent(i.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"
 ===e&&"OL"===t.tagName)}},"state"),e({Undo:function(){s.undoManager.undo()},Redo:function(){s.undoManager.redo()}}),u("FontName",function(){return Kd(s)},this),u("FontSize",function(){return Yd(s)},this)}var Fm=Lt.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend"," "),zm=function(a){var u,s,c=this,l={},f=function(){return!1},d=function(){return!0};u=(a=a||{}).scope||c,s=a.toggleEvent||f;var r=function(e,t,n,r){var o,i,a;if(!1===t&&(t=f),t)for(t={func:t},r&&Lt.extend(t,r),a=(i=e.toLowerCase().split(" ")).length;a--;)e=i[a],(o=l[e])||(o=l[e]=[],s(e,!0)),n?o.unshift(t):o.push(t);return c},m=f
 unction(e,t){var n,r,o,i,a;if(e)for(n=(i=e.toLowerCase().split(" ")).length;n--;){if(e=i[n],r=l[e],!e){for(o in l)s(o,!1),delete l[o];return c}if(r){if(t)for(a=r.length;a--;)r[a].func===t&&(r=r.slice(0,a).concat(r.slice(a+1)),l[e]=r);else r.length=0;r.length||(s(e,!1),delete l[e])}}else{for(e in l)s(e,!1);l={}}return c};c.fire=function(e,t){var n,r,o,i;if(e=e.toLowerCase(),(t=t||{}).type=e,t.target||(t.target=u),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=d},t.stopPropagation=function(){t.isPropagationStopped=d},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=d},t.isDefaultPrevented=f,t.isPropagationStopped=f,t.isImmediatePropagationStopped=f),a.beforeFire&&a.beforeFire(t),n=l[e])for(r=0,o=n.length;r<o;r++){if((i=n[r]).once&&m(e,i.func),t.isImmediatePropagationStopped())return t.stopPropagation(),t;if(!1===i.func.call(u,t))return t.preventDefault(),t}return t},c.on=r,c.off=m,c.once=function(e,t,n){ret
 urn r(e,t,n,{once:!0})},c.has=function(e){return e=e.toLowerCase(),!(!l[e]||0===l[e].length)}};zm.isNative=function(e){return!!Fm[e.toLowerCase()]};var Um,qm=function(n){return n._eventDispatcher||(n._eventDispatcher=new zm({scope:n,toggleEvent:function(e,t){zm.isNative(e)&&n.toggleNativeEvent&&n.toggleNativeEvent(e,t)}})),n._eventDispatcher},Vm={fire:function(e,t,n){if(this.removed&&"remove"!==e)return t;if(t=qm(this).fire(e,t,n),!1!==n&&this.parent)for(var r=this.parent();r&&!t.isPropagationStopped();)r.fire(e,t,!1),r=r.parent();return t},on:function(e,t,n){return qm(this).on(e,t,n)},off:function(e,t){return qm(this).off(e,t)},once:function(e,t){return qm(this).once(e,t)},hasEventListeners:function(e){return qm(this).has(e)}},Hm=di.DOM,jm=function(e,t){return"selectionchange"===t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e
 .eventRoot||(e.eventRoot=Hm.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()},$m=function(i,a){var e,t,u=function(e){return!e.hidden&&!e.readonly};if(i.delegates||(i.delegates={}),!i.delegates[a]&&!i.removed)if(e=jm(i,a),i.settings.event_root){if(Um||(Um={},i.editorManager.on("removeEditor",function(){var e;if(!i.editorManager.activeEditor&&Um){for(e in Um)i.dom.unbind(jm(i,e));Um=null}})),Um[a])return;t=function(e){for(var t=e.target,n=i.editorManager.get(),r=n.length;r--;){var o=n[r].getBody();(o===t||Hm.isChildOf(t,o))&&u(n[r])&&n[r].fire(a,e)}},Um[a]=t,Hm.bind(e,a,t)}else t=function(e){u(i)&&i.fire(a,e)},Hm.bind(e,a,t),i.delegates[a]=t},Wm={bindPendingEventDelegates:function(){var t=this;Lt.each(t._pendingNativeEvents,function(e){$m(t,e)})},toggleNativeEvent:function(e,t){var n=this;"focus"!==e&&"blur"!==e&&(t?n.initialized?$m(n,e):n._pendingNativeEvents?n._pendingNativeEvents
 .push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(jm(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e,t=this,n=t.getBody(),r=t.dom;if(t.delegates){for(e in t.delegates)t.dom.unbind(jm(t,e),e,t.delegates[e]);delete t.delegates}!t.inline&&n&&r&&(n.onload=null,r.unbind(t.getWin()),r.unbind(t.getDoc())),r&&(r.unbind(n),r.unbind(t.getContainer()))}},Km=Wm=Lt.extend({},Vm,Wm),Xm=function(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}},Ym=function(e,t){var n,r,o;e._clickBlocker&&(e._clickBlocker.unbind(),e._clickBlocker=null),t?(e._clickBlocker=(r=(n=e).getBody(),o=function(e){0<n.dom.getParents(e.target,"a").length&&e.preventDefault()},n.dom.bind(r,"click",o),{unbind:function(){n.dom.unbind(r,"click",o)}}),e.selection.controlSelection.hideResizeRect(),e.readonly=!0,e.getBody().contentEditable=!1):(e.readonly=!1,e.getBody().contentEditable=!0,X
 m(e,"StyleWithCSS",!1),Xm(e,"enableInlineTableEditing",!1),Xm(e,"enableObjectResizing",!1),e.focus(),e.nodeChanged())},Gm=function(e,t){var n=e.readonly?"readonly":"design";t!==n&&(e.initialized?Ym(e,"readonly"===t):e.on("init",function(){Ym(e,"readonly"===t)}),e.fire("SwitchMode",{mode:t}))},Jm=Lt.each,Qm=Lt.explode,Zm={f9:120,f10:121,f11:122},ep=Lt.makeMap("alt,ctrl,shift,meta,access");function tp(i){var a={},r=[],u=function(e){var t,n,r={};for(n in Jm(Qm(e,"+"),function(e){e in ep?r[e]=!0:/^[0-9]{2,}$/.test(e)?r.keyCode=parseInt(e,10):(r.charCode=e.charCodeAt(0),r.keyCode=Zm[e]||e.toUpperCase().charCodeAt(0))}),t=[r.keyCode],ep)r[n]?t.push(n):r[n]=!1;return r.id=t.join(","),r.access&&(r.alt=!0,ge.mac?r.ctrl=!0:r.shift=!0),r.meta&&(ge.mac?r.meta=!0:(r.ctrl=!0,r.meta=!1)),r},s=function(e,t,n,r){var o;return(o=Lt.map(Qm(e,">"),u
 ))[o.length-1]=Lt.extend(o[o.length-1],{func:n,scope:r||i}),Lt.extend(o[0],{desc:i.translate(t),subpatterns:o.slice(1)})},o=function(e,t){return!!t&&t.ctrl===e.ctrlKey&&t.meta===e.metaKey&&t.alt===e.altKey&&t.shift===e.shiftKey&&!!(e.keyCode===t.keyCode||e.charCode&&e.charCode===t.charCode)&&(e.preventDefault(),!0)},c=function(e){return e.func?e.func.call(e.scope):null};i.on("keyup keypress keydown",function(t){var e,n;((n=t).altKey||n.ctrlKey||n.metaKey||"keydown"===(e=t).type&&112<=e.keyCode&&e.keyCode<=123)&&!t.isDefaultPrevented()&&(Jm(a,function(e){if(o(t,e))return r=e.subpatterns.slice(0),"keydown"===t.type&&c(e),!0}),o(t,r[0])&&(1===r.length&&"keydown"===t.type&&c(r[0]),r.shift()))}),this.add=function(e,n,r,o){var t;return"string"==typeof(t=r)?r=function(){i.execCommand(t,!1,null)}:Lt.isArray(t)&&am
 p;(r=function(){i.execCommand(t[0],t[1],t[2])}),Jm(Qm(Lt.trim(e.toLowerCase())),function(e){var t=s(e,n,r,o);a[t.id]=t}),!0},this.remove=function(e){var t=s(e);return!!a[t.id]&&(delete a[t.id],!0)}}var np=function(e){var t=e!==undefined?e.dom():document;return A.from(t.activeElement).map(qn.fromDom)},rp=function(e){var t=qr.owner(e).dom();return e.dom()===t.activeElement},op=function(t){return np(qr.owner(t)).filter(function(e){return t.dom().contains(e.dom())})},ip=function(t,e){return(n=e,n.collapsed?A.from(na(n.startContainer,n.startOffset)).map(qn.fromDom):A.none()).bind(function(e){return ho(e)?A.some(e):!1===Or.contains(t,e)?A.some(t):A.none()});var n},ap=function(t,e){ip(qn.fromDom(t.getBody()),e).bind(function(e){return Ka.firstPositionIn(e.dom())}).fold(function(){t.selection.normalize()},function(e){return t.selection.setRng(e.toRange())})},up=function(e){if(e.setActive)try{e.setActive()}catch(t){e.focus()}else e.focus()},sp=function(e){var t,n=e.getBody();return n
 &&(t=qn.fromDom(n),rp(t)||op(t).isSome())},cp=function(e){return e.inline?sp(e):(t=e).iframeElement&&rp(qn.fromDom(t.iframeElement));var t},lp=function(e){return e.editorManager.setActive(e)},fp=function(e,t){e.removed||(t?lp(e):function(t){var e=t.selection,n=t.settings.content_editable,r=t.getBody(),o=e.getRng();t.quirks.refreshContentEditable();var i,a,u=(i=t,a=e.getNode(),i.dom.getParent(a,function(e){return"true"===i.dom.getContentEditable(e)}));if(t.$.contains(r,u))return up(u),ap(t,o),lp(t);t.bookmark!==undefined&&!1===cp(t)&&_m.getRng(t).each(function(e){t.selection.setRng(e),o=e}),n||(ge.opera||up(r),t.getWin().focus()),(ge.gecko||n)&&(up(r),ap(t,o)),lp(t)}(e))},dp=cp,mp=function(e,t){return t.dom()[e]},pp=function(e,t){return parseInt(yr(t,e),10)},gp=V.curry(mp,"clientWidth"),hp=V.curry(mp,"clientHeight"),vp=V.curry(pp,"margin-top"),yp=V.curry(pp,"margin-left"),bp={isXYInContentArea:f
 unction(e,t,n){var r,o,i,a,u,s,c,l,f,d,m=qn.fromDom(e.getBody()),p=e.inline?m:qr.documentElement(m),g=(r=e.inline,i=t,a=n,u=(o=p).dom().getBoundingClientRect(),{x:i-(r?u.left+o.dom().clientLeft+yp(o):0),y:a-(r?u.top+o.dom().clientTop+vp(o):0)});return c=g.x,l=g.y,f=gp(s=p),d=hp(s),0<=c&&0<=l&&c<=f&&l<=d},isEditorAttachedToDom:function(e){var t,n=e.inline?e.getBody():e.getContentAreaContainer();return(t=n,A.from(t).map(qn.fromDom)).map(function(e){return Or.contains(qr.owner(e),e)}).getOr(!1)}};function Cp(n){var t,o=[],i=function(){var e,t=n.theme;return t&&t.getNotificationManagerImpl?t.getNotificationManagerImpl():{open:e=function(){throw new Error("Theme did not provide a NotificationManager implementation.")},close:e,reposition:e,getArgs:e}},a=function(){0<o.length&&i().reposition(o)},u=function(t){H.findIndex(o,function(e){return e===t}).each(function(e){o.splice(e,1)})},r=function(r){if(!n.removed&&bp.isE
 ditorAttachedToDom(n))return H.find(o,function(e){return t=i().getArgs(e),n=r,!(t.type!==n.type||t.text!==n.text||t.progressBar||t.timeout||n.progressBar||n.timeout);var t,n}).getOrThunk(function(){n.editorManager.setActive(n);var e,t=i().open(r,function(){u(t),a()});return e=t,o.push(e),a(),t})};return(t=n).on("SkinLoaded",function(){var e=t.settings.service_message;e&&r({text:e,type:"warning",timeout:0,icon:""})}),t.on("ResizeEditor ResizeWindow",function(){Ce.requestAnimationFrame(a)}),t.on("remove",function(){H.each(o,function(e){i().close(e)})}),{open:r,close:function(){A.from(o[0]).each(function(e){i().close(e),u(e),a()})},getNotifications:function(){return o}}}function xp(r){var o=[],i=function(){var e,t=r.theme;return t&&t.getWindowManagerImpl?t.getWindowManagerImpl():{open:e=function(){throw new Error("Theme did not provide a WindowManager implementation.")},alert:e,confirm:e,close:e,getParams:e,set
 Params:e}},a=function(e,t){return function(){return t?t.apply(e,arguments):undefined}},u=function(e){var t;o.push(e),t=e,r.fire("OpenWindow",{win:t})},s=function(n){H.findIndex(o,function(e){return e===n}).each(function(e){var t;o.splice(e,1),t=n,r.fire("CloseWindow",{win:t}),0===o.length&&r.focus()})},e=function(){return A.from(o[o.length-1])};return r.on("remove",function(){H.each(o.slice(0),function(e){i().close(e)})}),{windows:o,open:function(e,t){r.editorManager.setActive(r),_m.store(r);var n=i().open(e,t,s);return u(n),n},alert:function(e,t,n){var r=i().alert(e,a(n||this,t),s);u(r)},confirm:function(e,t,n){var r=i().confirm(e,a(n||this,t),s);u(r)},close:function(){e().each(function(e){i().close(e),s(e)})},getParams:function(){return e().map(i().getParams).getOr(null)},setParams:function(t){e().each(function(e){i().setParams(e,t)})},getWindows:function(){return o}}}var wp=Ci.PluginManager,Np=function(e,t){var n=function(e,t){for(var n in wp
 .urls)if(wp.urls[n]+"/plugin"+t+".js"===e)return n;return null}(t,e.suffix);return n?"Failed to load plugin: "+n+" from url "+t:"Failed to load plugin url: "+t},Ep=function(e,t){e.notificationManager.open({type:"error",text:t})},Sp=function(e,t){e._skinLoaded?Ep(e,t):e.on("SkinLoaded",function(){Ep(e,t)})},kp={pluginLoadError:function(e,t){Sp(e,Np(e,t))},uploadError:function(e,t){Sp(e,"Failed to upload image: "+t)},displayError:Sp,initError:function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=window.console;r&&(r.error?r.error.apply(r,arguments):r.log.apply(r,arguments))}},Tp=Ci.PluginManager,Ap=Ci.ThemeManager;function Rp(){return new(j.getOrDie("XMLHttpRequest"))}function Bp(u,s){var r={},n=function(e,r,o,t){var i,n;(i=new Rp).open("POST",s.url),i.withCredentials=s.credentials,i.upload.onprogress=function(e){t(e.loaded/e.total*100)},i.onerror=func
 tion(){o("Image upload failed due to a XHR Transport error. Code: "+i.status)},i.onload=function(){var e,t,n;i.status<200||300<=i.status?o("HTTP Error: "+i.status):(e=JSON.parse(i.responseText))&&"string"==typeof e.location?r((t=s.basePath,n=e.location,t?t.replace(/\/$/,"")+"/"+n.replace(/^\//,""):n)):o("Invalid JSON: "+i.responseText)},(n=new FormData).append("file",e.blob(),e.filename()),i.send(n)},c=function(e,t){return{url:t,blobInfo:e,status:!0}},l=function(e,t){return{url:"",blobInfo:e,status:!1,error:t}},f=function(e,t){Lt.each(r[e],function(e){e(t)}),delete r[e]},o=function(e,n){return e=Lt.grep(e,function(e){return!u.isUploaded(e.blobUri())}),he.all(Lt.map(e,function(e){return u.isPending(e.blobUri())?(t=e.blobUri(),new he(function(e){r[t]=r[t]||[],r[t].push(e)})):(o=e,i=s.handler,a=n,u.markPending(o.blobUri()),new he(function(t){var n;try{var r=function(){n&&n.cl
 ose()};i(o,function(e){r(),u.markUploaded(o.blobUri(),e),f(o.blobUri(),c(o,e)),t(c(o,e))},function(e){r(),u.removeFailed(o.blobUri()),f(o.blobUri(),l(o,e)),t(l(o,e))},function(e){e<0||100<e||(n||(n=a()),n.progressBar.value(e))})}catch(e){t(l(o,e.message))}}));var o,i,a,t}))};return s=Lt.extend({credentials:!1,handler:n},s),{upload:function(e,t){return s.url||s.handler!==n?o(e,t):new he(function(e){e([])})}}}function _p(e,t){return new(j.getOrDie("Blob"))(e,t)}function Dp(){return new(j.getOrDie("FileReader"))}function Op(e){return new(j.getOrDie("Uint8Array"))(e)}var Pp=function(e){return j.getOrDie("atob")(e)},Lp=function(e){var t,n;return e=decodeURIComponent(e).split(","),(n=/data:([^;]+)/.exec(e[0]))&&(t=n[1]),{type:t,data:e[1]}},Ip=function(e){return 0===e.indexOf("blob:")?(i=e,new he(function(e,t){var n=function(){t("Cannot convert "+i+" to Blob. Resource might not exist or is inaccessible
 .")};try{var r=new Rp;r.open("GET",i,!0),r.responseType="blob",r.onload=function(){200===this.status?e(this.response):n()},r.onerror=n,r.send()}catch(o){n()}})):0===e.indexOf("data:")?(o=e,new he(function(e){var t,n,r;o=Lp(o);try{t=Pp(o.data)}catch(Zx){return void e(new _p([]))}for(n=new Op(t.length),r=0;r<n.length;r++)n[r]=t.charCodeAt(r);e(new _p([n],{type:o.type}))})):null;var i,o},Mp=function(n){return new he(function(e){var t=new Dp;t.onloadend=function(){e(t.result)},t.readAsDataURL(n)})},Fp=Lp,zp=0,Up=function(e){return(e||"blobid")+zp++},qp=function(n,r,o,t){var i,a;0!==r.src.indexOf("blob:")?(i=Fp(r.src).data,(a=n.findFirst(function(e){return e.base64()===i}))?o({image:r,blobInfo:a}):Ip(r.src).then(function(e){a=n.create(Up(),e,i),n.add(a),o({image:r,blobInfo:a})},function(e){t(e)})):(a=n.getByUri(r.src))?o({image:r,blobInfo:a}):Ip(r.src).then(function(t){Mp(t).then(function(e){i=Fp(e).data,a=n.create(Up(),t,i),n.add
 (a),o({image:r,blobInfo:a})})},function(e){t(e)})},Vp=function(e){return e?e.getElementsByTagName("img"):[]},Hp=0,jp={uuid:function(e){return e+Hp+++(t=function(){return Math.round(4294967295*Math.random()).toString(36)},"s"+(new Date).getTime().toString(36)+t()+t()+t());var t}};function $p(u){var n,o,i,t,e,a,r,s,c,l,f=(n=[],o=ua.constant,i=function(e){var t,n,r;if(!e.blob||!e.base64)throw new Error("blob and base64 representations of the image are required for BlobInfo to be created");return t=e.id||jp.uuid("blobid"),n=e.name||t,{id:o(t),name:o(n),filename:o(n+"."+(r=e.blob.type,{"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"}[r.toLowerCase()]||"dat")),blob:o(e.blob),base64:o(e.base64),blobUri:o(e.blobUri||W.createObjectURL(e.blob)),uri:o(e.uri)}},{create:function(e,t,n,r){return i("object"==typeof e?e:{id:e,
 name:r,blob:t,base64:n})},add:function(e){t(e.id())||n.push(e)},get:t=function(t){return e(function(e){return e.id()===t})},getByUri:function(t){return e(function(e){return e.blobUri()===t})},findFirst:e=function(e){return Bt.filter(n,e)[0]},removeByUri:function(t){n=Bt.filter(n,function(e){return e.blobUri()!==t||(W.revokeObjectURL(e.blobUri()),!1)})},destroy:function(){Bt.each(n,function(e){W.revokeObjectURL(e.blobUri())}),n=[]}}),d=u.settings,m=(s={},c=function(e,t){return{status:e,resultUri:t}},{hasBlobUri:l=function(e){return e in s},getResultUri:function(e){var t=s[e];return t?t.resultUri:null},isPending:function(e){return!!l(e)&&1===s[e].status},isUploaded:function(e){return!!l(e)&&2===s[e].status},markPending:function(e){s[e]=c(1,null)},markUploaded:function(e,t){s[e]=c(2,t)},removeFailed:function(e){delete s[e]},destroy:function(){s={}}}),p=function(t){return function(e){return u.selection?t(e):[]}},g=function(e,t,n){for(var r=0;-1!==(r=e.indexOf(t,r))&&
 amp;(e=e.substring(0,r)+n+e.substr(r+t.length),r+=n.length-t.length+1),-1!==r;);return e},h=function(e,t,n){return e=g(e,'src="'+t+'"','src="'+n+'"'),e=g(e,'data-mce-src="'+t+'"','data-mce-src="'+n+'"')},v=function(t,n){Bt.each(u.undoManager.data,function(e){"fragmented"===e.type?e.fragments=Bt.map(e.fragments,function(e){return h(e,t,n)}):e.content=h(e.content,t,n)})},y=function(){return u.notificationManager.open({text:u.translate("Image uploading..."),type:"info",timeout:-1,progressBar:!0})},b=function(e,t){f.removeByUri(e.src),v(e.src,t),u.$(e).attr({src:d.images_reuse_filename?t+"?"+(new Date).getTime():t,"data-mce-src":u.convertURL(t,"src")})},C=function(n){return a||(a=Bp(m,{url:d.images_upload_url,basePath:d.images_upload_base_path,credentials:d.images_upload_credentials,handler:d.images_upload_handler})),N().then(p(function(r){var e;return e=Bt.map(r,function(e){return e.blob
 Info}),a.upload(e,y).then(p(function(e){var t=Bt.map(e,function(e,t){var n=r[t].image;return e.status&&!1!==u.settings.images_replace_blob_uris?b(n,e.url):e.error&&kp.uploadError(u,e.error),{element:n,status:e.status}});return n&&n(t),t}))}))},x=function(e){if(!1!==d.automatic_uploads)return C(e)},w=function(e){return!d.images_dataimg_filter||d.images_dataimg_filter(e)},N=function(){var o,i,a;return r||(o=m,i=f,a={},r={findAll:function(e,n){var t;n||(n=ua.constant(!0)),t=Bt.filter(Vp(e),function(e){var t=e.src;return!!ge.fileApi&&!e.hasAttribute("data-mce-bogus")&&!e.hasAttribute("data-mce-placeholder")&&!(!t||t===ge.transparentSrc)&&(0===t.indexOf("blob:")?!o.isUploaded(t):0===t.indexOf("data:")&&n(e))});var r=Bt.map(t,function(n){if(a[n.src])return new he(function(t){a[n.src].then(function(e){if("string"==typeof e)return e;t({image:n,blobInfo:e.blobInfo})})});var e=new
  he(function(e,t){qp(i,n,e,t)}).then(function(e){return delete a[e.image.src],e})["catch"](function(e){return delete a[n.src],e});return a[n.src]=e});return he.all(r)}}),r.findAll(u.getBody(),w).then(p(function(e){return e=Bt.filter(e,function(e){return"string"!=typeof e||(kp.displayError(u,e),!1)}),Bt.each(e,function(e){v(e.image.src,e.blobInfo.blobUri()),e.image.src=e.blobInfo.blobUri(),e.image.removeAttribute("data-mce-src")}),e}))},E=function(e){return e.replace(/src="(blob:[^"]+)"/g,function(e,n){var t=m.getResultUri(n);if(t)return'src="'+t+'"';var r=f.getByUri(n);return r||(r=Bt.reduce(u.editorManager.get(),function(e,t){return e||t.editorUpload&&t.editorUpload.blobCache.getByUri(n)},null)),r?'src="data:'+r.blob().type+";base64,"+r.base64()+'"':e})};return u.on("setContent",function(){!1!==u.settings.automatic_uploads?x():N()}),u.on("RawSaveContent",function(e){e.content=E(e.
 content)}),u.on("getContent",function(e){e.source_view||"raw"===e.format||(e.content=E(e.content))}),u.on("PostRender",function(){u.parser.addNodeFilter("img",function(e){Bt.each(e,function(e){var t=e.attr("src");if(!f.getByUri(t)){var n=m.getResultUri(t);n&&e.attr("src",n)}})})}),{blobCache:f,uploadImages:C,uploadImagesAuto:x,scanForImages:N,destroy:function(){f.destroy(),m.destroy(),r=a=null}}}var Wp=function(e,t){return e.hasOwnProperty(t.nodeName)},Kp=function(e,t){if(Ao.isText(t)){if(0===t.nodeValue.length)return!0;if(/^\s+$/.test(t.nodeValue)&&(!t.nextSibling||Wp(e,t.nextSibling)))return!0}return!1},Xp=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.dom,p=e.selection,g=e.schema,h=g.getBlockElements(),v=p.getStart(),y=e.getBody();if(f=d.forced_root_block,v&&Ao.isElement(v)&&f&&(l=y.nodeName.toLowerCase(),g.isValidChild(l,f.toLowerCase())&&(b=h,C=y,x=v,!H.exists(Il(
 qn.fromDom(x),qn.fromDom(C)),function(e){return Wp(b,e.dom())})))){var b,C,x,w,N;for(n=(t=p.getRng()).startContainer,r=t.startOffset,o=t.endContainer,i=t.endOffset,c=dp(e),v=y.firstChild;v;)if(w=h,N=v,Ao.isText(N)||Ao.isElement(N)&&!Wp(w,N)&&!Bc.isBookmarkNode(N)){if(Kp(h,v)){v=(u=v).nextSibling,m.remove(u);continue}a||(a=m.create(f,e.settings.forced_root_block_attrs),v.parentNode.insertBefore(a,v),s=!0),v=(u=v).nextSibling,a.appendChild(u)}else a=null,v=v.nextSibling;s&&c&&(t.setStart(n,r),t.setEnd(o,i),p.setRng(t),e.nodeChanged())}},Yp=function(e){e.settings.forced_root_block&&e.on("NodeChange",V.curry(Xp,e))};function Gp(i){var r,o=[];"onselectionchange"in i.getDoc()||i.on("NodeChange Click MouseUp KeyUp Focus",function(e){var t,n;n={startContainer:(t=i.selection.getRng()).startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset},"nodechange"!==e.type&&Gd.isEq
 (n,r)||i.fire("SelectionChange"),r=n}),i.on("contextmenu",function(){i.fire("SelectionChange")}),i.on("SelectionChange",function(){var e=i.selection.getStart(!0);!e||!ge.range&&i.selection.isCollapsed()||!function(e){var t,n;if((n=i.$(e).parentsUntil(i.getBody()).add(e)).length===o.length){for(t=n.length;0<=t&&n[t]===o[t];t--);if(-1===t)return o=n,!0}return o=n,!1}(e)&&i.dom.isChildOf(e,i.getBody())&&i.nodeChanged({selectionChange:!0})}),i.on("MouseUp",function(e){e.isDefaultPrevented()||("IMG"===i.selection.getNode().nodeName?Ce.setEditorTimeout(i,function(){i.nodeChanged()}):i.nodeChanged())}),this.nodeChanged=function(e){var t,n,r,o=i.selection;i.initialized&&o&&!i.settings.disable_nodechange&&!i.readonly&&(r=i.getBody(),(t=o.getStart(!0)||r).ownerDocument===i.getDoc()&&i.dom.isChildOf(t,r)||(t=r),n=[],i.dom.getParent(t,function(e){if(e===r)return
 !0;n.push(e)}),(e=e||{}).element=t,e.parents=n,i.fire("NodeChange",e))}}var Jp,Qp,Zp=function(e){var t,n,r,o;return o=e.getBoundingClientRect(),n=(t=e.ownerDocument).documentElement,r=t.defaultView,{top:o.top+r.pageYOffset-n.clientTop,left:o.left+r.pageXOffset-n.clientLeft}},eg=function(e,t){return n=(u=e).inline?Zp(u.getBody()):{left:0,top:0},a=(i=e).getBody(),r=i.inline?{left:a.scrollLeft,top:a.scrollTop}:{left:0,top:0},{pageX:(o=function(e,t){if(t.target.ownerDocument!==e.getDoc()){var n=Zp(e.getContentAreaContainer()),r=(i=(o=e).getBody(),a=o.getDoc().documentElement,u={left:i.scrollLeft,top:i.scrollTop},s={left:i.scrollLeft||a.scrollLeft,top:i.scrollTop||a.scrollTop},o.inline?u:s);return{left:t.pageX-n.left+r.left,top:t.pageY-n.top+r.top}}var o,i,a,u,s;return{left:t.pageX,top:t.pageY}}(e,t)).left-n.left+r.left,pageY:o.top-n.top+r.top};var n,r,o,i,a,u},tg=Ao.isContentEditableFalse,ng=Ao.isContentEditableTrue,rg=function(e){e&&e.parentNode&&e.parentNode.
 removeChild(e)},og=function(u,s){return function(e){if(0===e.button){var t=Bt.find(s.dom.getParents(e.target),ua.or(tg,ng));if(i=s.getBody(),tg(a=t)&&a!==i){var n=s.dom.getPos(t),r=s.getBody(),o=s.getDoc().documentElement;u.element=t,u.screenX=e.screenX,u.screenY=e.screenY,u.maxX=(s.inline?r.scrollWidth:o.offsetWidth)-2,u.maxY=(s.inline?r.scrollHeight:o.offsetHeight)-2,u.relX=e.pageX-n.x,u.relY=e.pageY-n.y,u.width=t.offsetWidth,u.height=t.offsetHeight,u.ghost=function(e,t,n,r){var o=t.cloneNode(!0);e.dom.setStyles(o,{width:n,height:r}),e.dom.setAttrib(o,"data-mce-selected",null);var i=e.dom.create("div",{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return e.dom.setStyles(i,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:n,height:r}),e.dom.setStyles(o,{margin:0,boxSizing:"border-box&quot
 ;}),i.appendChild(o),i}(s,t,u.width,u.height)}}var i,a}},ig=function(l,f){return function(e){if(l.dragging&&(s=(i=f).selection,c=s.getSel().getRangeAt(0).startContainer,a=3===c.nodeType?c.parentNode:c,u=l.element,a!==u&&!i.dom.isChildOf(a,u)&&!tg(a))){var t=(r=l.element,(o=r.cloneNode(!0)).removeAttribute("data-mce-selected"),o),n=f.fire("drop",{targetClone:t,clientX:e.clientX,clientY:e.clientY});n.isDefaultPrevented()||(t=n.targetClone,f.undoManager.transact(function(){rg(l.element),f.insertContent(f.dom.getOuterHTML(t)),f._selectionOverrides.hideFakeCaret()}))}var r,o,i,a,u,s,c;ag(l)}},ag=function(e){e.dragging=!1,e.element=null,rg(e.ghost)},ug=function(e){var t,n,r,o,i,a,g,h,v,u,s,c={};t=di.DOM,a=document,n=og(c,e),g=c,h=e,v=Ce.throttle(function(e,t){h._selectionOverrides.hideFakeCaret(),h.selection.placeCaretAt(e,t)},0),r=function(e){var t,n,r,o,i,a,u,s,c,l,f,d,m=Math.max(Math.abs(e.screenX-g.screenX),Math.abs(e.screenY-g.screenY));if(
 g.element&&!g.dragging&&10<m){if(h.fire("dragstart",{target:g.element}).isDefaultPrevented())return;g.dragging=!0,h.focus()}if(g.dragging){var p=(f=g,{pageX:(d=eg(h,e)).pageX-f.relX,pageY:d.pageY+5});c=g.ghost,l=h.getBody(),c.parentNode!==l&&l.appendChild(c),t=g.ghost,n=p,r=g.width,o=g.height,i=g.maxX,a=g.maxY,s=u=0,t.style.left=n.pageX+"px",t.style.top=n.pageY+"px",n.pageX+r>i&&(u=n.pageX+r-i),n.pageY+o>a&&(s=n.pageY+o-a),t.style.width=r-u+"px",t.style.height=o-s+"px",v(e.clientX,e.clientY)}},o=ig(c,e),u=c,i=function(){ag(u),u.dragging&&s.fire("dragend")},(s=e).on("mousedown",n),e.on("mousemove",r),e.on("mouseup",o),t.bind(a,"mousemove",r),t.bind(a,"mouseup",i),e.on("remove",function(){t.unbind(a,"mousemove",r),t.unbind(a,"mouseup",i)})},sg=function(e){var n;ug(e),(n=e).on("drop&quot
 ;,function(e){var t="undefined"!=typeof e.clientX?n.getDoc().elementFromPoint(e.clientX,e.clientY):null;(tg(t)||tg(n.dom.getContentEditableParent(t)))&&e.preventDefault()})},cg=function(e){return Bt.reduce(e,function(e,t){return e.concat(function(t){var e=function(e){return Bt.map(e,function(e){return(e=Gi(e)).node=t,e})};if(Ao.isElement(t))return e(t.getClientRects());if(Ao.isText(t)){var n=t.ownerDocument.createRange();return n.setStart(t,0),n.setEnd(t,t.data.length),e(n.getClientRects())}}(t))},[])};(Qp=Jp||(Jp={}))[Qp.Up=-1]="Up",Qp[Qp.Down=1]="Down";var lg=function(o,i,a,e,u,t){var n,s,c=0,l=[],r=function(e){var t,n,r;for(r=cg([e]),-1===o&&(r=r.reverse()),t=0;t<r.length;t++)if(n=r[t],!a(n,s)){if(0<l.length&&i(n,Bt.last(l))&&c++,n.line=c,u(n))return!0;l.push(n)}};return(s=Bt.last(t.getClientRects()))&&(r(n=t.getNode()),function(e,t,n,r){for(;r=ds(r,e,Xi,t);)if(n(r))return}(o,e,r,n)),l},fg=V.curry(lg,Jp.U
 p,Zi,ea),dg=V.curry(lg,Jp.Down,ea,Zi),mg=function(n){return function(e){return t=n,e.line>t;var t}},pg=function(n){return function(e){return t=n,e.line===t;var t}},gg=Ao.isContentEditableFalse,hg=ds,vg=function(e,t){return Math.abs(e.left-t)},yg=function(e,t){return Math.abs(e.right-t)},bg=function(e,t){return e>=t.left&&e<=t.right},Cg=function(e,o){return Bt.reduce(e,function(e,t){var n,r;return n=Math.min(vg(e,o),yg(e,o)),r=Math.min(vg(t,o),yg(t,o)),bg(o,t)?t:bg(o,e)?e:r===n&&gg(t.node)?t:r<n?t:e})},xg=function(e,t,n,r){for(;r=hg(r,e,Xi,t);)if(n(r))return},wg=function(e,t,n){var r,o,i,a,u,s,c,l,f=cg((o=e,Bt.filter(Bt.toArray(o.getElementsByTagName("*")),ts))),d=Bt.filter(f,function(e){return n>=e.top&&n<=e.bottom});return(r=Cg(d,t))&&(r=Cg((u=e,l=function(t,e){var n;return n=Bt.filter(cg([e]),function(e){return!t(e,s)}),c=c.concat(n),0===n.length},(c=[]).push(s=r),xg(Jp.Up,u,V.curry(l,Zi),s.node),xg(Jp.Down,u,V.curry(l,ea
 ),s.node),c),t))&&ts(r.node)?(a=t,{node:(i=r).node,before:vg(i,a)<yg(i,a)}):null},Ng=function(i,a,e){return!e.collapsed&&H.foldl(e.getClientRects(),function(e,t){return e||(o=a,(r=i)>=(n=t).left&&r<=n.right&&o>=n.top&&o<=n.bottom);var n,r,o},!1)},Eg=function(t,n){var r=null;return{cancel:function(){null!==r&&(clearTimeout(r),r=null)},throttle:function(){var e=arguments;null===r&&(r=setTimeout(function(){t.apply(null,e),e=r=null},n))}}},Sg=function(t){var e=Eg(function(){if(!t.removed&&t.selection.getRng().collapsed){var e=Za(t,t.selection.getRng(),!1);t.selection.setRng(e)}},0);t.on("focus",function(){e.throttle()}),t.on("blur",function(){e.cancel()})},kg={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(e){return ge.mac?e.metaKey:e.ctrlKey&
 amp;&!e.altKey}},Tg=Ao.isContentEditableTrue,Ag=Ao.isContentEditableFalse,Rg=ks,Bg=Ss,_g=function(e,t){for(var n=e.getBody();t&&t!==n;){if(Tg(t)||Ag(t))return t;t=t.parentNode}return null},Dg=function(p){var g,e,t,a=p.getBody(),o=es(p.getBody(),function(e){return p.dom.isBlock(e)},function(){return dp(p)}),h="sel-"+p.dom.uniqueId(),u=function(e){e&&p.selection.setRng(e)},s=function(){return p.selection.getRng()},v=function(e,t,n,r){return void 0===r&&(r=!0),p.fire("ShowCaret",{target:t,direction:e,before:n}).isDefaultPrevented()?null:(r&&p.selection.scrollIntoView(t,-1===e),o.show(n,t))},y=function(e,t){return t=Cs(e,a,t),-1===e?Ba.fromRangeStart(t):Ba.fromRangeEnd(t)},n=function(e){return Bi(e)||Li(e)||Ii(e)},b=function(e){return n(e.startContainer)||n(e.endContainer)},c=function(e,t){var n,r,o,i,a,u,s,c,l,f,d=p.$,m=p.dom;if(!e)return null;if(e.collapsed){if(!b(e))if(!1===t){if(c=y(-1,e),ts(c.getNode(!0)))return v(-1,c.getNode
 (!0),!1,!1);if(ts(c.getNode()))return v(-1,c.getNode(),!c.isAtEnd(),!1)}else{if(c=y(1,e),ts(c.getNode()))return v(1,c.getNode(),!c.isAtEnd(),!1);if(ts(c.getNode(!0)))return v(1,c.getNode(!0),!1,!1)}return null}return i=e.startContainer,a=e.startOffset,u=e.endOffset,3===i.nodeType&&0===a&&Ag(i.parentNode)&&(i=i.parentNode,a=m.nodeIndex(i),i=i.parentNode),1!==i.nodeType?null:(u===a+1&&(n=i.childNodes[a]),Ag(n)?(l=f=n.cloneNode(!0),(s=p.fire("ObjectSelected",{target:n,targetClone:l})).isDefaultPrevented()?null:(r=Cl(qn.fromDom(p.getBody()),"#"+h).fold(function(){return d([])},function(e){return d([e.dom()])}),l=s.targetClone,0===r.length&&(r=d('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id",h)).appendTo(p.getBody()),e=p.dom.createRng(),l===f&&ge.ie?(r.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p&
 gt;').append(l),e.setStartAfter(r[0].firstChild.firstChild),e.setEndAfter(l)):(r.empty().append("\xa0").append(l).append("\xa0"),e.setStart(r[0].firstChild,1),e.setEnd(r[0].lastChild,0)),r.css({top:m.getPos(n,p.getBody()).y}),r[0].focus(),(o=p.selection.getSel()).removeAllRanges(),o.addRange(e),H.each(fu(qn.fromDom(p.getBody()),"*[data-mce-selected]"),function(e){cr.remove(e,"data-mce-selected")}),n.setAttribute("data-mce-selected","1"),g=n,C(),e)):null)},l=function(){g&&(g.removeAttribute("data-mce-selected"),Cl(qn.fromDom(p.getBody()),"#"+h).each(Ic.remove),g=null)},C=function(){o.hide()};return ge.ceFalse&&(function(){p.on("mouseup",function(e){var t=s();t.collapsed&&bp.isXYInContentArea(p,e.clientX,e.clientY)&&u(Qa(p,t,!1))}),p.on("click",function(e){var t;(t=_g(p,e.target))&&(Ag(t)&&(e.preventDefault(),p.focus()),Tg(t)&&p.do
 m.isChildOf(t,p.selection.getNode())&&l())}),p.on("blur NewBlock",function(){l()}),p.on("ResizeWindow FullscreenStateChanged",function(){return o.reposition()});var n,r,i=function(e,t){var n,r,o=p.dom.getParent(e,p.dom.isBlock),i=p.dom.getParent(t,p.dom.isBlock);return!(!o||!p.dom.isChildOf(o,i)||!1!==Ag(_g(p,o)))||o&&(n=o,r=i,!(p.dom.getParent(n,p.dom.isBlock)===p.dom.getParent(r,p.dom.isBlock)))&&function(e){var t=js(e);if(!e.firstChild)return!1;var n=Ba.before(e.firstChild),r=t.next(n);return r&&!Bg(r)&&!Rg(r)}(o)};r=!1,(n=p).on("touchstart",function(){r=!1}),n.on("touchmove",function(){r=!0}),n.on("touchend",function(e){var t=_g(n,e.target);Ag(t)&&(r||(e.preventDefault(),c(Ja(n,t))))}),p.on("mousedown",function(e){var t,n=e.target;if((n===a||"HTML"===n.nodeName||p.dom.isChildOf(n,a))&&!1!==bp.isXYInContentArea(p,e.clientX,e.clientY))if(t=_g(p,n))Ag(t)?(e.
 preventDefault(),c(Ja(p,t))):(l(),Tg(t)&&e.shiftKey||Ng(e.clientX,e.clientY,p.selection.getRng())||p.selection.placeCaretAt(e.clientX,e.clientY));else if(!1===ts(n)){l(),C();var r=wg(a,e.clientX,e.clientY);if(r&&!i(e.target,r.node)){e.preventDefault();var o=v(1,r.node,r.before,!1);p.getBody().focus(),u(o)}}}),p.on("keypress",function(e){kg.modifierPressed(e)||(e.keyCode,Ag(p.selection.getNode())&&e.preventDefault())}),p.on("getSelectionRange",function(e){var t=e.range;if(g){if(!g.parentNode)return void(g=null);(t=t.cloneRange()).selectNode(g),e.range=t}}),p.on("setSelectionRange",function(e){var t;(t=c(e.range,e.forward))&&(e.range=t)}),p.on("AfterSetSelectionRange",function(e){var t,n=e.range;b(n)||C(),t=n.startContainer.parentNode,p.dom.hasClass(t,"mce-offscreen-selection")||l()}),p.on("copy",function(e){var t,n=e.clipboardData;if(!e.isDefaultPrevented()&&e.clipboardData&&!g
 e.ie){var r=(t=p.dom.get(h))?t.getElementsByTagName("*")[0]:t;r&&(e.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),sg(p),Sg(p)}(),e=p.contentStyles,t=".mce-content-body",e.push(o.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")),{showCaret:v,showBlockCaretContainer:function(e){e.hasAttribute("data-mce-caret")&&(Mi(e),u(s()),p.selection.scrollIntoView(e[0]))},hideFakeCaret:C,destroy:function(){o.destroy(),g=null}}},Og=Lt.each,Pg=function(e){return 0===e.indexOf("data-")||0===e.indexOf("aria-")},Lg=function(e){return e.replace(/<!--|-->/g,"")},Ig=function(e,t,n){var r,o,i,a,u=1;for(a=e.getShortEndedElements(),(i=/<([!?\/])?([A-Za-z0-9\-_\:\.
 ]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g).lastIndex=r=n;o=i.exec(t);){if(r=i.lastIndex,"/"===o[1])u--;else if(!o[1]){if(o[2]in a)continue;u++}if(0===u)break}return r};function Mg(z,U){void 0===U&&(U=Zo());var t=function(){};!1!==(z=z||{}).fix_self_closing&&(z.fix_self_closing=!0),Og("comment cdata text start end pi doctype".split(" "),function(e){e&&(self[e]=z[e]||t)});var q=z.comment?z.comment:t,V=z.cdata?z.cdata:t,H=z.text?z.text:t,j=z.start?z.start:t,$=z.end?z.end:t,W=z.pi?z.pi:t,K=z.doctype?z.doctype:t;return{parse:function(e){var t,n,r,c,o,i,a,l,u,s,f,d,m,p,g,h,v,y,b,C,x,w,N,E,S,k,T,A,R,B=0,_=[],D=0,O=Vo.decode,P=Lt.makeMap("src,href,data,background,formaction,poster"),L=/((java|vb)script|mhtml):/i,I=/^data:/i,M=function(e){var t,n;for(t=_.length;t--&&_[t].name!==e;);if(0<=t){for(n=_.length-1;t<=n;n--)(e=_[n]).valid&&$(e.name);_.length=t}
 },F=function(e,t,n,r,o){var i,a;if(n=(t=t.toLowerCase())in f?t:O(n||r||o||""),m&&!l&&!1===Pg(t)){if(!(i=y[t])&&b){for(a=b.length;a--&&!(i=b[a]).pattern.test(t););-1===a&&(i=null)}if(!i)return;if(i.validValues&&!(n in i.validValues))return}if(P[t]&&!z.allow_script_urls){var u=n.replace(/[\s\u0000-\u001F]+/g,"");try{u=decodeURIComponent(u)}catch(s){u=unescape(u)}if(L.test(u))return;if(!z.allow_html_data_urls&&I.test(u)&&!/^data:image\//i.test(u))return}l&&(t in P||0===t.indexOf("on"))||(c.map[t]=n,c.push({name:t,value:n}))};for(S=new RegExp("<(?:(?:!--([\\w\\W]*?)--\x3e)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))",&qu
 ot;g"),k=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,s=U.getShortEndedElements(),E=z.self_closing_elements||U.getSelfClosingElements(),f=U.getBoolAttrs(),m=z.validate,u=z.remove_internals,R=z.fix_self_closing,T=U.getSpecialElements(),N=e+">";t=S.exec(N);){if(B<t.index&&H(O(e.substr(B,t.index-B))),n=t[6])":"===(n=n.toLowerCase()).charAt(0)&&(n=n.substr(1)),M(n);else if(n=t[7]){if(t.index+t[0].length>e.length){H(O(e.substr(t.index))),B=t.index+t[0].length;continue}if(":"===(n=n.toLowerCase()).charAt(0)&&(n=n.substr(1)),d=n in s,R&&E[n]&&0<_.length&&_[_.length-1].name===n&&M(n),!m||(p=U.getElementRule(n))){if(g=!0,m&&(y=p.attributes,b=p.attributePatterns),(v=t[8])?((l=-1!==v.indexOf("data-mce-type"))&&u&&(g=!1),(c=[]).map={},v.replace(k,F)):(c=[]).map={},m&&!l){if(C=p.attributesRequired,x=
 p.attributesDefault,w=p.attributesForced,p.removeEmptyAttrs&&!c.length&&(g=!1),w)for(o=w.length;o--;)a=(h=w[o]).name,"{$uid}"===(A=h.value)&&(A="mce_"+D++),c.map[a]=A,c.push({name:a,value:A});if(x)for(o=x.length;o--;)(a=(h=x[o]).name)in c.map||("{$uid}"===(A=h.value)&&(A="mce_"+D++),c.map[a]=A,c.push({name:a,value:A}));if(C){for(o=C.length;o--&&!(C[o]in c.map););-1===o&&(g=!1)}if(h=c.map["data-mce-bogus"]){if("all"===h){B=Ig(U,e,S.lastIndex),S.lastIndex=B;continue}g=!1}}g&&j(n,c,d)}else g=!1;if(r=T[n]){r.lastIndex=B=t.index+t[0].length,(t=r.exec(e))?(g&&(i=e.substr(B,t.index-B)),B=t.index+t[0].length):(i=e.substr(B),B=e.length),g&&(0<i.length&&H(i,!0),$(n)),S.lastIndex=B;continue}d||(v&&v.indexOf("/")===v.length-1?g&&$(n):_.push({name:n,valid:g}))}else(n=t[1])?(">"===n.charAt(0)&&(n=" "
 +n),z.allow_conditional_comments||"[if"!==n.substr(0,3).toLowerCase()||(n=" "+n),q(n)):(n=t[2])?V(Lg(n)):(n=t[3])?K(n):(n=t[4])&&W(n,t[5]);B=t.index+t[0].length}for(B<e.length&&H(O(e.substr(B))),o=_.length-1;0<=o;o--)(n=_[o]).valid&&$(n.name)}}}(Mg||(Mg={})).findEndTag=Ig;var Fg=Mg,zg=function(e,t){var n,r,o,i,a,u,s,c,l=t,f=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,d=e.schema;for(u=e.getTempAttrs(),s=l,c=new RegExp(["\\s?("+u.join("|")+')="[^"]+"'].join("|"),"gi"),l=s.replace(c,""),a=d.getShortEndedElements();i=f.exec(l);)r=f.lastIndex,o=i[0].length,n=a[i[1]]?r:Fg.findEndTag(d,l,r),l=l.substring(0,r-o)+l.substring(n),f.lastIndex=r-o;return Si(l)},Ug={trimExternal:zg,trimInternal:zg},qg=0,Vg=2,Hg=1,jg=function(p,g){var e=p.length+g.length+2,h=new Array(e),v=new Array(e),c=function(e,t,n,r,o){var i=l(e,t,n,r);if(null===i||i.start===t&&i.diag=
 ==t-r||i.end===e&&i.diag===e-n)for(var a=e,u=n;a<t||u<r;)a<t&&u<r&&p[a]===g[u]?(o.push([0,p[a]]),++a,++u):r-n<t-e?(o.push([2,p[a]]),++a):(o.push([1,g[u]]),++u);else{c(e,i.start,n,i.start-i.diag,o);for(var s=i.start;s<i.end;++s)o.push([0,p[s]]);c(i.end,t,i.end-i.diag,r,o)}},y=function(e,t,n,r){for(var o=e;o-t<r&&o<n&&p[o]===g[o-t];)++o;return{start:e,end:o,diag:t}},l=function(e,t,n,r){var o=t-e,i=r-n;if(0===o||0===i)return null;var a,u,s,c,l,f=o-i,d=i+o,m=(d%2==0?d:d+1)/2;for(h[1+m]=e,v[1+m]=t+1,a=0;a<=m;++a){for(u=-a;u<=a;u+=2){for(s=u+m,u===-a||u!==a&&h[s-1]<h[s+1]?h[s]=h[s+1]:h[s]=h[s-1]+1,l=(c=h[s])-e+n-u;c<t&&l<r&&p[c]===g[l];)h[s]=++c,++l;if(f%2!=0&&f-a<=u&&u<=f+a&&v[s-f]<=h[s])return y(v[s-f],u+e-n,t,r)}for(u=f-a;u<=f+a;u+=2){for(s=u+m-f,u===f-a||u!==f+a&&v[s+1]<=v[s-1]?v[s]=v[s+1]-1:v[s]=v[s-1],l=(c=v[s]-1)-e+n-u;e<=c&&am
 p;n<=l&&p[c]===g[l];)v[s]=c--,l--;if(f%2==0&&-a<=u&&u<=a&&v[s]<=h[s+f])return y(v[s],u+e-n,t,r)}}},t=[];return c(0,p.length,0,g.length,t),t},$g=function(e){return Ao.isElement(e)?e.outerHTML:Ao.isText(e)?Vo.encodeRaw(e.data,!1):Ao.isComment(e)?"\x3c!--"+e.data+"--\x3e":""},Wg=function(e,t,n){var r=function(e){var t,n,r;for(r=document.createElement("div"),t=document.createDocumentFragment(),e&&(r.innerHTML=e);n=r.firstChild;)t.appendChild(n);return t}(t);if(e.hasChildNodes()&&n<e.childNodes.length){var o=e.childNodes[n];o.parentNode.insertBefore(r,o)}else e.appendChild(r)},Kg=function(e){return Bt.filter(Bt.map(e.childNodes,$g),function(e){return 0<e.length})},Xg=function(e,t){var n,r,o,i=Bt.map(t.childNodes,$g);return n=jg(i,e),r=t,o=0,Bt.each(n,function(e){e[0]===qg?o++:e[0]===Hg?(Wg(r,e[1],o),o++):e[0]===Vg&&function(e,t){if(e.hasChildNodes()&&t<e.childNodes
 .length){var n=e.childNodes[t];n.parentNode.removeChild(n)}}(r,o)}),t},Yg=function(e,t){var n=(t||document).createElement("div");return n.innerHTML=e,qr.children(qn.fromDom(n))},Gg=function(e){return e.dom().innerHTML},Jg=Gg,Qg=function(e,t){var n=qr.owner(e).dom(),r=qn.fromDom(n.createDocumentFragment()),o=Yg(t,n);Pc(r,o),Ic.empty(e),Fu.append(e,r)},Zg=function(e){return{type:"fragmented",fragments:e,content:"",bookmark:null,beforeBookmark:null}},eh=function(e){return{type:"complete",fragments:null,content:e,bookmark:null,beforeBookmark:null}},th=function(e){return"fragmented"===e.type?e.fragments.join(""):e.content},nh=function(e){var t=qn.fromTag("body");return Qg(t,th(e)),H.each(fu(t,"*[data-mce-bogus]"),Ic.unwrap),Jg(t)},rh={createFragmentedLevel:Zg,createCompleteLevel:eh,createFromEditor:function(n){var e,t,r;return e=Kg(n.getBody()),-1!==(t=(r=H.bind(e,function(e){var t=Ug.trimInternal(n.serialize
 r,e);return 0<t.length?[t]:[]})).join("")).indexOf("</iframe>")?Zg(r):eh(t)},applyToEditor:function(e,t,n){"fragmented"===t.type?Xg(t.fragments,e.getBody()):e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(n?t.beforeBookmark:t.bookmark)},isEq:function(e,t){return!(!e||!t)&&(r=t,th(e)===th(r)||(n=t,nh(e)===nh(n)));var n,r}};function oh(u){var s,r,o=this,c=0,l=[],t=0,f=function(){return 0===t},i=function(e){f()&&(o.typing=e)},d=function(e){u.setDirty(e)},a=function(e){i(!1),o.add({},e)},n=function(){o.typing&&(i(!1),o.add())};return u.on("init",function(){o.add()}),u.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&(n(),o.beforeChange())}),u.on("ExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t
 &&a(e)}),u.on("ObjectResizeStart Cut",function(){o.beforeChange()}),u.on("SaveContent ObjectResized blur",a),u.on("DragEnd",a),u.on("KeyUp",function(e){var t=e.keyCode;e.isDefaultPrevented()||((33<=t&&t<=36||37<=t&&t<=40||45===t||e.ctrlKey)&&(a(),u.nodeChanged()),46!==t&&8!==t||u.nodeChanged(),r&&o.typing&&!1===rh.isEq(rh.createFromEditor(u),l[0])&&(!1===u.isDirty()&&(d(!0),u.fire("change",{level:l[0],lastLevel:null})),u.fire("TypingUndo"),r=!1,u.nodeChanged()))}),u.on("KeyDown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented())if(33<=t&&t<=36||37<=t&&t<=40||45===t)o.typing&&a(e);else{var n=e.ctrlKey&&!e.altKey||e.metaKey;!(t<16||20<t)||224===t||91===t||o.typing||n||(o.beforeChange(),i(!0),o.add({},e),r=!0)}}),u.on("MouseDown",function(e){o.typing&&a(e)}),u.on
 ("input",function(e){var t;e.inputType&&("insertReplacementText"===e.inputType||"insertText"===(t=e).inputType&&null===t.data)&&a(e)}),u.addShortcut("meta+z","","Undo"),u.addShortcut("meta+y,meta+shift+z","","Redo"),u.on("AddUndo Undo Redo ClearUndos",function(e){e.isDefaultPrevented()||u.nodeChanged()}),o={data:l,typing:!1,beforeChange:function(){f()&&(s=bc.getUndoBookmark(u.selection))},add:function(e,t){var n,r,o,i=u.settings;if(o=rh.createFromEditor(u),e=e||{},e=Lt.extend(e,o),!1===f()||u.removed)return null;if(r=l[c],u.fire("BeforeAddUndo",{level:e,lastLevel:r,originalEvent:t}).isDefaultPrevented())return null;if(r&&rh.isEq(r,e))return null;if(l[c]&&(l[c].beforeBookmark=s),i.custom_undo_redo_levels&&l.length>i.custom_undo_redo_levels){for(n=0;n<l.length-1;n++)l[n]=l[n+1];l.length--,c=l.length}e.bookmark=bc.ge
 tUndoBookmark(u.selection),c<l.length-1&&(l.length=c+1),l.push(e),c=l.length-1;var a={level:e,lastLevel:r,originalEvent:t};return u.fire("AddUndo",a),0<c&&(d(!0),u.fire("change",a)),e},undo:function(){var e;return o.typing&&(o.add(),o.typing=!1,i(!1)),0<c&&(e=l[--c],rh.applyToEditor(u,e,!0),d(!0),u.fire("undo",{level:e})),e},redo:function(){var e;return c<l.length-1&&(e=l[++c],rh.applyToEditor(u,e,!1),d(!0),u.fire("redo",{level:e})),e},clear:function(){l=[],c=0,o.typing=!1,o.data=l,u.fire("ClearUndos")},hasUndo:function(){return 0<c||o.typing&&l[0]&&!rh.isEq(rh.createFromEditor(u),l[0])},hasRedo:function(){return c<l.length-1&&!o.typing},transact:function(e){return n(),o.beforeChange(),o.ignore(e),o.add()},ignore:function(e){try{t++,e()}finally{t--}},extra:function(e,t){var n,r;o.transact(e)&&(r=l[c].bookmark,n=l[c-1],rh.applyToEditor(u,n,!0),o.
 transact(t)&&(l[c-1].beforeBookmark=r))}}}var ih,ah,uh=function(e){return e&&/^(IMG)$/.test(e.nodeName)},sh=function(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)},ch=function(e,t,n){return"color"!==n&&"backgroundColor"!==n||(t=e.toHex(t)),"fontWeight"===n&&700===t&&(t="bold"),"fontFamily"===n&&(t=t.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+t},lh={isInlineBlock:uh,moveStart:function(e,t,n){var r,o,i,a=n.startOffset,u=n.startContainer;if((n.startContainer!==n.endContainer||!uh(n.startContainer.childNodes[n.startOffset]))&&1===u.nodeType)for(a<(i=u.childNodes).length?r=new no(u=i[a],e.getParent(u,e.isBlock)):(r=new no(u=i[i.length-1],e.getParent(u,e.isBlock))).next(!0),o=r.current();o;o=r.next())if(3===o.nodeType&&!sh(o))return n.setStart(o,0),void t.setRng(n)},getNonWhiteSpaceSibling:function(e,
 t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1===e.nodeType||!sh(e))return e},isTextBlock:function(e,t){return t.nodeType&&(t=t.nodeName),!!e.schema.getTextBlockElements()[t.toLowerCase()]},isValid:function(e,t,n){return e.schema.isValidChild(t,n)},isWhiteSpaceNode:sh,replaceVars:function(e,n){return"string"!=typeof e?e=e(n):n&&(e=e.replace(/%(\w+)/g,function(e,t){return n[t]||e})),e},isEq:function(e,t){return t=t||"",e=""+((e=e||"").nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()===t.toLowerCase()},normalizeStyleValue:ch,getStyle:function(e,t,n){return ch(e,e.getStyle(t,n),n)},getTextDecoration:function(t,e){var n;return t.getParent(e,function(e){return(n=t.getStyle(e,"text-decoration"))&&"none"!==n}),n},getParents:function(e,t,n){return e.getParents(t,n,e.getRoot())}},fh=Bc.isBookmarkNode,dh=lh.getParents,mh=lh.isWhiteSpaceNode,ph=lh.isTex
 tBlock,gh=function(e,t){for(void 0===t&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)(e=e.childNodes[t])&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}},hh=function(e,t){for(var n=t;n;){if(1===n.nodeType&&e.getContentEditable(n))return"false"===e.getContentEditable(n)?n:t;n=n.parentNode}return t},vh=function(e,t,n,r){var o,i,a=n.nodeValue;return void 0===r&&(r=e?a.length:0),e?(o=a.lastIndexOf(" ",r),-1===(o=(i=a.lastIndexOf("\xa0",r))<o?o:i)||t||o++):(o=a.indexOf(" ",r),i=a.indexOf("\xa0",r),o=-1!==o&&(-1===i||o<i)?o:i),o},yh=function(e,t,n,r,o,i){var a,u,s,c;if(3===n.nodeType){if(-1!==(s=vh(o,i,n,r)))return{container:n,offset:s};c=n}for(a=new no(n,e.getParent(n,e.isBlock)||t);u=a[o?"prev":"next"]();)if(3===u.nodeType){if(-1!==(s=vh(o,i,c=u)))return{container:u,offset:s}}else if(e.isBlock(u))break;if(c)return{c
 ontainer:c,offset:r=o?0:c.length}},bh=function(e,t,n,r,o){var i,a,u,s;for(3===r.nodeType&&0===r.nodeValue.length&&r[o]&&(r=r[o]),i=dh(e,r),a=0;a<i.length;a++)for(u=0;u<t.length;u++)if(!("collapsed"in(s=t[u])&&s.collapsed!==n.collapsed)&&e.is(i[a],s.selector))return i[a];return r},Ch=function(t,e,n,r){var o,i=t.dom,a=i.getRoot();if(e[0].wrapper||(o=i.getParent(n,e[0].block,a)),!o){var u=i.getParent(n,"LI,TD,TH");o=i.getParent(3===n.nodeType?n.parentNode:n,function(e){return e!==a&&ph(t,e)},u)}if(o&&e[0].wrapper&&(o=dh(i,o,"ul,ol").reverse()[0]||o),!o)for(o=n;o[r]&&!i.isBlock(o[r])&&(o=o[r],!lh.isEq(o,"br")););return o||n},xh=function(e,t,n,r,o,i,a){var u,s,c,l,f,d;if(u=s=a?n:o,l=a?"previousSibling":"nextSibling",f=e.getRoot(),3===u.nodeType&&!mh(u)&&(a?0<r:i<u.nodeValue.length))return u;for(;;){if(!t[0].block_expand&am
 p;&e.isBlock(s))return s;for(c=s[l];c;c=c[l])if(!fh(c)&&!mh(c)&&("BR"!==(d=c).nodeName||!d.getAttribute("data-mce-bogus")||d.nextSibling))return s;if(s===f||s.parentNode===f){u=s;break}s=s.parentNode}return u},wh=function(e,t,n,r){var o,i=t.startContainer,a=t.startOffset,u=t.endContainer,s=t.endOffset,c=e.dom;return 1===i.nodeType&&i.hasChildNodes()&&3===(i=na(i,a)).nodeType&&(a=0),1===u.nodeType&&u.hasChildNodes()&&3===(u=na(u,t.collapsed?s:s-1)).nodeType&&(s=u.nodeValue.length),i=hh(c,i),u=hh(c,u),(fh(i.parentNode)||fh(i))&&3===(i=(i=fh(i)?i:i.parentNode).nextSibling||i).nodeType&&(a=0),(fh(u.parentNode)||fh(u))&&3===(u=(u=fh(u)?u:u.parentNode).previousSibling||u).nodeType&&(s=u.length),n[0].inline&&(t.collapsed&&((o=yh(c,e.getBody(),i,a,!0,r))&&(i=o.container,a=o.offset),(o=yh(c,e.getBody(),u,s,!1,r))&&(u=o.container,s=o.offset)),
 u=r?u:function(e,t){var n=gh(e,t);if(n.node){for(;n.node&&0===n.offset&&n.node.previousSibling;)n=gh(n.node.previousSibling);n.node&&0<n.offset&&3===n.node.nodeType&&" "===n.node.nodeValue.charAt(n.offset-1)&&1<n.offset&&(e=n.node).splitText(n.offset-1)}return e}(u,s)),(n[0].inline||n[0].block_expand)&&(n[0].inline&&3===i.nodeType&&0!==a||(i=xh(c,n,i,a,u,s,!0)),n[0].inline&&3===u.nodeType&&s!==u.nodeValue.length||(u=xh(c,n,i,a,u,s,!1))),n[0].selector&&!1!==n[0].expand&&!n[0].inline&&(i=bh(c,n,t,i,"previousSibling"),u=bh(c,n,t,u,"nextSibling")),(n[0].block||n[0].selector)&&(i=Ch(e,n,i,"previousSibling"),u=Ch(e,n,u,"nextSibling"),n[0].block&&(c.isBlock(i)||(i=xh(c,n,i,a,u,s,!0)),c.isBlock(u)||(u=xh(c,n,i,a,u,s,!1)))),1===i.nodeType&&(a=c.nodeIndex(i),i=i.parentNode),1===u.nodeType&&am
 p;(s=c.nodeIndex(u)+1,u=u.parentNode),{startContainer:i,startOffset:a,endContainer:u,endOffset:s}},Nh=lh.isEq,Eh=function(e,t,n){var r=e.formatter.get(n);if(r)for(var o=0;o<r.length;o++)if(!1===r[o].inherit&&e.dom.is(t,r[o].selector))return!0;return!1},Sh=function(t,e,n,r){var o=t.dom.getRoot();return e!==o&&(e=t.dom.getParent(e,function(e){return!!Eh(t,e,n)||e.parentNode===o||!!Ah(t,e,n,r,!0)}),Ah(t,e,n,r))},kh=function(e,t,n){return!!Nh(t,n.inline)||!!Nh(t,n.block)||(n.selector?1===t.nodeType&&e.is(t,n.selector):void 0)},Th=function(e,t,n,r,o,i){var a,u,s,c=n[r];if(n.onmatch)return n.onmatch(t,n,r);if(c)if("undefined"==typeof c.length){for(a in c)if(c.hasOwnProperty(a)){if(u="attributes"===r?e.getAttrib(t,a):lh.getStyle(e,t,a),o&&!u&&!n.exact)return;if((!o||n.exact)&&!Nh(u,lh.normalizeStyleValue(e,lh.replaceVars(c[a],i),a)))return}}else for(s=0;s<c.length;s++)if("attributes"===r?e.getAttrib(t,c[s])
 :lh.getStyle(e,t,c[s]))return n;return n},Ah=function(e,t,n,r,o){var i,a,u,s,c=e.formatter.get(n),l=e.dom;if(c&&t)for(a=0;a<c.length;a++)if(i=c[a],kh(e.dom,t,i)&&Th(l,t,i,"attributes",o,r)&&Th(l,t,i,"styles",o,r)){if(s=i.classes)for(u=0;u<s.length;u++)if(!e.dom.hasClass(t,s[u]))return;return i}},Rh={matchNode:Ah,matchName:kh,match:function(e,t,n,r){var o;return r?Sh(e,r,t,n):(r=e.selection.getNode(),!!Sh(e,r,t,n)||!((o=e.selection.getStart())===r||!Sh(e,o,t,n)))},matchAll:function(r,o,i){var e,a=[],u={};return e=r.selection.getStart(),r.dom.getParent(e,function(e){var t,n;for(t=0;t<o.length;t++)n=o[t],!u[n]&&Ah(r,e,n,i)&&(u[n]=!0,a.push(n))},r.dom.getRoot()),a},canApply:function(e,t){var n,r,o,i,a,u=e.formatter.get(t),s=e.dom;if(u)for(n=e.selection.getStart(),r=lh.getParents(s,n),i=u.length-1;0<=i;i--){if(!(a=u[i].selector)||u[i].defaultBlock)return!0;for(o=r.length-1;0<=o;o--)if(s.is(r[o],a))return!0}return!
 1},matchesUnInheritedFormatSelector:Eh},Bh=function(e,t){return e.splitText(t)},_h={split:function(e){var t=e.startContainer,n=e.startOffset,r=e.endContainer,o=e.endOffset;return t===r&&Ao.isText(t)?0<n&&n<t.nodeValue.length&&(t=(r=Bh(t,n)).previousSibling,n<o?(t=r=Bh(r,o-=n).previousSibling,o=r.nodeValue.length,n=0):o=0):(Ao.isText(t)&&0<n&&n<t.nodeValue.length&&(t=Bh(t,n),n=0),Ao.isText(r)&&0<o&&o<r.nodeValue.length&&(o=(r=Bh(r,o).previousSibling).nodeValue.length)),{startContainer:t,startOffset:n,endContainer:r,endOffset:o}}},Dh=Ei,Oh="_mce_caret",Ph=function(e){return 0<function(e){for(var t=[];e;){if(3===e.nodeType&&e.nodeValue!==Dh||1<e.childNodes.length)return[];1===e.nodeType&&t.push(e),e=e.firstChild}return t}(e).length},Lh=function(e){var t;if(e)for(e=(t=new no(e,e)).current();e;e=t.next())if(3===e.nodeType)return e;return null},Ih=function(e){var t=
 qn.fromTag("span");return cr.setAll(t,{id:Oh,"data-mce-bogus":"1","data-mce-type":"format-caret"}),e&&Fu.append(t,qn.fromText(Dh)),t},Mh=function(e,t,n,r){var o,i,a,u;o=t.getRng(!0),i=e.getParent(n,e.isBlock),Ph(n)?(!1!==r&&(o.setStartBefore(n),o.setEndBefore(n)),e.remove(n)):((u=Lh(n))&&u.nodeValue.charAt(0)===Dh&&u.deleteData(0,1),a=u,o.startContainer===a&&0<o.startOffset&&o.setStart(a,o.startOffset-1),o.endContainer===a&&0<o.endOffset&&o.setEnd(a,o.endOffset-1),e.remove(n,!0)),i&&e.isEmpty(i)&&Uc(qn.fromDom(i)),t.setRng(o)},Fh=function(e,t,n,r,o){if(r)Mh(t,n,r,o);else if(!(r=wc(e,n.getStart())))for(;r=t.get(Oh);)Mh(t,n,r,!1)},zh=function(e,t,n){var r=e.dom,o=r.getParent(n,ua.curry(lh.isTextBlock,e));o&&r.isEmpty(o)?n.parentNode.replaceChild(t,n):(zc(qn.fromDom(n)),r.isEmpty(n)?n.parentNode.replaceChild(t,n):r.insertAfter(t,n))},Uh=functio
 n(e,t){return e.appendChild(t),t},qh=function(e,t){var n=H.foldr(e,function(e,t){return Uh(e,t.cloneNode(!1))},t);return Uh(n,n.ownerDocument.createTextNode(Dh))},Vh=function(e){var i=e.dom,a=e.selection,u=e.getBody();e.on("mouseup keydown",function(e){var t,n,r,o;t=u,n=i,r=a,o=e.keyCode,Fh(t,n,r,null,!1),8===o&&r.isCollapsed()&&r.getStart().innerHTML===Dh&&Fh(t,n,r,wc(t,r.getStart())),37!==o&&39!==o||Fh(t,n,r,wc(t,r.getStart()))})},Hh=function(e,t){return e.schema.getTextInlineElements().hasOwnProperty(Qn.name(t))&&!xc(t.dom())&&!Ao.isBogus(t.dom())},jh={},$h=Bt.filter,Wh=Bt.each;ah=function(e){var t,n,r=e.selection.getRng();t=Ao.matchNodeNames("pre"),r.collapsed||(n=e.selection.getSelectedBlocks(),Wh($h($h(n,t),function(e){return t(e.previousSibling)&&-1!==Bt.indexOf(n,e.previousSibling)}),function(e){var t,n;t=e.previousSibling,en(n=e).remove(),en(t).append("<br><br>").append(n.child
 Nodes)}))},jh[ih="pre"]||(jh[ih]=[]),jh[ih].push(ah);var Kh=function(e,t){Wh(jh[e],function(e){e(t)})},Xh=Lt.each,Yh={walk:function(e,t,o){var n,r,i,a,u,s,c,l=t.startContainer,f=t.startOffset,d=t.endContainer,m=t.endOffset;if(0<(c=e.select("td[data-mce-selected],th[data-mce-selected]")).length)Xh(c,function(e){o([e])});else{var p,g,h,v=function(e){var t;return 3===(t=e[0]).nodeType&&t===l&&f>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===m&&0<e.length&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e},y=function(e,t,n){for(var r=[];e&&e!==n;e=e[t])r.push(e);return r},b=function(e,t){do{if(e.parentNode===t)return e;e=e.parentNode}while(e)},C=function(e,t,n){var r=n?"nextSibling":"previousSibling";for(u=(a=e).parentNode;a&&a!==t;a=u)u=a.parentNode,(s=y(a===e?a:a[r],r)).length&&(n||s.reverse(),o(v(s)))};if(1===l.nodeType&&l.hasChildNodes()&
 &(l=l.childNodes[f]),1===d.nodeType&&d.hasChildNodes()&&(g=m,h=(p=d).childNodes,--g>h.length-1?g=h.length-1:g<0&&(g=0),d=h[g]||p),l===d)return o(v([l]));for(n=e.findCommonAncestor(l,d),a=l;a;a=a.parentNode){if(a===d)return C(l,n,!0);if(a===n)break}for(a=d;a;a=a.parentNode){if(a===l)return C(d,n);if(a===n)break}r=b(l,n)||l,i=b(d,n)||d,C(l,r,!0),(s=y(r===l?r:r.nextSibling,"nextSibling",i===d?i.nextSibling:i)).length&&o(v(s)),C(d,i)}}},Gh=/^(src|href|style)$/,Jh=Lt.each,Qh=lh.isEq,Zh=function(e){return/^(TH|TD)$/.test(e.nodeName)},ev=function(e,t,n){var r,o,i;return r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],Ao.isElement(r)&&(i=r.childNodes.length-1,!n&&o&&o--,r=r.childNodes[i<o?i:o]),Ao.isText(r)&&n&&o>=r.nodeValue.length&&(r=new no(r,e.getBody()).next()||r),Ao.isText(r)&&!n&&0===o&&(r=new
  no(r,e.getBody()).prev()||r),r},tv=function(e,t,n,r){var o=e.create(n,r);return t.parentNode.insertBefore(o,t),o.appendChild(t),o},nv=function(e,t,n,r){return!(t=lh.getNonWhiteSpaceSibling(t,n,r))||"BR"===t.nodeName||e.isBlock(t)},rv=function(e,n,r,o,i){var t,a,u,s,c,l,f,d,m,p,g,h,v,y,b=e.dom;if(c=b,!(Qh(l=o,(f=n).inline)||Qh(l,f.block)||(f.selector?Ao.isElement(l)&&c.is(l,f.selector):void 0)||(s=o,n.links&&"A"===s.tagName)))return!1;if("all"!==n.remove)for(Jh(n.styles,function(e,t){e=lh.normalizeStyleValue(b,lh.replaceVars(e,r),t),"number"==typeof t&&(t=e,i=0),(n.remove_similar||!i||Qh(lh.getStyle(b,i,t),e))&&b.setStyle(o,t,""),u=1}),u&&""===b.getAttrib(o,"style")&&(o.removeAttribute("style"),o.removeAttribute("data-mce-style")),Jh(n.attributes,function(e,t){var n;if(e=lh.replaceVars(e,r),"number"==typeof t&&(t=e,i=0),!i||Qh(b.
 getAttrib(i,t),e)){if("class"===t&&(e=b.getAttrib(o,t))&&(n="",Jh(e.split(/\s+/),function(e){/mce\-\w+/.test(e)&&(n+=(n?" ":"")+e)}),n))return void b.setAttrib(o,t,n);"class"===t&&o.removeAttribute("className"),Gh.test(t)&&o.removeAttribute("data-mce-"+t),o.removeAttribute(t)}}),Jh(n.classes,function(e){e=lh.replaceVars(e,r),i&&!b.hasClass(i,e)||b.removeClass(o,e)}),a=b.getAttribs(o),t=0;t<a.length;t++){var C=a[t].nodeName;if(0!==C.indexOf("_")&&0!==C.indexOf("data-"))return!1}return"none"!==n.remove?(d=e,p=n,h=(m=o).parentNode,v=d.dom,y=d.settings.forced_root_block,p.block&&(y?h===v.getRoot()&&(p.list_block&&Qh(m,p.list_block)||Jh(Lt.grep(m.childNodes),function(e){lh.isValid(d,y,e.nodeName.toLowerCase())?g?g.appendChild(e):(g=tv(v,e,y),v.setAttribs(g,d.settings.forced_root_block_attrs)):g=0})):v.isBloc
 k(m)&&!v.isBlock(h)&&(nv(v,m,!1)||nv(v,m.firstChild,!0,1)||m.insertBefore(v.create("br"),m.firstChild),nv(v,m,!0)||nv(v,m.lastChild,!1,1)||m.appendChild(v.create("br")))),p.selector&&p.inline&&!Qh(p.inline,m)||v.remove(m,1),!0):void 0},ov={removeFormat:rv,remove:function(s,c,l,e,f){var t,n,d=s.formatter.get(c),m=d[0],a=!0,u=s.dom,r=s.selection,o=function(e){var n,t,r,o,i,a,u=(n=s,t=e,r=c,o=l,i=f,Jh(lh.getParents(n.dom,t.parentNode).reverse(),function(e){var t;a||"_start"===e.id||"_end"===e.id||(t=Rh.matchNode(n,e,r,o,i))&&!1!==t.split&&(a=e)}),a);return function(e,t,n,r,o,i,a,u){var s,c,l,f,d,m,p=e.dom;if(n){for(m=n.parentNode,s=r.parentNode;s&&s!==m;s=s.parentNode){for(c=p.clone(s,!1),d=0;d<t.length;d++)if(rv(e,t[d],u,c,c)){c=0;break}c&&(l&&c.appendChild(l),f||(f=c),l=c)}!i||a.mixed&&p.isBlock(n)||(r=p.split(n,r)),l&&(o.parentNode.insertBefore(l,o),f.ap
 pendChild(o))}return r}(s,d,u,e,e,!0,m,l)},p=function(e){var t,n,r,o,i;if(Ao.isElement(e)&&u.getContentEditable(e)&&(o=a,a="true"===u.getContentEditable(e),i=!0),t=Lt.grep(e.childNodes),a&&!i)for(n=0,r=d.length;n<r&&!rv(s,d[n],l,e,e);n++);if(m.deep&&t.length){for(n=0,r=t.length;n<r;n++)p(t[n]);i&&(a=o)}},i=function(e){var t=u.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return Bc.isBookmarkNode(n)&&(n=n[e?"firstChild":"lastChild"]),Ao.isText(n)&&0===n.data.length&&(n=e?t.previousSibling||t.nextSibling:t.nextSibling||t.previousSibling),u.remove(t,!0),n},g=function(e){var t,n,r=e.commonAncestorContainer;if(e=wh(s,e,d,!0),m.split){if((t=ev(s,e,!0))!==(n=ev(s,e))){if(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"===t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT
 |R)$/.test(r.nodeName)&&Zh(n)&&n.firstChild&&(n=n.firstChild||n),u.isChildOf(t,n)&&t!==n&&!u.isBlock(n)&&!Zh(t)&&!Zh(n))return t=tv(u,t,"span",{id:"_start","data-mce-type":"bookmark"}),o(t),void(t=i(!0));t=tv(u,t,"span",{id:"_start","data-mce-type":"bookmark"}),n=tv(u,n,"span",{id:"_end","data-mce-type":"bookmark"}),o(t),o(n),t=i(!0),n=i()}else t=n=o(t);e.startContainer=t.parentNode?t.parentNode:t,e.startOffset=u.nodeIndex(t),e.endContainer=n.parentNode?n.parentNode:n,e.endOffset=u.nodeIndex(n)+1}Yh.walk(u,e,function(e){Jh(e,function(e){p(e),Ao.isElement(e)&&"underline"===s.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===lh.getTextDecoration(u,e.parentNode)&&rv(s,{deep:!1,exact:!0,inline:"span",styles:{textDecoration:"u
 nderline"}},null,e)})})};if(e)e.nodeType?((n=u.createRng()).setStartBefore(e),n.setEndAfter(e),g(n)):g(e);else if("false"!==u.getContentEditable(r.getNode()))r.isCollapsed()&&m.inline&&!u.select("td[data-mce-selected],th[data-mce-selected]").length?function(e,t,n,r){var o,i,a,u,s,c,l,f=e.dom,d=e.selection,m=[],p=d.getRng();for(o=p.startContainer,i=p.startOffset,3===(s=o).nodeType&&(i!==o.nodeValue.length&&(u=!0),s=s.parentNode);s;){if(Rh.matchNode(e,s,t,n,r)){c=s;break}s.nextSibling&&(u=!0),m.push(s),s=s.parentNode}if(c)if(u){a=d.getBookmark(),p.collapse(!0);var g=wh(e,p,e.formatter.get(t),!0);g=_h.split(g),e.formatter.remove(t,n,g),d.moveToBookmark(a)}else{l=wc(e.getBody(),c);var h=Ih(!1).dom(),v=qh(m,h);zh(e,h,l||c),Mh(f,d,l,!1),d.setCursorLocation(v,1),f.isEmpty(c)&&f.remove(c)}}(s,c,l,f):(t=bc.getPersistentBookmark(s.selection,!0),g(r.getRng()),r.moveToBookmark(t),m.inline&&Rh.match(s,c,l,r.getStart
 ())&&lh.moveStart(u,r,r.getRng()),s.nodeChanged());else{e=r.getNode();for(var h=0,v=d.length;h<v&&(!d[h].ceFalseOverride||!rv(s,d[h],l,e,e));h++);}}},iv=Lt.each,av=function(e){return e&&1===e.nodeType&&!Bc.isBookmarkNode(e)&&!xc(e)&&!Ao.isBogus(e)},uv=function(e,t){var n;for(n=e;n;n=n[t]){if(3===n.nodeType&&0!==n.nodeValue.length)return e;if(1===n.nodeType&&!Bc.isBookmarkNode(n))return n}return e},sv=function(e,t,n){var r,o,i=new Dc(e);if(t&&n&&(t=uv(t,"previousSibling"),n=uv(n,"nextSibling"),i.compare(t,n))){for(r=t.nextSibling;r&&r!==n;)r=(o=r).nextSibling,t.appendChild(o);return e.remove(n),Lt.each(Lt.grep(n.childNodes),function(e){t.appendChild(e)}),t}return n},cv=function(e,t,n){iv(e.childNodes,function(e){av(e)&&(t(e)&&n(e),e.hasChildNodes()&&cv(e,t,n))})},lv=function(n,e){return V.curry(function(e,t){return!(!t||!lh.getStyle(n,t,e))},e)},fv=fu
 nction(r,e,t){return V.curry(function(e,t,n){r.setStyle(n,e,t),""===n.getAttribute("style")&&n.removeAttribute("style"),dv(r,n)},e,t)},dv=function(e,t){"SPAN"===t.nodeName&&0===e.getAttribs(t).length&&e.remove(t,!0)},mv=function(e,t){var n;1===t.nodeType&&t.parentNode&&1===t.parentNode.nodeType&&(n=lh.getTextDecoration(e,t.parentNode),e.getStyle(t,"color")&&n?e.setStyle(t,"text-decoration",n):e.getStyle(t,"text-decoration")===n&&e.setStyle(t,"text-decoration",null))},pv=function(n,e,r,o){iv(e,function(t){iv(n.dom.select(t.inline,o),function(e){av(e)&&ov.removeFormat(n,t,r,e,t.exact?e:null)}),function(r,e,t){if(e.clear_child_styles){var n=e.links?"*:not(a)":"*";iv(r.select(n,t),function(n){av(n)&&iv(e.styles,function(e,t){r.setStyle(n,t,"")})})}}(n.dom,t,o)})},gv=function(e,t,n,r){(t.styles.color|
 |t.styles.textDecoration)&&(Lt.walk(r,V.curry(mv,e),"childNodes"),mv(e,r))},hv=function(e,t,n,r){t.styles&&t.styles.backgroundColor&&cv(r,lv(e,"fontSize"),fv(e,"backgroundColor",lh.replaceVars(t.styles.backgroundColor,n)))},vv=function(e,t,n,r){"sub"!==t.inline&&"sup"!==t.inline||(cv(r,lv(e,"fontSize"),fv(e,"fontSize","")),e.remove(e.select("sup"===t.inline?"sub":"sup",r),!0))},yv=function(e,t,n,r){r&&!1!==t.merge_siblings&&(r=sv(e,lh.getNonWhiteSpaceSibling(r),r),r=sv(e,r,lh.getNonWhiteSpaceSibling(r,!0)))},bv=function(t,n,r,o,i){Rh.matchNode(t,i.parentNode,r,o)&&ov.removeFormat(t,n,o,i)||n.merge_with_parents&&t.dom.getParent(i.parentNode,function(e){if(Rh.matchNode(t,e,r,o))return ov.removeFormat(t,n,o,i),!0})},Cv=Lt.each,xv=function(p,g,h,r){var e,t,v=p.formatter.get(g),y=v[0],o=!r&&p.selection.isColl
 apsed(),i=p.dom,n=p.selection,b=function(n,e){if(e=e||y,n){if(e.onformat&&e.onformat(n,e,h,r),Cv(e.styles,function(e,t){i.setStyle(n,t,lh.replaceVars(e,h))}),e.styles){var t=i.getAttrib(n,"style");t&&n.setAttribute("data-mce-style",t)}Cv(e.attributes,function(e,t){i.setAttrib(n,t,lh.replaceVars(e,h))}),Cv(e.classes,function(e){e=lh.replaceVars(e,h),i.hasClass(n,e)||i.addClass(n,e)})}},C=function(e,t){var n=!1;return!!y.selector&&(Cv(e,function(e){if(!("collapsed"in e&&e.collapsed!==o))return i.is(t,e.selector)&&!xc(t)?(b(t,e),!(n=!0)):void 0}),n)},a=function(s,e,t,c){var l,f,d=[],m=!0;l=y.inline||y.block,f=s.create(l),b(f),Yh.walk(s,e,function(e){var a,u=function(e){var t,n,r,o;if(o=m,t=e.nodeName.toLowerCase(),n=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&s.getContentEditable(e)&&(o=m,m="true"===s.getContentEditable(e),r=!0),lh.isEq(t,"br"))return a=0,void(y.block&&
 amp;s.remove(e));if(y.wrapper&&Rh.matchNode(p,e,g,h))a=0;else{if(m&&!r&&y.block&&!y.wrapper&&lh.isTextBlock(p,t)&&lh.isValid(p,n,l))return e=s.rename(e,l),b(e),d.push(e),void(a=0);if(y.selector){var i=C(v,e);if(!y.inline||i)return void(a=0)}!m||r||!lh.isValid(p,l,t)||!lh.isValid(p,n,l)||!c&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||xc(e)||y.inline&&s.isBlock(e)?(a=0,Cv(Lt.grep(e.childNodes),u),r&&(m=o),a=0):(a||(a=s.clone(f,!1),e.parentNode.insertBefore(a,e),d.push(a)),a.appendChild(e))}};Cv(e,u)}),!0===y.links&&Cv(d,function(e){var t=function(e){"A"===e.nodeName&&b(e,y),Cv(Lt.grep(e.childNodes),t)};t(e)}),Cv(d,function(e){var t,n,r,o,i,a=function(e){var n=!1;return Cv(e.childNodes,function(e){if((t=e)&&1===t.nodeType&&!Bc.isBookmarkNode(t)&&!xc(t)&&!Ao.isBogus(t))return n=e,!1;var t}),n};n=0,Cv(e.childNode
 s,function(e){lh.isWhiteSpaceNode(e)||Bc.isBookmarkNode(e)||n++}),t=n,!(1<d.length)&&s.isBlock(e)||0!==t?(y.inline||y.wrapper)&&(y.exact||1!==t||((o=a(r=e))&&!Bc.isBookmarkNode(o)&&Rh.matchName(s,o,y)&&(i=s.clone(o,!1),b(i),s.replace(i,r,!0),s.remove(o,1)),e=i||r),pv(p,v,h,e),bv(p,y,g,h,e),hv(s,y,h,e),vv(s,y,h,e),yv(s,y,h,e)):s.remove(e,1)})};if("false"!==i.getContentEditable(n.getNode())){if(y){if(r)r.nodeType?C(v,r)||((t=i.createRng()).setStartBefore(r),t.setEndAfter(r),a(i,wh(p,t,v),0,!0)):a(i,r,0,!0);else if(o&&y.inline&&!i.select("td[data-mce-selected],th[data-mce-selected]").length)!function(e,t,n){var r,o,i,a,u,s,c=e.selection;a=(r=c.getRng(!0)).startOffset,s=r.startContainer.nodeValue,(o=wc(e.getBody(),c.getStart()))&&(i=Lh(o));var l,f,d=/[^\s\u00a0\u00ad\u200b\ufeff]/;s&&0<a&&a<s.length&&d.test(s.charAt(a))&&d.test(s.charAt(a-1))?(u=c.getBookmark(),r.
 collapse(!0),r=wh(e,r,e.formatter.get(t)),r=_h.split(r),e.formatter.apply(t,n,r),c.moveToBookmark(u)):(o&&i.nodeValue===Dh||(l=e.getDoc(),f=Ih(!0).dom(),i=(o=l.importNode(f,!0)).firstChild,r.insertNode(o),a=1),e.formatter.apply(t,n,o),c.setCursorLocation(i,a))}(p,g,h);else{var u=p.selection.getNode();p.settings.forced_root_block||!v[0].defaultBlock||i.getParent(u,i.isBlock)||xv(p,v[0].defaultBlock),p.selection.setRng(Wc(p.selection.getRng())),e=bc.getPersistentBookmark(p.selection,!0),a(i,wh(p,n.getRng(),v)),y.styles&&gv(i,y,h,u),n.moveToBookmark(e),lh.moveStart(i,n,n.getRng()),p.nodeChanged()}Kh(g,p)}}else{r=n.getNode();for(var s=0,c=v.length;s<c;s++)if(v[s].ceFalseOverride&&i.is(r,v[s].selector))return void b(r,v[s])}},wv={applyFormat:xv},Nv=Lt.each,Ev={formatChanged:function(e,t,n,r,o){var i,a,u,s,c,l,f,d;null===t.get()&&(a=e,u={},(i=t).set({}),a.on("NodeChange",function(n){var r=lh.getParents(a.dom,n.element),o={};r=Lt.grep(r,function
 (e){return 1===e.nodeType&&!e.getAttribute("data-mce-bogus")}),Nv(i.get(),function(e,n){Nv(r,function(t){return a.formatter.matchNode(t,n,{},e.similar)?(u[n]||(Nv(e,function(e){e(!0,{node:t,format:n,parents:r})}),u[n]=e),o[n]=e,!1):!Rh.matchesUnInheritedFormatSelector(a,t,n)&&void 0})}),Nv(u,function(e,t){o[t]||(delete u[t],Nv(e,function(e){e(!1,{node:n.element,format:t,parents:r})}))})})),c=n,l=r,f=o,d=(s=t).get(),Nv(c.split(","),function(e){d[e]||(d[e]=[],d[e].similar=f),d[e].push(l)}),s.set(d)}},Sv={get:function(r){var t={valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure.image",collapsed:!1,classes:"align-left",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h
 1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},inherit:!1,preview:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"},preview:"font-family font-size"}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"figure.image",collapsed:!1,classes:"align-center",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"},preview:!1},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"},preview:"font-family font-size"}],alignright:[{selector:"figure.image",collapsed:!1,classes:"align-right&quo
 t;,ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"},preview:"font-family font-size"}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},inherit:!1,defaultBlock:"div",preview:"font-family font-size"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"u
 nderline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},fontname:{inline:"span",toggle:!1,styles:{fontFamily:"%value"},clear_child_styles:!0},fontsize:{inline:"span",toggle:!1,styles:{fontSize:"%value"},clear_child_styles:!0},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a&
 quot;,remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(n,e,t){Lt.each(t,function(e,t){r.setAttrib(n,t,e)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]};return Lt.each("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){t[e]={block:e,remove:"all"}}),t}},kv=Lt.each,Tv=di.DOM,Av=function(e,t){var n,o,r,m=t&&t.schema||Zo({}),p=function(e){var t,n,r;return o="string"==typeof e?{name:e,classes:[],attrs:{}}:e,t=Tv.create(o.name),n=t,(r=o).classes.length&&Tv.addClass(n,r.classes.join(" ")),Tv.setAttribs(n,r.att
 rs),t},g=function(n,e,t){var r,o,i,a,u,s,c,l,f=0<e.length&&e[0],d=f&&f.name;if(u=d,s="string"!=typeof(a=n)?a.nodeName.toLowerCase():a,c=m.getElementRule(s),i=!(!(l=c&&c.parentsRequired)||!l.length)&&(u&&-1!==Lt.inArray(l,u)?u:l[0]))d===i?(o=e[0],e=e.slice(1)):o=i;else if(f)o=e[0],e=e.slice(1);else if(!t)return n;return o&&(r=p(o)).appendChild(n),t&&(r||(r=Tv.create("div")).appendChild(n),Lt.each(t,function(e){var t=p(e);r.insertBefore(t,n)})),g(r,e,o&&o.siblings)};return e&&e.length?(o=e[0],n=p(o),(r=Tv.create("div")).appendChild(g(n,e.slice(1),o.siblings)),r):""},Rv=function(e){var t,a={classes:[],attrs:{}};return"*"!==(e=a.selector=Lt.trim(e))&&(t=e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g,function(e,t,n,r,o){switch(t){case"#":a.attrs.id=n;break;case".":a.classes.push(n);break;case":":-1!==Lt.inArray("che
 cked disabled enabled read-only required".split(" "),n)&&(a.attrs[n]=n)}if("["===r){var i=o.match(/([\w\-]+)(?:\=\"([^\"]+))?/);i&&(a.attrs[i[1]]=i[2])}return""})),a.name=t||"div",a},Bv=function(e){return e&&"string"==typeof e?(e=(e=e.split(/\s*,\s*/)[0]).replace(/\s*(~\+|~|\+|>)\s*/g,"$1"),Lt.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/),function(e){var t=Lt.map(e.split(/(?:~\+|~|\+)/),Rv),n=t.pop();return t.length&&(n.siblings=t),n}).reverse()):[]},_v={getCssText:function(n,e){var t,r,o,i,a,u,s="";if(!1===(u=n.settings.preview_styles))return"";"string"!=typeof u&&(u="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow");var c=function(e){return e.replace(/%(\w+)/g,"")};if("string"==typeof e){if(!(e=n.formatter.get(e)))retur
 n;e=e[0]}return"preview"in e&&!1===(u=e.preview)?"":(t=e.block||e.inline||"span",(i=Bv(e.selector)).length?(i[0].name||(i[0].name=t),t=e.selector,r=Av(i,n)):r=Av([t],n),o=Tv.select(t,r)[0]||r.firstChild,kv(e.styles,function(e,t){(e=c(e))&&Tv.setStyle(o,t,e)}),kv(e.attributes,function(e,t){(e=c(e))&&Tv.setAttrib(o,t,e)}),kv(e.classes,function(e){e=c(e),Tv.hasClass(o,e)||Tv.addClass(o,e)}),n.fire("PreviewFormats"),Tv.setStyles(r,{position:"absolute",left:-65535}),n.getBody().appendChild(r),a=Tv.getStyle(n.getBody(),"fontSize",!0),a=/px$/.test(a)?parseInt(a,10):0,kv(u.split(" "),function(e){var t=Tv.getStyle(o,e,!0);if(!("background-color"===e&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(t)&&(t=Tv.getStyle(n.getBody(),e,!0),"#ffffff"===Tv.toHex(t).toLowerCase())||"color"===e&&"#000000"===Tv.toHex(t).toLowerCase())){if("font-size
 "===e&&/em|%$/.test(t)){if(0===a)return;t=parseFloat(t)/(/%$/.test(t)?100:1)*a+"px"}"border"===e&&t&&(s+="padding:0 2px;"),s+=e+":"+t+";"}}),n.fire("AfterPreviewFormats"),Tv.remove(r),s)},parseSelector:Bv,selectorToHtml:function(e,t){return Av(Bv(e),t)}},Dv={toggle:function(e,t,n,r,o){var i=t.get(n);!Rh.match(e,n,r,o)||"toggle"in i[0]&&!i[0].toggle?wv.applyFormat(e,n,r,o):ov.remove(e,n,r,o)}},Ov={setup:function(e){e.addShortcut("meta+b","","Bold"),e.addShortcut("meta+i","","Italic"),e.addShortcut("meta+u","","Underline");for(var t=1;t<=6;t++)e.addShortcut("access+"+t,"",["FormatBlock",!1,"h"+t]);e.addShortcut("access+7","",["FormatBlock",!1,"p"]),e.addShortcut("access+8","",["FormatB
 lock",!1,"div"]),e.addShortcut("access+9","",["FormatBlock",!1,"address"])}};function Pv(e){var t,n,r,o=(t=e,n={},(r=function(e,t){e&&("string"!=typeof e?Lt.each(e,function(e,t){r(t,e)}):(t=t.length?t:[t],Lt.each(t,function(e){"undefined"==typeof e.deep&&(e.deep=!e.selector),"undefined"==typeof e.split&&(e.split=!e.selector||e.inline),"undefined"==typeof e.remove&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),n[e]=t))})(Sv.get(t.dom)),r(t.settings.formats),{get:function(e){return e?n[e]:n},register:r,unregister:function(e){return e&&n[e]&&delete n[e],n}}),i=Ju(null);return Ov.setup(e),Vh(e),{get:o.get,register:o.register,unregister:o.unregister,apply:V.curry(wv.applyFormat
 ,e),remove:V.curry(ov.remove,e),toggle:V.curry(Dv.toggle,e,o),match:V.curry(Rh.match,e),matchAll:V.curry(Rh.matchAll,e),matchNode:V.curry(Rh.matchNode,e),canApply:V.curry(Rh.canApply,e),formatChanged:V.curry(Ev.formatChanged,e,i),getCssText:V.curry(_v.getCssText,e)}}var Lv=function(a){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var o=e[r];for(var i in o)o.hasOwnProperty(i)&&(n[i]=a(n[i],o[i]))}return n}},Iv=Lv(function(e,t){return E.isObject(e)&&E.isObject(t)?Iv(e,t):t}),Mv=Lv(function(e,t){return t}),Fv={deepMerge:Iv,merge:Mv},zv=function(e,t){return e.fire("PreProcess",t)},Uv=function(e,t){return e.fire("PostProcess",t)},qv=function(e){return e.fire("remove")},Vv={register:function(t,s,c){t.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n,r=e.length;r--;)(n
 =e[r]).attr("tabindex",n.attributes.map["data-mce-tabindex"]),n.attr(t,null)}),t.addAttributeFilter("src,href,style",function(e,t){for(var n,r,o=e.length,i="data-mce-"+t,a=s.url_converter,u=s.url_converter_scope;o--;)(r=(n=e[o]).attributes.map[i])!==undefined?(n.attr(t,0<r.length?r:null),n.attr(i,null)):(r=n.attributes.map[t],"style"===t?r=c.serializeStyle(c.parseStyle(r),n.name):a&&(r=a.call(u,r,t,n.name)),n.attr(t,0<r.length?r:null))}),t.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)(n=(t=e[r]).attr("class"))&&(n=t.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),t.attr("class",0<n.length?n:null))}),t.addAttributeFilter("data-mce-type",function(e,t,n){for(var r,o=e.length;o--;)"bookmark"!==(r=e[o]).attributes.map["data-mce-type"]||n.cleanup||r.remove()}),t.addNodeFilter("noscript",function(e
 ){for(var t,n=e.length;n--;)(t=e[n].firstChild)&&(t.value=Vo.decode(t.value))}),t.addNodeFilter("script,style",function(e,t){for(var n,r,o,i=e.length,a=function(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")};i--;)r=(n=e[i]).firstChild?n.firstChild.value:"","script"===t?((o=n.attr("type"))&&n.attr("type","mce-no/type"===o?null:o.replace(/^mce\-/,"")),"xhtml"===s.element_format&&0<r.length&&(n.firstChild.value="// <![CDATA[\n"+a(r)+"\n// ]]>")):"xhtml"===s.eleme
 nt_format&&0<r.length&&(n.firstChild.value="\x3c!--\n"+a(r)+"\n--\x3e")}),t.addNodeFilter("#comment",function(e){for(var t,n=e.length;n--;)0===(t=e[n]).value.indexOf("[CDATA[")?(t.name="#cdata",t.type=4,t.value=t.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===t.value.indexOf("mce:protected ")&&(t.name="#text",t.type=3,t.raw=!0,t.value=unescape(t.value).substr(14))}),t.addNodeFilter("xml:namespace,input",function(e,t){for(var n,r=e.length;r--;)7===(n=e[r]).type?n.remove():1===n.type&&("input"!==t||"type"in n.attributes.map||n.attr("type","text"))}),t.addAttributeFilter("data-mce-type",function(e){H.each(e,function(e){"format-caret"===e.attr("data-mce-type")&&(e.isEmpty(t.schema.getNonEmptyElements())?e.remove():e.unwrap())})}),t.addAttributeFilter("data-mce-src,data-mce-href,data-mce
 -style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)})},trimTrailingBr:function(e){var t,n,r=function(e){return e&&"br"===e.name};r(t=e.lastChild)&&r(n=t.prev)&&(t.remove(),n.remove())}},Hv={process:function(e,t,n){return f=n,(l=e)&&l.hasEventListeners("PreProcess")&&!f.no_events?(o=t,i=n,c=(r=e).dom,o=o.cloneNode(!0),(a=document.implementation).createHTMLDocument&&(u=a.createHTMLDocument(""),Lt.each("BODY"===o.nodeName?o.childNodes:[o],function(e){u.body.appendChild(u.importNode(e,!0))}),o="BODY"!==o.nodeName?u.body.firstChild:u.body,s=c.doc,c.doc=u),zv(r,Fv.merge(i,{node:o})),s&&(c.doc=s),o):t;var r,o,i,a,u,s,c,l,f}},jv=function(e,u,s){e.addNodeFilter("font",function(e){H.each(e,function(e){var t,n,r=u.parse(e.attr("style")),o=e.attr("color"),i=e.attr("face"
 ),a=e.attr("size");o&&(r.color=o),i&&(r["font-family"]=i),a&&(r["font-size"]=s[parseInt(e.attr("size"),10)-1]),e.name="span",e.attr("style",u.serialize(r)),t=e,n=["color","face","size"],H.each(n,function(e){t.attr(e,null)})})})},$v=function(e,t){var n,r=ti();t.convert_fonts_to_spans&&jv(e,r,Lt.explode(t.font_size_legacy_values)),n=r,e.addNodeFilter("strike",function(e){H.each(e,function(e){var t=n.parse(e.attr("style"));t["text-decoration"]="line-through",e.name="span",e.attr("style",n.serialize(t))})})},Wv={register:function(e,t){t.inline_styles&&$v(e,t)}},Kv=/^[ \t\r\n]*$/,Xv={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11},Yv=function(e,t,n){var r,o,i=n?"lastChild":"firstChild",a=n?
 "prev":"next";if(e[i])return e[i];if(e!==t){if(r=e[a])return r;for(o=e.parent;o&&o!==t;o=o.parent)if(r=o[a])return r}},Gv=function(){function a(e,t){this.name=e,1===(this.type=t)&&(this.attributes=[],this.attributes.map={})}return a.create=function(e,t){var n,r;if(n=new a(e,Xv[e]||1),t)for(r in t)n.attr(r,t[r]);return n},a.prototype.replace=function(e){return e.parent&&e.remove(),this.insert(e,this),this.remove(),this},a.prototype.attr=function(e,t){var n,r;if("string"!=typeof e){for(r in e)this.attr(r,e[r]);return this}if(n=this.attributes){if(t!==undefined){if(null===t){if(e in n.map)for(delete n.map[e],r=n.length;r--;)if(n[r].name===e)return n=n.splice(r,1),this;return this}if(e in n.map){for(r=n.length;r--;)if(n[r].name===e){n[r].value=t;break}}else n.push({name:e,value:t});return n.map[e]=t,this}return n.map[e]}},a.prototype.clone=function(){var e,t,n,r,o,i=new a(this.name,this.type);if(n=this.attributes){for((o=[]).map={},e
 =0,t=n.length;e<t;e++)"id"!==(r=n[e]).name&&(o[o.length]={name:r.name,value:r.value},o.map[r.name]=r.value);i.attributes=o}return i.value=this.value,i.shortEnded=this.shortEnded,i},a.prototype.wrap=function(e){return this.parent.insert(e,this),e.append(this),this},a.prototype.unwrap=function(){var e,t;for(e=this.firstChild;e;)t=e.next,this.insert(e,this,!0),e=t;this.remove()},a.prototype.remove=function(){var e=this.parent,t=this.next,n=this.prev;return e&&(e.firstChild===this?(e.firstChild=t)&&(t.prev=null):n.next=t,e.lastChild===this?(e.lastChild=n)&&(n.next=null):t.prev=n,this.parent=this.next=this.prev=null),this},a.prototype.append=function(e){var t;return e.parent&&e.remove(),(t=this.lastChild)?((t.next=e).prev=t,this.lastChild=e):this.lastChild=this.firstChild=e,e.parent=this,e},a.prototype.insert=function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.pr
 ev=t.prev,(e.next=t).prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,(e.prev=t).next=e),e.parent=r,e},a.prototype.getAll=function(e){var t,n=[];for(t=this.firstChild;t;t=Yv(t,this))t.name===e&&n.push(t);return n},a.prototype.empty=function(){var e,t,n;if(this.firstChild){for(e=[],n=this.firstChild;n;n=Yv(n,this))e.push(n);for(t=e.length;t--;)(n=e[t]).parent=n.firstChild=n.lastChild=n.next=n.prev=null}return this.firstChild=this.lastChild=null,this},a.prototype.isEmpty=function(e,t,n){var r,o,i=this.firstChild;if(t=t||{},i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(e[i.name])return!1;for(r=i.attributes.length;r--;)if("name"===(o=i.attributes[r].name)||0===o.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!Kv.test(i.value))return!1;if(3===i.type&&i.parent&&t[i.parent.name]&&Kv.test(i.value))return!1;if(n&&n(i))return!1}while(i=Yv(i,this)
 );return!0},a.prototype.walk=function(e){return Yv(this,null,e)},a}(),Jv=function(e,t,n,r){(e.padd_empty_with_br||t.insert)&&n[r.name]?r.empty().append(new Gv("br",1)).shortEnded=!0:r.empty().append(new Gv("#text",3)).value="\xa0"},Qv=function(e){return Zv(e,"#text")&&"\xa0"===e.firstChild.value},Zv=function(e,t){return e&&e.firstChild&&e.firstChild===e.lastChild&&e.firstChild.name===t},ey=function(r,e,t,n){return n.isEmpty(e,t,function(e){return t=e,(n=r.getElementRule(t.name))&&n.paddEmpty;var t,n})},ty=function(e,t){return e&&(t[e.name]||"br"===e.name)},ny=function(e,g){var h=e.schema;g.remove_trailing_brs&&e.addNodeFilter("br",function(e,t,n){var r,o,i,a,u,s,c,l,f=e.length,d=Lt.extend({},h.getBlockElements()),m=h.getNonEmptyElements(),p=h.getNonEmptyElements();for(d.body=1,r=0;r<f;r++)if(i=(o=e[r]).parent,d[o.parent.name]&&o===i.lastChi
 ld){for(u=o.prev;u;){if("span"!==(s=u.name)||"bookmark"!==u.attr("data-mce-type")){if("br"!==s)break;if("br"===s){o=null;break}}u=u.prev}o&&(o.remove(),ey(h,m,p,i)&&(c=h.getElementRule(i.name))&&(c.removeEmpty?i.remove():c.paddEmpty&&Jv(g,n,d,i)))}else{for(a=o;i&&i.firstChild===a&&i.lastChild===a&&!d[(a=i).name];)i=i.parent;a===i&&!0!==g.padd_empty_with_br&&((l=new Gv("#text",3)).value="\xa0",o.replace(l))}}),e.addAttributeFilter("href",function(e){var t,n,r,o=e.length;if(!g.allow_unsafe_link_target)for(;o--;)"a"===(t=e[o]).name&&"_blank"===t.attr("target")&&t.attr("rel",(n=t.attr("rel"),r=n?Lt.trim(n):"",/\b(noopener)\b/g.test(r)?r:r.split(" ").filter(function(e){return 0<e.length}).concat(["noopener"]).sort().join(" ")))}),g
 .allow_html_in_named_anchor||e.addAttributeFilter("id,name",function(e){for(var t,n,r,o,i=e.length;i--;)if("a"===(o=e[i]).name&&o.firstChild&&!o.attr("href"))for(r=o.parent,t=o.lastChild;n=t.prev,r.insert(t,o),t=n;);}),g.fix_list_elements&&e.addNodeFilter("ul,ol",function(e){for(var t,n,r=e.length;r--;)if("ul"===(n=(t=e[r]).parent).name||"ol"===n.name)if(t.prev&&"li"===t.prev.name)t.prev.append(t);else{var o=new Gv("li",1);o.attr("style","list-style-type: none"),t.wrap(o)}}),g.validate&&h.getValidClasses()&&e.addAttributeFilter("class",function(e){for(var t,n,r,o,i,a,u,s=e.length,c=h.getValidClasses();s--;){for(n=(t=e[s]).attr("class").split(" "),i="",r=0;r<n.length;r++)o=n[r],u=!1,(a=c["*"])&&a[o]&&(u=!0),a=c[t.name],!u&&a&&a[o]&&(u=!0),u&&a
 mp;(i&&(i+=" "),i+=o);i.length||(i=null),t.attr("class",i)}})},ry=Lt.makeMap,oy=Lt.each,iy=Lt.explode,ay=Lt.extend;function uy(k,T){void 0===T&&(T=Zo());var A={},R=[],B={},_={};(k=k||{}).validate=!("validate"in k)||k.validate,k.root_name=k.root_name||"body";var D=function(e){var t,n,r;n in A&&((r=B[n])?r.push(e):B[n]=[e]),t=R.length;for(;t--;)(n=R[t].name)in e.attributes.map&&((r=_[n])?r.push(e):_[n]=[e]);return e},e={schema:T,addAttributeFilter:function(e,n){oy(iy(e),function(e){var t;for(t=0;t<R.length;t++)if(R[t].name===e)return void R[t].callbacks.push(n);R.push({name:e,callbacks:[n]})})},getAttributeFilters:function(){return[].concat(R)},addNodeFilter:function(e,n){oy(iy(e),function(e){var t=A[e];t||(A[e]=t=[]),t.push(n)})},getNodeFilters:function(){var e=[];for(var t in A)A.hasOwnProperty(t)&&e.push({name:t,callbacks:A[t]});return e},filterNode:D,parse:function(e,a){var t,n,r,o,i,u,s,c,l,f,d,m=[
 ];a=a||{},B={},_={},l=ay(ry("script,style,head,html,body,title,meta,param"),T.getBlockElements());var p=T.getNonEmptyElements(),g=T.children,h=k.validate,v="forced_root_block"in a?a.forced_root_block:k.forced_root_block,y=T.getWhiteSpaceElements(),b=/^[ \t\r\n]+/,C=/[ \t\r\n]+$/,x=/[ \t\r\n]+/g,w=/^[ \t\r\n]+$/,N=function(e,t){var n,r=new Gv(e,t);return e in A&&((n=B[e])?n.push(r):B[e]=[r]),r},E=function(e){var t,n,r,o,i=T.getBlockElements();for(t=e.prev;t&&3===t.type;){if(0<(r=t.value.replace(C,"")).length)return void(t.value=r);if(n=t.next){if(3===n.type&&n.value.length){t=t.prev;continue}if(!i[n.name]&&"script"!==n.name&&"style"!==n.name){t=t.prev;continue}}o=t.prev,t.remove(),t=o}};t=Fg({validate:h,allow_script_urls:k.allow_script_urls,allow_conditional_comments:k.allow_conditional_comments,self_closing_elements:function(e){var t,n={};for(t in e)"li"!==t&&"p"!
 ==t&&(n[t]=e[t]);return n}(T.getSelfClosingElements()),cdata:function(e){d.append(N("#cdata",4)).value=e},text:function(e,t){var n;f||(e=e.replace(x," "),ty(d.lastChild,l)&&(e=e.replace(b,""))),0!==e.length&&((n=N("#text",3)).raw=!!t,d.append(n).value=e)},comment:function(e){d.append(N("#comment",8)).value=e},pi:function(e,t){d.append(N(e,7)).value=t,E(d)},doctype:function(e){d.append(N("#doctype",10)).value=e,E(d)},start:function(e,t,n){var r,o,i,a,u;if(i=h?T.getElementRule(e):{}){for((r=N(i.outputName||e,1)).attributes=t,r.shortEnded=n,d.append(r),(u=g[d.name])&&g[r.name]&&!u[r.name]&&m.push(r),o=R.length;o--;)(a=R[o].name)in t.map&&((s=_[a])?s.push(r):_[a]=[r]);l[e]&&E(r),n||(d=r),!f&&y[e]&&(f=!0)}},end:function(e){var t,n,r,o,i;if(n=h?T.getElementRule(e):{}){if(l[e]&&!f){if((t=d.firstChild)&&3===t.type)if(0<(r=t.value.repl
 ace(b,"")).length)t.value=r,t=t.next;else for(o=t.next,t.remove(),t=o;t&&3===t.type;)r=t.value,o=t.next,(0===r.length||w.test(r))&&(t.remove(),t=o),t=o;if((t=d.lastChild)&&3===t.type)if(0<(r=t.value.replace(C,"")).length)t.value=r,t=t.prev;else for(o=t.prev,t.remove(),t=o;t&&3===t.type;)r=t.value,o=t.prev,(0===r.length||w.test(r))&&(t.remove(),t=o),t=o}if(f&&y[e]&&(f=!1),n.removeEmpty&&ey(T,p,y,d)&&!d.attributes.map.name&&!d.attr("id"))return i=d.parent,l[d.name]?d.empty().remove():d.unwrap(),void(d=i);n.paddEmpty&&(Qv(d)||ey(T,p,y,d))&&Jv(k,a,l,d),d=d.parent}}},T);var S=d=new Gv(a.context||k.root_name,11);if(t.parse(e),h&&m.length&&(a.context?a.invalid=!0:function(e){var t,n,r,o,i,a,u,s,c,l,f,d,m,p,g,h;for(d=ry("tr,td,th,tbody,thead,tfoot,table"),l=T.getNonEmptyElements(),f=T.getWhiteSpaceElements(),m=T.getTextBlockElements(),p=T
 .getSpecialElements(),t=0;t<e.length;t++)if((n=e[t]).parent&&!n.fixed)if(m[n.name]&&"li"===n.parent.name){for(g=n.next;g&&m[g.name];)g.name="li",g.fixed=!0,n.parent.insert(g,n.parent),g=g.next;n.unwrap(n)}else{for(o=[n],r=n.parent;r&&!T.isValidChild(r.name,n.name)&&!d[r.name];r=r.parent)o.push(r);if(r&&1<o.length){for(o.reverse(),i=a=D(o[0].clone()),c=0;c<o.length-1;c++){for(T.isValidChild(a.name,o[c].name)?(u=D(o[c].clone()),a.append(u)):u=a,s=o[c].firstChild;s&&s!==o[c+1];)h=s.next,u.append(s),s=h;a=u}ey(T,l,f,i)?r.insert(n,o[0],!0):(r.insert(i,o[0],!0),r.insert(n,i)),r=o[0],(ey(T,l,f,r)||Zv(r,"br"))&&r.empty().remove()}else if(n.parent){if("li"===n.name){if((g=n.prev)&&("ul"===g.name||"ul"===g.name)){g.append(n);continue}if((g=n.next)&&("ul"===g.name||"ul"===g.name)){g.insert(n,g.firstChild,!0);continue}n.wrap(D(n
 ew Gv("ul",1)));continue}T.isValidChild(n.parent.name,"div")&&T.isValidChild("div",n.name)?n.wrap(D(new Gv("div",1))):p[n.name]?n.empty().remove():n.unwrap()}}}(m)),v&&("body"===S.name||a.isRootContent)&&function(){var e,t,n=S.firstChild,r=function(e){e&&((n=e.firstChild)&&3===n.type&&(n.value=n.value.replace(b,"")),(n=e.lastChild)&&3===n.type&&(n.value=n.value.replace(C,"")))};if(T.isValidChild(S.name,v.toLowerCase())){for(;n;)e=n.next,3===n.type||1===n.type&&"p"!==n.name&&!l[n.name]&&!n.attr("data-mce-type")?(t||((t=N(v,1)).attr(k.forced_root_block_attrs),S.insert(t,n)),t.append(n)):(r(t),t=null),n=e;r(t)}}(),!a.invalid){for(c in B){for(s=A[c],i=(n=B[c]).length;i--;)n[i].parent||n.splice(i,1);for(r=0,o=s.length;r<o;r++)s[r](n,c,a)}for(r=0,o=R.length;r<o;r++)if((s=R[r]).name in _){for(i=(n=_[s.name]).
 length;i--;)n[i].parent||n.splice(i,1);for(i=0,u=s.callbacks.length;i<u;i++)s.callbacks[i](n,s.name,a)}}return S}};return ny(e,k),Wv.register(e,k),e}var sy=function(e,t,n){-1===Lt.inArray(t,n)&&(e.addAttributeFilter(n,function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),t.push(n))},cy=function(e,t,n){var r=Si(n.getInner?t.innerHTML:e.getOuterHTML(t));return n.selection?r:Lt.trim(r)},ly=function(e,t,n,r){var o=r.selection?Fv.merge({forced_root_block:!1},r):r,i=e.parse(n,o);return Vv.trimTrailingBr(i),i},fy=function(e,t,n,r,o){var i,a,u,s,c=(i=r,jc(t,n).serialize(i));return a=e,s=c,!(u=o).no_events&&a?Uv(a,Fv.merge(u,{content:s})).content:s};function dy(e,t){var a,u,s,c,l,n,r=(a=e,n=["data-mce-selected"],s=(u=t)&&u.dom?u.dom:di.DOM,c=u&&u.schema?u.schema:Zo(a),a.entity_encoding=a.entity_encoding||"named",a.remove_trailing_brs=!("remove_trailing_brs"in a)||a.remove_trailing_brs,l=uy(a,c),Vv.register(l,a,s),{schema:c,
 addNodeFilter:l.addNodeFilter,addAttributeFilter:l.addAttributeFilter,serialize:function(e,t){var n=Fv.merge({format:"html"},t||{}),r=Hv.process(u,e,n),o=cy(s,r,n),i=ly(l,s,o,n);return"tree"===n.format?i:fy(u,a,c,i,n)},addRules:function(e){c.addValidElements(e)},setRules:function(e){c.setValidElements(e)},addTempAttr:V.curry(sy,l,n),getTempAttrs:function(){return n}});return{schema:r.schema,addNodeFilter:r.addNodeFilter,addAttributeFilter:r.addAttributeFilter,serialize:r.serialize,addRules:r.addRules,setRules:r.setRules,addTempAttr:r.addTempAttr,getTempAttrs:r.getTempAttrs}}function my(e){return{getBookmark:V.curry(Bc.getBookmark,e),moveToBookmark:V.curry(Bc.moveToBookmark,e)}}(my||(my={})).isBookmarkNode=Bc.isBookmarkNode;var py=my,gy=Ao.isContentEditableFalse,hy=Ao.isContentEditableTrue,vy=function(r,a){var u,s,c,l,f,d,m,p,g,h,v,y,i,b,C,x,w,N=a.dom,E=Lt.each,S=a.getDoc(),k=document,T=Math.abs,A=Math.round,R=a.getBody();l={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,
 1],sw:[0,1,-1,1]};var e=".mce-content-body";a.contentStyles.push(e+" div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: content-box;background: #FFF;width: 7px;height: 7px;z-index: 10000}"+e+" .mce-resizehandle:hover {background: #000}"+e+" img[data-mce-selected],"+e+" hr[data-mce-selected] {outline: 1px solid black;resize: none}"+e+" .mce-clonedresizable {position: absolute;"+(ge.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+e+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}");var B=function(e){return e&&("IMG"===e.nodeName||a.dom.is(e,"figure.image"))},n=function(e)
 {var t,n,r=e.target;t=e,n=a.selection.getRng(),!B(t.target)||Ng(t.clientX,t.clientY,n)||e.isDefaultPrevented()||(e.preventDefault(),a.selection.select(r))},_=function(e){return a.dom.is(e,"figure.image")?e.querySelector("img"):e},D=function(e){var t=a.settings.object_resizing;return!1!==t&&!ge.iOS&&("string"!=typeof t&&(t="table,img,figure.image,div"),"false"!==e.getAttribute("data-mce-resize")&&e!==a.getBody()&&Br.is(qn.fromDom(e),t))},O=function(e){var t,n,r,o;t=e.screenX-d,n=e.screenY-m,b=t*f[2]+h,C=n*f[3]+v,b=b<5?5:b,C=C<5?5:C,(B(u)&&!1!==a.settings.resize_img_proportional?!kg.modifierPressed(e):kg.modifierPressed(e)||B(u)&&f[2]*f[3]!=0)&&(T(t)>T(n)?(C=A(b*y),b=A(C/y)):(b=A(C/y),C=A(b*y))),N.setStyles(_(s),{width:b,height:C}),r=0<(r=f.startPos.x+t)?r:0,o=0<(o=f.startPos.y+n)?o:0,N.setStyles(c,{left:r,top:o,display:"block"}),c.innerH
 TML=b+" &times; "+C,f[2]<0&&s.clientWidth<=b&&N.setStyle(s,"left",p+(h-b)),f[3]<0&&s.clientHeight<=C&&N.setStyle(s,"top",g+(v-C)),(t=R.scrollWidth-x)+(n=R.scrollHeight-w)!=0&&N.setStyles(c,{left:r-t,top:o-n}),i||(a.fire("ObjectResizeStart",{target:u,width:h,height:v}),i=!0)},P=function(){i=!1;var e=function(e,t){t&&(u.style[e]||!a.schema.isValid(u.nodeName.toLowerCase(),e)?N.setStyle(_(u),e,t):N.setAttrib(_(u),e,t))};e("width",b),e("height",C),N.unbind(S,"mousemove",O),N.unbind(S,"mouseup",P),k!==S&&(N.unbind(k,"mousemove",O),N.unbind(k,"mouseup",P)),N.remove(s),N.remove(c),o(u),a.fire("ObjectResized",{target:u,width:b,height:C}),N.setAttrib(u,"style",N.getAttrib(u,"style")),a.nodeChanged()},o=function(e){var t,r,o,n,i;L(),F(),t=N.getPos(e,R),p=t.x,g=t.y,i=e.getBoundingClientRect(),r=
 i.width||i.right-i.left,o=i.height||i.bottom-i.top,u!==e&&(u=e,b=C=0),n=a.fire("ObjectSelected",{target:e}),D(e)&&!n.isDefaultPrevented()?E(l,function(n,e){var t;(t=N.get("mceResizeHandle"+e))&&N.remove(t),t=N.add(R,"div",{id:"mceResizeHandle"+e,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+e+"-resize; margin:0; padding:0"}),ge.ie&&(t.contentEditable=!1),N.bind(t,"mousedown",function(e){var t;e.stopImmediatePropagation(),e.preventDefault(),d=(t=e).screenX,m=t.screenY,h=_(u).clientWidth,v=_(u).clientHeight,y=v/h,(f=n).startPos={x:r*n[0]+p,y:o*n[1]+g},x=R.scrollWidth,w=R.scrollHeight,s=u.cloneNode(!0),N.addClass(s,"mce-clonedresizable"),N.setAttrib(s,"data-mce-bogus","all"),s.contentEditable=!1,s.unSelectabe=!0,N.setStyles(s,{left:p,top:g,margin:0}),s.removeAttribute("data-mc
 e-selected"),R.appendChild(s),N.bind(S,"mousemove",O),N.bind(S,"mouseup",P),k!==S&&(N.bind(k,"mousemove",O),N.bind(k,"mouseup",P)),c=N.add(R,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},h+" &times; "+v)}),n.elm=t,N.setStyles(t,{left:r*n[0]+p-t.offsetWidth/2,top:o*n[1]+g-t.offsetHeight/2})}):L(),u.setAttribute("data-mce-selected","1")},L=function(){var e,t;for(e in F(),u&&u.removeAttribute("data-mce-selected"),l)(t=N.get("mceResizeHandle"+e))&&(N.unbind(t),N.remove(t))},I=function(e){var t,n=function(e,t){if(e)do{if(e===t)return!0}while(e=e.parentNode)};i||a.removed||(E(N.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),t="mousedown"===e.type?e.target:r.getNode(),n(t=N.$(t).closest("table,img,figure.image,hr
 ")[0],R)&&(z(),n(r.getStart(!0),t)&&n(r.getEnd(!0),t))?o(t):L())},M=function(e){return gy(function(e,t){for(;t&&t!==e;){if(hy(t)||gy(t))return t;t=t.parentNode}return null}(a.getBody(),e))},F=function(){for(var e in l){var t=l[e];t.elm&&(N.unbind(t.elm),delete t.elm)}},z=function(){try{a.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}};return a.on("init",function(){z(),ge.ie&&11<=ge.ie&&(a.on("mousedown click",function(e){var t=e.target,n=t.nodeName;i||!/^(TABLE|IMG|HR)$/.test(n)||M(t)||(2!==e.button&&a.selection.select(t,"TABLE"===n),"mousedown"===e.type&&a.nodeChanged())}),a.dom.bind(R,"mscontrolselect",function(e){var t=function(e){Ce.setEditorTimeout(a,function(){a.selection.select(e)})};if(M(e.target))return e.preventDefault(),void t(e.target);/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"===e.
 target.tagName&&t(e.target))}));var t=Ce.throttle(function(e){a.composing||I(e)});a.on("nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged",t),a.on("keyup compositionend",function(e){u&&"TABLE"===u.nodeName&&t(e)}),a.on("hide blur",L),a.on("contextmenu",n)}),a.on("remove",F),{isResizable:D,showResizeRect:o,hideResizeRect:L,updateResizeRect:I,destroy:function(){u=s=null}}},yy=function(e){return Ao.isContentEditableTrue(e)||Ao.isContentEditableFalse(e)},by={fromPoint:function(e,t,n){var r,o,i,a,u,s=n;if(s.caretPositionFromPoint)(o=s.caretPositionFromPoint(e,t))&&((r=n.createRange()).setStart(o.offsetNode,o.offset),r.collapse(!0));else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(s.body.createTextRange){r=s.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(c){r=function(e,n,t){var r,o,i;if(r=t.elementFromPoint(e,n),o=t.body.createTextRange(),r&
 &"HTML"!==r.tagName||(r=t.body),o.moveToElementText(r),0<(i=(i=Lt.toArray(o.getClientRects())).sort(function(e,t){return(e=Math.abs(Math.max(e.top-n,e.bottom-n)))-(t=Math.abs(Math.max(t.top-n,t.bottom-n)))})).length){n=(i[0].bottom+i[0].top)/2;try{return o.moveToPoint(e,n),o.collapse(!0),o}catch(a){}}return null}(e,t,n)}return i=r,a=n.body,u=i&&i.parentElement?i.parentElement():null,Ao.isContentEditableFalse(function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(u,a,yy))?null:i}return r}},Cy=function(n,e){return H.map(e,function(e){var t=n.fire("GetSelectionRange",{range:e});return t.range!==e?t.range:e})},xy=function(e,t){return qn.fromDom(e.dom().cloneNode(t))},wy=function(e){return xy(e,!0)},Ny=function(e){return xy(e,!1)},Ey=wy,Sy=function(e,t){var n=(t||document).createDocumentFragment();return H.each(e,function(e){n.appendChild(e.dom())}),qn.fromDom(n)},ky=function(t){return qr.firstChild(t).fold(V.constant([t]),
 function(e){return[t].concat(ky(e))})},Ty=function(t){return qr.lastChild(t).fold(V.constant([t]),function(e){return"br"===Qn.name(e)?qr.prevSibling(e).map(function(e){return[t].concat(Ty(e))}).getOr([]):[t].concat(Ty(e))})},Ay=function(o,e){return sa([(i=e,a=i.startContainer,u=i.startOffset,Ao.isText(a)?0===u?A.some(qn.fromDom(a)):A.none():A.from(a.childNodes[u]).map(qn.fromDom)),(t=e,n=t.endContainer,r=t.endOffset,Ao.isText(n)?r===n.data.length?A.some(qn.fromDom(n)):A.none():A.from(n.childNodes[r-1]).map(qn.fromDom))],function(e,t){var n=H.find(ky(o),V.curry(Or.eq,e)),r=H.find(Ty(o),V.curry(Or.eq,t));return n.isSome()&&r.isSome()}).getOr(!1);var t,n,r,i,a,u},Ry=function(e,t,n,r){var o=n,i=new no(n,o),a=e.schema.getNonEmptyElements();do{if(3===n.nodeType&&0!==Lt.trim(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(a[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"===n.n
 odeName?t.setEndBefore(n):t.setEndAfter(n));if(ge.ie&&ge.ie<11&&e.isBlock(n)&&e.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?i.next():i.prev());"BODY"===o.nodeName&&(r?t.setStart(o,0):t.setEnd(o,o.childNodes.length))},By=wr.immutable("element","width","rows"),_y=wr.immutable("element","cells"),Dy=wr.immutable("x","y"),Oy=function(e,t){var n=parseInt(cr.get(e,t),10);return isNaN(n)?1:n},Py=function(e){return H.foldl(e,function(e,t){return t.cells().length>e?t.cells().length:e},0)},Ly=function(e,t){for(var n=e.rows(),r=0;r<n.length;r++)for(var o=n[r].cells(),i=0;i<o.length;i++)if(Or.eq(o[i],t))return A.some(Dy(i,r));return A.none()},Iy=function(e,t,n,r,o){for(var i=[],a=e.rows(),u=n;u<=o;u++){var s=a[u].cells(),c=t<r?s.slice(t,r+1):s.slice(r,t+1);i.push(_y(a[u].element(),c))}return i},My=function(e){var o=By(Ny(e),0,[]);return H.each(fu
 (e,"tr"),function(n,r){H.each(fu(n,"td,th"),function(e,t){!function(e,t,n,r,o){for(var i=Oy(o,"rowspan"),a=Oy(o,"colspan"),u=e.rows(),s=n;s<n+i;s++){u[s]||(u[s]=_y(Ey(r),[]));for(var c=t;c<t+a;c++)u[s].cells()[c]=s===n&&c===t?o:Ny(o)}}(o,function(e,t,n){for(;r=t,o=n,i=void 0,((i=e.rows())[o]?i[o].cells():[])[r];)t++;var r,o,i;return t}(o,t,r),r,n,e)})}),By(o.element(),Py(o.rows()),o.rows())},Fy=function(e){return i=t=e,n=H.map(i.rows(),function(e){var t=H.map(e.cells(),function(e){var t=Ey(e);return cr.remove(t,"colspan"),cr.remove(t,"rowspan"),t}),n=Ny(e.element());return Pc(n,t),n}),r=Ny(t.element()),o=qn.fromTag("tbody"),Pc(o,n),Fu.append(r,o),r;var t,n,r,o,i},zy=function(l,e,t){return Ly(l,e).bind(function(c){return Ly(l,t).map(function(e){return t=l,r=e,o=(n=c).x(),i=n.y(),a=r.x(),u=r.y(),s=i<u?Iy(t,o,i,a,u):Iy(t,o,u,a,i),By(t.element(),Py(s),s);var t,n,r,o,i,a,u,s})})},Uy=function(n,t){retur
 n H.find(n,function(e){return"li"===Qn.name(e)&&Ay(e,t)}).fold(V.constant([]),function(e){return(t=n,H.find(t,function(e){return"ul"===Qn.name(e)||"ol"===Qn.name(e)})).map(function(e){return[qn.fromTag("li"),qn.fromTag(Qn.name(e))]}).getOr([]);var t})},qy=function(e,t){var n,r=qn.fromDom(t.commonAncestorContainer),o=Ml(r,e),i=H.filter(o,function(e){return co(e)||uo(e)}),a=Uy(o,t),u=i.concat(a.length?a:po(n=r)?qr.parent(n).filter(mo).fold(V.constant([]),function(e){return[n,e]}):mo(n)?[n]:[]);return H.map(u,Ny)},Vy=function(){return Sy([])},Hy=function(e,t){return n=qn.fromDom(t.cloneContents()),r=qy(e,t),o=H.foldl(r,function(e,t){return Fu.append(t,e),t},n),0<r.length?Sy([o]):o;var n,r,o},jy=function(e,o){return(t=e,n=o[0],bl(n,"table",V.curry(Or.eq,t))).bind(function(e){var t=o[0],n=o[o.length-1],r=My(e);return zy(r,t,n).map(function(e){return Sy([Fy(e)])})}).getOrThunk(Vy);var t,n},$y=function(e,t){var n,r,o=Td(t,e);retu
 rn 0<o.length?jy(e,o):(n=e,0<(r=t).length&&r[0].collapsed?Vy():Hy(n,r[0]))},Wy=function(e,t){var n,r=e.selection.getRng(),o=e.dom.create("body"),i=e.selection.getSel(),a=Cy(e,xd(i));if((t=t||{}).get=!0,t.format=t.format||"html",t.selection=!0,(t=e.fire("BeforeGetContent",t)).isDefaultPrevented())return e.fire("GetContent",t),t.content;if("text"===t.format)return e.selection.isCollapsed()?"":Si(r.text||(i.toString?i.toString():""));r.cloneContents?(n=t.contextual?$y(qn.fromDom(e.getBody()),a).dom():r.cloneContents())&&o.appendChild(n):r.item!==undefined||r.htmlText!==undefined?(o.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),o.removeChild(o.firstChild)):o.innerHTML=r.toString(),t.getInner=!0;var u=e.selection.serializer.serialize(o,t);return"tree"===t.format?u:(t.content=e.selection.isCollapsed()?"":u,e.fire("GetContent",t),t.content)},K
 y=function(e,t,n){var r,o,i,a=e.selection.getRng(),u=e.getDoc();if((n=n||{format:"html"}).set=!0,n.selection=!0,n.content=t,n.no_events||!(n=e.fire("BeforeSetContent",n)).isDefaultPrevented()){if(t=n.content,a.insertNode){t+='<span id="__caret">_</span>',a.startContainer===u&&a.endContainer===u?u.body.innerHTML=t:(a.deleteContents(),0===u.body.childNodes.length?u.body.innerHTML=t:a.createContextualFragment?a.insertNode(a.createContextualFragment(t)):(o=u.createDocumentFragment(),i=u.createElement("div"),o.appendChild(i),i.outerHTML=t,a.insertNode(o))),r=e.dom.get("__caret"),(a=u.createRange()).setStartBefore(r),a.setEndBefore(r),e.selection.setRng(a),e.dom.remove("__caret");try{e.selection.setRng(a)}catch(s){}}else a.item&&(u.execCommand("Delete",!1,null),a=e.getRng()),/^\s+/.test(t)?(a.pasteHTML('<span id="__mce_tmp">_</span>'+t),e.dom.remove("__mce_tmp"
 )):a.pasteHTML(t);n.no_events||e.fire("SetContent",n)}else e.fire("SetContent",n)},Xy=function(e,t,n,r,o){var i=n?t.startContainer:t.endContainer,a=n?t.startOffset:t.endOffset;return A.from(i).map(qn.fromDom).map(function(e){return r&&t.collapsed?e:qr.child(e,o(e,a)).getOr(e)}).bind(function(e){return Qn.isElement(e)?A.some(e):qr.parent(e)}).map(function(e){return e.dom()}).getOr(e)},Yy=function(e,t,n){return Xy(e,t,!0,n,function(e,t){return Math.min(qr.childNodesCount(e),t)})},Gy=function(e,t,n){return Xy(e,t,!1,n,function(e,t){return 0<t?t-1:t})},Jy=function(e,t){for(var n=e;e&&Ao.isText(e)&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n},Qy=Lt.each,Zy=function(e){return!!e.select},eb=function(e){return!(!e||!e.ownerDocument)&&Or.contains(qn.fromDom(e.ownerDocument),qn.fromDom(e))},tb=function(u,s,e,c){var n,t,l,f,a,r=function(e,t){return Ky(c,e,t)},o=function(e){var t=m();t.collapse(!!e),i(t)},d=function(){retu
 rn s.getSelection?s.getSelection():s.document.selection},m=function(){var e,t,n,r,o=function(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}};if(!s)return null;if(null==(r=s.document))return null;if(c.bookmark!==undefined&&!1===dp(c)){var i=_m.getRng(c);if(i.isSome())return i.map(function(e){return Cy(c,[e])[0]}).getOr(r.createRange())}try{(e=d())&&(t=0<e.rangeCount?e.getRangeAt(0):e.createRange?e.createRange():r.createRange())}catch(a){}return(t=Cy(c,[t])[0])||(t=r.createRange?r.createRange():r.body.createTextRange()),t.setStart&&9===t.startContainer.nodeType&&t.collapsed&&(n=u.getRoot(),t.setStart(n,0),t.setEnd(n,0)),l&&f&&(0===o(t.START_TO_START,t,l)&&0===o(t.END_TO_END,t,l)?t=f:f=l=null),t},i=function(e,t){var n,r;if((o=e)&&(Zy(o)||eb(o.startContainer)&&eb(o.endContainer))){var o,i=Zy(e)?e:null;if(i){f=null;try{i.select()}catch(a){}}else{if(n=d(),e=c.fire("SetSelectionRange&
 quot;,{range:e,forward:t}).range,n){f=e;try{n.removeAllRanges(),n.addRange(e)}catch(a){}!1===t&&n.extend&&(n.collapse(e.endContainer,e.endOffset),n.extend(e.startContainer,e.startOffset)),l=0<n.rangeCount?n.getRangeAt(0):null}e.collapsed||e.startContainer!==e.endContainer||!n.setBaseAndExtent||ge.ie||e.endOffset-e.startOffset<2&&e.startContainer.hasChildNodes()&&(r=e.startContainer.childNodes[e.startOffset])&&"IMG"===r.tagName&&(n.setBaseAndExtent(e.startContainer,e.startOffset,e.endContainer,e.endOffset),n.anchorNode===e.startContainer&&n.focusNode===e.endContainer||n.setBaseAndExtent(r,0,r,1)),c.fire("AfterSetSelectionRange",{range:e,forward:t})}}},p=function(){var e,t,n=d();return!(n&&n.anchorNode&&n.focusNode)||((e=u.createRng()).setStart(n.anchorNode,n.anchorOffset),e.collapse(!0),(t=u.createRng()).setStart(n.focusNode,n.focusOffset),t.collapse(!0),e.compareBoundaryPoints(e.START_T
 O_START,t)<=0)},g={bookmarkManager:null,controlSelection:null,dom:u,win:s,serializer:e,editor:c,collapse:o,setCursorLocation:function(e,t){var n=u.createRng();e?(n.setStart(e,t),n.setEnd(e,t),i(n),o(!1)):(Ry(u,n,c.getBody(),!0),i(n))},getContent:function(e){return Wy(c,e)},setContent:r,getBookmark:function(e,t){return n.getBookmark(e,t)},moveToBookmark:function(e){return n.moveToBookmark(e)},select:function(e,t){var r,n,o;return(r=u,n=e,o=t,A.from(n).map(function(e){var t=r.nodeIndex(e),n=r.createRng();return n.setStart(e.parentNode,t),n.setEnd(e.parentNode,t+1),o&&(Ry(r,n,e,!0),Ry(r,n,e,!1)),n})).each(i),e},isCollapsed:function(){var e=m(),t=d();return!(!e||e.item)&&(e.compareEndPoints?0===e.compareEndPoints("StartToEnd",e):!t||e.collapsed)},isForward:p,setNode:function(e){return r(u.getOuterHTML(e)),e},getNode:function(){return e=c.getBody(),(t=m())?(r=t.startContainer,o=t.endContainer,i=t.startOffset,a=t.endOffset,n=t.commonAncestorContainer,!t.collap
 sed&&(r===o&&a-i<2&&r.hasChildNodes()&&(n=r.childNodes[i]),3===r.nodeType&&3===o.nodeType&&(r=r.length===i?Jy(r.nextSibling,!0):r.parentNode,o=0===a?Jy(o.previousSibling,!1):o.parentNode,r&&r===o))?r:n&&3===n.nodeType?n.parentNode:n):e;var e,t,n,r,o,i,a},getSel:d,setRng:i,getRng:m,getStart:function(e){return Yy(c.getBody(),m(),e)},getEnd:function(e){return Gy(c.getBody(),m(),e)},getSelectedBlocks:function(e,t){return function(e,t,n,r){var o,i,a=[];if(i=e.getRoot(),n=e.getParent(n||Yy(i,t,!1),e.isBlock),r=e.getParent(r||Gy(i,t,!1),e.isBlock),n&&n!==i&&a.push(n),n&&r&&n!==r)for(var u=new no(o=n,i);(o=u.next())&&o!==r;)e.isBlock(o)&&a.push(o);return r&&n!==r&&r!==i&&a.push(r),a}(u,m(),e,t)},normalize:function(){var e=m();if(!Nd(d())){var t=rm.normalize(u,e);return t.each(function(e){i(e,p())}),t.getOr(e)}return e},selectorChanged:function(e,t){var i
 ;return a||(a={},i={},c.on("NodeChange",function(e){var n=e.element,r=u.getParents(n,null,u.getRoot()),o={};Qy(a,function(e,n){Qy(r,function(t){if(u.is(t,n))return i[n]||(Qy(e,function(e){e(!0,{node:t,selector:n,parents:r})}),i[n]=e),o[n]=e,!1})}),Qy(i,function(e,t){o[t]||(delete i[t],Qy(e,function(e){e(!1,{node:n,selector:t,parents:r})}))})})),a[e]||(a[e]=[]),a[e].push(t),g},getScrollContainer:function(){for(var e,t=u.getRoot();t&&"BODY"!==t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){return yu(c,e,t)},placeCaretAt:function(e,t){return i(by.fromPoint(e,t,c.getDoc()))},getBoundingClientRect:function(){var e=m();return e.collapsed?Ba.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){s=l=f=null,t.destroy()}};return n=py(g),t=vy(g,c),g.bookmarkManager=n,g.controlSelection=t,g},nb=Ao.isContentEditableFalse,rb=ta,ob=ks,ib=Ss,ab=function(e,t){for(;t=e(t);)if(t.
 isVisible())return t;return t},ub=function(e,t,n,r){var o,i,a,u,s,c,l=e===eu.Forwards,f=l?ib:ob;return!r.collapsed&&(o=rb(r),nb(o))?Ga(e,t,o,e===eu.Backwards,!0):(u=Ai(r.startContainer),f(i=Es(e,t.getBody(),r))?Ja(t,i.getNode(!l)):(i=n(i))?f(i)?Ga(e,t,i.getNode(!l),l,!0):f(a=n(i))&&(!(c=ps(s=i,a))&&Ao.isBr(s.getNode())||c)?Ga(e,t,a.getNode(!l),l,!0):u?Za(t,i.toRange(),!0):null:u?r:null)},sb=function(e,t,n,r){var o,i,a,u,s,c,l,f,d;if(d=rb(r),o=Es(e,t.getBody(),r),i=n(t.getBody(),mg(1),o),a=Bt.filter(i,pg(1)),s=Bt.last(o.getClientRects()),(ib(o)||Ts(o))&&(d=o.getNode()),(ob(o)||As(o))&&(d=o.getNode(!0)),!s)return null;if(c=s.left,(u=Cg(a,c))&&nb(u.node))return l=Math.abs(c-u.left),f=Math.abs(c-u.right),Ga(e,t,u.node,l<f,!0);if(d){var m=function(e,t,n,r){var o,i,a,u,s,c,l=js(t),f=[],d=0,m=function(e){return Bt.last(e.getClientRects())};1===e?(o=l.next,i=ea,a=Zi,u=Ba.after(r)):(o=l.prev,i=Zi,a=ea,u=Ba.before(r)),c=m(u);do{if(u.isVisible
 ()&&!a(s=m(u),c)){if(0<f.length&&i(s,Bt.last(f))&&d++,(s=Gi(s)).position=u,s.line=d,n(s))return f;f.push(s)}}while(u=o(u));return f}(e,t.getBody(),mg(1),d);if(u=Cg(Bt.filter(m,pg(1)),c))return Za(t,u.position.toRange(),!0);if(u=Bt.last(Bt.filter(m,pg(0))))return Za(t,u.position.toRange(),!0)}},cb=function(e,t,n){var r,o,i,a,u=js(e.getBody()),s=ua.curry(ab,u.next),c=ua.curry(ab,u.prev);if(n.collapsed&&e.settings.forced_root_block){if(!(r=e.dom.getParent(n.startContainer,"PRE")))return;(1===t?s(Ba.fromRangeStart(n)):c(Ba.fromRangeStart(n)))||(a=(i=e).dom.create(i.settings.forced_root_block),(!ge.ie||11<=ge.ie)&&(a.innerHTML='<br data-mce-bogus="1">'),o=a,1===t?e.$(r).after(o):e.$(r).before(o),e.selection.select(o,!0),e.selection.collapse())}},lb=function(l,f){return function(){var e,t,n,r,o,i,a,u,s,c=(t=f,r=js((e=l).getBody()),o=ua.curry(ab,r.next),i=ua.curry(ab,r.prev),a=t?eu.Forwards:eu.Backwards,u=t?o:i,s=e.sel
 ection.getRng(),(n=ub(a,e,u,s))?n:(n=cb(e,a,s))||null);return!!c&&(l.selection.setRng(c),!0)}},fb=function(u,s){return function(){var e,t,n,r,o,i,a=(r=(t=s)?1:-1,o=t?dg:fg,i=(e=u).selection.getRng(),(n=sb(r,e,o,i))?n:(n=cb(e,r,i))||null);return!!a&&(u.selection.setRng(a),!0)}},db=function(e,r){return H.bind((t=e,H.map(t,function(e){return Fv.merge({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:V.noop},e)})),function(e){return t=e,(n=r).keyCode===t.keyCode&&n.shiftKey===t.shiftKey&&n.altKey===t.altKey&&n.ctrlKey===t.ctrlKey&&n.metaKey===t.metaKey?[e]:[];var t,n});var t},mb=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,r)}},pb=function(e,t){return H.find(db(e,t),function(e){return e.action()})},gb=function(i,a){i.on("keydown",function(e){var t,n,r,o;!1===e.isDefaultPrevented()&&(t=i,n=a,r=e,o=z
 n.detect().os,pb([{keyCode:kg.RIGHT,action:lb(t,!0)},{keyCode:kg.LEFT,action:lb(t,!1)},{keyCode:kg.UP,action:fb(t,!1)},{keyCode:kg.DOWN,action:fb(t,!0)},{keyCode:kg.RIGHT,action:Yu(t,!0)},{keyCode:kg.LEFT,action:Yu(t,!1)},{keyCode:kg.UP,action:Gu(t,!1)},{keyCode:kg.DOWN,action:Gu(t,!0)},{keyCode:kg.RIGHT,action:td.move(t,n,!0)},{keyCode:kg.LEFT,action:td.move(t,n,!1)},{keyCode:kg.RIGHT,ctrlKey:!o.isOSX(),altKey:o.isOSX(),action:td.moveNextWord(t,n)},{keyCode:kg.LEFT,ctrlKey:!o.isOSX(),altKey:o.isOSX(),action:td.movePrevWord(t,n)}],r).each(function(e){r.preventDefault()}))})},hb=function(e){return 1===qr.children(e).length},vb=function(e,t,n,r){var o,i,a,u,s=V.curry(Hh,t),c=H.map(H.filter(r,s),function(e){return e.dom()});if(0===c.length)lf(t,e,n);else{var l=(o=n.dom(),i=c,a=Ih(!1),u=qh(i,a.dom()),Fu.before(qn.fromDom(o),a),Ic.remove(qn.fromDom(o)),Ba(u,0));t.selection.setRng(l.toRange())}},yb=function(n,r){var t,e=qn.fromDom(n.getBody()),o=qn.fromDom(n.selection.getStart()),i=H.filt
 er((t=Ml(o,e),H.findIndex(t,so).fold(V.constant(t),function(e){return t.slice(0,e)})),hb);return H.last(i).map(function(e){var t=Ba.fromRangeStart(n.selection.getRng());return!!vl(r,t,e.dom())&&(vb(r,n,e,i),!0)}).getOr(!1)},bb=function(e,t){return!!e.selection.isCollapsed()&&yb(e,t)},Cb=function(o,i){o.on("keydown",function(e){var t,n,r;!1===e.isDefaultPrevented()&&(t=o,n=i,r=e,pb([{keyCode:kg.BACKSPACE,action:mb(mf,t,!1)},{keyCode:kg.DELETE,action:mb(mf,t,!0)},{keyCode:kg.BACKSPACE,action:mb(id,t,n,!1)},{keyCode:kg.DELETE,action:mb(id,t,n,!0)},{keyCode:kg.BACKSPACE,action:mb(Xl,t,!1)},{keyCode:kg.DELETE,action:mb(Xl,t,!0)},{keyCode:kg.BACKSPACE,action:mb(jl,t,!1)},{keyCode:kg.DELETE,action:mb(jl,t,!0)},{keyCode:kg.BACKSPACE,action:mb(Fd,t,!1)},{keyCode:kg.DELETE,action:mb(Fd,t,!0)},{keyCode:kg.BACKSPACE,action:mb(bb,t,!1)},{keyCode:kg.DELETE,action:mb(bb,t,!0)}],r).each(function(e){r.preventDefault()}))}),o.on("keyup",function(e){var t,n;
 !1===e.isDefaultPrevented()&&(t=o,n=e,pb([{keyCode:kg.BACKSPACE,action:mb(pf,t)},{keyCode:kg.DELETE,action:mb(pf,t)}],n))})},xb=function(e){return A.from(e.dom.getParent(e.selection.getStart(!0),e.dom.isBlock))},wb=function(e,t){var n,r,o,i=t,a=e.dom,u=e.schema.getMoveCaretBeforeOnEnterElements();if(t){if(/^(LI|DT|DD)$/.test(t.nodeName)){var s=function(e){for(;e;){if(1===e.nodeType||3===e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}(t.firstChild);s&&/^(UL|OL|DL)$/.test(s.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(o=a.createRng(),t.normalize(),t.hasChildNodes()){for(n=new no(t,t);r=n.current();){if(Ao.isText(r)){o.setStart(r,0),o.setEnd(r,0);break}if(u[r.nodeName.toLowerCase()]){o.setStartBefore(r),o.setEndBefore(r);break}i=r,r=n.next()}r||(o.setStart(i,0),o.setEnd(i,0))}else Ao.isBr(t)?t.nextSibling&&a.isBlock(t.nextSibling)?(o.setStartBefore(t),o.setEndBefore(t)):(o.setSta
 rtAfter(t),o.setEndAfter(t)):(o.setStart(t,0),o.setEnd(t,0));e.selection.setRng(o),a.remove(void 0),e.selection.scrollIntoView(t)}},Nb=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},Eb=xb,Sb=function(e){return xb(e).fold(V.constant(""),function(e){return e.nodeName.toUpperCase()})},kb=function(e){return xb(e).filter(function(e){return po(qn.fromDom(e))}).isSome()},Tb=function(e,t){return e&&e.parentNode&&e.parentNode.nodeName===t},Ab=function(e){return e&&/^(OL|UL|LI)$/.test(e.nodeName)},Rb=function(e){var t=e.parentNode;return/^(LI|DT|DD)$/.test(t.nodeName)?t:e},Bb=function(e,t,n){for(var r=e[n?"firstChild":"lastChild"];r&&!Ao.isElement(r);)r=r[n?"nextSibling":"previousSibling"];return r===t},_b=function(e,t,n,r,o){var i=e.dom,a=e.selection.getRng();if(n!=
 =e.getBody()){var u;Ab(u=n)&&Ab(u.parentNode)&&(o="LI");var s,c,l=o?t(o):i.create("BR");if(Bb(n,r,!0)&&Bb(n,r,!1))Tb(n,"LI")?i.insertAfter(l,Rb(n)):i.replace(l,n);else if(Bb(n,r,!0))Tb(n,"LI")?(i.insertAfter(l,Rb(n)),l.appendChild(i.doc.createTextNode(" ")),l.appendChild(n)):n.parentNode.insertBefore(l,n);else if(Bb(n,r,!1))i.insertAfter(l,Rb(n));else{n=Rb(n);var f=a.cloneRange();f.setStartAfter(r),f.setEndAfter(n);var d=f.extractContents();"LI"===o&&(c="LI",(s=d).firstChild&&s.firstChild.nodeName===c)?(l=d.firstChild,i.insertAfter(d,n)):(i.insertAfter(d,n),i.insertAfter(l,n))}i.remove(r),wb(e,l)}},Db=function(e){e.innerHTML='<br data-mce-bogus="1">'},Ob=function(e,t){return e.nodeName===t||e.previousSibling&&e.previousSibling.nodeName===t},Pb=function(e,t){return t&&e.isBlock(t)&&!/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName)&&!/^
 (fixed|absolute)/i.test(t.style.position)&&"true"!==e.getContentEditable(t)},Lb=function(e,t,n){return!1===Ao.isText(t)?n:e?1===n&&t.data.charAt(n-1)===Ei?0:n:n===t.data.length-1&&t.data.charAt(n)===Ei?t.data.length:n},Ib=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},Mb=function(e,t){var n=Au(e);n&&n.toLowerCase()===t.tagName.toLowerCase()&&e.dom.setAttribs(t,Ru(e))},Fb=function(a,e){var t,u,s,i,c,n,r,o,l,f,d,m,p,g,h,v,y,b,C=a.dom,x=a.schema,w=x.getNonEmptyElements(),N=a.selection.getRng(),E=function(e){var t,n,r,o=s,i=x.getTextInlineElements();if(e||"TABLE"===f||"HR"===f?(t=C.create(e||m),Mb(a,t)):t=c.cloneNode(!1),r=t,!1===Du(a))C.setAttrib(t,"style",null),C.setAttrib(t,"class",null);else do{if(i[o.nodeName]){if(xc(o))continue;n=o.cloneNode(!1),C
 .setAttrib(n,"id",""),t.hasChildNodes()?n.appendChild(t.firstChild):r=n,t.appendChild(n)}}while((o=o.parentNode)&&o!==u);return Db(r),t},S=function(e){var t,n,r,o;if(o=Lb(e,s,i),Ao.isText(s)&&(e?0<o:o<s.nodeValue.length))return!1;if(s.parentNode===c&&p&&!e)return!0;if(e&&Ao.isElement(s)&&s===c.firstChild)return!0;if(Ob(s,"TABLE")||Ob(s,"HR"))return p&&!e||!p&&e;for(t=new no(s,c),Ao.isText(s)&&(e&&0===o?t.prev():e||o!==s.nodeValue.length||t.next());n=t.current();){if(Ao.isElement(n)){if(!n.getAttribute("data-mce-bogus")&&(r=n.nodeName.toLowerCase(),w[r]&&"br"!==r))return!1}else if(Ao.isText(n)&&!/^[ \t\r\n]*$/.test(n.nodeValue))return!1;e?t.prev():t.next()}return!0},k=function(){r=/^(H[1-6]|PRE|FIGURE)$/.test(f)&&"HGROUP"!==d?E(m):E(),Ou(a)&&Pb(C,l)&&C.isEmpty(c)?r=C.split(l,c):C.ins
 ertAfter(r,c),wb(a,r)};rm.normalize(C,N).each(function(e){N.setStart(e.startContainer,e.startOffset),N.setEnd(e.endContainer,e.endOffset)}),s=N.startContainer,i=N.startOffset,m=Au(a),n=e.shiftKey,Ao.isElement(s)&&s.hasChildNodes()&&(p=i>s.childNodes.length-1,s=s.childNodes[Math.min(i,s.childNodes.length-1)]||s,i=p&&Ao.isText(s)?s.nodeValue.length:0),(u=Ib(C,s))&&((m&&!n||!m&&n)&&(s=function(e,t,n,r,o){var i,a,u,s,c,l,f,d=t||"P",m=e.dom,p=Ib(m,r);if(!(a=m.getParent(r,m.isBlock))||!Pb(m,a)){if(l=(a=a||p)===e.getBody()||(f=a)&&/^(TD|TH|CAPTION)$/.test(f.nodeName)?a.nodeName.toLowerCase():a.parentNode.nodeName.toLowerCase(),!a.hasChildNodes())return i=m.create(d),Mb(e,i),a.appendChild(i),n.setStart(i,0),n.setEnd(i,0),i;for(s=r;s.parentNode!==a;)s=s.parentNode;for(;s&&!m.isBlock(s);)s=(u=s).previousSibling;if(u&&e.schema.isValidChild(l,d.toLowerCase())){for(i=m.create(d),Mb(e,i),u.parentNode.inse
 rtBefore(i,u),s=u;s&&!m.isBlock(s);)c=s.nextSibling,i.appendChild(s),s=c;n.setStart(r,o),n.setEnd(r,o)}}return r}(a,m,N,s,i)),c=C.getParent(s,C.isBlock),l=c?C.getParent(c.parentNode,C.isBlock):null,f=c?c.nodeName.toUpperCase():"","LI"!==(d=l?l.nodeName.toUpperCase():"")||e.ctrlKey||(l=(c=l).parentNode,f=d),/^(LI|DT|DD)$/.test(f)&&C.isEmpty(c)?_b(a,E,l,c,m):m&&c===a.getBody()||(m=m||"P",Ai(c)?(r=Mi(c),C.isEmpty(c)&&Db(c),wb(a,r)):S()?k():S(!0)?(r=c.parentNode.insertBefore(E(),c),wb(a,Ob(c,"HR")?r:c)):((t=(y=N,b=y.cloneRange(),b.setStart(y.startContainer,Lb(!0,y.startContainer,y.startOffset)),b.setEnd(y.endContainer,Lb(!1,y.endContainer,y.endOffset)),b).cloneRange()).setEndAfter(c),function(e){for(;Ao.isText(e)&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;);}(o=t.extractContents()),r=o.firstChild,C.insertAfter(o,c),function(e,t,n){var r,o=n,i=[];if(o){for(;o=o.firstC
 hild;){if(e.isBlock(o))return;Ao.isElement(o)&&!t[o.nodeName.toLowerCase()]&&i.push(o)}for(r=i.length;r--;)!(o=i[r]).hasChildNodes()||o.firstChild===o.lastChild&&""===o.firstChild.nodeValue?e.remove(o):(a=o)&&"A"===a.nodeName&&0===Lt.trim(Si(a.innerText||a.textContent)).length&&e.remove(o);var a}}(C,w,r),g=C,(h=c).normalize(),(v=h.lastChild)&&!/^(left|right)$/gi.test(g.getStyle(v,"float",!0))||g.add(h,"br"),C.isEmpty(c)&&Db(c),r.normalize(),C.isEmpty(r)?(C.remove(r),k()):wb(a,r)),C.setAttrib(r,"id",""),a.fire("NewBlock",{newBlock:r})))},zb=function(e,t){return Eb(e).filter(function(e){return 0<t.length&&Br.is(qn.fromDom(e),t)}).isSome()},Ub=function(e){return zb(e,Bu(e))},qb=function(e){return zb(e,_u(e))},Vb=Yl([{br:[]},{block:[]},{none:[]}]),Hb=function(e,t){return qb(e)},jb=function(n){return function(e,t){return""===Au(e)===n}
 },$b=function(n){return function(e,t){return kb(e)===n}},Wb=function(n){return function(e,t){return"PRE"===Sb(e)===n}},Kb=function(n){return function(e,t){return Tu(e)===n}},Xb=function(e,t){return Ub(e)},Yb=function(e,t){return t},Gb=function(e){var t=Au(e),n=Nb(e.dom,e.selection.getStart());return n&&e.schema.isValidChild(n.nodeName,t||"P")},Jb=function(e,t){return function(n,r){return H.foldl(e,function(e,t){return e&&t(n,r)},!0)?A.some(t):A.none()}},Qb=function(e,t){return Sf([Jb([Hb],Vb.none()),Jb([Wb(!0),Kb(!1),Yb],Vb.br()),Jb([Wb(!0),Kb(!1)],Vb.block()),Jb([Wb(!0),Kb(!0),Yb],Vb.block()),Jb([Wb(!0),Kb(!0)],Vb.br()),Jb([$b(!0),Yb],Vb.br()),Jb([$b(!0)],Vb.block()),Jb([jb(!0),Yb,Gb],Vb.block()),Jb([jb(!0)],Vb.br()),Jb([Xb],Vb.br()),Jb([jb(!1),Yb],Vb.br()),Jb([Gb],Vb.block())],[e,t.shiftKey]).getOr(Vb.none())},Zb=function(e,t){Qb(e,t).fold(function(){mm.insert(e,t)},function(){Fb(e,t)},V.noop)},eC=function(o){o.on("keydown",function(e)
 {var t,n,r;e.keyCode===kg.ENTER&&(t=o,(n=e).isDefaultPrevented()||(n.preventDefault(),(r=t.undoManager).typing&&(r.typing=!1,r.add()),t.undoManager.transact(function(){!1===t.selection.isCollapsed()&&t.execCommand("Delete"),Zb(t,n)})))})},tC=function(e,t,n){return u=t,!(!nC(n)||!Ao.isText(u.container())||(r=e,i=(o=t).container(),a=o.offset(),i.insertData(a,"\xa0"),r.selection.setCursorLocation(i,a+1),0));var r,o,i,a,u},nC=function(e){return e.fold(V.constant(!1),V.constant(!0),V.constant(!0),V.constant(!1))},rC=function(e){return!!e.selection.isCollapsed()&&(t=e,n=V.curry(pl.isInlineTarget,t),r=Ba.fromRangeStart(t.selection.getRng()),Hf(n,t.getBody(),r).map(V.curry(tC,t,r)).getOr(!1));var t,n,r},oC=function(r){r.on("keydown",function(e){var t,n;!1===e.isDefaultPrevented()&&(t=r,n=e,pb([{keyCode:kg.SPACEBAR,action:mb(rC,t)}],n).each(function(e){n.preventDefault()}))})},iC=function(e,t){var n;t.hasAttribute("da
 ta-mce-caret")&&(Mi(t),(n=e).selection.setRng(n.selection.getRng()),e.selection.scrollIntoView(t))},aC=function(e,t){var n,r=(n=e,Cl(qn.fromDom(n.getBody()),"*[data-mce-caret]").fold(V.constant(null),function(e){return e.dom()}));if(r)return"compositionstart"===t.type?(t.preventDefault(),t.stopPropagation(),void iC(e,r)):void(_i(r)&&(iC(e,r),e.undoManager.add()))},uC=function(e){e.on("keyup compositionstart",V.curry(aC,e))},sC=function(e){var t=td.setupSelectedState(e);uC(e),gb(e,t),Cb(e,t),eC(e),oC(e)};function cC(u){var s,n,r,o=Lt.each,c=kg.BACKSPACE,l=kg.DELETE,f=u.dom,d=u.selection,e=u.settings,t=u.parser,i=ge.gecko,a=ge.ie,m=ge.webkit,p="data:text/mce-internal,",g=a?"Text":"URL",h=function(e,t){try{u.getDoc().execCommand(e,!1,t)}catch(n){}},v=function(e){return e.isDefaultPrevented()},y=function(){u.shortcuts.add("meta+a",null,"SelectAll")},b=function(){u.on("keydown",
 function(e){if(!v(e)&&e.keyCode===c&&d.isCollapsed()&&0===d.getRng().startOffset){var t=d.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})},C=function(){u.inline||(u.contentStyles.push("body {min-height: 150px}"),u.on("click",function(e){var t;if("HTML"===e.target.nodeName){if(11<ge.ie)return void u.getBody().focus();t=u.selection.getRng(),u.getBody().focus(),u.selection.setRng(t),u.selection.normalize(),u.nodeChanged()}}))};return u.on("keydown",function(e){var t,n,r,o,i;if(!v(e)&&e.keyCode===kg.BACKSPACE&&(n=(t=d.getRng()).startContainer,r=t.startOffset,o=f.getRoot(),i=n,t.collapsed&&0===r)){for(;i&&i.parentNode&&i.parentNode.firstChild===i&&i.parentNode!==o;)i=i.parentNode;"BLOCKQUOTE"===i.tagName&&(u.formatter.toggle("blockquote",null,i),(t=f.createRng
 ()).setStart(n,0),t.setEnd(n,0),d.setRng(t))}}),s=function(e){var t=f.create("body"),n=e.cloneContents();return t.appendChild(n),d.serializer.serialize(t,{format:"html"})},u.on("keydown",function(e){var t,n,r,o,i,a=e.keyCode;if(!v(e)&&(a===l||a===c)){if(t=u.selection.isCollapsed(),n=u.getBody(),t&&!f.isEmpty(n))return;if(!t&&(r=u.selection.getRng(),o=s(r),(i=f.createRng()).selectNode(u.getBody()),o!==s(i)))return;e.preventDefault(),u.setContent(""),n.firstChild&&f.isBlock(n.firstChild)?u.selection.setCursorLocation(n.firstChild,0):u.selection.setCursorLocation(n,0),u.nodeChanged()}}),ge.windowsPhone||u.on("keyup focusin mouseup",function(e){kg.modifierPressed(e)||d.normalize()},!0),m&&(u.settings.content_editable||f.bind(u.getDoc(),"mousedown mouseup",function(e){var t;if(e.target===u.getDoc().documentElement)if(t=d.getRng(),u.getBody().focus(),"mousedown"===e.type){if(Bi(t.
 startContainer))return;d.placeCaretAt(e.clientX,e.clientY)}else d.setRng(t)}),u.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&"false"!==f.getContentEditableParent(t)&&(e.preventDefault(),u.selection.select(t),u.nodeChanged()),"A"===t.nodeName&&f.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),d.select(t))}),e.forced_root_block&&u.on("init",function(){h("DefaultParagraphSeparator",e.forced_root_block)}),u.on("init",function(){u.dom.bind(u.getBody(),"submit",function(e){e.preventDefault()})}),b(),t.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"===e[t].attr("class")&&e[t].remove()}),ge.iOS?(u.inline||u.on("keydown",function(){document.activeElement===document.body&&u.getWin().focus()}),C(),u.on("click",function(e){var t=e.target;do{if("A
 "===t.tagName)return void e.preventDefault()}while(t=t.parentNode)}),u.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")):y()),11<=ge.ie&&(C(),b()),ge.ie&&(y(),h("AutoUrlDetect",!1),u.on("dragstart",function(e){var t,n,r;(t=e).dataTransfer&&(u.selection.isCollapsed()&&"IMG"===t.target.tagName&&d.select(t.target),0<(n=u.selection.getContent()).length&&(r=p+escape(u.id)+","+escape(n),t.dataTransfer.setData(g,r)))}),u.on("drop",function(e){if(!v(e)){var t=(i=e).dataTransfer&&(a=i.dataTransfer.getData(g))&&0<=a.indexOf(p)?(a=a.substr(p.length).split(","),{id:unescape(a[0]),html:unescape(a[1])}):null;if(t&&t.id!==u.id){e.preventDefault();var n=by.fromPoint(e.x,e.y,u.getDoc());d.setRng(n),r=t.html,o=!0,u.queryCommandSupported("mceInsertClipboardContent")?u.execCommand("mceInsertClipboardContent",
 !1,{content:r,internal:o}):u.execCommand("mceInsertContent",!1,r)}}var r,o,i,a})),i&&(u.on("keydown",function(e){if(!v(e)&&e.keyCode===c){if(!u.getBody().getElementsByTagName("hr").length)return;if(d.isCollapsed()&&0===d.getRng().startOffset){var t=d.getNode(),n=t.previousSibling;if("HR"===t.nodeName)return f.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(f.remove(n),e.preventDefault())}}}),Range.prototype.getClientRects||u.on("mousedown",function(e){if(!v(e)&&"HTML"===e.target.nodeName){var t=u.getBody();t.blur(),Ce.setEditorTimeout(u,function(){t.focus()})}}),n=function(){var e=f.getAttribs(d.getStart().cloneNode(!1));return function(){var t=d.getStart();t!==u.getBody()&&(f.setAttrib(t,"style",null),o(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}},r=function(){return!d.isCollapsed()&&f.ge
 tParent(d.getStart(),f.isBlock)!==f.getParent(d.getEnd(),f.isBlock)},u.on("keypress",function(e){var t;if(!v(e)&&(8===e.keyCode||46===e.keyCode)&&r())return t=n(),u.getDoc().execCommand("delete",!1,null),t(),e.preventDefault(),!1}),f.bind(u.getDoc(),"cut",function(e){var t;!v(e)&&r()&&(t=n(),Ce.setEditorTimeout(u,function(){t()}))}),e.readonly||u.on("BeforeExecCommand MouseDown",function(){h("StyleWithCSS",!1),h("enableInlineTableEditing",!1),e.object_resizing||h("enableObjectResizing",!1)}),u.on("SetContent ExecCommand",function(e){"setcontent"!==e.type&&"mceInsertLink"!==e.command||o(f.select("a"),function(e){var t=e.parentNode,n=f.getRoot();if(t.lastChild===e){for(;t&&!f.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}f.add(t,"br",{"data-mce-bogus":1})}})}),u.contentStyles.push(&qu
 ot;img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"),ge.mac&&u.on("keydown",function(e){!kg.metaKeyPressed(e)||e.shiftKey||37!==e.keyCode&&39!==e.keyCode||(e.preventDefault(),u.selection.getSel().modify("move",37===e.keyCode?"backward":"forward","lineboundary"))}),b()),{refreshContentEditable:function(){},isHidden:function(){var e;return!i||u.removed?0:!(e=u.selection.getSel())||!e.rangeCount||0===e.rangeCount}}}var lC=function(e){return Ao.isElement(e)&&fo(qn.fromDom(e))},fC=function(t){t.on("click",function(e){3===e.detail&&function(e){var t=e.selection.getRng(),n=Ta.fromRangeStart(t),r=Ta.fromRangeEnd(t);if(Ta.isElementPosition(n)){var o=n.container();lC(o)&&Ka.firstPositionIn(o).each(function(e){return t.setStart(e.container(),e.offset())})}Ta.isElementPosition(r)&&(o=n.container(),lC(o)&&Ka.lastPositionIn(o).each(function(e){re
 turn t.setEnd(e.container(),e.offset())})),e.selection.setRng(Wc(t))}(t)})},dC=di.DOM,mC=function(e){var t;e.bindPendingEventDelegates(),e.initialized=!0,e.fire("init"),e.focus(!0),e.nodeChanged({initial:!0}),e.execCallback("init_instance_callback",e),(t=e).settings.auto_focus&&Ce.setEditorTimeout(t,function(){var e;(e=!0===t.settings.auto_focus?t:t.editorManager.get(t.settings.auto_focus)).destroyed||e.focus()},100)},pC=function(t,e){var n,r,u,o,i,a,s,c,l,f=t.settings,d=t.getElement(),m=t.getDoc();f.inline||(t.getElement().style.visibility=t.orgVisibility),e||f.content_editable||(m.open(),m.write(t.iframeHTML),m.close()),f.content_editable&&(t.on("remove",function(){var e=this.getBody();dC.removeClass(e,"mce-content-body"),dC.removeClass(e,"mce-edit-focus"),dC.setAttrib(e,"contentEditable",null)}),dC.addClass(d,"mce-content-body"),t.contentDocument=m=f.content_document||document,t.contentWindow=f.
 content_window||window,t.bodyElement=d,f.content_document=f.content_window=null,f.root_name=d.nodeName.toLowerCase()),(n=t.getBody()).disabled=!0,t.readonly=f.readonly,t.readonly||(t.inline&&"static"===dC.getStyle(n,"position",!0)&&(n.style.position="relative"),n.contentEditable=t.getParam("content_editable_state",!0)),n.disabled=!1,t.editorUpload=$p(t),t.schema=Zo(f),t.dom=di(m,{keep_values:!0,url_converter:t.convertURL,url_converter_scope:t,hex_colors:f.force_hex_style_colors,class_filter:f.class_filter,update_styles:!0,root_element:t.inline?t.getBody():null,collect:f.content_editable,schema:t.schema,onSetAttrib:function(e){t.fire("SetAttrib",e)}}),t.parser=((o=uy((u=t).settings,u.schema)).addAttributeFilter("src,href,style,tabindex",function(e,t){for(var n,r,o,i=e.length,a=u.dom;i--;)if(r=(n=e[i]).attr(t),o="data-mce-"+t,!n.attributes.map[o]){if(0===r.indexOf("data:")||0===r.indexOf(&q
 uot;blob:"))continue;"style"===t?((r=a.serializeStyle(a.parseStyle(r),n.name)).length||(r=null),n.attr(o,r),n.attr(t,r)):"tabindex"===t?(n.attr(o,r),n.attr(t,null)):n.attr(o,u.convertURL(r,t,n.name))}}),o.addNodeFilter("script",function(e){for(var t,n,r=e.length;r--;)0!==(n=(t=e[r]).attr("type")||"no/type").indexOf("mce-")&&t.attr("type","mce-"+n)}),o.addNodeFilter("#cdata",function(e){for(var t,n=e.length;n--;)(t=e[n]).type=8,t.name="#comment",t.value="[CDATA["+t.value+"]]"}),o.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t,n=e.length,r=u.schema.getNonEmptyElements();n--;)(t=e[n]).isEmpty(r)&&0===t.getAll("br").length&&(t.append(new Gv("br",1)).shortEnded=!0)}),o),t.serializer=dy(f,t),t.selection=tb(t.dom,t.getWin(),t.serializer,t),t.formatter=Pv(t),t.undoManager=oh(t),t._nodeChangeDispatche
 r=new Gp(t),t._selectionOverrides=Dg(t),fC(t),sC(t),Yp(t),t.fire("PreInit"),f.browser_spellcheck||f.gecko_spellcheck||(m.body.spellcheck=!1,dC.setAttrib(n,"spellcheck","false")),t.quirks=cC(t),t.fire("PostRender"),f.directionality&&(n.dir=f.directionality),f.nowrap&&(n.style.whiteSpace="nowrap"),f.protect&&t.on("BeforeSetContent",function(t){Lt.each(f.protect,function(e){t.content=t.content.replace(e,function(e){return"\x3c!--mce:protected "+escape(e)+"--\x3e"})})}),t.on("SetContent",function(){t.addVisual(t.getBody())}),t.load({initial:!0,format:"html"}),t.startContent=t.getContent({format:"raw"}),t.on("compositionstart compositionend",function(e){t.composing="compositionstart"===e.type}),0<t.contentStyles.length&&(r="",Lt.each(t.contentStyles,function(e){r+=e+"\r\n"}),t.dom.addStyle(r)),(i=t,i.inlin
 e?dC.styleSheetLoader:i.dom.styleSheetLoader).loadAll(t.contentCSS,function(e){mC(t)},function(e){mC(t)}),f.content_style&&(a=t,s=f.content_style,c=qn.fromDom(a.getDoc().head),l=qn.fromTag("style"),cr.set(l,"type","text/css"),Fu.append(l,qn.fromText(s)),Fu.append(c,l))},gC=di.DOM,hC=function(e,t){var n,r,o,i,a,u,s,c=e.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),l=(n=e.id,r=c,o=t.height,i=xu(e),s=qn.fromTag("iframe"),cr.setAll(s,i),cr.setAll(s,{id:n+"_ifr",frameBorder:"0",allowTransparency:"true",title:r}),vr(s,{width:"100%",height:(a=o,u="number"==typeof a?a+"px":a,u||""),display:"block"}),s).dom();l.onload=function(){l.onload=null,e.fire("load")};var f,d,m,p,g=function(e,t){if(document.domain!==window.location.hostname&&ge.ie&&ge.ie<12){var n=jp.uui
 d("mce");e[n]=function(){pC(e)};var r='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+e.id+'");document.write(ed.iframeHTML);document.close();ed.'+n+"(true);})()";return gC.setAttrib(t,"src",r),!0}return!1}(e,l);return e.contentAreaContainer=t.iframeContainer,e.iframeElement=l,e.iframeHTML=(p=wu(f=e)+"<html><head>",Nu(f)!==f.documentBaseUrl&&(p+='<base href="'+f.documentBaseURI.getURI()+'" />'),p+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',d=Eu(f),m=Su(f),ku(f)&&(p+='<meta http-equiv="Content-Security-Policy" content="'+ku(f)+'" />'),p+='</head><body id="'+d+'" class="mce-content-body '+m+'" data-id="'+f.id+'"><br></body></html>'),gC.add(t.iframeContainer,l),g},vC=function(e,
 t){var n=hC(e,t);t.editorContainer&&(gC.get(t.editorContainer).style.display=e.orgDisplay,e.hidden=gC.isHidden(t.editorContainer)),e.getElement().style.display="none",gC.setAttrib(e.id,"aria-hidden","true"),n||pC(e)},yC=di.DOM,bC=function(t,n,e){var r,o,i=Tp.get(e);if(r=Tp.urls[e]||t.documentBaseUrl.replace(/\/$/,""),e=Lt.trim(e),i&&-1===Lt.inArray(n,e)){if(Lt.each(Tp.dependencies(e),function(e){bC(t,n,e)}),t.plugins[e])return;o=new i(t,r,t.$),(t.plugins[e]=o).init&&(o.init(t,r),n.push(e))}},CC=function(e){return e.replace(/^\-/,"")},xC=function(e){return{editorContainer:e,iframeContainer:e}},wC=function(e){var t,n,r=e.getElement();return e.inline?xC(null):(t=r,n=yC.create("div"),yC.insertAfter(n,t),xC(n))},NC=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.getElement();return e.orgDisplay=m.style.display,E.isString(d.theme)?(l=(o=e).settings,f=o.getElement(),i=l.width||yC.getStyle(f,"wid
 th")||"100%",a=l.height||yC.getStyle(f,"height")||f.offsetHeight,u=l.min_height||100,(s=/^[0-9\.]+(|px)$/i).test(""+i)&&(i=Math.max(parseInt(i,10),100)),s.test(""+a)&&(a=Math.max(parseInt(a,10),u)),c=o.theme.renderUI({targetNode:f,width:i,height:a,deltaWidth:l.delta_width,deltaHeight:l.delta_height}),l.content_editable||(a=(c.iframeHeight||a)+("number"==typeof a?c.deltaHeight||0:""))<u&&(a=u),c.height=a,c):E.isFunction(d.theme)?(r=(t=e).getElement(),(n=t.settings.theme(t,r)).editorContainer.nodeType&&(n.editorContainer.id=n.editorContainer.id||t.id+"_parent"),n.iframeContainer&&n.iframeContainer.nodeType&&(n.iframeContainer.id=n.iframeContainer.id||t.id+"_iframecontainer"),n.height=n.iframeHeight?n.iframeHeight:r.offsetHeight,n):wC(e)},EC=function(t){var e,n,r,o,i,a,u=t.settings,s=t.getElement();return t.rtl=u.rtl_ui||t.editorManager.i18n.rtl,t.edit
 orManager.i18n.setCode(u.language),u.aria_label=u.aria_label||yC.getAttrib(s,"aria-label",t.getLang("aria.rich_text_area")),t.fire("ScriptsLoaded"),o=(n=t).settings.theme,E.isString(o)?(n.settings.theme=CC(o),r=Ap.get(o),n.theme=new r(n,Ap.urls[o]),n.theme.init&&n.theme.init(n,Ap.urls[o]||n.documentBaseUrl.replace(/\/$/,""),n.$)):n.theme={},i=t,a=[],Lt.each(i.settings.plugins.split(/[ ,]/),function(e){bC(i,a,CC(e))}),e=NC(t),t.editorContainer=e.editorContainer?e.editorContainer:null,u.content_css&&Lt.each(Lt.explode(u.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),u.content_editable?pC(t):vC(t,e)},SC=di.DOM,kC=function(e){return"-"===e.charAt(0)},TC=function(i,a){var u=vi.ScriptLoader;!function(e,t,n,r){var o=t.settings,i=o.theme;if(E.isString(i)){if(!kC(i)&&!Ap.urls.hasOwnProperty(i)){var a=o.theme_url;a?Ap.load(i,t.documentBaseURI.toAbsolute(a)):Ap.load(i,"themes/"+i+
 "/theme"+n+".js")}e.loadQueue(function(){Ap.waitFor(i,r)})}else r()}(u,i,a,function(){var e,t,n,r,o;e=u,(n=(t=i).settings).language&&"en"!==n.language&&!n.language_url&&(n.language_url=t.editorManager.baseURL+"/langs/"+n.language+".js"),n.language_url&&!t.editorManager.i18n.data[n.language]&&e.add(n.language_url),r=i.settings,o=a,Lt.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),Lt.each(r.external_plugins,function(e,t){Tp.load(t,e),r.plugins+=" "+t}),Lt.each(r.plugins.split(/[ ,]/),function(e){if((e=Lt.trim(e))&&!Tp.urls[e])if(kC(e)){e=e.substr(1,e.length);var t=Tp.dependencies(e);Lt.each(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=Tp.createUrl(t,e),Tp.load(e.resource,e)})}else Tp.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),u.loadQueue(func
 tion(){i.removed||EC(i)},i,function(e){kp.pluginLoadError(i,e[0]),i.removed||EC(i)})})},AC=function(t){var e=t.settings,n=t.id,r=function(){SC.unbind(window,"ready",r),t.render()};if(Re.Event.domLoaded){if(t.getElement()&&ge.contentEditable){e.inline?t.inline=!0:(t.orgVisibility=t.getElement().style.visibility,t.getElement().style.visibility="hidden");var o=t.getElement().form||SC.getParent(n,"form");o&&(t.formElement=o,e.hidden_input&&!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&(SC.insertAfter(SC.create("input",{type:"hidden",name:n}),n),t.hasHiddenInput=!0),t.formEventDelegate=function(e){t.fire(e.type,e)},SC.bind(o,"submit reset",t.formEventDelegate),t.on("reset",function(){t.setContent(t.startContent,{format:"raw"})}),!e.submit_patch||o.submit.nodeType||o.submit.length||o._mceOldSubmit||(o._mceOldSubmit=o.submit,o.submit=function(){return t.editorManager.triggerS
 ave(),t.setDirty(!1),o._mceOldSubmit(o)})),t.windowManager=xp(t),t.notificationManager=Cp(t),"xml"===e.encoding&&t.on("GetContent",function(e){e.save&&(e.content=SC.encode(e.content))}),e.add_form_submit_trigger&&t.on("submit",function(){t.initialized&&t.save()}),e.add_unload_trigger&&(t._beforeUnload=function(){!t.initialized||t.destroyed||t.isHidden()||t.save({format:"raw",no_events:!0,set_dirty:!1})},t.editorManager.on("BeforeUnload",t._beforeUnload)),t.editorManager.add(t),TC(t,t.suffix)}}else SC.bind(window,"ready",r)},RC=function(e,t,n){var r=e.sidebars?e.sidebars:[];r.push({name:t,settings:n}),e.sidebars=r},BC=Lt.each,_C=Lt.trim,DC="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),OC={ftp:21,http:80,https:443,mailto:25},PC=function(r,e){var t,n,o=this;if(r=_C(r),t=(e=o.settings=e||{}).base_uri,/
 ^([\w\-]+):([^\/]{2})/i.test(r)||/^\s*#/.test(r))o.source=r;else{var i=0===r.indexOf("//");0!==r.indexOf("/")||i||(r=(t&&t.protocol||"http")+"://mce_host"+r),/^[\w\-]*:?\/\//.test(r)||(n=e.base_uri?e.base_uri.path:new PC(document.location.href).directory,""==e.base_uri.protocol?r="//mce_host"+o.toAbsPath(n,r):(r=/([^#?]*)([#?]?.*)/.exec(r),r=(t&&t.protocol||"http")+"://mce_host"+o.toAbsPath(n,r[1])+r[2])),r=r.replace(/@@/g,"(mce_at)"),r=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(r),BC(DC,function(e,t){var n=r[t];n&&(n=n.replace(/\(mce_at\)/g,"@@")),o[e]=n}),t&&(o.protocol||(o.protocol=t.protocol),o.userInfo||(o.userInfo=t.userInfo),o.port||"mce_host"!==o.host||(o.port=t.port),o.host&&a
 mp;"mce_host"!==o.host||(o.host=t.host),o.source=""),i&&(o.protocol="")}};PC.prototype={setPath:function(e){e=/^(.*?)\/?(\w+)?$/.exec(e),this.path=e[0],this.directory=e[1],this.file=e[2],this.source="",this.getURI()},toRelative:function(e){var t;if("./"===e)return e;if("mce_host"!==(e=new PC(e,{base_uri:this})).host&&this.host!==e.host&&e.host||this.port!==e.port||this.protocol!==e.protocol&&""!==e.protocol)return e.getURI();var n=this.getURI(),r=e.getURI();return n===r||"/"===n.charAt(n.length-1)&&n.substr(0,n.length-1)===r?n:(t=this.toRelPath(this.path,e.path),e.query&&(t+="?"+e.query),e.anchor&&(t+="#"+e.anchor),t)},toAbsolute:function(e,t){return(e=new PC(e,{base_uri:this})).getURI(t&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;
 var t=OC[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r,o,i=0,a="";if(e=(e=e.substring(0,e.lastIndexOf("/"))).split("/"),n=t.split("/"),e.length>=n.length)for(r=0,o=e.length;r<o;r++)if(r>=n.length||e[r]!==n[r]){i=r+1;break}if(e.length<n.length)for(r=0,o=n.length;r<o;r++)if(r>=e.length||e[r]!==n[r]){i=r+1;break}if(1===i)return t;for(r=0,o=e.length-(i-1);r<o;r++)a+="../";for(r=i-1,o=n.length;r<o;r++)a+=r!==i-1?"/"+n[r]:n[r];return a},toAbsPath:function(e,t){var n,r,o,i=0,a=[];for(r=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),BC(e,function(e){e&&a.push(e)}),e=a,n=t.length-1,a=[];0<=n;n--)0!==t[n].length&&"."!==t[n]&&(".."!==t[n]?0<i?i--:a.push(t[n]):i++);return 0!==(o=(n=e.length-i)<=0?a.reverse().join("/"):e.slice(0,n).join("/&qu
 ot;)+"/"+a.reverse().join("/")).indexOf("/")&&(o="/"+o),r&&o.lastIndexOf("/")!==o.length-1&&(o+=r),o},getURI:function(e){var t,n=this;return n.source&&!e||(t="",e||(n.protocol?t+=n.protocol+"://":t+="//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},PC.parseDataUri=function(e){var t,n;return e=decodeURIComponent(e).split(","),(n=/data:([^;]+)/.exec(e[0]))&&(t=n[1]),{type:t,data:e[1]}},PC.getDocumentBaseUrl=function(e){var t;return t=0!==e.protocol.indexOf("http")&&"file:"!==e.protocol?e.href:e.protocol+"//"+e.host+e.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").re
 place(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),t};var LC=function(e,t){t(e),e.firstChild&&LC(e.firstChild,t),e.next&&LC(e.next,t)},IC=function(e,t,n){var r=function(e,n,t){var r={},o={},i=[];for(var a in t.firstChild&&LC(t.firstChild,function(t){H.each(e,function(e){e.name===t.name&&(r[e.name]?r[e.name].nodes.push(t):r[e.name]={filter:e,nodes:[t]})}),H.each(n,function(e){"string"==typeof t.attr(e.name)&&(o[e.name]?o[e.name].nodes.push(t):o[e.name]={filter:e,nodes:[t]})})}),r)r.hasOwnProperty(a)&&i.push(r[a]);for(var u in o)o.hasOwnProperty(u)&&i.push(o[u]);return i}(e,t,n);H.each(r,function(t){H.each(t.filter.callbacks,function(e){e(t.nodes,t.filter.name,{})})})},MC=function(e){return e instanceof Gv},FC=function(e,t,n){var r,o,i,a,u;if(t.format=t.format?t.format:"html",t.get=!0,t.getInner=!0,t.no_events||e.fire("BeforeGetContent",t),"raw"===t.format)r=Lt.trim(
 Ug.trimExternal(e.serializer,n.innerHTML));else if("text"===t.format)r=Si(n.innerText||n.textContent);else{if("tree"===t.format)return e.serializer.serialize(n,t);i=(o=e).serializer.serialize(n,t),a=Au(o),u=new RegExp("^(<"+a+"[^>]*>(&nbsp;|&#160;|\\s|\xa0|<br \\/>|)<\\/"+a+">[\r\n]*|<br \\/>[\r\n]*)$"),r=i.replace(u,"")}return"text"!==t.format?t.content=Lt.trim(r):t.content=r,t.no_events||e.fire("GetContent",t),t.content},zC=function(u,s,c){return void 0===c&&(c={}),c.format=c.format?c.format:"html",c.set=!0,c.content=MC(s)?"":s,MC(s)||c.no_events||(u.fire("BeforeSetContent",c),s=c.content),A.from(u.getBody()).fold(V.constant(s),function(e){return MC(s)?function(e,t,n,r){IC(e.parser.getNodeFilters(),e.parser.getAttributeFilters(),n);var o=jc({validate:e.validate},e.schema).serialize(n);return r.content=Lt.trim(o),e.dom.setHTML(t,r.
 content),r.no_events||e.fire("SetContent",r),n}(u,e,s,c):(t=u,n=e,o=c,0===(r=s).length||/^\s+$/.test(r)?(a='<br data-mce-bogus="1">',"TABLE"===n.nodeName?r="<tr><td>"+a+"</td></tr>":/^(UL|OL)$/.test(n.nodeName)&&(r="<li>"+a+"</li>"),(i=Au(t))&&t.schema.isValidChild(n.nodeName.toLowerCase(),i.toLowerCase())?(r=a,r=t.dom.createHTML(i,t.settings.forced_root_block_attrs,r)):r||(r='<br data-mce-bogus="1">'),t.dom.setHTML(n,r),t.fire("SetContent",o)):("raw"!==o.format&&(r=jc({validate:t.validate},t.schema).serialize(t.parser.parse(r,{isRootContent:!0,insert:!0}))),o.content=Lt.trim(r),t.dom.setHTML(n,o.content),o.no_events||t.fire("SetContent",o)),o.content);var t,n,r,o,i,a})},UC=di.DOM,qC=function(e){return A.from(e).each(function(e){return e.destroy()})},VC=function(e){if(!e.removed){var t=e._selectionOverri
 des,n=e.editorUpload,r=e.getBody(),o=e.getElement();r&&e.save(),e.removed=!0,e.unbindAllNativeEvents(),e.hasHiddenInput&&o&&UC.remove(o.nextSibling),!e.inline&&r&&(i=e,UC.setStyle(i.id,"display",i.orgDisplay)),qv(e),e.editorManager.remove(e),UC.remove(e.getContainer()),qC(t),qC(n),e.destroy()}var i},HC=function(e,t){var n,r,o,i=e.selection,a=e.dom;e.destroyed||(t||e.removed?(t||(e.editorManager.off("beforeunload",e._beforeUnload),e.theme&&e.theme.destroy&&e.theme.destroy(),qC(i),qC(a)),(r=(n=e).formElement)&&(r._mceOldSubmit&&(r.submit=r._mceOldSubmit,r._mceOldSubmit=null),UC.unbind(r,"submit reset",n.formEventDelegate)),(o=e).contentAreaContainer=o.formElement=o.container=o.editorContainer=null,o.bodyElement=o.contentDocument=o.contentWindow=null,o.iframeElement=o.targetElm=null,o.selection&&(o.selection=o.selection.win=o.selection.dom=o.selection.dom.doc=null),e.destroyed=
 !0):e.remove())},jC=di.DOM,$C=Lt.extend,WC=Lt.each,KC=Lt.resolve,XC=ge.ie,YC=function(e,t,n){var r,o,i,a,u,s,c,l=this,f=l.documentBaseUrl=n.documentBaseURL,d=n.baseURI;r=l,o=e,i=f,a=n.defaultSettings,u=t,c={id:o,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:i,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,a
 rticle,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:(s=r).convertURL,url_converter_scope:s,ie7_compat:!0},t=sl(nl,c,a,u),l.settings=t,Ci.language=t.language||"en",Ci.languageLoad=t.language_load,Ci.baseURL=n.baseURL,l.id=e,l.setDirty(!1),l.plugins={},l.documentBaseURI=new PC(t.document_base_url,{base_uri:d}),l.baseURI=d,l.contentCSS=[],l.contentStyles=[],l.shortcuts=new tp(l),l.loadedCSS={},l.editorCommands=new Mm(l),l.suffix=n.suffix,l.editorManager=n,l.inline=t.inline,l.buttons={},l.menuItems={},t.cache_suffix&&(ge.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),!1===t.override_viewport&&(ge.overrideViewPort=!1),n.fire("SetupEditor",{editor:l}),l.execCallbac
 k("setup",l),l.$=en.overrideDefaults(function(){return{context:l.inline?l.getBody():l.getDoc(),element:l.getBody()}})};$C(YC.prototype={render:function(){AC(this)},focus:function(e){fp(this,e)},hasFocus:function(){return dp(this)},execCallback:function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r,o=this.settings[e];if(o)return this.callbackLookup&&(r=this.callbackLookup[e])&&(o=r.func,r=r.scope),"string"==typeof o&&(r=(r=o.replace(/\.\w+$/,""))?KC(r):0,o=KC(o),this.callbackLookup=this.callbackLookup||{},this.callbackLookup[e]={func:o,scope:r}),o.apply(r||this,Array.prototype.slice.call(arguments,1))},translate:function(e){if(e&&Lt.is(e,"string")){var n=this.settings.language||"en",r=this.editorManager.i18n;e=r.data[n+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,t){return r.data[n+"."+t]||"{#"+t+"}"})}return this.editorManager.translat
 e(e)},getLang:function(e,t){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(t!==undefined?t:"{#"+e+"}")},getParam:function(e,t,n){return fl(this,e,t,n)},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.stateSelector&&"undefined"==typeof t.active&&(t.active=!1),t.text||t.icon||(t.icon=e),n.buttons=n.buttons,t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addSidebar:function(e,t){return RC(this,e,t)},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems,n.menuItems[e]=t},addContextToolbar:function(e,t){var n,r=this;r.contextToolbars=r.contextToolbars||[],"string"==typeof e&&(n=e,e=function(e){return r.dom.is(e,n)}),r.contextToolbars.push({id:jp.uuid("mcet"),predicate:e,items:t})},addComman
 d:function(e,t,n){this.editorCommands.addCommand(e,t,n)},addQueryStateHandler:function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},addQueryValueHandler:function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},queryCommandState:function(e){return this.editorCommands.queryCommandState(e)},queryCommandValue:function(e){return this.editorCommands.queryCommandValue(e)},queryCommandSupported:function(e){return this.editorCommands.queryCommandSupported(e)},show:function(){this.hidden&&(this.hidden=!1,this.inline?this.getBody().contentEditable=!0:(jC.show(this.getContainer()),jC.hide(this.id)),this.load(),this.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(XC&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e===e.editorMana
 ger.focusedEditor&&(e.editorManager.focusedEditor=null)):(jC.hide(e.getContainer()),jC.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var t,n=this.getElement();return this.removed?"":n?((e=e||{}).load=!0,t=this.setContent(n.value!==undefined?n.value:n.innerHTML,e),e.element=n,e.no_events||this.fire("LoadContent",e),e.element=n=null,t):void 0},save:function(e){var t,n,r=this,o=r.getElement();if(o&&r.initialized&&!r.removed)return(e=e||{}).save=!0,e.element=o,e.content=r.getContent(e),e.no_events||r.fire("SaveContent",e),"raw"===e.format&&r.fire("RawSaveContent",e),t=e.content,/TEXTAREA|INPUT/i.test(o.nodeName)?o.value=t:(r.inline||(o.innerHTML=t),(n=jC.getParent(r.id,"form"))&&WC(n.elements,function(e){i
 f(e.name===r.id)return e.value=t,!1})),e.element=o=null,!1!==e.set_dirty&&r.setDirty(!1),t},setContent:function(e,t){return zC(this,e,t)},getContent:function(e){return t=this,void 0===(n=e)&&(n={}),A.from(t.getBody()).fold(V.constant("tree"===n.format?new Gv("body",11):""),function(e){return FC(t,n,e)});var t,n},insertContent:function(e,t){t&&(e=$C({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},setDirty:function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!==t&&this.fire("dirty")},setMode:function(e){Gm(this,e)},getContainer:function(){return this.container||(this.container=jC.get(this.editorContainer||this.id+"_parent")),this.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=jC.get(this.id)),this.targetElm},getWin:function(){var e;retu
 rn this.contentWindow||(e=this.iframeElement)&&(this.contentWindow=e.contentWindow),this.contentWindow},getDoc:function(){var e;return this.contentDocument||(e=this.getWin())&&(this.contentDocument=e.document),this.contentDocument},getBody:function(){var e=this.getDoc();return this.bodyElement||(e?e.body:null)},convertURL:function(e,t,n){var r=this.settings;return r.urlconverter_callback?this.execCallback("urlconverter_callback",e,n,!0,t):!r.convert_urls||n&&"LINK"===n.nodeName||0===e.indexOf("file:")||0===e.length?e:r.relative_urls?this.documentBaseURI.toRelative(e):e=this.documentBaseURI.toAbsolute(e,r.remove_script_host)},addVisual:function(e){var n,r=this,o=r.settings,i=r.dom;e=e||r.getBody(),r.hasVisual===undefined&&(r.hasVisual=o.visual),WC(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return n=o.visual_table_class||"mce-item-table",void((t=i.getAttrib(e,"b
 order"))&&"0"!==t||!r.hasVisual?i.removeClass(e,n):i.addClass(e,n));case"A":return void(i.getAttrib(e,"href")||(t=i.getAttrib(e,"name")||e.id,n=o.visual_anchor_class||"mce-item-anchor",t&&r.hasVisual?i.addClass(e,n):i.removeClass(e,n)))}}),r.fire("VisualAid",{element:e,hasVisual:r.hasVisual})},remove:function(){VC(this)},destroy:function(e){HC(this,e)},uploadImages:function(e){return this.editorUpload.uploadImages(e)},_scanForImages:function(){return this.editorUpload.scanForImages()}},Km);var GC,JC,QC,ZC={isEditorUIElement:function(e){return-1!==e.className.toString().indexOf("mce-")}},ex=function(n,e){var t,r,o=zn.detect().browser;o.isIE()||o.isEdge()?(r=n).on("focusout",function(){_m.store(r)}):(t=e,n.on("mouseup touchend",function(e){t.throttle()})),n.on("keyup nodechange",function(e){var t;"nodechange"===(t=e).type&&t.selectionChange||_m.sto
 re(n)})},tx=function(e){var t,n,r,o=Eg(function(){_m.store(e)},0);e.inline&&(t=e,n=o,r=function(){n.throttle()},di.DOM.bind(document,"mouseup",r),t.on("remove",function(){di.DOM.unbind(document,"mouseup",r)})),e.on("init",function(){ex(e,o)}),e.on("remove",function(){o.cancel()})},nx=di.DOM,rx=function(e){return ZC.isEditorUIElement(e)},ox=function(t,e){var n=t?t.settings.custom_ui_selector:"";return null!==nx.getParent(e,function(e){return rx(e)||!!n&&t.dom.is(e,n)})},ix=function(r,e){var t=e.editor;tx(t),t.on("focusin",function(){var e=r.focusedEditor;e!==this&&(e&&e.fire("blur",{focusedEditor:this}),r.setActive(this),(r.focusedEditor=this).fire("focus",{blurredEditor:e}),this.focus(!0))}),t.on("focusout",function(){var t=this;Ce.setEditorTimeout(t,function(){var e=r.focusedEditor;ox(t,function(){try{return document.activeElement}catch(e){return docum
 ent.body}}())||e!==t||(t.fire("blur",{focusedEditor:null}),r.focusedEditor=null)})}),GC||(GC=function(e){var t,n=r.activeEditor;t=e.target,n&&t.ownerDocument===document&&(t===document.body||ox(n,t)||r.focusedEditor!==n||(n.fire("blur",{focusedEditor:null}),r.focusedEditor=null))},nx.bind(document,"focusin",GC))},ax=function(e,t){e.focusedEditor===t.editor&&(e.focusedEditor=null),e.activeEditor||(nx.unbind(document,"focusin",GC),GC=null)},ux=function(e){e.on("AddEditor",V.curry(ix,e)),e.on("RemoveEditor",V.curry(ax,e))},sx={},cx="en",lx={setCode:function(e){e&&(cx=e,this.rtl=!!this.data[e]&&"rtl"===this.data[e]._dir)},getCode:function(){return cx},rtl:!1,add:function(e,t){var n=sx[e];for(var r in n||(sx[e]=n={}),t)n[r]=t[r];this.setCode(e)},translate:function(e){var t=sx[cx]||{},n=function(e){return Lt.is(e,"function")?Object.prototype.toString.call(e):r(e
 )?"":""+e},r=function(e){return""===e||null===e||Lt.is(e,"undefined")},o=function(e){return e=n(e),Lt.hasOwn(t,e)?n(t[e]):e};if(r(e))return"";if(Lt.is(e,"object")&&Lt.hasOwn(e,"raw"))return n(e.raw);if(Lt.is(e,"array")){var i=e.slice(1);e=o(e[0]).replace(/\{([0-9]+)\}/g,function(e,t){return Lt.hasOwn(i,t)?n(i[t]):e})}return o(e).replace(/{context:\w+}$/,"")},data:sx},fx=di.DOM,dx=Lt.explode,mx=Lt.each,px=Lt.extend,gx=0,hx=!1,vx=[],yx=[],bx=function(t){mx(QC.get(),function(e){"scroll"===t.type?e.fire("ScrollWindow",t):e.fire("ResizeWindow",t)})},Cx=function(e){e!==hx&&(e?en(window).on("resize scroll",bx):en(window).off("resize scroll",bx),hx=e)},xx=function(t){var e=yx;delete vx[t.id];for(var n=0;n<vx.length;n++)if(vx[n]===t){vx.splice(n,1);break}return yx=H.filter(yx,function(e){return t!==e}),QC.activeEditor===t&&(QC.
 activeEditor=0<yx.length?yx[0]:null),QC.focusedEditor===t&&(QC.focusedEditor=null),e.length!==yx.length};px(QC={defaultSettings:{},$:en,majorVersion:"4",minorVersion:"7.11",releaseDate:"2018-04-11",editors:vx,i18n:lx,activeEditor:null,settings:{},setup:function(){var e,t,n,r,o="";if(t=PC.getDocumentBaseUrl(document.location),/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),n=window.tinymce||window.tinyMCEPreInit)e=n.base||n.baseURL,o=n.suffix;else{for(var i=document.getElementsByTagName("script"),a=0;a<i.length;a++){var u=(r=i[a].src).substring(r.lastIndexOf("/"));if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(r)){-1!==u.indexOf(".min")&&(o=".min"),e=r.substring(0,r.lastIndexOf("/"));break}}!e&&document.currentScript&&(-1!==(r=document.currentS
 cript.src).indexOf(".min")&&(o=".min"),e=r.substring(0,r.lastIndexOf("/")))}this.baseURL=new PC(t).toAbsolute(e),this.documentBaseURL=t,this.baseURI=new PC(this.baseURL),this.suffix=o,ux(this)},overrideDefaults:function(e){var t,n;(t=e.base_url)&&(this.baseURL=new PC(this.documentBaseURL).toAbsolute(t.replace(/\/+$/,"")),this.baseURI=new PC(this.baseURL)),n=e.suffix,e.suffix&&(this.suffix=n);var r=(this.defaultSettings=e).plugin_base_urls;for(var o in r)Ci.PluginManager.urls[o]=r[o]},init:function(r){var n,u,s=this;u=Lt.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var c=function(e){var t=e.id;return t||(t=(t=e.name)&&!fx.get(t)?e.name:fx.uniqueId(),e.setAttribute("id",t)),t},l=function(e,t){return t.constructor===RegExp?t.te
 st(e.className):fx.hasClass(e,t)},f=function(e){n=e},e=function(){var o,i=0,a=[],n=function(e,t,n){var r=new YC(e,t,s);a.push(r),r.on("init",function(){++i===o.length&&f(a)}),r.targetElm=r.targetElm||n,r.render()};fx.unbind(window,"ready",e),function(e){var t=r[e];t&&t.apply(s,Array.prototype.slice.call(arguments,2))}("onpageload"),o=en.unique(function(t){var e,n=[];if(ge.ie&&ge.ie<11)return kp.initError("TinyMCE does not support the browser you are using. For a list of supported browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/"),[];if(t.types)return mx(t.types,function(e){n=n.concat(fx.select(e.selector))}),n;if(t.selector)return fx.select(t.selector);if(t.target)return[t.target];switch(t.mode){case"exact":0<(e=t.elements||"").length&&mx(dx(e),function(t){var e;(e=fx.get(t))?n.push(e):mx(document.forms,function(e){mx(e.elements,function(e){e.name===t&a
 mp;&(t="mce_editor_"+gx++,fx.setAttrib(e,"id",t),n.push(e))})})});break;case"textareas":case"specific_textareas":mx(fx.select("textarea"),function(e){t.editor_deselector&&l(e,t.editor_deselector)||t.editor_selector&&!l(e,t.editor_selector)||n.push(e)})}return n}(r)),r.types?mx(r.types,function(t){Lt.each(o,function(e){return!fx.is(e,t.selector)||(n(c(e),px({},r,t),e),!1)})}):(Lt.each(o,function(e){var t;(t=s.get(e.id))&&t.initialized&&!(t.getContainer()||t.getBody()).parentNode&&(xx(t),t.unbindAllNativeEvents(),t.destroy(!0),t.removed=!0,t=null)}),0===(o=Lt.grep(o,function(e){return!s.get(e.id)})).length?f([]):mx(o,function(e){var t;t=e,r.inline&&t.tagName.toLowerCase()in u?kp.initError("Could not initialize inline editor on invalid inline target element",e):n(c(e),r,e)}))};return s.settings=r,fx.bind(window,"ready",e),new he(function(t){n?t(n):f=function(e){t(e)
 }})},get:function(t){return 0===arguments.length?yx.slice(0):E.isString(t)?H.find(yx,function(e){return e.id===t}).getOr(null):E.isNumber(t)&&yx[t]?yx[t]:null},add:function(e){var t=this;return vx[e.id]===e||(null===t.get(e.id)&&("length"!==e.id&&(vx[e.id]=e),vx.push(e),yx.push(e)),Cx(!0),t.activeEditor=e,t.fire("AddEditor",{editor:e}),JC||(JC=function(){t.fire("BeforeUnload")},fx.bind(window,"beforeunload",JC))),e},createEditor:function(e,t){return this.add(new YC(e,t,this))},remove:function(e){var t,n,r=this;if(e)return E.isString(e)?(e=e.selector||e,void mx(fx.select(e),function(e){(n=r.get(e.id))&&r.remove(n)})):(n=e,E.isNull(r.get(n.id))?null:(xx(n)&&r.fire("RemoveEditor",{editor:n}),0===yx.length&&fx.unbind(window,"beforeunload",JC),n.remove(),Cx(0<yx.length),n));for(t=yx.length-1;0<=t;t--)r.remove(yx[t])},execCommand:function(e,t,n){var r=this.get(n);switch(e){cas
 e"mceAddEditor":return this.get(n)||new YC(n,this.settings,this).render(),!0;case"mceRemoveEditor":return r&&r.remove(),!0;case"mceToggleEditor":return r?r.isHidden()?r.show():r.hide():this.execCommand("mceAddEditor",0,n),!0}return!!this.activeEditor&&this.activeEditor.execCommand(e,t,n)},triggerSave:function(){mx(yx,function(e){e.save()})},addI18n:function(e,t){lx.add(e,t)},translate:function(e){return lx.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!==e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},Vm),QC.setup();var wx,Nx=QC;function Ex(n){return{walk:function(e,t){return Yh.walk(n,e,t)},split:_h.split,normalize:function(t){return rm.normalize(n,t).fold(V.constant(!1),function(e){return t.setStart(e.startContainer,e.startOffset),t.setEnd(e.endContainer,e.endOffset),!0})}}}(wx=Ex||(Ex={})).compareRange
 s=Gd.isEq,wx.getCaretRangeFromPoint=by.fromPoint,wx.getSelectedNode=ta,wx.getNode=na;var Sx,kx,Tx=Ex,Ax=Math.min,Rx=Math.max,Bx=Math.round,_x=function(e,t,n){var r,o,i,a,u,s;return r=t.x,o=t.y,i=e.w,a=e.h,u=t.w,s=t.h,"b"===(n=(n||"").split(""))[0]&&(o+=s),"r"===n[1]&&(r+=u),"c"===n[0]&&(o+=Bx(s/2)),"c"===n[1]&&(r+=Bx(u/2)),"b"===n[3]&&(o-=a),"r"===n[4]&&(r-=i),"c"===n[3]&&(o-=Bx(a/2)),"c"===n[4]&&(r-=Bx(i/2)),Dx(r,o,i,a)},Dx=function(e,t,n,r){return{x:e,y:t,w:n,h:r}},Ox={inflate:function(e,t,n){return Dx(e.x-t,e.y-n,e.w+2*t,e.h+2*n)},relativePosition:_x,findBestRelativePosition:function(e,t,n,r){var o,i;for(i=0;i<r.length;i++)if((o=_x(e,t,r[i])).x>=n.x&&o.x+o.w<=n.w+n.x&&o.y>=n.y&&o.y+o.h<=n.h+n.y)return r[i];return null},intersect:function(e,t){var n,r,o,i;return n=Rx(e.x,t.x),r=Rx(
 e.y,t.y),o=Ax(e.x+e.w,t.x+t.w),i=Ax(e.y+e.h,t.y+t.h),o-n<0||i-r<0?null:Dx(n,r,o-n,i-r)},clamp:function(e,t,n){var r,o,i,a,u,s,c,l,f,d;return u=e.x,s=e.y,c=e.x+e.w,l=e.y+e.h,f=t.x+t.w,d=t.y+t.h,r=Rx(0,t.x-u),o=Rx(0,t.y-s),i=Rx(0,c-f),a=Rx(0,l-d),u+=r,s+=o,n&&(c+=r,l+=o,u-=i,s-=a),Dx(u,s,(c-=i)-u,(l-=a)-s)},create:Dx,fromClientRect:function(e){return Dx(e.left,e.top,e.width,e.height)}},Px={},Lx={add:function(e,t){Px[e.toLowerCase()]=t},has:function(e){return!!Px[e.toLowerCase()]},get:function(e){var t=e.toLowerCase(),n=Px.hasOwnProperty(t)?Px[t]:null;if(null===n)throw new Error("Could not find module for type: "+e);return n},create:function(e,t){var n;if("string"==typeof e?(t=t||{}).type=e:e=(t=e).type,e=e.toLowerCase(),!(n=Px[e]))throw new Error("Could not find control by type: "+e);return(n=new n(t)).type=e,n}},Ix=Lt.each,Mx=Lt.extend,Fx=function(){};Fx.extend=Sx=function(n){var e,t,r,o=this.prototype,i=function(){var e,t,n;if(!kx&&amp
 ;(this.init&&this.init.apply(this,arguments),t=this.Mixins))for(e=t.length;e--;)(n=t[e]).init&&n.init.apply(this,arguments)},a=function(){return this},u=function(n,r){return function(){var e,t=this._super;return this._super=o[n],e=r.apply(this,arguments),this._super=t,e}};for(t in kx=!0,e=new this,kx=!1,n.Mixins&&(Ix(n.Mixins,function(e){for(var t in e)"init"!==t&&(n[t]=e[t])}),o.Mixins&&(n.Mixins=o.Mixins.concat(n.Mixins))),n.Methods&&Ix(n.Methods.split(","),function(e){n[e]=a}),n.Properties&&Ix(n.Properties.split(","),function(e){var t="_"+e;n[e]=function(e){return e!==undefined?(this[t]=e,this):this[t]}}),n.Statics&&Ix(n.Statics,function(e,t){i[t]=e}),n.Defaults&&o.Defaults&&(n.Defaults=Mx({},o.Defaults,n.Defaults)),n)"function"==typeof(r=n[t])&&o[t]?e[t]=u(t,r):e[t]=r;return i.prototype=e,(i.constructor=i).extend=Sx,i};var zx=Math.min,Ux=Math.
 max,qx=Math.round,Vx=function(e,n){var r,o,t,i;if(n=n||'"',null===e)return"null";if("string"==(t=typeof e))return o="\bb\tt\nn\ff\rr\"\"''\\\\",n+e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=o.indexOf(t))+1?"\\"+o.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e)})+n;if("object"===t){if(e.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(e)){for(r=0,o="[";r<e.length;r++)o+=(0<r?",":"")+Vx(e[r],n);return o+"]"}for(i in o="{",e)e.hasOwnProperty(i)&&(o+="function"!=typeof e[i]?(1<o.length?","+n:n)+i+n+":"+Vx(e[i],n):"");return o+"}"}return""+e},Hx={serialize:Vx,parse:function(e){try{return JSON.parse(e)}catch(t){}}},jx={callbacks:{},count:0,send:
 function(t){var n=this,r=di.DOM,o=t.count!==undefined?t.count:n.count,i="tinymce_jsonp_"+o;n.callbacks[o]=function(e){r.remove(i),delete n.callbacks[o],t.callback(e)},r.add(r.doc.body,"script",{id:i,src:t.url,type:"text/javascript"}),n.count++}},$x={send:function(e){var t,n=0,r=function(){!e.async||4===t.readyState||1e4<n++?(e.success&&n<1e4&&200===t.status?e.success.call(e.success_scope,""+t.responseText,t,e):e.error&&e.error.call(e.error_scope,1e4<n?"TIMED_OUT":"GENERAL",t,e),t=null):setTimeout(r,10)};if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=!1!==e.async,e.data=e.data||"",$x.fire("beforeInitialize",{settings:e}),t=new Rp){if(t.overrideMimeType&&t.overrideMimeType(e.content_type),t.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(t.withCredentials=!0
 ),e.content_type&&t.setRequestHeader("Content-Type",e.content_type),e.requestheaders&&Lt.each(e.requestheaders,function(e){t.setRequestHeader(e.key,e.value)}),t.setRequestHeader("X-Requested-With","XMLHttpRequest"),(t=$x.fire("beforeSend",{xhr:t,settings:e}).xhr).send(e.data),!e.async)return r();setTimeout(r,10)}}};Lt.extend($x,Vm);var Wx=Lt.extend,Kx=function(e){this.settings=Wx({},e),this.count=0};Kx.sendRPC=function(e){return(new Kx).send(e)},Kx.prototype={send:function(n){var r=n.error,o=n.success;(n=Wx(this.settings,n)).success=function(e,t){void 0===(e=Hx.parse(e))&&(e={error:"JSON Parse error."}),e.error?r.call(n.error_scope||n.scope,e.error,t):o.call(n.success_scope||n.scope,e.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=Hx.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",$x.send(n)}};var
  Xx,Yx=window.localStorage,Gx=Nx,Jx={geom:{Rect:Ox},util:{Promise:he,Delay:Ce,Tools:Lt,VK:kg,URI:PC,Class:Fx,EventDispatcher:zm,Observable:Vm,I18n:lx,XHR:$x,JSON:Hx,JSONRequest:Kx,JSONP:jx,LocalStorage:Yx,Color:function(e){var n={},u=0,s=0,c=0,t=function(e){var t;return"object"==typeof e?"r"in e?(u=e.r,s=e.g,c=e.b):"v"in e&&function(e,t,n){var r,o,i,a;if(e=(parseInt(e,10)||0)%360,t=parseInt(t,10)/100,n=parseInt(n,10)/100,t=Ux(0,zx(t,1)),n=Ux(0,zx(n,1)),0!==t){switch(r=e/60,i=(o=n*t)*(1-Math.abs(r%2-1)),a=n-o,Math.floor(r)){case 0:u=o,s=i,c=0;break;case 1:u=i,s=o,c=0;break;case 2:u=0,s=o,c=i;break;case 3:u=0,s=i,c=o;break;case 4:u=i,s=0,c=o;break;case 5:u=o,s=0,c=i;break;default:u=s=c=0}u=qx(255*(u+a)),s=qx(255*(s+a)),c=qx(255*(c+a))}else u=s=c=qx(255*n)}(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(u=parseInt(t[1],10),s=parseInt(t[2],10),c=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e
 ))?(u=parseInt(t[1],16),s=parseInt(t[2],16),c=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(u=parseInt(t[1]+t[1],16),s=parseInt(t[2]+t[2],16),c=parseInt(t[3]+t[3],16)),u=u<0?0:255<u?255:u,s=s<0?0:255<s?255:s,c=c<0?0:255<c?255:c,n};return e&&t(e),n.toRgb=function(){return{r:u,g:s,b:c}},n.toHsv=function(){return e=u,t=s,n=c,o=0,(i=zx(e/=255,zx(t/=255,n/=255)))===(a=Ux(e,Ux(t,n)))?{h:0,s:0,v:100*(o=i)}:(r=(a-i)/a,{h:qx(60*((e===i?3:n===i?1:5)-(e===i?t-n:n===i?e-t:n-e)/((o=a)-i))),s:qx(100*r),v:qx(100*o)});var e,t,n,r,o,i,a},n.toHex=function(){var e=function(e){return 1<(e=parseInt(e,10).toString(16)).length?e:"0"+e};return"#"+e(u)+e(s)+e(c)},n.parse=t,n}},dom:{EventUtils:Re,Sizzle:dt,DomQuery:en,TreeWalker:no,DOMUtils:di,ScriptLoader:vi,RangeUtils:Tx,Serializer:dy,ControlSelection:vy,BookmarkManager:py,Selection:tb,Event:Re.Event},html:{Styles:ti,Entities:Vo,Node:Gv,Schema:Zo,SaxParser:Fg,DomParser:uy,Writer:Hc,Seri
 alizer:jc},ui:{Factory:Lx},Env:ge,AddOnManager:Ci,Formatter:Pv,UndoManager:oh,EditorCommands:Mm,WindowManager:xp,NotificationManager:Cp,EditorObservable:Km,Shortcuts:tp,Editor:YC,FocusManager:ZC,EditorManager:Nx,DOM:di.DOM,ScriptLoader:vi.ScriptLoader,PluginManager:Ci.PluginManager,ThemeManager:Ci.ThemeManager,trim:Lt.trim,isArray:Lt.isArray,is:Lt.is,toArray:Lt.toArray,makeMap:Lt.makeMap,each:Lt.each,map:Lt.map,grep:Lt.grep,inArray:Lt.inArray,extend:Lt.extend,create:Lt.create,walk:Lt.walk,createNS:Lt.createNS,resolve:Lt.resolve,explode:Lt.explode,_addCacheSuffix:Lt._addCacheSuffix,isOpera:ge.opera,isWebKit:ge.webkit,isIE:ge.ie,isGecko:ge.gecko,isMac:ge.mac},Qx=Gx=Lt.extend(Gx,Jx);Xx=Qx,window.tinymce=Xx,window.tinyMCE=Xx,function(e){if("object"==typeof module)try{module.exports=e}catch(t){}}(Qx)}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// 4.8.0 (2018-06-27)
+!function(){"use strict";var e,t,n,r,o,i,a,u,s,c,l,f,d,m,g,p,h,v=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},q=function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,arguments))}},H=function(e){return function(){return e}},j=function(e){return e},b=function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var a=new Array(arguments.length-1),n=1;n<arguments.length;n++)a[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var o=a.concat(n);return i.apply(null,o)}},y=H(!1),C=H(!0),x=y,w=C,N=function(){return E},E=(r={fold:function(e,t){return e()},is:x,isSome:x,isNone:w,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:function(){ret
 urn null},getOrUndefined:function(){return undefined},or:n,orThunk:t,map:N,ap:N,each:function(){},bind:N,flatten:N,exists:x,forall:w,filter:N,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:H("none()")},Object.freeze&&Object.freeze(r),r),S=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:w,isNone:x,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return S(e(n))},ap:function(e){return e.fold(N,function(e){return S(e(n))})},each:function(e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:E},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(x,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},A={some:S,none:N,from:function(e){return null===e||e===undefi
 ned?E:S(e)}},T=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},k=T("string"),_=T("object"),R=T("array"),D=T("null"),B=T("boolean"),O=T("function"),P=T("number"),L=(o=Array.prototype.indexOf)===undefined?function(e,t){return X(e,t)}:function(e,t){return o.call(e,t)},I=function(e,t){return-1<L(e,t)},M=function(e,t){return K(e,t).isSome()},$=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var i=e[o];r[o]=t(i,o,e)}return r},F=function(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)},W=function(e,t){for(var n=[],r=[],o=0,i=e.length;o<i;o++){var a=e[o];(t(a,o,e)?n:r).push(a)}return{pass:n,fail:r}},U=function(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r
 ];t(i,r,e)&&n.push(i)}return n},z=function(e,t,n){return F(e,function(e){n=t(n,e)}),n},V=function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n,e))return A.some(o)}return A.none()},K=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t(e[n],n,e))return A.some(n);return A.none()},X=function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},Y=Array.prototype.push,G=function(e,t){return function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);Y.apply(t,e[n])}return t}($(e,t))},J=function(e,t){for(var n=0,r=e.length;n<r;++n)if(!0!==t(e[n],n,e))return!1;return!0},Q=Array.prototype.slice,Z=function(e,t){return U(e,function(e){return!I(t,e)})},ee=function(e){return 0===e.length?A.none():A.some(e[0])},te=function(e){return 0===e.length?A.none():A.some(e[e.length-1])},ne=O(Array.from)?Array.from:function(e){return Q.call(e)}
 ,re="undefined"!=typeof window?window:Function("return this;")(),oe=function(e,t){return function(e,t){for(var n=t!==undefined&&null!==t?t:re,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n}(e.split("."),t)},ie={getOrDie:function(e,t){var n=oe(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n}},ae=function(){return ie.getOrDie("URL")},ue={createObjectURL:function(e){return ae().createObjectURL(e)},revokeObjectURL:function(e){ae().revokeObjectURL(e)}},se=navigator,ce=se.userAgent,le=function(e){return"matchMedia"in window&&matchMedia(e).matches};d=/Android/.test(ce),a=(a=!(i=/WebKit/.test(ce))&&/MSIE/gi.test(ce)&&/Explorer/gi.test(se.appName))&&/MSIE (\w+)\./.exec(ce)[1],u=-1!==ce.indexOf("Trident/")&&(-1!==ce.indexOf("rv:")||-1!==se.appName.indexOf("Netscape"))&&11,s=-1!==ce
 .indexOf("Edge/")&&!a&&!u&&12,a=a||u||s,c=!i&&!u&&/Gecko/.test(ce),l=-1!==ce.indexOf("Mac"),f=/(iPad|iPhone)/.test(ce),m="FormData"in window&&"FileReader"in window&&"URL"in window&&!!ue.createObjectURL,g=le("only screen and (max-device-width: 480px)")&&(d||f),p=le("only screen and (min-width: 800px)")&&(d||f),h=-1!==ce.indexOf("Windows Phone"),s&&(i=!1);var fe,de,me,ge,pe,he,ve,be,ye,Ce,xe,we,Ne,Ee,Se,Te,ke,Ae,_e,Re={opera:!1,webkit:i,ie:a,gecko:c,mac:l,iOS:f,android:d,contentEditable:!f||m||534<=parseInt(ce.match(/AppleWebKit\/(\d*)/)[1],10),transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!==a,range:window.getSelection&&"Range"in window,documentMode:a&&!s?document.documentMode||7:10,fileApi:m,ceFalse:!1===a||8<a,cach
 eSuffix:null,container:null,overrideViewPort:null,experimentalShadowDom:!1,canHaveCSP:!1===a||11<a,desktop:!g&&!p,windowsPhone:h},De=window.Promise?window.Promise:function(){function r(e,t){return function(){e.apply(t,arguments)}}var e=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=function(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],l(e,r(o,this),r(u,this))},t=i.immediateFn||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,1)};function a(r){var o=this;null!==this._state?t(function(){var e=o._state?r.onFulfilled:r.onRejected;if(null!==e){var t;try{t=e(o._value)}catch(n){return void r.reject(n)}r.resolve(t)}else(o._state?r.resolve:r.reject)(o._value)}):this._deferreds.push(r)}function o
 (e){try{if(e===this)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if("function"==typeof t)return void l(r(t,e),r(o,this),r(u,this))}this._state=!0,this._value=e,s.call(this)}catch(n){u.call(this,n)}}function u(e){this._state=!1,this._value=e,s.call(this)}function s(){for(var e=0,t=this._deferreds.length;e<t;e++)a.call(this,this._deferreds[e]);this._deferreds=null}function c(e,t,n,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=r}function l(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(o){if(r)return;r=!0,n(o)}}return i.prototype["catch"]=function(e){return this.then(null,e)},i.prototype.then=function(n,r){var o=this;return new i(function(e,t){a.call(o,new c(n,r,e,t))})},i.all=function(){var s=Array.prototype.slice.
 call(1===arguments.length&&e(arguments[0])?arguments[0]:arguments);return new i(function(o,i){if(0===s.length)return o([]);var a=s.length;function u(t,e){try{if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if("function"==typeof n)return void n.call(e,function(e){u(t,e)},i)}s[t]=e,0==--a&&o(s)}catch(r){i(r)}}for(var e=0;e<s.length;e++)u(e,s[e])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(e){e(t)})},i.reject=function(n){return new i(function(e,t){t(n)})},i.race=function(o){return new i(function(e,t){for(var n=0,r=o.length;n<r;n++)o[n].then(e,t)})},i}(),Be=function(e,t){return"number"!=typeof t&&(t=0),setTimeout(e,t)},Oe=function(e,t){return"number"!=typeof t&&(t=1),setInterval(e,t)},Pe=function(t,n){var r,e;return(e=function(){var e=arguments;clearTimeout(r),r=Be(function(){t.apply(this,e)},n)}).stop=func
 tion(){clearTimeout(r)},e},Le={requestAnimationFrame:function(e,t){fe?fe.then(e):fe=new De(function(e){t||(t=document.body),function(e,t){var n,r=window.requestAnimationFrame,o=["ms","moz","webkit"];for(n=0;n<o.length&&!r;n++)r=window[o[n]+"RequestAnimationFrame"];r||(r=function(e){window.setTimeout(e,0)}),r(e,t)}(e,t)}).then(e)},setTimeout:Be,setInterval:Oe,setEditorTimeout:function(e,t,n){return Be(function(){e.removed||t()},n)},setEditorInterval:function(e,t,n){var r;return r=Oe(function(){e.removed?clearInterval(r):t()},n)},debounce:Pe,throttle:Pe,clearInterval:function(e){return clearInterval(e)},clearTimeout:function(e){return clearTimeout(e)}},Ie=/^(?:mouse|contextmenu)|click/,Me={keyLocation:1,layerX:1,layerY:1,returnValue:1,webkitMovementX:1,webkitMovementY:1,keyIdentifier:1},Fe=function(){return!1},Ue=function(){return!0},ze=function(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachE
 vent("on"+t,n)},Ve=function(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)},qe=function(e,t){var n,r,o,i,a,u,s=t||{};for(n in e)Me[n]||(s[n]=e[n]);if(s.target||(s.target=s.srcElement||document),Re.experimentalShadowDom&&(s.target=(r=e,o=s.target,a=o,(i=r.path)&&0<i.length&&(a=i[0]),r.composedPath&&(i=r.composedPath())&&0<i.length&&(a=i[0]),a)),e&&Ie.test(e.type)&&e.pageX===undefined&&e.clientX!==undefined){var c=s.target.ownerDocument||document,l=c.documentElement,f=c.body;s.pageX=e.clientX+(l&&l.scrollLeft||f&&f.scrollLeft||0)-(l&&l.clientLeft||f&&f.clientLeft||0),s.pageY=e.clientY+(l&&l.scrollTop||f&&f.scrollTop||0)-(l&&l.clientTop||f&&f.clientTop||0)}return s.preventDefault=function(){s.isDefaultPrevented=Ue,e&&(e.preventDefault?e.preventDefault():e.
 returnValue=!1)},s.stopPropagation=function(){s.isPropagationStopped=Ue,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},!(s.stopImmediatePropagation=function(){s.isImmediatePropagationStopped=Ue,s.stopPropagation()})==((u=s).isDefaultPrevented===Ue||u.isDefaultPrevented===Fe)&&(s.isDefaultPrevented=Fe,s.isPropagationStopped=Fe,s.isImmediatePropagationStopped=Fe),"undefined"==typeof s.metaKey&&(s.metaKey=!1),s},He=function(e,t,n){var r=e.document,o={type:"ready"};if(n.domLoaded)t(o);else{var i=function(){return"complete"===r.readyState||"interactive"===r.readyState&&r.body},a=function(){n.domLoaded||(n.domLoaded=!0,t(o))},u=function(){i()&&(Ve(r,"readystatechange",u),a())},s=function(){try{r.documentElement.doScroll("left")}catch(e){return void Le.setTimeout(s)}a()};!r.addEventListener||Re.ie&&Re.ie<11?(ze(r,"readystatechange",u),r.documentElement.doS
 croll&&e.self===e.top&&s()):i()?a():ze(e,"DOMContentLoaded",a),ze(e,"load",a)}},je=function(){var m,g,p,h,v,b=this,y={};g="mce-data-"+(+new Date).toString(32),h="onmouseenter"in document.documentElement,p="onfocusin"in document.documentElement,v={mouseenter:"mouseover",mouseleave:"mouseout"},m=1,b.domLoaded=!1,b.events=y;var C=function(e,t){var n,r,o,i,a=y[t];if(n=a&&a[e.type])for(r=0,o=n.length;r<o;r++)if((i=n[r])&&!1===i.func.call(i.scope,e)&&e.preventDefault(),e.isImmediatePropagationStopped())return};b.bind=function(e,t,n,r){var o,i,a,u,s,c,l,f=window,d=function(e){C(qe(e||f.event),o)};if(e&&3!==e.nodeType&&8!==e.nodeType){for(e[g]?o=e[g]:(o=m++,e[g]=o,y[o]={}),r=r||e,a=(t=t.split(" ")).length;a--;)c=d,s=l=!1,"DOMContentLoaded"===(u=t[a])&&(u="ready"),b.domLoaded&&"ready"===u&&"comple
 te"===e.readyState?n.call(r,qe({type:u})):(h||(s=v[u])&&(c=function(e){var t,n;if(t=e.currentTarget,(n=e.relatedTarget)&&t.contains)n=t.contains(n);else for(;n&&n!==t;)n=n.parentNode;n||((e=qe(e||f.event)).type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,C(e,o))}),p||"focusin"!==u&&"focusout"!==u||(l=!0,s="focusin"===u?"focus":"blur",c=function(e){(e=qe(e||f.event)).type="focus"===e.type?"focusin":"focusout",C(e,o)}),(i=y[o][u])?"ready"===u&&b.domLoaded?n({type:u}):i.push({func:n,scope:r}):(y[o][u]=i=[{func:n,scope:r}],i.fakeName=s,i.capture=l,i.nativeHandler=c,"ready"===u?He(e,c,b):ze(e,s||u,c,l)));return e=i=0,n}},b.unbind=function(e,t,n){var r,o,i,a,u,s;if(!e||3===e.nodeType||8===e.nodeType)return b;if(r=e[g]){if(s=y[r],t){for(i=(t=t.split(" ")).length;i--;)if(o=s[u=t[i]]){if(n)for(a=o
 .length;a--;)if(o[a].func===n){var c=o.nativeHandler,l=o.fakeName,f=o.capture;(o=o.slice(0,a).concat(o.slice(a+1))).nativeHandler=c,o.fakeName=l,o.capture=f,s[u]=o}n&&0!==o.length||(delete s[u],Ve(e,o.fakeName||u,o.nativeHandler,o.capture))}}else{for(u in s)o=s[u],Ve(e,o.fakeName||u,o.nativeHandler,o.capture);s={}}for(u in s)return b;delete y[r];try{delete e[g]}catch(d){e[g]=null}}return b},b.fire=function(e,t,n){var r;if(!e||3===e.nodeType||8===e.nodeType)return b;for((n=qe(null,n)).type=t,n.target=e;(r=e[g])&&C(n,r),(e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow)&&!n.isPropagationStopped(););return b},b.clean=function(e){var t,n,r=b.unbind;if(!e||3===e.nodeType||8===e.nodeType)return b;if(e[g]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),t=(n=e.getElementsByTagName("*")).length;t--;)(e=n[t])[g]&&r(e);return b},b.destroy=function(){y={}},b.cancel=function(e){return e&&a
 mp;(e.preventDefault(),e.stopImmediatePropagation()),!1}};je.Event=new je,je.Event.bind(window,"ready",function(){});var $e="sizzle"+-new Date,We=window.document,Ke=0,Xe=0,Ye=kt(),Ge=kt(),Je=kt(),Qe=function(e,t){return e===t&&(we=!0),0},Ze=typeof undefined,et={}.hasOwnProperty,tt=[],nt=tt.pop,rt=tt.push,ot=tt.push,it=tt.slice,at=tt.indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(this[t]===e)return t;return-1},ut="[\\x20\\t\\r\\n\\f]",st="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ct="\\["+ut+"*("+st+")(?:"+ut+"*([*^$|!~]?=)"+ut+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+st+"))|)"+ut+"*\\]",lt=":("+st+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ct+")*)|.*)\\)|)",ft=new RegExp("^"+ut+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ut+"+$&q
 uot;,"g"),dt=new RegExp("^"+ut+"*,"+ut+"*"),mt=new RegExp("^"+ut+"*([>+~]|"+ut+")"+ut+"*"),gt=new RegExp("="+ut+"*([^\\]'\"]*?)"+ut+"*\\]","g"),pt=new RegExp(lt),ht=new RegExp("^"+st+"$"),vt={ID:new RegExp("^#("+st+")"),CLASS:new RegExp("^\\.("+st+")"),TAG:new RegExp("^("+st+"|[*])"),ATTR:new RegExp("^"+ct),PSEUDO:new RegExp("^"+lt),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ut+"*(even|odd|(([+-]|)(\\d*)n|)"+ut+"*(?:([+-]|)"+ut+"*(\\d+)|))"+ut+"*\\)|)","i"),bool:new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:new RegExp("^"+ut+&qu
 ot;*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ut+"*((?:-\\d)?\\d*)"+ut+"*\\)|)(?=[^-]|$)","i")},bt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,Ct=/^[^{]+\{\s*\[native \w/,xt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,wt=/[+~]/,Nt=/'|\\/g,Et=new RegExp("\\\\([\\da-f]{1,6}"+ut+"?|("+ut+")|.)","ig"),St=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{ot.apply(tt=it.call(We.childNodes),We.childNodes),tt[We.childNodes.length].nodeType}catch(Kw){ot={apply:tt.length?function(e,t){rt.apply(e,it.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}var Tt=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m;if((t?t.ownerDocument||t:We)!==Ee&&Ne(t),n=n||[],!e||"string"!=typeof e)return n;if(1!==(u=(t=t||Ee).nodeType)&&9!==u)return[];if(Te&&!r){if(o=xt.exec(
 e))if(a=o[1]){if(9===u){if(!(i=t.getElementById(a))||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&_e(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return ot.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&me.getElementsByClassName)return ot.apply(n,t.getElementsByClassName(a)),n}if(me.qsa&&(!ke||!ke.test(e))){if(f=l=$e,d=t,m=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){for(c=ve(e),(l=t.getAttribute("id"))?f=l.replace(Nt,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",s=c.length;s--;)c[s]=f+Lt(c[s]);d=wt.test(e)&&Ot(t.parentNode)||t,m=c.join(",")}if(m)try{return ot.apply(n,d.querySelectorAll(m)),n}catch(g){}finally{l||t.removeAttribute("id")}}}return ye(e.replace(ft,"$1"),t,n,r)};function kt(){var r=[];return function e(t,n){return r.push(t+&quo
 t; ")>ge.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function At(e){return e[$e]=!0,e}function _t(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function Rt(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function Dt(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function Bt(a){return At(function(i){return i=+i,At(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function Ot(e){return e&&typeof e.getElementsByTagName!==Ze&&e}for(de in me=Tt.support={},he=Tt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},Ne=Tt.setDocument=fu
 nction(e){var t,s=e?e.ownerDocument||e:We,n=s.defaultView;return s!==Ee&&9===s.nodeType&&s.documentElement?(Se=(Ee=s).documentElement,Te=!he(s),n&&n!==function(e){try{return e.top}catch(t){}return null}(n)&&(n.addEventListener?n.addEventListener("unload",function(){Ne()},!1):n.attachEvent&&n.attachEvent("onunload",function(){Ne()})),me.attributes=!0,me.getElementsByTagName=!0,me.getElementsByClassName=Ct.test(s.getElementsByClassName),me.getById=!0,ge.find.ID=function(e,t){if(typeof t.getElementById!==Ze&&Te){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},ge.filter.ID=function(e){var t=e.replace(Et,St);return function(e){return e.getAttribute("id")===t}},ge.find.TAG=me.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==Ze)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&a
 mp;r.push(n);return r}return i},ge.find.CLASS=me.getElementsByClassName&&function(e,t){if(Te)return t.getElementsByClassName(e)},Ae=[],ke=[],me.disconnectedMatch=!0,ke=ke.length&&new RegExp(ke.join("|")),Ae=Ae.length&&new RegExp(Ae.join("|")),t=Ct.test(Se.compareDocumentPosition),_e=t||Ct.test(Se.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},Qe=t?function(e,t){if(e===t)return we=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!me.sortDetached&&t.compareDocumentPosition(e)===n?e===s||e.ownerDocument===We&&_e(We,e)?-1:t===s||t.ownerDocument===We&&_e(We,t)?1:xe?
 at.call(xe,e)-at.call(xe,t):0:4&n?-1:1)}:function(e,t){if(e===t)return we=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],u=[t];if(!o||!i)return e===s?-1:t===s?1:o?-1:i?1:xe?at.call(xe,e)-at.call(xe,t):0;if(o===i)return _t(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?_t(a[r],u[r]):a[r]===We?-1:u[r]===We?1:0},s):Ee},Tt.matches=function(e,t){return Tt(e,null,null,t)},Tt.matchesSelector=function(e,t){if((e.ownerDocument||e)!==Ee&&Ne(e),t=t.replace(gt,"='$1']"),me.matchesSelector&&Te&&(!Ae||!Ae.test(t))&&(!ke||!ke.test(t)))try{var n=(void 0).call(e,t);if(n||me.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(Kw){}return 0<Tt(t,Ee,null,[e]).length},Tt.contains=function(e,t){return(e.ownerDocument||e)!==Ee&&Ne(e),_e(e,t)},Tt.attr=function(e,t){(e.ownerDocument||e)!==Ee&&Ne(e);var n=ge.attrHandle[t.toLowerCase()],r=n&&et.
 call(ge.attrHandle,t.toLowerCase())?n(e,t,!Te):undefined;return r!==undefined?r:me.attributes||!Te?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},Tt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},Tt.uniqueSort=function(e){var t,n=[],r=0,o=0;if(we=!me.detectDuplicates,xe=!me.sortStable&&e.slice(0),e.sort(Qe),we){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return xe=null,e},pe=Tt.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=pe(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=pe(t);return n},(ge=Tt.selectors={cacheLength:50,createPseudo:At,match:vt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSib
 ling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Et,St),e[3]=(e[3]||e[4]||e[5]||"").replace(Et,St),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Tt.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Tt.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return vt.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&pt.test(n)&&(t=ve(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Et,St).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:func
 tion(e){var t=Ye[e+" "];return t||(t=new RegExp("(^|"+ut+")"+e+"("+ut+"|$)"))&&Ye(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Ze&&e.getAttribute("class")||"")})},ATTR:function(n,r,o){return function(e){var t=Tt.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===o:"!="===r?t!==o:"^="===r?o&&0===t.indexOf(o):"*="===r?o&&-1<t.indexOf(o):"$="===r?o&&t.slice(-o.length)===o:"~="===r?-1<(" "+t+" ").indexOf(o):"|="===r&&(t===o||t.slice(0,o.length+1)===o+"-"))}},CHILD:function(m,e,t,g,p){var h="nth"!==m.slice(0,3),v="last"!==m.slice(-4),b="of-type"===e;return 1===g&&0===p?function(e){return!!e.parentNode}:function(e,t,n){var r,o,i,a,u,s,c=h!
 ==v?"nextSibling":"previousSibling",l=e.parentNode,f=b&&e.nodeName.toLowerCase(),d=!n&&!b;if(l){if(h){for(;c;){for(i=e;i=i[c];)if(b?i.nodeName.toLowerCase()===f:1===i.nodeType)return!1;s=c="only"===m&&!s&&"nextSibling"}return!0}if(s=[v?l.firstChild:l.lastChild],v&&d){for(u=(r=(o=l[$e]||(l[$e]={}))[m]||[])[0]===Ke&&r[1],a=r[0]===Ke&&r[2],i=u&&l.childNodes[u];i=++u&&i&&i[c]||(a=u=0)||s.pop();)if(1===i.nodeType&&++a&&i===e){o[m]=[Ke,u,a];break}}else if(d&&(r=(e[$e]||(e[$e]={}))[m])&&r[0]===Ke)a=r[1];else for(;(i=++u&&i&&i[c]||(a=u=0)||s.pop())&&((b?i.nodeName.toLowerCase()!==f:1!==i.nodeType)||!++a||(d&&((i[$e]||(i[$e]={}))[m]=[Ke,a]),i!==e)););return(a-=p)===g||a%g==0&&0<=a/g}}},PSEUDO:function(e,i){var t,a=ge.pseudos[e]||ge.setFilters[e.toLowerCase()]||Tt.error("unsupported pseudo: &quot
 ;+e);return a[$e]?a(i):1<a.length?(t=[e,e,"",i],ge.setFilters.hasOwnProperty(e.toLowerCase())?At(function(e,t){for(var n,r=a(e,i),o=r.length;o--;)e[n=at.call(e,r[o])]=!(t[n]=r[o])}):function(e){return a(e,0,t)}):a}},pseudos:{not:At(function(e){var r=[],o=[],u=be(e.replace(ft,"$1"));return u[$e]?At(function(e,t,n,r){for(var o,i=u(e,null,r,[]),a=e.length;a--;)(o=i[a])&&(e[a]=!(t[a]=o))}):function(e,t,n){return r[0]=e,u(r,null,n,o),!o.pop()}}),has:At(function(t){return function(e){return 0<Tt(t,e).length}}),contains:At(function(t){return t=t.replace(Et,St),function(e){return-1<(e.textContent||e.innerText||pe(e)).indexOf(t)}}),lang:At(function(n){return ht.test(n||"")||Tt.error("unsupported lang: "+n),n=n.replace(Et,St).toLowerCase(),function(e){var t;do{if(t=Te?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&amp
 ;1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===Se},focus:function(e){return e===Ee.activeElement&&(!Ee.hasFocus||Ee.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!ge.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return bt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},
 text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:Bt(function(){return[0]}),last:Bt(function(e,t){return[t-1]}),eq:Bt(function(e,t,n){return[n<0?n+t:n]}),even:Bt(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:Bt(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:Bt(function(e,t,n){for(var r=n<0?n+t:n;0<=--r;)e.push(r);return e}),gt:Bt(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=ge.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})ge.pseudos[de]=Rt(de);for(de in{submit:!0,reset:!0})ge.pseudos[de]=Dt(de);function Pt(){}function Lt(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function It(a,e,t){var u=e.dir,s=t&&"parentNode"===u,c=Xe++;return e.first?function(e,t,n){for(;e=e[u];)if(1===e.nodeType||
 s)return a(e,t,n)}:function(e,t,n){var r,o,i=[Ke,c];if(n){for(;e=e[u];)if((1===e.nodeType||s)&&a(e,t,n))return!0}else for(;e=e[u];)if(1===e.nodeType||s){if((r=(o=e[$e]||(e[$e]={}))[u])&&r[0]===Ke&&r[1]===c)return i[2]=r[2];if((o[u]=i)[2]=a(e,t,n))return!0}}}function Mt(o){return 1<o.length?function(e,t,n){for(var r=o.length;r--;)if(!o[r](e,t,n))return!1;return!0}:o[0]}function Ft(e,t,n,r,o){for(var i,a=[],u=0,s=e.length,c=null!=t;u<s;u++)(i=e[u])&&(n&&!n(i,r,o)||(a.push(i),c&&t.push(u)));return a}function Ut(m,g,p,h,v,e){return h&&!h[$e]&&(h=Ut(h)),v&&!v[$e]&&(v=Ut(v,e)),At(function(e,t,n,r){var o,i,a,u=[],s=[],c=t.length,l=e||function(e,t,n){for(var r=0,o=t.length;r<o;r++)Tt(e,t[r],n);return n}(g||"*",n.nodeType?[n]:n,[]),f=!m||!e&&g?l:Ft(l,u,m,n,r),d=p?v||(e?m:c||h)?[]:t:f;if(p&&p(f,d,n,r),h)for(o=Ft(d,s),h(o,[],n,r),i=o.length;i--;)(a=o[i])&&(d[s[i]]=!(f[s[i]
 ]=a));if(e){if(v||m){if(v){for(o=[],i=d.length;i--;)(a=d[i])&&o.push(f[i]=a);v(null,d=[],o,r)}for(i=d.length;i--;)(a=d[i])&&-1<(o=v?at.call(e,a):u[i])&&(e[o]=!(t[o]=a))}}else d=Ft(d===t?d.splice(c,d.length):d),v?v(null,t,d,r):ot.apply(t,d)})}function zt(e){for(var r,t,n,o=e.length,i=ge.relative[e[0].type],a=i||ge.relative[" "],u=i?1:0,s=It(function(e){return e===r},a,!0),c=It(function(e){return-1<at.call(r,e)},a,!0),l=[function(e,t,n){return!i&&(n||t!==Ce)||((r=t).nodeType?s(e,t,n):c(e,t,n))}];u<o;u++)if(t=ge.relative[e[u].type])l=[It(Mt(l),t)];else{if((t=ge.filter[e[u].type].apply(null,e[u].matches))[$e]){for(n=++u;n<o&&!ge.relative[e[n].type];n++);return Ut(1<u&&Mt(l),1<u&&Lt(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(ft,"$1"),t,u<n&&zt(e.slice(u,n)),n<o&&zt(e=e.slice(n)),n<o&&Lt(e))}l.push(t)}return Mt(l
 )}Pt.prototype=ge.filters=ge.pseudos,ge.setFilters=new Pt,ve=Tt.tokenize=function(e,t){var n,r,o,i,a,u,s,c=Ge[e+" "];if(c)return t?0:c.slice(0);for(a=e,u=[],s=ge.preFilter;a;){for(i in n&&!(r=dt.exec(a))||(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=mt.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(ft," ")}),a=a.slice(n.length)),ge.filter)!(r=vt[i].exec(a))||s[i]&&!(r=s[i](r))||(n=r.shift(),o.push({value:n,type:i,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?Tt.error(e):Ge(e,u).slice(0)},be=Tt.compile=function(e,t){var n,h,v,b,y,r,o=[],i=[],a=Je[e+" "];if(!a){for(t||(t=ve(e)),n=t.length;n--;)(a=zt(t[n]))[$e]?o.push(a):i.push(a);(a=Je(e,(h=i,b=0<(v=o).length,y=0<h.length,r=function(e,t,n,r,o){var i,a,u,s=0,c="0",l=e&&[],f=[],d=Ce,m=e||y&&ge.find.TAG("*",o),g=Ke+=null==d?1:Math.random()||.1,p=m.length;for(o&&(Ce=t!==Ee&&t);c!==p&
 amp;&null!=(i=m[c]);c++){if(y&&i){for(a=0;u=h[a++];)if(u(i,t,n)){r.push(i);break}o&&(Ke=g)}b&&((i=!u&&i)&&s--,e&&l.push(i))}if(s+=c,b&&c!==s){for(a=0;u=v[a++];)u(l,f,t,n);if(e){if(0<s)for(;c--;)l[c]||f[c]||(f[c]=nt.call(r));f=Ft(f)}ot.apply(r,f),o&&!e&&0<f.length&&1<s+v.length&&Tt.uniqueSort(r)}return o&&(Ke=g,Ce=d),l},b?At(r):r))).selector=e}return a},ye=Tt.select=function(e,t,n,r){var o,i,a,u,s,c="function"==typeof e&&e,l=!r&&ve(e=c.selector||e);if(n=n||[],1===l.length){if(2<(i=l[0]=l[0].slice(0)).length&&"ID"===(a=i[0]).type&&me.getById&&9===t.nodeType&&Te&&ge.relative[i[1].type]){if(!(t=(ge.find.ID(a.matches[0].replace(Et,St),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=vt.needsContext.test(e)?0:i.length;o--&&(a=i[o],!ge.relative[u=a.type]);)i
 f((s=ge.find[u])&&(r=s(a.matches[0].replace(Et,St),wt.test(i[0].type)&&Ot(t.parentNode)||t))){if(i.splice(o,1),!(e=r.length&&Lt(i)))return ot.apply(n,r),n;break}}return(c||be(e,l))(r,t,!Te,n,wt.test(e)&&Ot(t.parentNode)||t),n},me.sortStable=$e.split("").sort(Qe).join("")===$e,me.detectDuplicates=!!we,Ne(),me.sortDetached=!0;var Vt=Array.isArray,qt=function(e,t,n){var r,o;if(!e)return 0;if(n=n||e,e.length!==undefined){for(r=0,o=e.length;r<o;r++)if(!1===t.call(n,e[r],r,e))return 0}else for(r in e)if(e.hasOwnProperty(r)&&!1===t.call(n,e[r],r,e))return 0;return 1},Ht=function(e,t,n){var r,o;for(r=0,o=e.length;r<o;r++)if(t.call(n,e[r],r,e))return r;return-1},jt={isArray:Vt,toArray:function(e){var t,n,r=e;if(!Vt(e))for(r=[],t=0,n=e.length;t<n;t++)r[t]=e[t];return r},each:qt,map:function(n,r){var o=[];return qt(n,function(e,t){o.push(r(e,t,n))}),o},filter:function(n,r){var o=[];return qt(n,function(e,t){r&&!r(e,t,
 n)||o.push(e)}),o},indexOf:function(e,t){var n,r;if(e)for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},reduce:function(e,t,n,r){var o=0;for(arguments.length<3&&(n=e[0]);o<e.length;o++)n=t.call(r,n,e[o],o);return n},findIndex:Ht,find:function(e,t,n){var r=Ht(e,t,n);return-1!==r?e[r]:undefined},last:function(e){return e[e.length-1]}},$t=/^\s*|\s*$/g,Wt=function(e){return null===e||e===undefined?"":(""+e).replace($t,"")},Kt=function(e,t){return t?!("array"!==t||!jt.isArray(e))||typeof e===t:e!==undefined},Xt=function(e,n,r,o){o=o||this,e&&(r&&(e=e[r]),jt.each(e,function(e,t){if(!1===n.call(o,e,t,r))return!1;Xt(e,n,r,o)}))},Yt={trim:Wt,isArray:jt.isArray,is:Kt,toArray:jt.toArray,makeMap:function(e,t,n){var r;for(t=t||",","string"==typeof(e=e||[])&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n},each:jt.each,map:jt.map,grep:jt.filter,inArray:jt.indexOf,hasOwn:function
 (e,t){return Object.prototype.hasOwnProperty.call(e,t)},extend:function(e,t){for(var n,r,o,i=[],a=2;a<arguments.length;a++)i[a-2]=arguments[a];var u,s=arguments;for(n=1,r=s.length;n<r;n++)for(o in t=s[n])t.hasOwnProperty(o)&&(u=t[o])!==undefined&&(e[o]=u);return e},create:function(e,t,n){var r,o,i,a,u,s=this,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),i=e[3].match(/(^|\.)(\w+)$/i)[2],!(o=s.createNS(e[3].replace(/\.\w+$/,""),n))[i]){if("static"===e[2])return o[i]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[i]));t[i]||(t[i]=function(){},c=1),o[i]=t[i],s.extend(o[i].prototype,t),e[5]&&(r=s.resolve(e[5]).prototype,a=e[5].match(/\.(\w+)$/i)[1],u=o[i],o[i]=c?function(){return r[a].apply(this,arguments)}:function(){return this.parent=r[a],u.apply(this,arguments)},o[i].prototype[i]=o[i],s.each(r,function(e,t){o[i].prototype[t]=r[t]}),s.each(t,function(e,t){r[t]?o[i].prototype[t]=function(){return this.parent=r[t],e.apply
 (this,arguments)}:t!==i&&(o[i].prototype[t]=e)})),s.each(t["static"],function(e,t){o[i][t]=e})}},walk:Xt,createNS:function(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)t[r=e[n]]||(t[r]={}),t=t[r];return t},resolve:function(e,t){var n,r;for(t=t||window,n=0,r=(e=e.split(".")).length;n<r&&(t=t[e[n]]);n++);return t},explode:function(e,t){return!e||Kt(e,"array")?e:jt.map(e.split(t||","),Wt)},_addCacheSuffix:function(e){var t=Re.cacheSuffix;return t&&(e+=(-1===e.indexOf("?")?"?":"&")+t),e}},Gt=document,Jt=Array.prototype.push,Qt=Array.prototype.slice,Zt=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,en=je.Event,tn=Yt.makeMap("children,contents,next,prev"),nn=function(e){return void 0!==e},rn=function(e){return"string"==typeof e},on=function(e,t){var n,r,o;for(o=(t=t||Gt).createElement("div"),n=t.createDocumentFragment(),o
 .innerHTML=e;r=o.firstChild;)n.appendChild(r);return n},an=function(e,t,n,r){var o;if(rn(t))t=on(t,Cn(e[0]));else if(t.length&&!t.nodeType){if(t=pn.makeArray(t),r)for(o=t.length-1;0<=o;o--)an(e,t[o],n,r);else for(o=0;o<t.length;o++)an(e,t[o],n,r);return e}if(t.nodeType)for(o=e.length;o--;)n.call(e[o],t);return e},un=function(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")},sn=function(e,t,n){var r,o;return t=pn(t)[0],e.each(function(){var e=this;n&&r===e.parentNode||(r=e.parentNode,o=t.cloneNode(!1),e.parentNode.insertBefore(o,e)),o.appendChild(e)}),e},cn=Yt.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),ln=Yt.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),fn={"for":"htmlFor","class":"className",readonly:"read
 Only"},dn={"float":"cssFloat"},mn={},gn={},pn=function(e,t){return new pn.fn.init(e,t)},hn=/^\s*|\s*$/g,vn=function(e){return null===e||e===undefined?"":(""+e).replace(hn,"")},bn=function(e,t){var n,r,o,i;if(e)if((n=e.length)===undefined){for(r in e)if(e.hasOwnProperty(r)&&(i=e[r],!1===t.call(i,r,i)))break}else for(o=0;o<n&&(i=e[o],!1!==t.call(i,o,i));o++);return e},yn=function(e,n){var r=[];return bn(e,function(e,t){n(t,e)&&r.push(t)}),r},Cn=function(e){return e?9===e.nodeType?e:e.ownerDocument:Gt};pn.fn=pn.prototype={constructor:pn,selector:"",context:null,length:0,init:function(e,t){var n,r,o=this;if(!e)return o;if(e.nodeType)return o.context=o[0]=e,o.length=1,o;if(t&&t.nodeType)o.context=t;else{if(t)return pn(e).attr(t);o.context=t=document}if(rn(e)){if(!(n="<"===(o.selector=e).charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,
 null]:Zt.exec(e)))return pn(t).find(e);if(n[1])for(r=on(e,Cn(t)).firstChild;r;)Jt.call(o,r),r=r.nextSibling;else{if(!(r=Cn(t).getElementById(n[2])))return o;if(r.id!==n[2])return o.find(e);o.length=1,o[0]=r}}else this.add(e,!1);return o},toArray:function(){return Yt.toArray(this)},add:function(e,t){var n,r,o=this;if(rn(e))return o.add(pn(e));if(!1!==t)for(n=pn.unique(o.toArray().concat(pn.makeArray(e))),o.length=n.length,r=0;r<n.length;r++)o[r]=n[r];else Jt.apply(o,pn.makeArray(e));return o},attr:function(t,n){var e,r=this;if("object"==typeof t)bn(t,function(e,t){r.attr(e,t)});else{if(!nn(n)){if(r[0]&&1===r[0].nodeType){if((e=mn[t])&&e.get)return e.get(r[0],t);if(ln[t])return r.prop(t)?t:undefined;null===(n=r[0].getAttribute(t,2))&&(n=undefined)}return n}this.each(function(){var e;if(1===this.nodeType){if((e=mn[t])&&e.set)return void e.set(this,n);null===n?this.removeAttribute(t,2):this.setAttribute(t,n,2)}})}return r},removeAttr:function
 (e){return this.attr(e,null)},prop:function(e,t){var n=this;if("object"==typeof(e=fn[e]||e))bn(e,function(e,t){n.prop(e,t)});else{if(!nn(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1===this.nodeType&&(this[e]=t)})}return n},css:function(n,r){var e,o,i=this,t=function(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})},a=function(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})};if("object"==typeof n)bn(n,function(e,t){i.css(e,t)});else if(nn(r))n=t(n),"number"!=typeof r||cn[n]||(r=r.toString()+"px"),i.each(function(){var e=this.style;if((o=gn[n])&&o.set)o.set(this,r);else{try{this.style[dn[n]||n]=r}catch(t){}null!==r&&""!==r||(e.removeProperty?e.removeProperty(a(n)):e.removeAttribute(n))}});else{if(e=i[0],(o=gn[n])&&o.get)return o.get(e);if(!e.ownerDocument.defaultView)return e.currentStyle?e.currentStyle[t(n)]:"";tr
 y{return e.ownerDocument.defaultView.getComputedStyle(e,null).getPropertyValue(a(n))}catch(u){return undefined}}return i},remove:function(){for(var e,t=this.length;t--;)e=this[t],en.clean(e),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var e,t=this.length;t--;)for(e=this[t];e.firstChild;)e.removeChild(e.firstChild);return this},html:function(e){var t,n=this;if(nn(e)){t=n.length;try{for(;t--;)n[t].innerHTML=e}catch(r){pn(n[t]).empty().append(e)}return n}return n[0]?n[0].innerHTML:""},text:function(e){var t,n=this;if(nn(e)){for(t=n.length;t--;)"innerText"in n[t]?n[t].innerText=e:n[0].textContent=e;return n}return n[0]?n[0].innerText||n[0].textContent:""},append:function(){return an(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.appendChild(e)})},prepend:function(){return an(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType
 )&&this.insertBefore(e,this.firstChild)},!0)},before:function(){return this[0]&&this[0].parentNode?an(this,arguments,function(e){this.parentNode.insertBefore(e,this)}):this},after:function(){return this[0]&&this[0].parentNode?an(this,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):this},appendTo:function(e){return pn(e).append(this),this},prependTo:function(e){return pn(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return sn(this,e)},wrapAll:function(e){return sn(this,e,!0)},wrapInner:function(e){return this.each(function(){pn(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){pn(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),pn(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(o,i){var e=t
 his;return"string"!=typeof o||(-1!==o.indexOf(" ")?bn(o.split(" "),function(){e.toggleClass(this,i)}):e.each(function(e,t){var n,r;(r=un(t,o))!==i&&(n=t.className,r?t.className=vn((" "+n+" ").replace(" "+o+" "," ")):t.className+=n?" "+o:o)})),e},hasClass:function(e){return un(this[0],e)},each:function(e){return bn(this,e)},on:function(e,t){return this.each(function(){en.bind(this,e,t)})},off:function(e,t){return this.each(function(){en.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?en.fire(this,e.type,e):en.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new pn(Qt.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return thi
 s.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;t<n;t++)pn.find(e,this[t],r);return pn(r)},filter:function(n){return pn("function"==typeof n?yn(this.toArray(),function(e,t){return n(t,e)}):pn.filter(n,this.toArray()))},closest:function(n){var r=[];return n instanceof pn&&(n=n[0]),this.each(function(e,t){for(;t;){if("string"==typeof n&&pn(t).is(n)){r.push(t);break}if(t===n){r.push(t);break}t=t.parentNode}}),pn(r)},offset:function(e){var t,n,r,o,i=0,a=0;return e?this.css(e):((t=this[0])&&(r=(n=t.ownerDocument).documentElement,t.getBoundingClientRect&&(i=(o=t.getBoundingClientRect()).left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,a=o.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:a})},push:Jt,sort:[].sort,splice:[].splice},Yt.extend(pn,{extend:Yt.extend,makeArray:function(e){return(t=e)&&t===t.window||e.nodeType?[e]:Yt.toArray(e);var t},inArray:function(e,t){var n;if(t.indexOf)return t.inde
 xOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1},isArray:Yt.isArray,each:bn,trim:vn,grep:yn,find:Tt,expr:Tt.selectors,unique:Tt.uniqueSort,text:Tt.getText,contains:Tt.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!==t[r].nodeType&&t.splice(r,1);return t=1===t.length?pn.find.matchesSelector(t[0],e)?[t[0]]:[]:pn.find.matches(e,t)}});var xn=function(e,t,n){var r=[],o=e[t];for("string"!=typeof n&&n instanceof pn&&(n=n[0]);o&&9!==o.nodeType;){if(n!==undefined){if(o===n)break;if("string"==typeof n&&pn(o).is(n))break}1===o.nodeType&&r.push(o),o=o[t]}return r},wn=function(e,t,n,r){var o=[];for(r instanceof pn&&(r=r[0]);e;e=e[t])if(!n||e.nodeType===n){if(r!==undefined){if(e===r)break;if("string"==typeof r&&pn(e).is(r))break}o.push(e)}return o},Nn=function(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType===n)return e;return null};bn({parent
 :function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xn(e,"parentNode")},next:function(e){return Nn(e,"nextSibling",1)},prev:function(e){return Nn(e,"previousSibling",1)},children:function(e){return wn(e.firstChild,"nextSibling",1)},contents:function(e){return Yt.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,r){pn.fn[e]=function(t){var n=[];return this.each(function(){var e=r.call(n,this,t,n);e&&(pn.isArray(e)?n.push.apply(n,e):n.push(e))}),1<this.length&&(tn[e]||(n=pn.unique(n)),0===e.indexOf("parents")&&(n=n.reverse())),n=pn(n),t?n.filter(t):n}}),bn({parentsUntil:function(e,t){return xn(e,"parentNode",t)},nextUntil:function(e,t){return wn(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return wn(e,"previousSibling",1,t).slice(1)}},function(r,o){pn.fn[r]=fu
 nction(t,e){var n=[];return this.each(function(){var e=o.call(n,this,t,n);e&&(pn.isArray(e)?n.push.apply(n,e):n.push(e))}),1<this.length&&(n=pn.unique(n),0!==r.indexOf("parents")&&"prevUntil"!==r||(n=n.reverse())),n=pn(n),e?n.filter(e):n}}),pn.fn.is=function(e){return!!e&&0<this.filter(e).length},pn.fn.init.prototype=pn.fn,pn.overrideDefaults=function(n){var r,o=function(e,t){return r=r||n(),0===arguments.length&&(e=r.element),t||(t=r.context),new o.fn.init(e,t)};return pn.extend(o,this),o};var En=function(n,r,e){bn(e,function(e,t){n[e]=n[e]||{},n[e][r]=t})};Re.ie&&Re.ie<8&&(En(mn,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?undefined:t},size:function(e){var t=e.size;return 20===t?undefined:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?undefined:t}}),En(mn,"set",{"class":function(
 e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),Re.ie&&Re.ie<9&&(dn["float"]="styleFloat",En(gn,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),pn.attrHooks=mn,pn.cssHooks=gn;var Sn=function(n){var r,o=!1;return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o||(o=!0,r=n.apply(null,e)),r}},Tn=function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.test(t))return r}return undefined}(e,t);if(!n)return{major:0,minor:0};var r=function(e){return Number(t.replace(n,"$"+e))};return An(r(1),r(2))},kn=function(){return An(0,0)},An=function(e,t){return{major:e,minor:t}},_n={nu:An,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?kn():Tn(e,n)},unknown:kn},Rn="Firefox",Dn=function(e,t){return function(){retu
 rn t===e}},Bn=function(e){var t=e.current;return{current:t,version:e.version,isEdge:Dn("Edge",t),isChrome:Dn("Chrome",t),isIE:Dn("IE",t),isOpera:Dn("Opera",t),isFirefox:Dn(Rn,t),isSafari:Dn("Safari",t)}},On={unknown:function(){return Bn({current:undefined,version:_n.unknown()})},nu:Bn,edge:H("Edge"),chrome:H("Chrome"),ie:H("IE"),opera:H("Opera"),firefox:H(Rn),safari:H("Safari")},Pn="Windows",Ln="Android",In="Solaris",Mn="FreeBSD",Fn=function(e,t){return function(){return t===e}},Un=function(e){var t=e.current;return{current:t,version:e.version,isWindows:Fn(Pn,t),isiOS:Fn("iOS",t),isAndroid:Fn(Ln,t),isOSX:Fn("OSX",t),isLinux:Fn("Linux",t),isSolaris:Fn(In,t),isFreeBSD:Fn(Mn,t)}},zn={unknown:function(){return Un({current:undefined,version:_n.unknown()})},nu:Un,windows:H(Pn),ios:H("iOS"),android:H(Ln),linux:H(
 "Linux"),osx:H("OSX"),solaris:H(In),freebsd:H(Mn)},Vn=function(e,t){var n=String(t).toLowerCase();return V(e,function(e){return e.search(n)})},qn=function(e,n){return Vn(e,n).map(function(e){var t=_n.detect(e.versionRegexes,n);return{current:e.name,version:t}})},Hn=function(e,n){return Vn(e,n).map(function(e){var t=_n.detect(e.versionRegexes,n);return{current:e.name,version:t}})},jn=function(e,t){return-1!==e.indexOf(t)},$n=function(e){return e.replace(/^\s+|\s+$/g,"")},Wn=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Kn=function(t){return function(e){return jn(e,t)}},Xn=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return jn(e,"edge/")&&jn(e,"chrome")&&jn(e,"safari")&&jn(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Wn],search:function(e){return jn(e,"chrome")&&!jn(e,"chromeframe&q
 uot;)}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return jn(e,"msie")||jn(e,"trident")}},{name:"Opera",versionRegexes:[Wn,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Kn("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Kn("firefox")},{name:"Safari",versionRegexes:[Wn,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(jn(e,"safari")||jn(e,"mobile/"))&&jn(e,"applewebkit")}}],Yn=[{name:"Windows",search:Kn("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return jn(e,"iphone")||jn(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Kn("android"
 ),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Kn("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Kn("linux"),versionRegexes:[]},{name:"Solaris",search:Kn("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Kn("freebsd"),versionRegexes:[]}],Gn={browsers:H(Xn),oses:H(Yn)},Jn=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=Gn.browsers(),m=Gn.oses(),g=qn(d,e).fold(On.unknown,On.nu),p=Hn(m,e).fold(zn.unknown,zn.nu);return{browser:g,os:p,deviceType:(n=g,r=e,o=(t=p).isiOS()&&!0===/ipad/i.test(r),i=t.isiOS()&&!o,a=t.isAndroid()&&3===t.version.major,u=t.isAndroid()&&4===t.version.major,s=o||a||u&&!0===/mobile/i.test(r),c=t.isiOS()||t.isAndroid(),l=c&&!s,f=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(r),{isiPad:H(o),isiPhone:H(i),isTablet:H(s),isPhone:H(l),isTouch:H(c),isAndroid:t.isAndroid,isiOS:t.i
 siOS,isWebView:H(f)})}},Qn={detect:Sn(function(){var e=navigator.userAgent;return Jn(e)})},Zn=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:H(e)}},er={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return Zn(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return Zn(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return Zn(n)},fromDom:Zn,fromPoint:function(e,t,n){var r=e.dom();return A.from(r.elementFromPoint(t,n)).map(Zn)}},tr={ATTRIBUTE:Node.ATTRIBUTE_NODE,CDATA_SECTION:Node.CDATA_SECTION_NODE,COMMENT:Node.COMMENT_NODE,DOCUMENT:Node.DOCUMENT_NODE,DOCUMENT_TYPE:Node.DOCUMENT_TYPE_NODE,DOCUMENT_FRAGMENT:Node.DOCUMENT_FRAGMENT_NODE,ELEMENT:Node.ELEMENT_NODE,TEXT:Node.TEX
 T_NODE,PROCESSING_INSTRUCTION:Node.PROCESSING_INSTRUCTION_NODE,ENTITY_REFERENCE:Node.ENTITY_REFERENCE_NODE,ENTITY:Node.ENTITY_NODE,NOTATION:Node.NOTATION_NODE},nr=function(e){return e.dom().nodeName.toLowerCase()},rr=function(e){return e.dom().nodeType},or=function(t){return function(e){return rr(e)===t}},ir=or(tr.ELEMENT),ar=or(tr.TEXT),ur=or(tr.DOCUMENT),sr={name:nr,type:rr,value:function(e){return e.dom().nodeValue},isElement:ir,isText:ar,isDocument:ur,isComment:function(e){return rr(e)===tr.COMMENT||"#comment"===nr(e)}},cr=Object.keys,lr=function(e,t){for(var n=cr(e),r=0,o=n.length;r<o;r++){var i=n[r];t(e[i],i,e)}},fr=function(e,r){return dr(e,function(e,t,n){return{k:t,v:r(e,t,n)}})},dr=function(r,o){var i={};return lr(r,function(e,t){var n=o(e,t,r);i[n.k]=n.v}),i},mr=function(e,t,n){if(!(k(n)||B(n)||P(n)))throw console.error("Invalid call to Attr.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simpl
 e");e.setAttribute(t,n+"")},gr=function(e,t,n){mr(e.dom(),t,n)},pr=function(e,t){var n=e.dom().getAttribute(t);return null===n?undefined:n},hr=function(e,t){var n=e.dom();return!(!n||!n.hasAttribute)&&n.hasAttribute(t)},vr={clone:function(e){return z(e.dom().attributes,function(e,t){return e[t.name]=t.value,e},{})},set:gr,setAll:function(e,t){var n=e.dom();lr(t,function(e,t){mr(n,t,e)})},get:pr,has:hr,remove:function(e,t){e.dom().removeAttribute(t)},hasNone:function(e){var t=e.dom().attributes;return t===undefined||null===t||0===t.length},transfer:function(o,i,e){sr.isElement(o)&&sr.isElement(i)&&F(e,function(e){var t,n,r;n=i,hr(t=o,r=e)&&!hr(n,r)&&gr(n,r,pr(t,r))})}},br=Sn(function(){return yr(er.fromDom(document))}),yr=function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return er.fromDom(t)},Cr={body:br,getBody:yr,inBody:function(e){var t=sr.isText(e)?e.dom().parentNode:e.dom();
 return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}},xr=function(e){return e.style!==undefined},wr=function(e,t,n){if(!k(n))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element ",e),new Error("CSS value must be a string: "+n);xr(e)&&e.style.setProperty(t,n)},Nr=function(e,t){return xr(e)?e.style.getPropertyValue(t):""},Er=function(e,t){var n=e.dom(),r=Nr(n,t);return A.from(r).filter(function(e){return 0<e.length})},Sr=function(e,t){var n=e.dom();lr(t,function(e,t){wr(n,t,e)})},Tr=function(e,t){var n=e.dom(),r=window.getComputedStyle(n).getPropertyValue(t),o=""!==r||Cr.inBody(e)?r:Nr(n,t);return null===o?undefined:o},kr=Er,Ar=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Exp
 ected "['+t.length+']", got '+n.length+" arguments");var r={};return F(t,function(e,t){r[e]=H(n[t])}),r}},_r=function(e,t){for(var n=[],r=function(e){return n.push(e),t(e)},o=t(e);(o=o.bind(r)).isSome(););return n},Rr=function(){return ie.getOrDie("Node")},Dr=function(e,t,n){return 0!=(e.compareDocumentPosition(t)&n)},Br=function(e,t){return Dr(e,t,Rr().DOCUMENT_POSITION_CONTAINED_BY)},Or=tr.ELEMENT,Pr=tr.DOCUMENT,Lr=function(e){return e.nodeType!==Or&&e.nodeType!==Pr||0===e.childElementCount},Ir={all:function(e,t){var n=t===undefined?document:t.dom();return Lr(n)?[]:$(n.querySelectorAll(e),er.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==Or)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks
  native selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return Lr(n)?A.none():A.from(n.querySelector(e)).map(er.fromDom)}},Mr=function(e,t){return e.dom()===t.dom()},Fr=Qn.detect().browser.isIE()?function(e,t){return Br(e.dom(),t.dom())}:function(e,t){var n=e.dom(),r=t.dom();return n!==r&&n.contains(r)},Ur={eq:Mr,isEqualNode:function(e,t){return e.dom().isEqualNode(t.dom())},member:function(e,t){return M(t,b(Mr,e))},contains:Fr,is:Ir.is},zr=function(e){var t=e.dom();return A.from(t.parentNode).map(er.fromDom)},Vr=function(e){var t=e.dom();return A.from(t.previousSibling).map(er.fromDom)},qr=function(e){var t=e.dom();return A.from(t.nextSibling).map(er.fromDom)},Hr=function(e){var t=e.dom();return $(t.childNodes,er.fromDom)},jr=function(e,t){var n=e.dom().childNodes;return A.from(n[t]).map(er.fromDom)},$r=Ar("element","offset"),Wr={owner:function(e){return er.fromDom(e.dom().ownerDocument)},defaultView:function(e){var t=e.dom().own
 erDocument.defaultView;return er.fromDom(t)},documentElement:function(e){return er.fromDom(e.dom().ownerDocument.documentElement)},parent:zr,findIndex:function(n){return zr(n).bind(function(e){var t=Hr(e);return K(t,function(e){return Ur.eq(n,e)})})},parents:function(e,t){for(var n=O(t)?t:H(!1),r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,a=er.fromDom(i);if(o.push(a),!0===n(a))break;r=i}return o},siblings:function(t){return zr(t).map(Hr).map(function(e){return U(e,function(e){return!Ur.eq(t,e)})}).getOr([])},prevSibling:Vr,offsetParent:function(e){var t=e.dom();return A.from(t.offsetParent).map(er.fromDom)},prevSiblings:function(e){return t=_r(e,Vr),(n=Q.call(t,0)).reverse(),n;var t,n},nextSibling:qr,nextSiblings:function(e){return _r(e,qr)},children:Hr,child:jr,firstChild:function(e){return jr(e,0)},lastChild:function(e){return jr(e,e.dom().childNodes.length-1)},childNodesCount:function(e){return e.dom().childNodes.length},hasChildNodes:
 function(e){return e.dom().hasChildNodes()},leaf:function(e,t){var n=Hr(e);return 0<n.length&&t<n.length?$r(n[t],0):$r(e,t)}},Kr=Qn.detect().browser,Xr=function(e){return V(e,sr.isElement)},Yr={getPos:function(e,t,n){var r,o,i,a=0,u=0,s=e.ownerDocument;if(n=n||e,t){if(n===e&&t.getBoundingClientRect&&"static"===Tr(er.fromDom(e),"position"))return{x:a=(o=t.getBoundingClientRect()).left+(s.documentElement.scrollLeft||e.scrollLeft)-s.documentElement.clientLeft,y:u=o.top+(s.documentElement.scrollTop||e.scrollTop)-s.documentElement.clientTop};for(r=t;r&&r!==n&&r.nodeType;)a+=r.offsetLeft||0,u+=r.offsetTop||0,r=r.offsetParent;for(r=t.parentNode;r&&r!==n&&r.nodeType;)a-=r.scrollLeft||0,u-=r.scrollTop||0,r=r.parentNode;u+=(i=er.fromDom(t),Kr.isFirefox()&&"table"===sr.name(i)?Xr(Wr.children(i)).filter(function(e){return"caption"===sr.name(e)}).bind(function(o){return Xr(Wr.nextSibling
 s(o)).map(function(e){var t=e.dom().offsetTop,n=o.dom().offsetTop,r=o.dom().offsetHeight;return t<=n?-r:0})}).getOr(0):0)}return{x:a,y:u}}},Gr=function(e){var n=A.none(),t=[],r=function(e){o()?a(e):t.push(e)},o=function(){return n.isSome()},i=function(e){F(e,a)},a=function(t){n.each(function(e){setTimeout(function(){t(e)},0)})};return e(function(e){n=A.some(e),i(t),t=[]}),{get:r,map:function(n){return Gr(function(t){r(function(e){t(n(e))})})},isReady:o}},Jr={nu:Gr,pure:function(t){return Gr(function(e){e(t)})}},Qr=function(t){var e=function(e){var r;t((r=e,function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=this;setTimeout(function(){r.apply(n,e)},0)}))};return{map:function(r){return Qr(function(n){e(function(e){var t=r(e);n(t)})})},bind:function(n){return Qr(function(t){e(function(e){n(e).get(t)})})},anonBind:function(n){return Qr(function(t){e(function(e){n.get(t)})})},toLazy:function(){return Jr.nu(e)},get:e}},Zr={nu:Qr,pure:function(t){return Qr(func
 tion(e){e(t)})}},eo=function(a,e){return e(function(r){var o=[],i=0;0===a.length?r([]):F(a,function(e,t){var n;e.get((n=t,function(e){o[n]=e,++i>=a.length&&r(o)}))})})},to=function(e){return eo(e,Zr.nu)},no=function(n){return{is:function(e){return n===e},isValue:C,isError:y,getOr:H(n),getOrThunk:H(n),getOrDie:H(n),or:function(e){return no(n)},orThunk:function(e){return no(n)},fold:function(e,t){return t(n)},map:function(e){return no(e(n))},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return A.some(n)}}},ro=function(n){return{is:y,isValue:y,isError:C,getOr:j,getOrThunk:function(e){return e()},getOrDie:function(){return e=String(n),function(){throw new Error(e)}();var e},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return ro(n)},each:v,bind:function(e){return ro(n)},exists:y,forall:C,toOption:A.none}},oo={value:no,error:ro};
 function io(e,u){var t=e,n=function(e,t,n,r){var o,i;if(e){if(!r&&e[t])return e[t];if(e!==u){if(o=e[n])return o;for(i=e.parentNode;i&&i!==u;i=i.parentNode)if(o=i[n])return o}}};this.current=function(){return t},this.next=function(e){return t=n(t,"firstChild","nextSibling",e)},this.prev=function(e){return t=n(t,"lastChild","previousSibling",e)},this.prev2=function(e){return t=function(e,t,n,r){var o,i,a;if(e){if(o=e[n],u&&o===u)return;if(o){if(!r)for(a=o[t];a;a=a[t])if(!a[t])return a;return o}if((i=e.parentNode)&&i!==u)return i}}(t,"lastChild","previousSibling",e)}}var ao,uo,so,co=function(t){var n;return function(e){return(n=n||function(e,t){for(var n={},r=0,o=e.length;r<o;r++){var i=e[r];n[String(i)]=t(i,r)}return n}(t,H(!0))).hasOwnProperty(sr.name(e))}},lo=co(["h1","h2","h3","h4","h5","h6"]),fo=co(["article","asi
 de","details","div","dt","figcaption","footer","form","fieldset","header","hgroup","html","main","nav","section","summary","body","p","dl","multicol","dd","figure","address","center","blockquote","h1","h2","h3","h4","h5","h6","listing","xmp","pre","plaintext","menu","dir","ul","ol","li","hr","table","tbody","thead","tfoot","th","tr","td","caption"]),mo=function(e){return sr.isElement(e)&&!fo(e)},go=function(e){return sr.isElement(e)&&"br"===sr.name(e)},po=co(["h1","h2",&q
 uot;h3","h4","h5","h6","p","div","address","pre","form","blockquote","center","dir","fieldset","header","footer","article","section","hgroup","aside","nav","figure"]),ho=co(["ul","ol","dl"]),vo=co(["li","dd","dt"]),bo=co(["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param","embed","source","wbr","track"]),yo=co(["thead","tbody","tfoot"]),Co=co(["td","th"]),xo=co(["pre","script","textarea","style"]),wo=function(t){return funct
 ion(e){return!!e&&e.nodeType===t}},No=wo(1),Eo=function(e){var r=e.toLowerCase().split(" ");return function(e){var t,n;if(e&&e.nodeType)for(n=e.nodeName.toLowerCase(),t=0;t<r.length;t++)if(n===r[t])return!0;return!1}},So=function(t){return function(e){if(No(e)){if(e.contentEditable===t)return!0;if(e.getAttribute("data-mce-contenteditable")===t)return!0}return!1}},To=wo(3),ko=wo(8),Ao=wo(9),_o=Eo("br"),Ro=So("true"),Do=So("false"),Bo={isText:To,isElement:No,isComment:ko,isDocument:Ao,isBr:_o,isContentEditableTrue:Ro,isContentEditableFalse:Do,matchNodeNames:Eo,hasPropValue:function(t,n){return function(e){return No(e)&&e[t]===n}},hasAttribute:function(t,e){return function(e){return No(e)&&e.hasAttribute(t)}},hasAttributeValue:function(t,n){return function(e){return No(e)&&e.getAttribute(t)===n}},matchStyleValues:function(r,e){var o=e.toLowerCase().split(" ");return function(e){var t;
 if(No(e))for(t=0;t<o.length;t++){var n=e.ownerDocument.defaultView.getComputedStyle(e,null);if((n?n.getPropertyValue(r):null)===o[t])return!0}return!1}},isBogus:function(e){return No(e)&&e.hasAttribute("data-mce-bogus")},isBogusAll:function(e){return No(e)&&"all"===e.getAttribute("data-mce-bogus")},isTable:function(e){return No(e)&&"TABLE"===e.tagName}},Oo=function(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},Po=function(e,t){var n,r=t.childNodes;if(!Bo.isElement(t)||!Oo(t)){for(n=r.length-1;0<=n;n--)Po(e,r[n]);if(!1===Bo.isDocument(t)){if(Bo.isText(t)&&0<t.nodeValue.length){var o=Yt.trim(t.nodeValue).length;if(e.isBlock(t.parentNode)||0<o)return;if(0===o&&(a=(i=t).previousSibling&&"SPAN"===i.previousSibling.nodeName,u=i.nextSibling&&"SPAN"===i.nextSibling.nodeName,a&&u)
 )return}else if(Bo.isElement(t)&&(1===(r=t.childNodes).length&&Oo(r[0])&&t.parentNode.insertBefore(r[0],t),r.length||bo(er.fromDom(t))))return;e.remove(t)}var i,a,u;return t}},Lo={trimNode:Po},Io=Yt.makeMap,Mo=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Fo=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Uo=/[<>&\"\']/g,zo=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,Vo={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:&quot
 ;\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};uo={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;","`":"&#96;"},so={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"};var qo=function(e,t){var n,r,o,i={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),uo[r]||(o="&"+e[n+1]+";",i[r]=o,i[o]=r);return i}};ao=qo("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,
 frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsi
 lon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro&quo
 t;,32);var Ho=function(e,t){return e.replace(t?Mo:Fo,function(e){return uo[e]||e})},jo=function(e,t){return e.replace(t?Mo:Fo,function(e){return 1<e.length?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":uo[e]||"&#"+e.charCodeAt(0)+";"})},$o=function(e,t,n){return n=n||ao,e.replace(t?Mo:Fo,function(e){return uo[e]||n[e]||e})},Wo={encodeRaw:Ho,encodeAllRaw:function(e){return(""+e).replace(Uo,function(e){return uo[e]||e})},encodeNumeric:jo,encodeNamed:$o,getEncodeFunc:function(e,t){var n=qo(t)||ao,r=Io(e.replace(/\+/g,","));return r.named&&r.numeric?function(e,t){return e.replace(t?Mo:Fo,function(e){return uo[e]!==undefined?uo[e]:n[e]!==undefined?n[e]:1<e.length?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":"&#"+e.charCodeAt(0)+";"})}:r.named?t?function(e,t){return $o(e,t,n)}:$o:r.numeric?jo:Ho},decode:function(
 e){return e.replace(zo,function(e,t){return t?65535<(t="x"===t.charAt(0).toLowerCase()?parseInt(t.substr(1),16):parseInt(t,10))?(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t))):Vo[t]||String.fromCharCode(t):so[e]||ao[e]||(n=e,(r=er.fromTag("div").dom()).innerHTML=n,r.textContent||r.innerText||n);var n,r})}},Ko={},Xo={},Yo=Yt.makeMap,Go=Yt.each,Jo=Yt.extend,Qo=Yt.explode,Zo=Yt.inArray,ei=function(e,t){return(e=Yt.trim(e))?e.split(t||" "):[]},ti=function(e){var u,t,n,r,o,i,s={},a=function(e,t,n){var r,o,i,a=function(e,t){var n,r,o={};for(n=0,r=e.length;n<r;n++)o[e[n]]=t||{};return o};for(t=t||"","string"==typeof(n=n||[])&&(n=ei(n)),r=(e=ei(e)).length;r--;)i={attributes:a(o=ei([u,t].join(" "))),attributesOrder:o,children:a(n,Xo)},s[e[r]]=i},c=function(e,t){var n,r,o,i;for(n=(e=ei(e)).length,t=ei(t);n--;)for(r=s[e[n]],o=0,i=t.length;o<i;o++)r.attributes[t[o]]={},r.attributesOrder.push(t[o]
 )};return Ko[e]?Ko[e]:(u="id accesskey class dir lang style tabindex title role",t="address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul",n="a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment","html4"!==e&&(u+=" contenteditable contextmenu draggable dropzone hidden spellcheck translate",t+=" article aside details dialog figure header footer hgroup section nav",n+=" audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"),"html5-strict"!==e&&(u+=" xml:lang",n=[n,i="acronym applet basefont big font strike tt"].join(" "),Go(ei(i),function(e){a(e,"",n)}),t=[t,o="center dir isindex noframes"].join(" "),r=[t,n].join(" "),Go(ei
 (o),function(e){a(e,"",r)})),r=r||[t,n].join(" "),a("html","manifest","head body"),a("head","","base command link meta noscript script style title"),a("title hr noscript br"),a("base","href target"),a("link","href rel media hreflang type sizes hreflang"),a("meta","name http-equiv content charset"),a("style","media type scoped"),a("script","src async defer type charset"),a("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",r),a("address dt dd div caption","",r),a("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",n),a("blockquote",&
 quot;cite",r),a("ol","reversed start type","li"),a("ul","","li"),a("li","value",r),a("dl","","dt dd"),a("a","href target rel media hreflang type",n),a("q","cite",n),a("ins del","cite datetime",r),a("img","src sizes srcset alt usemap ismap width height"),a("iframe","src name width height",r),a("embed","src type width height"),a("object","data type typemustmatch name usemap form width height",[r,"param"].join(" ")),a("param","name value"),a("map","name",[r,"area"].join(" ")),a("area","alt coords shape href target rel media hreflang type"),a("table","border","caption colgroup thead tfoot tbody tr"+("htm
 l4"===e?" col":"")),a("colgroup","span","col"),a("col","span"),a("tbody thead tfoot","","tr"),a("tr","","td th"),a("td","colspan rowspan headers",r),a("th","colspan rowspan headers scope abbr",r),a("form","accept-charset action autocomplete enctype method name novalidate target",r),a("fieldset","disabled form name",[r,"legend"].join(" ")),a("label","form for",n),a("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),a("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","
 html4"===e?r:n),a("select","disabled form multiple name required size","option optgroup"),a("optgroup","disabled label","option"),a("option","disabled label selected value"),a("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),a("menu","type label",[r,"li"].join(" ")),a("noscript","",r),"html4"!==e&&(a("wbr"),a("ruby","",[n,"rt rp"].join(" ")),a("figcaption","",r),a("mark rt rp summary bdi","",n),a("canvas","width height",r),a("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",[r,"track source"].join(" ")),a("audio","src crossorigin preload autoplay mediagro
 up loop muted controls buffered volume",[r,"track source"].join(" ")),a("picture","","img source"),a("source","src srcset type media sizes"),a("track","kind src srclang label default"),a("datalist","",[n,"option"].join(" ")),a("article section nav aside header footer","",r),a("hgroup","","h1 h2 h3 h4 h5 h6"),a("figure","",[r,"figcaption"].join(" ")),a("time","datetime",n),a("dialog","open",r),a("command","type label icon disabled checked radiogroup command"),a("output","for form name",n),a("progress","value max",n),a("meter","value min max low high optimum",n),a("details","open",[r,"summary"].join(" ")),a
 ("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!==e&&(c("script","language xml:space"),c("style","xml:space"),c("object","declare classid code codebase codetype archive standby align border hspace vspace"),c("embed","align name hspace vspace"),c("param","valuetype type"),c("a","charset name rev shape coords"),c("br","clear"),c("applet","codebase archive code object alt name width height align hspace vspace"),c("img","name longdesc align border hspace vspace"),c("iframe","longdesc frameborder marginwidth marginheight scrolling align"),c("font basefont","size color face"),c("input","usemap align"),c("select","onchange"),c("textarea"),c("h1 h2 h3 h4 h
 5 h6 div p legend caption","align"),c("ul","type compact"),c("li","type"),c("ol dl menu dir","compact"),c("pre","width xml:space"),c("hr","align noshade size width"),c("isindex","prompt"),c("table","summary width frame rules cellspacing cellpadding align bgcolor"),c("col","width align char charoff valign"),c("colgroup","width align char charoff valign"),c("thead","align char charoff valign"),c("tr","align char charoff valign bgcolor"),c("th","axis align char charoff valign nowrap bgcolor width height"),c("form","accept"),c("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),c("tfoot","align char charoff valign"),c("tbody","align char
  charoff valign"),c("area","nohref"),c("body","background bgcolor text link vlink alink")),"html4"!==e&&(c("input button select textarea","autofocus"),c("input textarea","placeholder"),c("a","download"),c("link script img","crossorigin"),c("iframe","sandbox seamless allowfullscreen")),Go(ei("a form meter progress dfn"),function(e){s[e]&&delete s[e].children[e]}),delete s.caption.children.table,delete s.script,Ko[e]=s)},ni=function(e,n){var r;return e&&(r={},"string"==typeof e&&(e={"*":e}),Go(e,function(e,t){r[t]=r[t.toUpperCase()]="map"===n?Yo(e,/[, ]/):Qo(e,/[, ]/)})),r};function ri(i){var e,t,n,r,o,a,u,s,c,l,f,d,m,N={},g={},E=[],p={},h={},v=function(e,t,n){var r=i[e];return r?r=Yo(r,/[, ]/,Yo(r.toUpperCase(),/[, ]/)):(r=Ko[e])||(r=Yo(t," ",Yo(t.toU
 pperCase()," ")),r=Jo(r,n),Ko[e]=r),r};n=ti((i=i||{}).schema),!1===i.verify_html&&(i.valid_elements="*[*]"),e=ni(i.valid_styles),t=ni(i.invalid_styles,"map"),s=ni(i.valid_classes,"map"),r=v("whitespace_elements","pre script noscript style textarea video audio iframe object code"),o=v("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),a=v("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),u=v("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),l=v("non_empty_elements","td th iframe video audio object script pre code",a),f=v("move_caret_before_on_enter_elements","table",l),d=v("text_block_elements","h1 h2 h3 h4 h5 h6 p 
 div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),c=v("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption details summary",d),m=v("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),Go((i.special||"script noscript noframes noembed title style textarea xmp").split(" "),function(e){h[e]=new RegExp("</"+e+"[^>]*>","gi")});var S=function(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")},b=function(e){var t,n,r,o,i,a,u,s,c,l,f,d,m,g,p,h,v,b,y,C=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,x=/^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/,w=/[*?+]/;if(e)for(e=ei(e,","),N["@"]&&(h=N["@"].attri
 butes,v=N["@"].attributesOrder),t=0,n=e.length;t<n;t++)if(i=C.exec(e[t])){if(g=i[1],c=i[2],p=i[3],s=i[5],a={attributes:d={},attributesOrder:m=[]},"#"===g&&(a.paddEmpty=!0),"-"===g&&(a.removeEmpty=!0),"!"===i[4]&&(a.removeEmptyAttrs=!0),h){for(b in h)d[b]=h[b];m.push.apply(m,v)}if(s)for(r=0,o=(s=ei(s,"|")).length;r<o;r++)if(i=x.exec(s[r])){if(u={},f=i[1],l=i[2].replace(/[\\:]:/g,":"),g=i[3],y=i[4],"!"===f&&(a.attributesRequired=a.attributesRequired||[],a.attributesRequired.push(l),u.required=!0),"-"===f){delete d[l],m.splice(Zo(m,l),1);continue}g&&("="===g&&(a.attributesDefault=a.attributesDefault||[],a.attributesDefault.push({name:l,value:y}),u.defaultValue=y),":"===g&&(a.attributesForced=a.attributesForced||[],a.attributesForced.push({name:l,value:y}),u.forcedValue=y),"<"===g&&(u.validValues=Yo(y,&quot
 ;?"))),w.test(l)?(a.attributePatterns=a.attributePatterns||[],u.pattern=S(l),a.attributePatterns.push(u)):(d[l]||m.push(l),d[l]=u)}h||"@"!==c||(h=d,v=m),p&&(a.outputName=c,N[p]=a),w.test(c)?(a.pattern=S(c),E.push(a)):N[c]=a}},y=function(e){N={},E=[],b(e),Go(n,function(e,t){g[t]=e.children})},C=function(e){var a=/^(~)?(.+)$/;e&&(Ko.text_block_elements=Ko.block_elements=null,Go(ei(e,","),function(e){var t=a.exec(e),n="~"===t[1],r=n?"span":"div",o=t[2];if(g[o]=g[r],p[o]=r,n||(c[o.toUpperCase()]={},c[o]={}),!N[o]){var i=N[r];delete(i=Jo({},i)).removeEmptyAttrs,delete i.removeEmpty,N[o]=i}Go(g,function(e,t){e[r]&&(g[t]=e=Jo({},g[t]),e[o]=e[r])})}))},x=function(e){var o=/^([+\-]?)(\w+)\[([^\]]+)\]$/;Ko[i.schema]=null,e&&Go(ei(e,","),function(e){var t,n,r=o.exec(e);r&&(n=r[1],t=n?g[r[2]]:g[r[2]]={"#comment":{}},t=g[r[2]],Go(ei(r[3],"|"),function(e){"-"===n?
 delete t[e]:t[e]={}}))})},w=function(e){var t,n=N[e];if(n)return n;for(t=E.length;t--;)if((n=E[t]).pattern.test(e))return n};return i.valid_elements?y(i.valid_elements):(Go(n,function(e,t){N[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},g[t]=e.children}),"html5"!==i.schema&&Go(ei("strong/b em/i"),function(e){e=ei(e,"/"),N[e[1]].outputName=e[0]}),Go(ei("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){N[e]&&(N[e].removeEmpty=!0)}),Go(ei("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"),function(e){N[e].paddEmpty=!0}),Go(ei("span"),function(e){N[e].removeEmptyAttrs=!0})),C(i.custom_elements),x(i.valid_children),b(i.extended_valid_elements),x("+ol[ul|ol],+ul[ul|ol]"),Go({dd:"dl",dt:"dl",li:"ul ol",td:"tr",th:"tr",tr:"tbody thead tfoot",tbody:"table",thead:"table",tfoot:
 "table",legend:"fieldset",area:"map",param:"video audio object"},function(e,t){N[t]&&(N[t].parentsRequired=ei(e))}),i.invalid_elements&&Go(Qo(i.invalid_elements),function(e){N[e]&&delete N[e]}),w("span")||b("span[!data-mce-type|*]"),{children:g,elements:N,getValidStyles:function(){return e},getValidClasses:function(){return s},getBlockElements:function(){return c},getInvalidStyles:function(){return t},getShortEndedElements:function(){return a},getTextBlockElements:function(){return d},getTextInlineElements:function(){return m},getBoolAttrs:function(){return u},getElementRule:w,getSelfClosingElements:function(){return o},getNonEmptyElements:function(){return l},getMoveCaretBeforeOnEnterElements:function(){return f},getWhiteSpaceElements:function(){return r},getSpecialElements:function(){return h},isValidChild:function(e,t){var n=g[e.toLowerCase()];return!(!n||!n[t.toLowerCase()])},isValid:function(e,t
 ){var n,r,o=w(e);if(o){if(!t)return!0;if(o.attributes[t])return!0;if(n=o.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},getCustomElements:function(){return p},addValidElements:b,setValidElements:y,addCustomElements:C,addValidChildren:x}}var oi=function(e,t,n,r){var o=function(e){return 1<(e=parseInt(e,10).toString(16)).length?e:"0"+e};return"#"+o(t)+o(n)+o(r)};function ii(y,e){var C,t,c,l,x=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,w=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,N=/\s*([^:]+):\s*([^;]+);?/g,E=/\s+$/,S={},T="\ufeff";for(y=y||{},e&&(c=e.getValidStyles(),l=e.getInvalidStyles()),t=("\\\" \\' \\; \\: ; : "+T).split(" "),C=0;C<t.length;C++)S[t[C]]=T+C,S[T+C]=t[C];return{toHex:function(e){return e.replace(x,oi)},parse:function(e){var t,n,r,o,i,a,
 u,s,c={},l=y.url_converter,f=y.url_converter_scope||this,d=function(e,t,n){var r,o,i,a;if((r=c[e+"-top"+t])&&(o=c[e+"-right"+t])&&(i=c[e+"-bottom"+t])&&(a=c[e+"-left"+t])){var u=[r,o,i,a];for(C=u.length-1;C--&&u[C]===u[C+1];);-1<C&&n||(c[e+t]=-1===C?u[0]:u.join(" "),delete c[e+"-top"+t],delete c[e+"-right"+t],delete c[e+"-bottom"+t],delete c[e+"-left"+t])}},m=function(e){var t,n=c[e];if(n){for(t=(n=n.split(" ")).length;t--;)if(n[t]!==n[0])return!1;return c[e]=n[0],!0}},g=function(e){return o=!0,S[e]},p=function(e,t){return o&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return S[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e},h=function(e){return String.fromCharCode(parseInt(e.slice(1),16))},v=function(e){return e.replace(/\\[0-9a-f]+/gi,h)},b=function(e,t,n,r,o,i){if(o=o||i)return"'"+(o=p(o)).replace(/\'/g,"\
 \'")+"'";if(t=p(t||n||r),!y.allow_script_urls){var a=t.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(a))return"";if(!y.allow_svg_data_urls&&/^data:image\/svg/i.test(a))return""}return l&&(t=l.call(f,t,"style")),"url('"+t.replace(/\'/g,"\\'")+"')"};if(e){for(e=(e=e.replace(/[\u0000-\u001F]/g,"")).replace(/\\[\"\';:\uFEFF]/g,g).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,g)});t=N.exec(e);)if(N.lastIndex=t.index+t[0].length,n=t[1].replace(E,"").toLowerCase(),r=t[2].replace(E,""),n&&r){if(n=v(n),r=v(r),-1!==n.indexOf(T)||-1!==n.indexOf('"'))continue;if(!y.allow_script_urls&&("behavior"===n||/expression\s*\(|\/\*|\*\//.test(r)))continue;"font-weight"===n&&"700"===r?r="bold":"color"!==n&&"background-color"!==n||(
 r=r.toLowerCase()),r=(r=r.replace(x,oi)).replace(w,b),c[n]=o?p(r,!0):r}d("border","",!0),d("border","-width"),d("border","-color"),d("border","-style"),d("padding",""),d("margin",""),i="border",u="border-style",s="border-color",m(a="border-width")&&m(u)&&m(s)&&(c[i]=c[a]+" "+c[u]+" "+c[s],delete c[a],delete c[u],delete c[s]),"medium none"===c.border&&delete c.border,"none"===c["border-image"]&&delete c["border-image"]}return c},serialize:function(i,e){var t,n,r,o,a,u="",s=function(e){var t,n,r,o;if(t=c[e])for(n=0,r=t.length;n<r;n++)e=t[n],(o=i[e])&&(u+=(0<u.length?" ":"")+e+": "+o+";")};if(e&&c)s("*"),s(e);else for(t in i)!(n=i[t])||l&&(r=
 t,o=e,a=void 0,(a=l["*"])&&a[r]||(a=l[o])&&a[r])||(u+=(0<u.length?" ":"")+t+": "+n+";");return u}}}var ai,ui=Yt.each,si=Yt.grep,ci=Re.ie,li=/^([a-z0-9],?)+$/i,fi=/^[ \t\r\n]*$/,di=function(n,r,o){var e={},i=r.keep_values,t={set:function(e,t,n){r.url_converter&&(t=r.url_converter.call(r.url_converter_scope||o(),t,n,e[0])),e.attr("data-mce-"+n,t).attr(n,t)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}};return e={style:{set:function(e,t){null===t||"object"!=typeof t?(i&&e.attr("data-mce-style",t),e.attr("style",t)):e.css(t)},get:function(e){var t=e.attr("data-mce-style")||e.attr("style");return t=n.serialize(n.parse(t),e[0].nodeName)}}},i&&(e.href=e.src=t),e},mi=function(e,t){var n=t.attr("style"),r=e.serialize(e.parse(n),t[0].nodeName);r||(r=null),t.attr("data-mce-style",r)},gi=function(e,t)
 {var n,r,o=0;if(e)for(n=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)r=e.nodeType,(!t||3!==r||r!==n&&e.nodeValue.length)&&(o++,n=r);return o};function pi(a,u){var s,c=this;void 0===u&&(u={});var r={},i=window,o={},t=0,e=function(m,e){var g,p=0,h={};g=(e=e||{}).maxLoadTime||5e3;var v=function(e){m.getElementsByTagName("head")[0].appendChild(e)},n=function(e,t,n){var o,r,i,a,u=function(){for(var e=a.passed,t=e.length;t--;)e[t]();a.status=2,a.passed=[],a.failed=[]},s=function(){for(var e=a.failed,t=e.length;t--;)e[t]();a.status=3,a.passed=[],a.failed=[]},c=function(e,t){e()||((new Date).getTime()-i<g?Le.setTimeout(t):s())},l=function(){c(function(){for(var e,t,n=m.styleSheets,r=n.length;r--;)if((t=(e=n[r]).ownerNode?e.ownerNode:e.owningElement)&&t.id===o.id)return u(),!0},l)},f=function(){c(function(){try{var e=r.sheet.cssRules;return u(),!!e}catch(t){}},f)};if(e=Yt._addCacheSuffix(e),h[e]?a=h[e]:(a={passed:[],failed:[]},h[e]=a),t&am
 p;&a.passed.push(t),n&&a.failed.push(n),1!==a.status)if(2!==a.status)if(3!==a.status){if(a.status=1,(o=m.createElement("link")).rel="stylesheet",o.type="text/css",o.id="u"+p++,o.async=!1,o.defer=!1,i=(new Date).getTime(),"onload"in o&&!((d=navigator.userAgent.match(/WebKit\/(\d*)/))&&parseInt(d[1],10)<536))o.onload=l,o.onerror=s;else{if(0<navigator.userAgent.indexOf("Firefox"))return(r=m.createElement("style")).textContent='@import "'+e+'"',f(),void v(r);l()}var d;v(o),o.href=e}else s();else u()},t=function(t){return Zr.nu(function(e){n(t,q(e,H(oo.value(t))),q(e,H(oo.error(t))))})},o=function(e){return e.fold(j,j)};return{load:n,loadAll:function(e,n,r){to($(e,t)).get(function(e){var t=W(e,function(e){return e.isValue()});0<t.fail.length?r(t.fail.map(o)):n(t.pass.map(o))})}}}(a),l=[],f=u.schema?u.schema:ri({}),d=ii({url_converter:u.url_converter,url_converter_scope:u.u
 rl_converter_scope},u.schema),m=u.ownEvents?new je(u.proxy):je.Event,n=f.getBlockElements(),g=pn.overrideDefaults(function(){return{context:a,element:V.getRoot()}}),p=function(e){if(e&&a&&"string"==typeof e){var t=a.getElementById(e);return t&&t.id!==e?a.getElementsByName(e)[1]:t}return e},h=function(e){return"string"==typeof e&&(e=p(e)),g(e)},v=function(e,t,n){var r,o,i=h(e);return i.length&&(o=(r=s[t])&&r.get?r.get(i,t):i.attr(t)),void 0===o&&(o=n||""),o},b=function(e){var t=p(e);return t?t.attributes:[]},y=function(e,t,n){var r,o;""===n&&(n=null);var i=h(e);r=i.attr(t),i.length&&((o=s[t])&&o.set?o.set(i,n,t):i.attr(t,n),r!==n&&u.onSetAttrib&&u.onSetAttrib({attrElm:i,attrName:t,attrValue:n}))},C=function(){return u.root_element||a.body},x=function(e,t){return Yr.getPos(a.body,p(e),t)},w=function(e,t,n){var r=h(e);return n?r.css(t):("float&quo
 t;===(t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}))&&(t=Re.ie&&Re.ie<12?"styleFloat":"cssFloat"),r[0]&&r[0].style?r[0].style[t]:undefined)},N=function(e){var t,n;return e=p(e),t=w(e,"width"),n=w(e,"height"),-1===t.indexOf("px")&&(t=0),-1===n.indexOf("px")&&(n=0),{w:parseInt(t,10)||e.offsetWidth||e.clientWidth,h:parseInt(n,10)||e.offsetHeight||e.clientHeight}},E=function(e,t){var n;if(!e)return!1;if(!Array.isArray(e)){if("*"===t)return 1===e.nodeType;if(li.test(t)){var r=t.toLowerCase().split(/,/),o=e.nodeName.toLowerCase();for(n=r.length-1;0<=n;n--)if(r[n]===o)return!0;return!1}if(e.nodeType&&1!==e.nodeType)return!1}var i=Array.isArray(e)?e:[e];return 0<Tt(t,i[0].ownerDocument||i[0],null,i).length},S=function(e,t,n,r){var o,i=[],a=p(e);for(r=r===undefined,n=n||("BODY"!==C().nodeName?C().parentNode:null),Yt.is(t,"string")&am
 p;&(t="*"===(o=t)?function(e){return 1===e.nodeType}:function(e){return E(e,o)});a&&a!==n&&a.nodeType&&9!==a.nodeType;){if(!t||"function"==typeof t&&t(a)){if(!r)return[a];i.push(a)}a=a.parentNode}return r?i:null},T=function(e,t,n){var r=t;if(e)for("string"==typeof t&&(r=function(e){return E(e,t)}),e=e[n];e;e=e[n])if("function"==typeof r&&r(e))return e;return null},k=function(e,n,r){var o,t="string"==typeof e?p(e):e;if(!t)return!1;if(Yt.isArray(t)&&(t.length||0===t.length))return o=[],ui(t,function(e,t){e&&("string"==typeof e&&(e=p(e)),o.push(n.call(r,e,t)))}),o;var i=r||c;return n.call(i,t)},A=function(e,t){h(e).each(function(e,n){ui(t,function(e,t){y(n,t,e)})})},_=function(e,r){var t=h(e);ci?t.each(function(e,t){if(!1!==t.canHaveHTML){for(;t.firstChild;)t.removeChild(t.firstChild);try{t.innerHTML="<br>"+r,t.removeChild(t.firstChild)
 }catch(n){pn("<div></div>").html("<br>"+r).contents().slice(1).appendTo(t)}return r}}):t.html(r)},R=function(e,n,r,o,i){return k(e,function(e){var t="string"==typeof n?a.createElement(n):n;return A(t,r),o&&("string"!=typeof o&&o.nodeType?t.appendChild(o):"string"==typeof o&&_(t,o)),i?t:e.appendChild(t)})},D=function(e,t,n){return R(a.createElement(e),e,t,n,!0)},B=Wo.decode,O=Wo.encodeAllRaw,P=function(e,t){var n=h(e);return t?n.each(function(){for(var e;e=this.firstChild;)3===e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():n.remove(),1<n.length?n.toArray():n[0]},L=function(e,t,n){h(e).toggleClass(t,n).each(function(){""===this.className&&pn(this).attr("class",null)})},I=function(t,e,n){return k(e,function(e){return Yt.is(e,"array")&&(t=t.cloneNode(!0)),n&&ui(si(e.childNodes),func
 tion(e){t.appendChild(e)}),e.parentNode.replaceChild(t,e)})},M=function(){return a.createRange()},F=function(e,t,n,r){if(Yt.isArray(e)){for(var o=e.length;o--;)e[o]=F(e[o],t,n,r);return e}return!u.collect||e!==a&&e!==i||l.push([e,t,n,r]),m.bind(e,t,n,r||V)},U=function(e,t,n){var r;if(Yt.isArray(e)){for(r=e.length;r--;)e[r]=U(e[r],t,n);return e}if(l&&(e===a||e===i))for(r=l.length;r--;){var o=l[r];e!==o[0]||t&&t!==o[1]||n&&n!==o[2]||m.unbind(o[0],o[1],o[2])}return m.unbind(e,t,n)},z=function(e){if(e&&Bo.isElement(e)){var t=e.getAttribute("data-mce-contenteditable");return t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null}return null},V={doc:a,settings:u,win:i,files:o,stdMode:!0,boxModel:!0,styleSheetLoader:e,boundEvents:l,styles:d,schema:f,events:m,isBlock:function(e){if("string"==typeof e)return!!n[e];if(e){var t=e.nodeType;if(t)return!(1!==t||!n[e.nodeName])}return!1},$:g,$$
 :h,root:null,clone:function(t,e){if(!ci||1!==t.nodeType||e)return t.cloneNode(e);if(!e){var n=a.createElement(t.nodeName);return ui(b(t),function(e){y(n,e.nodeName,v(t,e.nodeName))}),n}return null},getRoot:C,getViewPort:function(e){var t=e||i,n=t.document,r=n.documentElement;return{x:t.pageXOffset||r.scrollLeft,y:t.pageYOffset||r.scrollTop,w:t.innerWidth||r.clientWidth,h:t.innerHeight||r.clientHeight}},getRect:function(e){var t,n;return e=p(e),t=x(e),n=N(e),{x:t.x,y:t.y,w:n.w,h:n.h}},getSize:N,getParent:function(e,t,n){var r=S(e,t,n,!1);return r&&0<r.length?r[0]:null},getParents:S,get:p,getNext:function(e,t){return T(e,t,"nextSibling")},getPrev:function(e,t){return T(e,t,"previousSibling")},select:function(e,t){return Tt(e,p(t)||u.root_element||a,[])},is:E,add:R,create:D,createHTML:function(e,t,n){var r,o="";for(r in o+="<"+e,t)t.hasOwnProperty(r)&&null!==t[r]&&"undefined"!=typeof t[r]&&(o+=&quot
 ; "+r+'="'+O(t[r])+'"');return void 0!==n?o+">"+n+"</"+e+">":o+" />"},createFragment:function(e){var t,n=a.createElement("div"),r=a.createDocumentFragment();for(e&&(n.innerHTML=e);t=n.firstChild;)r.appendChild(t);return r},remove:P,setStyle:function(e,t,n){var r=h(e).css(t,n);u.update_styles&&mi(d,r)},getStyle:w,setStyles:function(e,t){var n=h(e).css(t);u.update_styles&&mi(d,n)},removeAllAttribs:function(e){return k(e,function(e){var t,n=e.attributes;for(t=n.length-1;0<=t;t--)e.removeAttributeNode(n.item(t))})},setAttrib:y,setAttribs:A,getAttrib:v,getPos:x,parseStyle:function(e){return d.parse(e)},serializeStyle:function(e,t){return d.serialize(e,t)},addStyle:function(e){var t,n;if(V!==pi.DOM&&a===document){if(r[e])return;r[e]=!0}(n=a.getElementById("mceDefaultStyles"))||((n=a.createElement("style")).id="mceDefaultStyles",n.type="text/css
 ",(t=a.getElementsByTagName("head")[0]).firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(a.createTextNode(e))},loadCSS:function(e){var n;V===pi.DOM||a!==document?(e||(e=""),n=a.getElementsByTagName("head")[0],ui(e.split(","),function(e){var t;e=Yt._addCacheSuffix(e),o[e]||(o[e]=!0,t=D("link",{rel:"stylesheet",href:e}),n.appendChild(t))})):pi.DOM.loadCSS(e)},addClass:function(e,t){h(e).addClass(t)},removeClass:function(e,t){L(e,t,!1)},hasClass:function(e,t){return h(e).hasClass(t)},toggleClass:L,show:function(e){h(e).show()},hide:function(e){h(e).hide()},isHidden:function(e){return"none"===h(e).css("display")},uniqueId:function(e){return(e||"mce_")+t++},setHTML:_,getOuterHTML:function(e){var t="string"==typeof e?p(e):e;return Bo.isElement(t)?t.outerHTML:pn("<div></div>").append(pn(t).clone()).html(
 )},setOuterHTML:function(e,t){h(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}P(pn(this).html(t),!0)})},decode:B,encode:O,insertAfter:function(e,t){var r=p(t);return k(e,function(e){var t,n;return t=r.parentNode,(n=r.nextSibling)?t.insertBefore(e,n):t.appendChild(e),e})},replace:I,rename:function(t,e){var n;return t.nodeName!==e.toUpperCase()&&(n=D(e),ui(b(t),function(e){y(n,e.nodeName,v(t,e.nodeName))}),I(n,t,!0)),n||t},findCommonAncestor:function(e,t){for(var n,r=e;r;){for(n=t;n&&r!==n;)n=n.parentNode;if(r===n)break;r=r.parentNode}return!r&&e.ownerDocument?e.ownerDocument.documentElement:r},toHex:function(e){return d.toHex(Yt.trim(e))},run:k,getAttribs:b,isEmpty:function(e,t){var n,r,o,i,a,u,s=0;if(e=e.firstChild){a=new io(e,e.parentNode),t=t||(f?f.getNonEmptyElements():null),i=f?f.getWhiteSpaceElements():{};do{if(o=e.nodeType,Bo.isElement(e)){var c=e.getAttribute("data-mce-bogus");if(c){e=a.next(&q
 uot;all"===c);continue}if(u=e.nodeName.toLowerCase(),t&&t[u]){if("br"===u){s++,e=a.next();continue}return!1}for(n=(r=b(e)).length;n--;)if("name"===(u=r[n].nodeName)||"data-mce-bookmark"===u)return!1}if(8===o)return!1;if(3===o&&!fi.test(e.nodeValue))return!1;if(3===o&&e.parentNode&&i[e.parentNode.nodeName]&&fi.test(e.nodeValue))return!1;e=a.next()}while(e)}return s<=1},createRng:M,nodeIndex:gi,split:function(e,t,n){var r,o,i,a=M();if(e&&t)return a.setStart(e.parentNode,gi(e)),a.setEnd(t.parentNode,gi(t)),r=a.extractContents(),(a=M()).setStart(t.parentNode,gi(t)+1),a.setEnd(e.parentNode,gi(e)+1),o=a.extractContents(),(i=e.parentNode).insertBefore(Lo.trimNode(V,r),e),n?i.insertBefore(n,e):i.insertBefore(t,e),i.insertBefore(Lo.trimNode(V,o),e),P(e),n||t},bind:F,unbind:U,fire:function(e,t,n){return m.fire(e,t,n)},getContentEditable:z,getContentEditableParent:function(e){for(var t=C(),n=null;e&&e
 !==t&&null===(n=z(e));e=e.parentNode);return n},destroy:function(){if(l)for(var e=l.length;e--;){var t=l[e];m.unbind(t[0],t[1],t[2])}Tt.setDocument&&Tt.setDocument()},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset}};return s=di(d,u,function(){return V}),V}(ai=pi||(pi={})).DOM=ai(document),ai.nodeIndex=gi;var hi=pi,vi=hi.DOM,bi=Yt.each,yi=Yt.grep,Ci=function(e){return"function"==typeof e},xi=function(){var f={},o=[],i={},a=[],d=0;this.isDone=function(e){return 2===f[e]},this.markDone=function(e){f[e]=2},this.add=this.load=function(e,t,n,r){f[e]===undefined&&(o.push(e),f[e]=0),t&&(i[e]||(i[e]=[]),i[e].push({success:t,failure:r,scope:n||this}))},this.remove=function(e){delete f[e],delete i[e]},this.loadQue
 ue=function(e,t,n){this.loadScripts(o,e,t,n)},this.loadScripts=function(n,e,t,r){var s,c=[],l=function(t,e){bi(i[e],function(e){Ci(e[t])&&e[t].call(e.scope)}),i[e]=undefined};a.push({success:e,failure:r,scope:t||this}),(s=function(){var e=yi(n);if(n.length=0,bi(e,function(e){var t,n,r,o,i,a,u;2!==f[e]?3!==f[e]?1!==f[e]&&(f[e]=1,d++,t=e,n=function(){f[e]=2,d--,l("success",e),s()},r=function(){f[e]=3,d--,c.push(e),l("failure",e),s()},u=function(){a.remove(i),o&&(o.onreadystatechange=o.onload=o=null),n()},i=(a=vi).uniqueId(),(o=document.createElement("script")).id=i,o.type="text/javascript",o.src=Yt._addCacheSuffix(t),"onreadystatechange"in o?o.onreadystatechange=function(){/loaded|complete/.test(o.readyState)&&u()}:o.onload=u,o.onerror=function(){Ci(r)?r():"undefined"!=typeof console&&console.log&&console.log("Failed to load script: "+t)},(document.getElementsByTagName
 ("head")[0]||document.body).appendChild(o)):l("failure",e):l("success",e)}),!d){var t=a.slice(0);a.length=0,bi(t,function(e){0===c.length?Ci(e.success)&&e.success.call(e.scope):Ci(e.failure)&&e.failure.call(e.scope,c)})}})()}};xi.ScriptLoader=new xi;var wi,Ni=Yt.each;function Ei(){var r=this,o=[],a={},u={},i=[],s=function(e){var t;return u[e]&&(t=u[e].dependencies),t||[]},c=function(e,t){return"object"==typeof t?t:"string"==typeof e?{prefix:"",resource:t,suffix:""}:{prefix:e.prefix,resource:t,suffix:e.suffix}},l=function(e,n,t,r){var o=s(e);Ni(o,function(e){var t=c(n,e);f(t.resource,t,undefined,undefined)}),t&&(r?t.call(r):t.call(xi))},f=function(e,t,n,r,o){if(!a[e]){var i="string"==typeof t?t:t.prefix+t.resource+t.suffix;0!==i.indexOf("/")&&-1===i.indexOf("://")&&(i=Ei.baseURL+"/"+i),a[e]=i.substring(0,i.lastIndexOf("/&qu
 ot;)),u[e]?l(e,t,n,r):xi.ScriptLoader.add(i,function(){return l(e,t,n,r)},r,o)}};return{items:o,urls:a,lookup:u,_listeners:i,get:function(e){return u[e]?u[e].instance:undefined},dependencies:s,requireLangPack:function(e,t){var n=Ei.language;if(n&&!1!==Ei.languageLoad){if(t)if(-1!==(t=","+t+",").indexOf(","+n.substr(0,2)+","))n=n.substr(0,2);else if(-1===t.indexOf(","+n+","))return;xi.ScriptLoader.add(a[e]+"/langs/"+n+".js")}},add:function(t,e,n){o.push(e),u[t]={instance:e,dependencies:n};var r=W(i,function(e){return e.name===t});return i=r.fail,Ni(r.pass,function(e){e.callback()}),e},remove:function(e){delete a[e],delete u[e]},createUrl:c,addComponents:function(e,t){var n=r.urls[e];Ni(t,function(e){xi.ScriptLoader.add(n+"/"+e)})},load:f,waitFor:function(e,t){u.hasOwnProperty(e)?t():i.push({name:e,callback:t})}}}(wi=Ei||(Ei={})).PluginManager=wi(),wi.ThemeManager=wi();var Si=function(t,n
 ){Wr.parent(t).each(function(e){e.dom().insertBefore(n.dom(),t.dom())})},Ti=function(e,t){e.dom().appendChild(t.dom())},ki={before:Si,after:function(e,t){Wr.nextSibling(e).fold(function(){Wr.parent(e).each(function(e){Ti(e,t)})},function(e){Si(e,t)})},prepend:function(t,n){Wr.firstChild(t).fold(function(){Ti(t,n)},function(e){t.dom().insertBefore(n.dom(),e.dom())})},append:Ti,appendAt:function(e,t,n){Wr.child(e,n).fold(function(){Ti(e,t)},function(e){Si(e,t)})},wrap:function(e,t){Si(e,t),Ti(t,e)}},Ai=function(t,e){F(e,function(e){ki.before(t,e)})},_i=function(t,e){F(e,function(e){ki.append(t,e)})},Ri=function(e){var t=e.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},Di={empty:function(e){e.dom().textContent="",F(Wr.children(e),function(e){Ri(e)})},remove:Ri,unwrap:function(e){var t=Wr.children(e);0<t.length&&Ai(e,t),Ri(e)}},Bi=function(n,r){var o=null;return{cancel:function(){null!==o&&(clearTimeout(o),o=null)},throttle:function(){for(va
 r e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];null===o&&(o=setTimeout(function(){n.apply(null,e),o=null},r))}}},Oi=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return Oi(n())}}},Pi=function(e,t){var n=vr.get(e,t);return n===undefined||""===n?[]:n.split(" ")},Li=Pi,Ii=function(e,t,n){var r=Pi(e,t).concat([n]);return vr.set(e,t,r.join(" ")),!0},Mi=function(e,t,n){var r=U(Pi(e,t),function(e){return e!==n});return 0<r.length?vr.set(e,t,r.join(" ")):vr.remove(e,t),!1},Fi=function(e){return Li(e,"class")},Ui=function(e,t){return Ii(e,"class",t)},zi=function(e,t){return Mi(e,"class",t)},Vi=Fi,qi=Ui,Hi=zi,ji=function(e,t){return I(Fi(e),t)?zi(e,t):Ui(e,t)},$i=function(e){return e.dom().classList!==undefined},Wi=function(e,t){return $i(e)&&e.dom().classList.contains(t)},Ki={add:function(e,t){$i(e)?e.dom().classList.add(t):qi(e,t)},remove:function(
 e,t){var n;$i(e)?e.dom().classList.remove(t):Hi(e,t),0===($i(n=e)?n.dom().classList:Vi(n)).length&&vr.remove(n,"class")},toggle:function(e,t){return $i(e)?e.dom().classList.toggle(t):ji(e,t)},toggler:function(e,t){var n,r,o,i,a,u,s=$i(e),c=e.dom().classList;return n=function(){s?c.remove(t):Hi(e,t)},r=function(){s?c.add(t):qi(e,t)},o=Wi(e,t),i=o||!1,{on:a=function(){r(),i=!0},off:u=function(){n(),i=!1},toggle:function(){(i?u:a)()},isOn:function(){return i}}},has:Wi},Xi=function(e,t){return Ir.all(t,e)};function Yi(e,t,n,r,o){return e(n,r)?A.some(n):O(o)&&o(n)?A.none():t(n,r,o)}var Gi,Ji=function(e,t,n){for(var r=e.dom(),o=O(n)?n:H(!1);r.parentNode;){r=r.parentNode;var i=er.fromDom(r);if(t(i))return A.some(i);if(o(i))break}return A.none()},Qi=function(e,t){return V(e.dom().childNodes,q(t,er.fromDom)).map(er.fromDom)},Zi=function(e,r){var o=function(e){for(var t=0;t<e.childNodes.length;t++){if(r(er.fromDom(e.childNodes[t])))return A.some(er.fromDom(e.child
 Nodes[t]));var n=o(e.childNodes[t]);if(n.isSome())return n}return A.none()};return o(e.dom())},ea={first:function(e){return Zi(Cr.body(),e)},ancestor:Ji,closest:function(e,t,n){return Yi(function(e){return t(e)},Ji,e,t,n)},sibling:function(t,n){var e=t.dom();return e.parentNode?Qi(er.fromDom(e.parentNode),function(e){return!Ur.eq(t,e)&&n(e)}):A.none()},child:Qi,descendant:Zi},ta=function(e,t,n){return ea.ancestor(e,function(e){return Ir.is(e,t)},n)},na=ta,ra=function(e,t){return Ir.one(t,e)},oa=function(e,t,n){return Yi(Ir.is,ta,e,t,n)},ia=H("mce-annotation"),aa=H("data-mce-annotation"),ua=H("data-mce-annotation-uid"),sa=function(r,e){var t=r.selection.getRng(),n=er.fromDom(t.startContainer),o=er.fromDom(r.getBody()),i=e.fold(function(){return"."+ia()},function(e){return"["+aa()+'="'+e+'"]'}),a=Wr.child(n,t.startOffset).getOr(n),u=oa(a,i,function(e){return Ur.eq(e,o)}),s=function(e,t){return vr.has(e,t)?A.some(vr.ge
 t(e,t)):A.none()};return u.bind(function(e){return s(e,""+ua()).bind(function(n){return s(e,""+aa()).map(function(e){var t=ca(r,n);return{uid:n,name:e,elements:t}})})})},ca=function(e,t){var n=er.fromDom(e.getBody());return Xi(n,"["+ua()+'="'+t+'"]')},la=function(e,t){var n=er.fromDom(e.getBody()),r=Xi(n,"["+aa()+'="'+t+'"]'),o={};return F(r,function(e){var t=vr.get(e,ua()),n=o.hasOwnProperty(t)?o[t]:[];o[t]=n.concat([e])}),o},fa=function(i,e){var n,r,o,a=Oi({}),c=function(e,t){u(e,function(e){return t(e),e})},u=function(e,t){var n=a.get(),r=t(n.hasOwnProperty(e)?n[e]:{listeners:[],previous:Oi(A.none())});n[e]=r,a.set(n)},t=(n=function(){var e,t,n,r=a.get(),o=(e=cr(r),(n=Q.call(e,0)).sort(t),n);F(o,function(e){u(e,function(u){var s=u.previous.get();return sa(i,A.some(e)).fold(function(){var t;s.isSome()&&(c(t=e,function(e){F(e.listeners,function(e){return e(!1,t)})}),u.previous.set(A.none()))},function(e){var t,n,r,
 o=e.uid,i=e.name,a=e.elements;s.is(o)||(n=o,r=a,c(t=i,function(e){F(e.listeners,function(e){return e(!0,t,{uid:n,nodes:$(r,function(e){return e.dom()})})})}),u.previous.set(A.some(o)))}),{previous:u.previous,listeners:u.listeners}})})},r=30,o=null,{cancel:function(){null!==o&&(clearTimeout(o),o=null)},throttle:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];null!==o&&clearTimeout(o),o=setTimeout(function(){n.apply(null,e),o=null},r)}});return i.on("remove",function(){t.cancel()}),i.on("nodeChange",function(){t.throttle()}),{addListener:function(e,t){u(e,function(e){return{previous:e.previous,listeners:e.listeners.concat([t])}})}}},da=function(e,n){e.on("init",function(){e.serializer.addNodeFilter("span",function(e){F(e,function(t){var e;(e=t,A.from(e.attributes.map[aa()]).bind(n.lookup)).each(function(e){!1===e.persistent&&t.unwrap()})})})})},ma=function(){var n={};return{register:function(e,t){n
 [e]={name:e,settings:t}},lookup:function(e){return n.hasOwnProperty(e)?A.from(n[e]).map(function(e){return e.settings}):A.none()}}},ga=0,pa=function(t,e){F(e,function(e){Ki.add(t,e)})},ha=function(e,t){return er.fromDom(e.dom().cloneNode(t))},va=function(e){return ha(e,!0)},ba=function(e){return ha(e,!1)},ya=va,Ca=[].slice,xa=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=Ca.call(arguments);return r.length-1>=e.length?e.apply(this,r.slice(1)):function(){var e=r.concat([].slice.call(arguments));return xa.apply(this,e)}},wa={constant:function(e){return function(){return e}},negate:function(t){return function(e){return!t(e)}},and:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Ca.call(arguments);return function(e){for(var t=0;t<n.length;t++)if(!n[t](e))return!1;return!0}},or:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Ca.call(arguments);return function(e){for(var t=0;t<n.length;t+
 +)if(n[t](e))return!0;return!1}},curry:xa,compose:function(t,n){return function(e){return t(n(e))}},noop:function(){}},Na="\ufeff",Ea=function(e){return e===Na},Sa=Na,Ta=function(e){return e.replace(new RegExp(Na,"g"),"")},ka=Bo.isElement,Aa=Bo.isText,_a=function(e){return Aa(e)&&(e=e.parentNode),ka(e)&&e.hasAttribute("data-mce-caret")},Ra=function(e){return Aa(e)&&Ea(e.data)},Da=function(e){return _a(e)||Ra(e)},Ba=function(e){return e.firstChild!==e.lastChild||!Bo.isBr(e.firstChild)},Oa=function(e){var t=e.container();return e&&Bo.isText(t)&&t.data.charAt(e.offset())===Sa},Pa=function(e){var t=e.container();return e&&Bo.isText(t)&&t.data.charAt(e.offset()-1)===Sa},La=function(e,t,n){var r,o,i;return(r=t.ownerDocument.createElement(e)).setAttribute("data-mce-caret",n?"before":"after"),r.setAttribute("data-mce-bogus","all"),r.appendChild(((
 i=document.createElement("br")).setAttribute("data-mce-bogus","1"),i)),o=t.parentNode,n?o.insertBefore(r,t):t.nextSibling?o.insertBefore(r,t.nextSibling):o.appendChild(r),r},Ia=function(e){return Aa(e)&&e.data[0]===Sa},Ma=function(e){return Aa(e)&&e.data[e.data.length-1]===Sa},Fa=function(e){return e&&e.hasAttribute("data-mce-caret")?(t=e.getElementsByTagName("br"),n=t[t.length-1],Bo.isBogus(n)&&n.parentNode.removeChild(n),e.removeAttribute("data-mce-caret"),e.removeAttribute("data-mce-bogus"),e.removeAttribute("style"),e.removeAttribute("_moz_abspos"),e):null;var t,n},Ua=Bo.isContentEditableTrue,za=Bo.isContentEditableFalse,Va=Bo.isBr,qa=Bo.isText,Ha=Bo.matchNodeNames("script style textarea"),ja=Bo.matchNodeNames("img input textarea hr iframe video audio object"),$a=Bo.matchNodeNames("table"),Wa=Da,Ka=function(e){return!Wa(e)&&a
 mp;(qa(e)?!Ha(e.parentNode):ja(e)||Va(e)||$a(e)||Xa(e))},Xa=function(e){return!1===(t=e,Bo.isElement(t)&&"true"===t.getAttribute("unselectable"))&&za(e);var t},Ya=function(e,t){return Ka(e)&&function(e,t){for(e=e.parentNode;e&&e!==t;e=e.parentNode){if(Xa(e))return!1;if(Ua(e))return!0}return!0}(e,t)},Ga=Math.round,Ja=function(e){return e?{left:Ga(e.left),top:Ga(e.top),bottom:Ga(e.bottom),right:Ga(e.right),width:Ga(e.width),height:Ga(e.height)}:{left:0,top:0,bottom:0,right:0,width:0,height:0}},Qa=function(e,t){return e=Ja(e),t||(e.left=e.left+e.width),e.right=e.left,e.width=0,e},Za=function(e,t,n){return 0<=e&&e<=Math.min(t.height,n.height)/2},eu=function(e,t){return e.bottom-e.height/2<t.top||!(e.top>t.bottom)&&Za(t.top-e.bottom,e,t)},tu=function(e,t){return e.top>t.bottom||!(e.bottom<t.top)&&Za(t.bottom-e.top,e,t)},nu=function(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes
 ()&&e.endOffset===n+1?t.childNodes[n]:null},ru=function(e,t){return 1===e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e},ou=new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u
 0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u
 20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]"),iu=function(e){return"string"==typeof e&&768<=e.charCodeAt(0)&&ou.test(e)},au=function(e,t){for(var n=[],r=0;r<e.length;r++){var o=e[r];if(!o.isSome())return A.none();n.push(o.getOrDie())}return A.some(t.apply(null,n))},uu=Bo.isElement,su=Ka,cu=Bo.matchStyleValues("display","block table"),lu=Bo.matchStyleValues("float","left right"),fu=wa.and(uu,su,wa.negate(lu)),du=wa.negate(Bo.matchStyleValues("white-space","pre pre-line
  pre-wrap")),mu=Bo.isText,gu=Bo.isBr,pu=hi.nodeIndex,hu=ru,vu=function(e){return"createRange"in e?e.createRange():hi.DOM.createRng()},bu=function(e){return e&&/[\r\n\t ]/.test(e)},yu=function(e){return!!e.setStart&&!!e.setEnd},Cu=function(e){var t,n=e.startContainer,r=e.startOffset;return!!(bu(e.toString())&&du(n.parentNode)&&Bo.isText(n)&&(t=n.data,bu(t[r-1])||bu(t[r+1])))},xu=function(e){return 0===e.left&&0===e.right&&0===e.top&&0===e.bottom},wu=function(e){var t,n,r,o,i,a,u,s;return t=0<(n=e.getClientRects()).length?Ja(n[0]):Ja(e.getBoundingClientRect()),!yu(e)&&gu(e)&&xu(t)?(i=(r=e).ownerDocument,a=vu(i),u=i.createTextNode("\xa0"),(s=r.parentNode).insertBefore(u,r),a.setStart(u,0),a.setEnd(u,1),o=Ja(a.getBoundingClientRect()),s.removeChild(u),o):xu(t)&&yu(e)?function(e){var t=e.startContainer,n=e.endContainer,r=e.startOffset,o=e.endOffset;if(t===n&&Bo.isTe
 xt(n)&&0===r&&1===o){var i=e.cloneRange();return i.setEndAfter(n),wu(i)}return null}(e):t},Nu=function(e,t){var n=Qa(e,t);return n.width=1,n.right=n.left+1,n},Eu=function(e){var t,n,r=[],o=function(e){var t,n;0!==e.height&&(0<r.length&&(t=e,n=r[r.length-1],t.left===n.left&&t.top===n.top&&t.bottom===n.bottom&&t.right===n.right)||r.push(e))},i=function(e,t){var n=vu(e.ownerDocument);if(t<e.data.length){if(iu(e.data[t]))return r;if(iu(e.data[t-1])&&(n.setStart(e,t),n.setEnd(e,t+1),!Cu(n)))return o(Nu(wu(n),!1)),r}0<t&&(n.setStart(e,t-1),n.setEnd(e,t),Cu(n)||o(Nu(wu(n),!1))),t<e.data.length&&(n.setStart(e,t),n.setEnd(e,t+1),Cu(n)||o(Nu(wu(n),!0)))};if(mu(e.container()))return i(e.container(),e.offset()),r;if(uu(e.container()))if(e.isAtEnd())n=hu(e.container(),e.offset()),mu(n)&&i(n,n.data.length),fu(n)&&!gu(n)&&o(Nu(wu(n),!1));else{if(n=hu(e.container(),e.offset()),mu(n)&a
 mp;&i(n,0),fu(n)&&e.isAtEnd())return o(Nu(wu(n),!1)),r;t=hu(e.container(),e.offset()-1),fu(t)&&!gu(t)&&(cu(t)||cu(n)||!fu(n))&&o(Nu(wu(t),!1)),fu(n)&&o(Nu(wu(n),!0))}return r};function Su(t,n,e){var r=function(){return e||(e=Eu(Su(t,n))),e};return{container:wa.constant(t),offset:wa.constant(n),toRange:function(){var e;return(e=vu(t.ownerDocument)).setStart(t,n),e.setEnd(t,n),e},getClientRects:r,isVisible:function(){return 0<r().length},isAtStart:function(){return mu(t),0===n},isAtEnd:function(){return mu(t)?n>=t.data.length:n>=t.childNodes.length},isEqual:function(e){return e&&t===e.container()&&n===e.offset()},getNode:function(e){return hu(t,e?n-1:n)}}}(Gi=Su||(Su={})).fromRangeStart=function(e){return Gi(e.startContainer,e.startOffset)},Gi.fromRangeEnd=function(e){return Gi(e.endContainer,e.endOffset)},Gi.after=function(e){return Gi(e.parentNode,pu(e)+1)},Gi.before=function(e){return Gi(e.parentNode,pu(e))},Gi.is
 Above=function(e,t){return au([ee(t.getClientRects()),te(e.getClientRects())],eu).getOr(!1)},Gi.isBelow=function(e,t){return au([te(t.getClientRects()),ee(e.getClientRects())],tu).getOr(!1)},Gi.isAtStart=function(e){return!!e&&e.isAtStart()},Gi.isAtEnd=function(e){return!!e&&e.isAtEnd()},Gi.isTextPosition=function(e){return!!e&&Bo.isText(e.container())},Gi.isElementPosition=function(e){return!1===Gi.isTextPosition(e)};var Tu,ku,Au=Su,_u=Bo.isText,Ru=Bo.isBogus,Du=hi.nodeIndex,Bu=function(e){var t=e.parentNode;return Ru(t)?Bu(t):t},Ou=function(e){return e?jt.reduce(e.childNodes,function(e,t){return Ru(t)&&"BR"!==t.nodeName?e=e.concat(Ou(t)):e.push(t),e},[]):[]},Pu=function(t){return function(e){return t===e}},Lu=function(e){var t,r,n,o;return(_u(e)?"text()":e.nodeName.toLowerCase())+"["+(r=Ou(Bu(t=e)),n=jt.findIndex(r,Pu(t),t),r=r.slice(0,n+1),o=jt.reduce(r,function(e,t,n){return _u(t)&&_u(r[n-1])&&e++,e},0
 ),r=jt.filter(r,Bo.matchNodeNames(t.nodeName)),(n=jt.findIndex(r,Pu(t),t))-o)+"]"},Iu=function(e,t){var n,r,o,i,a,u=[];return n=t.container(),r=t.offset(),_u(n)?o=function(e,t){for(;(e=e.previousSibling)&&_u(e);)t+=e.data.length;return t}(n,r):(r>=(i=n.childNodes).length?(o="after",r=i.length-1):o="before",n=i[r]),u.push(Lu(n)),a=function(e,t,n){var r=[];for(t=t.parentNode;!(t===e||n&&n(t));t=t.parentNode)r.push(t);return r}(e,n),a=jt.filter(a,wa.negate(Bo.isBogus)),(u=u.concat(jt.map(a,function(e){return Lu(e)}))).reverse().join("/")+","+o},Mu=function(e,t){var n,r,o;return t?(t=(n=t.split(","))[0].split("/"),o=1<n.length?n[1]:"before",(r=jt.reduce(t,function(e,t){return(t=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(t))?("text()"===t[1]&&(t[1]="#text"),n=e,r=t[1],o=parseInt(t[2],10),i=Ou(n),i=jt.filter(i,function(e,t){return!_u(e)||!_u(i[t-1])}),(i=jt.filter(i,Bo.m
 atchNodeNames(r)))[o]):null;var n,r,o,i},e))?_u(r)?function(e,t){for(var n,r=e,o=0;_u(r);){if(n=r.data.length,o<=t&&t<=o+n){e=r,t-=o;break}if(!_u(r.nextSibling)){e=r,t=n;break}o+=n,r=r.nextSibling}return _u(e)&&t>e.data.length&&(t=e.data.length),Au(e,t)}(r,parseInt(o,10)):(o="after"===o?Du(r)+1:Du(r),Au(r.parentNode,o)):null):null},Fu=Bo.isContentEditableFalse,Uu=function(e,t,n,r,o){var i,a=r[o?"startContainer":"endContainer"],u=r[o?"startOffset":"endOffset"],s=[],c=0,l=e.getRoot();for(Bo.isText(a)?s.push(n?function(e,t,n){var r,o;for(o=e(t.data.slice(0,n)).length,r=t.previousSibling;r&&Bo.isText(r);r=r.previousSibling)o+=e(r.data).length;return o}(t,a,u):u):(u>=(i=a.childNodes).length&&i.length&&(c=1,u=Math.max(0,i.length-1)),s.push(e.nodeIndex(i[u],n)+c));a&&a!==l;a=a.parentNode)s.push(e.nodeIndex(a,n));return s},zu=function(e){Bo.isText(e)&&0===e.data.leng
 th&&e.parentNode.removeChild(e)},Vu=function(e,t,n){var r=0;return Yt.each(e.select(t),function(e){if("all"!==e.getAttribute("data-mce-bogus"))return e!==n&&void r++}),r},qu=function(e,t){var n,r,o,i=t?"start":"end";n=e[i+"Container"],r=e[i+"Offset"],Bo.isElement(n)&&"TR"===n.nodeName&&(n=(o=n.childNodes)[Math.min(t?r:r-1,o.length-1)])&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r))},Hu=function(e){return qu(e,!0),qu(e,!1),e},ju=function(e,t){var n;if(Bo.isElement(e)&&(e=ru(e,t),Fu(e)))return e;if(Da(e)){if(Bo.isText(e)&&_a(e)&&(e=e.parentNode),n=e.previousSibling,Fu(n))return n;if(n=e.nextSibling,Fu(n))return n}},$u=function(e,t,n){var r=n.getNode(),o=r?r.nodeName:null,i=n.getRng();if(Fu(r)||"IMG"===o)return{name:o,index:Vu(n.dom,o,r)};var a,u,s,c,l,f,d,m=ju((a=i).startContainer,a.startOffset)||ju(
 a.endContainer,a.endOffset);return m?{name:o=m.tagName,index:Vu(n.dom,o,m)}:(u=e,c=t,l=i,f=(s=n).dom,(d={}).start=Uu(f,u,c,l,!0),s.isCollapsed()||(d.end=Uu(f,u,c,l,!1)),d)},Wu=function(e,t,n){var r={"data-mce-type":"bookmark",id:t,style:"overflow:hidden;line-height:0px"};return n?e.create("span",r,"&#xFEFF;"):e.create("span",r)},Ku=function(e,t){var n=e.dom,r=e.getRng(),o=n.uniqueId(),i=e.isCollapsed(),a=e.getNode(),u=a.nodeName;if("IMG"===u)return{name:u,index:Vu(n,u,a)};var s=Hu(r.cloneRange());if(!i){s.collapse(!1);var c=Wu(n,o+"_end",t);s.insertNode(c),zu(c.nextSibling)}(r=Hu(r)).collapse(!0);var l=Wu(n,o+"_start",t);return r.insertNode(l),zu(l.previousSibling),e.moveToBookmark({id:o,keep:1}),{id:o}},Xu={getBookmark:function(e,t,n){return 2===t?$u(Ta,n,e):3===t?(o=(r=e).getRng(),{start:Iu(r.dom.getRoot(),Au.fromRangeStart(o)),end:Iu(r.dom.getRoot(),Au.fromRangeEnd(o))}):t?{rng:e.getRng(
 )}:Ku(e,!1);var r,o},getUndoBookmark:b($u,j,!0),getPersistentBookmark:Ku},Yu="_mce_caret",Gu=function(e){return Bo.isElement(e)&&e.id===Yu},Ju=function(e,t){for(;t&&t!==e;){if(t.id===Yu)return t;t=t.parentNode}return null},Qu=Bo.isElement,Zu=Bo.isText,es=function(e){var t=e.parentNode;t&&t.removeChild(e)},ts=function(e,t){0===t.length?es(e):e.nodeValue=t},ns=function(e){var t=Ta(e);return{count:e.length-t.length,text:t}},rs=function(e,t){return as(e),t},os=function(e,t){var n,r,o,i=t.container(),a=(n=ne(i.childNodes),r=e,o=L(n,r),-1===o?A.none():A.some(o)).map(function(e){return e<t.offset()?Au(i,t.offset()-1):t}).getOr(t);return as(e),a},is=function(e,t){return Zu(e)&&t.container()===e?(r=t,o=ns((n=e).data.substr(0,r.offset())),i=ns(n.data.substr(r.offset())),0<(a=o.text+i.text).length?(ts(n,a),Au(n,r.offset()-o.count)):r):rs(e,t);var n,r,o,i,a},as=function(e){if(Qu(e)&&Da(e)&&(Ba(e)?e.removeAttribute("data-mce-ca
 ret"):es(e)),Zu(e)){var t=Ta(function(e){try{return e.nodeValue}catch(t){return""}}(e));ts(e,t)}},us={removeAndReposition:function(e,t){return Au.isTextPosition(t)?is(e,t):(n=e,(r=t).container()===n.parentNode?os(n,r):rs(n,r));var n,r},remove:as},ss=Bo.isContentEditableTrue,cs=Bo.isContentEditableFalse,ls=function(e,t,n,r,o){return t._selectionOverrides.showCaret(e,n,r,o)},fs=function(e,t){var n,r;return e.fire("BeforeObjectSelected",{target:t}).isDefaultPrevented()?null:((r=(n=t).ownerDocument.createRange()).selectNode(n),r)},ds=function(e,t,n){var r=$c(1,e.getBody(),t),o=Au.fromRangeStart(r),i=o.getNode();if(cs(i))return ls(1,e,i,!o.isAtEnd(),!1);var a=o.getNode(!0);if(cs(a))return ls(1,e,a,!1,!1);var u=e.dom.getParent(o.getNode(),function(e){return cs(e)||ss(e)});return cs(u)?ls(1,e,u,!1,n):null},ms=function(e,t,n){if(!t||!t.collapsed)return t;var r=ds(e,t,n);return r||t};(ku=Tu||(Tu={}))[ku.Backwards=-1]="Backwards",ku[ku.Forwards=1]="Forw
 ards";var gs,ps,hs=Bo.isContentEditableFalse,vs=Bo.isText,bs=Bo.isElement,ys=Bo.isBr,Cs=Ka,xs=function(e){return ja(e)||!!Xa(t=e)&&!0!==jt.reduce(t.getElementsByTagName("*"),function(e,t){return e||Ua(t)},!1);var t},ws=Ya,Ns=function(e,t){return e.hasChildNodes()&&t<e.childNodes.length?e.childNodes[t]:null},Es=function(e,t){if(Pc(e)){if(Cs(t.previousSibling)&&!vs(t.previousSibling))return Au.before(t);if(vs(t))return Au(t,0)}if(Lc(e)){if(Cs(t.nextSibling)&&!vs(t.nextSibling))return Au.after(t);if(vs(t))return Au(t,t.data.length)}return Lc(e)?ys(t)?Au.before(t):Au.after(t):Au.before(t)},Ss=function(e,t,n){var r,o,i,a,u;if(!bs(n)||!t)return null;if(t.isEqual(Au.after(n))&&n.lastChild){if(u=Au.after(n.lastChild),Lc(e)&&Cs(n.lastChild)&&bs(n.lastChild))return ys(n.lastChild)?Au.before(n.lastChild):u}else u=t;var s,c,l,f=u.container(),d=u.offset();if(vs(f)){if(Lc(e)&&0<d)return Au(f,--d);if(Pc(e)&&am
 p;d<f.length)return Au(f,++d);r=f}else{if(Lc(e)&&0<d&&(o=Ns(f,d-1),Cs(o)))return!xs(o)&&(i=Mc(o,e,ws,o))?vs(i)?Au(i,i.data.length):Au.after(i):vs(o)?Au(o,o.data.length):Au.before(o);if(Pc(e)&&d<f.childNodes.length&&(o=Ns(f,d),Cs(o)))return ys(o)&&n.lastChild===o?null:(s=o,c=n,Bo.isBr(s)&&(l=Ss(1,Au.after(s),c))&&!Uc(Au.before(s),Au.before(l),c)?Ss(e,Au.after(o),n):!xs(o)&&(i=Mc(o,e,ws,o))?vs(i)?Au(i,0):Au.before(i):vs(o)?Au(o,0):Au.after(o));r=o||u.getNode()}return(Pc(e)&&u.isAtEnd()||Lc(e)&&u.isAtStart())&&(r=Mc(r,e,wa.constant(!0),n,!0),ws(r,n))?Es(e,r):(o=Mc(r,e,ws,n),!(a=jt.last(jt.filter(function(e,t){for(var n=[];e&&e!==t;)n.push(e),e=e.parentNode;return n}(f,n),hs)))||o&&a.contains(o)?o?Es(e,o):null:u=Pc(e)?Au.after(a):Au.before(a))},Ts=function(t){return{next:function(e){return Ss(Tu.Forwards,e,t)},prev:function(e){return Ss(Tu.Backwards,e,t)}}};(ps=gs||(g
 s={}))[ps.Br=0]="Br",ps[ps.Block=1]="Block",ps[ps.Wrap=2]="Wrap",ps[ps.Eol=3]="Eol";var ks,As,_s,Rs,Ds,Bs=function(e,t){return e===Tu.Backwards?t.reverse():t},Os=function(e,t,n,r){for(var o,i,a,u,s,c,l=Ts(n),f=r,d=[];f&&(s=l,c=f,o=t===Tu.Forwards?s.next(c):s.prev(c));){if(Bo.isBr(o.getNode(!1)))return t===Tu.Forwards?{positions:Bs(t,d).concat([o]),breakType:gs.Br,breakAt:A.some(o)}:{positions:Bs(t,d),breakType:gs.Br,breakAt:A.some(o)};if(o.isVisible()){if(e(f,o)){var m=(i=t,a=f,u=o,Bo.isBr(u.getNode(i===Tu.Forwards))?gs.Br:!1===Uc(a,u)?gs.Block:gs.Wrap);return{positions:Bs(t,d),breakType:m,breakAt:A.some(o)}}d.push(o),f=o}else f=o}return{positions:Bs(t,d),breakType:gs.Eol,breakAt:A.none()}},Ps=function(n,r,o,e){return r(o,e).breakAt.map(function(e){var t=r(o,e).positions;return n===Tu.Backwards?t.concat(e):[e].concat(t)}).getOr([])},Ls=function(e,i){return z(e,function(e,o){return e.fold(function(){return A.some(o)},function(r){return 
 au([ee(r.getClientRects()),ee(o.getClientRects())],function(e,t){var n=Math.abs(i-e.left);return Math.abs(i-t.left)<=n?o:r}).or(e)})},A.none())},Is=function(t,e){return ee(e.getClientRects()).bind(function(e){return Ls(t,e.left)})},Ms=b(Os,Su.isAbove,-1),Fs=b(Os,Su.isBelow,1),Us=b(Ps,-1,Ms),zs=b(Ps,1,Fs),Vs=function(e,t,n,r,o){var i,a,u,s,c=Xi(er.fromDom(n),"td,th").map(function(e){return e.dom()}),l=U((i=e,G(c,function(e){var t,n,r=(t=e.getBoundingClientRect(),n=-1,{left:t.left-n,top:t.top-n,right:t.right+2*n,bottom:t.bottom+2*n,width:t.width+n,height:t.height+n});return[{x:r.left,y:i(r),cell:e},{x:r.right,y:i(r),cell:e}]})),function(e){return t(e,o)});return(a=l,u=r,s=o,z(a,function(e,r){return e.fold(function(){return A.some(r)},function(e){var t=Math.sqrt(Math.abs(e.x-u)+Math.abs(e.y-s)),n=Math.sqrt(Math.abs(r.x-u)+Math.abs(r.y-s));return A.some(n<t?r:e)})},A.none())).map(function(e){return e.cell})},qs=b(Vs,function(e){return e.bottom},function(e,t){return e.y&l
 t;t}),Hs=b(Vs,function(e){return e.top},function(e,t){return e.y>t}),js=function(t,n){return ee(n.getClientRects()).bind(function(e){return qs(t,e.left,e.top)}).bind(function(e){return Is((t=e,al.lastPositionIn(t).map(function(e){return Ms(t,e).positions.concat(e)}).getOr([])),n);var t})},$s=function(t,n){return te(n.getClientRects()).bind(function(e){return Hs(t,e.left,e.top)}).bind(function(e){return Is((t=e,al.firstPositionIn(t).map(function(e){return[e].concat(Fs(t,e).positions)}).getOr([])),n);var t})},Ws=function(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}},Ks=function(e,t,n){var r,o,i,a,u,s=e.dom,c=s.getRoot(),l=0;if(u={elm:t,alignToTop:n},e.fire("scrollIntoView",u),!u.isDefaultPrevented()&&Bo.isElement(t)){if(!1===n&&(l=t.offsetHeight),"BODY"!==c.nodeName){var f=e.selection.getScrollContainer();if(f)return r=Ws(t).y-Ws(f).y+l,a=f.clientHeight,void((r<(i=f.scrollT
 op)||i+a<r+25)&&(f.scrollTop=r<i?r:r-a+25))}o=s.getViewPort(e.getWin()),r=s.getPos(t).y+l,i=o.y,a=o.h,(r<o.y||i+a<r+25)&&e.getWin().scrollTo(0,r<i?r:r-a+25)}},Xs=function(d,e){ee(Su.fromRangeStart(e).getClientRects()).each(function(e){var t,n,r,o,i,a,u,s,c,l=function(e){if(e.inline)return e.getBody().getBoundingClientRect();var t=e.getWin();return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight,width:t.innerWidth,height:t.innerHeight}}(d),f={x:(i=t=l,a=n=e,a.left>i.left&&a.right<i.right?0:a.left<i.left?a.left-i.left:a.right-i.right),y:(r=t,o=n,o.top>r.top&&o.bottom<r.bottom?0:o.top<r.top?o.top-r.top:o.bottom-r.bottom)};s=0!==f.x?0<f.x?f.x+4:f.x-4:0,c=0!==f.y?0<f.y?f.y+4:f.y-4:0,(u=d).inline?(u.getBody().scrollLeft+=s,u.getBody().scrollTop+=c):u.getWin().scrollBy(s,c)})},Ys=function(e,t,n){var r=e.getParam(t,n);if(-1!==r.indexOf("=")){var o=e.getParam(t,"","hash");return o.hasOwn
 Property(e.id)?o[e.id]:n}return r},Gs=function(e){return e.getParam("iframe_attrs",{})},Js=function(e){return e.getParam("doctype","<!DOCTYPE html>")},Qs=function(e){return e.getParam("document_base_url","")},Zs=function(e){return Ys(e,"body_id","tinymce")},ec=function(e){return Ys(e,"body_class","")},tc=function(e){return e.getParam("content_security_policy","")},nc=function(e){return e.getParam("br_in_pre",!0)},rc=function(e){if(e.getParam("force_p_newlines",!1))return"p";var t=e.getParam("forced_root_block","p");return!1===t?"":t},oc=function(e){return e.getParam("forced_root_block_attrs",{})},ic=function(e){return e.getParam("br_newline_selector",".mce-toc h2,figcaption,caption")},ac=function(e){return e.getParam("no_newline_selector","")},uc=function(e){re
 turn e.getParam("keep_styles",!0)},sc=function(e){return e.getParam("end_container_on_empty_block",!1)},cc=function(e){return Yt.explode(e.getParam("font_size_style_values",""))},lc=function(e){return Yt.explode(e.getParam("font_size_classes",""))},fc=Qn.detect().browser,dc=function(){return fc.isIE()||fc.isEdge()||fc.isFirefox()},mc=function(e,t){e.selection.setRng(t),Xs(e,t)},gc=function(t,n,e){var r=t(n,e);return r.breakType===gs.Wrap&&0===r.positions.length?r.breakAt.map(function(e){return t(n,e).breakAt.isNone()}).getOr(!0):r.breakAt.isNone()},pc=wa.curry(gc,Ms),hc=wa.curry(gc,Fs),vc=function(e,t,n,r){var o,i,a,u,s=e.selection.getRng(),c=t?1:-1;if(dc()&&(o=t,i=s,a=n,u=Au.fromRangeStart(i),al.positionIn(!o,a).map(function(e){return e.isEqual(u)}).getOr(!1))){var l=ls(c,e,n,!t,!0);return mc(e,l),!0}return!1},bc=function(e,t){var n=t.getNode(e);return Bo.isElement(n)&&"TABLE"===n.nodeName
 ?A.some(n):A.none()},yc=function(u,s,c){var e=bc(!!s,c),t=!1===s;e.fold(function(){return mc(u,c.toRange())},function(a){return al.positionIn(t,u.getBody()).filter(function(e){return e.isEqual(c)}).fold(function(){return mc(u,c.toRange())},function(e){return n=s,o=a,t=c,void((i=rc(r=u))?r.undoManager.transact(function(){var e=er.fromTag(i);vr.setAll(e,oc(r)),ki.append(e,er.fromTag("br")),n?ki.after(er.fromDom(o),e):ki.before(er.fromDom(o),e);var t=r.dom.createRng();t.setStart(e.dom(),0),t.setEnd(e.dom(),0),mc(r,t)}):mc(r,t.toRange()));var n,r,o,t,i})})},Cc=function(e,t,n,r){var o,i,a,u,s,c,l=e.selection.getRng(),f=Au.fromRangeStart(l),d=e.getBody();if(!t&&pc(r,f)){var m=(u=d,js(s=n,c=f).orThunk(function(){return ee(c.getClientRects()).bind(function(e){return Ls(Us(u,Au.before(s)),e.left)})}).getOr(Au.before(s)));return yc(e,t,m),!0}return!(!t||!hc(r,f))&&(o=d,m=$s(i=n,a=f).orThunk(function(){return ee(a.getClientRects()).bind(function(e){return Ls(zs(o,Au.a
 fter(i)),e.left)})}).getOr(Au.after(i)),yc(e,t,m),!0)},xc=function(t,n){return function(){return A.from(t.dom.getParent(t.selection.getNode(),"td,th")).bind(function(e){return A.from(t.dom.getParent(e,"table")).map(function(e){return vc(t,n,e)})}).getOr(!1)}},wc=function(n,r){return function(){return A.from(n.dom.getParent(n.selection.getNode(),"td,th")).bind(function(t){return A.from(n.dom.getParent(t,"table")).map(function(e){return Cc(n,r,e,t)})}).getOr(!1)}},Nc=Bo.isContentEditableFalse,Ec=function(e,t,n){var r,o,i,a,u,s=Qa(t.getBoundingClientRect(),n);return"BODY"===e.tagName?(r=e.ownerDocument.documentElement,o=e.scrollLeft||r.scrollLeft,i=e.scrollTop||r.scrollTop):(u=e.getBoundingClientRect(),o=e.scrollLeft-u.left,i=e.scrollTop-u.top),s.left+=o,s.right+=o,s.top+=i,s.bottom+=i,s.width=1,0<(a=t.offsetWidth-t.clientWidth)&&(n&&(a*=-1),s.left+=a,s.right+=a),s},Sc=function(a,u,e){var t,s,c=Oi(A.none()),l=function
 (){!function(e){var t,n,r,o,i;for(t=pn("*[contentEditable=false]",e),o=0;o<t.length;o++)r=(n=t[o]).previousSibling,Ma(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(i.length-1,1)),r=n.nextSibling,Ia(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(0,1))}(a),s&&(us.remove(s),s=null),c.get().each(function(e){pn(e.caret).remove(),c.set(A.none())}),clearInterval(t)},f=function(){t=Le.setInterval(function(){e()?pn("div.mce-visual-caret",a).toggleClass("mce-visual-caret-hidden"):pn("div.mce-visual-caret",a).addClass("mce-visual-caret-hidden")},500)};return{show:function(t,e){var n,r,o;if(l(),o=e,Bo.isElement(o)&&/^(TD|TH)$/i.test(o.tagName))return null;if(!u(e))return s=function(e,t){var n,r,o;if(r=e.ownerDocument.createTextNode(Sa),o=e.parentNode,t){if(n=e.previousSibling,Aa(n)){if(Da(n))return n;if(Ma(n))return n.splitText(n.data.length-1)}o.insertBefore(r,e)}else
 {if(n=e.nextSibling,Aa(n)){if(Da(n))return n;if(Ia(n))return n.splitText(1),n}e.nextSibling?o.insertBefore(r,e.nextSibling):o.appendChild(r)}return r}(e,t),r=e.ownerDocument.createRange(),Nc(s.nextSibling)?(r.setStart(s,0),r.setEnd(s,0)):(r.setStart(s,1),r.setEnd(s,1)),r;s=La("p",e,t),n=Ec(a,e,t),pn(s).css("top",n.top);var i=pn('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(n).appendTo(a)[0];return c.set(A.some({caret:i,element:e,before:t})),c.get().each(function(e){t&&pn(e.caret).addClass("mce-visual-caret-before")}),f(),(r=e.ownerDocument.createRange()).setStart(s,0),r.setEnd(s,0),r},hide:l,getCss:function(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"},reposition:function(){c.get().each(function
 (e){var t=Ec(a,e.element,e.before);pn(e.caret).css(t)})},destroy:function(){return Le.clearInterval(t)}}},Tc=function(e){return Nc(e)||Bo.isTable(e)&&dc()},kc=Bo.isContentEditableFalse,Ac=Bo.matchStyleValues("display","block table table-cell table-caption list-item"),_c=Da,Rc=_a,Dc=wa.curry,Bc=Bo.isElement,Oc=Ka,Pc=function(e){return 0<e},Lc=function(e){return e<0},Ic=function(e,t){for(var n;n=e(t);)if(!Rc(n))return n;return null},Mc=function(e,t,n,r,o){var i=new io(e,r);if(Lc(t)){if((kc(e)||Rc(e))&&n(e=Ic(i.prev,!0)))return e;for(;e=Ic(i.prev,o);)if(n(e))return e}if(Pc(t)){if((kc(e)||Rc(e))&&n(e=Ic(i.next,!0)))return e;for(;e=Ic(i.next,o);)if(n(e))return e}return null},Fc=function(e,t){for(;e&&e!==t;){if(Ac(e))return e;e=e.parentNode}return null},Uc=function(e,t,n){return Fc(e.container(),n)===Fc(t.container(),n)},zc=function(e,t){var n,r;return t?(n=t.container(),r=t.offset(),Bc(n)?n.childNodes[r+e]:null):null},Vc=function(
 e,t){var n=t.ownerDocument.createRange();return e?(n.setStartBefore(t),n.setEndBefore(t)):(n.setStartAfter(t),n.setEndAfter(t)),n},qc=function(e,t,n){var r,o,i,a;for(o=e?"previousSibling":"nextSibling";n&&n!==t;){if(r=n[o],_c(r)&&(r=r[o]),kc(r)){if(a=n,Fc(r,i=t)===Fc(a,i))return r;break}if(Oc(r))break;n=n.parentNode}return null},Hc=Dc(Vc,!0),jc=Dc(Vc,!1),$c=function(e,t,n){var r,o,i,a,u=Dc(qc,!0,t),s=Dc(qc,!1,t);if(o=n.startContainer,i=n.startOffset,_a(o)){if(Bc(o)||(o=o.parentNode),"before"===(a=o.getAttribute("data-mce-caret"))&&(r=o.nextSibling,Tc(r)))return Hc(r);if("after"===a&&(r=o.previousSibling,Tc(r)))return jc(r)}if(!n.collapsed)return n;if(Bo.isText(o)){if(_c(o)){if(1===e){if(r=s(o))return Hc(r);if(r=u(o))return jc(r)}if(-1===e){if(r=u(o))return jc(r);if(r=s(o))return Hc(r)}return n}if(Ma(o)&&i>=o.data.length-1)return 1===e&&(r=s(o))?Hc(r):n;if(Ia(o)&&i<=1)retur
 n-1===e&&(r=u(o))?jc(r):n;if(i===o.data.length)return(r=s(o))?Hc(r):n;if(0===i)return(r=u(o))?jc(r):n}return n},Wc=function(e,t){var n=zc(e,t);return kc(n)&&!Bo.isBogusAll(n)},Kc=function(e,t){return Bo.isTable(zc(e,t))},Xc=function(e,t){return A.from(zc(e?0:-1,t)).filter(kc)},Yc=function(e,t,n){var r=$c(e,t,n);return-1===e?Su.fromRangeStart(r):Su.fromRangeEnd(r)},Gc=Dc(Wc,0),Jc=Dc(Wc,-1),Qc=Dc(Kc,0),Zc=Dc(Kc,-1),el=function(e){return Au.isTextPosition(e)?0===e.offset():Ka(e.getNode())},tl=function(e){if(Au.isTextPosition(e)){var t=e.container();return e.offset()===t.data.length}return Ka(e.getNode(!0))},nl=function(e,t){return!Au.isTextPosition(e)&&!Au.isTextPosition(t)&&e.getNode()===t.getNode(!0)},rl=function(e,t,n){return e?!nl(t,n)&&(r=t,!(!Au.isTextPosition(r)&&Bo.isBr(r.getNode())))&&tl(t)&&el(n):!nl(n,t)&&el(t)&&tl(n);var r},ol=function(e,t,n){var r=Ts(t);return A.from(e?r.next(n):r.prev(n))},il=
 function(e,t){var n,r,o,i,a,u=e?t.firstChild:t.lastChild;return Bo.isText(u)?A.some(Au(u,e?0:u.data.length)):u?Ka(u)?A.some(e?Au.before(u):(a=u,Bo.isBr(a)?Au.before(a):Au.after(a))):(r=t,o=u,i=(n=e)?Au.before(o):Au.after(o),ol(n,r,i)):A.none()},al={fromPosition:ol,nextPosition:b(ol,!0),prevPosition:b(ol,!1),navigate:function(t,n,r){return ol(t,n,r).bind(function(e){return Uc(r,e,n)&&rl(t,r,e)?ol(t,n,e):A.some(e)})},positionIn:il,firstPositionIn:b(il,!0),lastPositionIn:b(il,!1)},ul=function(e,t){return!e.isBlock(t)||t.innerHTML||Re.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t},sl=function(e,t){return al.lastPositionIn(e).fold(function(){return!1},function(e){return t.setStart(e.container(),e.offset()),t.setEnd(e.container(),e.offset()),!0})},cl=function(e,t,n){return!(!1!==t.hasChildNodes()||!Ju(e,t)||(o=n,i=(r=t).ownerDocument.createTextNode(Sa),r.appendChild(i),o.setStart(i,0),o.setEnd(i,0),0));var r,o,i},ll=function(e,t,n,r){var o,i,a,u,s=n[t?"start
 ":"end"],c=e.getRoot();if(s){for(a=s[0],i=c,o=s.length-1;1<=o;o--){if(u=i.childNodes,cl(c,i,r))return!0;if(s[o]>u.length-1)return!!cl(c,i,r)||sl(i,r);i=u[s[o]]}3===i.nodeType&&(a=Math.min(s[0],i.nodeValue.length)),1===i.nodeType&&(a=Math.min(s[0],i.childNodes.length)),t?r.setStart(i,a):r.setEnd(i,a)}return!0},fl=function(e){return Bo.isText(e)&&0<e.data.length},dl=function(e,t,n){var r,o,i,a,u,s,c=e.get(n.id+"_"+t),l=n.keep;if(c){if(r=c.parentNode,"start"===t?l?c.hasChildNodes()?(r=c.firstChild,o=1):fl(c.nextSibling)?(r=c.nextSibling,o=0):fl(c.previousSibling)?(r=c.previousSibling,o=c.previousSibling.data.length):(r=c.parentNode,o=e.nodeIndex(c)+1):o=e.nodeIndex(c):l?c.hasChildNodes()?(r=c.firstChild,o=1):fl(c.previousSibling)?(r=c.previousSibling,o=c.previousSibling.data.length):(r=c.parentNode,o=e.nodeIndex(c)):o=e.nodeIndex(c),u=r,s=o,!l){for(a=c.previousSibling,i=c.nextSibling,Yt.each(Yt.grep(c.childNodes),funct
 ion(e){Bo.isText(e)&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});c=e.get(n.id+"_"+t);)e.remove(c,!0);a&&i&&a.nodeType===i.nodeType&&Bo.isText(a)&&!Re.opera&&(o=a.nodeValue.length,a.appendData(i.nodeValue),e.remove(i),u=a,s=o)}return A.some(Au(u,s))}return A.none()},ml=function(e,t){var n,r,o,i,a,u,s,c,l,f,d,m,g,p,h,v,b=e.dom;if(t){if(v=t,Yt.isArray(v.start))return p=t,h=(g=b).createRng(),ll(g,!0,p,h)&&ll(g,!1,p,h)?A.some(h):A.none();if("string"==typeof t.start)return A.some((f=t,d=(l=b).createRng(),m=Mu(l.getRoot(),f.start),d.setStart(m.container(),m.offset()),m=Mu(l.getRoot(),f.end),d.setEnd(m.container(),m.offset()),d));if(t.hasOwnProperty("id"))return s=dl(o=b,"start",i=t),c=dl(o,"end",i),au([s,(a=c,u=s,a.isSome()?a:u)],function(e,t){var n=o.createRng();return n.setStart(ul(o,e.container()),e.offset()),n.setEnd(ul(o,t.container()),t.offset()),n});if(t.hasOwnPr
 operty("name"))return n=b,r=t,A.from(n.select(r.name)[r.index]).map(function(e){var t=n.createRng();return t.selectNode(e),t});if(t.hasOwnProperty("rng"))return A.some(t.rng)}return A.none()},gl=function(e,t,n){return Xu.getBookmark(e,t,n)},pl=function(t,e){ml(t,e).each(function(e){t.setRng(e)})},hl=function(e){return Bo.isElement(e)&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},vl=function(e){return e&&/^(IMG)$/.test(e.nodeName)},bl=function(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)},yl=function(e,t,n){return"color"!==n&&"backgroundColor"!==n||(t=e.toHex(t)),"fontWeight"===n&&700===t&&(t="bold"),"fontFamily"===n&&(t=t.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+t},Cl={isInlineBlock:vl,moveStart:function(e,t,n){var r,o,i,a=n.startOff
 set,u=n.startContainer;if((n.startContainer!==n.endContainer||!vl(n.startContainer.childNodes[n.startOffset]))&&1===u.nodeType)for(a<(i=u.childNodes).length?r=new io(u=i[a],e.getParent(u,e.isBlock)):(r=new io(u=i[i.length-1],e.getParent(u,e.isBlock))).next(!0),o=r.current();o;o=r.next())if(3===o.nodeType&&!bl(o))return n.setStart(o,0),void t.setRng(n)},getNonWhiteSpaceSibling:function(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1===e.nodeType||!bl(e))return e},isTextBlock:function(e,t){return t.nodeType&&(t=t.nodeName),!!e.schema.getTextBlockElements()[t.toLowerCase()]},isValid:function(e,t,n){return e.schema.isValidChild(t,n)},isWhiteSpaceNode:bl,replaceVars:function(e,n){return"string"!=typeof e?e=e(n):n&&(e=e.replace(/%(\w+)/g,function(e,t){return n[t]||e})),e},isEq:function(e,t){return t=t||"",e=""+((e=e||"").nodeName||e),t=""+(t.nodeName||t),e.
 toLowerCase()===t.toLowerCase()},normalizeStyleValue:yl,getStyle:function(e,t,n){return yl(e,e.getStyle(t,n),n)},getTextDecoration:function(t,e){var n;return t.getParent(e,function(e){return(n=t.getStyle(e,"text-decoration"))&&"none"!==n}),n},getParents:function(e,t,n){return e.getParents(t,n,e.getRoot())}},xl=hl,wl=Cl.getParents,Nl=Cl.isWhiteSpaceNode,El=Cl.isTextBlock,Sl=function(e,t){for(void 0===t&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)(e=e.childNodes[t])&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}},Tl=function(e,t){for(var n=t;n;){if(1===n.nodeType&&e.getContentEditable(n))return"false"===e.getContentEditable(n)?n:t;n=n.parentNode}return t},kl=function(e,t,n,r){var o,i,a=n.nodeValue;return void 0===r&&(r=e?a.length:0),e?(o=a.lastIndexOf(" ",r),-1===(o=(i=a.lastIndexOf("\xa0",r))<o?o:i)||t||o++):(o=a.indexOf(" &quo
 t;,r),i=a.indexOf("\xa0",r),o=-1!==o&&(-1===i||o<i)?o:i),o},Al=function(e,t,n,r,o,i){var a,u,s,c;if(3===n.nodeType){if(-1!==(s=kl(o,i,n,r)))return{container:n,offset:s};c=n}for(a=new io(n,e.getParent(n,e.isBlock)||t);u=a[o?"prev":"next"]();)if(3===u.nodeType){if(-1!==(s=kl(o,i,c=u)))return{container:u,offset:s}}else if(e.isBlock(u))break;if(c)return{container:c,offset:r=o?0:c.length}},_l=function(e,t,n,r,o){var i,a,u,s;for(3===r.nodeType&&0===r.nodeValue.length&&r[o]&&(r=r[o]),i=wl(e,r),a=0;a<i.length;a++)for(u=0;u<t.length;u++)if(!("collapsed"in(s=t[u])&&s.collapsed!==n.collapsed)&&e.is(i[a],s.selector))return i[a];return r},Rl=function(t,e,n,r){var o,i=t.dom,a=i.getRoot();if(e[0].wrapper||(o=i.getParent(n,e[0].block,a)),!o){var u=i.getParent(n,"LI,TD,TH");o=i.getParent(3===n.nodeType?n.parentNode:n,function(e){return e!==a&&El(t,e)},u)}if(o&&e[0].wrapper&&
 amp;(o=wl(i,o,"ul,ol").reverse()[0]||o),!o)for(o=n;o[r]&&!i.isBlock(o[r])&&(o=o[r],!Cl.isEq(o,"br")););return o||n},Dl=function(e,t,n,r,o,i,a){var u,s,c,l,f,d;if(u=s=a?n:o,l=a?"previousSibling":"nextSibling",f=e.getRoot(),3===u.nodeType&&!Nl(u)&&(a?0<r:i<u.nodeValue.length))return u;for(;;){if(!t[0].block_expand&&e.isBlock(s))return s;for(c=s[l];c;c=c[l])if(!xl(c)&&!Nl(c)&&("BR"!==(d=c).nodeName||!d.getAttribute("data-mce-bogus")||d.nextSibling))return s;if(s===f||s.parentNode===f){u=s;break}s=s.parentNode}return u},Bl=function(e,t,n,r){var o,i=t.startContainer,a=t.startOffset,u=t.endContainer,s=t.endOffset,c=e.dom;return 1===i.nodeType&&i.hasChildNodes()&&3===(i=ru(i,a)).nodeType&&(a=0),1===u.nodeType&&u.hasChildNodes()&&3===(u=ru(u,t.collapsed?s:s-1)).nodeType&&(s=u.nodeValue.length),i=Tl(c,i),u=Tl(c,u),(xl(i.pare
 ntNode)||xl(i))&&3===(i=(i=xl(i)?i:i.parentNode).nextSibling||i).nodeType&&(a=0),(xl(u.parentNode)||xl(u))&&3===(u=(u=xl(u)?u:u.parentNode).previousSibling||u).nodeType&&(s=u.length),n[0].inline&&(t.collapsed&&((o=Al(c,e.getBody(),i,a,!0,r))&&(i=o.container,a=o.offset),(o=Al(c,e.getBody(),u,s,!1,r))&&(u=o.container,s=o.offset)),u=r?u:function(e,t){var n=Sl(e,t);if(n.node){for(;n.node&&0===n.offset&&n.node.previousSibling;)n=Sl(n.node.previousSibling);n.node&&0<n.offset&&3===n.node.nodeType&&" "===n.node.nodeValue.charAt(n.offset-1)&&1<n.offset&&(e=n.node).splitText(n.offset-1)}return e}(u,s)),(n[0].inline||n[0].block_expand)&&(n[0].inline&&3===i.nodeType&&0!==a||(i=Dl(c,n,i,a,u,s,!0)),n[0].inline&&3===u.nodeType&&s!==u.nodeValue.length||(u=Dl(c,n,i,a,u,s,!1))),n[0].selector&&!1!==n[0].expand&&!
 n[0].inline&&(i=_l(c,n,t,i,"previousSibling"),u=_l(c,n,t,u,"nextSibling")),(n[0].block||n[0].selector)&&(i=Rl(e,n,i,"previousSibling"),u=Rl(e,n,u,"nextSibling"),n[0].block&&(c.isBlock(i)||(i=Dl(c,n,i,a,u,s,!0)),c.isBlock(u)||(u=Dl(c,n,i,a,u,s,!1)))),1===i.nodeType&&(a=c.nodeIndex(i),i=i.parentNode),1===u.nodeType&&(s=c.nodeIndex(u)+1,u=u.parentNode),{startContainer:i,startOffset:a,endContainer:u,endOffset:s}},Ol=Yt.each,Pl=function(e,t,o){var n,r,i,a,u,s,c,l=t.startContainer,f=t.startOffset,d=t.endContainer,m=t.endOffset;if(0<(c=e.select("td[data-mce-selected],th[data-mce-selected]")).length)Ol(c,function(e){o([e])});else{var g,p,h,v=function(e){var t;return 3===(t=e[0]).nodeType&&t===l&&f>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===m&&0<e.length&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e},b=function(e,t,n){for(va
 r r=[];e&&e!==n;e=e[t])r.push(e);return r},y=function(e,t){do{if(e.parentNode===t)return e;e=e.parentNode}while(e)},C=function(e,t,n){var r=n?"nextSibling":"previousSibling";for(u=(a=e).parentNode;a&&a!==t;a=u)u=a.parentNode,(s=b(a===e?a:a[r],r)).length&&(n||s.reverse(),o(v(s)))};if(1===l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[f]),1===d.nodeType&&d.hasChildNodes()&&(p=m,h=(g=d).childNodes,--p>h.length-1?p=h.length-1:p<0&&(p=0),d=h[p]||g),l===d)return o(v([l]));for(n=e.findCommonAncestor(l,d),a=l;a;a=a.parentNode){if(a===d)return C(l,n,!0);if(a===n)break}for(a=d;a;a=a.parentNode){if(a===l)return C(d,n);if(a===n)break}r=y(l,n)||l,i=y(d,n)||d,C(l,r,!0),(s=b(r===l?r:r.nextSibling,"nextSibling",i===d?i.nextSibling:i)).length&&o(v(s)),C(d,i)}},Ll=(ks=sr.isText,As="text",_s=function(e){return ks(e)?A.from(e.dom().nodeValue):A.none()},Rs=Qn.detect().browser,{get:functi
 on(e){if(!ks(e))throw new Error("Can only get "+As+" value of a "+As+" node");return Ds(e).getOr("")},getOption:Ds=Rs.isIE()&&10===Rs.version.major?function(e){try{return _s(e)}catch(Kw){return A.none()}}:_s,set:function(e,t){if(!ks(e))throw new Error("Can only set raw "+As+" value of a "+As+" node");e.dom().nodeValue=t}}),Il=function(e){return Ll.get(e)},Ml=function(r,o,i,a){return Wr.parent(o).fold(function(){return"skipping"},function(e){return"br"===a||(n=o,sr.isText(n)&&"\ufeff"===Il(n))?"skipping":(t=o,sr.isElement(t)&&Ki.has(t,ia())?"existing":Gu(o)?"caret":Cl.isValid(r,i,a)&&Cl.isValid(r,sr.name(e),i)?"valid":"invalid-child");var t,n})},Fl=undefined&&undefined.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=
 e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&(n[r[o]]=e[r[o]])}return n},Ul=function(r,e,t,n,o){var i,a,u=o.uid,s=void 0===u?(i="mce-annotation",a=(new Date).getTime(),i+"_"+Math.floor(1e9*Math.random())+ ++ga+String(a)):u,c=Fl(o,["uid"]),l=[],f=er.fromTag("span");Ki.add(f,ia()),vr.set(f,""+ua(),s),vr.set(f,""+aa(),t);var d=n(s,c),m=d.attributes,g=void 0===m?{}:m,p=d.classes,h=void 0===p?[]:p;vr.setAll(f,g),pa(f,h);var v=Oi(A.none()),b=function(){v.set(A.none())},y=function(e){F(e,C)},C=function(e){switch(Ml(r,e,"span",sr.name(e))){case"invalid-child":b();var t=Wr.children(e);y(t),b();break;case"valid":var n=v.get().getOrThunk(function(){var e=ba(f);return l.push(e),v.set(A.some(e)),e});ki.wrap(e,n)}};return Pl(r.dom,e,function(e){var t;b(),t=$(e,er.fromDom),y(t)
 }),l},zl=function(a,u,s,c){a.undoManager.transact(function(){var e,t,n,r=a.selection.getRng();r.collapsed&&(n=Bl(e=a,t=r,[{inline:!0}],!1),t.setStart(n.startContainer,n.startOffset),t.setEnd(n.endContainer,n.endOffset),e.selection.setRng(t));var o=Xu.getPersistentBookmark(a.selection,!0),i=a.selection.getRng();Ul(a,i,u,s.decorate,c),a.selection.moveToBookmark(o)})};function Vl(r){var o=ma();da(r,o);var n=fa(r,o);return{register:function(e,t){o.register(e,t)},annotate:function(t,n){o.lookup(t).each(function(e){zl(r,t,e,n)})},annotationChanged:function(e,t){n.addListener(e,t)},remove:function(e){sa(r,A.some(e)).each(function(e){var t=e.elements;F(t,Di.unwrap)})},getAll:function(e){var t=la(r,e);return fr(t,function(e){return $(e,function(e){return e.dom()})})}}}var ql=function(e){return Yt.grep(e.childNodes,function(e){return"LI"===e.nodeName})},Hl=function(e){return e&&e.firstChild&&e.firstChild===e.lastChild&&("\xa0"===(t=e.firstCh
 ild).data||Bo.isBr(t));var t},jl=function(e){return 0<e.length&&(!(t=e[e.length-1]).firstChild||Hl(t))?e.slice(0,-1):e;var t},$l=function(e,t){var n=e.getParent(t,e.isBlock);return n&&"LI"===n.nodeName?n:null},Wl=function(e,t){var n=Au.after(e),r=Ts(t).prev(n);return r?r.toRange():null},Kl=function(t,e,n){var r,o,i,a,u=t.parentNode;return Yt.each(e,function(e){u.insertBefore(e,t)}),r=t,o=n,i=Au.before(r),(a=Ts(o).next(i))?a.toRange():null},Xl=function(e,t){var n,r,o,i,a,u,s=t.firstChild,c=t.lastChild;return s&&"meta"===s.name&&(s=s.next),c&&"mce_marker"===c.attr("id")&&(c=c.prev),r=c,u=(n=e).getNonEmptyElements(),r&&(r.isEmpty(u)||(o=r,n.getBlockElements()[o.name]&&(a=o).firstChild&&a.firstChild===a.lastChild&&("br"===(i=o.firstChild).name||"\xa0"===i.value)))&&(c=c.prev),!(!s||s!==c||"ul"!==s.name&&"ol"!==
 s.name)},Yl=function(e,o,i,t){var n,r,a,u,s,c,l,f,d,m,g,p,h,v,b,y,C,x,w,N=(n=o,r=t,c=e.serialize(r),l=n.createFragment(c),u=(a=l).firstChild,s=a.lastChild,u&&"META"===u.nodeName&&u.parentNode.removeChild(u),s&&"mce_marker"===s.id&&s.parentNode.removeChild(s),a),E=$l(o,i.startContainer),S=jl(ql(N.firstChild)),T=o.getRoot(),k=function(e){var t=Au.fromRangeStart(i),n=Ts(o.getRoot()),r=1===e?n.prev(t):n.next(t);return!r||$l(o,r.getNode())!==E};return k(1)?Kl(E,S,T):k(2)?(f=E,d=S,m=T,o.insertAfter(d.reverse(),f),Wl(d[0],m)):(p=S,h=T,v=g=E,y=(b=i).cloneRange(),C=b.cloneRange(),y.setStartBefore(v),C.setEndAfter(v),x=[y.cloneContents(),C.cloneContents()],(w=g.parentNode).insertBefore(x[0],g),Yt.each(p,function(e){w.insertBefore(e,g)}),w.insertBefore(x[1],g),w.removeChild(g),Wl(p[p.length-1],h))},Gl=function(e,t){return!!$l(e,t)},Jl=Yt.each,Ql=function(o){this.compare=function(e,t){if(e.nodeName!==t.nodeName)return!1;var n=function(n){var r
 ={};return Jl(o.getAttribs(n),function(e){var t=e.nodeName.toLowerCase();0!==t.indexOf("_")&&"style"!==t&&0!==t.indexOf("data-")&&(r[t]=o.getAttrib(n,t))}),r},r=function(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(void 0===(n=t[r]))return!1;if(e[r]!==n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0};return!(!r(n(e),n(t))||!r(o.parseStyle(o.getAttrib(e,"style")),o.parseStyle(o.getAttrib(t,"style")))||hl(e)||hl(t))}},Zl=function(e){var t=Xi(e,"br"),n=U(function(e){for(var t=[],n=e.dom();n;)t.push(er.fromDom(n)),n=n.lastChild;return t}(e).slice(-1),go);t.length===n.length&&F(n,Di.remove)},ef=function(e){Di.empty(e),ki.append(e,er.fromHtml('<br data-mce-bogus="1">'))},tf=function(n){Wr.lastChild(n).each(function(t){Wr.prevSibling(t).each(function(e){fo(n)&&go(t)&&fo(e)&&Di.remove(t)})})},nf=Yt.makeMap;function rf(e){var u,s,
 c,l,f,d=[];return u=(e=e||{}).indent,s=nf(e.indent_before||""),c=nf(e.indent_after||""),l=Wo.getEncodeFunc(e.entity_encoding||"raw",e.entities),f="html"===e.element_format,{start:function(e,t,n){var r,o,i,a;if(u&&s[e]&&0<d.length&&0<(a=d[d.length-1]).length&&"\n"!==a&&d.push("\n"),d.push("<",e),t)for(r=0,o=t.length;r<o;r++)i=t[r],d.push(" ",i.name,'="',l(i.value,!0),'"');d[d.length]=!n||f?">":" />",n&&u&&c[e]&&0<d.length&&0<(a=d[d.length-1]).length&&"\n"!==a&&d.push("\n")},end:function(e){var t;d.push("</",e,">"),u&&c[e]&&0<d.length&&0<(t=d[d.length-1]).length&&"\n"!==t&&d.push("\n")},text:function(e,t){0<e.length&&(d[d.length]=t?e:l(e))},cdata
 :function(e){d.push("<![CDATA[",e,"]]>")},comment:function(e){d.push("\x3c!--",e,"--\x3e")},pi:function(e,t){t?d.push("<?",e," ",l(t),"?>"):d.push("<?",e,"?>"),u&&d.push("\n")},doctype:function(e){d.push("<!DOCTYPE",e,">",u?"\n":"")},reset:function(){d.length=0},getContent:function(){return d.join("").replace(/\n$/,"")}}}function of(t,g){void 0===g&&(g=ri());var p=rf(t);return(t=t||{}).validate=!("validate"in t)||t.validate,{serialize:function(e){var f,d;d=t.validate,f={3:function(e){p.text(e.value,e.raw)},8:function(e){p.comment(e.value)},7:function(e){p.pi(e.name,e.value)},10:function(e){p.doctype(e.value)},4:function(e){p.cdata(e.value)},11:function(e){if(e=e.firstChild)for(;m(e),e=e.next;);}},p.reset();var m=function(e){var t,n,r,o,i,a,u,s,c,l=f[e.type];if(l)l(e);else{if(t
 =e.name,n=e.shortEnded,r=e.attributes,d&&r&&1<r.length&&((a=[]).map={},c=g.getElementRule(e.name))){for(u=0,s=c.attributesOrder.length;u<s;u++)(o=c.attributesOrder[u])in r.map&&(i=r.map[o],a.map[o]=i,a.push({name:o,value:i}));for(u=0,s=r.length;u<s;u++)(o=r[u].name)in a.map||(i=r.map[o],a.map[o]=i,a.push({name:o,value:i}));r=a}if(p.start(e.name,r,n),!n){if(e=e.firstChild)for(;m(e),e=e.next;);p.end(t)}}};return 1!==e.type||t.inner?f[11](e):m(e),p.getContent()}}}var af=function(a){var u=Au.fromRangeStart(a),s=Au.fromRangeEnd(a),c=a.commonAncestorContainer;return al.fromPosition(!1,c,s).map(function(e){return!Uc(u,s,c)&&Uc(u,e,c)?(t=u.container(),n=u.offset(),r=e.container(),o=e.offset(),(i=document.createRange()).setStart(t,n),i.setEnd(r,o),i):a;var t,n,r,o,i}).getOr(a)},uf=function(e){return e.collapsed?e:af(e)},sf=Bo.matchNodeNames("td th"),cf=function(o,e,t){var n,r,i,a,u,s,c,l,f,d,m,g,p=o.schema.getTextInlineElements(),h=o
 .selection,v=o.dom;if(/^ | $/.test(e)&&(e=function(e){var t,n,r;t=h.getRng(),n=t.startContainer,r=t.startOffset;var o=function(e){return n[e]&&3===n[e].nodeType};return 3===n.nodeType&&(0<r?e=e.replace(/^&nbsp;/," "):o("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),r<n.length?e=e.replace(/&nbsp;(<br>|)$/," "):o("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}(e)),n=o.parser,g=t.merge,r=of({validate:o.settings.validate},o.schema),m='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#x200B;</span>',s={content:e,format:"html",selection:!0,paste:t.paste},(s=o.fire("BeforeSetContent",s)).isDefaultPrevented())o.fire("SetContent",{content:s.content,format:"html",selection:!0,paste:t.paste});else{-1===(e=s.content).indexOf("{$caret}")&&(e+="{$car
 et}"),e=e.replace(/\{\$caret\}/,m);var b,y,C,x,w=(l=h.getRng()).startContainer||(l.parentElement?l.parentElement():null),N=o.getBody();w===N&&h.isCollapsed()&&v.isBlock(N.firstChild)&&(b=N.firstChild)&&!o.schema.getShortEndedElements()[b.nodeName]&&v.isEmpty(N.firstChild)&&((l=v.createRng()).setStart(N.firstChild,0),l.setEnd(N.firstChild,0),h.setRng(l)),h.isCollapsed()||(o.selection.setRng(uf(o.selection.getRng())),o.getDoc().execCommand("Delete",!1,null),C=(y=h.getRng()).startContainer,x=y.startOffset,3===C.nodeType&&y.collapsed&&("\xa0"===C.data[x]?(C.deleteData(x,1),/[\u00a0| ]$/.test(e)||(e+=" ")):"\xa0"===C.data[x-1]&&(C.deleteData(x-1,1),/[\u00a0| ]$/.test(e)||(e=" "+e))));var E,S,T,k={context:(i=h.getNode()).nodeName.toLowerCase(),data:t.data,insert:!0};if(u=n.parse(e,k),!0===t.paste&&Xl(o.schema,u)&&Gl(v,i))return l=Yl(r,v,o.selection
 .getRng(),u),o.selection.setRng(l),void o.fire("SetContent",s);if(function(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}(u),"mce_marker"===(f=u.lastChild).attr("id"))for(f=(c=f).prev;f;f=f.walk(!0))if(3===f.type||!v.isBlock(f.name)){o.schema.isValidChild(f.parent.name,"span")&&f.parent.insert(c,f,"br"===f.name);break}if(o._selectionOverrides.showBlockCaretContainer(i),k.invalid){for(h.setContent(m),i=h.getNode(),a=o.getBody(),9===i.nodeType?i=f=a:f=i;f!==a;)f=(i=f).parentNode;e=i===a?a.innerHTML:v.getOuterHTML(i),e=r.serialize(n.parse(e.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return r.serialize(u)}))),i===a?v.setHTML(a,e):v.setOuterHTML(i,e)}else e=r.serialize(u),function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,o=n.la
 stChild;!r||r===o&&"BR"===r.nodeName?e.dom.setHTML(n,t):e.selection.setContent(t)}}(o,e,i);!function(){if(g){var n=o.getBody(),r=new Ql(v);Yt.each(v.select("*[data-mce-fragment]"),function(e){for(var t=e.parentNode;t&&t!==n;t=t.parentNode)p[e.nodeName.toLowerCase()]&&r.compare(t,e)&&v.remove(e,!0)})}}(),function(e){var t,n,r;if(e){if(h.scrollIntoView(e),t=function(e){for(var t=o.getBody();e&&e!==t;e=e.parentNode)if("false"===o.dom.getContentEditable(e))return e;return null}(e))return v.remove(e),h.select(t);l=v.createRng(),(f=e.previousSibling)&&3===f.nodeType?(l.setStart(f,f.nodeValue.length),Re.ie||(d=e.nextSibling)&&3===d.nodeType&&(f.appendData(d.data),d.parentNode.removeChild(d))):(l.setStartBefore(e),l.setEndBefore(e)),n=v.getParent(e,v.isBlock),v.remove(e),n&&v.isEmpty(n)&&(o.$(n).empty(),l.setStart(n,0),l.setEnd(n,0),sf(n)||n.getAttribute("data-mce-fragment&quot
 ;)||!(r=function(e){var t=Au.fromRangeStart(e);if(t=Ts(o.getBody()).next(t))return t.toRange()}(l))?v.add(n,v.create("br",{"data-mce-bogus":"1"})):(l=r,v.remove(n))),h.setRng(l)}}(v.get("mce_marker")),E=o.getBody(),Yt.each(E.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")}),S=o.dom,T=o.selection.getStart(),A.from(S.getParent(T,"td,th")).map(er.fromDom).each(tf),o.fire("SetContent",s),o.addVisual()}},lf=function(e,t){var n,r,o="string"!=typeof(n=t)?(r=Yt.extend({paste:n.paste,data:{paste:n.paste}},n),{content:n.content,details:r}):{content:n,details:{}};cf(e,o.content,o.details)},ff=Ar("sections","settings"),df=Qn.detect().deviceType.isTouch(),mf=["lists","autolink","autosave"],gf={theme:"mobile"},pf=function(e){var t=R(e)?e.join(" "):e,n=$(k(t)?t.split(" "):[],$n);return U(n,function(e){
 return 0<e.length})},hf=function(n,e){var r,o,i,t=(r=function(e,t){return I(n,t)},o={},i={},lr(e,function(e,t){(r(e,t)?o:i)[t]=e}),{t:o,f:i});return ff(t.t,t.f)},vf=function(e,t){return e.sections().hasOwnProperty(t)},bf=function(e,t,n,r){var o,i=pf(n.forced_plugins),a=pf(r.plugins),u=e&&vf(t,"mobile")?U(a,b(I,mf)):a,s=(o=u,[].concat(pf(i)).concat(pf(o)));return Yt.extend(r,{plugins:s.join(" ")})},yf=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m,g=hf(["mobile"],r),p=Yt.extend(t,n,g.settings(),(f=e,m=(d=g).settings().inline,f&&vf(d,"mobile")&&!m?(u="mobile",s=gf,c=g.sections(),l=c.hasOwnProperty(u)?c[u]:{},Yt.extend({},s,l)):{}),{validate:!0,content_editable:g.settings().inline,external_plugins:(o=n,i=g.settings(),a=i.external_plugins?i.external_plugins:{},o&&o.external_plugins?Yt.extend({},o.external_plugins,a):a)});return bf(e,g,n,p)},Cf=function(e,t,n){return A.from(t.settings[n]).filter(e)},xf=b(Cf,k
 ),wf=function(e,t,n,r){var o,i,a,u=t in e.settings?e.settings[t]:n;return"hash"===r?(a={},"string"==typeof(i=u)?F(0<i.indexOf("=")?i.split(/[;,](?![^=;,]*(?:[;,]|$))/):i.split(","),function(e){var t=e.split("=");1<t.length?a[Yt.trim(t[0])]=Yt.trim(t[1]):a[Yt.trim(t[0])]=Yt.trim(t)}):a=i,a):"string"===r?Cf(k,e,t).getOr(n):"number"===r?Cf(P,e,t).getOr(n):"boolean"===r?Cf(B,e,t).getOr(n):"object"===r?Cf(_,e,t).getOr(n):"array"===r?Cf(R,e,t).getOr(n):"string[]"===r?Cf((o=k,function(e){return R(e)&&J(e,o)}),e,t).getOr(n):"function"===r?Cf(O,e,t).getOr(n):u},Nf=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,Ef=function(e,t){var n=t.container(),r=t.offset();return e?Ra(n)?Bo.isText(n.nextSibling)?Au(n.nextSibling,0):Au.after(n):Oa(t)?Au(n,r+1):t:Ra(n)?Bo.isText(n.previousSibling)?Au(n.previousSibling,n.previousSibling.data.length):Au.before(n):Pa(t)?Au(n,r-1):t
 },Sf={isInlineTarget:function(e,t){var n=xf(e,"inline_boundaries_selector").getOr("a[href],code");return Ir.is(er.fromDom(t),n)},findRootInline:function(e,t,n){var r,o,i,a=(r=e,o=t,i=n,U(hi.DOM.getParents(i.container(),"*",o),r));return A.from(a[a.length-1])},isRtl:function(e){return"rtl"===hi.DOM.getStyle(e,"direction",!0)||(t=e.textContent,Nf.test(t));var t},isAtZwsp:function(e){return Oa(e)||Pa(e)},normalizePosition:Ef,normalizeForwards:b(Ef,!0),normalizeBackwards:b(Ef,!1),hasSameParentBlock:function(e,t,n){var r=Fc(t,e),o=Fc(n,e);return r&&r===o}},Tf=function(e,t){return Ur.contains(e,t)?ea.closest(t,function(e){return po(e)||vo(e)},(n=e,function(e){return Ur.eq(n,er.fromDom(e.dom().parentNode))})):A.none();var n},kf=function(e){var t,n,r;e.dom.isEmpty(e.getBody())&&(e.setContent(""),n=(t=e).getBody(),r=n.firstChild&&t.dom.isBlock(n.firstChild)?n.firstChild:n,t.selection.setCursorLocation(r,0))},
 Af=function(i,a,u){return au([al.firstPositionIn(u),al.lastPositionIn(u)],function(e,t){var n=Sf.normalizePosition(!0,e),r=Sf.normalizePosition(!1,t),o=Sf.normalizePosition(!1,a);return i?al.nextPosition(u,o).map(function(e){return e.isEqual(r)&&a.isEqual(n)}).getOr(!1):al.prevPosition(u,o).map(function(e){return e.isEqual(n)&&a.isEqual(r)}).getOr(!1)}).getOr(!0)},_f=function(e,t,n){return na(e,t,n).isSome()},Rf=function(e,t){return Bo.isText(t)&&/^[ \t\r\n]*$/.test(t.data)&&!1===(n=e,r=t,o=er.fromDom(n),i=er.fromDom(r),_f(i,"pre,code",b(Ur.eq,o)));var n,r,o,i},Df=function(e,t){return Ka(t)&&!1===Rf(e,t)||(n=t,Bo.isElement(n)&&"A"===n.nodeName&&n.hasAttribute("name"))||Bf(t);var n},Bf=Bo.hasAttribute("data-mce-bookmark"),Of=Bo.hasAttribute("data-mce-bogus"),Pf=Bo.hasAttributeValue("data-mce-bogus","all"),Lf=function(e){return function(e){var t,n,r=0;if(Df(e,e
 ))return!1;if(!(n=e.firstChild))return!0;t=new io(n,e);do{if(Pf(n))n=t.next(!0);else if(Of(n))n=t.next();else if(Bo.isBr(n))r++,n=t.next();else{if(Df(e,n))return!1;n=t.next()}}while(n);return r<=1}(e.dom())},If=Ar("block","position"),Mf=Ar("from","to"),Ff=function(e,t){var n=er.fromDom(e),r=er.fromDom(t.container());return Tf(n,r).map(function(e){return If(e,t)})},Uf=function(o,i,e){var t=Ff(o,Au.fromRangeStart(e)),n=t.bind(function(e){return al.fromPosition(i,o,e.position()).bind(function(e){return Ff(o,e).map(function(e){return t=o,n=i,r=e,Bo.isBr(r.position().getNode())&&!1===Lf(r.block())?al.positionIn(!1,r.block().dom()).bind(function(e){return e.isEqual(r.position())?al.fromPosition(n,t,e).bind(function(e){return Ff(t,e)}):A.some(r)}).getOr(r):r;var t,n,r})})});return au([t,n],Mf).filter(function(e){return r=e,!1===Ur.eq(r.from().block(),r.to().block())&&(n=e,Wr.parent(n.from().block()).bind(function(t){return Wr.paren
 t(n.to().block()).filter(function(e){return Ur.eq(t,e)})}).isSome())&&(t=e,!1===Bo.isContentEditableFalse(t.from().block())&&!1===Bo.isContentEditableFalse(t.to().block()));var t,n,r})},zf=function(e,t,n){return n.collapsed?Uf(e,t,n):A.none()},Vf=function(e,t,n){return Ur.contains(t,e)?Wr.parents(e,function(e){return n(e)||Ur.eq(e,t)}).slice(0,-1):[]},qf=function(e,t){return Vf(e,t,H(!1))},Hf=qf,jf=function(e,t){return[e].concat(qf(e,t))},$f=function(e){var t,n,r=(t=e,n=Wr.children(t),K(n,fo).fold(function(){return n},function(e){return n.slice(0,e)}));return F(r,function(e){Di.remove(e)}),r},Wf=function(e,t){al.positionIn(e,t.dom()).each(function(e){var t=e.getNode();Bo.isBr(t)&&Di.remove(er.fromDom(t))})},Kf=function(e,t){var n=jf(t,e);return V(n.reverse(),Lf).each(Di.remove)},Xf=function(o,i){return Ur.contains(i,o)?Wr.parent(o).bind(function(e){return Ur.eq(e,i)?A.some(o):(t=i,n=o,r=Wr.parents(n,function(e){return Ur.eq(e,t)}),A.from(r[r.length-2]));var t
 ,n,r}):A.none()},Yf=function(n,r,o){if(Lf(o))return Di.remove(o),Lf(r)&&ef(r),al.firstPositionIn(r.dom());Wf(!0,r),Wf(!1,o);var i=$f(r);return Xf(r,o).fold(function(){Kf(n,r);var e=al.lastPositionIn(o.dom());return F(i,function(e){ki.append(o,e)}),e},function(t){var e=al.prevPosition(o.dom(),Au.before(t.dom()));return F(i,function(e){ki.before(t,e)}),Kf(n,r),e})},Gf=function(e,t,n,r){return t?Yf(e,r,n):Yf(e,n,r)},Jf=function(t,n){var e,r=er.fromDom(t.getBody());return(e=zf(r.dom(),n,t.selection.getRng()).bind(function(e){return Gf(r,n,e.from().block(),e.to().block())})).each(function(e){t.selection.setRng(e.toRange())}),e.isSome()},Qf=function(e,t){var n=er.fromDom(t),r=b(Ur.eq,e);return ea.ancestor(n,Co,r).isSome()},Zf=function(e,t){var n,r,o=al.prevPosition(e.dom(),Au.fromRangeStart(t)).isNone(),i=al.nextPosition(e.dom(),Au.fromRangeEnd(t)).isNone();return!(Qf(n=e,(r=t).startContainer)||Qf(n,r.endContainer))&&o&&i},ed=function(e){var n,r,o,t,i=er.fromDom(e.
 getBody()),a=e.selection.getRng();return Zf(i,a)?((t=e).setContent(""),t.selection.setCursorLocation(),!0):(n=i,r=e.selection,o=r.getRng(),au([Tf(n,er.fromDom(o.startContainer)),Tf(n,er.fromDom(o.endContainer))],function(e,t){return!1===Ur.eq(e,t)&&(o.deleteContents(),Gf(n,!0,e,t).each(function(e){r.setRng(e.toRange())}),!0)}).getOr(!1))},td=function(e,t){return!e.selection.isCollapsed()&&ed(e)},nd=function(a){if(!R(a))throw new Error("cases must be an array");if(0===a.length)throw new Error("there must be at least one case");var u=[],n={};return F(a,function(e,r){var t=cr(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!R(i))throw new Error("case arguments must be an array");u.push(o),n[o]=function(){var e=argume
 nts.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t<n.length;t++)n[t]=arguments[t];return{fold:function(){if(arguments.length!==a.length)throw new Error("Wrong number of arguments to fold. Expected "+a.length+", got "+arguments.length);return arguments[r].apply(null,n)},match:function(e){var t=cr(e);if(u.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+u.join(",")+"\nActual: "+t.join(","));if(!J(u,function(e){return I(t,e)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+u.join(", "));return e[o].apply(null,n)},log:function(e){console.log(e,{constructors:u,constructor:o,params:n})}}}}),n},rd=nd([{remove:["element"]},{moveToElement:["e
 lement"]},{moveToPosition:["position"]}]),od=function(e,t,n,r){var o=r.getNode(!1===t);return Tf(er.fromDom(e),er.fromDom(n.getNode())).map(function(e){return Lf(e)?rd.remove(e.dom()):rd.moveToElement(o)}).orThunk(function(){return A.some(rd.moveToElement(o))})},id=function(u,s,c){return al.fromPosition(s,u,c).bind(function(e){return a=e.getNode(),Co(er.fromDom(a))||vo(er.fromDom(a))?A.none():(t=u,o=e,i=function(e){return mo(er.fromDom(e))&&!Uc(r,o,t)},Xc(!(n=s),r=c).fold(function(){return Xc(n,o).fold(H(!1),i)},i)?A.none():s&&Bo.isContentEditableFalse(e.getNode())?od(u,s,c,e):!1===s&&Bo.isContentEditableFalse(e.getNode(!0))?od(u,s,c,e):s&&Jc(c)?A.some(rd.moveToPosition(e)):!1===s&&Gc(c)?A.some(rd.moveToPosition(e)):A.none());var t,n,r,o,i,a})},ad=function(r,e,o){return i=e,a=o.getNode(!1===i),u=i?"after":"before",Bo.isElement(a)&&a.getAttribute("data-mce-caret")===u?(t=e,n=o.getNode(!1===e)
 ,t&&Bo.isContentEditableFalse(n.nextSibling)?A.some(rd.moveToElement(n.nextSibling)):!1===t&&Bo.isContentEditableFalse(n.previousSibling)?A.some(rd.moveToElement(n.previousSibling)):A.none()).fold(function(){return id(r,e,o)},A.some):id(r,e,o).bind(function(e){return t=r,n=o,e.fold(function(e){return A.some(rd.remove(e))},function(e){return A.some(rd.moveToElement(e))},function(e){return Uc(n,e,t)?A.none():A.some(rd.moveToPosition(e))});var t,n});var t,n,i,a,u},ud=function(e,t){return r=e,o=(n=t).container(),i=n.offset(),!1===Au.isTextPosition(n)&&o===r.parentNode&&i>Au.before(r).offset()?Au(t.container(),t.offset()-1):t;var n,r,o,i},sd=function(e){return Ka(e.previousSibling)?A.some((t=e.previousSibling,Bo.isText(t)?Au(t,t.data.length):Au.after(t))):e.previousSibling?al.lastPositionIn(e.previousSibling):A.none();var t},cd=function(e){return Ka(e.nextSibling)?A.some((t=e.nextSibling,Bo.isText(t)?Au(t,0):Au.before(t))):e.nextSibling?al.firstPosition
 In(e.nextSibling):A.none();var t},ld=function(r,o){return sd(o).orThunk(function(){return cd(o)}).orThunk(function(){return e=r,t=o,n=Au.before(t.previousSibling?t.previousSibling:t.parentNode),al.prevPosition(e,n).fold(function(){return al.nextPosition(e,Au.after(t))},A.some);var e,t,n})},fd=function(n,r){return cd(r).orThunk(function(){return sd(r)}).orThunk(function(){return e=n,t=r,al.nextPosition(e,Au.after(t)).fold(function(){return al.prevPosition(e,Au.before(t))},A.some);var e,t})},dd=function(e,t,n){return(r=e,o=t,i=n,r?fd(o,i):ld(o,i)).map(b(ud,n));var r,o,i},md=function(t,n,e){e.fold(function(){t.focus()},function(e){t.selection.setRng(e.toRange(),n)})},gd=function(e,t){return t&&e.schema.getBlockElements().hasOwnProperty(sr.name(t))},pd=function(e){if(Lf(e)){var t=er.fromHtml('<br data-mce-bogus="1">');return Di.empty(e),ki.append(e,t),A.some(Au.before(t.dom()))}return A.none()},hd=function(t,n,e){var r,a,o,i=dd(n,t.getBody(),e.dom()),u=ea.ancesto
 r(e,b(gd,t),(r=t.getBody(),function(e){return e.dom()===r})),s=(a=e,o=i,au([Wr.prevSibling(a),Wr.nextSibling(a),o],function(e,t,n){var r,o=e.dom(),i=t.dom();return Bo.isText(o)&&Bo.isText(i)?(r=o.data.length,o.appendData(i.data),Di.remove(t),Di.remove(a),n.container()===i?Au(o,r):n):(Di.remove(a),n)}).orThunk(function(){return Di.remove(a),o}));t.dom.isEmpty(t.getBody())?(t.setContent(""),t.selection.setCursorLocation()):u.bind(pd).fold(function(){md(t,n,s)},function(e){md(t,n,A.some(e))})},vd=function(a,u){var e,t,n,r,o;return(e=a.getBody(),t=u,n=a.selection.getRng(),r=$c(t?1:-1,e,n),o=Au.fromRangeStart(r),!1===t&&Jc(o)?A.some(rd.remove(o.getNode(!0))):t&&Gc(o)?A.some(rd.remove(o.getNode())):ad(e,t,o)).map(function(e){return e.fold((o=a,i=u,function(e){return o._selectionOverrides.hideFakeCaret(),hd(o,i,er.fromDom(e)),!0}),(n=a,r=u,function(e){var t=r?Au.before(e):Au.after(e);return n.selection.setRng(t.toRange()),!0}),(t=a,function(e){return t.sel
 ection.setRng(e.toRange()),!0}));var t,n,r,o,i}).getOr(!1)},bd=function(e,t){var n,r=e.selection.getNode();return!!Bo.isContentEditableFalse(r)&&(n=er.fromDom(e.getBody()),F(Xi(n,".mce-offscreen-selection"),Di.remove),hd(e,t,er.fromDom(e.selection.getNode())),kf(e),!0)},yd=function(e,t){return e.selection.isCollapsed()?vd(e,t):bd(e,t)},Cd=function(e){var t,n=function(e,t){for(;t&&t!==e;){if(Bo.isContentEditableTrue(t)||Bo.isContentEditableFalse(t))return t;t=t.parentNode}return null}(e.getBody(),e.selection.getNode());return Bo.isContentEditableTrue(n)&&e.dom.isBlock(n)&&e.dom.isEmpty(n)&&(t=e.dom.create("br",{"data-mce-bogus":"1"}),e.dom.setHTML(n,""),n.appendChild(t),e.selection.setRng(Au.before(t).toRange())),!0},xd=Bo.isText,wd=function(e){return xd(e)&&e.data[0]===Sa},Nd=function(e){return xd(e)&&e.data[e.data.length-1]===Sa},Ed=function(e){return e.ownerDocument.createText
 Node(Sa)},Sd=function(e,t){return e?function(e){if(xd(e.previousSibling))return Nd(e.previousSibling)||e.previousSibling.appendData(Sa),e.previousSibling;if(xd(e))return wd(e)||e.insertData(0,Sa),e;var t=Ed(e);return e.parentNode.insertBefore(t,e),t}(t):function(e){if(xd(e.nextSibling))return wd(e.nextSibling)||e.nextSibling.insertData(0,Sa),e.nextSibling;if(xd(e))return Nd(e)||e.appendData(Sa),e;var t=Ed(e);return e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t}(t)},Td=b(Sd,!0),kd=b(Sd,!1),Ad=function(e,t){return Bo.isText(e.container())?Sd(t,e.container()):Sd(t,e.getNode())},_d=function(e,t){var n=t.get();return n&&e.container()===n&&Ra(n)},Rd=function(n,e){return e.fold(function(e){us.remove(n.get());var t=Td(e);return n.set(t),A.some(Au(t,t.length-1))},function(e){return al.firstPositionIn(e).map(function(e){if(_d(e,n))return Au(n.get(),1);us.remove(n.get());var t=Ad(e,!0);return n.set(t),Au(t,1)})},function(e){return al.las
 tPositionIn(e).map(function(e){if(_d(e,n))return Au(n.get(),n.get().length-1);us.remove(n.get());var t=Ad(e,!1);return n.set(t),Au(t,t.length-1)})},function(e){us.remove(n.get());var t=kd(e);return n.set(t),A.some(Au(t,1))})},Dd=function(e,t){for(var n=0;n<e.length;n++){var r=e[n].apply(null,t);if(r.isSome())return r}return A.none()},Bd=nd([{before:["element"]},{start:["element"]},{end:["element"]},{after:["element"]}]),Od=function(e,t){var n=Fc(t,e);return n||e},Pd=function(e,t,n){var r=Sf.normalizeForwards(n),o=Od(t,r.container());return Sf.findRootInline(e,o,r).fold(function(){return al.nextPosition(o,r).bind(b(Sf.findRootInline,e,o)).map(function(e){return Bd.before(e)})},A.none)},Ld=function(e,t){return null===Ju(e,t)},Id=function(e,t,n){return Sf.findRootInline(e,t,n).filter(b(Ld,t))},Md=function(e,t,n){var r=Sf.normalizeBackwards(n);return Id(e,t,r).bind(function(e){return al.prevPosition(e,r).isNone()?A.some(Bd.start(e)):A.none()})}
 ,Fd=function(e,t,n){var r=Sf.normalizeForwards(n);return Id(e,t,r).bind(function(e){return al.nextPosition(e,r).isNone()?A.some(Bd.end(e)):A.none()})},Ud=function(e,t,n){var r=Sf.normalizeBackwards(n),o=Od(t,r.container());return Sf.findRootInline(e,o,r).fold(function(){return al.prevPosition(o,r).bind(b(Sf.findRootInline,e,o)).map(function(e){return Bd.after(e)})},A.none)},zd=function(e){return!1===Sf.isRtl(qd(e))},Vd=function(e,t,n){return Dd([Pd,Md,Fd,Ud],[e,t,n]).filter(zd)},qd=function(e){return e.fold(j,j,j,j)},Hd=function(e){return e.fold(H("before"),H("start"),H("end"),H("after"))},jd=function(e){return e.fold(Bd.before,Bd.before,Bd.after,Bd.after)},$d=function(n,e,r,t,o,i){return au([Sf.findRootInline(e,r,t),Sf.findRootInline(e,r,o)],function(e,t){return e!==t&&Sf.hasSameParentBlock(r,e,t)?Bd.after(n?e:t):i}).getOr(i)},Wd=function(e,r){return e.fold(H(!0),function(e){return n=r,!(Hd(t=e)===Hd(n)&&qd(t)===qd(n));var t,n
 })},Kd=function(e,t){return e?t.fold(q(A.some,Bd.start),A.none,q(A.some,Bd.after),A.none):t.fold(A.none,q(A.some,Bd.before),A.none,q(A.some,Bd.end))},Xd=function(a,u,s,c){var e=Sf.normalizePosition(a,c),l=Vd(u,s,e);return Vd(u,s,e).bind(b(Kd,a)).orThunk(function(){return t=a,n=u,r=s,o=l,e=c,i=Sf.normalizePosition(t,e),al.fromPosition(t,r,i).map(b(Sf.normalizePosition,t)).fold(function(){return o.map(jd)},function(e){return Vd(n,r,e).map(b($d,t,n,r,i,e)).filter(b(Wd,o))}).filter(zd);var t,n,r,o,e,i})},Yd=Vd,Gd=Xd,Jd=(b(Xd,!1),b(Xd,!0),jd),Qd=function(e){return e.fold(Bd.start,Bd.start,Bd.end,Bd.end)},Zd=function(e){return O(e.selection.getSel().modify)},em=function(e,t,n){var r=e?1:-1;return t.setRng(Au(n.container(),n.offset()+r).toRange()),t.getSel().modify("move",e?"forward":"backward","word"),!0},tm=function(e,t){var n=t.selection.getRng(),r=e?Au.fromRangeEnd(n):Au.fromRangeStart(n);return!!Zd(t)&&(e&&Oa(r)?em(!0,t.selection
 ,r):!(e||!Pa(r))&&em(!1,t.selection,r))},nm=function(e,t){var n=e.dom.createRng();n.setStart(t.container(),t.offset()),n.setEnd(t.container(),t.offset()),e.selection.setRng(n)},rm=function(e){return!1!==e.settings.inline_boundaries},om=function(e,t){e?t.setAttribute("data-mce-selected","inline-boundary"):t.removeAttribute("data-mce-selected")},im=function(t,e,n){return Rd(e,n).map(function(e){return nm(t,e),n})},am=function(e,t,n){return function(){return!!rm(t)&&tm(e,t)}},um={move:function(a,u,s){return function(){return!!rm(a)&&(t=a,n=u,e=s,r=t.getBody(),o=Au.fromRangeStart(t.selection.getRng()),i=b(Sf.isInlineTarget,t),Gd(e,i,r,o).bind(function(e){return im(t,n,e)})).isSome();var t,n,e,r,o,i}},moveNextWord:b(am,!0),movePrevWord:b(am,!1),setupSelectedState:function(a){var u=Oi(null),s=b(Sf.isInlineTarget,a);return a.on("NodeChange",function(e){var t,n,r,o,i;rm(a)&&(t=s,n=a.dom,r=e.parents,o=U(n.select('*[data-
 mce-selected="inline-boundary"]'),t),i=U(r,t),F(Z(o,i),b(om,!1)),F(Z(i,o),b(om,!0)),function(e,t){if(e.selection.isCollapsed()&&!0!==e.composing&&t.get()){var n=Au.fromRangeStart(e.selection.getRng());Au.isTextPosition(n)&&!1===Sf.isAtZwsp(n)&&(nm(e,us.removeAndReposition(t.get(),n)),t.set(null))}}(a,u),function(n,r,o,e){if(r.selection.isCollapsed()){var t=U(e,n);F(t,function(e){var t=Au.fromRangeStart(r.selection.getRng());Yd(n,r.getBody(),t).bind(function(e){return im(r,o,e)})})}}(s,a,u,e.parents))}),u},setCaretPosition:nm},sm=function(t,n){return function(e){return Rd(n,e).map(function(e){return um.setCaretPosition(t,e),!0}).getOr(!1)}},cm=function(r,o,i,a){var u=r.getBody(),s=b(Sf.isInlineTarget,r);r.undoManager.ignore(function(){var e,t,n;r.selection.setRng((e=i,t=a,(n=document.createRange()).setStart(e.container(),e.offset()),n.setEnd(t.container(),t.offset()),n)),r.execCommand("Delete"),Yd(s,u,Au.fromRangeStart(r.selection.g
 etRng())).map(Qd).map(sm(r,o))}),r.nodeChanged()},lm=function(n,r,i,o){var e,t,a=(e=n.getBody(),t=o.container(),Fc(t,e)||e),u=b(Sf.isInlineTarget,n),s=Yd(u,a,o);return s.bind(function(e){return i?e.fold(H(A.some(Qd(e))),A.none,H(A.some(Jd(e))),A.none):e.fold(A.none,H(A.some(Jd(e))),A.none,H(A.some(Qd(e))))}).map(sm(n,r)).getOrThunk(function(){var t=al.navigate(i,a,o),e=t.bind(function(e){return Yd(u,a,e)});return s.isSome()&&e.isSome()?Sf.findRootInline(u,a,o).map(function(e){return o=e,!!au([al.firstPositionIn(o),al.lastPositionIn(o)],function(e,t){var n=Sf.normalizePosition(!0,e),r=Sf.normalizePosition(!1,t);return al.nextPosition(o,n).map(function(e){return e.isEqual(r)}).getOr(!0)}).getOr(!0)&&(hd(n,i,er.fromDom(e)),!0);var o}).getOr(!1):e.bind(function(e){return t.map(function(e){return i?cm(n,r,o,e):cm(n,r,e,o),!0})}).getOr(!1)})},fm=function(e,t,n){if(e.selection.isCollapsed()&&!1!==e.settings.inline_boundaries){var r=Au.fromRangeStart(e.selection.getR
 ng());return lm(e,t,n,r)}return!1},dm=Ar("start","end"),mm=Ar("rng","table","cells"),gm=nd([{removeTable:["element"]},{emptyCells:["cells"]}]),pm=function(e,t){return oa(er.fromDom(e),"td,th",t)},hm=function(e,t){return na(e,"table",t)},vm=function(e){return!1===Ur.eq(e.start(),e.end())},bm=function(e,n){return hm(e.start(),n).bind(function(t){return hm(e.end(),n).bind(function(e){return Ur.eq(t,e)?A.some(t):A.none()})})},ym=function(e){return Xi(e,"td,th")},Cm=function(r,e){var t=pm(e.startContainer,r),n=pm(e.endContainer,r);return e.collapsed?A.none():au([t,n],dm).fold(function(){return t.fold(function(){return n.bind(function(t){return hm(t,r).bind(function(e){return ee(ym(e)).map(function(e){return dm(e,t)})})})},function(t){return hm(t,r).bind(function(e){return te(ym(e)).map(function(e){return dm(t,e)})})})},function(e){return xm(r,e)?A.none():(n=r,hm((t=e).start(),n).bind(funct
 ion(e){return te(ym(e)).map(function(e){return dm(t.start(),e)})}));var t,n})},xm=function(e,t){return bm(t,e).isSome()},wm=function(e,t){var n,r,o,i,a,u=(n=e,b(Ur.eq,n));return(r=t,o=u,i=pm(r.startContainer,o),a=pm(r.endContainer,o),au([i,a],dm).filter(vm).filter(function(e){return xm(o,e)}).orThunk(function(){return Cm(o,r)})).bind(function(e){return bm(t=e,u).map(function(e){return mm(t,e,ym(e))});var t})},Nm=function(e,t){return K(e,function(e){return Ur.eq(e,t)})},Em=function(n){return(r=n,au([Nm(r.cells(),r.rng().start()),Nm(r.cells(),r.rng().end())],function(e,t){return r.cells().slice(e,t+1)})).map(function(e){var t=n.cells();return e.length===t.length?gm.removeTable(n.table()):gm.emptyCells(e)});var r},Sm=function(e,t){return wm(e,t).bind(Em)},Tm=function(e){var t=[];if(e)for(var n=0;n<e.rangeCount;n++)t.push(e.getRangeAt(n));return t},km=Tm,Am=function(e){return G(e,function(e){var t=nu(e);return t?[er.fromDom(t)]:[]})},_m=function(e){return 1<Tm(e).length},Rm=functi
 on(e){return U(Am(e),Co)},Dm=function(e){return Xi(e,"td[data-mce-selected],th[data-mce-selected]")},Bm=function(e,t){var n=Dm(t),r=Rm(e);return 0<n.length?n:r},Om=Bm,Pm=function(e){return Bm(km(e.selection.getSel()),er.fromDom(e.getBody()))},Lm=function(e,t){return F(t,ef),e.selection.setCursorLocation(t[0].dom(),0),!0},Im=function(e,t){return hd(e,!1,t),!0},Mm=function(n,e,r,t){return Um(e,t).fold(function(){return t=n,Sm(e,r).map(function(e){return e.fold(b(Im,t),b(Lm,t))});var t},function(e){return zm(n,e)}).getOr(!1)},Fm=function(e,t){return V(jf(t,e),Co)},Um=function(e,t){return V(jf(t,e),function(e){return"caption"===sr.name(e)})},zm=function(e,t){return ef(t),e.selection.setCursorLocation(t.dom(),0),A.some(!0)},Vm=function(u,s,c,l,f){return al.navigate(c,u.getBody(),f).bind(function(e){return r=l,o=c,i=f,a=e,al.firstPositionIn(r.dom()).bind(function(t){return al.lastPositionIn(r.dom()).map(function(e){return o?i.isEqual(t)&&a.isEqual(e):i.isEqu
 al(e)&&a.isEqual(t)})}).getOr(!0)?zm(u,l):(t=l,n=e,Um(s,er.fromDom(n.getNode())).map(function(e){return!1===Ur.eq(e,t)}));var t,n,r,o,i,a}).or(A.some(!0))},qm=function(a,u,s,e){var c=Au.fromRangeStart(a.selection.getRng());return Fm(s,e).bind(function(e){return Lf(e)?zm(a,e):(t=a,n=s,r=u,o=e,i=c,al.navigate(r,t.getBody(),i).bind(function(e){return Fm(n,er.fromDom(e.getNode())).map(function(e){return!1===Ur.eq(e,o)})}));var t,n,r,o,i})},Hm=function(a,u,e){var s=er.fromDom(a.getBody());return Um(s,e).fold(function(){return qm(a,u,s,e)},function(e){return t=a,n=u,r=s,o=e,i=Au.fromRangeStart(t.selection.getRng()),Lf(o)?zm(t,o):Vm(t,r,n,o,i);var t,n,r,o,i}).getOr(!1)},jm=function(e,t){var n,r,o,i,a,u=er.fromDom(e.selection.getStart(!0)),s=Pm(e);return e.selection.isCollapsed()&&0===s.length?Hm(e,t,u):(n=e,r=u,o=er.fromDom(n.getBody()),i=n.selection.getRng(),0!==(a=Pm(n)).length?Lm(n,a):Mm(n,o,i,r))},$m=function(e,t){e.getDoc().execCommand(t,!1,null)},Wm=function(e){yd(e,!
 1)||fm(e,!1)||Jf(e,!1)||jm(e)||td(e,!1)||($m(e,"Delete"),kf(e))},Km=function(e){yd(e,!0)||fm(e,!0)||Jf(e,!0)||jm(e)||td(e,!0)||$m(e,"ForwardDelete")},Xm=function(s){return function(u,e){return A.from(e).map(er.fromDom).filter(sr.isElement).bind(function(e){return(r=s,o=u,i=e.dom(),a=function(e){return kr(e,r)},ea.closest(er.fromDom(i),function(e){return a(e).isSome()},function(e){return Ur.eq(er.fromDom(o),e)}).bind(a)).or((t=s,n=e.dom(),A.from(hi.DOM.getStyle(n,t,!0))));var t,n,r,o,i,a}).getOr("")}},Ym={getFontSize:Xm("font-size"),getFontFamily:q(function(e){return e.replace(/[\'\"\\]/g,"").replace(/,\s+/g,",")},Xm("font-family")),toPt:function(e,t){return/[0-9.]+px$/.test(e)?(n=72*parseInt(e,10)/96,r=t||0,o=Math.pow(10,r),Math.round(n*o)/o+"pt"):e;var n,r,o}},Gm=function(e){return al.firstPositionIn(e.getBody()).map(function(e){var t=e.container();return Bo.isText(t)?t.parentNode:t})},Jm=function(
 o){return A.from(o.selection.getRng()).bind(function(e){var t,n,r=o.getBody();return n=r,(t=e).startContainer===n&&0===t.startOffset?A.none():A.from(o.selection.getStart(!0))})},Qm=function(e,t){if(/^[0-9\.]+$/.test(t)){var n=parseInt(t,10);if(1<=n&&n<=7){var r=cc(e),o=lc(e);return o?o[n-1]||t:r[n-1]||t}return t}return t},Zm=function(e,t){return e&&t&&e.startContainer===t.startContainer&&e.startOffset===t.startOffset&&e.endContainer===t.endContainer&&e.endOffset===t.endOffset},eg=function(e,t,n){return null!==function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(e,t,n)},tg=function(e,t,n){return eg(e,t,function(e){return e.nodeName===n})},ng=function(e){return e&&"TABLE"===e.nodeName},rg=function(e,t,n){for(var r=new io(t,e.getParent(t.parentNode,e.isBlock)||e.getRoot());t=r[n?"prev":"next"]();)if(Bo.isBr(t))return!0},og=function(e,t,n,r,o){var i,a,u,s,c
 ,l,f=e.getRoot(),d=e.schema.getNonEmptyElements();if(u=e.getParent(o.parentNode,e.isBlock)||f,r&&Bo.isBr(o)&&t&&e.isEmpty(u))return A.some(Su(o.parentNode,e.nodeIndex(o)));for(i=new io(o,u);s=i[r?"prev":"next"]();){if("false"===e.getContentEditableParent(s)||(l=f,Da(c=s)&&!1===eg(c,l,Gu)))return A.none();if(Bo.isText(s)&&0<s.nodeValue.length)return!1===tg(s,f,"A")?A.some(Su(s,r?s.nodeValue.length:0)):A.none();if(e.isBlock(s)||d[s.nodeName.toLowerCase()])return A.none();a=s}return n&&a?A.some(Su(a,0)):A.none()},ig=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m,g=e.getRoot(),p=!1;if(o=r[(n?"start":"end")+"Container"],i=r[(n?"start":"end")+"Offset"],l=Bo.isElement(o)&&i===o.childNodes.length,s=e.schema.getNonEmptyElements(),c=n,Da(o))return A.none();if(Bo.isElement(o)&&i>o.childNodes.length-1&&(c=!1),Bo.isDocument(o
 )&&(o=g,i=0),o===g){if(c&&(u=o.childNodes[0<i?i-1:0])){if(Da(u))return A.none();if(s[u.nodeName]||ng(u))return A.none()}if(o.hasChildNodes()){if(i=Math.min(!c&&0<i?i-1:i,o.childNodes.length-1),o=o.childNodes[i],i=Bo.isText(o)&&l?o.data.length:0,!t&&o===g.lastChild&&ng(o))return A.none();if(function(e,t){for(;t&&t!==e;){if(Bo.isContentEditableFalse(t))return!0;t=t.parentNode}return!1}(g,o)||Da(o))return A.none();if(o.hasChildNodes()&&!1===ng(o)){a=new io(u=o,g);do{if(Bo.isContentEditableFalse(u)||Da(u)){p=!1;break}if(Bo.isText(u)&&0<u.nodeValue.length){i=c?0:u.nodeValue.length,o=u,p=!0;break}if(s[u.nodeName.toLowerCase()]&&(!(f=u)||!/^(TD|TH|CAPTION)$/.test(f.nodeName))){i=e.nodeIndex(u),o=u.parentNode,c||i++,p=!0;break}}while(u=c?a.next():a.prev())}}}return t&&(Bo.isText(o)&&0===i&&og(e,l,t,!0,o).each(function(e){o=e.container(),i=e.offset(),p=!0}),Bo.isElement(o)&&am
 p;((u=o.childNodes[i])||(u=o.childNodes[i-1]),!u||!Bo.isBr(u)||(m="A",(d=u).previousSibling&&d.previousSibling.nodeName===m)||rg(e,u,!1)||rg(e,u,!0)||og(e,l,t,!0,u).each(function(e){o=e.container(),i=e.offset(),p=!0}))),c&&!t&&Bo.isText(o)&&i===o.nodeValue.length&&og(e,l,t,!1,o).each(function(e){o=e.container(),i=e.offset(),p=!0}),p?A.some(Su(o,i)):A.none()},ag=function(e,t){var n=t.collapsed,r=t.cloneRange(),o=Su.fromRangeStart(t);return ig(e,n,!0,r).each(function(e){n&&Su.isAbove(o,e)||r.setStart(e.container(),e.offset())}),n||ig(e,n,!1,r).each(function(e){r.setEnd(e.container(),e.offset())}),n&&r.collapse(!0),Zm(t,r)?A.none():A.some(r)},ug=function(e,t,n){var r=e.create("span",{},"&nbsp;");n.parentNode.insertBefore(r,n),t.scrollIntoView(r),e.remove(r)},sg=function(e,t,n,r){var o=e.createRng();r?(o.setStartBefore(n),o.setEndBefore(n)):(o.setStartAfter(n),o.setEndAfter(n)),t.setRng(o)},cg=func
 tion(e,t){var n,r,o=e.selection,i=e.dom,a=o.getRng();ag(i,a).each(function(e){a.setStart(e.startContainer,e.startOffset),a.setEnd(e.endContainer,e.endOffset)});var u=a.startOffset,s=a.startContainer;if(1===s.nodeType&&s.hasChildNodes()){var c=u>s.childNodes.length-1;s=s.childNodes[Math.min(u,s.childNodes.length-1)]||s,u=c&&3===s.nodeType?s.nodeValue.length:0}var l=i.getParent(s,i.isBlock),f=l?i.getParent(l.parentNode,i.isBlock):null,d=f?f.nodeName.toUpperCase():"",m=t&&t.ctrlKey;"LI"!==d||m||(l=f),s&&3===s.nodeType&&u>=s.nodeValue.length&&(function(e,t,n){for(var r,o=new io(t,n),i=e.getNonEmptyElements();r=o.next();)if(i[r.nodeName.toLowerCase()]||0<r.length)return!0}(e.schema,s,l)||(n=i.create("br"),a.insertNode(n),a.setStartAfter(n),a.setEndAfter(n),r=!0)),n=i.create("br"),a.insertNode(n),ug(i,o,n),sg(i,o,n,r),e.undoManager.add()},lg=function(e,t){var n=er.fromTag("br");ki.be
 fore(er.fromDom(t),n),e.undoManager.add()},fg=function(e,t){dg(e.getBody(),t)||ki.after(er.fromDom(t),er.fromTag("br"));var n=er.fromTag("br");ki.after(er.fromDom(t),n),ug(e.dom,e.selection,n.dom()),sg(e.dom,e.selection,n.dom(),!1),e.undoManager.add()},dg=function(e,t){return n=Au.after(t),!!Bo.isBr(n.getNode())||al.nextPosition(e,Au.after(t)).map(function(e){return Bo.isBr(e.getNode())}).getOr(!1);var n},mg=function(e){return e&&"A"===e.nodeName&&"href"in e},gg=function(e){return e.fold(H(!1),mg,mg,H(!1))},pg=function(e,t){t.fold(v,b(lg,e),b(fg,e),v)},hg=function(e,t){var n,r,o,i=(n=e,r=b(Sf.isInlineTarget,n),o=Au.fromRangeStart(n.selection.getRng()),Yd(r,n.getBody(),o).filter(gg));i.isSome()?i.each(b(pg,e)):cg(e,t)},vg=nd([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),bg=(vg.before,vg.on,vg.after,function(e){return e.fold(j,j,j)}),yg=nd([{domRange:["rng"
 ]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),Cg=Ar("start","soffset","finish","foffset"),xg={domRange:yg.domRange,relative:yg.relative,exact:yg.exact,exactFromRange:function(e){return yg.exact(e.start(),e.soffset(),e.finish(),e.foffset())},range:Cg,getWin:function(e){var t=e.match({domRange:function(e){return er.fromDom(e.startContainer)},relative:function(e,t){return bg(e)},exact:function(e,t,n,r){return e}});return Wr.defaultView(t)}},wg=Qn.detect().browser,Ng=function(e,t){var n=sr.isText(t)?Il(t).length:Wr.children(t).length+1;return n<e?n:e<0?0:e},Eg=function(e){return xg.range(e.start(),Ng(e.soffset(),e.start()),e.finish(),Ng(e.foffset(),e.finish()))},Sg=function(e,t){return Ur.contains(e,t)||Ur.eq(e,t)},Tg=function(t){return function(e){return Sg(t,e.start())&&Sg(t,e.finish())}},kg=function(e){return!0===e.inline||wg.is
 IE()},Ag=function(e){return xg.range(er.fromDom(e.startContainer),e.startOffset,er.fromDom(e.endContainer),e.endOffset)},_g=function(e){var t=e.getSelection();return(t&&0!==t.rangeCount?A.from(t.getRangeAt(0)):A.none()).map(Ag)},Rg=function(e){var t=Wr.defaultView(e);return _g(t.dom()).filter(Tg(e))},Dg=function(e,t){return A.from(t).filter(Tg(e)).map(Eg)},Bg=function(e){var t=document.createRange();try{return t.setStart(e.start().dom(),e.soffset()),t.setEnd(e.finish().dom(),e.foffset()),A.some(t)}catch(n){return A.none()}},Og=function(e){return(e.bookmark?e.bookmark:A.none()).bind(b(Dg,er.fromDom(e.getBody()))).bind(Bg)},Pg=function(e){var t=kg(e)?Rg(er.fromDom(e.getBody())):A.none();e.bookmark=t.isSome()?t:e.bookmark},Lg=function(t){Og(t).each(function(e){t.selection.setRng(e)})},Ig=Og,Mg=function(e,t){var n=e.settings,r=e.dom,o=e.selection,i=e.formatter,a=/[a-z%]+$/i.exec(n.indentation)[0],u=parseInt(n.indentation,10),s=e.getParam("indent_use_margin",!1);e.query
 CommandState("InsertUnorderedList")||e.queryCommandState("InsertOrderedList")||(n.forced_root_block||r.getParent(o.getNode(),r.isBlock)||i.apply("div"),F(o.getSelectedBlocks(),function(e){return function(e,t,n,r,o,i){if("false"!==e.getContentEditable(i)&&"LI"!==i.nodeName){var a=n?"margin":"padding";if(a="TABLE"===i.nodeName?"margin":a,a+="rtl"===e.getStyle(i,"direction",!0)?"Right":"Left","outdent"===t){var u=Math.max(0,parseInt(i.style[a]||0,10)-r);e.setStyle(i,a,u?u+o:"")}else u=parseInt(i.style[a]||0,10)+r+o,e.setStyle(i,a,u)}}(r,t,s,u,a,e)}))},Fg=Yt.each,Ug=Yt.extend,zg=Yt.map,Vg=Yt.inArray;function qg(s){var o,i,a,t,c={state:{},exec:{},value:{}},n=s.settings;s.on("PreInit",function(){o=s.dom,i=s.selection,n=s.settings,a=s.formatter});var r=function(e){var t;if(!s.quirks.isHidden()&&!s.removed){if(e=e.toL
 owerCase(),t=c.state[e])return t(e);try{return s.getDoc().queryCommandState(e)}catch(n){}return!1}},e=function(e,n){n=n||"exec",Fg(e,function(t,e){Fg(e.toLowerCase().split(","),function(e){c[n][e]=t})})},u=function(e,t,n){e=e.toLowerCase(),c.value[e]=function(){return t.call(n||s)}};Ug(this,{execCommand:function(t,n,r,e){var o,i,a=!1;if(!s.removed){if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(t)||e&&e.skip_focus?Lg(s):s.focus(),(e=s.fire("BeforeExecCommand",{command:t,ui:n,value:r})).isDefaultPrevented())return!1;if(i=t.toLowerCase(),o=c.exec[i])return o(i,n,r),s.fire("ExecCommand",{command:t,ui:n,value:r}),!0;if(Fg(s.plugins,function(e){if(e.execCommand&&e.execCommand(t,n,r))return s.fire("ExecCommand",{command:t,ui:n,value:r}),!(a=!0)}),a)return a;if(s.theme&&s.theme.execCommand&&s.theme.execCommand(t,n,r))return s.fire("ExecCommand",{command:t,ui:n,value:r}),!
 0;try{a=s.getDoc().execCommand(t,n,r)}catch(u){}return!!a&&(s.fire("ExecCommand",{command:t,ui:n,value:r}),!0)}},queryCommandState:r,queryCommandValue:function(e){var t;if(!s.quirks.isHidden()&&!s.removed){if(e=e.toLowerCase(),t=c.value[e])return t(e);try{return s.getDoc().queryCommandValue(e)}catch(n){}}},queryCommandSupported:function(e){if(e=e.toLowerCase(),c.exec[e])return!0;try{return s.getDoc().queryCommandSupported(e)}catch(t){}return!1},addCommands:e,addCommand:function(e,o,i){e=e.toLowerCase(),c.exec[e]=function(e,t,n,r){return o.call(i||s,t,n,r)}},addQueryStateHandler:function(e,t,n){e=e.toLowerCase(),c.state[e]=function(){return t.call(n||s)}},addQueryValueHandler:u,hasCustomCommand:function(e){return e=e.toLowerCase(),!!c.exec[e]}});var l=function(e,t,n){return t===undefined&&(t=!1),n===undefined&&(n=null),s.getDoc().execCommand(e,t,n)},f=function(e){return a.match(e)},d=function(e,t){a.toggle(e,t?{value:t}:undefined),s.nodeChang
 ed()},m=function(e){t=i.getBookmark(e)},g=function(){i.moveToBookmark(t)};e({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){s.undoManager.add()},"Cut,Copy,Paste":function(e){var t,n=s.getDoc();try{l(e)}catch(o){t=!0}if("paste"!==e||n.queryCommandEnabled(e)||(t=!0),t||!n.queryCommandSupported(e)){var r=s.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");Re.mac&&(r=r.replace(/Ctrl\+/g,"\u2318+")),s.notificationManager.open({text:r,type:"error"})}},unlink:function(){if(i.isCollapsed()){var e=s.dom.getParent(s.selection.getStart(),"a");e&&s.dom.remove(e,!0)}else a.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(e){var t=e.substring(7);"full"===t&&(t="justify"),Fg("left,cent
 er,right,justify".split(","),function(e){t!==e&&a.remove("align"+e)}),"none"!==t&&d("align"+t)},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;l(e),(t=o.getParent(i.getNode(),"ol,ul"))&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(m(),o.split(n,t),g()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){d(e)},"ForeColor,HiliteColor":function(e,t,n){d(e,n)},FontName:function(e,t,n){var r,o;o=n,(r=s).formatter.toggle("fontname",{value:Qm(r,o)}),r.nodeChanged()},FontSize:function(e,t,n){var r,o;o=n,(r=s).formatter.toggle("fontsize",{value:Qm(r,o)}),r.nodeChanged()},RemoveFormat:function(e){a.remove(e)},mceBlockQuote:function(){d("blockquote")},FormatBlock:function(e,t,n){return d(n||"p")},mceCleanup:function(){var e=i.getBookmark();s.setContent(s.getContent()),i.moveToBookmark(e)}
 ,mceRemoveNode:function(e,t,n){var r=n||i.getNode();r!==s.getBody()&&(m(),s.dom.remove(r,!0),g())},mceSelectNodeDepth:function(e,t,n){var r=0;o.getParent(i.getNode(),function(e){if(1===e.nodeType&&r++===n)return i.select(e),!1},s.getBody())},mceSelectNode:function(e,t,n){i.select(n)},mceInsertContent:function(e,t,n){lf(s,n)},mceInsertRawHTML:function(e,t,n){var r=s.getContent();i.setContent("tiny_mce_marker"),s.setContent(r.replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){d(n)},mceSetContent:function(e,t,n){s.setContent(n)},"Indent,Outdent":function(e){Mg(s,e)},mceRepaint:function(){},InsertHorizontalRule:function(){s.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){s.hasVisual=!s.hasVisual,s.addVisual()},mceReplaceContent:function(e,t,n){s.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,i.getContent({format:"text"})))},mceInser
 tLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=o.getParent(i.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||a.remove("link"),n.href&&a.apply("link",n,r)},selectAll:function(){var e=o.getParent(i.getStart(),Bo.isContentEditableTrue);if(e){var t=o.createRng();t.selectNodeContents(e),i.setRng(t)}},"delete":function(){Wm(s)},forwardDelete:function(){Km(s)},mceNewDocument:function(){s.setContent("")},InsertLineBreak:function(e,t,n){return hg(s,n),!0}});var p=function(n){return function(){var e=i.isCollapsed()?[o.getParent(i.getNode(),o.isBlock)]:i.getSelectedBlocks(),t=zg(e,function(e){return!!a.matchNode(e,n)});return-1!==Vg(t,!0)}};e({JustifyLeft:p("alignleft"),JustifyCenter:p("aligncenter"),JustifyRight:p("alignright"),JustifyFull:p("alignjustify"),"Bold,Italic,Underline,Strikethrough,Superscript,Subscript&quot
 ;:function(e){return f(e)},mceBlockQuote:function(){return f("blockquote")},Outdent:function(){var e;if(n.inline_styles){if((e=o.getParent(i.getStart(),o.isBlock))&&0<parseInt(e.style.paddingLeft,10))return!0;if((e=o.getParent(i.getEnd(),o.isBlock))&&0<parseInt(e.style.paddingLeft,10))return!0}return r("InsertUnorderedList")||r("InsertOrderedList")||!n.inline_styles&&!!o.getParent(i.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=o.getParent(i.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),e({Undo:function(){s.undoManager.undo()},Redo:function(){s.undoManager.redo()}}),u("FontName",function(){return Jm(t=s).fold(function(){return Gm(t).map(function(e){return Ym.getFontFamily(t.getBody(),e)}).getOr
 ("")},function(e){return Ym.getFontFamily(t.getBody(),e)});var t},this),u("FontSize",function(){return Jm(t=s).fold(function(){return Gm(t).map(function(e){return Ym.getFontSize(t.getBody(),e)}).getOr("")},function(e){return Ym.getFontSize(t.getBody(),e)});var t},this)}var Hg=Yt.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend"," "),jg=function(a){var u,s,c=this,l={},f=function(){return!1},d=function(){return!0};u=(a=a||{}).scope||c,s=a.toggleEvent||f;var r=function(e,t,n,r){var o,i,a;if(!1===t&&(t=f),t)for(t={func:t},r&&Yt.extend(t,r),a=(i=e.toLowerCase().split(" ")).length;a--;)e=i[a],(o=l[e])||(o=l[e]=[]
 ,s(e,!0)),n?o.unshift(t):o.push(t);return c},m=function(e,t){var n,r,o,i,a;if(e)for(n=(i=e.toLowerCase().split(" ")).length;n--;){if(e=i[n],r=l[e],!e){for(o in l)s(o,!1),delete l[o];return c}if(r){if(t)for(a=r.length;a--;)r[a].func===t&&(r=r.slice(0,a).concat(r.slice(a+1)),l[e]=r);else r.length=0;r.length||(s(e,!1),delete l[e])}}else{for(e in l)s(e,!1);l={}}return c};c.fire=function(e,t){var n,r,o,i;if(e=e.toLowerCase(),(t=t||{}).type=e,t.target||(t.target=u),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=d},t.stopPropagation=function(){t.isPropagationStopped=d},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=d},t.isDefaultPrevented=f,t.isPropagationStopped=f,t.isImmediatePropagationStopped=f),a.beforeFire&&a.beforeFire(t),n=l[e])for(r=0,o=n.length;r<o;r++){if((i=n[r]).once&&m(e,i.func),t.isImmediatePropagationStopped())return t.stopPropagation(),t;if(!1===i.func.call(u,t))return t.preventDefault(),t}ret
 urn t},c.on=r,c.off=m,c.once=function(e,t,n){return r(e,t,n,{once:!0})},c.has=function(e){return e=e.toLowerCase(),!(!l[e]||0===l[e].length)}};jg.isNative=function(e){return!!Hg[e.toLowerCase()]};var $g,Wg=function(n){return n._eventDispatcher||(n._eventDispatcher=new jg({scope:n,toggleEvent:function(e,t){jg.isNative(e)&&n.toggleNativeEvent&&n.toggleNativeEvent(e,t)}})),n._eventDispatcher},Kg={fire:function(e,t,n){if(this.removed&&"remove"!==e)return t;if(t=Wg(this).fire(e,t,n),!1!==n&&this.parent)for(var r=this.parent();r&&!t.isPropagationStopped();)r.fire(e,t,!1),r=r.parent();return t},on:function(e,t,n){return Wg(this).on(e,t,n)},off:function(e,t){return Wg(this).off(e,t)},once:function(e,t){return Wg(this).once(e,t)},hasEventListeners:function(e){return Wg(this).has(e)}},Xg=function(e,t){return e.fire("PreProcess",t)},Yg=function(e,t){return e.fire("PostProcess",t)},Gg=function(e){return e.fire("remove&qu
 ot;)},Jg=function(e,t){return e.fire("SwitchMode",{mode:t})},Qg=function(e,t,n,r){e.fire("ObjectResizeStart",{target:t,width:n,height:r})},Zg=function(e,t,n,r){e.fire("ObjectResized",{target:t,width:n,height:r})},ep=function(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}},tp=function(e,t){var n,r,o;n=er.fromDom(e.getBody()),r="mce-content-readonly",o=t,Ki.has(n,r)&&!1===o?Ki.remove(n,r):o&&Ki.add(n,r),t?(e.selection.controlSelection.hideResizeRect(),e.readonly=!0,e.getBody().contentEditable="false"):(e.readonly=!1,e.getBody().contentEditable="true",ep(e,"StyleWithCSS",!1),ep(e,"enableInlineTableEditing",!1),ep(e,"enableObjectResizing",!1),e.focus(),e.nodeChanged())},np=function(e){return e.readonly?"readonly":"design"},rp=hi.DOM,op=function(e,t){return"selectionchange"===t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|drag
 over|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=rp.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()},ip=function(e,t,n){var r;(r=e).hidden||r.readonly?!0===e.readonly&&n.preventDefault():e.fire(t,n)},ap=function(i,a){var e,t;if(i.delegates||(i.delegates={}),!i.delegates[a]&&!i.removed)if(e=op(i,a),i.settings.event_root){if($g||($g={},i.editorManager.on("removeEditor",function(){var e;if(!i.editorManager.activeEditor&&$g){for(e in $g)i.dom.unbind(op(i,e));$g=null}})),$g[a])return;t=function(e){for(var t=e.target,n=i.editorManager.get(),r=n.length;r--;){var o=n[r].getBody();(o===t||rp.isChildOf(t,o))&&ip(n[r],a,e)}},$g[a]=t,rp.bind(e,a,t)}else t=function(e){ip(i,a,e)},rp.bind(e,a,t),i.delegates[a]=t},up={bindPendingEventDelegates:function(){var t=this;Yt.each(t._pendingNativeEvents,function(e){ap(t,e)})},toggleNativeEvent:function(e,t){var n=this;"focus"!==e&&"b
 lur"!==e&&(t?n.initialized?ap(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(op(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e,t=this,n=t.getBody(),r=t.dom;if(t.delegates){for(e in t.delegates)t.dom.unbind(op(t,e),e,t.delegates[e]);delete t.delegates}!t.inline&&n&&r&&(n.onload=null,r.unbind(t.getWin()),r.unbind(t.getDoc())),r&&(r.unbind(n),r.unbind(t.getContainer()))}},sp=up=Yt.extend({},Kg,up),cp=Yt.each,lp=Yt.explode,fp={f9:120,f10:121,f11:122},dp=Yt.makeMap("alt,ctrl,shift,meta,access");function mp(i){var a={},r=[],u=function(e){var t,n,r={};for(n in cp(lp(e,"+"),function(e){e in dp?r[e]=!0:/^[0-9]{2,}$/.test(e)?r.keyCode=parseInt(e,10):(r.charCode=e.charCodeAt(0),r.keyCode=fp[e]||e.toUpperCase().charCodeAt(0))}),t=[r.keyCode],dp)r[n]?t.push(n):r[n]=!1;return r.id=t.join(","),r.access&&am
 p;(r.alt=!0,Re.mac?r.ctrl=!0:r.shift=!0),r.meta&&(Re.mac?r.meta=!0:(r.ctrl=!0,r.meta=!1)),r},s=function(e,t,n,r){var o;return(o=Yt.map(lp(e,">"),u))[o.length-1]=Yt.extend(o[o.length-1],{func:n,scope:r||i}),Yt.extend(o[0],{desc:i.translate(t),subpatterns:o.slice(1)})},o=function(e,t){return!!t&&t.ctrl===e.ctrlKey&&t.meta===e.metaKey&&t.alt===e.altKey&&t.shift===e.shiftKey&&!!(e.keyCode===t.keyCode||e.charCode&&e.charCode===t.charCode)&&(e.preventDefault(),!0)},c=function(e){return e.func?e.func.call(e.scope):null};i.on("keyup keypress keydown",function(t){var e,n;((n=t).altKey||n.ctrlKey||n.metaKey||"keydown"===(e=t).type&&112<=e.keyCode&&e.keyCode<=123)&&!t.isDefaultPrevented()&&(cp(a,function(e){if(o(t,e))return r=e.subpatterns.slice(0),"keydown"===t.type&&c(e),!0}),o(t,r[0])&&(1===r.length&&"keydown"===t.
 type&&c(r[0]),r.shift()))}),this.add=function(e,n,r,o){var t;return"string"==typeof(t=r)?r=function(){i.execCommand(t,!1,null)}:Yt.isArray(t)&&(r=function(){i.execCommand(t[0],t[1],t[2])}),cp(lp(Yt.trim(e.toLowerCase())),function(e){var t=s(e,n,r,o);a[t.id]=t}),!0},this.remove=function(e){var t=s(e);return!!a[t.id]&&(delete a[t.id],!0)}}var gp=function(e){var t=e!==undefined?e.dom():document;return A.from(t.activeElement).map(er.fromDom)},pp=function(e){var t=Wr.owner(e).dom();return e.dom()===t.activeElement},hp=function(t){return gp(Wr.owner(t)).filter(function(e){return t.dom().contains(e.dom())})},vp=function(t,e){return(n=e,n.collapsed?A.from(ru(n.startContainer,n.startOffset)).map(er.fromDom):A.none()).bind(function(e){return yo(e)?A.some(e):!1===Ur.contains(t,e)?A.some(t):A.none()});var n},bp=function(t,e){vp(er.fromDom(t.getBody()),e).bind(function(e){return al.firstPositionIn(e.dom())}).fold(function(){t.selection.normalize()},function(e){r
 eturn t.selection.setRng(e.toRange())})},yp=function(e){if(e.setActive)try{e.setActive()}catch(t){e.focus()}else e.focus()},Cp=function(e){var t,n=e.getBody();return n&&(t=er.fromDom(n),pp(t)||hp(t).isSome())},xp=function(e){return e.inline?Cp(e):(t=e).iframeElement&&pp(er.fromDom(t.iframeElement));var t},wp=function(e){return e.editorManager.setActive(e)},Np=function(e,t){e.removed||(t?wp(e):function(t){var e=t.selection,n=t.settings.content_editable,r=t.getBody(),o=e.getRng();t.quirks.refreshContentEditable();var i,a,u=(i=t,a=e.getNode(),i.dom.getParent(a,function(e){return"true"===i.dom.getContentEditable(e)}));if(t.$.contains(r,u))return yp(u),bp(t,o),wp(t);t.bookmark!==undefined&&!1===xp(t)&&Ig(t).each(function(e){t.selection.setRng(e),o=e}),n||(Re.opera||yp(r),t.getWin().focus()),(Re.gecko||n)&&(yp(r),bp(t,o)),wp(t)}(e))},Ep=xp,Sp=function(e,t){return t.dom()[e]},Tp=function(e,t){return parseInt(Tr(t,e),10)},kp=b(Sp,"clien
 tWidth"),Ap=b(Sp,"clientHeight"),_p=b(Tp,"margin-top"),Rp=b(Tp,"margin-left"),Dp=function(e,t,n){var r,o,i,a,u,s,c,l,f,d,m=er.fromDom(e.getBody()),g=e.inline?m:Wr.documentElement(m),p=(r=e.inline,i=t,a=n,u=(o=g).dom().getBoundingClientRect(),{x:i-(r?u.left+o.dom().clientLeft+Rp(o):0),y:a-(r?u.top+o.dom().clientTop+_p(o):0)});return c=p.x,l=p.y,f=kp(s=g),d=Ap(s),0<=c&&0<=l&&c<=f&&l<=d},Bp=function(e){var t,n=e.inline?e.getBody():e.getContentAreaContainer();return(t=n,A.from(t).map(er.fromDom)).map(function(e){return Ur.contains(Wr.owner(e),e)}).getOr(!1)};function Op(n){var t,o=[],i=function(){var e,t=n.theme;return t&&t.getNotificationManagerImpl?t.getNotificationManagerImpl():{open:e=function(){throw new Error("Theme did not provide a NotificationManager implementation.")},close:e,reposition:e,getArgs:e}},a=function(){0<o.length&&i().reposition(o)},u=function(t){K(o,function(e){retur
 n e===t}).each(function(e){o.splice(e,1)})},r=function(r){if(!n.removed&&Bp(n))return V(o,function(e){return t=i().getArgs(e),n=r,!(t.type!==n.type||t.text!==n.text||t.progressBar||t.timeout||n.progressBar||n.timeout);var t,n}).getOrThunk(function(){n.editorManager.setActive(n);var e,t=i().open(r,function(){u(t),a()});return e=t,o.push(e),a(),t})};return(t=n).on("SkinLoaded",function(){var e=t.settings.service_message;e&&r({text:e,type:"warning",timeout:0,icon:""})}),t.on("ResizeEditor ResizeWindow",function(){Le.requestAnimationFrame(a)}),t.on("remove",function(){F(o,function(e){i().close(e)})}),{open:r,close:function(){A.from(o[0]).each(function(e){i().close(e),u(e),a()})},getNotifications:function(){return o}}}function Pp(r){var o=[],i=function(){var e,t=r.theme;return t&&t.getWindowManagerImpl?t.getWindowManagerImpl():{open:e=function(){throw new Error("Theme did not provide a WindowManager implementa
 tion.")},alert:e,confirm:e,close:e,getParams:e,setParams:e}},a=function(e,t){return function(){return t?t.apply(e,arguments):undefined}},u=function(e){var t;o.push(e),t=e,r.fire("OpenWindow",{win:t})},s=function(n){K(o,function(e){return e===n}).each(function(e){var t;o.splice(e,1),t=n,r.fire("CloseWindow",{win:t}),0===o.length&&r.focus()})},e=function(){return A.from(o[o.length-1])};return r.on("remove",function(){F(o.slice(0),function(e){i().close(e)})}),{windows:o,open:function(e,t){r.editorManager.setActive(r),Pg(r);var n=i().open(e,t,s);return u(n),n},alert:function(e,t,n){var r=i().alert(e,a(n||this,t),s);u(r)},confirm:function(e,t,n){var r=i().confirm(e,a(n||this,t),s);u(r)},close:function(){e().each(function(e){i().close(e),s(e)})},getParams:function(){return e().map(i().getParams).getOr(null)},setParams:function(t){e().each(function(e){i().setParams(e,t)})},getWindows:function(){return o}}}var Lp=Ei.PluginManager,Ip=function(e,t){v
 ar n=function(e,t){for(var n in Lp.urls)if(Lp.urls[n]+"/plugin"+t+".js"===e)return n;return null}(t,e.suffix);return n?"Failed to load plugin: "+n+" from url "+t:"Failed to load plugin url: "+t},Mp=function(e,t){e.notificationManager.open({type:"error",text:t})},Fp=function(e,t){e._skinLoaded?Mp(e,t):e.on("SkinLoaded",function(){Mp(e,t)})},Up=function(e,t){Fp(e,Ip(e,t))},zp=function(e,t){Fp(e,"Failed to upload image: "+t)},Vp=Fp,qp=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=window.console;r&&(r.error?r.error.apply(r,arguments):r.log.apply(r,arguments))},Hp=Ei.PluginManager,jp=Ei.ThemeManager;function $p(){return new(ie.getOrDie("XMLHttpRequest"))}function Wp(u,s){var r={},n=function(e,r,o,t){var i,n;(i=new $p).open("POST",s.url),i.withCredentials=s.credentials,i.upload.onprogress=function(e){t(e.loaded/e.total*100)},i.onerror=function(){o(
 "Image upload failed due to a XHR Transport error. Code: "+i.status)},i.onload=function(){var e,t,n;i.status<200||300<=i.status?o("HTTP Error: "+i.status):(e=JSON.parse(i.responseText))&&"string"==typeof e.location?r((t=s.basePath,n=e.location,t?t.replace(/\/$/,"")+"/"+n.replace(/^\//,""):n)):o("Invalid JSON: "+i.responseText)},(n=new FormData).append("file",e.blob(),e.filename()),i.send(n)},c=function(e,t){return{url:t,blobInfo:e,status:!0}},l=function(e,t){return{url:"",blobInfo:e,status:!1,error:t}},f=function(e,t){Yt.each(r[e],function(e){e(t)}),delete r[e]},o=function(e,n){return e=Yt.grep(e,function(e){return!u.isUploaded(e.blobUri())}),De.all(Yt.map(e,function(e){return u.isPending(e.blobUri())?(t=e.blobUri(),new De(function(e){r[t]=r[t]||[],r[t].push(e)})):(o=e,i=s.handler,a=n,u.markPending(o.blobUri()),new De(function(t){var n;try{var r=function(){n&&n.close()};i(
 o,function(e){r(),u.markUploaded(o.blobUri(),e),f(o.blobUri(),c(o,e)),t(c(o,e))},function(e){r(),u.removeFailed(o.blobUri()),f(o.blobUri(),l(o,e)),t(l(o,e))},function(e){e<0||100<e||(n||(n=a()),n.progressBar.value(e))})}catch(e){t(l(o,e.message))}}));var o,i,a,t}))};return s=Yt.extend({credentials:!1,handler:n},s),{upload:function(e,t){return s.url||s.handler!==n?o(e,t):new De(function(e){e([])})}}}function Kp(e,t){return new(ie.getOrDie("Blob"))(e,t)}function Xp(){return new(ie.getOrDie("FileReader"))}function Yp(e){return new(ie.getOrDie("Uint8Array"))(e)}var Gp=function(e){return ie.getOrDie("atob")(e)},Jp=function(e){var t,n;return e=decodeURIComponent(e).split(","),(n=/data:([^;]+)/.exec(e[0]))&&(t=n[1]),{type:t,data:e[1]}},Qp=function(e){return 0===e.indexOf("blob:")?(i=e,new De(function(e,t){var n=function(){t("Cannot convert "+i+" to Blob. Resource might not exist or is inaccessible.&quo
 t;)};try{var r=new $p;r.open("GET",i,!0),r.responseType="blob",r.onload=function(){200===this.status?e(this.response):n()},r.onerror=n,r.send()}catch(o){n()}})):0===e.indexOf("data:")?(o=e,new De(function(e){var t,n,r;o=Jp(o);try{t=Gp(o.data)}catch(Kw){return void e(new Kp([]))}for(n=new Yp(t.length),r=0;r<n.length;r++)n[r]=t.charCodeAt(r);e(new Kp([n],{type:o.type}))})):null;var i,o},Zp=function(n){return new De(function(e){var t=new Xp;t.onloadend=function(){e(t.result)},t.readAsDataURL(n)})},eh=Jp,th=0,nh=function(e){return(e||"blobid")+th++},rh=function(n,r,o,t){var i,a;0!==r.src.indexOf("blob:")?(i=eh(r.src).data,(a=n.findFirst(function(e){return e.base64()===i}))?o({image:r,blobInfo:a}):Qp(r.src).then(function(e){a=n.create(nh(),e,i),n.add(a),o({image:r,blobInfo:a})},function(e){t(e)})):(a=n.getByUri(r.src))?o({image:r,blobInfo:a}):Qp(r.src).then(function(t){Zp(t).then(function(e){i=eh(e).data,a=n.create(nh(),t,i),n.add(a),o
 ({image:r,blobInfo:a})})},function(e){t(e)})},oh=function(e){return e?e.getElementsByTagName("img"):[]},ih=0,ah={uuid:function(e){return e+ih+++(t=function(){return Math.round(4294967295*Math.random()).toString(36)},"s"+(new Date).getTime().toString(36)+t()+t()+t());var t}};function uh(u){var n,o,i,t,e,a,r,s,c,l,f=(n=[],o=wa.constant,i=function(e){var t,n,r;if(!e.blob||!e.base64)throw new Error("blob and base64 representations of the image are required for BlobInfo to be created");return t=e.id||ah.uuid("blobid"),n=e.name||t,{id:o(t),name:o(n),filename:o(n+"."+(r=e.blob.type,{"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"}[r.toLowerCase()]||"dat")),blob:o(e.blob),base64:o(e.base64),blobUri:o(e.blobUri||ue.createObjectURL(e.blob)),uri:o(e.uri)}},{create:function(e,t,n,r){return i("object"==typeof e?e:{id:e,name
 :r,blob:t,base64:n})},add:function(e){t(e.id())||n.push(e)},get:t=function(t){return e(function(e){return e.id()===t})},getByUri:function(t){return e(function(e){return e.blobUri()===t})},findFirst:e=function(e){return jt.filter(n,e)[0]},removeByUri:function(t){n=jt.filter(n,function(e){return e.blobUri()!==t||(ue.revokeObjectURL(e.blobUri()),!1)})},destroy:function(){jt.each(n,function(e){ue.revokeObjectURL(e.blobUri())}),n=[]}}),d=u.settings,m=(s={},c=function(e,t){return{status:e,resultUri:t}},{hasBlobUri:l=function(e){return e in s},getResultUri:function(e){var t=s[e];return t?t.resultUri:null},isPending:function(e){return!!l(e)&&1===s[e].status},isUploaded:function(e){return!!l(e)&&2===s[e].status},markPending:function(e){s[e]=c(1,null)},markUploaded:function(e,t){s[e]=c(2,t)},removeFailed:function(e){delete s[e]},destroy:function(){s={}}}),g=function(t){return function(e){return u.selection?t(e):[]}},p=function(e,t,n){for(var r=0;-1!==(r=e.indexOf(t,r))&&am
 p;(e=e.substring(0,r)+n+e.substr(r+t.length),r+=n.length-t.length+1),-1!==r;);return e},h=function(e,t,n){return e=p(e,'src="'+t+'"','src="'+n+'"'),e=p(e,'data-mce-src="'+t+'"','data-mce-src="'+n+'"')},v=function(t,n){jt.each(u.undoManager.data,function(e){"fragmented"===e.type?e.fragments=jt.map(e.fragments,function(e){return h(e,t,n)}):e.content=h(e.content,t,n)})},b=function(){return u.notificationManager.open({text:u.translate("Image uploading..."),type:"info",timeout:-1,progressBar:!0})},y=function(e,t){f.removeByUri(e.src),v(e.src,t),u.$(e).attr({src:d.images_reuse_filename?t+"?"+(new Date).getTime():t,"data-mce-src":u.convertURL(t,"src")})},C=function(n){return a||(a=Wp(m,{url:d.images_upload_url,basePath:d.images_upload_base_path,credentials:d.images_upload_credentials,handler:d.images_upload_handler})),N().then(g(function(r){var e;return e=jt.map(r,function(e){return e.blobIn
 fo}),a.upload(e,b).then(g(function(e){var t=jt.map(e,function(e,t){var n=r[t].image;return e.status&&!1!==u.settings.images_replace_blob_uris?y(n,e.url):e.error&&zp(u,e.error),{element:n,status:e.status}});return n&&n(t),t}))}))},x=function(e){if(!1!==d.automatic_uploads)return C(e)},w=function(e){return!d.images_dataimg_filter||d.images_dataimg_filter(e)},N=function(){var o,i,a;return r||(o=m,i=f,a={},r={findAll:function(e,n){var t;n||(n=wa.constant(!0)),t=jt.filter(oh(e),function(e){var t=e.src;return!!Re.fileApi&&!e.hasAttribute("data-mce-bogus")&&!e.hasAttribute("data-mce-placeholder")&&!(!t||t===Re.transparentSrc)&&(0===t.indexOf("blob:")?!o.isUploaded(t):0===t.indexOf("data:")&&n(e))});var r=jt.map(t,function(n){if(a[n.src])return new De(function(t){a[n.src].then(function(e){if("string"==typeof e)return e;t({image:n,blobInfo:e.blobInfo})})});var e=new De(function(e
 ,t){rh(i,n,e,t)}).then(function(e){return delete a[e.image.src],e})["catch"](function(e){return delete a[n.src],e});return a[n.src]=e});return De.all(r)}}),r.findAll(u.getBody(),w).then(g(function(e){return e=jt.filter(e,function(e){return"string"!=typeof e||(Vp(u,e),!1)}),jt.each(e,function(e){v(e.image.src,e.blobInfo.blobUri()),e.image.src=e.blobInfo.blobUri(),e.image.removeAttribute("data-mce-src")}),e}))},E=function(e){return e.replace(/src="(blob:[^"]+)"/g,function(e,n){var t=m.getResultUri(n);if(t)return'src="'+t+'"';var r=f.getByUri(n);return r||(r=jt.reduce(u.editorManager.get(),function(e,t){return e||t.editorUpload&&t.editorUpload.blobCache.getByUri(n)},null)),r?'src="data:'+r.blob().type+";base64,"+r.base64()+'"':e})};return u.on("setContent",function(){!1!==u.settings.automatic_uploads?x():N()}),u.on("RawSaveContent",function(e){e.content=E(e.content)}),u.on("getCo
 ntent",function(e){e.source_view||"raw"===e.format||(e.content=E(e.content))}),u.on("PostRender",function(){u.parser.addNodeFilter("img",function(e){jt.each(e,function(e){var t=e.attr("src");if(!f.getByUri(t)){var n=m.getResultUri(t);n&&e.attr("src",n)}})})}),{blobCache:f,uploadImages:C,uploadImagesAuto:x,scanForImages:N,destroy:function(){f.destroy(),m.destroy(),r=a=null}}}var sh=function(e,t){return e.hasOwnProperty(t.nodeName)},ch=function(e,t){if(Bo.isText(t)){if(0===t.nodeValue.length)return!0;if(/^\s+$/.test(t.nodeValue)&&(!t.nextSibling||sh(e,t.nextSibling)))return!0}return!1},lh=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.dom,g=e.selection,p=e.schema,h=p.getBlockElements(),v=g.getStart(),b=e.getBody();if(f=d.forced_root_block,v&&Bo.isElement(v)&&f&&(l=b.nodeName.toLowerCase(),p.isValidChild(l,f.toLowerCase())&&(y=h,C=b,x=v,!M(Hf(er.fromDom(x),er.fromDom(C)),funct
 ion(e){return sh(y,e.dom())})))){var y,C,x,w,N;for(n=(t=g.getRng()).startContainer,r=t.startOffset,o=t.endContainer,i=t.endOffset,c=Ep(e),v=b.firstChild;v;)if(w=h,N=v,Bo.isText(N)||Bo.isElement(N)&&!sh(w,N)&&!hl(N)){if(ch(h,v)){v=(u=v).nextSibling,m.remove(u);continue}a||(a=m.create(f,e.settings.forced_root_block_attrs),v.parentNode.insertBefore(a,v),s=!0),v=(u=v).nextSibling,a.appendChild(u)}else a=null,v=v.nextSibling;s&&c&&(t.setStart(n,r),t.setEnd(o,i),g.setRng(t),e.nodeChanged())}},fh=function(e){e.settings.forced_root_block&&e.on("NodeChange",b(lh,e))},dh=function(t){return Wr.firstChild(t).fold(H([t]),function(e){return[t].concat(dh(e))})},mh=function(t){return Wr.lastChild(t).fold(H([t]),function(e){return"br"===sr.name(e)?Wr.prevSibling(e).map(function(e){return[t].concat(mh(e))}).getOr([]):[t].concat(mh(e))})},gh=function(o,e){return au([(i=e,a=i.startContainer,u=i.startOffset,Bo.isText(a)?0===u?A.some(er.fromDom(
 a)):A.none():A.from(a.childNodes[u]).map(er.fromDom)),(t=e,n=t.endContainer,r=t.endOffset,Bo.isText(n)?r===n.data.length?A.some(er.fromDom(n)):A.none():A.from(n.childNodes[r-1]).map(er.fromDom))],function(e,t){var n=V(dh(o),b(Ur.eq,e)),r=V(mh(o),b(Ur.eq,t));return n.isSome()&&r.isSome()}).getOr(!1);var t,n,r,i,a,u},ph=function(e,t,n,r){var o=n,i=new io(n,o),a=e.schema.getNonEmptyElements();do{if(3===n.nodeType&&0!==Yt.trim(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(a[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"===n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(Re.ie&&Re.ie<11&&e.isBlock(n)&&e.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?i.next():i.prev());"BODY"===o.nodeName&&(r?t.setStart(o,0):t.setEnd(o,o.childNodes.length))},hh=function(e){var t=e.selection.getSel();return t&&0<t.rangeCount}
 ;function vh(i){var r,o=[];"onselectionchange"in i.getDoc()||i.on("NodeChange Click MouseUp KeyUp Focus",function(e){var t,n;n={startContainer:(t=i.selection.getRng()).startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset},"nodechange"!==e.type&&Zm(n,r)||i.fire("SelectionChange"),r=n}),i.on("contextmenu",function(){i.fire("SelectionChange")}),i.on("SelectionChange",function(){var e=i.selection.getStart(!0);!e||!Re.range&&i.selection.isCollapsed()||hh(i)&&!function(e){var t,n;if((n=i.$(e).parentsUntil(i.getBody()).add(e)).length===o.length){for(t=n.length;0<=t&&n[t]===o[t];t--);if(-1===t)return o=n,!0}return o=n,!1}(e)&&i.dom.isChildOf(e,i.getBody())&&i.nodeChanged({selectionChange:!0})}),i.on("MouseUp",function(e){!e.isDefaultPrevented()&&hh(i)&&("IMG"===i.selection.getNode().nodeName?Le.setE
 ditorTimeout(i,function(){i.nodeChanged()}):i.nodeChanged())}),this.nodeChanged=function(e){var t,n,r,o=i.selection;i.initialized&&o&&!i.settings.disable_nodechange&&!i.readonly&&(r=i.getBody(),(t=o.getStart(!0)||r).ownerDocument===i.getDoc()&&i.dom.isChildOf(t,r)||(t=r),n=[],i.dom.getParent(t,function(e){if(e===r)return!0;n.push(e)}),(e=e||{}).element=t,e.parents=n,i.fire("NodeChange",e))}}var bh,yh,Ch=function(e){var t,n,r,o;return o=e.getBoundingClientRect(),n=(t=e.ownerDocument).documentElement,r=t.defaultView,{top:o.top+r.pageYOffset-n.clientTop,left:o.left+r.pageXOffset-n.clientLeft}},xh=function(e,t){return n=(u=e).inline?Ch(u.getBody()):{left:0,top:0},a=(i=e).getBody(),r=i.inline?{left:a.scrollLeft,top:a.scrollTop}:{left:0,top:0},{pageX:(o=function(e,t){if(t.target.ownerDocument!==e.getDoc()){var n=Ch(e.getContentAreaContainer()),r=(i=(o=e).getBody(),a=o.getDoc().documentElement,u={left:i.scrollLeft,top:i.scrollTop},s={left:i
 .scrollLeft||a.scrollLeft,top:i.scrollTop||a.scrollTop},o.inline?u:s);return{left:t.pageX-n.left+r.left,top:t.pageY-n.top+r.top}}var o,i,a,u,s;return{left:t.pageX,top:t.pageY}}(e,t)).left-n.left+r.left,pageY:o.top-n.top+r.top};var n,r,o,i,a,u},wh=Bo.isContentEditableFalse,Nh=Bo.isContentEditableTrue,Eh=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},Sh=function(u,s){return function(e){if(0===e.button){var t=jt.find(s.dom.getParents(e.target),wa.or(wh,Nh));if(i=s.getBody(),wh(a=t)&&a!==i){var n=s.dom.getPos(t),r=s.getBody(),o=s.getDoc().documentElement;u.element=t,u.screenX=e.screenX,u.screenY=e.screenY,u.maxX=(s.inline?r.scrollWidth:o.offsetWidth)-2,u.maxY=(s.inline?r.scrollHeight:o.offsetHeight)-2,u.relX=e.pageX-n.x,u.relY=e.pageY-n.y,u.width=t.offsetWidth,u.height=t.offsetHeight,u.ghost=function(e,t,n,r){var o=t.cloneNode(!0);e.dom.setStyles(o,{width:n,height:r}),e.dom.setAttrib(o,"data-mce-selected",null);var i=e.dom.create("div&qu
 ot;,{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return e.dom.setStyles(i,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:n,height:r}),e.dom.setStyles(o,{margin:0,boxSizing:"border-box"}),i.appendChild(o),i}(s,t,u.width,u.height)}}var i,a}},Th=function(l,f){return function(e){if(l.dragging&&(s=(i=f).selection,c=s.getSel().getRangeAt(0).startContainer,a=3===c.nodeType?c.parentNode:c,u=l.element,a!==u&&!i.dom.isChildOf(a,u)&&!wh(a))){var t=(r=l.element,(o=r.cloneNode(!0)).removeAttribute("data-mce-selected"),o),n=f.fire("drop",{targetClone:t,clientX:e.clientX,clientY:e.clientY});n.isDefaultPrevented()||(t=n.targetClone,f.undoManager.transact(function(){Eh(l.element),f.insertContent(f.dom.getOuterHTML(t)),f._selectionOverrides.hideFakeCaret()}))}var r,o,i,a,u,s,c;kh(l
 )}},kh=function(e){e.dragging=!1,e.element=null,Eh(e.ghost)},Ah=function(e){var t,n,r,o,i,a,p,h,v,u,s,c={};t=hi.DOM,a=document,n=Sh(c,e),p=c,h=e,v=Le.throttle(function(e,t){h._selectionOverrides.hideFakeCaret(),h.selection.placeCaretAt(e,t)},0),r=function(e){var t,n,r,o,i,a,u,s,c,l,f,d,m=Math.max(Math.abs(e.screenX-p.screenX),Math.abs(e.screenY-p.screenY));if(p.element&&!p.dragging&&10<m){if(h.fire("dragstart",{target:p.element}).isDefaultPrevented())return;p.dragging=!0,h.focus()}if(p.dragging){var g=(f=p,{pageX:(d=xh(h,e)).pageX-f.relX,pageY:d.pageY+5});c=p.ghost,l=h.getBody(),c.parentNode!==l&&l.appendChild(c),t=p.ghost,n=g,r=p.width,o=p.height,i=p.maxX,a=p.maxY,s=u=0,t.style.left=n.pageX+"px",t.style.top=n.pageY+"px",n.pageX+r>i&&(u=n.pageX+r-i),n.pageY+o>a&&(s=n.pageY+o-a),t.style.width=r-u+"px",t.style.height=o-s+"px",v(e.clientX,e.clientY)}},o=Th(c,e),u=c,i=function(){u.dragging
 &&s.fire("dragend"),kh(u)},(s=e).on("mousedown",n),e.on("mousemove",r),e.on("mouseup",o),t.bind(a,"mousemove",r),t.bind(a,"mouseup",i),e.on("remove",function(){t.unbind(a,"mousemove",r),t.unbind(a,"mouseup",i)})},_h=function(e){var n;Ah(e),(n=e).on("drop",function(e){var t="undefined"!=typeof e.clientX?n.getDoc().elementFromPoint(e.clientX,e.clientY):null;(wh(t)||wh(n.dom.getContentEditableParent(t)))&&e.preventDefault()})},Rh=function(e){return jt.reduce(e,function(e,t){return e.concat(function(t){var e=function(e){return jt.map(e,function(e){return(e=Ja(e)).node=t,e})};if(Bo.isElement(t))return e(t.getClientRects());if(Bo.isText(t)){var n=t.ownerDocument.createRange();return n.setStart(t,0),n.setEnd(t,t.data.length),e(n.getClientRects())}}(t))},[])};(yh=bh||(bh={}))[yh.Up=-1]="Up",yh[yh.Down=1]="Down";var Dh=function(o,i,a,e,u,t){var n,s
 ,c=0,l=[],r=function(e){var t,n,r;for(r=Rh([e]),-1===o&&(r=r.reverse()),t=0;t<r.length;t++)if(n=r[t],!a(n,s)){if(0<l.length&&i(n,jt.last(l))&&c++,n.line=c,u(n))return!0;l.push(n)}};return(s=jt.last(t.getClientRects()))&&(r(n=t.getNode()),function(e,t,n,r){for(;r=Mc(r,e,Ya,t);)if(n(r))return}(o,e,r,n)),l},Bh=b(Dh,bh.Up,eu,tu),Oh=b(Dh,bh.Down,tu,eu),Ph=function(n){return function(e){return t=n,e.line>t;var t}},Lh=function(n){return function(e){return t=n,e.line===t;var t}},Ih=Bo.isContentEditableFalse,Mh=Mc,Fh=function(e,t){return Math.abs(e.left-t)},Uh=function(e,t){return Math.abs(e.right-t)},zh=function(e,t){return e>=t.left&&e<=t.right},Vh=function(e,o){return jt.reduce(e,function(e,t){var n,r;return n=Math.min(Fh(e,o),Uh(e,o)),r=Math.min(Fh(t,o),Uh(t,o)),zh(o,t)?t:zh(o,e)?e:r===n&&Ih(t.node)?t:r<n?t:e})},qh=function(e,t,n,r){for(;r=Mh(r,e,Ya,t);)if(n(r))return},Hh=function(e,t,n){var r,o,i,a,u,s,c,l,f=Rh((o=e,jt.fi
 lter(jt.toArray(o.getElementsByTagName("*")),Tc))),d=jt.filter(f,function(e){return n>=e.top&&n<=e.bottom});return(r=Vh(d,t))&&(r=Vh((u=e,l=function(t,e){var n;return n=jt.filter(Rh([e]),function(e){return!t(e,s)}),c=c.concat(n),0===n.length},(c=[]).push(s=r),qh(bh.Up,u,b(l,eu),s.node),qh(bh.Down,u,b(l,tu),s.node),c),t))&&Tc(r.node)?(a=t,{node:(i=r).node,before:Fh(i,a)<Uh(i,a)}):null},jh=function(i,a,e){return!e.collapsed&&z(e.getClientRects(),function(e,t){return e||(o=a,(r=i)>=(n=t).left&&r<=n.right&&o>=n.top&&o<=n.bottom);var n,r,o},!1)},$h=function(t){var e=Bi(function(){if(!t.removed&&t.selection.getRng().collapsed){var e=ms(t,t.selection.getRng(),!1);t.selection.setRng(e)}},0);t.on("focus",function(){e.throttle()}),t.on("blur",function(){e.cancel()})},Wh={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){re
 turn e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(e){return Re.mac?e.metaKey:e.ctrlKey&&!e.altKey}},Kh=Bo.isContentEditableTrue,Xh=Bo.isContentEditableFalse,Yh=Jc,Gh=Gc,Jh=function(e,t){for(var n=e.getBody();t&&t!==n;){if(Kh(t)||Xh(t))return t;t=t.parentNode}return null},Qh=function(g){var p,e,t,a=g.getBody(),o=Sc(g.getBody(),function(e){return g.dom.isBlock(e)},function(){return Ep(g)}),h="sel-"+g.dom.uniqueId(),u=function(e){e&&g.selection.setRng(e)},s=function(){return g.selection.getRng()},v=function(e,t,n,r){return void 0===r&&(r=!0),g.fire("ShowCaret",{target:t,direction:e,before:n}).isDefaultPrevented()?null:(r&&g.selection.scrollIntoView(t,-1===e),o.show(n,t))},b=function(e,t){return t=$c(e,a,t),-1===e?Au.fromRangeStart(t):Au.fromRangeEnd(t)},n=function(e){return Da(e)||Ia(e)||Ma(e)},y=function(e){return n(e.startContainer)||n(e.endContainer)},c=function(e,t){var n,r,o,i,a,u,s,c,l
 ,f,d=g.$,m=g.dom;if(!e)return null;if(e.collapsed){if(!y(e))if(!1===t){if(c=b(-1,e),Tc(c.getNode(!0)))return v(-1,c.getNode(!0),!1,!1);if(Tc(c.getNode()))return v(-1,c.getNode(),!c.isAtEnd(),!1)}else{if(c=b(1,e),Tc(c.getNode()))return v(1,c.getNode(),!c.isAtEnd(),!1);if(Tc(c.getNode(!0)))return v(1,c.getNode(!0),!1,!1)}return null}return i=e.startContainer,a=e.startOffset,u=e.endOffset,3===i.nodeType&&0===a&&Xh(i.parentNode)&&(i=i.parentNode,a=m.nodeIndex(i),i=i.parentNode),1!==i.nodeType?null:(u===a+1&&(n=i.childNodes[a]),Xh(n)?(l=f=n.cloneNode(!0),(s=g.fire("ObjectSelected",{target:n,targetClone:l})).isDefaultPrevented()?null:(r=ra(er.fromDom(g.getBody()),"#"+h).fold(function(){return d([])},function(e){return d([e.dom()])}),l=s.targetClone,0===r.length&&(r=d('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id",h)).appendTo(g.getBody()),e=g.dom.createRng()
 ,l===f&&Re.ie?(r.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p>').append(l),e.setStartAfter(r[0].firstChild.firstChild),e.setEndAfter(l)):(r.empty().append("\xa0").append(l).append("\xa0"),e.setStart(r[0].firstChild,1),e.setEnd(r[0].lastChild,0)),r.css({top:m.getPos(n,g.getBody()).y}),r[0].focus(),(o=g.selection.getSel()).removeAllRanges(),o.addRange(e),F(Xi(er.fromDom(g.getBody()),"*[data-mce-selected]"),function(e){vr.remove(e,"data-mce-selected")}),n.setAttribute("data-mce-selected","1"),p=n,C(),e)):null)},l=function(){p&&(p.removeAttribute("data-mce-selected"),ra(er.fromDom(g.getBody()),"#"+h).each(Di.remove),p=null),ra(er.fromDom(g.getBody()),"#"+h).each(Di.remove),p=null},C=function(){o.hide()};return Re.ceFalse&&(function(){g.on("mouseup",function(e){var t=s();t.collapsed&&Dp(g,e.clientX,e.cl
 ientY)&&u(ds(g,t,!1))}),g.on("click",function(e){var t;(t=Jh(g,e.target))&&(Xh(t)&&(e.preventDefault(),g.focus()),Kh(t)&&g.dom.isChildOf(t,g.selection.getNode())&&l())}),g.on("blur NewBlock",function(){l()}),g.on("ResizeWindow FullscreenStateChanged",function(){return o.reposition()});var n,r,i=function(e,t){var n,r,o=g.dom.getParent(e,g.dom.isBlock),i=g.dom.getParent(t,g.dom.isBlock);return!(!o||!g.dom.isChildOf(o,i)||!1!==Xh(Jh(g,o)))||o&&(n=o,r=i,!(g.dom.getParent(n,g.dom.isBlock)===g.dom.getParent(r,g.dom.isBlock)))&&function(e){var t=Ts(e);if(!e.firstChild)return!1;var n=Au.before(e.firstChild),r=t.next(n);return r&&!Gh(r)&&!Yh(r)}(o)};r=!1,(n=g).on("touchstart",function(){r=!1}),n.on("touchmove",function(){r=!0}),n.on("touchend",function(e){var t=Jh(n,e.target);Xh(t)&&(r||(e.preventDefault(),c(fs(n,t))))}),g.on("mousedown",functi
 on(e){var t,n=e.target;if((n===a||"HTML"===n.nodeName||g.dom.isChildOf(n,a))&&!1!==Dp(g,e.clientX,e.clientY))if(t=Jh(g,n))Xh(t)?(e.preventDefault(),c(fs(g,t))):(l(),Kh(t)&&e.shiftKey||jh(e.clientX,e.clientY,g.selection.getRng())||(C(),g.selection.placeCaretAt(e.clientX,e.clientY)));else if(!1===Tc(n)){l(),C();var r=Hh(a,e.clientX,e.clientY);if(r&&!i(e.target,r.node)){e.preventDefault();var o=v(1,r.node,r.before,!1);g.getBody().focus(),u(o)}}}),g.on("keypress",function(e){Wh.modifierPressed(e)||(e.keyCode,Xh(g.selection.getNode())&&e.preventDefault())}),g.on("getSelectionRange",function(e){var t=e.range;if(p){if(!p.parentNode)return void(p=null);(t=t.cloneRange()).selectNode(p),e.range=t}}),g.on("setSelectionRange",function(e){var t;(t=c(e.range,e.forward))&&(e.range=t)}),g.on("AfterSetSelectionRange",function(e){var t,n=e.range;y(n)||C(),t=n.startContainer.parentNode,g.dom.hasClass(t,"mce-
 offscreen-selection")||l()}),g.on("copy",function(e){var t,n=e.clipboardData;if(!e.isDefaultPrevented()&&e.clipboardData&&!Re.ie){var r=(t=g.dom.get(h))?t.getElementsByTagName("*")[0]:t;r&&(e.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),_h(g),$h(g)}(),e=g.contentStyles,t=".mce-content-body",e.push(o.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")),{showCaret:v,showBlockCaretContainer:function(e){e.hasAttribute("data-mce-caret")&&(Fa(e),u(s()),g.selection.scrollIntoView(e[0]))},hideFakeCaret:C,destroy:function(){o.destroy(),p=null}}},Zh=function(e,t,n){var r,o,i,a,u=1;for(a=e.getShortEndedElements(),(i=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[
 ^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g).lastIndex=r=n;o=i.exec(t);){if(r=i.lastIndex,"/"===o[1])u--;else if(!o[1]){if(o[2]in a)continue;u++}if(0===u)break}return r};function ev(F,U){void 0===U&&(U=ri());var e=function(){};!1!==(F=F||{}).fix_self_closing&&(F.fix_self_closing=!0);var z=F.comment?F.comment:e,V=F.cdata?F.cdata:e,q=F.text?F.text:e,H=F.start?F.start:e,j=F.end?F.end:e,$=F.pi?F.pi:e,W=F.doctype?F.doctype:e;return{parse:function(e){var t,n,r,d,o,i,a,m,u,s,g,c,p,l,f,h,v,b,y,C,x,w,N,E,S,T,k,A,_,R=0,D=[],B=0,O=Wo.decode,P=Yt.makeMap("src,href,data,background,formaction,poster,xlink:href"),L=/((java|vb)script|mhtml):/i,I=function(e){var t,n;for(t=D.length;t--&&D[t].name!==e;);if(0<=t){for(n=D.length-1;t<=n;n--)(e=D[n]).valid&&j(e.name);D.length=t}},M=function(e,t,n,r,o){var i,a,u,s,c;if(n=(t=t.toLowerCase())in g?t:O(n||r||o||""),p&&!m&&0==(0===(u=t).
 indexOf("data-")||0===u.indexOf("aria-"))){if(!(i=b[t])&&y){for(a=y.length;a--&&!(i=y[a]).pattern.test(t););-1===a&&(i=null)}if(!i)return;if(i.validValues&&!(n in i.validValues))return}if(P[t]&&!F.allow_script_urls){var l=n.replace(/[\s\u0000-\u001F]+/g,"");try{l=decodeURIComponent(l)}catch(f){l=unescape(l)}if(L.test(l))return;if(c=l,!(s=F).allow_html_data_urls&&(/^data:image\//i.test(c)?!1===s.allow_svg_data_urls&&/^data:image\/svg\+xml/i.test(c):/^data:/i.test(c)))return}m&&(t in P||0===t.indexOf("on"))||(d.map[t]=n,d.push({name:t,value:n}))};for(S=new RegExp("<(?:(?:!--([\\w\\W]*?)--\x3e)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+
 )>))","g"),T=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,s=U.getShortEndedElements(),E=F.self_closing_elements||U.getSelfClosingElements(),g=U.getBoolAttrs(),p=F.validate,u=F.remove_internals,_=F.fix_self_closing,k=U.getSpecialElements(),N=e+">";t=S.exec(N);){if(R<t.index&&q(O(e.substr(R,t.index-R))),n=t[6])":"===(n=n.toLowerCase()).charAt(0)&&(n=n.substr(1)),I(n);else if(n=t[7]){if(t.index+t[0].length>e.length){q(O(e.substr(t.index))),R=t.index+t[0].length;continue}if(":"===(n=n.toLowerCase()).charAt(0)&&(n=n.substr(1)),c=n in s,_&&E[n]&&0<D.length&&D[D.length-1].name===n&&I(n),!p||(l=U.getElementRule(n))){if(f=!0,p&&(b=l.attributes,y=l.attributePatterns),(v=t[8])?((m=-1!==v.indexOf("data-mce-type"))&&u&&(f=!1),(d=[]).map={},v.replace(T,M)):(d=[]).map={},p&&!m){if(C=l.attr
 ibutesRequired,x=l.attributesDefault,w=l.attributesForced,l.removeEmptyAttrs&&!d.length&&(f=!1),w)for(o=w.length;o--;)a=(h=w[o]).name,"{$uid}"===(A=h.value)&&(A="mce_"+B++),d.map[a]=A,d.push({name:a,value:A});if(x)for(o=x.length;o--;)(a=(h=x[o]).name)in d.map||("{$uid}"===(A=h.value)&&(A="mce_"+B++),d.map[a]=A,d.push({name:a,value:A}));if(C){for(o=C.length;o--&&!(C[o]in d.map););-1===o&&(f=!1)}if(h=d.map["data-mce-bogus"]){if("all"===h){R=Zh(U,e,S.lastIndex),S.lastIndex=R;continue}f=!1}}f&&H(n,d,c)}else f=!1;if(r=k[n]){r.lastIndex=R=t.index+t[0].length,(t=r.exec(e))?(f&&(i=e.substr(R,t.index-R)),R=t.index+t[0].length):(i=e.substr(R),R=e.length),f&&(0<i.length&&q(i,!0),j(n)),S.lastIndex=R;continue}c||(v&&v.indexOf("/")===v.length-1?f&&j(n):D.push({name:n,valid:f}))}else(n=t[1])?(">"===n.charAt(0)&&amp
 ;(n=" "+n),F.allow_conditional_comments||"[if"!==n.substr(0,3).toLowerCase()||(n=" "+n),z(n)):(n=t[2])?V(n.replace(/<!--|-->/g,"")):(n=t[3])?W(n):(n=t[4])&&$(n,t[5]);R=t.index+t[0].length}for(R<e.length&&q(O(e.substr(R))),o=D.length-1;0<=o;o--)(n=D[o]).valid&&j(n.name)}}}(ev||(ev={})).findEndTag=Zh;var tv=ev,nv=function(e,t){var n,r,o,i,a,u,s,c,l=t,f=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,d=e.schema;for(u=e.getTempAttrs(),s=l,c=new RegExp(["\\s?("+u.join("|")+')="[^"]+"'].join("|"),"gi"),l=s.replace(c,""),a=d.getShortEndedElements();i=f.exec(l);)r=f.lastIndex,o=i[0].length,n=a[i[1]]?r:tv.findEndTag(d,l,r),l=l.substring(0,r-o)+l.substring(n),f.lastIndex=r-o;return Ta(l)},rv={trimExternal:nv,trimInternal:nv},ov=0,iv=2,av=1,uv=function(g,p){var e=g.length+p.length+2,h=new Array(e),v=new Array(e),c=function(e,t,n,r,o){var i
 =l(e,t,n,r);if(null===i||i.start===t&&i.diag===t-r||i.end===e&&i.diag===e-n)for(var a=e,u=n;a<t||u<r;)a<t&&u<r&&g[a]===p[u]?(o.push([0,g[a]]),++a,++u):r-n<t-e?(o.push([2,g[a]]),++a):(o.push([1,p[u]]),++u);else{c(e,i.start,n,i.start-i.diag,o);for(var s=i.start;s<i.end;++s)o.push([0,g[s]]);c(i.end,t,i.end-i.diag,r,o)}},b=function(e,t,n,r){for(var o=e;o-t<r&&o<n&&g[o]===p[o-t];)++o;return{start:e,end:o,diag:t}},l=function(e,t,n,r){var o=t-e,i=r-n;if(0===o||0===i)return null;var a,u,s,c,l,f=o-i,d=i+o,m=(d%2==0?d:d+1)/2;for(h[1+m]=e,v[1+m]=t+1,a=0;a<=m;++a){for(u=-a;u<=a;u+=2){for(s=u+m,u===-a||u!==a&&h[s-1]<h[s+1]?h[s]=h[s+1]:h[s]=h[s-1]+1,l=(c=h[s])-e+n-u;c<t&&l<r&&g[c]===p[l];)h[s]=++c,++l;if(f%2!=0&&f-a<=u&&u<=f+a&&v[s-f]<=h[s])return b(v[s-f],u+e-n,t,r)}for(u=f-a;u<=f+a;u+=2){for(s=u+m-f,u===f-a||u!==f+a&&v[s+1]<=v[s-1]?v[s]=v[
 s+1]-1:v[s]=v[s-1],l=(c=v[s]-1)-e+n-u;e<=c&&n<=l&&g[c]===p[l];)v[s]=c--,l--;if(f%2==0&&-a<=u&&u<=a&&v[s]<=h[s+f])return b(v[s],u+e-n,t,r)}}},t=[];return c(0,g.length,0,p.length,t),t},sv=function(e){return Bo.isElement(e)?e.outerHTML:Bo.isText(e)?Wo.encodeRaw(e.data,!1):Bo.isComment(e)?"\x3c!--"+e.data+"--\x3e":""},cv=function(e,t,n){var r=function(e){var t,n,r;for(r=document.createElement("div"),t=document.createDocumentFragment(),e&&(r.innerHTML=e);n=r.firstChild;)t.appendChild(n);return t}(t);if(e.hasChildNodes()&&n<e.childNodes.length){var o=e.childNodes[n];o.parentNode.insertBefore(r,o)}else e.appendChild(r)},lv=function(e){return jt.filter(jt.map(e.childNodes,sv),function(e){return 0<e.length})},fv=function(e,t){var n,r,o,i=jt.map(t.childNodes,sv);return n=uv(i,e),r=t,o=0,jt.each(n,function(e){e[0]===ov?o++:e[0]===av?(cv(r,e[1],o),o++):e[0]===iv&&function
 (e,t){if(e.hasChildNodes()&&t<e.childNodes.length){var n=e.childNodes[t];n.parentNode.removeChild(n)}}(r,o)}),t},dv=function(e,t){var n=(t||document).createElement("div");return n.innerHTML=e,Wr.children(er.fromDom(n))},mv=function(e){return e.dom().innerHTML},gv=mv,pv=function(e,t){var n=Wr.owner(e).dom(),r=er.fromDom(n.createDocumentFragment()),o=dv(t,n);_i(r,o),Di.empty(e),ki.append(e,r)},hv=Oi(A.none()),vv=function(e){return{type:"fragmented",fragments:e,content:"",bookmark:null,beforeBookmark:null}},bv=function(e){return{type:"complete",fragments:null,content:e,bookmark:null,beforeBookmark:null}},yv=function(e){return"fragmented"===e.type?e.fragments.join(""):e.content},Cv=function(e){var t=er.fromTag("body",hv.get().getOrThunk(function(){var e=document.implementation.createHTMLDocument("undo");return hv.set(A.some(e)),e}));return pv(t,yv(e)),F(Xi(t,"*[data-mce-bogus]"),Di.unwra
 p),gv(t)},xv=function(n){var e,t,r;return e=lv(n.getBody()),-1!==(t=(r=G(e,function(e){var t=rv.trimInternal(n.serializer,e);return 0<t.length?[t]:[]})).join("")).indexOf("</iframe>")?vv(r):bv(t)},wv=function(e,t,n){"fragmented"===t.type?fv(t.fragments,e.getBody()):e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(n?t.beforeBookmark:t.bookmark)},Nv=function(e,t){return!(!e||!t)&&(r=t,yv(e)===yv(r)||(n=t,Cv(e)===Cv(n)));var n,r};function Ev(u){var s,r,o=this,c=0,l=[],t=0,f=function(){return 0===t},i=function(e){f()&&(o.typing=e)},d=function(e){u.setDirty(e)},a=function(e){i(!1),o.add({},e)},n=function(){o.typing&&(i(!1),o.add())};return u.on("init",function(){o.add()}),u.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&(n(),o.beforeChange())}),u.on("ExecCommand",function
 (e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&a(e)}),u.on("ObjectResizeStart Cut",function(){o.beforeChange()}),u.on("SaveContent ObjectResized blur",a),u.on("DragEnd",a),u.on("KeyUp",function(e){var t=e.keyCode;e.isDefaultPrevented()||((33<=t&&t<=36||37<=t&&t<=40||45===t||e.ctrlKey)&&(a(),u.nodeChanged()),46!==t&&8!==t||u.nodeChanged(),r&&o.typing&&!1===Nv(xv(u),l[0])&&(!1===u.isDirty()&&(d(!0),u.fire("change",{level:l[0],lastLevel:null})),u.fire("TypingUndo"),r=!1,u.nodeChanged()))}),u.on("KeyDown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented())if(33<=t&&t<=36||37<=t&&t<=40||45===t)o.typing&&a(e);else{var n=e.ctrlKey&&!e.altKey||e.metaKey;!(t<16||20<t)||224===t||91===t||o.typing||n||(o.beforeChange(),i(!0),o.add
 ({},e),r=!0)}}),u.on("MouseDown",function(e){o.typing&&a(e)}),u.on("input",function(e){var t;e.inputType&&("insertReplacementText"===e.inputType||"insertText"===(t=e).inputType&&null===t.data)&&a(e)}),u.addShortcut("meta+z","","Undo"),u.addShortcut("meta+y,meta+shift+z","","Redo"),u.on("AddUndo Undo Redo ClearUndos",function(e){e.isDefaultPrevented()||u.nodeChanged()}),o={data:l,typing:!1,beforeChange:function(){f()&&(s=Xu.getUndoBookmark(u.selection))},add:function(e,t){var n,r,o,i=u.settings;if(o=xv(u),e=e||{},e=Yt.extend(e,o),!1===f()||u.removed)return null;if(r=l[c],u.fire("BeforeAddUndo",{level:e,lastLevel:r,originalEvent:t}).isDefaultPrevented())return null;if(r&&Nv(r,e))return null;if(l[c]&&(l[c].beforeBookmark=s),i.custom_undo_redo_levels&&l.length>i.custom_undo_redo_levels){for(n=0;n<l.l
 ength-1;n++)l[n]=l[n+1];l.length--,c=l.length}e.bookmark=Xu.getUndoBookmark(u.selection),c<l.length-1&&(l.length=c+1),l.push(e),c=l.length-1;var a={level:e,lastLevel:r,originalEvent:t};return u.fire("AddUndo",a),0<c&&(d(!0),u.fire("change",a)),e},undo:function(){var e;return o.typing&&(o.add(),o.typing=!1,i(!1)),0<c&&(e=l[--c],wv(u,e,!0),d(!0),u.fire("undo",{level:e})),e},redo:function(){var e;return c<l.length-1&&(e=l[++c],wv(u,e,!1),d(!0),u.fire("redo",{level:e})),e},clear:function(){l=[],c=0,o.typing=!1,o.data=l,u.fire("ClearUndos")},hasUndo:function(){return 0<c||o.typing&&l[0]&&!Nv(xv(u),l[0])},hasRedo:function(){return c<l.length-1&&!o.typing},transact:function(e){return n(),o.beforeChange(),o.ignore(e),o.add()},ignore:function(e){try{t++,e()}finally{t--}},extra:function(e,t){var n,r;o.transact(e)&&(r=l[c].bookmark,n=l[c-1],wv(u,n,!0),o.tr
 ansact(t)&&(l[c-1].beforeBookmark=r))}}}var Sv,Tv,kv=Cl.isEq,Av=function(e,t,n){var r=e.formatter.get(n);if(r)for(var o=0;o<r.length;o++)if(!1===r[o].inherit&&e.dom.is(t,r[o].selector))return!0;return!1},_v=function(t,e,n,r){var o=t.dom.getRoot();return e!==o&&(e=t.dom.getParent(e,function(e){return!!Av(t,e,n)||e.parentNode===o||!!Bv(t,e,n,r,!0)}),Bv(t,e,n,r))},Rv=function(e,t,n){return!!kv(t,n.inline)||!!kv(t,n.block)||(n.selector?1===t.nodeType&&e.is(t,n.selector):void 0)},Dv=function(e,t,n,r,o,i){var a,u,s,c=n[r];if(n.onmatch)return n.onmatch(t,n,r);if(c)if("undefined"==typeof c.length){for(a in c)if(c.hasOwnProperty(a)){if(u="attributes"===r?e.getAttrib(t,a):Cl.getStyle(e,t,a),o&&!u&&!n.exact)return;if((!o||n.exact)&&!kv(u,Cl.normalizeStyleValue(e,Cl.replaceVars(c[a],i),a)))return}}else for(s=0;s<c.length;s++)if("attributes"===r?e.getAttrib(t,c[s]):Cl.getStyle(e,t,c[s]))return n;return n}
 ,Bv=function(e,t,n,r,o){var i,a,u,s,c=e.formatter.get(n),l=e.dom;if(c&&t)for(a=0;a<c.length;a++)if(i=c[a],Rv(e.dom,t,i)&&Dv(l,t,i,"attributes",o,r)&&Dv(l,t,i,"styles",o,r)){if(s=i.classes)for(u=0;u<s.length;u++)if(!e.dom.hasClass(t,s[u]))return;return i}},Ov={matchNode:Bv,matchName:Rv,match:function(e,t,n,r){var o;return r?_v(e,r,t,n):(r=e.selection.getNode(),!!_v(e,r,t,n)||!((o=e.selection.getStart())===r||!_v(e,o,t,n)))},matchAll:function(r,o,i){var e,a=[],u={};return e=r.selection.getStart(),r.dom.getParent(e,function(e){var t,n;for(t=0;t<o.length;t++)n=o[t],!u[n]&&Bv(r,e,n,i)&&(u[n]=!0,a.push(n))},r.dom.getRoot()),a},canApply:function(e,t){var n,r,o,i,a,u=e.formatter.get(t),s=e.dom;if(u)for(n=e.selection.getStart(),r=Cl.getParents(s,n),i=u.length-1;0<=i;i--){if(!(a=u[i].selector)||u[i].defaultBlock)return!0;for(o=r.length-1;0<=o;o--)if(s.is(r[o],a))return!0}return!1},matchesUnInheritedFormatSelector:Av},P
 v=function(e,t){return e.splitText(t)},Lv=function(e){var t=e.startContainer,n=e.startOffset,r=e.endContainer,o=e.endOffset;return t===r&&Bo.isText(t)?0<n&&n<t.nodeValue.length&&(t=(r=Pv(t,n)).previousSibling,n<o?(t=r=Pv(r,o-=n).previousSibling,o=r.nodeValue.length,n=0):o=0):(Bo.isText(t)&&0<n&&n<t.nodeValue.length&&(t=Pv(t,n),n=0),Bo.isText(r)&&0<o&&o<r.nodeValue.length&&(o=(r=Pv(r,o).previousSibling).nodeValue.length)),{startContainer:t,startOffset:n,endContainer:r,endOffset:o}},Iv=Sa,Mv="_mce_caret",Fv=function(e){return 0<function(e){for(var t=[];e;){if(3===e.nodeType&&e.nodeValue!==Iv||1<e.childNodes.length)return[];1===e.nodeType&&t.push(e),e=e.firstChild}return t}(e).length},Uv=function(e){var t;if(e)for(e=(t=new io(e,e)).current();e;e=t.next())if(3===e.nodeType)return e;return null},zv=function(e){var t=er.fromTag("span");return vr.setAll(t,{
 id:Mv,"data-mce-bogus":"1","data-mce-type":"format-caret"}),e&&ki.append(t,er.fromText(Iv)),t},Vv=function(e,t,n,r){var o,i,a,u;o=t.getRng(!0),i=e.getParent(n,e.isBlock),Fv(n)?(!1!==r&&(o.setStartBefore(n),o.setEndBefore(n)),e.remove(n)):((u=Uv(n))&&u.nodeValue.charAt(0)===Iv&&u.deleteData(0,1),a=u,o.startContainer===a&&0<o.startOffset&&o.setStart(a,o.startOffset-1),o.endContainer===a&&0<o.endOffset&&o.setEnd(a,o.endOffset-1),e.remove(n,!0)),i&&e.isEmpty(i)&&ef(er.fromDom(i)),t.setRng(o)},qv=function(e,t,n,r,o){if(r)Vv(t,n,r,o);else if(!(r=Ju(e,n.getStart())))for(;r=t.get(Mv);)Vv(t,n,r,!1)},Hv=function(e,t,n){var r=e.dom,o=r.getParent(n,wa.curry(Cl.isTextBlock,e));o&&r.isEmpty(o)?n.parentNode.replaceChild(t,n):(Zl(er.fromDom(n)),r.isEmpty(n)?n.parentNode.replaceChild(t,n):r.insertAfter(t,n))},jv=function(e,t){return e.appendChild(t),t},$v=function(e,t
 ){var n,r,o=(n=function(e,t){return jv(e,t.cloneNode(!1))},r=t,function(e,t){for(var n=e.length-1;0<=n;n--)t(e[n],n,e)}(e,function(e){r=n(r,e)}),r);return jv(o,o.ownerDocument.createTextNode(Iv))},Wv=function(e){var i=e.dom,a=e.selection,u=e.getBody();e.on("mouseup keydown",function(e){var t,n,r,o;t=u,n=i,r=a,o=e.keyCode,qv(t,n,r,null,!1),8===o&&r.isCollapsed()&&r.getStart().innerHTML===Iv&&qv(t,n,r,Ju(t,r.getStart())),37!==o&&39!==o||qv(t,n,r,Ju(t,r.getStart()))})},Kv=function(e,t){return e.schema.getTextInlineElements().hasOwnProperty(sr.name(t))&&!Gu(t.dom())&&!Bo.isBogus(t.dom())},Xv={},Yv=jt.filter,Gv=jt.each;Tv=function(e){var t,n,r=e.selection.getRng();t=Bo.matchNodeNames("pre"),r.collapsed||(n=e.selection.getSelectedBlocks(),Gv(Yv(Yv(n,t),function(e){return t(e.previousSibling)&&-1!==jt.indexOf(n,e.previousSibling)}),function(e){var t,n;t=e.previousSibling,pn(n=e).remove(),pn(t).append("<b
 r><br>").append(n.childNodes)}))},Xv[Sv="pre"]||(Xv[Sv]=[]),Xv[Sv].push(Tv);var Jv=function(e,t){Gv(Xv[e],function(e){e(t)})},Qv=/^(src|href|style)$/,Zv=Yt.each,eb=Cl.isEq,tb=function(e){return/^(TH|TD)$/.test(e.nodeName)},nb=function(e,t,n){var r,o,i;return r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],Bo.isElement(r)&&(i=r.childNodes.length-1,!n&&o&&o--,r=r.childNodes[i<o?i:o]),Bo.isText(r)&&n&&o>=r.nodeValue.length&&(r=new io(r,e.getBody()).next()||r),Bo.isText(r)&&!n&&0===o&&(r=new io(r,e.getBody()).prev()||r),r},rb=function(e,t,n,r){var o=e.create(n,r);return t.parentNode.insertBefore(o,t),o.appendChild(t),o},ob=function(e,t,n,r){return!(t=Cl.getNonWhiteSpaceSibling(t,n,r))||"BR"===t.nodeName||e.isBlock(t)},ib=function(e,n,r,o,i){var t,a,u,s,c,l,f,d,m,g,p,h,v,b,y=e.dom;if(c=y,!(eb(l=o,(f=n).inline)||eb(
 l,f.block)||(f.selector?Bo.isElement(l)&&c.is(l,f.selector):void 0)||(s=o,n.links&&"A"===s.tagName)))return!1;if("all"!==n.remove)for(Zv(n.styles,function(e,t){e=Cl.normalizeStyleValue(y,Cl.replaceVars(e,r),t),"number"==typeof t&&(t=e,i=0),(n.remove_similar||!i||eb(Cl.getStyle(y,i,t),e))&&y.setStyle(o,t,""),u=1}),u&&""===y.getAttrib(o,"style")&&(o.removeAttribute("style"),o.removeAttribute("data-mce-style")),Zv(n.attributes,function(e,t){var n;if(e=Cl.replaceVars(e,r),"number"==typeof t&&(t=e,i=0),!i||eb(y.getAttrib(i,t),e)){if("class"===t&&(e=y.getAttrib(o,t))&&(n="",Zv(e.split(/\s+/),function(e){/mce\-\w+/.test(e)&&(n+=(n?" ":"")+e)}),n))return void y.setAttrib(o,t,n);"class"===t&&o.removeAttribute("className"),Qv.test(t)&&o.removeAttribut
 e("data-mce-"+t),o.removeAttribute(t)}}),Zv(n.classes,function(e){e=Cl.replaceVars(e,r),i&&!y.hasClass(i,e)||y.removeClass(o,e)}),a=y.getAttribs(o),t=0;t<a.length;t++){var C=a[t].nodeName;if(0!==C.indexOf("_")&&0!==C.indexOf("data-"))return!1}return"none"!==n.remove?(d=e,g=n,h=(m=o).parentNode,v=d.dom,b=d.settings.forced_root_block,g.block&&(b?h===v.getRoot()&&(g.list_block&&eb(m,g.list_block)||Zv(Yt.grep(m.childNodes),function(e){Cl.isValid(d,b,e.nodeName.toLowerCase())?p?p.appendChild(e):(p=rb(v,e,b),v.setAttribs(p,d.settings.forced_root_block_attrs)):p=0})):v.isBlock(m)&&!v.isBlock(h)&&(ob(v,m,!1)||ob(v,m.firstChild,!0,1)||m.insertBefore(v.create("br"),m.firstChild),ob(v,m,!0)||ob(v,m.lastChild,!1,1)||m.appendChild(v.create("br")))),g.selector&&g.inline&&!eb(g.inline,m)||v.remove(m,1),!0):void 0},ab=ib,ub=function(s,c,l,e,f){var t,n,d=s.formatter.
 get(c),m=d[0],a=!0,u=s.dom,r=s.selection,o=function(e){var n,t,r,o,i,a,u=(n=s,t=e,r=c,o=l,i=f,Zv(Cl.getParents(n.dom,t.parentNode).reverse(),function(e){var t;a||"_start"===e.id||"_end"===e.id||(t=Ov.matchNode(n,e,r,o,i))&&!1!==t.split&&(a=e)}),a);return function(e,t,n,r,o,i,a,u){var s,c,l,f,d,m,g=e.dom;if(n){for(m=n.parentNode,s=r.parentNode;s&&s!==m;s=s.parentNode){for(c=g.clone(s,!1),d=0;d<t.length;d++)if(ib(e,t[d],u,c,c)){c=0;break}c&&(l&&c.appendChild(l),f||(f=c),l=c)}!i||a.mixed&&g.isBlock(n)||(r=g.split(n,r)),l&&(o.parentNode.insertBefore(l,o),f.appendChild(o))}return r}(s,d,u,e,e,!0,m,l)},g=function(e){var t,n,r,o,i;if(Bo.isElement(e)&&u.getContentEditable(e)&&(o=a,a="true"===u.getContentEditable(e),i=!0),t=Yt.grep(e.childNodes),a&&!i)for(n=0,r=d.length;n<r&&!ib(s,d[n],l,e,e);n++);if(m.deep&&t.length){for(n=0,r=t.length;n<r;n++)g(t[n]);i&
 &(a=o)}},i=function(e){var t=u.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return hl(n)&&(n=n[e?"firstChild":"lastChild"]),Bo.isText(n)&&0===n.data.length&&(n=e?t.previousSibling||t.nextSibling:t.nextSibling||t.previousSibling),u.remove(t,!0),n},p=function(e){var t,n,r=e.commonAncestorContainer;if(e=Bl(s,e,d,!0),m.split){if((t=nb(s,e,!0))!==(n=nb(s,e))){if(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"===t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName)&&tb(n)&&n.firstChild&&(n=n.firstChild||n),u.isChildOf(t,n)&&t!==n&&!u.isBlock(n)&&!tb(t)&&!tb(n))return t=rb(u,t,"span",{id:"_start","data-mce-type":"bookmark"}),o(t),void(t=i(!0));t=rb(u,t,"span",{id:"_start","data-mce-type&quo
 t;:"bookmark"}),n=rb(u,n,"span",{id:"_end","data-mce-type":"bookmark"}),o(t),o(n),t=i(!0),n=i()}else t=n=o(t);e.startContainer=t.parentNode?t.parentNode:t,e.startOffset=u.nodeIndex(t),e.endContainer=n.parentNode?n.parentNode:n,e.endOffset=u.nodeIndex(n)+1}Pl(u,e,function(e){Zv(e,function(e){g(e),Bo.isElement(e)&&"underline"===s.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===Cl.getTextDecoration(u,e.parentNode)&&ib(s,{deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})};if(e)e.nodeType?((n=u.createRng()).setStartBefore(e),n.setEndAfter(e),p(n)):p(e);else if("false"!==u.getContentEditable(r.getNode()))r.isCollapsed()&&m.inline&&!u.select("td[data-mce-selected],th[data-mce-selected]").length?function(e,t,n,r){var o,i,a,u,s,c,l,f=e.dom,d=e.selection,m=[],g=d.getRng();for(o=g.sta
 rtContainer,i=g.startOffset,3===(s=o).nodeType&&(i!==o.nodeValue.length&&(u=!0),s=s.parentNode);s;){if(Ov.matchNode(e,s,t,n,r)){c=s;break}s.nextSibling&&(u=!0),m.push(s),s=s.parentNode}if(c)if(u){a=d.getBookmark(),g.collapse(!0);var p=Bl(e,g,e.formatter.get(t),!0);p=Lv(p),e.formatter.remove(t,n,p),d.moveToBookmark(a)}else{l=Ju(e.getBody(),c);var h=zv(!1).dom(),v=$v(m,h);Hv(e,h,l||c),Vv(f,d,l,!1),d.setCursorLocation(v,1),f.isEmpty(c)&&f.remove(c)}}(s,c,l,f):(t=Xu.getPersistentBookmark(s.selection,!0),p(r.getRng()),r.moveToBookmark(t),m.inline&&Ov.match(s,c,l,r.getStart())&&Cl.moveStart(u,r,r.getRng()),s.nodeChanged());else{e=r.getNode();for(var h=0,v=d.length;h<v&&(!d[h].ceFalseOverride||!ib(s,d[h],l,e,e));h++);}},sb=Yt.each,cb=function(e){return e&&1===e.nodeType&&!hl(e)&&!Gu(e)&&!Bo.isBogus(e)},lb=function(e,t){var n;for(n=e;n;n=n[t]){if(3===n.nodeType&&0!==n.nodeValue.length)return e
 ;if(1===n.nodeType&&!hl(n))return n}return e},fb=function(e,t,n){var r,o,i=new Ql(e);if(t&&n&&(t=lb(t,"previousSibling"),n=lb(n,"nextSibling"),i.compare(t,n))){for(r=t.nextSibling;r&&r!==n;)r=(o=r).nextSibling,t.appendChild(o);return e.remove(n),Yt.each(Yt.grep(n.childNodes),function(e){t.appendChild(e)}),t}return n},db=function(e,t,n){sb(e.childNodes,function(e){cb(e)&&(t(e)&&n(e),e.hasChildNodes()&&db(e,t,n))})},mb=function(n,e){return b(function(e,t){return!(!t||!Cl.getStyle(n,t,e))},e)},gb=function(r,e,t){return b(function(e,t,n){r.setStyle(n,e,t),""===n.getAttribute("style")&&n.removeAttribute("style"),pb(r,n)},e,t)},pb=function(e,t){"SPAN"===t.nodeName&&0===e.getAttribs(t).length&&e.remove(t,!0)},hb=function(e,t){var n;1===t.nodeType&&t.parentNode&&1===t.parentNode.nodeType&&(n=Cl.getTextDecoration(e,t.parentNode),e
 .getStyle(t,"color")&&n?e.setStyle(t,"text-decoration",n):e.getStyle(t,"text-decoration")===n&&e.setStyle(t,"text-decoration",null))},vb=function(n,e,r,o){sb(e,function(t){sb(n.dom.select(t.inline,o),function(e){cb(e)&&ab(n,t,r,e,t.exact?e:null)}),function(r,e,t){if(e.clear_child_styles){var n=e.links?"*:not(a)":"*";sb(r.select(n,t),function(n){cb(n)&&sb(e.styles,function(e,t){r.setStyle(n,t,"")})})}}(n.dom,t,o)})},bb=function(e,t,n,r){(t.styles.color||t.styles.textDecoration)&&(Yt.walk(r,b(hb,e),"childNodes"),hb(e,r))},yb=function(e,t,n,r){t.styles&&t.styles.backgroundColor&&db(r,mb(e,"fontSize"),gb(e,"backgroundColor",Cl.replaceVars(t.styles.backgroundColor,n)))},Cb=function(e,t,n,r){"sub"!==t.inline&&"sup"!==t.inline||(db(r,mb(e,"fontSize"),gb(e,"fontSize","")),e.remove
 (e.select("sup"===t.inline?"sub":"sup",r),!0))},xb=function(e,t,n,r){r&&!1!==t.merge_siblings&&(r=fb(e,Cl.getNonWhiteSpaceSibling(r),r),r=fb(e,r,Cl.getNonWhiteSpaceSibling(r,!0)))},wb=function(t,n,r,o,i){Ov.matchNode(t,i.parentNode,r,o)&&ab(t,n,o,i)||n.merge_with_parents&&t.dom.getParent(i.parentNode,function(e){if(Ov.matchNode(t,e,r,o))return ab(t,n,o,i),!0})},Nb=Yt.each,Eb=function(g,p,h,r){var e,t,v=g.formatter.get(p),b=v[0],o=!r&&g.selection.isCollapsed(),i=g.dom,n=g.selection,y=function(n,e){if(e=e||b,n){if(e.onformat&&e.onformat(n,e,h,r),Nb(e.styles,function(e,t){i.setStyle(n,t,Cl.replaceVars(e,h))}),e.styles){var t=i.getAttrib(n,"style");t&&n.setAttribute("data-mce-style",t)}Nb(e.attributes,function(e,t){i.setAttrib(n,t,Cl.replaceVars(e,h))}),Nb(e.classes,function(e){e=Cl.replaceVars(e,h),i.hasClass(n,e)||i.addClass(n,e)})}},C=function(e,t){var n=!1;return!!b.selector&amp
 ;&(Nb(e,function(e){if(!("collapsed"in e&&e.collapsed!==o))return i.is(t,e.selector)&&!Gu(t)?(y(t,e),!(n=!0)):void 0}),n)},a=function(s,e,t,c){var l,f,d=[],m=!0;l=b.inline||b.block,f=s.create(l),y(f),Pl(s,e,function(e){var a,u=function(e){var t,n,r,o;if(o=m,t=e.nodeName.toLowerCase(),n=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&s.getContentEditable(e)&&(o=m,m="true"===s.getContentEditable(e),r=!0),Cl.isEq(t,"br"))return a=0,void(b.block&&s.remove(e));if(b.wrapper&&Ov.matchNode(g,e,p,h))a=0;else{if(m&&!r&&b.block&&!b.wrapper&&Cl.isTextBlock(g,t)&&Cl.isValid(g,n,l))return e=s.rename(e,l),y(e),d.push(e),void(a=0);if(b.selector){var i=C(v,e);if(!b.inline||i)return void(a=0)}!m||r||!Cl.isValid(g,l,t)||!Cl.isValid(g,n,l)||!c&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||Gu(e)||b.inline&&s.isBlock(e)
 ?(a=0,Nb(Yt.grep(e.childNodes),u),r&&(m=o),a=0):(a||(a=s.clone(f,!1),e.parentNode.insertBefore(a,e),d.push(a)),a.appendChild(e))}};Nb(e,u)}),!0===b.links&&Nb(d,function(e){var t=function(e){"A"===e.nodeName&&y(e,b),Nb(Yt.grep(e.childNodes),t)};t(e)}),Nb(d,function(e){var t,n,r,o,i,a=function(e){var n=!1;return Nb(e.childNodes,function(e){if((t=e)&&1===t.nodeType&&!hl(t)&&!Gu(t)&&!Bo.isBogus(t))return n=e,!1;var t}),n};n=0,Nb(e.childNodes,function(e){Cl.isWhiteSpaceNode(e)||hl(e)||n++}),t=n,!(1<d.length)&&s.isBlock(e)||0!==t?(b.inline||b.wrapper)&&(b.exact||1!==t||((o=a(r=e))&&!hl(o)&&Ov.matchName(s,o,b)&&(i=s.clone(o,!1),y(i),s.replace(i,r,!0),s.remove(o,1)),e=i||r),vb(g,v,h,e),wb(g,b,p,h,e),yb(s,b,h,e),Cb(s,b,h,e),xb(s,b,h,e)):s.remove(e,1)})};if("false"!==i.getContentEditable(n.getNode())){if(b){if(r)r.nodeType?C(v,r)||((t=i.createRng()).setStartBefore(r),t.setEnd
 After(r),a(i,Bl(g,t,v),0,!0)):a(i,r,0,!0);else if(o&&b.inline&&!i.select("td[data-mce-selected],th[data-mce-selected]").length)!function(e,t,n){var r,o,i,a,u,s,c=e.selection;a=(r=c.getRng(!0)).startOffset,s=r.startContainer.nodeValue,(o=Ju(e.getBody(),c.getStart()))&&(i=Uv(o));var l,f,d=/[^\s\u00a0\u00ad\u200b\ufeff]/;s&&0<a&&a<s.length&&d.test(s.charAt(a))&&d.test(s.charAt(a-1))?(u=c.getBookmark(),r.collapse(!0),r=Bl(e,r,e.formatter.get(t)),r=Lv(r),e.formatter.apply(t,n,r),c.moveToBookmark(u)):(o&&i.nodeValue===Iv||(l=e.getDoc(),f=zv(!0).dom(),i=(o=l.importNode(f,!0)).firstChild,r.insertNode(o),a=1),e.formatter.apply(t,n,o),c.setCursorLocation(i,a))}(g,p,h);else{var u=g.selection.getNode();g.settings.forced_root_block||!v[0].defaultBlock||i.getParent(u,i.isBlock)||Eb(g,v[0].defaultBlock),g.selection.setRng(uf(g.selection.getRng())),e=Xu.getPersistentBookmark(g.selection,!0),a(i,Bl(g,n.getRng(),v)),b.sty
 les&&bb(i,b,h,u),n.moveToBookmark(e),Cl.moveStart(i,n,n.getRng()),g.nodeChanged()}Jv(p,g)}}else{r=n.getNode();for(var s=0,c=v.length;s<c;s++)if(v[s].ceFalseOverride&&i.is(r,v[s].selector))return void y(r,v[s])}},Sb={applyFormat:Eb},Tb=Yt.each,kb=function(e,t,n,r,o){var i,a,u,s,c,l,f,d;null===t.get()&&(a=e,u={},(i=t).set({}),a.on("NodeChange",function(n){var r=Cl.getParents(a.dom,n.element),o={};r=Yt.grep(r,function(e){return 1===e.nodeType&&!e.getAttribute("data-mce-bogus")}),Tb(i.get(),function(e,n){Tb(r,function(t){return a.formatter.matchNode(t,n,{},e.similar)?(u[n]||(Tb(e,function(e){e(!0,{node:t,format:n,parents:r})}),u[n]=e),o[n]=e,!1):!Ov.matchesUnInheritedFormatSelector(a,t,n)&&void 0})}),Tb(u,function(e,t){o[t]||(delete u[t],Tb(e,function(e){e(!1,{node:n.element,format:t,parents:r})}))})})),c=n,l=r,f=o,d=(s=t).get(),Tb(c.split(","),function(e){d[e]||(d[e]=[],d[e].similar=f),d[e].push(l)}),s.set(d)},Ab=
 {get:function(r){var t={valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure.image",collapsed:!1,classes:"align-left",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},inherit:!1,preview:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"},preview:"font-family font-size"}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"figure.image",collapsed:!1,classes:"align-cent
 er",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"},preview:!1},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"},preview:"font-family font-size"}],alignright:[{selector:"figure.image",collapsed:!1,classes:"align-right",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"},preview:"font-family font-size"}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},inherit:!1,defaultBlock:&quot
 ;div",preview:"font-family font-size"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},fontname:{inline:"span",toggle:!1,styles:{fontFamily:"
 %value"},clear_child_styles:!0},fontsize:{inline:"span",toggle:!1,styles:{fontSize:"%value"},clear_child_styles:!0},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(n,e,t){Yt.each(t,function(e,t){r.setAttrib(n,t,e)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expa
 nd:!1,deep:!0}]};return Yt.each("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){t[e]={block:e,remove:"all"}}),t}},_b=Yt.each,Rb=hi.DOM,Db=function(e,t){var n,o,r,m=t&&t.schema||ri({}),g=function(e){var t,n,r;return o="string"==typeof e?{name:e,classes:[],attrs:{}}:e,t=Rb.create(o.name),n=t,(r=o).classes.length&&Rb.addClass(n,r.classes.join(" ")),Rb.setAttribs(n,r.attrs),t},p=function(n,e,t){var r,o,i,a,u,s,c,l,f=0<e.length&&e[0],d=f&&f.name;if(u=d,s="string"!=typeof(a=n)?a.nodeName.toLowerCase():a,c=m.getElementRule(s),i=!(!(l=c&&c.parentsRequired)||!l.length)&&(u&&-1!==Yt.inArray(l,u)?u:l[0]))d===i?(o=e[0],e=e.slice(1)):o=i;else if(f)o=e[0],e=e.slice(1);else if(!t)return n;return o&&(r=g(o)).appendChild(n),t&&(r||(r=Rb.create("div")).appendChild(n),Yt.each(t,function(e){var t=g(e);r.insertBefore(t,n)})),p(r,e,o&&
 o.siblings)};return e&&e.length?(o=e[0],n=g(o),(r=Rb.create("div")).appendChild(p(n,e.slice(1),o.siblings)),r):""},Bb=function(e){var t,a={classes:[],attrs:{}};return"*"!==(e=a.selector=Yt.trim(e))&&(t=e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g,function(e,t,n,r,o){switch(t){case"#":a.attrs.id=n;break;case".":a.classes.push(n);break;case":":-1!==Yt.inArray("checked disabled enabled read-only required".split(" "),n)&&(a.attrs[n]=n)}if("["===r){var i=o.match(/([\w\-]+)(?:\=\"([^\"]+))?/);i&&(a.attrs[i[1]]=i[2])}return""})),a.name=t||"div",a},Ob=function(e){return e&&"string"==typeof e?(e=(e=e.split(/\s*,\s*/)[0]).replace(/\s*(~\+|~|\+|>)\s*/g,"$1"),Yt.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/),function(e){var t=Yt.map(e.split(/(?:~\+|~|\+)/),Bb),n=t.pop();return t.length&&(n.siblings=t),n
 }).reverse()):[]},Pb=function(n,e){var t,r,o,i,a,u,s="";if(!1===(u=n.settings.preview_styles))return"";"string"!=typeof u&&(u="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow");var c=function(e){return e.replace(/%(\w+)/g,"")};if("string"==typeof e){if(!(e=n.formatter.get(e)))return;e=e[0]}return"preview"in e&&!1===(u=e.preview)?"":(t=e.block||e.inline||"span",(i=Ob(e.selector)).length?(i[0].name||(i[0].name=t),t=e.selector,r=Db(i,n)):r=Db([t],n),o=Rb.select(t,r)[0]||r.firstChild,_b(e.styles,function(e,t){(e=c(e))&&Rb.setStyle(o,t,e)}),_b(e.attributes,function(e,t){(e=c(e))&&Rb.setAttrib(o,t,e)}),_b(e.classes,function(e){e=c(e),Rb.hasClass(o,e)||Rb.addClass(o,e)}),n.fire("PreviewFormats"),Rb.setStyles(r,{position:"absolute",left:-65535}),n.getBody().app
 endChild(r),a=Rb.getStyle(n.getBody(),"fontSize",!0),a=/px$/.test(a)?parseInt(a,10):0,_b(u.split(" "),function(e){var t=Rb.getStyle(o,e,!0);if(!("background-color"===e&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(t)&&(t=Rb.getStyle(n.getBody(),e,!0),"#ffffff"===Rb.toHex(t).toLowerCase())||"color"===e&&"#000000"===Rb.toHex(t).toLowerCase())){if("font-size"===e&&/em|%$/.test(t)){if(0===a)return;t=parseFloat(t)/(/%$/.test(t)?100:1)*a+"px"}"border"===e&&t&&(s+="padding:0 2px;"),s+=e+":"+t+";"}}),n.fire("AfterPreviewFormats"),Rb.remove(r),s)},Lb=function(e,t,n,r,o){var i=t.get(n);!Ov.match(e,n,r,o)||"toggle"in i[0]&&!i[0].toggle?Sb.applyFormat(e,n,r,o):ub(e,n,r,o)},Ib=function(e){e.addShortcut("meta+b","","Bold"),e.addShortcut("meta+i","","Ital
 ic"),e.addShortcut("meta+u","","Underline");for(var t=1;t<=6;t++)e.addShortcut("access+"+t,"",["FormatBlock",!1,"h"+t]);e.addShortcut("access+7","",["FormatBlock",!1,"p"]),e.addShortcut("access+8","",["FormatBlock",!1,"div"]),e.addShortcut("access+9","",["FormatBlock",!1,"address"])};function Mb(e){var t,n,r,o=(t=e,n={},(r=function(e,t){e&&("string"!=typeof e?Yt.each(e,function(e,t){r(t,e)}):(t=t.length?t:[t],Yt.each(t,function(e){"undefined"==typeof e.deep&&(e.deep=!e.selector),"undefined"==typeof e.split&&(e.split=!e.selector||e.inline),"undefined"==typeof e.remove&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string&quo
 t;==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),n[e]=t))})(Ab.get(t.dom)),r(t.settings.formats),{get:function(e){return e?n[e]:n},register:r,unregister:function(e){return e&&n[e]&&delete n[e],n}}),i=Oi(null);return Ib(e),Wv(e),{get:o.get,register:o.register,unregister:o.unregister,apply:b(Sb.applyFormat,e),remove:b(ub,e),toggle:b(Lb,e,o),match:b(Ov.match,e),matchAll:b(Ov.matchAll,e),matchNode:b(Ov.matchNode,e),canApply:b(Ov.canApply,e),formatChanged:b(kb,e,i),getCssText:b(Pb,e)}}var Fb,Ub=Object.prototype.hasOwnProperty,zb=(Fb=function(e,t){return t},function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var o=e[r];for(var i in o)Ub.call(o,i)&&(n[i]=Fb(n[i],o[i]))}return n}),Vb={register:function(t,s,c){t.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n,r=e.length;r--;)(n=e[r]).a
 ttr("tabindex",n.attributes.map["data-mce-tabindex"]),n.attr(t,null)}),t.addAttributeFilter("src,href,style",function(e,t){for(var n,r,o=e.length,i="data-mce-"+t,a=s.url_converter,u=s.url_converter_scope;o--;)(r=(n=e[o]).attributes.map[i])!==undefined?(n.attr(t,0<r.length?r:null),n.attr(i,null)):(r=n.attributes.map[t],"style"===t?r=c.serializeStyle(c.parseStyle(r),n.name):a&&(r=a.call(u,r,t,n.name)),n.attr(t,0<r.length?r:null))}),t.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)(n=(t=e[r]).attr("class"))&&(n=t.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),t.attr("class",0<n.length?n:null))}),t.addAttributeFilter("data-mce-type",function(e,t,n){for(var r,o=e.length;o--;)"bookmark"!==(r=e[o]).attributes.map["data-mce-type"]||n.cleanup||r.remove()}),t.addNodeFilter("noscript",function(e){for(va
 r t,n=e.length;n--;)(t=e[n].firstChild)&&(t.value=Wo.decode(t.value))}),t.addNodeFilter("script,style",function(e,t){for(var n,r,o,i=e.length,a=function(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")};i--;)r=(n=e[i]).firstChild?n.firstChild.value:"","script"===t?((o=n.attr("type"))&&n.attr("type","mce-no/type"===o?null:o.replace(/^mce\-/,"")),"xhtml"===s.element_format&&0<r.length&&(n.firstChild.value="// <![CDATA[\n"+a(r)+"\n// ]]>")):"xhtml"===s.element_forma
 t&&0<r.length&&(n.firstChild.value="\x3c!--\n"+a(r)+"\n--\x3e")}),t.addNodeFilter("#comment",function(e){for(var t,n=e.length;n--;)0===(t=e[n]).value.indexOf("[CDATA[")?(t.name="#cdata",t.type=4,t.value=t.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===t.value.indexOf("mce:protected ")&&(t.name="#text",t.type=3,t.raw=!0,t.value=unescape(t.value).substr(14))}),t.addNodeFilter("xml:namespace,input",function(e,t){for(var n,r=e.length;r--;)7===(n=e[r]).type?n.remove():1===n.type&&("input"!==t||"type"in n.attributes.map||n.attr("type","text"))}),t.addAttributeFilter("data-mce-type",function(e){F(e,function(e){"format-caret"===e.attr("data-mce-type")&&(e.isEmpty(t.schema.getNonEmptyElements())?e.remove():e.unwrap())})}),t.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-m
 ce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)})},trimTrailingBr:function(e){var t,n,r=function(e){return e&&"br"===e.name};r(t=e.lastChild)&&r(n=t.prev)&&(t.remove(),n.remove())}},qb={process:function(e,t,n){return f=n,(l=e)&&l.hasEventListeners("PreProcess")&&!f.no_events?(o=t,i=n,c=(r=e).dom,o=o.cloneNode(!0),(a=document.implementation).createHTMLDocument&&(u=a.createHTMLDocument(""),Yt.each("BODY"===o.nodeName?o.childNodes:[o],function(e){u.body.appendChild(u.importNode(e,!0))}),o="BODY"!==o.nodeName?u.body.firstChild:u.body,s=c.doc,c.doc=u),Xg(r,zb(i,{node:o})),s&&(c.doc=s),o):t;var r,o,i,a,u,s,c,l,f}},Hb=function(e,a,u){e.addNodeFilter("font",function(e){F(e,function(e){var t,n=a.parse(e.attr("style")),r=e.attr("color"),o=e.attr("face"),i=e.attr("size&quot
 ;);r&&(n.color=r),o&&(n["font-family"]=o),i&&(n["font-size"]=u[parseInt(e.attr("size"),10)-1]),e.name="span",e.attr("style",a.serialize(n)),t=e,F(["color","face","size"],function(e){t.attr(e,null)})})})},jb=function(e,t){var n,r=ii();t.convert_fonts_to_spans&&Hb(e,r,Yt.explode(t.font_size_legacy_values)),n=r,e.addNodeFilter("strike",function(e){F(e,function(e){var t=n.parse(e.attr("style"));t["text-decoration"]="line-through",e.name="span",e.attr("style",n.serialize(t))})})},$b={register:function(e,t){t.inline_styles&&jb(e,t)}},Wb=/^[ \t\r\n]*$/,Kb={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11},Xb=function(e,t,n){var r,o,i=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[i
 ])return e[i];if(e!==t){if(r=e[a])return r;for(o=e.parent;o&&o!==t;o=o.parent)if(r=o[a])return r}},Yb=function(){function a(e,t){this.name=e,1===(this.type=t)&&(this.attributes=[],this.attributes.map={})}return a.create=function(e,t){var n,r;if(n=new a(e,Kb[e]||1),t)for(r in t)n.attr(r,t[r]);return n},a.prototype.replace=function(e){return e.parent&&e.remove(),this.insert(e,this),this.remove(),this},a.prototype.attr=function(e,t){var n,r;if("string"!=typeof e){for(r in e)this.attr(r,e[r]);return this}if(n=this.attributes){if(t!==undefined){if(null===t){if(e in n.map)for(delete n.map[e],r=n.length;r--;)if(n[r].name===e)return n=n.splice(r,1),this;return this}if(e in n.map){for(r=n.length;r--;)if(n[r].name===e){n[r].value=t;break}}else n.push({name:e,value:t});return n.map[e]=t,this}return n.map[e]}},a.prototype.clone=function(){var e,t,n,r,o,i=new a(this.name,this.type);if(n=this.attributes){for((o=[]).map={},e=0,t=n.length;e<t;e++)"id"!
 ==(r=n[e]).name&&(o[o.length]={name:r.name,value:r.value},o.map[r.name]=r.value);i.attributes=o}return i.value=this.value,i.shortEnded=this.shortEnded,i},a.prototype.wrap=function(e){return this.parent.insert(e,this),e.append(this),this},a.prototype.unwrap=function(){var e,t;for(e=this.firstChild;e;)t=e.next,this.insert(e,this,!0),e=t;this.remove()},a.prototype.remove=function(){var e=this.parent,t=this.next,n=this.prev;return e&&(e.firstChild===this?(e.firstChild=t)&&(t.prev=null):n.next=t,e.lastChild===this?(e.lastChild=n)&&(n.next=null):t.prev=n,this.parent=this.next=this.prev=null),this},a.prototype.append=function(e){var t;return e.parent&&e.remove(),(t=this.lastChild)?((t.next=e).prev=t,this.lastChild=e):this.lastChild=this.firstChild=e,e.parent=this,e},a.prototype.insert=function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,(e.next=t).prev=e):(t===r.last
 Child?r.lastChild=e:t.next.prev=e,e.next=t.next,(e.prev=t).next=e),e.parent=r,e},a.prototype.getAll=function(e){var t,n=[];for(t=this.firstChild;t;t=Xb(t,this))t.name===e&&n.push(t);return n},a.prototype.empty=function(){var e,t,n;if(this.firstChild){for(e=[],n=this.firstChild;n;n=Xb(n,this))e.push(n);for(t=e.length;t--;)(n=e[t]).parent=n.firstChild=n.lastChild=n.next=n.prev=null}return this.firstChild=this.lastChild=null,this},a.prototype.isEmpty=function(e,t,n){var r,o,i=this.firstChild;if(t=t||{},i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(e[i.name])return!1;for(r=i.attributes.length;r--;)if("name"===(o=i.attributes[r].name)||0===o.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!Wb.test(i.value))return!1;if(3===i.type&&i.parent&&t[i.parent.name]&&Wb.test(i.value))return!1;if(n&&n(i))return!1}while(i=Xb(i,this));return!0},a.prototype.walk=function(e)
 {return Xb(this,null,e)},a}(),Gb=function(e,t,n,r){(e.padd_empty_with_br||t.insert)&&n[r.name]?r.empty().append(new Yb("br",1)).shortEnded=!0:r.empty().append(new Yb("#text",3)).value="\xa0"},Jb=function(e){return Qb(e,"#text")&&"\xa0"===e.firstChild.value},Qb=function(e,t){return e&&e.firstChild&&e.firstChild===e.lastChild&&e.firstChild.name===t},Zb=function(r,e,t,n){return n.isEmpty(e,t,function(e){return t=e,(n=r.getElementRule(t.name))&&n.paddEmpty;var t,n})},ey=function(e,t){return e&&(t[e.name]||"br"===e.name)},ty=function(e,p){var h=e.schema;p.remove_trailing_brs&&e.addNodeFilter("br",function(e,t,n){var r,o,i,a,u,s,c,l,f=e.length,d=Yt.extend({},h.getBlockElements()),m=h.getNonEmptyElements(),g=h.getNonEmptyElements();for(d.body=1,r=0;r<f;r++)if(i=(o=e[r]).parent,d[o.parent.name]&&o===i.lastChild){for(u=o.prev;u;){if("span"
 !==(s=u.name)||"bookmark"!==u.attr("data-mce-type")){if("br"!==s)break;if("br"===s){o=null;break}}u=u.prev}o&&(o.remove(),Zb(h,m,g,i)&&(c=h.getElementRule(i.name))&&(c.removeEmpty?i.remove():c.paddEmpty&&Gb(p,n,d,i)))}else{for(a=o;i&&i.firstChild===a&&i.lastChild===a&&!d[(a=i).name];)i=i.parent;a===i&&!0!==p.padd_empty_with_br&&((l=new Yb("#text",3)).value="\xa0",o.replace(l))}}),e.addAttributeFilter("href",function(e){var t,n,r,o=e.length;if(!p.allow_unsafe_link_target)for(;o--;)"a"===(t=e[o]).name&&"_blank"===t.attr("target")&&t.attr("rel",(n=t.attr("rel"),r=n?Yt.trim(n):"",/\b(noopener)\b/g.test(r)?r:r.split(" ").filter(function(e){return 0<e.length}).concat(["noopener"]).sort().join(" ")))}),p.allow_html_in_named_anchor||e.addAttrib
 uteFilter("id,name",function(e){for(var t,n,r,o,i=e.length;i--;)if("a"===(o=e[i]).name&&o.firstChild&&!o.attr("href"))for(r=o.parent,t=o.lastChild;n=t.prev,r.insert(t,o),t=n;);}),p.fix_list_elements&&e.addNodeFilter("ul,ol",function(e){for(var t,n,r=e.length;r--;)if("ul"===(n=(t=e[r]).parent).name||"ol"===n.name)if(t.prev&&"li"===t.prev.name)t.prev.append(t);else{var o=new Yb("li",1);o.attr("style","list-style-type: none"),t.wrap(o)}}),p.validate&&h.getValidClasses()&&e.addAttributeFilter("class",function(e){for(var t,n,r,o,i,a,u,s=e.length,c=h.getValidClasses();s--;){for(n=(t=e[s]).attr("class").split(" "),i="",r=0;r<n.length;r++)o=n[r],u=!1,(a=c["*"])&&a[o]&&(u=!0),a=c[t.name],!u&&a&&a[o]&&(u=!0),u&&(i&&(i+=" "),i+=o);
 i.length||(i=null),t.attr("class",i)}})},ny=Yt.makeMap,ry=Yt.each,oy=Yt.explode,iy=Yt.extend;function ay(T,k){void 0===k&&(k=ri());var A={},_=[],R={},D={};(T=T||{}).validate=!("validate"in T)||T.validate,T.root_name=T.root_name||"body";var B=function(e){var t,n,r;n in A&&((r=R[n])?r.push(e):R[n]=[e]),t=_.length;for(;t--;)(n=_[t].name)in e.attributes.map&&((r=D[n])?r.push(e):D[n]=[e]);return e},e={schema:k,addAttributeFilter:function(e,n){ry(oy(e),function(e){var t;for(t=0;t<_.length;t++)if(_[t].name===e)return void _[t].callbacks.push(n);_.push({name:e,callbacks:[n]})})},getAttributeFilters:function(){return[].concat(_)},addNodeFilter:function(e,n){ry(oy(e),function(e){var t=A[e];t||(A[e]=t=[]),t.push(n)})},getNodeFilters:function(){var e=[];for(var t in A)A.hasOwnProperty(t)&&e.push({name:t,callbacks:A[t]});return e},filterNode:B,parse:function(e,a){var t,n,r,o,i,u,s,c,l,f,d,m=[];a=a||{},R={},D={},l=iy(ny("script
 ,style,head,html,body,title,meta,param"),k.getBlockElements());var g=k.getNonEmptyElements(),p=k.children,h=T.validate,v="forced_root_block"in a?a.forced_root_block:T.forced_root_block,b=k.getWhiteSpaceElements(),y=/^[ \t\r\n]+/,C=/[ \t\r\n]+$/,x=/[ \t\r\n]+/g,w=/^[ \t\r\n]+$/;f=b.hasOwnProperty(a.context)||b.hasOwnProperty(T.root_name);var N=function(e,t){var n,r=new Yb(e,t);return e in A&&((n=R[e])?n.push(r):R[e]=[r]),r},E=function(e){var t,n,r,o,i=k.getBlockElements();for(t=e.prev;t&&3===t.type;){if(0<(r=t.value.replace(C,"")).length)return void(t.value=r);if(n=t.next){if(3===n.type&&n.value.length){t=t.prev;continue}if(!i[n.name]&&"script"!==n.name&&"style"!==n.name){t=t.prev;continue}}o=t.prev,t.remove(),t=o}};t=tv({validate:h,allow_script_urls:T.allow_script_urls,allow_conditional_comments:T.allow_conditional_comments,self_closing_elements:function(e){var t,n={};for(t in e)"li"!==
 t&&"p"!==t&&(n[t]=e[t]);return n}(k.getSelfClosingElements()),cdata:function(e){d.append(N("#cdata",4)).value=e},text:function(e,t){var n;f||(e=e.replace(x," "),ey(d.lastChild,l)&&(e=e.replace(y,""))),0!==e.length&&((n=N("#text",3)).raw=!!t,d.append(n).value=e)},comment:function(e){d.append(N("#comment",8)).value=e},pi:function(e,t){d.append(N(e,7)).value=t,E(d)},doctype:function(e){d.append(N("#doctype",10)).value=e,E(d)},start:function(e,t,n){var r,o,i,a,u;if(i=h?k.getElementRule(e):{}){for((r=N(i.outputName||e,1)).attributes=t,r.shortEnded=n,d.append(r),(u=p[d.name])&&p[r.name]&&!u[r.name]&&m.push(r),o=_.length;o--;)(a=_[o].name)in t.map&&((s=D[a])?s.push(r):D[a]=[r]);l[e]&&E(r),n||(d=r),!f&&b[e]&&(f=!0)}},end:function(e){var t,n,r,o,i;if(n=h?k.getElementRule(e):{}){if(l[e]&&!f){if((t=d.firstChild)&&3===t.typ
 e)if(0<(r=t.value.replace(y,"")).length)t.value=r,t=t.next;else for(o=t.next,t.remove(),t=o;t&&3===t.type;)r=t.value,o=t.next,(0===r.length||w.test(r))&&(t.remove(),t=o),t=o;if((t=d.lastChild)&&3===t.type)if(0<(r=t.value.replace(C,"")).length)t.value=r,t=t.prev;else for(o=t.prev,t.remove(),t=o;t&&3===t.type;)r=t.value,o=t.prev,(0===r.length||w.test(r))&&(t.remove(),t=o),t=o}if(f&&b[e]&&(f=!1),n.removeEmpty&&Zb(k,g,b,d)&&!d.attributes.map.name&&!d.attr("id"))return i=d.parent,l[d.name]?d.empty().remove():d.unwrap(),void(d=i);n.paddEmpty&&(Jb(d)||Zb(k,g,b,d))&&Gb(T,a,l,d),d=d.parent}}},k);var S=d=new Yb(a.context||T.root_name,11);if(t.parse(e),h&&m.length&&(a.context?a.invalid=!0:function(e){var t,n,r,o,i,a,u,s,c,l,f,d,m,g,p,h;for(d=ny("tr,td,th,tbody,thead,tfoot,table"),l=k.getNonEmptyElements(),f=k.getWhiteSpaceElements(),m=k.g
 etTextBlockElements(),g=k.getSpecialElements(),t=0;t<e.length;t++)if((n=e[t]).parent&&!n.fixed)if(m[n.name]&&"li"===n.parent.name){for(p=n.next;p&&m[p.name];)p.name="li",p.fixed=!0,n.parent.insert(p,n.parent),p=p.next;n.unwrap(n)}else{for(o=[n],r=n.parent;r&&!k.isValidChild(r.name,n.name)&&!d[r.name];r=r.parent)o.push(r);if(r&&1<o.length){for(o.reverse(),i=a=B(o[0].clone()),c=0;c<o.length-1;c++){for(k.isValidChild(a.name,o[c].name)?(u=B(o[c].clone()),a.append(u)):u=a,s=o[c].firstChild;s&&s!==o[c+1];)h=s.next,u.append(s),s=h;a=u}Zb(k,l,f,i)?r.insert(n,o[0],!0):(r.insert(i,o[0],!0),r.insert(n,i)),r=o[0],(Zb(k,l,f,r)||Qb(r,"br"))&&r.empty().remove()}else if(n.parent){if("li"===n.name){if((p=n.prev)&&("ul"===p.name||"ul"===p.name)){p.append(n);continue}if((p=n.next)&&("ul"===p.name||"ul"===p.name)){p.insert(n,p.firstChil
 d,!0);continue}n.wrap(B(new Yb("ul",1)));continue}k.isValidChild(n.parent.name,"div")&&k.isValidChild("div",n.name)?n.wrap(B(new Yb("div",1))):g[n.name]?n.empty().remove():n.unwrap()}}}(m)),v&&("body"===S.name||a.isRootContent)&&function(){var e,t,n=S.firstChild,r=function(e){e&&((n=e.firstChild)&&3===n.type&&(n.value=n.value.replace(y,"")),(n=e.lastChild)&&3===n.type&&(n.value=n.value.replace(C,"")))};if(k.isValidChild(S.name,v.toLowerCase())){for(;n;)e=n.next,3===n.type||1===n.type&&"p"!==n.name&&!l[n.name]&&!n.attr("data-mce-type")?(t||((t=N(v,1)).attr(T.forced_root_block_attrs),S.insert(t,n)),t.append(n)):(r(t),t=null),n=e;r(t)}}(),!a.invalid){for(c in R){for(s=A[c],i=(n=R[c]).length;i--;)n[i].parent||n.splice(i,1);for(r=0,o=s.length;r<o;r++)s[r](n,c,a)}for(r=0,o=_.length;r<o;r++)if((s=_[r]).name i
 n D){for(i=(n=D[s.name]).length;i--;)n[i].parent||n.splice(i,1);for(i=0,u=s.callbacks.length;i<u;i++)s.callbacks[i](n,s.name,a)}}return S}};return ty(e,T),$b.register(e,T),e}var uy=function(e,t,n){-1===Yt.inArray(t,n)&&(e.addAttributeFilter(n,function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),t.push(n))},sy=function(e,t,n){var r=Ta(n.getInner?t.innerHTML:e.getOuterHTML(t));return n.selection||xo(er.fromDom(t))?r:Yt.trim(r)},cy=function(e,t,n){var r=n.selection?zb({forced_root_block:!1},n):n,o=e.parse(t,r);return Vb.trimTrailingBr(o),o},ly=function(e,t,n,r,o){var i,a,u,s,c=(i=r,of(t,n).serialize(i));return a=e,s=c,!(u=o).no_events&&a?Yg(a,zb(u,{content:s})).content:s};function fy(e,t){var a,u,s,c,l,n,r=(a=e,n=["data-mce-selected"],s=(u=t)&&u.dom?u.dom:hi.DOM,c=u&&u.schema?u.schema:ri(a),a.entity_encoding=a.entity_encoding||"named",a.remove_trailing_brs=!("remove_trailing_brs"in a)||a.remove_trailing_brs,l=ay(a,c)
 ,Vb.register(l,a,s),{schema:c,addNodeFilter:l.addNodeFilter,addAttributeFilter:l.addAttributeFilter,serialize:function(e,t){var n=zb({format:"html"},t||{}),r=qb.process(u,e,n),o=sy(s,r,n),i=cy(l,o,n);return"tree"===n.format?i:ly(u,a,c,i,n)},addRules:function(e){c.addValidElements(e)},setRules:function(e){c.setValidElements(e)},addTempAttr:b(uy,l,n),getTempAttrs:function(){return n}});return{schema:r.schema,addNodeFilter:r.addNodeFilter,addAttributeFilter:r.addAttributeFilter,serialize:r.serialize,addRules:r.addRules,setRules:r.setRules,addTempAttr:r.addTempAttr,getTempAttrs:r.getTempAttrs}}function dy(e){return{getBookmark:b(gl,e),moveToBookmark:b(pl,e)}}(dy||(dy={})).isBookmarkNode=hl;var my=dy,gy=Bo.isContentEditableFalse,py=Bo.isContentEditableTrue,hy=function(r,a){var u,s,c,l,f,d,m,g,p,h,v,b,i,y,C,x,w,N=a.dom,E=Yt.each,S=a.getDoc(),T=document,k=Math.abs,A=Math.round,_=a.getBody();l={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var e=".mce-con
 tent-body";a.contentStyles.push(e+" div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: content-box;background: #FFF;width: 7px;height: 7px;z-index: 10000}"+e+" .mce-resizehandle:hover {background: #000}"+e+" img[data-mce-selected],"+e+" hr[data-mce-selected] {outline: 1px solid black;resize: none}"+e+" .mce-clonedresizable {position: absolute;"+(Re.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+e+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}");var R=function(e){return e&&("IMG"===e.nodeName||a.dom.is(e,"figure.image"))},n=function(e){var t,n,r=e.target;t=e,n=a.selection.
 getRng(),!R(t.target)||jh(t.clientX,t.clientY,n)||e.isDefaultPrevented()||(e.preventDefault(),a.selection.select(r))},D=function(e){return a.dom.is(e,"figure.image")?e.querySelector("img"):e},B=function(e){var t=a.settings.object_resizing;return!1!==t&&!Re.iOS&&("string"!=typeof t&&(t="table,img,figure.image,div"),"false"!==e.getAttribute("data-mce-resize")&&e!==a.getBody()&&Ir.is(er.fromDom(e),t))},O=function(e){var t,n,r,o;t=e.screenX-d,n=e.screenY-m,y=t*f[2]+h,C=n*f[3]+v,y=y<5?5:y,C=C<5?5:C,(R(u)&&!1!==a.settings.resize_img_proportional?!Wh.modifierPressed(e):Wh.modifierPressed(e)||R(u)&&f[2]*f[3]!=0)&&(k(t)>k(n)?(C=A(y*b),y=A(C/b)):(y=A(C/b),C=A(y*b))),N.setStyles(D(s),{width:y,height:C}),r=0<(r=f.startPos.x+t)?r:0,o=0<(o=f.startPos.y+n)?o:0,N.setStyles(c,{left:r,top:o,display:"block"}),c.innerHTML=y+" &times; "+C,f[2]
 <0&&s.clientWidth<=y&&N.setStyle(s,"left",g+(h-y)),f[3]<0&&s.clientHeight<=C&&N.setStyle(s,"top",p+(v-C)),(t=_.scrollWidth-x)+(n=_.scrollHeight-w)!=0&&N.setStyles(c,{left:r-t,top:o-n}),i||(Qg(a,u,h,v),i=!0)},P=function(){i=!1;var e=function(e,t){t&&(u.style[e]||!a.schema.isValid(u.nodeName.toLowerCase(),e)?N.setStyle(D(u),e,t):N.setAttrib(D(u),e,t))};e("width",y),e("height",C),N.unbind(S,"mousemove",O),N.unbind(S,"mouseup",P),T!==S&&(N.unbind(T,"mousemove",O),N.unbind(T,"mouseup",P)),N.remove(s),N.remove(c),o(u),Zg(a,u,y,C),N.setAttrib(u,"style",N.getAttrib(u,"style")),a.nodeChanged()},o=function(e){var t,r,o,n,i;L(),F(),t=N.getPos(e,_),g=t.x,p=t.y,i=e.getBoundingClientRect(),r=i.width||i.right-i.left,o=i.height||i.bottom-i.top,u!==e&&(u=e,y=C=0),n=a.fire("ObjectSelected",{target:e}),B(e)&&!n
 .isDefaultPrevented()?E(l,function(n,e){var t;(t=N.get("mceResizeHandle"+e))&&N.remove(t),t=N.add(_,"div",{id:"mceResizeHandle"+e,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+e+"-resize; margin:0; padding:0"}),11===Re.ie&&(t.contentEditable=!1),N.bind(t,"mousedown",function(e){var t;e.stopImmediatePropagation(),e.preventDefault(),d=(t=e).screenX,m=t.screenY,h=D(u).clientWidth,v=D(u).clientHeight,b=v/h,(f=n).startPos={x:r*n[0]+g,y:o*n[1]+p},x=_.scrollWidth,w=_.scrollHeight,s=u.cloneNode(!0),N.addClass(s,"mce-clonedresizable"),N.setAttrib(s,"data-mce-bogus","all"),s.contentEditable=!1,s.unSelectabe=!0,N.setStyles(s,{left:g,top:p,margin:0}),s.removeAttribute("data-mce-selected"),_.appendChild(s),N.bind(S,"mousemove",O),N.bind(S,"mouseup",P),T!==S&&(N.bind(T,"mouse
 move",O),N.bind(T,"mouseup",P)),c=N.add(_,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},h+" &times; "+v)}),n.elm=t,N.setStyles(t,{left:r*n[0]+g-t.offsetWidth/2,top:o*n[1]+p-t.offsetHeight/2})}):L(),u.setAttribute("data-mce-selected","1")},L=function(){var e,t;for(e in F(),u&&u.removeAttribute("data-mce-selected"),l)(t=N.get("mceResizeHandle"+e))&&(N.unbind(t),N.remove(t))},I=function(e){var t,n=function(e,t){if(e)do{if(e===t)return!0}while(e=e.parentNode)};i||a.removed||(E(N.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),t="mousedown"===e.type?e.target:r.getNode(),n(t=N.$(t).closest("table,img,figure.image,hr")[0],_)&&(U(),n(r.getStart(!0),t)&&n(r.getEnd(!0),t))?o(t):L())},M=function(e){return gy(function(e,t){for(;t&&
 amp;t!==e;){if(py(t)||gy(t))return t;t=t.parentNode}return null}(a.getBody(),e))},F=function(){for(var e in l){var t=l[e];t.elm&&(N.unbind(t.elm),delete t.elm)}},U=function(){try{a.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}};return a.on("init",function(){U(),Re.ie&&11<=Re.ie&&(a.on("mousedown click",function(e){var t=e.target,n=t.nodeName;i||!/^(TABLE|IMG|HR)$/.test(n)||M(t)||(2!==e.button&&a.selection.select(t,"TABLE"===n),"mousedown"===e.type&&a.nodeChanged())}),a.dom.bind(_,"mscontrolselect",function(e){var t=function(e){Le.setEditorTimeout(a,function(){a.selection.select(e)})};if(M(e.target))return e.preventDefault(),void t(e.target);/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"===e.target.tagName&&t(e.target))}));var t=Le.throttle(function(e){a.composing||I(e)});a.on("nodechange ResizeEditor ResizeWindow
  drop FullscreenStateChanged",t),a.on("keyup compositionend",function(e){u&&"TABLE"===u.nodeName&&t(e)}),a.on("hide blur",L),a.on("contextmenu",n)}),a.on("remove",F),{isResizable:B,showResizeRect:o,hideResizeRect:L,updateResizeRect:I,destroy:function(){u=s=null}}},vy=function(e){return Bo.isContentEditableTrue(e)||Bo.isContentEditableFalse(e)},by=function(e,t,n){var r,o,i,a,u,s=n;if(s.caretPositionFromPoint)(o=s.caretPositionFromPoint(e,t))&&((r=n.createRange()).setStart(o.offsetNode,o.offset),r.collapse(!0));else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(s.body.createTextRange){r=s.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(c){r=function(e,n,t){var r,o,i;if(r=t.elementFromPoint(e,n),o=t.body.createTextRange(),r&&"HTML"!==r.tagName||(r=t.body),o.moveToElementText(r),0<(i=(i=Yt.toArray(o.getClientRects())).sort(function(e,t){return(e=Math.abs
 (Math.max(e.top-n,e.bottom-n)))-(t=Math.abs(Math.max(t.top-n,t.bottom-n)))})).length){n=(i[0].bottom+i[0].top)/2;try{return o.moveToPoint(e,n),o.collapse(!0),o}catch(a){}}return null}(e,t,n)}return i=r,a=n.body,u=i&&i.parentElement?i.parentElement():null,Bo.isContentEditableFalse(function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(u,a,vy))?null:i}return r},yy=function(n,e){return $(e,function(e){var t=n.fire("GetSelectionRange",{range:e});return t.range!==e?t.range:e})},Cy=function(e,t){var n=(t||document).createDocumentFragment();return F(e,function(e){n.appendChild(e.dom())}),er.fromDom(n)},xy=Ar("element","width","rows"),wy=Ar("element","cells"),Ny=Ar("x","y"),Ey=function(e,t){var n=parseInt(vr.get(e,t),10);return isNaN(n)?1:n},Sy=function(e){return z(e,function(e,t){return t.cells().length>e?t.cells().length:e},0)},Ty=function(e,t){for(var n=e.rows(),r=0;r&
 lt;n.length;r++)for(var o=n[r].cells(),i=0;i<o.length;i++)if(Ur.eq(o[i],t))return A.some(Ny(i,r));return A.none()},ky=function(e,t,n,r,o){for(var i=[],a=e.rows(),u=n;u<=o;u++){var s=a[u].cells(),c=t<r?s.slice(t,r+1):s.slice(r,t+1);i.push(wy(a[u].element(),c))}return i},Ay=function(e){var o=xy(ba(e),0,[]);return F(Xi(e,"tr"),function(n,r){F(Xi(n,"td,th"),function(e,t){!function(e,t,n,r,o){for(var i=Ey(o,"rowspan"),a=Ey(o,"colspan"),u=e.rows(),s=n;s<n+i;s++){u[s]||(u[s]=wy(ya(r),[]));for(var c=t;c<t+a;c++)u[s].cells()[c]=s===n&&c===t?o:ba(o)}}(o,function(e,t,n){for(;r=t,o=n,i=void 0,((i=e.rows())[o]?i[o].cells():[])[r];)t++;var r,o,i;return t}(o,t,r),r,n,e)})}),xy(o.element(),Sy(o.rows()),o.rows())},_y=function(e){return n=$((t=e).rows(),function(e){var t=$(e.cells(),function(e){var t=ya(e);return vr.remove(t,"colspan"),vr.remove(t,"rowspan"),t}),n=ba(e.element());return _i(n,t),n}),r=ba(t.element()),o=
 er.fromTag("tbody"),_i(o,n),ki.append(r,o),r;var t,n,r,o},Ry=function(l,e,t){return Ty(l,e).bind(function(c){return Ty(l,t).map(function(e){return t=l,r=e,o=(n=c).x(),i=n.y(),a=r.x(),u=r.y(),s=i<u?ky(t,o,i,a,u):ky(t,o,u,a,i),xy(t.element(),Sy(s),s);var t,n,r,o,i,a,u,s})})},Dy=function(n,t){return V(n,function(e){return"li"===sr.name(e)&&gh(e,t)}).fold(H([]),function(e){return(t=n,V(t,function(e){return"ul"===sr.name(e)||"ol"===sr.name(e)})).map(function(e){return[er.fromTag("li"),er.fromTag(sr.name(e))]}).getOr([]);var t})},By=function(e,t){var n,r=er.fromDom(t.commonAncestorContainer),o=jf(r,e),i=U(o,function(e){return mo(e)||lo(e)}),a=Dy(o,t),u=i.concat(a.length?a:vo(n=r)?Wr.parent(n).filter(ho).fold(H([]),function(e){return[n,e]}):ho(n)?[n]:[]);return $(u,ba)},Oy=function(){return Cy([])},Py=function(e,t){return n=er.fromDom(t.cloneContents()),r=By(e,t),o=z(r,function(e,t){return ki.append(t,e),t},n),0<r.length?Cy([o
 ]):o;var n,r,o},Ly=function(e,o){return(t=e,n=o[0],na(n,"table",b(Ur.eq,t))).bind(function(e){var t=o[0],n=o[o.length-1],r=Ay(e);return Ry(r,t,n).map(function(e){return Cy([_y(e)])})}).getOrThunk(Oy);var t,n},Iy=function(e,t){var n,r,o=Om(t,e);return 0<o.length?Ly(e,o):(n=e,0<(r=t).length&&r[0].collapsed?Oy():Py(n,r[0]))},My=function(e,t){var n,r=e.selection.getRng(),o=e.dom.create("body"),i=e.selection.getSel(),a=yy(e,km(i));if((t=t||{}).get=!0,t.format=t.format||"html",t.selection=!0,(t=e.fire("BeforeGetContent",t)).isDefaultPrevented())return e.fire("GetContent",t),t.content;if("text"===t.format)return e.selection.isCollapsed()?"":Ta(r.text||(i.toString?i.toString():""));r.cloneContents?(n=t.contextual?Iy(er.fromDom(e.getBody()),a).dom():r.cloneContents())&&o.appendChild(n):r.item!==undefined||r.htmlText!==undefined?(o.innerHTML="<br>"+(r.item?r.item(0).outerHTML:
 r.htmlText),o.removeChild(o.firstChild)):o.innerHTML=r.toString(),t.getInner=!0;var u=e.selection.serializer.serialize(o,t);return"tree"===t.format?u:(t.content=e.selection.isCollapsed()?"":u,e.fire("GetContent",t),t.content)},Fy=function(e,t,n){var r,o,i,a=e.selection.getRng(),u=e.getDoc();if((n=n||{format:"html"}).set=!0,n.selection=!0,n.content=t,n.no_events||!(n=e.fire("BeforeSetContent",n)).isDefaultPrevented()){if(t=n.content,a.insertNode){t+='<span id="__caret">_</span>',a.startContainer===u&&a.endContainer===u?u.body.innerHTML=t:(a.deleteContents(),0===u.body.childNodes.length?u.body.innerHTML=t:a.createContextualFragment?a.insertNode(a.createContextualFragment(t)):(o=u.createDocumentFragment(),i=u.createElement("div"),o.appendChild(i),i.outerHTML=t,a.insertNode(o))),r=e.dom.get("__caret"),(a=u.createRange()).setStartBefore(r),a.setEndBefore(r),e.selection.setRng(a),e.dom.remo
 ve("__caret");try{e.selection.setRng(a)}catch(s){}}else a.item&&(u.execCommand("Delete",!1,null),a=e.getRng()),/^\s+/.test(t)?(a.pasteHTML('<span id="__mce_tmp">_</span>'+t),e.dom.remove("__mce_tmp")):a.pasteHTML(t);n.no_events||e.fire("SetContent",n)}else e.fire("SetContent",n)},Uy=function(e,t,n,r,o){var i=n?t.startContainer:t.endContainer,a=n?t.startOffset:t.endOffset;return A.from(i).map(er.fromDom).map(function(e){return r&&t.collapsed?e:Wr.child(e,o(e,a)).getOr(e)}).bind(function(e){return sr.isElement(e)?A.some(e):Wr.parent(e)}).map(function(e){return e.dom()}).getOr(e)},zy=function(e,t,n){return Uy(e,t,!0,n,function(e,t){return Math.min(Wr.childNodesCount(e),t)})},Vy=function(e,t,n){return Uy(e,t,!1,n,function(e,t){return 0<t?t-1:t})},qy=function(e,t){for(var n=e;e&&Bo.isText(e)&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n},Hy=Yt.each,jy=function(e){re
 turn!!e.select},$y=function(e){return!(!e||!e.ownerDocument)&&Ur.contains(er.fromDom(e.ownerDocument),er.fromDom(e))},Wy=function(u,s,e,c){var n,t,l,f,a,r=function(e,t){return Fy(c,e,t)},o=function(e){var t=m();t.collapse(!!e),i(t)},d=function(){return s.getSelection?s.getSelection():s.document.selection},m=function(){var e,t,n,r,o=function(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}};if(!s)return null;if(null==(r=s.document))return null;if(c.bookmark!==undefined&&!1===Ep(c)){var i=Ig(c);if(i.isSome())return i.map(function(e){return yy(c,[e])[0]}).getOr(r.createRange())}try{(e=d())&&(t=0<e.rangeCount?e.getRangeAt(0):e.createRange?e.createRange():r.createRange())}catch(a){}return(t=yy(c,[t])[0])||(t=r.createRange?r.createRange():r.body.createTextRange()),t.setStart&&9===t.startContainer.nodeType&&t.collapsed&&(n=u.getRoot(),t.setStart(n,0),t.setEnd(n,0)),l&&f&&(0===o(t.START_TO_START,t,l)&&am
 p;0===o(t.END_TO_END,t,l)?t=f:f=l=null),t},i=function(e,t){var n,r;if((o=e)&&(jy(o)||$y(o.startContainer)&&$y(o.endContainer))){var o,i=jy(e)?e:null;if(i){f=null;try{i.select()}catch(a){}}else{if(n=d(),e=c.fire("SetSelectionRange",{range:e,forward:t}).range,n){f=e;try{n.removeAllRanges(),n.addRange(e)}catch(a){}!1===t&&n.extend&&(n.collapse(e.endContainer,e.endOffset),n.extend(e.startContainer,e.startOffset)),l=0<n.rangeCount?n.getRangeAt(0):null}e.collapsed||e.startContainer!==e.endContainer||!n.setBaseAndExtent||Re.ie||e.endOffset-e.startOffset<2&&e.startContainer.hasChildNodes()&&(r=e.startContainer.childNodes[e.startOffset])&&"IMG"===r.tagName&&(n.setBaseAndExtent(e.startContainer,e.startOffset,e.endContainer,e.endOffset),n.anchorNode===e.startContainer&&n.focusNode===e.endContainer||n.setBaseAndExtent(r,0,r,1)),c.fire("AfterSetSelectionRange",{range:e,forward:t})}}},g=fun
 ction(){var e,t,n=d();return!(n&&n.anchorNode&&n.focusNode)||((e=u.createRng()).setStart(n.anchorNode,n.anchorOffset),e.collapse(!0),(t=u.createRng()).setStart(n.focusNode,n.focusOffset),t.collapse(!0),e.compareBoundaryPoints(e.START_TO_START,t)<=0)},p={bookmarkManager:null,controlSelection:null,dom:u,win:s,serializer:e,editor:c,collapse:o,setCursorLocation:function(e,t){var n=u.createRng();e?(n.setStart(e,t),n.setEnd(e,t),i(n),o(!1)):(ph(u,n,c.getBody(),!0),i(n))},getContent:function(e){return My(c,e)},setContent:r,getBookmark:function(e,t){return n.getBookmark(e,t)},moveToBookmark:function(e){return n.moveToBookmark(e)},select:function(e,t){var r,n,o;return(r=u,n=e,o=t,A.from(n).map(function(e){var t=r.nodeIndex(e),n=r.createRng();return n.setStart(e.parentNode,t),n.setEnd(e.parentNode,t+1),o&&(ph(r,n,e,!0),ph(r,n,e,!1)),n})).each(i),e},isCollapsed:function(){var e=m(),t=d();return!(!e||e.item)&&(e.compareEndPoints?0===e.compareEndPoints("St
 artToEnd",e):!t||e.collapsed)},isForward:g,setNode:function(e){return r(u.getOuterHTML(e)),e},getNode:function(){return e=c.getBody(),(t=m())?(r=t.startContainer,o=t.endContainer,i=t.startOffset,a=t.endOffset,n=t.commonAncestorContainer,!t.collapsed&&(r===o&&a-i<2&&r.hasChildNodes()&&(n=r.childNodes[i]),3===r.nodeType&&3===o.nodeType&&(r=r.length===i?qy(r.nextSibling,!0):r.parentNode,o=0===a?qy(o.previousSibling,!1):o.parentNode,r&&r===o))?r:n&&3===n.nodeType?n.parentNode:n):e;var e,t,n,r,o,i,a},getSel:d,setRng:i,getRng:m,getStart:function(e){return zy(c.getBody(),m(),e)},getEnd:function(e){return Vy(c.getBody(),m(),e)},getSelectedBlocks:function(e,t){return function(e,t,n,r){var o,i,a=[];if(i=e.getRoot(),n=e.getParent(n||zy(i,t,!1),e.isBlock),r=e.getParent(r||Vy(i,t,!1),e.isBlock),n&&n!==i&&a.push(n),n&&r&&n!==r)for(var u=new io(o=n,i);(o=u.next())&&o!==r;)e.isBlock(o)&am
 p;&a.push(o);return r&&n!==r&&r!==i&&a.push(r),a}(u,m(),e,t)},normalize:function(){var e=m(),t=d();if(!_m(t)&&hh(c)){var n=ag(u,e);return n.each(function(e){i(e,g())}),n.getOr(e)}return e},selectorChanged:function(e,t){var i;return a||(a={},i={},c.on("NodeChange",function(e){var n=e.element,r=u.getParents(n,null,u.getRoot()),o={};Hy(a,function(e,n){Hy(r,function(t){if(u.is(t,n))return i[n]||(Hy(e,function(e){e(!0,{node:t,selector:n,parents:r})}),i[n]=e),o[n]=e,!1})}),Hy(i,function(e,t){o[t]||(delete i[t],Hy(e,function(e){e(!1,{node:n,selector:t,parents:r})}))})})),a[e]||(a[e]=[]),a[e].push(t),p},getScrollContainer:function(){for(var e,t=u.getRoot();t&&"BODY"!==t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){return Ks(c,e,t)},placeCaretAt:function(e,t){return i(by(e,t,c.getDoc()))},getBoundingClientRect:function(){var e=m();return e.collapsed?Au.fromRangeS
 tart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){s=l=f=null,t.destroy()}};return n=my(p),t=hy(p,c),p.bookmarkManager=n,p.controlSelection=t,p},Ky=Bo.isContentEditableFalse,Xy=nu,Yy=Jc,Gy=Gc,Jy=function(e,t){for(;t=e(t);)if(t.isVisible())return t;return t},Qy=function(e,t,n,r){var o,i,a,u,s,c,l=e===Tu.Forwards,f=l?Gy:Yy;return!r.collapsed&&(o=Xy(r),Ky(o))?ls(e,t,o,e===Tu.Backwards,!0):(u=_a(r.startContainer),f(i=Yc(e,t.getBody(),r))?fs(t,i.getNode(!l)):(i=n(i))?f(i)?ls(e,t,i.getNode(!l),l,!0):f(a=n(i))&&(!(c=Uc(s=i,a))&&Bo.isBr(s.getNode())||c)?ls(e,t,a.getNode(!l),l,!0):u?ms(t,i.toRange(),!0):null:u?r:null)},Zy=function(e,t,n,r){var o,i,a,u,s,c,l,f,d;if(d=Xy(r),o=Yc(e,t.getBody(),r),i=n(t.getBody(),Ph(1),o),a=jt.filter(i,Lh(1)),s=jt.last(o.getClientRects()),(Gy(o)||Qc(o))&&(d=o.getNode()),(Yy(o)||Zc(o))&&(d=o.getNode(!0)),!s)return null;if(c=s.left,(u=Vh(a,c))&&Ky(u.node))return l=Math.abs(c-u.left),f=Math.abs(
 c-u.right),ls(e,t,u.node,l<f,!0);if(d){var m=function(e,t,n,r){var o,i,a,u,s,c,l=Ts(t),f=[],d=0,m=function(e){return jt.last(e.getClientRects())};1===e?(o=l.next,i=tu,a=eu,u=Au.after(r)):(o=l.prev,i=eu,a=tu,u=Au.before(r)),c=m(u);do{if(u.isVisible()&&!a(s=m(u),c)){if(0<f.length&&i(s,jt.last(f))&&d++,(s=Ja(s)).position=u,s.line=d,n(s))return f;f.push(s)}}while(u=o(u));return f}(e,t.getBody(),Ph(1),d);if(u=Vh(jt.filter(m,Lh(1)),c))return ms(t,u.position.toRange(),!0);if(u=jt.last(jt.filter(m,Lh(0))))return ms(t,u.position.toRange(),!0)}},eC=function(e,t,n){var r,o,i,a,u=Ts(e.getBody()),s=wa.curry(Jy,u.next),c=wa.curry(Jy,u.prev);if(n.collapsed&&e.settings.forced_root_block){if(!(r=e.dom.getParent(n.startContainer,"PRE")))return;(1===t?s(Au.fromRangeStart(n)):c(Au.fromRangeStart(n)))||(a=(i=e).dom.create(i.settings.forced_root_block),(!Re.ie||11<=Re.ie)&&(a.innerHTML='<br data-mce-bogus="1">'),o=a,1===t?e.$(r).a
 fter(o):e.$(r).before(o),e.selection.select(o,!0),e.selection.collapse())}},tC=function(l,f){return function(){var e,t,n,r,o,i,a,u,s,c=(t=f,r=Ts((e=l).getBody()),o=wa.curry(Jy,r.next),i=wa.curry(Jy,r.prev),a=t?Tu.Forwards:Tu.Backwards,u=t?o:i,s=e.selection.getRng(),(n=Qy(a,e,u,s))?n:(n=eC(e,a,s))||null);return!!c&&(l.selection.setRng(c),!0)}},nC=function(u,s){return function(){var e,t,n,r,o,i,a=(r=(t=s)?1:-1,o=t?Oh:Bh,i=(e=u).selection.getRng(),(n=Zy(r,e,o,i))?n:(n=eC(e,r,i))||null);return!!a&&(u.selection.setRng(a),!0)}},rC=function(e,r){return G($(e,function(e){return zb({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:v},e)}),function(e){return t=e,(n=r).keyCode===t.keyCode&&n.shiftKey===t.shiftKey&&n.altKey===t.altKey&&n.ctrlKey===t.ctrlKey&&n.metaKey===t.metaKey?[e]:[];var t,n})},oC=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=Array.prototype.slice.call(arguments,1);return function(
 ){return e.apply(null,r)}},iC=function(e,t){return V(rC(e,t),function(e){return e.action()})},aC=function(i,a){i.on("keydown",function(e){var t,n,r,o;!1===e.isDefaultPrevented()&&(t=i,n=a,r=e,o=Qn.detect().os,iC([{keyCode:Wh.RIGHT,action:tC(t,!0)},{keyCode:Wh.LEFT,action:tC(t,!1)},{keyCode:Wh.UP,action:nC(t,!1)},{keyCode:Wh.DOWN,action:nC(t,!0)},{keyCode:Wh.RIGHT,action:xc(t,!0)},{keyCode:Wh.LEFT,action:xc(t,!1)},{keyCode:Wh.UP,action:wc(t,!1)},{keyCode:Wh.DOWN,action:wc(t,!0)},{keyCode:Wh.RIGHT,action:um.move(t,n,!0)},{keyCode:Wh.LEFT,action:um.move(t,n,!1)},{keyCode:Wh.RIGHT,ctrlKey:!o.isOSX(),altKey:o.isOSX(),action:um.moveNextWord(t,n)},{keyCode:Wh.LEFT,ctrlKey:!o.isOSX(),altKey:o.isOSX(),action:um.movePrevWord(t,n)}],r).each(function(e){r.preventDefault()}))})},uC=function(e){return 1===Wr.children(e).length},sC=function(e,t,n,r){var o,i,a,u,s=b(Kv,t),c=$(U(r,s),function(e){return e.dom()});if(0===c.length)hd(t,e,n);else{var l=(o=n.dom(),i=c,a=zv(!1),u=$v(i,a.
 dom()),ki.before(er.fromDom(o),a),Di.remove(er.fromDom(o)),Au(u,0));t.selection.setRng(l.toRange())}},cC=function(n,r){var t,e=er.fromDom(n.getBody()),o=er.fromDom(n.selection.getStart()),i=U((t=jf(o,e),K(t,fo).fold(H(t),function(e){return t.slice(0,e)})),uC);return te(i).map(function(e){var t=Au.fromRangeStart(n.selection.getRng());return!!Af(r,t,e.dom())&&(sC(r,n,e,i),!0)}).getOr(!1)},lC=function(e,t){return!!e.selection.isCollapsed()&&cC(e,t)},fC=function(o,i){o.on("keydown",function(e){var t,n,r;!1===e.isDefaultPrevented()&&(t=o,n=i,r=e,iC([{keyCode:Wh.BACKSPACE,action:oC(yd,t,!1)},{keyCode:Wh.DELETE,action:oC(yd,t,!0)},{keyCode:Wh.BACKSPACE,action:oC(fm,t,n,!1)},{keyCode:Wh.DELETE,action:oC(fm,t,n,!0)},{keyCode:Wh.BACKSPACE,action:oC(jm,t,!1)},{keyCode:Wh.DELETE,action:oC(jm,t,!0)},{keyCode:Wh.BACKSPACE,action:oC(td,t,!1)},{keyCode:Wh.DELETE,action:oC(td,t,!0)},{keyCode:Wh.BACKSPACE,action:oC(Jf,t,!1)},{keyCode:Wh.DELETE,action:oC(Jf,t,!0)},{ke
 yCode:Wh.BACKSPACE,action:oC(lC,t,!1)},{keyCode:Wh.DELETE,action:oC(lC,t,!0)}],r).each(function(e){r.preventDefault()}))}),o.on("keyup",function(e){var t,n;!1===e.isDefaultPrevented()&&(t=o,n=e,iC([{keyCode:Wh.BACKSPACE,action:oC(Cd,t)},{keyCode:Wh.DELETE,action:oC(Cd,t)}],n))})},dC=function(e){return A.from(e.dom.getParent(e.selection.getStart(!0),e.dom.isBlock))},mC=function(e,t){var n,r,o,i=t,a=e.dom,u=e.schema.getMoveCaretBeforeOnEnterElements();if(t){if(/^(LI|DT|DD)$/.test(t.nodeName)){var s=function(e){for(;e;){if(1===e.nodeType||3===e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}(t.firstChild);s&&/^(UL|OL|DL)$/.test(s.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(o=a.createRng(),t.normalize(),t.hasChildNodes()){for(n=new io(t,t);r=n.current();){if(Bo.isText(r)){o.setStart(r,0),o.setEnd(r,0);break}if(u[r.nodeName.toLowerCase()]){o.setStartBefore(r),o.setEndBefore(r);bre
 ak}i=r,r=n.next()}r||(o.setStart(i,0),o.setEnd(i,0))}else Bo.isBr(t)?t.nextSibling&&a.isBlock(t.nextSibling)?(o.setStartBefore(t),o.setEndBefore(t)):(o.setStartAfter(t),o.setEndAfter(t)):(o.setStart(t,0),o.setEnd(t,0));e.selection.setRng(o),a.remove(void 0),e.selection.scrollIntoView(t)}},gC=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},pC=dC,hC=function(e){return dC(e).fold(H(""),function(e){return e.nodeName.toUpperCase()})},vC=function(e){return dC(e).filter(function(e){return vo(er.fromDom(e))}).isSome()},bC=function(e,t){return e&&e.parentNode&&e.parentNode.nodeName===t},yC=function(e){return e&&/^(OL|UL|LI)$/.test(e.nodeName)},CC=function(e){var t=e.parentNode;return/^(LI|DT|DD)$/.test(t.nodeName)?t:e},xC=function(e,t,n){for(var r=e[n?"firstChild":"lastChild"];r&&am
 p;!Bo.isElement(r);)r=r[n?"nextSibling":"previousSibling"];return r===t},wC=function(e,t,n,r,o){var i=e.dom,a=e.selection.getRng();if(n!==e.getBody()){var u;yC(u=n)&&yC(u.parentNode)&&(o="LI");var s,c,l=o?t(o):i.create("BR");if(xC(n,r,!0)&&xC(n,r,!1))bC(n,"LI")?i.insertAfter(l,CC(n)):i.replace(l,n);else if(xC(n,r,!0))bC(n,"LI")?(i.insertAfter(l,CC(n)),l.appendChild(i.doc.createTextNode(" ")),l.appendChild(n)):n.parentNode.insertBefore(l,n);else if(xC(n,r,!1))i.insertAfter(l,CC(n));else{n=CC(n);var f=a.cloneRange();f.setStartAfter(r),f.setEndAfter(n);var d=f.extractContents();"LI"===o&&(c="LI",(s=d).firstChild&&s.firstChild.nodeName===c)?(l=d.firstChild,i.insertAfter(d,n)):(i.insertAfter(d,n),i.insertAfter(l,n))}i.remove(r),mC(e,l)}},NC=function(e){e.innerHTML='<br data-mce-bogus="1">'},EC=function(e,t){return e.nodeName===t||e.previousSibl
 ing&&e.previousSibling.nodeName===t},SC=function(e,t){return t&&e.isBlock(t)&&!/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName)&&!/^(fixed|absolute)/i.test(t.style.position)&&"true"!==e.getContentEditable(t)},TC=function(e,t,n){return!1===Bo.isText(t)?n:e?1===n&&t.data.charAt(n-1)===Sa?0:n:n===t.data.length-1&&t.data.charAt(n)===Sa?t.data.length:n},kC=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},AC=function(e,t){var n=rc(e);n&&n.toLowerCase()===t.tagName.toLowerCase()&&e.dom.setAttribs(t,oc(e))},_C=function(a,e){var t,u,s,i,c,n,r,o,l,f,d,m,g,p,h,v,b,y,C=a.dom,x=a.schema,w=x.getNonEmptyElements(),N=a.selection.getRng(),E=function(e){var t,n,r,o=s,i=x.getTextInlineElements();if(e||"TABLE"===f||"HR"===f?(t=C.create(e||m),AC(a,t)):t=c.cloneNode(!
 1),r=t,!1===uc(a))C.setAttrib(t,"style",null),C.setAttrib(t,"class",null);else do{if(i[o.nodeName]){if(Gu(o))continue;n=o.cloneNode(!1),C.setAttrib(n,"id",""),t.hasChildNodes()?n.appendChild(t.firstChild):r=n,t.appendChild(n)}}while((o=o.parentNode)&&o!==u);return NC(r),t},S=function(e){var t,n,r,o;if(o=TC(e,s,i),Bo.isText(s)&&(e?0<o:o<s.nodeValue.length))return!1;if(s.parentNode===c&&g&&!e)return!0;if(e&&Bo.isElement(s)&&s===c.firstChild)return!0;if(EC(s,"TABLE")||EC(s,"HR"))return g&&!e||!g&&e;for(t=new io(s,c),Bo.isText(s)&&(e&&0===o?t.prev():e||o!==s.nodeValue.length||t.next());n=t.current();){if(Bo.isElement(n)){if(!n.getAttribute("data-mce-bogus")&&(r=n.nodeName.toLowerCase(),w[r]&&"br"!==r))return!1}else if(Bo.isText(n)&&!/^[ \t\r\n]*$/.test(n.nodeValue))return!1;e?t.prev():t.next()}return
 !0},T=function(){r=/^(H[1-6]|PRE|FIGURE)$/.test(f)&&"HGROUP"!==d?E(m):E(),sc(a)&&SC(C,l)&&C.isEmpty(c)?r=C.split(l,c):C.insertAfter(r,c),mC(a,r)};ag(C,N).each(function(e){N.setStart(e.startContainer,e.startOffset),N.setEnd(e.endContainer,e.endOffset)}),s=N.startContainer,i=N.startOffset,m=rc(a),n=e.shiftKey,Bo.isElement(s)&&s.hasChildNodes()&&(g=i>s.childNodes.length-1,s=s.childNodes[Math.min(i,s.childNodes.length-1)]||s,i=g&&Bo.isText(s)?s.nodeValue.length:0),(u=kC(C,s))&&((m&&!n||!m&&n)&&(s=function(e,t,n,r,o){var i,a,u,s,c,l,f,d=t||"P",m=e.dom,g=kC(m,r);if(!(a=m.getParent(r,m.isBlock))||!SC(m,a)){if(l=(a=a||g)===e.getBody()||(f=a)&&/^(TD|TH|CAPTION)$/.test(f.nodeName)?a.nodeName.toLowerCase():a.parentNode.nodeName.toLowerCase(),!a.hasChildNodes())return i=m.create(d),AC(e,i),a.appendChild(i),n.setStart(i,0),n.setEnd(i,0),i;for(s=r;s.parentNode!==a;)s=s.parentNode;for(;s&
 amp;&!m.isBlock(s);)s=(u=s).previousSibling;if(u&&e.schema.isValidChild(l,d.toLowerCase())){for(i=m.create(d),AC(e,i),u.parentNode.insertBefore(i,u),s=u;s&&!m.isBlock(s);)c=s.nextSibling,i.appendChild(s),s=c;n.setStart(r,o),n.setEnd(r,o)}}return r}(a,m,N,s,i)),c=C.getParent(s,C.isBlock),l=c?C.getParent(c.parentNode,C.isBlock):null,f=c?c.nodeName.toUpperCase():"","LI"!==(d=l?l.nodeName.toUpperCase():"")||e.ctrlKey||(l=(c=l).parentNode,f=d),/^(LI|DT|DD)$/.test(f)&&C.isEmpty(c)?wC(a,E,l,c,m):m&&c===a.getBody()||(m=m||"P",_a(c)?(r=Fa(c),C.isEmpty(c)&&NC(c),mC(a,r)):S()?T():S(!0)?(r=c.parentNode.insertBefore(E(),c),mC(a,EC(c,"HR")?r:c)):((t=(b=N,y=b.cloneRange(),y.setStart(b.startContainer,TC(!0,b.startContainer,b.startOffset)),y.setEnd(b.endContainer,TC(!1,b.endContainer,b.endOffset)),y).cloneRange()).setEndAfter(c),function(e){for(;Bo.isText(e)&&(e.nodeValue=e.nodeValue.replace(/^[\r\n
 ]+/,"")),e=e.firstChild;);}(o=t.extractContents()),r=o.firstChild,C.insertAfter(o,c),function(e,t,n){var r,o=n,i=[];if(o){for(;o=o.firstChild;){if(e.isBlock(o))return;Bo.isElement(o)&&!t[o.nodeName.toLowerCase()]&&i.push(o)}for(r=i.length;r--;)!(o=i[r]).hasChildNodes()||o.firstChild===o.lastChild&&""===o.firstChild.nodeValue?e.remove(o):(a=o)&&"A"===a.nodeName&&0===Yt.trim(Ta(a.innerText||a.textContent)).length&&e.remove(o);var a}}(C,w,r),p=C,(h=c).normalize(),(v=h.lastChild)&&!/^(left|right)$/gi.test(p.getStyle(v,"float",!0))||p.add(h,"br"),C.isEmpty(c)&&NC(c),r.normalize(),C.isEmpty(r)?(C.remove(r),T()):mC(a,r)),C.setAttrib(r,"id",""),a.fire("NewBlock",{newBlock:r})))},RC=function(e,t){return pC(e).filter(function(e){return 0<t.length&&Ir.is(er.fromDom(e),t)}).isSome()},DC=function(e){return RC(e,ic(e))},BC=function(e){return RC
 (e,ac(e))},OC=nd([{br:[]},{block:[]},{none:[]}]),PC=function(e,t){return BC(e)},LC=function(n){return function(e,t){return""===rc(e)===n}},IC=function(n){return function(e,t){return vC(e)===n}},MC=function(n,r){return function(e,t){return hC(e)===n.toUpperCase()===r}},FC=function(e){return MC("pre",e)},UC=function(n){return function(e,t){return nc(e)===n}},zC=function(e,t){return DC(e)},VC=function(e,t){return t},qC=function(e){var t=rc(e),n=gC(e.dom,e.selection.getStart());return n&&e.schema.isValidChild(n.nodeName,t||"P")},HC=function(e,t){return function(n,r){return z(e,function(e,t){return e&&t(n,r)},!0)?A.some(t):A.none()}},jC=function(e,t){return Dd([HC([PC],OC.none()),HC([MC("summary",!0)],OC.br()),HC([FC(!0),UC(!1),VC],OC.br()),HC([FC(!0),UC(!1)],OC.block()),HC([FC(!0),UC(!0),VC],OC.block()),HC([FC(!0),UC(!0)],OC.br()),HC([IC(!0),VC],OC.br()),HC([IC(!0)],OC.block()),HC([LC(!0),VC,qC],OC.block()),HC([LC(!0)],OC.br()),HC(
 [zC],OC.br()),HC([LC(!1),VC],OC.br()),HC([qC],OC.block())],[e,t.shiftKey]).getOr(OC.none())},$C=function(e,t){jC(e,t).fold(function(){hg(e,t)},function(){_C(e,t)},v)},WC=function(o){o.on("keydown",function(e){var t,n,r;e.keyCode===Wh.ENTER&&(t=o,(n=e).isDefaultPrevented()||(n.preventDefault(),(r=t.undoManager).typing&&(r.typing=!1,r.add()),t.undoManager.transact(function(){!1===t.selection.isCollapsed()&&t.execCommand("Delete"),$C(t,n)})))})},KC=function(e,t,n){return u=t,!(!XC(n)||!Bo.isText(u.container())||(r=e,i=(o=t).container(),a=o.offset(),i.insertData(a,"\xa0"),r.selection.setCursorLocation(i,a+1),0));var r,o,i,a,u},XC=function(e){return e.fold(H(!1),H(!0),H(!0),H(!1))},YC=function(e){return!!e.selection.isCollapsed()&&(t=e,n=b(Sf.isInlineTarget,t),r=Au.fromRangeStart(t.selection.getRng()),Yd(n,t.getBody(),r).map(b(KC,t,r)).getOr(!1));var t,n,r},GC=function(r){r.on("keydown",function(e){var t,n;!1===e.isD
 efaultPrevented()&&(t=r,n=e,iC([{keyCode:Wh.SPACEBAR,action:oC(YC,t)}],n).each(function(e){n.preventDefault()}))})},JC=function(e,t){var n;t.hasAttribute("data-mce-caret")&&(Fa(t),(n=e).selection.setRng(n.selection.getRng()),e.selection.scrollIntoView(t))},QC=function(e,t){var n,r=(n=e,ra(er.fromDom(n.getBody()),"*[data-mce-caret]").fold(H(null),function(e){return e.dom()}));if(r)return"compositionstart"===t.type?(t.preventDefault(),t.stopPropagation(),void JC(e,r)):void(Ba(r)&&(JC(e,r),e.undoManager.add()))},ZC=function(e){e.on("keyup compositionstart",b(QC,e))},ex=function(e){var t=um.setupSelectedState(e);ZC(e),aC(e,t),fC(e,t),WC(e),GC(e)};function tx(u){var s,n,r,o=Yt.each,c=Wh.BACKSPACE,l=Wh.DELETE,f=u.dom,d=u.selection,e=u.settings,t=u.parser,i=Re.gecko,a=Re.ie,m=Re.webkit,g="data:text/mce-internal,",p=a?"Text":"URL",h=function(e,t){try{u.getDoc().execCommand(e,!1,t)}catch(n){}},v=fun
 ction(e){return e.isDefaultPrevented()},b=function(){u.shortcuts.add("meta+a",null,"SelectAll")},y=function(){u.on("keydown",function(e){if(!v(e)&&e.keyCode===c&&d.isCollapsed()&&0===d.getRng().startOffset){var t=d.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})},C=function(){u.inline||(u.contentStyles.push("body {min-height: 150px}"),u.on("click",function(e){var t;if("HTML"===e.target.nodeName){if(11<Re.ie)return void u.getBody().focus();t=u.selection.getRng(),u.getBody().focus(),u.selection.setRng(t),u.selection.normalize(),u.nodeChanged()}}))};return u.on("keydown",function(e){var t,n,r,o,i;if(!v(e)&&e.keyCode===Wh.BACKSPACE&&(n=(t=d.getRng()).startContainer,r=t.startOffset,o=f.getRoot(),i=n,t.collapsed&&0===r)){for(;i&&i.parentNode&&i.parentNode.firstChild=
 ==i&&i.parentNode!==o;)i=i.parentNode;"BLOCKQUOTE"===i.tagName&&(u.formatter.toggle("blockquote",null,i),(t=f.createRng()).setStart(n,0),t.setEnd(n,0),d.setRng(t))}}),s=function(e){var t=f.create("body"),n=e.cloneContents();return t.appendChild(n),d.serializer.serialize(t,{format:"html"})},u.on("keydown",function(e){var t,n,r,o,i,a=e.keyCode;if(!v(e)&&(a===l||a===c)){if(t=u.selection.isCollapsed(),n=u.getBody(),t&&!f.isEmpty(n))return;if(!t&&(r=u.selection.getRng(),o=s(r),(i=f.createRng()).selectNode(u.getBody()),o!==s(i)))return;e.preventDefault(),u.setContent(""),n.firstChild&&f.isBlock(n.firstChild)?u.selection.setCursorLocation(n.firstChild,0):u.selection.setCursorLocation(n,0),u.nodeChanged()}}),Re.windowsPhone||u.on("keyup focusin mouseup",function(e){Wh.modifierPressed(e)||d.normalize()},!0),m&&(u.settings.content_editable||f.bind(u.getDoc(),"mous
 edown mouseup",function(e){var t;if(e.target===u.getDoc().documentElement)if(t=d.getRng(),u.getBody().focus(),"mousedown"===e.type){if(Da(t.startContainer))return;d.placeCaretAt(e.clientX,e.clientY)}else d.setRng(t)}),u.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&"false"!==f.getContentEditableParent(t)&&(e.preventDefault(),u.selection.select(t),u.nodeChanged()),"A"===t.nodeName&&f.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),d.select(t))}),e.forced_root_block&&u.on("init",function(){h("DefaultParagraphSeparator",e.forced_root_block)}),u.on("init",function(){u.dom.bind(u.getBody(),"submit",function(e){e.preventDefault()})}),y(),t.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"===e[t].attr("class")&&e[t].remove()}),Re.iOS?(u.inline||u.on("keydow
 n",function(){document.activeElement===document.body&&u.getWin().focus()}),C(),u.on("click",function(e){var t=e.target;do{if("A"===t.tagName)return void e.preventDefault()}while(t=t.parentNode)}),u.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")):b()),11<=Re.ie&&(C(),y()),Re.ie&&(b(),h("AutoUrlDetect",!1),u.on("dragstart",function(e){var t,n,r;(t=e).dataTransfer&&(u.selection.isCollapsed()&&"IMG"===t.target.tagName&&d.select(t.target),0<(n=u.selection.getContent()).length&&(r=g+escape(u.id)+","+escape(n),t.dataTransfer.setData(p,r)))}),u.on("drop",function(e){if(!v(e)){var t=(i=e).dataTransfer&&(a=i.dataTransfer.getData(p))&&0<=a.indexOf(g)?(a=a.substr(g.length).split(","),{id:unescape(a[0]),html:unescape(a[1])}):null;if(t&&t.id!==u.id){e.preventDefault();var n=by(e.x,e.y,u.getDoc
 ());d.setRng(n),r=t.html,o=!0,u.queryCommandSupported("mceInsertClipboardContent")?u.execCommand("mceInsertClipboardContent",!1,{content:r,internal:o}):u.execCommand("mceInsertContent",!1,r)}}var r,o,i,a})),i&&(u.on("keydown",function(e){if(!v(e)&&e.keyCode===c){if(!u.getBody().getElementsByTagName("hr").length)return;if(d.isCollapsed()&&0===d.getRng().startOffset){var t=d.getNode(),n=t.previousSibling;if("HR"===t.nodeName)return f.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(f.remove(n),e.preventDefault())}}}),Range.prototype.getClientRects||u.on("mousedown",function(e){if(!v(e)&&"HTML"===e.target.nodeName){var t=u.getBody();t.blur(),Le.setEditorTimeout(u,function(){t.focus()})}}),n=function(){var e=f.getAttribs(d.getStart().cloneNode(!1));return function(){var t=d.getStart();t!==u.getBody()&&
 (f.setAttrib(t,"style",null),o(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}},r=function(){return!d.isCollapsed()&&f.getParent(d.getStart(),f.isBlock)!==f.getParent(d.getEnd(),f.isBlock)},u.on("keypress",function(e){var t;if(!v(e)&&(8===e.keyCode||46===e.keyCode)&&r())return t=n(),u.getDoc().execCommand("delete",!1,null),t(),e.preventDefault(),!1}),f.bind(u.getDoc(),"cut",function(e){var t;!v(e)&&r()&&(t=n(),Le.setEditorTimeout(u,function(){t()}))}),e.readonly||u.on("BeforeExecCommand MouseDown",function(){h("StyleWithCSS",!1),h("enableInlineTableEditing",!1),e.object_resizing||h("enableObjectResizing",!1)}),u.on("SetContent ExecCommand",function(e){"setcontent"!==e.type&&"mceInsertLink"!==e.command||o(f.select("a"),function(e){var t=e.parentNode,n=f.getRoot();if(t.lastChild===e){for(;t&&!f.isBlock(t);
 ){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}f.add(t,"br",{"data-mce-bogus":1})}})}),u.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"),Re.mac&&u.on("keydown",function(e){!Wh.metaKeyPressed(e)||e.shiftKey||37!==e.keyCode&&39!==e.keyCode||(e.preventDefault(),u.selection.getSel().modify("move",37===e.keyCode?"backward":"forward","lineboundary"))}),y()),{refreshContentEditable:function(){},isHidden:function(){var e;return!i||u.removed?0:!(e=u.selection.getSel())||!e.rangeCount||0===e.rangeCount}}}var nx=function(e){return Bo.isElement(e)&&po(er.fromDom(e))},rx=function(t){t.on("click",function(e){3===e.detail&&function(e){var t=e.selection.getRng(),n=Su.fromRangeStart(t),r=Su.fromRangeEnd(t);if(Su.isElementPosition(n)){var o=n.container();nx(o)&&al.firstPositionIn(o).each(function(e){return
  t.setStart(e.container(),e.offset())})}Su.isElementPosition(r)&&(o=n.container(),nx(o)&&al.lastPositionIn(o).each(function(e){return t.setEnd(e.container(),e.offset())})),e.selection.setRng(uf(t))}(t)})},ox=function(e){var t,n;(t=e).on("click",function(e){t.dom.getParent(e.target,"details")&&e.preventDefault()}),(n=e).parser.addNodeFilter("details",function(e){F(e,function(e){e.attr("data-mce-open",e.attr("open")),e.attr("open","open")})}),n.serializer.addNodeFilter("details",function(e){F(e,function(e){var t=e.attr("data-mce-open");e.attr("open",k(t)?t:null),e.attr("data-mce-open",null)})})},ix=hi.DOM,ax=function(e){var t;e.bindPendingEventDelegates(),e.initialized=!0,e.fire("init"),e.focus(!0),e.nodeChanged({initial:!0}),e.execCallback("init_instance_callback",e),(t=e).settings.auto_focus&&Le.setEditorTimeout(t,function(
 ){var e;(e=!0===t.settings.auto_focus?t:t.editorManager.get(t.settings.auto_focus)).destroyed||e.focus()},100)},ux=function(t,e){var n,r,u,o,i,a,s,c,l,f,d,m=t.settings,g=t.getElement(),p=t.getDoc();m.inline||(t.getElement().style.visibility=t.orgVisibility),e||m.content_editable||(p.open(),p.write(t.iframeHTML),p.close()),m.content_editable&&(t.on("remove",function(){var e=this.getBody();ix.removeClass(e,"mce-content-body"),ix.removeClass(e,"mce-edit-focus"),ix.setAttrib(e,"contentEditable",null)}),ix.addClass(g,"mce-content-body"),t.contentDocument=p=m.content_document||document,t.contentWindow=m.content_window||window,t.bodyElement=g,m.content_document=m.content_window=null,m.root_name=g.nodeName.toLowerCase()),(n=t.getBody()).disabled=!0,t.readonly=m.readonly,t.readonly||(t.inline&&"static"===ix.getStyle(n,"position",!0)&&(n.style.position="relative"),n.contentEditable=t.getPar
 am("content_editable_state",!0)),n.disabled=!1,t.editorUpload=uh(t),t.schema=ri(m),t.dom=hi(p,{keep_values:!0,url_converter:t.convertURL,url_converter_scope:t,hex_colors:m.force_hex_style_colors,class_filter:m.class_filter,update_styles:!0,root_element:t.inline?t.getBody():null,collect:m.content_editable,schema:t.schema,onSetAttrib:function(e){t.fire("SetAttrib",e)}}),t.parser=((o=ay((u=t).settings,u.schema)).addAttributeFilter("src,href,style,tabindex",function(e,t){for(var n,r,o,i=e.length,a=u.dom;i--;)if(r=(n=e[i]).attr(t),o="data-mce-"+t,!n.attributes.map[o]){if(0===r.indexOf("data:")||0===r.indexOf("blob:"))continue;"style"===t?((r=a.serializeStyle(a.parseStyle(r),n.name)).length||(r=null),n.attr(o,r),n.attr(t,r)):"tabindex"===t?(n.attr(o,r),n.attr(t,null)):n.attr(o,u.convertURL(r,t,n.name))}}),o.addNodeFilter("script",function(e){for(var t,n,r=e.length;r--;)0!==(n=(t=e[r]).attr("type
 ")||"no/type").indexOf("mce-")&&t.attr("type","mce-"+n)}),o.addNodeFilter("#cdata",function(e){for(var t,n=e.length;n--;)(t=e[n]).type=8,t.name="#comment",t.value="[CDATA["+t.value+"]]"}),o.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t,n=e.length,r=u.schema.getNonEmptyElements();n--;)(t=e[n]).isEmpty(r)&&0===t.getAll("br").length&&(t.append(new Yb("br",1)).shortEnded=!0)}),o),t.serializer=fy(m,t),t.selection=Wy(t.dom,t.getWin(),t.serializer,t),t.experimental=(i=Vl(t),a={},Object.defineProperty(a,"annotator",{get:function(){return console.warn("Using experimental API: annotator"),i}}),a),t.formatter=Mb(t),t.undoManager=Ev(t),t._nodeChangeDispatcher=new vh(t),t._selectionOverrides=Qh(t),ox(t),rx(t),ex(t),fh(t),t.fire("PreInit"),m.browser_spellcheck||m.gecko_spellcheck||(p.body.spellcheck=!1,ix.setAttrib
 (n,"spellcheck","false")),t.quirks=tx(t),t.fire("PostRender"),m.directionality&&(n.dir=m.directionality),m.nowrap&&(n.style.whiteSpace="nowrap"),m.protect&&t.on("BeforeSetContent",function(t){Yt.each(m.protect,function(e){t.content=t.content.replace(e,function(e){return"\x3c!--mce:protected "+escape(e)+"--\x3e"})})}),t.on("SetContent",function(){t.addVisual(t.getBody())}),t.load({initial:!0,format:"html"}),t.startContent=t.getContent({format:"raw"}),t.on("compositionstart compositionend",function(e){t.composing="compositionstart"===e.type}),0<t.contentStyles.length&&(r="",Yt.each(t.contentStyles,function(e){r+=e+"\r\n"}),t.dom.addStyle(r)),(s=t,s.inline?ix.styleSheetLoader:s.dom.styleSheetLoader).loadAll(t.contentCSS,function(e){ax(t)},function(e){ax(t)}),m.content_style&&(c=t,l=m.content_style,f=er.fro
 mDom(c.getDoc().head),d=er.fromTag("style"),vr.set(d,"type","text/css"),ki.append(d,er.fromText(l)),ki.append(f,d))},sx=hi.DOM,cx=function(e,t){var n,r,o,i,a,u,s,c=e.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),l=(n=e.id,r=c,o=t.height,i=Gs(e),s=er.fromTag("iframe"),vr.setAll(s,i),vr.setAll(s,{id:n+"_ifr",frameBorder:"0",allowTransparency:"true",title:r}),Sr(s,{width:"100%",height:(a=o,u="number"==typeof a?a+"px":a,u||""),display:"block"}),s).dom();l.onload=function(){l.onload=null,e.fire("load")};var f,d,m,g,p=function(e,t){if(document.domain!==window.location.hostname&&Re.ie&&Re.ie<12){var n=ah.uuid("mce");e[n]=function(){ux(e)};var r='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tin
 ymce.get("'+e.id+'");document.write(ed.iframeHTML);document.close();ed.'+n+"(true);})()";return sx.setAttrib(t,"src",r),!0}return!1}(e,l);return e.contentAreaContainer=t.iframeContainer,e.iframeElement=l,e.iframeHTML=(g=Js(f=e)+"<html><head>",Qs(f)!==f.documentBaseUrl&&(g+='<base href="'+f.documentBaseURI.getURI()+'" />'),g+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',d=Zs(f),m=ec(f),tc(f)&&(g+='<meta http-equiv="Content-Security-Policy" content="'+tc(f)+'" />'),g+='</head><body id="'+d+'" class="mce-content-body '+m+'" data-id="'+f.id+'"><br></body></html>'),sx.add(t.iframeContainer,l),p},lx=function(e,t){var n=cx(e,t);t.editorContainer&&(sx.get(t.editorContainer).style.display=e.orgDisplay,e.hidden=sx.isHidden(t.editorContainer)),e.getElement().style.di
 splay="none",sx.setAttrib(e.id,"aria-hidden","true"),n||ux(e)},fx=hi.DOM,dx=function(t,n,e){var r,o,i=Hp.get(e);if(r=Hp.urls[e]||t.documentBaseUrl.replace(/\/$/,""),e=Yt.trim(e),i&&-1===Yt.inArray(n,e)){if(Yt.each(Hp.dependencies(e),function(e){dx(t,n,e)}),t.plugins[e])return;o=new i(t,r,t.$),(t.plugins[e]=o).init&&(o.init(t,r),n.push(e))}},mx=function(e){return e.replace(/^\-/,"")},gx=function(e){return{editorContainer:e,iframeContainer:e}},px=function(e){var t,n,r=e.getElement();return e.inline?gx(null):(t=r,n=fx.create("div"),fx.insertAfter(n,t),gx(n))},hx=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.getElement();return e.orgDisplay=m.style.display,k(d.theme)?(l=(o=e).settings,f=o.getElement(),i=l.width||fx.getStyle(f,"width")||"100%",a=l.height||fx.getStyle(f,"height")||f.offsetHeight,u=l.min_height||100,(s=/^[0-9\.]+(|px)$/i).test(""+i)&&(i=Math.
 max(parseInt(i,10),100)),s.test(""+a)&&(a=Math.max(parseInt(a,10),u)),c=o.theme.renderUI({targetNode:f,width:i,height:a,deltaWidth:l.delta_width,deltaHeight:l.delta_height}),l.content_editable||(a=(c.iframeHeight||a)+("number"==typeof a?c.deltaHeight||0:""))<u&&(a=u),c.height=a,c):O(d.theme)?(r=(t=e).getElement(),(n=t.settings.theme(t,r)).editorContainer.nodeType&&(n.editorContainer.id=n.editorContainer.id||t.id+"_parent"),n.iframeContainer&&n.iframeContainer.nodeType&&(n.iframeContainer.id=n.iframeContainer.id||t.id+"_iframecontainer"),n.height=n.iframeHeight?n.iframeHeight:r.offsetHeight,n):px(e)},vx=function(t){var e,n,r,o,i,a,u=t.settings,s=t.getElement();return t.rtl=u.rtl_ui||t.editorManager.i18n.rtl,t.editorManager.i18n.setCode(u.language),u.aria_label=u.aria_label||fx.getAttrib(s,"aria-label",t.getLang("aria.rich_text_area")),t.fire("ScriptsLoaded"),o=(n
 =t).settings.theme,k(o)?(n.settings.theme=mx(o),r=jp.get(o),n.theme=new r(n,jp.urls[o]),n.theme.init&&n.theme.init(n,jp.urls[o]||n.documentBaseUrl.replace(/\/$/,""),n.$)):n.theme={},i=t,a=[],Yt.each(i.settings.plugins.split(/[ ,]/),function(e){dx(i,a,mx(e))}),e=hx(t),t.editorContainer=e.editorContainer?e.editorContainer:null,u.content_css&&Yt.each(Yt.explode(u.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),u.content_editable?ux(t):lx(t,e)},bx=hi.DOM,yx=function(e){return"-"===e.charAt(0)},Cx=function(i,a){var u=xi.ScriptLoader;!function(e,t,n,r){var o=t.settings,i=o.theme;if(k(i)){if(!yx(i)&&!jp.urls.hasOwnProperty(i)){var a=o.theme_url;a?jp.load(i,t.documentBaseURI.toAbsolute(a)):jp.load(i,"themes/"+i+"/theme"+n+".js")}e.loadQueue(function(){jp.waitFor(i,r)})}else r()}(u,i,a,function(){var e,t,n,r,o;e=u,(n=(t=i).settings).language&&"en"!==n.language&&!n
 .language_url&&(n.language_url=t.editorManager.baseURL+"/langs/"+n.language+".js"),n.language_url&&!t.editorManager.i18n.data[n.language]&&e.add(n.language_url),r=i.settings,o=a,Yt.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),Yt.each(r.external_plugins,function(e,t){Hp.load(t,e),r.plugins+=" "+t}),Yt.each(r.plugins.split(/[ ,]/),function(e){if((e=Yt.trim(e))&&!Hp.urls[e])if(yx(e)){e=e.substr(1,e.length);var t=Hp.dependencies(e);Yt.each(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=Hp.createUrl(t,e),Hp.load(e.resource,e)})}else Hp.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),u.loadQueue(function(){i.removed||vx(i)},i,function(e){Up(i,e[0]),i.removed||vx(i)})})},xx=function(t){var e=t.settings,n=t.id,r=function(){bx.unbind(window,"ready",r),t.render()};if(je.Event.domLoaded){if(
 t.getElement()&&Re.contentEditable){e.inline?t.inline=!0:(t.orgVisibility=t.getElement().style.visibility,t.getElement().style.visibility="hidden");var o=t.getElement().form||bx.getParent(n,"form");o&&(t.formElement=o,e.hidden_input&&!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&(bx.insertAfter(bx.create("input",{type:"hidden",name:n}),n),t.hasHiddenInput=!0),t.formEventDelegate=function(e){t.fire(e.type,e)},bx.bind(o,"submit reset",t.formEventDelegate),t.on("reset",function(){t.setContent(t.startContent,{format:"raw"})}),!e.submit_patch||o.submit.nodeType||o.submit.length||o._mceOldSubmit||(o._mceOldSubmit=o.submit,o.submit=function(){return t.editorManager.triggerSave(),t.setDirty(!1),o._mceOldSubmit(o)})),t.windowManager=Pp(t),t.notificationManager=Op(t),"xml"===e.encoding&&t.on("GetContent",function(e){e.save&&(e.content=bx.encode(e.conten
 t))}),e.add_form_submit_trigger&&t.on("submit",function(){t.initialized&&t.save()}),e.add_unload_trigger&&(t._beforeUnload=function(){!t.initialized||t.destroyed||t.isHidden()||t.save({format:"raw",no_events:!0,set_dirty:!1})},t.editorManager.on("BeforeUnload",t._beforeUnload)),t.editorManager.add(t),Cx(t,t.suffix)}}else bx.bind(window,"ready",r)},wx=function(e,t,n){var r=e.sidebars?e.sidebars:[];r.push({name:t,settings:n}),e.sidebars=r},Nx=Yt.each,Ex=Yt.trim,Sx="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),Tx={ftp:21,http:80,https:443,mailto:25},kx=function(r,e){var t,n,o=this;if(r=Ex(r),t=(e=o.settings=e||{}).base_uri,/^([\w\-]+):([^\/]{2})/i.test(r)||/^\s*#/.test(r))o.source=r;else{var i=0===r.indexOf("//");0!==r.indexOf("/")||i||(r=(t&&t.protocol||"http")+"://mce_host"+r),/^[\w\-]*:
 ?\/\//.test(r)||(n=e.base_uri?e.base_uri.path:new kx(document.location.href).directory,""==e.base_uri.protocol?r="//mce_host"+o.toAbsPath(n,r):(r=/([^#?]*)([#?]?.*)/.exec(r),r=(t&&t.protocol||"http")+"://mce_host"+o.toAbsPath(n,r[1])+r[2])),r=r.replace(/@@/g,"(mce_at)"),r=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(r),Nx(Sx,function(e,t){var n=r[t];n&&(n=n.replace(/\(mce_at\)/g,"@@")),o[e]=n}),t&&(o.protocol||(o.protocol=t.protocol),o.userInfo||(o.userInfo=t.userInfo),o.port||"mce_host"!==o.host||(o.port=t.port),o.host&&"mce_host"!==o.host||(o.host=t.host),o.source=""),i&&(o.protocol="")}};kx.prototype={setPath:function(e){e=/^(.*?)\/?(\w+)?$/.exec(e),this.path=e[0],this.directory=e[1],this.f
 ile=e[2],this.source="",this.getURI()},toRelative:function(e){var t;if("./"===e)return e;if("mce_host"!==(e=new kx(e,{base_uri:this})).host&&this.host!==e.host&&e.host||this.port!==e.port||this.protocol!==e.protocol&&""!==e.protocol)return e.getURI();var n=this.getURI(),r=e.getURI();return n===r||"/"===n.charAt(n.length-1)&&n.substr(0,n.length-1)===r?n:(t=this.toRelPath(this.path,e.path),e.query&&(t+="?"+e.query),e.anchor&&(t+="#"+e.anchor),t)},toAbsolute:function(e,t){return(e=new kx(e,{base_uri:this})).getURI(t&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=Tx[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r,o,i=0,a="";if(e=(e=e.substring(0,e.lastIndexOf("/"))).split("/"),n=t.
 split("/"),e.length>=n.length)for(r=0,o=e.length;r<o;r++)if(r>=n.length||e[r]!==n[r]){i=r+1;break}if(e.length<n.length)for(r=0,o=n.length;r<o;r++)if(r>=e.length||e[r]!==n[r]){i=r+1;break}if(1===i)return t;for(r=0,o=e.length-(i-1);r<o;r++)a+="../";for(r=i-1,o=n.length;r<o;r++)a+=r!==i-1?"/"+n[r]:n[r];return a},toAbsPath:function(e,t){var n,r,o,i=0,a=[];for(r=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),Nx(e,function(e){e&&a.push(e)}),e=a,n=t.length-1,a=[];0<=n;n--)0!==t[n].length&&"."!==t[n]&&(".."!==t[n]?0<i?i--:a.push(t[n]):i++);return 0!==(o=(n=e.length-i)<=0?a.reverse().join("/"):e.slice(0,n).join("/")+"/"+a.reverse().join("/")).indexOf("/")&&(o="/"+o),r&&o.lastIndexOf("/")!==o.length-1&&(o+=r),o},getURI:function(e){var t,n=this;return n
 .source&&!e||(t="",e||(n.protocol?t+=n.protocol+"://":t+="//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},kx.parseDataUri=function(e){var t,n;return e=decodeURIComponent(e).split(","),(n=/data:([^;]+)/.exec(e[0]))&&(t=n[1]),{type:t,data:e[1]}},kx.getDocumentBaseUrl=function(e){var t;return t=0!==e.protocol.indexOf("http")&&"file:"!==e.protocol?e.href:e.protocol+"//"+e.host+e.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),t};var Ax=function(e,t,n){var r,o,i,a,u;if(t.format=t.format?t.format:"html",t.get=!0,t.getInner=!0,t.no_events||e.fire("Befor
 eGetContent",t),"raw"===t.format)r=Yt.trim(rv.trimExternal(e.serializer,n.innerHTML));else if("text"===t.format)r=Ta(n.innerText||n.textContent);else{if("tree"===t.format)return e.serializer.serialize(n,t);i=(o=e).serializer.serialize(n,t),a=rc(o),u=new RegExp("^(<"+a+"[^>]*>(&nbsp;|&#160;|\\s|\xa0|<br \\/>|)<\\/"+a+">[\r\n]*|<br \\/>[\r\n]*)$"),r=i.replace(u,"")}return"text"===t.format||xo(er.fromDom(n))?t.content=r:t.content=Yt.trim(r),t.no_events||e.fire("GetContent",t),t.content},_x=function(e,t){t(e),e.firstChild&&_x(e.firstChild,t),e.next&&_x(e.next,t)},Rx=function(e,t,n){var r=function(e,n,t){var r={},o={},i=[];for(var a in t.firstChild&&_x(t.firstChild,function(t){F(e,function(e){e.name===t.name&&(r[e.name]?r[e.name].nodes.push(t):r[e.name]={filter:e,nodes:[t]})}),F(n,function(e){"string"==typeof t.attr(e.
 name)&&(o[e.name]?o[e.name].nodes.push(t):o[e.name]={filter:e,nodes:[t]})})}),r)r.hasOwnProperty(a)&&i.push(r[a]);for(var a in o)o.hasOwnProperty(a)&&i.push(o[a]);return i}(e,t,n);F(r,function(t){F(t.filter.callbacks,function(e){e(t.nodes,t.filter.name,{})})})},Dx=function(e){return e instanceof Yb},Bx=function(e,t){var r;e.dom.setHTML(e.getBody(),t),Ep(r=e)&&al.firstPositionIn(r.getBody()).each(function(e){var t=e.getNode(),n=Bo.isTable(t)?al.firstPositionIn(t).getOr(e):e;r.selection.setRng(n.toRange())})},Ox=function(u,s,c){return void 0===c&&(c={}),c.format=c.format?c.format:"html",c.set=!0,c.content=Dx(s)?"":s,Dx(s)||c.no_events||(u.fire("BeforeSetContent",c),s=c.content),A.from(u.getBody()).fold(H(s),function(e){return Dx(s)?function(e,t,n,r){Rx(e.parser.getNodeFilters(),e.parser.getAttributeFilters(),n);var o=of({validate:e.validate},e.schema).serialize(n);return r.content=xo(er.fromDom(t))?o:Yt.trim(o),Bx(e
 ,r.content),r.no_events||e.fire("SetContent",r),n}(u,e,s,c):(t=u,n=e,o=c,0===(r=s).length||/^\s+$/.test(r)?(a='<br data-mce-bogus="1">',"TABLE"===n.nodeName?r="<tr><td>"+a+"</td></tr>":/^(UL|OL)$/.test(n.nodeName)&&(r="<li>"+a+"</li>"),(i=rc(t))&&t.schema.isValidChild(n.nodeName.toLowerCase(),i.toLowerCase())?(r=a,r=t.dom.createHTML(i,t.settings.forced_root_block_attrs,r)):r||(r='<br data-mce-bogus="1">'),Bx(t,r),t.fire("SetContent",o)):("raw"!==o.format&&(r=of({validate:t.validate},t.schema).serialize(t.parser.parse(r,{isRootContent:!0,insert:!0}))),o.content=xo(er.fromDom(n))?r:Yt.trim(r),Bx(t,o.content),o.no_events||t.fire("SetContent",o)),o.content);var t,n,r,o,i,a})},Px=hi.DOM,Lx=function(e){return A.from(e).each(function(e){return e.destroy()})},Ix=function(e){if(!e.removed){var t=e._selectionOverr
 ides,n=e.editorUpload,r=e.getBody(),o=e.getElement();r&&e.save(),e.removed=!0,e.unbindAllNativeEvents(),e.hasHiddenInput&&o&&Px.remove(o.nextSibling),!e.inline&&r&&(i=e,Px.setStyle(i.id,"display",i.orgDisplay)),Gg(e),e.editorManager.remove(e),Px.remove(e.getContainer()),Lx(t),Lx(n),e.destroy()}var i},Mx=function(e,t){var n,r,o,i=e.selection,a=e.dom;e.destroyed||(t||e.removed?(t||(e.editorManager.off("beforeunload",e._beforeUnload),e.theme&&e.theme.destroy&&e.theme.destroy(),Lx(i),Lx(a)),(r=(n=e).formElement)&&(r._mceOldSubmit&&(r.submit=r._mceOldSubmit,r._mceOldSubmit=null),Px.unbind(r,"submit reset",n.formEventDelegate)),(o=e).contentAreaContainer=o.formElement=o.container=o.editorContainer=null,o.bodyElement=o.contentDocument=o.contentWindow=null,o.iframeElement=o.targetElm=null,o.selection&&(o.selection=o.selection.win=o.selection.dom=o.selection.dom.doc=null),e.destroyed
 =!0):e.remove())},Fx=hi.DOM,Ux=Yt.extend,zx=Yt.each,Vx=Yt.resolve,qx=Re.ie,Hx=function(e,t,n){var r,o,i,a,u,s,c,l=this,f=l.documentBaseUrl=n.documentBaseURL,d=n.baseURI;r=l,o=e,i=f,a=n.defaultSettings,u=t,c={id:o,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:i,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,
 summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:(s=r).convertURL,url_converter_scope:s,ie7_compat:!0},t=yf(df,c,a,u),l.settings=t,Ei.language=t.language||"en",Ei.languageLoad=t.language_load,Ei.baseURL=n.baseURL,l.id=e,l.setDirty(!1),l.plugins={},l.documentBaseURI=new kx(t.document_base_url,{base_uri:d}),l.baseURI=d,l.contentCSS=[],l.contentStyles=[],l.shortcuts=new mp(l),l.loadedCSS={},l.editorCommands=new qg(l),l.suffix=n.suffix,l.editorManager=n,l.inline=t.inline,l.buttons={},l.menuItems={},t.cache_suffix&&(Re.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),!1===t.override_viewport&&(Re.overrideViewPort=!1),n.fire("SetupEditor",{editor:
 l}),l.execCallback("setup",l),l.$=pn.overrideDefaults(function(){return{context:l.inline?l.getBody():l.getDoc(),element:l.getBody()}})};Ux(Hx.prototype={render:function(){xx(this)},focus:function(e){Np(this,e)},hasFocus:function(){return Ep(this)},execCallback:function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r,o=this.settings[e];if(o)return this.callbackLookup&&(r=this.callbackLookup[e])&&(o=r.func,r=r.scope),"string"==typeof o&&(r=(r=o.replace(/\.\w+$/,""))?Vx(r):0,o=Vx(o),this.callbackLookup=this.callbackLookup||{},this.callbackLookup[e]={func:o,scope:r}),o.apply(r||this,Array.prototype.slice.call(arguments,1))},translate:function(e){if(e&&Yt.is(e,"string")){var n=this.settings.language||"en",r=this.editorManager.i18n;e=r.data[n+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,t){return r.data[n+"."+t]||"{#"+t+"}"})}return this.edito
 rManager.translate(e)},getLang:function(e,t){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(t!==undefined?t:"{#"+e+"}")},getParam:function(e,t,n){return wf(this,e,t,n)},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.stateSelector&&"undefined"==typeof t.active&&(t.active=!1),t.text||t.icon||(t.icon=e),n.buttons=n.buttons,t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addSidebar:function(e,t){return wx(this,e,t)},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems,n.menuItems[e]=t},addContextToolbar:function(e,t){var n,r=this;r.contextToolbars=r.contextToolbars||[],"string"==typeof e&&(n=e,e=function(e){return r.dom.is(e,n)}),r.contextToolbars.push({id:ah.uuid("mcet"),predicate:e,ite
 ms:t})},addCommand:function(e,t,n){this.editorCommands.addCommand(e,t,n)},addQueryStateHandler:function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},addQueryValueHandler:function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},queryCommandState:function(e){return this.editorCommands.queryCommandState(e)},queryCommandValue:function(e){return this.editorCommands.queryCommandValue(e)},queryCommandSupported:function(e){return this.editorCommands.queryCommandSupported(e)},show:function(){this.hidden&&(this.hidden=!1,this.inline?this.getBody().contentEditable=!0:(Fx.show(this.getContainer()),Fx.hide(this.id)),this.load(),this.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(qx&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1
 ,e===e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(Fx.hide(e.getContainer()),Fx.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var t,n=this.getElement();return this.removed?"":n?((e=e||{}).load=!0,t=this.setContent(n.value!==undefined?n.value:n.innerHTML,e),e.element=n,e.no_events||this.fire("LoadContent",e),e.element=n=null,t):void 0},save:function(e){var t,n,r=this,o=r.getElement();if(o&&r.initialized&&!r.removed)return(e=e||{}).save=!0,e.element=o,e.content=r.getContent(e),e.no_events||r.fire("SaveContent",e),"raw"===e.format&&r.fire("RawSaveContent",e),t=e.content,/TEXTAREA|INPUT/i.test(o.nodeName)?o.value=t:(o.innerHTML=t,(n=Fx.getParent(r.id,"form"))&&zx(n.elements,function
 (e){if(e.name===r.id)return e.value=t,!1})),e.element=o=null,!1!==e.set_dirty&&r.setDirty(!1),t},setContent:function(e,t){return Ox(this,e,t)},getContent:function(e){return t=this,void 0===(n=e)&&(n={}),A.from(t.getBody()).fold(H("tree"===n.format?new Yb("body",11):""),function(e){return Ax(t,n,e)});var t,n},insertContent:function(e,t){t&&(e=Ux({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},setDirty:function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!==t&&this.fire("dirty")},setMode:function(e){var t,n;(n=e)!==np(t=this)&&(t.initialized?tp(t,"readonly"===n):t.on("init",function(){tp(t,"readonly"===n)}),Jg(t,n))},getContainer:function(){return this.container||(this.container=Fx.get(this.editorContainer||this.id+"_parent")),this.container},getContentAreaContainer:function(){return this.co
 ntentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=Fx.get(this.id)),this.targetElm},getWin:function(){var e;return this.contentWindow||(e=this.iframeElement)&&(this.contentWindow=e.contentWindow),this.contentWindow},getDoc:function(){var e;return this.contentDocument||(e=this.getWin())&&(this.contentDocument=e.document),this.contentDocument},getBody:function(){var e=this.getDoc();return this.bodyElement||(e?e.body:null)},convertURL:function(e,t,n){var r=this.settings;return r.urlconverter_callback?this.execCallback("urlconverter_callback",e,n,!0,t):!r.convert_urls||n&&"LINK"===n.nodeName||0===e.indexOf("file:")||0===e.length?e:r.relative_urls?this.documentBaseURI.toRelative(e):e=this.documentBaseURI.toAbsolute(e,r.remove_script_host)},addVisual:function(e){var n,r=this,o=r.settings,i=r.dom;e=e||r.getBody(),r.hasVisual===undefined&&(r.hasVisual=o.visual),zx(i.select("table,a",e),func
 tion(e){var t;switch(e.nodeName){case"TABLE":return n=o.visual_table_class||"mce-item-table",void((t=i.getAttrib(e,"border"))&&"0"!==t||!r.hasVisual?i.removeClass(e,n):i.addClass(e,n));case"A":return void(i.getAttrib(e,"href")||(t=i.getAttrib(e,"name")||e.id,n=o.visual_anchor_class||"mce-item-anchor",t&&r.hasVisual?i.addClass(e,n):i.removeClass(e,n)))}}),r.fire("VisualAid",{element:e,hasVisual:r.hasVisual})},remove:function(){Ix(this)},destroy:function(e){Mx(this,e)},uploadImages:function(e){return this.editorUpload.uploadImages(e)},_scanForImages:function(){return this.editorUpload.scanForImages()}},sp);var jx,$x,Wx,Kx={isEditorUIElement:function(e){return-1!==e.className.toString().indexOf("mce-")}},Xx=function(n,e){var t,r;Qn.detect().browser.isIE()?(r=n).on("focusout",function(){Pg(r)}):(t=e,n.on("mouseup touchend",function(e){t.throttle()})),n.
 on("keyup nodechange",function(e){var t;"nodechange"===(t=e).type&&t.selectionChange||Pg(n)})},Yx=function(e){var t,n,r,o=Bi(function(){Pg(e)},0);e.inline&&(t=e,n=o,r=function(){n.throttle()},hi.DOM.bind(document,"mouseup",r),t.on("remove",function(){hi.DOM.unbind(document,"mouseup",r)})),e.on("init",function(){Xx(e,o)}),e.on("remove",function(){o.cancel()})},Gx=hi.DOM,Jx=function(e){return Kx.isEditorUIElement(e)},Qx=function(t,e){var n=t?t.settings.custom_ui_selector:"";return null!==Gx.getParent(e,function(e){return Jx(e)||!!n&&t.dom.is(e,n)})},Zx=function(r,e){var t=e.editor;Yx(t),t.on("focusin",function(){var e=r.focusedEditor;e!==this&&(e&&e.fire("blur",{focusedEditor:this}),r.setActive(this),(r.focusedEditor=this).fire("focus",{blurredEditor:e}),this.focus(!0))}),t.on("focusout",function(){var t=this;Le.setEditorTimeou
 t(t,function(){var e=r.focusedEditor;Qx(t,function(){try{return document.activeElement}catch(e){return document.body}}())||e!==t||(t.fire("blur",{focusedEditor:null}),r.focusedEditor=null)})}),jx||(jx=function(e){var t,n=r.activeEditor;t=e.target,n&&t.ownerDocument===document&&(t===document.body||Qx(n,t)||r.focusedEditor!==n||(n.fire("blur",{focusedEditor:null}),r.focusedEditor=null))},Gx.bind(document,"focusin",jx))},ew=function(e,t){e.focusedEditor===t.editor&&(e.focusedEditor=null),e.activeEditor||(Gx.unbind(document,"focusin",jx),jx=null)},tw=function(e){e.on("AddEditor",b(Zx,e)),e.on("RemoveEditor",b(ew,e))},nw={},rw="en",ow={setCode:function(e){e&&(rw=e,this.rtl=!!this.data[e]&&"rtl"===this.data[e]._dir)},getCode:function(){return rw},rtl:!1,add:function(e,t){var n=nw[e];for(var r in n||(nw[e]=n={}),t)n[r]=t[r];this.setCode(e)},translate:function(e){var t=nw[
 rw]||{},n=function(e){return Yt.is(e,"function")?Object.prototype.toString.call(e):r(e)?"":""+e},r=function(e){return""===e||null===e||Yt.is(e,"undefined")},o=function(e){return e=n(e),Yt.hasOwn(t,e)?n(t[e]):e};if(r(e))return"";if(Yt.is(e,"object")&&Yt.hasOwn(e,"raw"))return n(e.raw);if(Yt.is(e,"array")){var i=e.slice(1);e=o(e[0]).replace(/\{([0-9]+)\}/g,function(e,t){return Yt.hasOwn(i,t)?n(i[t]):e})}return o(e).replace(/{context:\w+}$/,"")},data:nw},iw=hi.DOM,aw=Yt.explode,uw=Yt.each,sw=Yt.extend,cw=0,lw=!1,fw=[],dw=[],mw=function(t){uw(Wx.get(),function(e){"scroll"===t.type?e.fire("ScrollWindow",t):e.fire("ResizeWindow",t)})},gw=function(e){e!==lw&&(e?pn(window).on("resize scroll",mw):pn(window).off("resize scroll",mw),lw=e)},pw=function(t){var e=dw;delete fw[t.id];for(var n=0;n<fw.length;n++)if(fw[n]===t){fw.spli
 ce(n,1);break}return dw=U(dw,function(e){return t!==e}),Wx.activeEditor===t&&(Wx.activeEditor=0<dw.length?dw[0]:null),Wx.focusedEditor===t&&(Wx.focusedEditor=null),e.length!==dw.length};sw(Wx={defaultSettings:{},$:pn,majorVersion:"4",minorVersion:"8.0",releaseDate:"2018-06-27",editors:fw,i18n:ow,activeEditor:null,settings:{},setup:function(){var e,t,n,r,o="";if(t=kx.getDocumentBaseUrl(document.location),/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),n=window.tinymce||window.tinyMCEPreInit)e=n.base||n.baseURL,o=n.suffix;else{for(var i=document.getElementsByTagName("script"),a=0;a<i.length;a++){var u=(r=i[a].src).substring(r.lastIndexOf("/"));if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(r)){-1!==u.indexOf(".min")&&(o=".min"),e=r.substring(0,r.lastIndexOf(&quot
 ;/"));break}}!e&&document.currentScript&&(-1!==(r=document.currentScript.src).indexOf(".min")&&(o=".min"),e=r.substring(0,r.lastIndexOf("/")))}this.baseURL=new kx(t).toAbsolute(e),this.documentBaseURL=t,this.baseURI=new kx(this.baseURL),this.suffix=o,tw(this)},overrideDefaults:function(e){var t,n;(t=e.base_url)&&(this.baseURL=new kx(this.documentBaseURL).toAbsolute(t.replace(/\/+$/,"")),this.baseURI=new kx(this.baseURL)),n=e.suffix,e.suffix&&(this.suffix=n);var r=(this.defaultSettings=e).plugin_base_urls;for(var o in r)Ei.PluginManager.urls[o]=r[o]},init:function(r){var n,u,s=this;u=Yt.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var c=function(e){var t=e.id;return t||(t=(t=e.name)&&!iw.get(t)?e.name:iw.uniqueId()
 ,e.setAttribute("id",t)),t},l=function(e,t){return t.constructor===RegExp?t.test(e.className):iw.hasClass(e,t)},f=function(e){n=e},e=function(){var o,i=0,a=[],n=function(e,t,n){var r=new Hx(e,t,s);a.push(r),r.on("init",function(){++i===o.length&&f(a)}),r.targetElm=r.targetElm||n,r.render()};iw.unbind(window,"ready",e),function(e){var t=r[e];t&&t.apply(s,Array.prototype.slice.call(arguments,2))}("onpageload"),o=pn.unique(function(t){var e,n=[];if(Re.ie&&Re.ie<11)return qp("TinyMCE does not support the browser you are using. For a list of supported browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/"),[];if(t.types)return uw(t.types,function(e){n=n.concat(iw.select(e.selector))}),n;if(t.selector)return iw.select(t.selector);if(t.target)return[t.target];switch(t.mode){case"exact":0<(e=t.elements||"").length&&uw(aw(e),function(t){var e;(e=iw.get(t))?
 n.push(e):uw(document.forms,function(e){uw(e.elements,function(e){e.name===t&&(t="mce_editor_"+cw++,iw.setAttrib(e,"id",t),n.push(e))})})});break;case"textareas":case"specific_textareas":uw(iw.select("textarea"),function(e){t.editor_deselector&&l(e,t.editor_deselector)||t.editor_selector&&!l(e,t.editor_selector)||n.push(e)})}return n}(r)),r.types?uw(r.types,function(t){Yt.each(o,function(e){return!iw.is(e,t.selector)||(n(c(e),sw({},r,t),e),!1)})}):(Yt.each(o,function(e){var t;(t=s.get(e.id))&&t.initialized&&!(t.getContainer()||t.getBody()).parentNode&&(pw(t),t.unbindAllNativeEvents(),t.destroy(!0),t.removed=!0,t=null)}),0===(o=Yt.grep(o,function(e){return!s.get(e.id)})).length?f([]):uw(o,function(e){var t;t=e,r.inline&&t.tagName.toLowerCase()in u?qp("Could not initialize inline editor on invalid inline target element",e):n(c(e),r,e)}))};return s.settings=r,iw.bind(wind
 ow,"ready",e),new De(function(t){n?t(n):f=function(e){t(e)}})},get:function(t){return 0===arguments.length?dw.slice(0):k(t)?V(dw,function(e){return e.id===t}).getOr(null):P(t)&&dw[t]?dw[t]:null},add:function(e){var t=this;return fw[e.id]===e||(null===t.get(e.id)&&("length"!==e.id&&(fw[e.id]=e),fw.push(e),dw.push(e)),gw(!0),t.activeEditor=e,t.fire("AddEditor",{editor:e}),$x||($x=function(){t.fire("BeforeUnload")},iw.bind(window,"beforeunload",$x))),e},createEditor:function(e,t){return this.add(new Hx(e,t,this))},remove:function(e){var t,n,r=this;if(e){if(!k(e))return n=e,D(r.get(n.id))?null:(pw(n)&&r.fire("RemoveEditor",{editor:n}),0===dw.length&&iw.unbind(window,"beforeunload",$x),n.remove(),gw(0<dw.length),n);uw(iw.select(e),function(e){(n=r.get(e.id))&&r.remove(n)})}else for(t=dw.length-1;0<=t;t--)r.remove(dw[t])},execCommand:function(e,t,n){var r=this.get(n)
 ;switch(e){case"mceAddEditor":return this.get(n)||new Hx(n,this.settings,this).render(),!0;case"mceRemoveEditor":return r&&r.remove(),!0;case"mceToggleEditor":return r?r.isHidden()?r.show():r.hide():this.execCommand("mceAddEditor",0,n),!0}return!!this.activeEditor&&this.activeEditor.execCommand(e,t,n)},triggerSave:function(){uw(dw,function(e){e.save()})},addI18n:function(e,t){ow.add(e,t)},translate:function(e){return ow.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!==e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},Kg),Wx.setup();var hw,vw=Wx;function bw(n){return{walk:function(e,t){return Pl(n,e,t)},split:Lv,normalize:function(t){return ag(n,t).fold(H(!1),function(e){return t.setStart(e.startContainer,e.startOffset),t.setEnd(e.endContainer,e.endOffset),!0})}}}(hw=bw||(bw={})).compareRanges=Zm,hw.getCaret
 RangeFromPoint=by,hw.getSelectedNode=nu,hw.getNode=ru;var yw,Cw,xw=bw,ww=Math.min,Nw=Math.max,Ew=Math.round,Sw=function(e,t,n){var r,o,i,a,u,s;return r=t.x,o=t.y,i=e.w,a=e.h,u=t.w,s=t.h,"b"===(n=(n||"").split(""))[0]&&(o+=s),"r"===n[1]&&(r+=u),"c"===n[0]&&(o+=Ew(s/2)),"c"===n[1]&&(r+=Ew(u/2)),"b"===n[3]&&(o-=a),"r"===n[4]&&(r-=i),"c"===n[3]&&(o-=Ew(a/2)),"c"===n[4]&&(r-=Ew(i/2)),Tw(r,o,i,a)},Tw=function(e,t,n,r){return{x:e,y:t,w:n,h:r}},kw={inflate:function(e,t,n){return Tw(e.x-t,e.y-n,e.w+2*t,e.h+2*n)},relativePosition:Sw,findBestRelativePosition:function(e,t,n,r){var o,i;for(i=0;i<r.length;i++)if((o=Sw(e,t,r[i])).x>=n.x&&o.x+o.w<=n.w+n.x&&o.y>=n.y&&o.y+o.h<=n.h+n.y)return r[i];return null},intersect:function(e,t){var n,r,o,i;return n=Nw(e.x,t.x),r=Nw(e.y,t.y),o=ww(e.x+e.w,t.x+t.w),
 i=ww(e.y+e.h,t.y+t.h),o-n<0||i-r<0?null:Tw(n,r,o-n,i-r)},clamp:function(e,t,n){var r,o,i,a,u,s,c,l,f,d;return u=e.x,s=e.y,c=e.x+e.w,l=e.y+e.h,f=t.x+t.w,d=t.y+t.h,r=Nw(0,t.x-u),o=Nw(0,t.y-s),i=Nw(0,c-f),a=Nw(0,l-d),u+=r,s+=o,n&&(c+=r,l+=o,u-=i,s-=a),Tw(u,s,(c-=i)-u,(l-=a)-s)},create:Tw,fromClientRect:function(e){return Tw(e.left,e.top,e.width,e.height)}},Aw={},_w={add:function(e,t){Aw[e.toLowerCase()]=t},has:function(e){return!!Aw[e.toLowerCase()]},get:function(e){var t=e.toLowerCase(),n=Aw.hasOwnProperty(t)?Aw[t]:null;if(null===n)throw new Error("Could not find module for type: "+e);return n},create:function(e,t){var n;if("string"==typeof e?(t=t||{}).type=e:e=(t=e).type,e=e.toLowerCase(),!(n=Aw[e]))throw new Error("Could not find control by type: "+e);return(n=new n(t)).type=e,n}},Rw=Yt.each,Dw=Yt.extend,Bw=function(){};Bw.extend=yw=function(n){var e,t,r,o=this.prototype,i=function(){var e,t,n;if(!Cw&&(this.init&&this.init.
 apply(this,arguments),t=this.Mixins))for(e=t.length;e--;)(n=t[e]).init&&n.init.apply(this,arguments)},a=function(){return this},u=function(n,r){return function(){var e,t=this._super;return this._super=o[n],e=r.apply(this,arguments),this._super=t,e}};for(t in Cw=!0,e=new this,Cw=!1,n.Mixins&&(Rw(n.Mixins,function(e){for(var t in e)"init"!==t&&(n[t]=e[t])}),o.Mixins&&(n.Mixins=o.Mixins.concat(n.Mixins))),n.Methods&&Rw(n.Methods.split(","),function(e){n[e]=a}),n.Properties&&Rw(n.Properties.split(","),function(e){var t="_"+e;n[e]=function(e){return e!==undefined?(this[t]=e,this):this[t]}}),n.Statics&&Rw(n.Statics,function(e,t){i[t]=e}),n.Defaults&&o.Defaults&&(n.Defaults=Dw({},o.Defaults,n.Defaults)),n)"function"==typeof(r=n[t])&&o[t]?e[t]=u(t,r):e[t]=r;return i.prototype=e,(i.constructor=i).extend=yw,i};var Ow=Math.min,Pw=Math.max,Lw=Math.round,Iw=function(e
 ,n){var r,o,t,i;if(n=n||'"',null===e)return"null";if("string"==(t=typeof e))return o="\bb\tt\nn\ff\rr\"\"''\\\\",n+e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=o.indexOf(t))+1?"\\"+o.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e)})+n;if("object"===t){if(e.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(e)){for(r=0,o="[";r<e.length;r++)o+=(0<r?",":"")+Iw(e[r],n);return o+"]"}for(i in o="{",e)e.hasOwnProperty(i)&&(o+="function"!=typeof e[i]?(1<o.length?","+n:n)+i+n+":"+Iw(e[i],n):"");return o+"}"}return""+e},Mw={serialize:Iw,parse:function(e){try{return JSON.parse(e)}catch(t){}}},Fw={callbacks:{},count:0,send:function(t){var n=this,r=hi.DOM
 ,o=t.count!==undefined?t.count:n.count,i="tinymce_jsonp_"+o;n.callbacks[o]=function(e){r.remove(i),delete n.callbacks[o],t.callback(e)},r.add(r.doc.body,"script",{id:i,src:t.url,type:"text/javascript"}),n.count++}},Uw={send:function(e){var t,n=0,r=function(){!e.async||4===t.readyState||1e4<n++?(e.success&&n<1e4&&200===t.status?e.success.call(e.success_scope,""+t.responseText,t,e):e.error&&e.error.call(e.error_scope,1e4<n?"TIMED_OUT":"GENERAL",t,e),t=null):setTimeout(r,10)};if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=!1!==e.async,e.data=e.data||"",Uw.fire("beforeInitialize",{settings:e}),t=new $p){if(t.overrideMimeType&&t.overrideMimeType(e.content_type),t.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(t.withCredentials=!0),e.content_type&&t.set
 RequestHeader("Content-Type",e.content_type),e.requestheaders&&Yt.each(e.requestheaders,function(e){t.setRequestHeader(e.key,e.value)}),t.setRequestHeader("X-Requested-With","XMLHttpRequest"),(t=Uw.fire("beforeSend",{xhr:t,settings:e}).xhr).send(e.data),!e.async)return r();setTimeout(r,10)}}};Yt.extend(Uw,Kg);var zw=Yt.extend,Vw=function(e){this.settings=zw({},e),this.count=0};Vw.sendRPC=function(e){return(new Vw).send(e)},Vw.prototype={send:function(n){var r=n.error,o=n.success;(n=zw(this.settings,n)).success=function(e,t){void 0===(e=Mw.parse(e))&&(e={error:"JSON Parse error."}),e.error?r.call(n.error_scope||n.scope,e.error,t):o.call(n.success_scope||n.scope,e.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=Mw.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",Uw.send(n)}};var qw,Hw=window.localStorage,jw=v
 w,$w={geom:{Rect:kw},util:{Promise:De,Delay:Le,Tools:Yt,VK:Wh,URI:kx,Class:Bw,EventDispatcher:jg,Observable:Kg,I18n:ow,XHR:Uw,JSON:Mw,JSONRequest:Vw,JSONP:Fw,LocalStorage:Hw,Color:function(e){var n={},u=0,s=0,c=0,t=function(e){var t;return"object"==typeof e?"r"in e?(u=e.r,s=e.g,c=e.b):"v"in e&&function(e,t,n){var r,o,i,a;if(e=(parseInt(e,10)||0)%360,t=parseInt(t,10)/100,n=parseInt(n,10)/100,t=Pw(0,Ow(t,1)),n=Pw(0,Ow(n,1)),0!==t){switch(r=e/60,i=(o=n*t)*(1-Math.abs(r%2-1)),a=n-o,Math.floor(r)){case 0:u=o,s=i,c=0;break;case 1:u=i,s=o,c=0;break;case 2:u=0,s=o,c=i;break;case 3:u=0,s=i,c=o;break;case 4:u=i,s=0,c=o;break;case 5:u=o,s=0,c=i;break;default:u=s=c=0}u=Lw(255*(u+a)),s=Lw(255*(s+a)),c=Lw(255*(c+a))}else u=s=c=Lw(255*n)}(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(u=parseInt(t[1],10),s=parseInt(t[2],10),c=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(u=parseInt(t[1],16),s=parse
 Int(t[2],16),c=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(u=parseInt(t[1]+t[1],16),s=parseInt(t[2]+t[2],16),c=parseInt(t[3]+t[3],16)),u=u<0?0:255<u?255:u,s=s<0?0:255<s?255:s,c=c<0?0:255<c?255:c,n};return e&&t(e),n.toRgb=function(){return{r:u,g:s,b:c}},n.toHsv=function(){return e=u,t=s,n=c,o=0,(i=Ow(e/=255,Ow(t/=255,n/=255)))===(a=Pw(e,Pw(t,n)))?{h:0,s:0,v:100*(o=i)}:(r=(a-i)/a,{h:Lw(60*((e===i?3:n===i?1:5)-(e===i?t-n:n===i?e-t:n-e)/((o=a)-i))),s:Lw(100*r),v:Lw(100*o)});var e,t,n,r,o,i,a},n.toHex=function(){var e=function(e){return 1<(e=parseInt(e,10).toString(16)).length?e:"0"+e};return"#"+e(u)+e(s)+e(c)},n.parse=t,n}},dom:{EventUtils:je,Sizzle:Tt,DomQuery:pn,TreeWalker:io,DOMUtils:hi,ScriptLoader:xi,RangeUtils:xw,Serializer:fy,ControlSelection:hy,BookmarkManager:my,Selection:Wy,Event:je.Event},html:{Styles:ii,Entities:Wo,Node:Yb,Schema:ri,SaxParser:tv,DomParser:ay,Writer:rf,Serializer:of},ui:{Factory:_w},Env:
 Re,AddOnManager:Ei,Annotator:Vl,Formatter:Mb,UndoManager:Ev,EditorCommands:qg,WindowManager:Pp,NotificationManager:Op,EditorObservable:sp,Shortcuts:mp,Editor:Hx,FocusManager:Kx,EditorManager:vw,DOM:hi.DOM,ScriptLoader:xi.ScriptLoader,PluginManager:Ei.PluginManager,ThemeManager:Ei.ThemeManager,trim:Yt.trim,isArray:Yt.isArray,is:Yt.is,toArray:Yt.toArray,makeMap:Yt.makeMap,each:Yt.each,map:Yt.map,grep:Yt.grep,inArray:Yt.inArray,extend:Yt.extend,create:Yt.create,walk:Yt.walk,createNS:Yt.createNS,resolve:Yt.resolve,explode:Yt.explode,_addCacheSuffix:Yt._addCacheSuffix,isOpera:Re.opera,isWebKit:Re.webkit,isIE:Re.ie,isGecko:Re.gecko,isMac:Re.mac},Ww=jw=Yt.extend(jw,$w);qw=Ww,window.tinymce=qw,window.tinyMCE=qw,function(e){if("object"==typeof module)try{module.exports=e}catch(t){}}(Ww)}();
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="trunksrcwpincludesversionphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/version.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/version.php 2018-07-15 23:38:14 UTC (rev 43446)
+++ trunk/src/wp-includes/version.php   2018-07-16 08:06:32 UTC (rev 43447)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18,7 +18,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @global string $tinymce_version
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-$tinymce_version = '4711-20180425';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+$tinymce_version = '4800-20180716';
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px">  * Holds the required PHP version
</span></span></pre>
</div>
</div>

</body>
</html>