/* automatically generated by JSCoverage - do not edit */
try {
  if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) {
    // this is a browser window that was opened from another window

    if (! top.opener._$jscoverage) {
      top.opener._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null) {
    // this is a browser window

    try {
      if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) {
        top._$jscoverage = top.opener._$jscoverage;
      }
    }
    catch (e) {}

    if (! top._$jscoverage) {
      top._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null && top._$jscoverage) {
    _$jscoverage = top._$jscoverage;
  }
}
catch (e) {}
if (typeof _$jscoverage !== 'object') {
  _$jscoverage = {};
}
if (! _$jscoverage['plugins/keystrokes.js']) {
  _$jscoverage['plugins/keystrokes.js'] = [];
  _$jscoverage['plugins/keystrokes.js'][4] = 0;
  _$jscoverage['plugins/keystrokes.js'][5] = 0;
  _$jscoverage['plugins/keystrokes.js'][6] = 0;
  _$jscoverage['plugins/keystrokes.js'][7] = 0;
  _$jscoverage['plugins/keystrokes.js'][8] = 0;
  _$jscoverage['plugins/keystrokes.js'][12] = 0;
  _$jscoverage['plugins/keystrokes.js'][21] = 0;
  _$jscoverage['plugins/keystrokes.js'][22] = 0;
  _$jscoverage['plugins/keystrokes.js'][23] = 0;
  _$jscoverage['plugins/keystrokes.js'][25] = 0;
  _$jscoverage['plugins/keystrokes.js'][26] = 0;
  _$jscoverage['plugins/keystrokes.js'][27] = 0;
  _$jscoverage['plugins/keystrokes.js'][29] = 0;
  _$jscoverage['plugins/keystrokes.js'][32] = 0;
  _$jscoverage['plugins/keystrokes.js'][33] = 0;
  _$jscoverage['plugins/keystrokes.js'][34] = 0;
  _$jscoverage['plugins/keystrokes.js'][35] = 0;
  _$jscoverage['plugins/keystrokes.js'][38] = 0;
  _$jscoverage['plugins/keystrokes.js'][39] = 0;
  _$jscoverage['plugins/keystrokes.js'][40] = 0;
  _$jscoverage['plugins/keystrokes.js'][41] = 0;
  _$jscoverage['plugins/keystrokes.js'][42] = 0;
  _$jscoverage['plugins/keystrokes.js'][43] = 0;
  _$jscoverage['plugins/keystrokes.js'][44] = 0;
  _$jscoverage['plugins/keystrokes.js'][45] = 0;
  _$jscoverage['plugins/keystrokes.js'][46] = 0;
  _$jscoverage['plugins/keystrokes.js'][47] = 0;
  _$jscoverage['plugins/keystrokes.js'][54] = 0;
  _$jscoverage['plugins/keystrokes.js'][55] = 0;
  _$jscoverage['plugins/keystrokes.js'][56] = 0;
  _$jscoverage['plugins/keystrokes.js'][57] = 0;
  _$jscoverage['plugins/keystrokes.js'][58] = 0;
  _$jscoverage['plugins/keystrokes.js'][60] = 0;
  _$jscoverage['plugins/keystrokes.js'][62] = 0;
  _$jscoverage['plugins/keystrokes.js'][63] = 0;
  _$jscoverage['plugins/keystrokes.js'][65] = 0;
  _$jscoverage['plugins/keystrokes.js'][66] = 0;
  _$jscoverage['plugins/keystrokes.js'][67] = 0;
  _$jscoverage['plugins/keystrokes.js'][69] = 0;
  _$jscoverage['plugins/keystrokes.js'][70] = 0;
  _$jscoverage['plugins/keystrokes.js'][71] = 0;
  _$jscoverage['plugins/keystrokes.js'][76] = 0;
  _$jscoverage['plugins/keystrokes.js'][77] = 0;
  _$jscoverage['plugins/keystrokes.js'][78] = 0;
  _$jscoverage['plugins/keystrokes.js'][79] = 0;
  _$jscoverage['plugins/keystrokes.js'][80] = 0;
  _$jscoverage['plugins/keystrokes.js'][81] = 0;
  _$jscoverage['plugins/keystrokes.js'][82] = 0;
  _$jscoverage['plugins/keystrokes.js'][83] = 0;
  _$jscoverage['plugins/keystrokes.js'][86] = 0;
  _$jscoverage['plugins/keystrokes.js'][87] = 0;
  _$jscoverage['plugins/keystrokes.js'][88] = 0;
  _$jscoverage['plugins/keystrokes.js'][89] = 0;
  _$jscoverage['plugins/keystrokes.js'][90] = 0;
  _$jscoverage['plugins/keystrokes.js'][91] = 0;
  _$jscoverage['plugins/keystrokes.js'][97] = 0;
  _$jscoverage['plugins/keystrokes.js'][99] = 0;
  _$jscoverage['plugins/keystrokes.js'][105] = 0;
  _$jscoverage['plugins/keystrokes.js'][106] = 0;
  _$jscoverage['plugins/keystrokes.js'][107] = 0;
  _$jscoverage['plugins/keystrokes.js'][109] = 0;
  _$jscoverage['plugins/keystrokes.js'][110] = 0;
  _$jscoverage['plugins/keystrokes.js'][111] = 0;
  _$jscoverage['plugins/keystrokes.js'][112] = 0;
  _$jscoverage['plugins/keystrokes.js'][114] = 0;
  _$jscoverage['plugins/keystrokes.js'][115] = 0;
  _$jscoverage['plugins/keystrokes.js'][116] = 0;
  _$jscoverage['plugins/keystrokes.js'][117] = 0;
  _$jscoverage['plugins/keystrokes.js'][120] = 0;
  _$jscoverage['plugins/keystrokes.js'][121] = 0;
  _$jscoverage['plugins/keystrokes.js'][122] = 0;
  _$jscoverage['plugins/keystrokes.js'][123] = 0;
  _$jscoverage['plugins/keystrokes.js'][124] = 0;
  _$jscoverage['plugins/keystrokes.js'][126] = 0;
  _$jscoverage['plugins/keystrokes.js'][128] = 0;
  _$jscoverage['plugins/keystrokes.js'][131] = 0;
  _$jscoverage['plugins/keystrokes.js'][132] = 0;
  _$jscoverage['plugins/keystrokes.js'][134] = 0;
  _$jscoverage['plugins/keystrokes.js'][135] = 0;
  _$jscoverage['plugins/keystrokes.js'][136] = 0;
  _$jscoverage['plugins/keystrokes.js'][138] = 0;
  _$jscoverage['plugins/keystrokes.js'][141] = 0;
  _$jscoverage['plugins/keystrokes.js'][145] = 0;
  _$jscoverage['plugins/keystrokes.js'][146] = 0;
  _$jscoverage['plugins/keystrokes.js'][147] = 0;
  _$jscoverage['plugins/keystrokes.js'][148] = 0;
  _$jscoverage['plugins/keystrokes.js'][149] = 0;
  _$jscoverage['plugins/keystrokes.js'][150] = 0;
  _$jscoverage['plugins/keystrokes.js'][151] = 0;
  _$jscoverage['plugins/keystrokes.js'][152] = 0;
  _$jscoverage['plugins/keystrokes.js'][153] = 0;
  _$jscoverage['plugins/keystrokes.js'][155] = 0;
  _$jscoverage['plugins/keystrokes.js'][156] = 0;
  _$jscoverage['plugins/keystrokes.js'][157] = 0;
  _$jscoverage['plugins/keystrokes.js'][162] = 0;
  _$jscoverage['plugins/keystrokes.js'][163] = 0;
  _$jscoverage['plugins/keystrokes.js'][165] = 0;
  _$jscoverage['plugins/keystrokes.js'][166] = 0;
  _$jscoverage['plugins/keystrokes.js'][167] = 0;
  _$jscoverage['plugins/keystrokes.js'][169] = 0;
  _$jscoverage['plugins/keystrokes.js'][170] = 0;
  _$jscoverage['plugins/keystrokes.js'][171] = 0;
  _$jscoverage['plugins/keystrokes.js'][173] = 0;
  _$jscoverage['plugins/keystrokes.js'][174] = 0;
  _$jscoverage['plugins/keystrokes.js'][175] = 0;
  _$jscoverage['plugins/keystrokes.js'][176] = 0;
  _$jscoverage['plugins/keystrokes.js'][177] = 0;
  _$jscoverage['plugins/keystrokes.js'][178] = 0;
  _$jscoverage['plugins/keystrokes.js'][179] = 0;
  _$jscoverage['plugins/keystrokes.js'][181] = 0;
  _$jscoverage['plugins/keystrokes.js'][182] = 0;
  _$jscoverage['plugins/keystrokes.js'][183] = 0;
  _$jscoverage['plugins/keystrokes.js'][184] = 0;
  _$jscoverage['plugins/keystrokes.js'][185] = 0;
  _$jscoverage['plugins/keystrokes.js'][191] = 0;
  _$jscoverage['plugins/keystrokes.js'][192] = 0;
  _$jscoverage['plugins/keystrokes.js'][195] = 0;
  _$jscoverage['plugins/keystrokes.js'][201] = 0;
  _$jscoverage['plugins/keystrokes.js'][202] = 0;
  _$jscoverage['plugins/keystrokes.js'][203] = 0;
  _$jscoverage['plugins/keystrokes.js'][204] = 0;
  _$jscoverage['plugins/keystrokes.js'][205] = 0;
  _$jscoverage['plugins/keystrokes.js'][206] = 0;
  _$jscoverage['plugins/keystrokes.js'][208] = 0;
}
_$jscoverage['plugins/keystrokes.js'].source = ["<span class=\"c\">/*</span>","<span class=\"c\"> *   &#22788;&#29702;&#29305;&#27530;&#38190;&#30340;&#20860;&#23481;&#24615;&#38382;&#39064;</span>","<span class=\"c\"> */</span>","UE<span class=\"k\">.</span>plugins<span class=\"k\">[</span><span class=\"s\">'keystrokes'</span><span class=\"k\">]</span> <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","    <span class=\"k\">var</span> collapsed <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","    me<span class=\"k\">.</span>addListener<span class=\"k\">(</span><span class=\"s\">'keydown'</span><span class=\"k\">,</span> <span class=\"k\">function</span><span class=\"k\">(</span>type<span class=\"k\">,</span> evt<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> keyCode <span class=\"k\">=</span> evt<span class=\"k\">.</span>keyCode <span class=\"k\">||</span> evt<span class=\"k\">.</span>which<span class=\"k\">,</span>","            rng <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","","        <span class=\"c\">//&#22788;&#29702;&#20840;&#36873;&#30340;&#24773;&#20917;</span>","        <span class=\"k\">if</span><span class=\"k\">(!</span>rng<span class=\"k\">.</span>collapsed <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!(</span>evt<span class=\"k\">.</span>ctrlKey <span class=\"k\">||</span> evt<span class=\"k\">.</span>shiftKey <span class=\"k\">||</span> evt<span class=\"k\">.</span>altKey <span class=\"k\">||</span> evt<span class=\"k\">.</span>metaKey<span class=\"k\">)</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>keyCode <span class=\"k\">&gt;=</span> <span class=\"s\">65</span> <span class=\"k\">&amp;&amp;</span> keyCode <span class=\"k\">&lt;=</span><span class=\"s\">90</span>","            <span class=\"k\">||</span> keyCode <span class=\"k\">&gt;=</span> <span class=\"s\">48</span> <span class=\"k\">&amp;&amp;</span> keyCode <span class=\"k\">&lt;=</span> <span class=\"s\">57</span> <span class=\"k\">||</span>","            keyCode <span class=\"k\">&gt;=</span> <span class=\"s\">96</span> <span class=\"k\">&amp;&amp;</span> keyCode <span class=\"k\">&lt;=</span> <span class=\"s\">111</span> <span class=\"k\">||</span> <span class=\"k\">{</span>","                    <span class=\"s\">13</span><span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>","                    <span class=\"s\">8</span><span class=\"k\">:</span><span class=\"s\">1</span><span class=\"k\">,</span>","                    <span class=\"s\">46</span><span class=\"k\">:</span><span class=\"s\">1</span>","                <span class=\"k\">}</span><span class=\"k\">[</span>keyCode<span class=\"k\">])</span>","            <span class=\"k\">)</span><span class=\"k\">{</span>","","            <span class=\"k\">var</span> tmpNode <span class=\"k\">=</span> rng<span class=\"k\">.</span>startContainer<span class=\"k\">;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>domUtils<span class=\"k\">.</span>isFillChar<span class=\"k\">(</span>tmpNode<span class=\"k\">))</span><span class=\"k\">{</span>","                rng<span class=\"k\">.</span>setStartBefore<span class=\"k\">(</span>tmpNode<span class=\"k\">)</span>","            <span class=\"k\">}</span>","            tmpNode <span class=\"k\">=</span> rng<span class=\"k\">.</span>endContainer<span class=\"k\">;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>domUtils<span class=\"k\">.</span>isFillChar<span class=\"k\">(</span>tmpNode<span class=\"k\">))</span><span class=\"k\">{</span>","                rng<span class=\"k\">.</span>setEndAfter<span class=\"k\">(</span>tmpNode<span class=\"k\">)</span>","            <span class=\"k\">}</span>","            rng<span class=\"k\">.</span>txtToElmBoundary<span class=\"k\">();</span>","            <span class=\"c\">//&#32467;&#26463;&#36793;&#30028;&#21487;&#33021;&#25918;&#21040;&#20102;br&#30340;&#21069;&#36793;&#65292;&#35201;&#25226;br&#21253;&#21547;&#36827;&#26469;</span>","            <span class=\"c\">// x[xxx]&lt;br/&gt;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>rng<span class=\"k\">.</span>endContainer <span class=\"k\">&amp;&amp;</span> rng<span class=\"k\">.</span>endContainer<span class=\"k\">.</span>nodeType <span class=\"k\">==</span> <span class=\"s\">1</span><span class=\"k\">)</span><span class=\"k\">{</span>","                tmpNode <span class=\"k\">=</span> rng<span class=\"k\">.</span>endContainer<span class=\"k\">.</span>childNodes<span class=\"k\">[</span>rng<span class=\"k\">.</span>endOffset<span class=\"k\">];</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>tmpNode <span class=\"k\">&amp;&amp;</span> domUtils<span class=\"k\">.</span>isBr<span class=\"k\">(</span>tmpNode<span class=\"k\">))</span><span class=\"k\">{</span>","                    rng<span class=\"k\">.</span>setEndAfter<span class=\"k\">(</span>tmpNode<span class=\"k\">);</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>rng<span class=\"k\">.</span>startOffset <span class=\"k\">==</span> <span class=\"s\">0</span><span class=\"k\">)</span><span class=\"k\">{</span>","                tmpNode <span class=\"k\">=</span> rng<span class=\"k\">.</span>startContainer<span class=\"k\">;</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>domUtils<span class=\"k\">.</span>isBoundaryNode<span class=\"k\">(</span>tmpNode<span class=\"k\">,</span><span class=\"s\">'firstChild'</span><span class=\"k\">)</span> <span class=\"k\">)</span><span class=\"k\">{</span>","                    tmpNode <span class=\"k\">=</span> rng<span class=\"k\">.</span>endContainer<span class=\"k\">;</span>","                    <span class=\"k\">if</span><span class=\"k\">(</span>rng<span class=\"k\">.</span>endOffset <span class=\"k\">==</span> <span class=\"k\">(</span>tmpNode<span class=\"k\">.</span>nodeType <span class=\"k\">==</span> <span class=\"s\">3</span> <span class=\"k\">?</span> tmpNode<span class=\"k\">.</span>nodeValue<span class=\"k\">.</span>length <span class=\"k\">:</span> tmpNode<span class=\"k\">.</span>childNodes<span class=\"k\">.</span>length<span class=\"k\">)</span> <span class=\"k\">&amp;&amp;</span> domUtils<span class=\"k\">.</span>isBoundaryNode<span class=\"k\">(</span>tmpNode<span class=\"k\">,</span><span class=\"s\">'lastChild'</span><span class=\"k\">))</span><span class=\"k\">{</span>","                        me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'saveScene'</span><span class=\"k\">);</span>","                        me<span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">'&lt;p&gt;'</span><span class=\"k\">+(</span>browser<span class=\"k\">.</span>ie <span class=\"k\">?</span> <span class=\"s\">''</span> <span class=\"k\">:</span> <span class=\"s\">'&lt;br/&gt;'</span><span class=\"k\">)+</span><span class=\"s\">'&lt;/p&gt;'</span><span class=\"k\">;</span>","                        rng<span class=\"k\">.</span>setStart<span class=\"k\">(</span>me<span class=\"k\">.</span>body<span class=\"k\">.</span>firstChild<span class=\"k\">,</span><span class=\"s\">0</span><span class=\"k\">).</span>setCursor<span class=\"k\">(</span><span class=\"k\">false</span><span class=\"k\">,</span><span class=\"k\">true</span><span class=\"k\">);</span>","                        me<span class=\"k\">.</span>_selectionChange<span class=\"k\">();</span>","                        <span class=\"k\">return</span><span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","","        <span class=\"c\">//&#22788;&#29702;backspace</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>keyCode <span class=\"k\">==</span> <span class=\"s\">8</span><span class=\"k\">)</span> <span class=\"k\">{</span>","            rng <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","            collapsed <span class=\"k\">=</span> rng<span class=\"k\">.</span>collapsed<span class=\"k\">;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'delkeydown'</span><span class=\"k\">,</span>evt<span class=\"k\">))</span><span class=\"k\">{</span>","                <span class=\"k\">return</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">var</span> start<span class=\"k\">,</span>end<span class=\"k\">;</span>","            <span class=\"c\">//&#36991;&#20813;&#25353;&#20004;&#27425;&#21024;&#38500;&#25165;&#33021;&#29983;&#25928;&#30340;&#38382;&#39064;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>rng<span class=\"k\">.</span>collapsed <span class=\"k\">&amp;&amp;</span> rng<span class=\"k\">.</span>inFillChar<span class=\"k\">())</span><span class=\"k\">{</span>","                start <span class=\"k\">=</span> rng<span class=\"k\">.</span>startContainer<span class=\"k\">;</span>","","                <span class=\"k\">if</span><span class=\"k\">(</span>domUtils<span class=\"k\">.</span>isFillChar<span class=\"k\">(</span>start<span class=\"k\">))</span><span class=\"k\">{</span>","                    rng<span class=\"k\">.</span>setStartBefore<span class=\"k\">(</span>start<span class=\"k\">).</span>shrinkBoundary<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">).</span>collapse<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","                    domUtils<span class=\"k\">.</span>remove<span class=\"k\">(</span>start<span class=\"k\">)</span>","                <span class=\"k\">}</span><span class=\"k\">else</span><span class=\"k\">{</span>","                    start<span class=\"k\">.</span>nodeValue <span class=\"k\">=</span> start<span class=\"k\">.</span>nodeValue<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"k\">new</span> RegExp<span class=\"k\">(</span><span class=\"s\">'^'</span> <span class=\"k\">+</span> domUtils<span class=\"k\">.</span>fillChar <span class=\"k\">),</span><span class=\"s\">''</span><span class=\"k\">);</span>","                    rng<span class=\"k\">.</span>startOffset<span class=\"k\">--;</span>","                    rng<span class=\"k\">.</span>collapse<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">).</span>select<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">)</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","","            <span class=\"c\">//&#35299;&#20915;&#36873;&#20013;control&#20803;&#32032;&#19981;&#33021;&#21024;&#38500;&#30340;&#38382;&#39064;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>start <span class=\"k\">=</span> rng<span class=\"k\">.</span>getClosedNode<span class=\"k\">())</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'saveScene'</span><span class=\"k\">);</span>","                rng<span class=\"k\">.</span>setStartBefore<span class=\"k\">(</span>start<span class=\"k\">);</span>","                domUtils<span class=\"k\">.</span>remove<span class=\"k\">(</span>start<span class=\"k\">);</span>","                rng<span class=\"k\">.</span>setCursor<span class=\"k\">();</span>","                me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'saveScene'</span><span class=\"k\">);</span>","                domUtils<span class=\"k\">.</span>preventDefault<span class=\"k\">(</span>evt<span class=\"k\">);</span>","                <span class=\"k\">return</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"c\">//&#38459;&#27490;&#22312;table&#19978;&#30340;&#21024;&#38500;</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>browser<span class=\"k\">.</span>ie<span class=\"k\">)</span> <span class=\"k\">{</span>","                start <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>findParentByTagName<span class=\"k\">(</span>rng<span class=\"k\">.</span>startContainer<span class=\"k\">,</span> <span class=\"s\">'table'</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","                end <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>findParentByTagName<span class=\"k\">(</span>rng<span class=\"k\">.</span>endContainer<span class=\"k\">,</span> <span class=\"s\">'table'</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>start <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>end <span class=\"k\">||</span> <span class=\"k\">!</span>start <span class=\"k\">&amp;&amp;</span> end <span class=\"k\">||</span> start <span class=\"k\">!==</span> end<span class=\"k\">)</span> <span class=\"k\">{</span>","                    evt<span class=\"k\">.</span>preventDefault<span class=\"k\">();</span>","                    <span class=\"k\">return</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","","        <span class=\"k\">}</span>","        <span class=\"c\">//&#22788;&#29702;tab&#38190;&#30340;&#36923;&#36753;</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>keyCode <span class=\"k\">==</span> <span class=\"s\">9</span><span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"c\">//&#19981;&#22788;&#29702;&#20197;&#19979;&#26631;&#31614;</span>","            <span class=\"k\">var</span> excludeTagNameForTabKey <span class=\"k\">=</span> <span class=\"k\">{</span>","                <span class=\"s\">'ol'</span> <span class=\"k\">:</span> <span class=\"s\">1</span><span class=\"k\">,</span>","                <span class=\"s\">'ul'</span> <span class=\"k\">:</span> <span class=\"s\">1</span><span class=\"k\">,</span>","                <span class=\"s\">'table'</span><span class=\"k\">:</span><span class=\"s\">1</span>","            <span class=\"k\">}</span><span class=\"k\">;</span>","            <span class=\"c\">//&#22788;&#29702;&#32452;&#20214;&#37324;&#30340;tab&#25353;&#19979;&#20107;&#20214;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'tabkeydown'</span><span class=\"k\">,</span>evt<span class=\"k\">))</span><span class=\"k\">{</span>","                domUtils<span class=\"k\">.</span>preventDefault<span class=\"k\">(</span>evt<span class=\"k\">);</span>","                <span class=\"k\">return</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">var</span> range <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","            me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'saveScene'</span><span class=\"k\">);</span>","            <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span>txt <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">,</span>tabSize <span class=\"k\">=</span> me<span class=\"k\">.</span>options<span class=\"k\">.</span>tabSize<span class=\"k\">||</span> <span class=\"s\">4</span><span class=\"k\">,</span>tabNode <span class=\"k\">=</span>  me<span class=\"k\">.</span>options<span class=\"k\">.</span>tabNode <span class=\"k\">||</span> <span class=\"s\">'&amp;nbsp;'</span><span class=\"k\">;</span> i <span class=\"k\">&lt;</span> tabSize<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","                txt <span class=\"k\">+=</span> tabNode<span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">var</span> span <span class=\"k\">=</span> me<span class=\"k\">.</span>document<span class=\"k\">.</span>createElement<span class=\"k\">(</span><span class=\"s\">'span'</span><span class=\"k\">);</span>","            span<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> txt <span class=\"k\">+</span> domUtils<span class=\"k\">.</span>fillChar<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>range<span class=\"k\">.</span>collapsed<span class=\"k\">)</span> <span class=\"k\">{</span>","                range<span class=\"k\">.</span>insertNode<span class=\"k\">(</span>span<span class=\"k\">.</span>cloneNode<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">).</span>firstChild<span class=\"k\">).</span>setCursor<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                <span class=\"c\">//&#26222;&#36890;&#30340;&#24773;&#20917;</span>","                start <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>findParent<span class=\"k\">(</span>range<span class=\"k\">.</span>startContainer<span class=\"k\">,</span> filterFn<span class=\"k\">);</span>","                end <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>findParent<span class=\"k\">(</span>range<span class=\"k\">.</span>endContainer<span class=\"k\">,</span> filterFn<span class=\"k\">);</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>start <span class=\"k\">&amp;&amp;</span> end <span class=\"k\">&amp;&amp;</span> start <span class=\"k\">===</span> end<span class=\"k\">)</span> <span class=\"k\">{</span>","                    range<span class=\"k\">.</span>deleteContents<span class=\"k\">();</span>","                    range<span class=\"k\">.</span>insertNode<span class=\"k\">(</span>span<span class=\"k\">.</span>cloneNode<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">).</span>firstChild<span class=\"k\">).</span>setCursor<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    <span class=\"k\">var</span> bookmark <span class=\"k\">=</span> range<span class=\"k\">.</span>createBookmark<span class=\"k\">(),</span>","                        filterFn <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                            <span class=\"k\">return</span> domUtils<span class=\"k\">.</span>isBlockElm<span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>excludeTagNameForTabKey<span class=\"k\">[</span>node<span class=\"k\">.</span>tagName<span class=\"k\">.</span>toLowerCase<span class=\"k\">()]</span>","","                        <span class=\"k\">}</span><span class=\"k\">;</span>","                    range<span class=\"k\">.</span>enlarge<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","                    <span class=\"k\">var</span> bookmark2 <span class=\"k\">=</span> range<span class=\"k\">.</span>createBookmark<span class=\"k\">(),</span>","                        current <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>getNextDomNode<span class=\"k\">(</span>bookmark2<span class=\"k\">.</span>start<span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">,</span> filterFn<span class=\"k\">);</span>","                    <span class=\"k\">while</span> <span class=\"k\">(</span>current <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!(</span>domUtils<span class=\"k\">.</span>getPosition<span class=\"k\">(</span>current<span class=\"k\">,</span> bookmark2<span class=\"k\">.</span>end<span class=\"k\">)</span> <span class=\"k\">&amp;</span> domUtils<span class=\"k\">.</span>POSITION_FOLLOWING<span class=\"k\">))</span> <span class=\"k\">{</span>","                        current<span class=\"k\">.</span>insertBefore<span class=\"k\">(</span>span<span class=\"k\">.</span>cloneNode<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">).</span>firstChild<span class=\"k\">,</span> current<span class=\"k\">.</span>firstChild<span class=\"k\">);</span>","                        current <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>getNextDomNode<span class=\"k\">(</span>current<span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">,</span> filterFn<span class=\"k\">);</span>","                    <span class=\"k\">}</span>","                    range<span class=\"k\">.</span>moveToBookmark<span class=\"k\">(</span>bookmark2<span class=\"k\">).</span>moveToBookmark<span class=\"k\">(</span>bookmark<span class=\"k\">).</span>select<span class=\"k\">();</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            domUtils<span class=\"k\">.</span>preventDefault<span class=\"k\">(</span>evt<span class=\"k\">)</span>","        <span class=\"k\">}</span>","        <span class=\"c\">//trace:1634</span>","        <span class=\"c\">//ff&#30340;del&#38190;&#22312;&#23481;&#22120;&#31354;&#30340;&#26102;&#20505;&#65292;&#20063;&#20250;&#21024;&#38500;</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>browser<span class=\"k\">.</span>gecko <span class=\"k\">&amp;&amp;</span> keyCode <span class=\"k\">==</span> <span class=\"s\">46</span><span class=\"k\">)</span><span class=\"k\">{</span>","            range <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>range<span class=\"k\">.</span>collapsed<span class=\"k\">)</span><span class=\"k\">{</span>","                start <span class=\"k\">=</span> range<span class=\"k\">.</span>startContainer<span class=\"k\">;</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>domUtils<span class=\"k\">.</span>isEmptyBlock<span class=\"k\">(</span>start<span class=\"k\">))</span><span class=\"k\">{</span>","                    <span class=\"k\">var</span> parent <span class=\"k\">=</span> start<span class=\"k\">.</span>parentNode<span class=\"k\">;</span>","                    <span class=\"k\">while</span><span class=\"k\">(</span>domUtils<span class=\"k\">.</span>getChildCount<span class=\"k\">(</span>parent<span class=\"k\">)</span> <span class=\"k\">==</span> <span class=\"s\">1</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>domUtils<span class=\"k\">.</span>isBody<span class=\"k\">(</span>parent<span class=\"k\">))</span><span class=\"k\">{</span>","                        start <span class=\"k\">=</span> parent<span class=\"k\">;</span>","                        parent <span class=\"k\">=</span> parent<span class=\"k\">.</span>parentNode<span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                    <span class=\"k\">if</span><span class=\"k\">(</span>start <span class=\"k\">===</span> parent<span class=\"k\">.</span>lastChild<span class=\"k\">)</span>","                        evt<span class=\"k\">.</span>preventDefault<span class=\"k\">();</span>","                    <span class=\"k\">return</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">);</span>","    me<span class=\"k\">.</span>addListener<span class=\"k\">(</span><span class=\"s\">'keyup'</span><span class=\"k\">,</span> <span class=\"k\">function</span><span class=\"k\">(</span>type<span class=\"k\">,</span> evt<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> keyCode <span class=\"k\">=</span> evt<span class=\"k\">.</span>keyCode <span class=\"k\">||</span> evt<span class=\"k\">.</span>which<span class=\"k\">,</span>","            rng<span class=\"k\">,</span>me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>keyCode <span class=\"k\">==</span> <span class=\"s\">8</span><span class=\"k\">)</span><span class=\"k\">{</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'delkeyup'</span><span class=\"k\">))</span><span class=\"k\">{</span>","                <span class=\"k\">return</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            rng <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>rng<span class=\"k\">.</span>collapsed<span class=\"k\">)</span><span class=\"k\">{</span>","                <span class=\"k\">var</span> tmpNode<span class=\"k\">,</span>","                    autoClearTagName <span class=\"k\">=</span> <span class=\"k\">[</span><span class=\"s\">'h1'</span><span class=\"k\">,</span><span class=\"s\">'h2'</span><span class=\"k\">,</span><span class=\"s\">'h3'</span><span class=\"k\">,</span><span class=\"s\">'h4'</span><span class=\"k\">,</span><span class=\"s\">'h5'</span><span class=\"k\">,</span><span class=\"s\">'h6'</span><span class=\"k\">];</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>tmpNode <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>findParentByTagName<span class=\"k\">(</span>rng<span class=\"k\">.</span>startContainer<span class=\"k\">,</span>autoClearTagName<span class=\"k\">,</span><span class=\"k\">true</span><span class=\"k\">))</span><span class=\"k\">{</span>","                    <span class=\"k\">if</span><span class=\"k\">(</span>domUtils<span class=\"k\">.</span>isEmptyBlock<span class=\"k\">(</span>tmpNode<span class=\"k\">))</span><span class=\"k\">{</span>","                        <span class=\"k\">var</span> pre <span class=\"k\">=</span> tmpNode<span class=\"k\">.</span>previousSibling<span class=\"k\">;</span>","                        <span class=\"k\">if</span><span class=\"k\">(</span>pre <span class=\"k\">&amp;&amp;</span> pre<span class=\"k\">.</span>nodeName <span class=\"k\">!=</span> <span class=\"s\">'TABLE'</span><span class=\"k\">)</span><span class=\"k\">{</span>","                            domUtils<span class=\"k\">.</span>remove<span class=\"k\">(</span>tmpNode<span class=\"k\">);</span>","                            rng<span class=\"k\">.</span>setStartAtLast<span class=\"k\">(</span>pre<span class=\"k\">).</span>setCursor<span class=\"k\">(</span><span class=\"k\">false</span><span class=\"k\">,</span><span class=\"k\">true</span><span class=\"k\">);</span>","                            <span class=\"k\">return</span><span class=\"k\">;</span>","                        <span class=\"k\">}</span><span class=\"k\">else</span><span class=\"k\">{</span>","                            <span class=\"k\">var</span> next <span class=\"k\">=</span> tmpNode<span class=\"k\">.</span>nextSibling<span class=\"k\">;</span>","                            <span class=\"k\">if</span><span class=\"k\">(</span>next <span class=\"k\">&amp;&amp;</span> next<span class=\"k\">.</span>nodeName <span class=\"k\">!=</span> <span class=\"s\">'TABLE'</span><span class=\"k\">)</span><span class=\"k\">{</span>","                                domUtils<span class=\"k\">.</span>remove<span class=\"k\">(</span>tmpNode<span class=\"k\">);</span>","                                rng<span class=\"k\">.</span>setStartAtFirst<span class=\"k\">(</span>next<span class=\"k\">).</span>setCursor<span class=\"k\">(</span><span class=\"k\">false</span><span class=\"k\">,</span><span class=\"k\">true</span><span class=\"k\">);</span>","                                <span class=\"k\">return</span><span class=\"k\">;</span>","                            <span class=\"k\">}</span>","                        <span class=\"k\">}</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","                <span class=\"c\">//&#22788;&#29702;&#24403;&#21024;&#38500;&#21040;body&#26102;&#65292;&#35201;&#37325;&#26032;&#32473;p&#26631;&#31614;&#23637;&#20301;</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>domUtils<span class=\"k\">.</span>isBody<span class=\"k\">(</span>rng<span class=\"k\">.</span>startContainer<span class=\"k\">))</span><span class=\"k\">{</span>","                    <span class=\"k\">var</span> tmpNode <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>createElement<span class=\"k\">(</span>me<span class=\"k\">.</span>document<span class=\"k\">,</span><span class=\"s\">'p'</span><span class=\"k\">,</span><span class=\"k\">{</span>","                        <span class=\"s\">'innerHTML'</span> <span class=\"k\">:</span> browser<span class=\"k\">.</span>ie <span class=\"k\">?</span> domUtils<span class=\"k\">.</span>fillChar <span class=\"k\">:</span> <span class=\"s\">'&lt;br/&gt;'</span>","                    <span class=\"k\">}</span><span class=\"k\">);</span>","                    rng<span class=\"k\">.</span>insertNode<span class=\"k\">(</span>tmpNode<span class=\"k\">).</span>setStart<span class=\"k\">(</span>tmpNode<span class=\"k\">,</span><span class=\"s\">0</span><span class=\"k\">).</span>setCursor<span class=\"k\">(</span><span class=\"k\">false</span><span class=\"k\">,</span><span class=\"k\">true</span><span class=\"k\">);</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","","","            <span class=\"c\">//chrome&#19979;&#22914;&#26524;&#21024;&#38500;&#20102;inline&#26631;&#31614;&#65292;&#27983;&#35272;&#22120;&#20250;&#26377;&#35760;&#24518;&#65292;&#22312;&#36755;&#20837;&#25991;&#23383;&#36824;&#26159;&#20250;&#22871;&#19978;&#21018;&#25165;&#21024;&#38500;&#30340;&#26631;&#31614;&#65292;&#25152;&#20197;&#36825;&#37324;&#20877;&#36873;&#19968;&#27425;&#23601;&#19981;&#20250;&#20102;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span> <span class=\"k\">!</span>collapsed <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>rng<span class=\"k\">.</span>startContainer<span class=\"k\">.</span>nodeType <span class=\"k\">==</span> <span class=\"s\">3</span> <span class=\"k\">||</span> rng<span class=\"k\">.</span>startContainer<span class=\"k\">.</span>nodeType <span class=\"k\">==</span> <span class=\"s\">1</span> <span class=\"k\">&amp;&amp;</span> domUtils<span class=\"k\">.</span>isEmptyBlock<span class=\"k\">(</span>rng<span class=\"k\">.</span>startContainer<span class=\"k\">)))</span><span class=\"k\">{</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>browser<span class=\"k\">.</span>ie<span class=\"k\">)</span><span class=\"k\">{</span>","                    <span class=\"k\">var</span> span <span class=\"k\">=</span> rng<span class=\"k\">.</span>document<span class=\"k\">.</span>createElement<span class=\"k\">(</span><span class=\"s\">'span'</span><span class=\"k\">);</span>","                    rng<span class=\"k\">.</span>insertNode<span class=\"k\">(</span>span<span class=\"k\">).</span>setStartBefore<span class=\"k\">(</span>span<span class=\"k\">).</span>collapse<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","                    rng<span class=\"k\">.</span>select<span class=\"k\">();</span>","                    domUtils<span class=\"k\">.</span>remove<span class=\"k\">(</span>span<span class=\"k\">)</span>","                <span class=\"k\">}</span><span class=\"k\">else</span><span class=\"k\">{</span>","                    rng<span class=\"k\">.</span>select<span class=\"k\">()</span>","                <span class=\"k\">}</span>","","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","","    <span class=\"k\">}</span><span class=\"k\">)</span>","<span class=\"k\">}</span><span class=\"k\">;</span>"];
_$jscoverage['plugins/keystrokes.js'][4]++;
UE.plugins.keystrokes = (function () {
  _$jscoverage['plugins/keystrokes.js'][5]++;
  var me = this;
  _$jscoverage['plugins/keystrokes.js'][6]++;
  var collapsed = true;
  _$jscoverage['plugins/keystrokes.js'][7]++;
  me.addListener("keydown", (function (type, evt) {
  _$jscoverage['plugins/keystrokes.js'][8]++;
  var keyCode = (evt.keyCode || evt.which), rng = me.selection.getRange();
  _$jscoverage['plugins/keystrokes.js'][12]++;
  if (((! rng.collapsed) && (! (evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey)) && (((keyCode >= 65) && (keyCode <= 90)) || ((keyCode >= 48) && (keyCode <= 57)) || ((keyCode >= 96) && (keyCode <= 111)) || {13: 1, 8: 1, 46: 1}[keyCode]))) {
    _$jscoverage['plugins/keystrokes.js'][21]++;
    var tmpNode = rng.startContainer;
    _$jscoverage['plugins/keystrokes.js'][22]++;
    if (domUtils.isFillChar(tmpNode)) {
      _$jscoverage['plugins/keystrokes.js'][23]++;
      rng.setStartBefore(tmpNode);
    }
    _$jscoverage['plugins/keystrokes.js'][25]++;
    tmpNode = rng.endContainer;
    _$jscoverage['plugins/keystrokes.js'][26]++;
    if (domUtils.isFillChar(tmpNode)) {
      _$jscoverage['plugins/keystrokes.js'][27]++;
      rng.setEndAfter(tmpNode);
    }
    _$jscoverage['plugins/keystrokes.js'][29]++;
    rng.txtToElmBoundary();
    _$jscoverage['plugins/keystrokes.js'][32]++;
    if ((rng.endContainer && (rng.endContainer.nodeType == 1))) {
      _$jscoverage['plugins/keystrokes.js'][33]++;
      tmpNode = rng.endContainer.childNodes[rng.endOffset];
      _$jscoverage['plugins/keystrokes.js'][34]++;
      if ((tmpNode && domUtils.isBr(tmpNode))) {
        _$jscoverage['plugins/keystrokes.js'][35]++;
        rng.setEndAfter(tmpNode);
      }
    }
    _$jscoverage['plugins/keystrokes.js'][38]++;
    if ((rng.startOffset == 0)) {
      _$jscoverage['plugins/keystrokes.js'][39]++;
      tmpNode = rng.startContainer;
      _$jscoverage['plugins/keystrokes.js'][40]++;
      if (domUtils.isBoundaryNode(tmpNode, "firstChild")) {
        _$jscoverage['plugins/keystrokes.js'][41]++;
        tmpNode = rng.endContainer;
        _$jscoverage['plugins/keystrokes.js'][42]++;
        if (((rng.endOffset == ((tmpNode.nodeType == 3)? tmpNode.nodeValue.length: tmpNode.childNodes.length)) && domUtils.isBoundaryNode(tmpNode, "lastChild"))) {
          _$jscoverage['plugins/keystrokes.js'][43]++;
          me.fireEvent("saveScene");
          _$jscoverage['plugins/keystrokes.js'][44]++;
          me.body.innerHTML = ("<p>" + (browser.ie? "": "<br/>") + "</p>");
          _$jscoverage['plugins/keystrokes.js'][45]++;
          rng.setStart(me.body.firstChild, 0).setCursor(false, true);
          _$jscoverage['plugins/keystrokes.js'][46]++;
          me._selectionChange();
          _$jscoverage['plugins/keystrokes.js'][47]++;
          return;
        }
      }
    }
  }
  _$jscoverage['plugins/keystrokes.js'][54]++;
  if ((keyCode == 8)) {
    _$jscoverage['plugins/keystrokes.js'][55]++;
    rng = me.selection.getRange();
    _$jscoverage['plugins/keystrokes.js'][56]++;
    collapsed = rng.collapsed;
    _$jscoverage['plugins/keystrokes.js'][57]++;
    if (me.fireEvent("delkeydown", evt)) {
      _$jscoverage['plugins/keystrokes.js'][58]++;
      return;
    }
    _$jscoverage['plugins/keystrokes.js'][60]++;
    var start, end;
    _$jscoverage['plugins/keystrokes.js'][62]++;
    if ((rng.collapsed && rng.inFillChar())) {
      _$jscoverage['plugins/keystrokes.js'][63]++;
      start = rng.startContainer;
      _$jscoverage['plugins/keystrokes.js'][65]++;
      if (domUtils.isFillChar(start)) {
        _$jscoverage['plugins/keystrokes.js'][66]++;
        rng.setStartBefore(start).shrinkBoundary(true).collapse(true);
        _$jscoverage['plugins/keystrokes.js'][67]++;
        domUtils.remove(start);
      }
      else {
        _$jscoverage['plugins/keystrokes.js'][69]++;
        start.nodeValue = start.nodeValue.replace(new RegExp(("^" + domUtils.fillChar)), "");
        _$jscoverage['plugins/keystrokes.js'][70]++;
        (rng.startOffset--);
        _$jscoverage['plugins/keystrokes.js'][71]++;
        rng.collapse(true).select(true);
      }
    }
    _$jscoverage['plugins/keystrokes.js'][76]++;
    if ((start = rng.getClosedNode())) {
      _$jscoverage['plugins/keystrokes.js'][77]++;
      me.fireEvent("saveScene");
      _$jscoverage['plugins/keystrokes.js'][78]++;
      rng.setStartBefore(start);
      _$jscoverage['plugins/keystrokes.js'][79]++;
      domUtils.remove(start);
      _$jscoverage['plugins/keystrokes.js'][80]++;
      rng.setCursor();
      _$jscoverage['plugins/keystrokes.js'][81]++;
      me.fireEvent("saveScene");
      _$jscoverage['plugins/keystrokes.js'][82]++;
      domUtils.preventDefault(evt);
      _$jscoverage['plugins/keystrokes.js'][83]++;
      return;
    }
    _$jscoverage['plugins/keystrokes.js'][86]++;
    if ((! browser.ie)) {
      _$jscoverage['plugins/keystrokes.js'][87]++;
      start = domUtils.findParentByTagName(rng.startContainer, "table", true);
      _$jscoverage['plugins/keystrokes.js'][88]++;
      end = domUtils.findParentByTagName(rng.endContainer, "table", true);
      _$jscoverage['plugins/keystrokes.js'][89]++;
      if (((start && (! end)) || ((! start) && end) || (start !== end))) {
        _$jscoverage['plugins/keystrokes.js'][90]++;
        evt.preventDefault();
        _$jscoverage['plugins/keystrokes.js'][91]++;
        return;
      }
    }
  }
  _$jscoverage['plugins/keystrokes.js'][97]++;
  if ((keyCode == 9)) {
    _$jscoverage['plugins/keystrokes.js'][99]++;
    var excludeTagNameForTabKey = {"ol": 1, "ul": 1, "table": 1};
    _$jscoverage['plugins/keystrokes.js'][105]++;
    if (me.fireEvent("tabkeydown", evt)) {
      _$jscoverage['plugins/keystrokes.js'][106]++;
      domUtils.preventDefault(evt);
      _$jscoverage['plugins/keystrokes.js'][107]++;
      return;
    }
    _$jscoverage['plugins/keystrokes.js'][109]++;
    var range = me.selection.getRange();
    _$jscoverage['plugins/keystrokes.js'][110]++;
    me.fireEvent("saveScene");
    _$jscoverage['plugins/keystrokes.js'][111]++;
    for (var i = 0, txt = "", tabSize = (me.options.tabSize || 4), tabNode = (me.options.tabNode || "&nbsp;"); (i < tabSize); (i++)) {
      _$jscoverage['plugins/keystrokes.js'][112]++;
      txt += tabNode;
}
    _$jscoverage['plugins/keystrokes.js'][114]++;
    var span = me.document.createElement("span");
    _$jscoverage['plugins/keystrokes.js'][115]++;
    span.innerHTML = (txt + domUtils.fillChar);
    _$jscoverage['plugins/keystrokes.js'][116]++;
    if (range.collapsed) {
      _$jscoverage['plugins/keystrokes.js'][117]++;
      range.insertNode(span.cloneNode(true).firstChild).setCursor(true);
    }
    else {
      _$jscoverage['plugins/keystrokes.js'][120]++;
      start = domUtils.findParent(range.startContainer, filterFn);
      _$jscoverage['plugins/keystrokes.js'][121]++;
      end = domUtils.findParent(range.endContainer, filterFn);
      _$jscoverage['plugins/keystrokes.js'][122]++;
      if ((start && end && (start === end))) {
        _$jscoverage['plugins/keystrokes.js'][123]++;
        range.deleteContents();
        _$jscoverage['plugins/keystrokes.js'][124]++;
        range.insertNode(span.cloneNode(true).firstChild).setCursor(true);
      }
      else {
        _$jscoverage['plugins/keystrokes.js'][126]++;
        var bookmark = range.createBookmark(), filterFn = (function (node) {
  _$jscoverage['plugins/keystrokes.js'][128]++;
  return (domUtils.isBlockElm(node) && (! excludeTagNameForTabKey[node.tagName.toLowerCase()]));
});
        _$jscoverage['plugins/keystrokes.js'][131]++;
        range.enlarge(true);
        _$jscoverage['plugins/keystrokes.js'][132]++;
        var bookmark2 = range.createBookmark(), current = domUtils.getNextDomNode(bookmark2.start, false, filterFn);
        _$jscoverage['plugins/keystrokes.js'][134]++;
        while ((current && (! (domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)))) {
          _$jscoverage['plugins/keystrokes.js'][135]++;
          current.insertBefore(span.cloneNode(true).firstChild, current.firstChild);
          _$jscoverage['plugins/keystrokes.js'][136]++;
          current = domUtils.getNextDomNode(current, false, filterFn);
}
        _$jscoverage['plugins/keystrokes.js'][138]++;
        range.moveToBookmark(bookmark2).moveToBookmark(bookmark).select();
      }
    }
    _$jscoverage['plugins/keystrokes.js'][141]++;
    domUtils.preventDefault(evt);
  }
  _$jscoverage['plugins/keystrokes.js'][145]++;
  if ((browser.gecko && (keyCode == 46))) {
    _$jscoverage['plugins/keystrokes.js'][146]++;
    range = me.selection.getRange();
    _$jscoverage['plugins/keystrokes.js'][147]++;
    if (range.collapsed) {
      _$jscoverage['plugins/keystrokes.js'][148]++;
      start = range.startContainer;
      _$jscoverage['plugins/keystrokes.js'][149]++;
      if (domUtils.isEmptyBlock(start)) {
        _$jscoverage['plugins/keystrokes.js'][150]++;
        var parent = start.parentNode;
        _$jscoverage['plugins/keystrokes.js'][151]++;
        while (((domUtils.getChildCount(parent) == 1) && (! domUtils.isBody(parent)))) {
          _$jscoverage['plugins/keystrokes.js'][152]++;
          start = parent;
          _$jscoverage['plugins/keystrokes.js'][153]++;
          parent = parent.parentNode;
}
        _$jscoverage['plugins/keystrokes.js'][155]++;
        if ((start === parent.lastChild)) {
          _$jscoverage['plugins/keystrokes.js'][156]++;
          evt.preventDefault();
        }
        _$jscoverage['plugins/keystrokes.js'][157]++;
        return;
      }
    }
  }
}));
  _$jscoverage['plugins/keystrokes.js'][162]++;
  me.addListener("keyup", (function (type, evt) {
  _$jscoverage['plugins/keystrokes.js'][163]++;
  var keyCode = (evt.keyCode || evt.which), rng, me = this;
  _$jscoverage['plugins/keystrokes.js'][165]++;
  if ((keyCode == 8)) {
    _$jscoverage['plugins/keystrokes.js'][166]++;
    if (me.fireEvent("delkeyup")) {
      _$jscoverage['plugins/keystrokes.js'][167]++;
      return;
    }
    _$jscoverage['plugins/keystrokes.js'][169]++;
    rng = me.selection.getRange();
    _$jscoverage['plugins/keystrokes.js'][170]++;
    if (rng.collapsed) {
      _$jscoverage['plugins/keystrokes.js'][171]++;
      var tmpNode, autoClearTagName = ["h1", "h2", "h3", "h4", "h5", "h6"];
      _$jscoverage['plugins/keystrokes.js'][173]++;
      if ((tmpNode = domUtils.findParentByTagName(rng.startContainer, autoClearTagName, true))) {
        _$jscoverage['plugins/keystrokes.js'][174]++;
        if (domUtils.isEmptyBlock(tmpNode)) {
          _$jscoverage['plugins/keystrokes.js'][175]++;
          var pre = tmpNode.previousSibling;
          _$jscoverage['plugins/keystrokes.js'][176]++;
          if ((pre && (pre.nodeName != "TABLE"))) {
            _$jscoverage['plugins/keystrokes.js'][177]++;
            domUtils.remove(tmpNode);
            _$jscoverage['plugins/keystrokes.js'][178]++;
            rng.setStartAtLast(pre).setCursor(false, true);
            _$jscoverage['plugins/keystrokes.js'][179]++;
            return;
          }
          else {
            _$jscoverage['plugins/keystrokes.js'][181]++;
            var next = tmpNode.nextSibling;
            _$jscoverage['plugins/keystrokes.js'][182]++;
            if ((next && (next.nodeName != "TABLE"))) {
              _$jscoverage['plugins/keystrokes.js'][183]++;
              domUtils.remove(tmpNode);
              _$jscoverage['plugins/keystrokes.js'][184]++;
              rng.setStartAtFirst(next).setCursor(false, true);
              _$jscoverage['plugins/keystrokes.js'][185]++;
              return;
            }
          }
        }
      }
      _$jscoverage['plugins/keystrokes.js'][191]++;
      if (domUtils.isBody(rng.startContainer)) {
        _$jscoverage['plugins/keystrokes.js'][192]++;
        var tmpNode = domUtils.createElement(me.document, "p", {"innerHTML": (browser.ie? domUtils.fillChar: "<br/>")});
        _$jscoverage['plugins/keystrokes.js'][195]++;
        rng.insertNode(tmpNode).setStart(tmpNode, 0).setCursor(false, true);
      }
    }
    _$jscoverage['plugins/keystrokes.js'][201]++;
    if (((! collapsed) && ((rng.startContainer.nodeType == 3) || ((rng.startContainer.nodeType == 1) && domUtils.isEmptyBlock(rng.startContainer))))) {
      _$jscoverage['plugins/keystrokes.js'][202]++;
      if (browser.ie) {
        _$jscoverage['plugins/keystrokes.js'][203]++;
        var span = rng.document.createElement("span");
        _$jscoverage['plugins/keystrokes.js'][204]++;
        rng.insertNode(span).setStartBefore(span).collapse(true);
        _$jscoverage['plugins/keystrokes.js'][205]++;
        rng.select();
        _$jscoverage['plugins/keystrokes.js'][206]++;
        domUtils.remove(span);
      }
      else {
        _$jscoverage['plugins/keystrokes.js'][208]++;
        rng.select();
      }
    }
  }
}));
});
