HTML Editor Syntax Highlighter - Version 2.2.2

Version Description

  • fixed bug: github updater in production issue #52
  • updated Codemirror to latest release version
Download this release

Release Info

Developer arniebradfo
Plugin Icon 128x128 HTML Editor Syntax Highlighter
Version 2.2.2
Comparing to
See all releases

Code changes from version 2.2.1 to 2.2.2

Files changed (4) hide show
  1. dist/hesh.css +25 -29
  2. dist/hesh.js +1311 -914
  3. dist/hesh.min.css +1 -1
  4. dist/hesh.min.js +5 -13
dist/hesh.css CHANGED
@@ -10,6 +10,7 @@
10
  font-family: monospace;
11
  height: 300px;
12
  color: black;
 
13
  }/* PADDING */.CodeMirror-lines {
14
  padding: 4px 0;
15
  /* Vertical padding around content */;
@@ -137,7 +138,7 @@
137
  color: #05a;
138
  }
139
 
140
- .cm-s-default .cm-variable-3 {
141
  color: #085;
142
  }
143
 
@@ -408,8 +409,8 @@ background: #d7d4f0;
408
  }
409
 
410
  .cm-searching {
411
- background: #ffa;
412
- background: rgba(255, 255, 0, 0.4);
413
  }/* Used to force a border model for a node */.cm-force-border {
414
  padding-right: .1px;
415
  }/* See issue #2901 */.cm-tab-wrap-hack:after {
@@ -709,7 +710,7 @@ color: #abcdef;
709
  color: #cacbcc;
710
  }
711
 
712
- .cm-s-abcdef span.cm-variable-3 {
713
  color: #def;
714
  }
715
 
@@ -805,7 +806,7 @@ color: #ffb795;
805
  color: #eed1b3;
806
  }
807
 
808
- .cm-s-ambiance .cm-variable-3 {
809
  color: #faded3;
810
  }
811
 
@@ -1243,19 +1244,19 @@ color: white !important;
1243
 
1244
  .cm-s-bespin .CodeMirror-activeline-background {
1245
  background: #404040;
1246
- }/* Port of TextMate's Blackboard theme */.cm-s-blackboard.CodeMirror {background: #0C1021;color: #F8F8F8;}.cm-s-blackboard div.CodeMirror-selected {background: #253B76;}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line > span::selection,.cm-s-blackboard .CodeMirror-line > span > span::selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-gutters {background: #0C1021;border-right: 0;}.cm-s-blackboard .CodeMirror-guttermarker {color: #FBDE2D;}.cm-s-blackboard .CodeMirror-guttermarker-subtle {color: #888;}.cm-s-blackboard .CodeMirror-linenumber {color: #888;}.cm-s-blackboard .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-blackboard .cm-keyword {color: #FBDE2D;}.cm-s-blackboard .cm-atom {color: #D8FA3C;}.cm-s-blackboard .cm-number {color: #D8FA3C;}.cm-s-blackboard .cm-def {color: #8DA6CE;}.cm-s-blackboard .cm-variable {color: #FF6400;}.cm-s-blackboard .cm-operator {color: #FBDE2D;}.cm-s-blackboard .cm-comment {color: #AEAEAE;}.cm-s-blackboard .cm-string {color: #61CE3C;}.cm-s-blackboard .cm-string-2 {color: #61CE3C;}.cm-s-blackboard .cm-meta {color: #D8FA3C;}.cm-s-blackboard .cm-builtin {color: #8DA6CE;}.cm-s-blackboard .cm-tag {color: #8DA6CE;}.cm-s-blackboard .cm-attribute {color: #8DA6CE;}.cm-s-blackboard .cm-header {color: #FF6400;}.cm-s-blackboard .cm-hr {color: #AEAEAE;}.cm-s-blackboard .cm-link {color: #8DA6CE;}.cm-s-blackboard .cm-error {background: #9D1E15;color: #F8F8F8;}.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636;}.cm-s-blackboard .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-cobalt.CodeMirror {background: #002240;color: white;}.cm-s-cobalt div.CodeMirror-selected {background: #b36539;}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line > span::selection,.cm-s-cobalt .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-cobalt .CodeMirror-guttermarker {color: #ffee80;}.cm-s-cobalt .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-cobalt span.cm-comment {color: #08f;}.cm-s-cobalt span.cm-atom {color: #845dc4;}.cm-s-cobalt span.cm-number,.cm-s-cobalt span.cm-attribute {color: #ff80e1;}.cm-s-cobalt span.cm-keyword {color: #ffee80;}.cm-s-cobalt span.cm-string {color: #3ad900;}.cm-s-cobalt span.cm-meta {color: #ff9d00;}.cm-s-cobalt span.cm-variable-2,.cm-s-cobalt span.cm-tag {color: #9effff;}.cm-s-cobalt span.cm-variable-3,.cm-s-cobalt span.cm-def {color: white;}.cm-s-cobalt span.cm-bracket {color: #d8d8d8;}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special {color: #ff9e59;}.cm-s-cobalt span.cm-link {color: #845dc4;}.cm-s-cobalt span.cm-error {color: #9d1e15;}.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57;}.cm-s-cobalt .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-colorforth.CodeMirror {background: #000000;color: #f8f8f8;}.cm-s-colorforth .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-colorforth .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-colorforth .CodeMirror-guttermarker-subtle {color: #78846f;}.cm-s-colorforth .CodeMirror-linenumber {color: #bababa;}.cm-s-colorforth .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-colorforth span.cm-comment {color: #ededed;}.cm-s-colorforth span.cm-def {color: #ff1c1c;font-weight: bold;}.cm-s-colorforth span.cm-keyword {color: #ffd900;}.cm-s-colorforth span.cm-builtin {color: #00d95a;}.cm-s-colorforth span.cm-variable {color: #73ff00;}.cm-s-colorforth span.cm-string {color: #007bff;}.cm-s-colorforth span.cm-number {color: #00c4ff;}.cm-s-colorforth span.cm-atom {color: #606060;}.cm-s-colorforth span.cm-variable-2 {color: #EEE;}.cm-s-colorforth span.cm-variable-3 {color: #DDD;}.cm-s-colorforth span.cm-meta {color: yellow;}.cm-s-colorforth span.cm-qualifier {color: #FFF700;}.cm-s-colorforth span.cm-bracket {color: #cc7;}.cm-s-colorforth span.cm-tag {color: #FFBD40;}.cm-s-colorforth span.cm-attribute {color: #FFF700;}.cm-s-colorforth span.cm-error {color: #f00;}.cm-s-colorforth div.CodeMirror-selected {background: #333d53;}.cm-s-colorforth span.cm-compilation {background: rgba(255, 255, 255, 0.12);}.cm-s-colorforth .CodeMirror-activeline-background {background: #253540;}/*
1247
 
1248
  Name: dracula
1249
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1250
 
1251
  Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
1252
 
1253
- */.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters {background-color: #282a36 !important;color: #f8f8f2 !important;border: none;}.cm-s-dracula .CodeMirror-gutters {color: #282a36;}.cm-s-dracula .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-dracula .CodeMirror-linenumber {color: #6D8A88;}.cm-s-dracula .CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line > span::-moz-selection,.cm-s-dracula .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line > span::selection,.cm-s-dracula .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line > span::-moz-selection,.cm-s-dracula .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula span.cm-comment {color: #6272a4;}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2 {color: #f1fa8c;}.cm-s-dracula span.cm-number {color: #bd93f9;}.cm-s-dracula span.cm-variable {color: #50fa7b;}.cm-s-dracula span.cm-variable-2 {color: white;}.cm-s-dracula span.cm-def {color: #50fa7b;}.cm-s-dracula span.cm-operator {color: #ff79c6;}.cm-s-dracula span.cm-keyword {color: #ff79c6;}.cm-s-dracula span.cm-atom {color: #bd93f9;}.cm-s-dracula span.cm-meta {color: #f8f8f2;}.cm-s-dracula span.cm-tag {color: #ff79c6;}.cm-s-dracula span.cm-attribute {color: #50fa7b;}.cm-s-dracula span.cm-qualifier {color: #50fa7b;}.cm-s-dracula span.cm-property {color: #66d9ef;}.cm-s-dracula span.cm-builtin {color: #50fa7b;}.cm-s-dracula span.cm-variable-3 {color: #ffb86c;}.cm-s-dracula .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
1254
  Name: DuoTone-Dark
1255
  Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
1256
 
1257
  CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
1258
- */.cm-s-duotone-dark.CodeMirror {background: #2a2734;color: #6c6783;}.cm-s-duotone-dark div.CodeMirror-selected {background: #545167!important;}.cm-s-duotone-dark .CodeMirror-gutters {background: #2a2734;border-right: 0px;}.cm-s-duotone-dark .CodeMirror-linenumber {color: #545167;}/* begin cursor */.cm-s-duotone-dark .CodeMirror-cursor {border-left: 1px solid #ffad5c; /* border-left: 1px solid #ffad5c80; */border-right: .5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */opacity: .5;}.cm-s-duotone-dark .CodeMirror-activeline-background {background: #363342; /* background: #36334280; */opacity: .5;}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor {background: #ffad5c; /* background: #ffad5c80; */opacity: .5;}/* end cursor */.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-variable,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-link {color: #ffcc99;}.cm-s-duotone-dark span.cm-property {color: #9a86fd;}.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit,.cm-s-duotone-dark span.cm-negative {color: #e09142;}.cm-s-duotone-dark span.cm-string {color: #ffb870;}.cm-s-duotone-dark span.cm-operator {color: #ffad5c;}.cm-s-duotone-dark span.cm-positive {color: #6a51e6;}.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3,.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-url {color: #7a63ee;}.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-tag,.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-em {color: #eeebff;}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment {color: #6c6783;}/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar {
1259
  color: #f00;
1260
  }
1261
 
@@ -1325,7 +1326,7 @@ color: #1659df;
1325
  color: #896724;
1326
  }
1327
 
1328
- .cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-url {
1329
  color: #896724;
1330
  }
1331
 
@@ -1335,7 +1336,7 @@ color: #2d2006;
1335
 
1336
  .cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment {
1337
  color: #b6ad9a;
1338
- }/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... *//* .cm-s-duotone-light span.cm-error { background: #896724; color: #728fcb; } */.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar {color: #f00;}.cm-s-duotone-light span.cm-header {font-weight: normal;}.cm-s-duotone-light .CodeMirror-matchingbracket {text-decoration: underline;color: #faf8f5 !important;}.cm-s-eclipse span.cm-meta {color: #FF1717;}.cm-s-eclipse span.cm-keyword {line-height: 1em;font-weight: bold;color: #7F0055;}.cm-s-eclipse span.cm-atom {color: #219;}.cm-s-eclipse span.cm-number {color: #164;}.cm-s-eclipse span.cm-def {color: #00f;}.cm-s-eclipse span.cm-variable {color: black;}.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}.cm-s-eclipse span.cm-variable-3 {color: #0000C0;}.cm-s-eclipse span.cm-property {color: black;}.cm-s-eclipse span.cm-operator {color: black;}.cm-s-eclipse span.cm-comment {color: #3F7F5F;}.cm-s-eclipse span.cm-string {color: #2A00FF;}.cm-s-eclipse span.cm-string-2 {color: #f50;}.cm-s-eclipse span.cm-qualifier {color: #555;}.cm-s-eclipse span.cm-builtin {color: #30a;}.cm-s-eclipse span.cm-bracket {color: #cc7;}.cm-s-eclipse span.cm-tag {color: #170;}.cm-s-eclipse span.cm-attribute {color: #00c;}.cm-s-eclipse span.cm-link {color: #219;}.cm-s-eclipse span.cm-error {color: #f00;}.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-eclipse .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string,.cm-s-elegant span.cm-atom {color: #762;}.cm-s-elegant span.cm-comment {color: #262;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-meta {color: #555;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-variable {color: black;}.cm-s-elegant span.cm-variable-2 {color: #b11;}.cm-s-elegant span.cm-qualifier {color: #555;}.cm-s-elegant span.cm-keyword {color: #730;}.cm-s-elegant span.cm-builtin {color: #30a;}.cm-s-elegant span.cm-link {color: #762;}.cm-s-elegant span.cm-error {background-color: #fdd;}.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-elegant .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-erlang-dark.CodeMirror {background: #002240;color: white;}.cm-s-erlang-dark div.CodeMirror-selected {background: #b36539;}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line > span::selection,.cm-s-erlang-dark .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-erlang-dark .CodeMirror-guttermarker {color: white;}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-erlang-dark span.cm-quote {color: #ccc;}.cm-s-erlang-dark span.cm-atom {color: #f133f1;}.cm-s-erlang-dark span.cm-attribute {color: #ff80e1;}.cm-s-erlang-dark span.cm-bracket {color: #ff9d00;}.cm-s-erlang-dark span.cm-builtin {color: #eaa;}.cm-s-erlang-dark span.cm-comment {color: #77f;}.cm-s-erlang-dark span.cm-def {color: #e7a;}.cm-s-erlang-dark span.cm-keyword {color: #ffee80;}.cm-s-erlang-dark span.cm-meta {color: #50fefe;}.cm-s-erlang-dark span.cm-number {color: #ffd0d0;}.cm-s-erlang-dark span.cm-operator {color: #d55;}.cm-s-erlang-dark span.cm-property {color: #ccc;}.cm-s-erlang-dark span.cm-qualifier {color: #ccc;}.cm-s-erlang-dark span.cm-special {color: #ffbbbb;}.cm-s-erlang-dark span.cm-string {color: #3ad900;}.cm-s-erlang-dark span.cm-string-2 {color: #ccc;}.cm-s-erlang-dark span.cm-tag {color: #9effff;}.cm-s-erlang-dark span.cm-variable {color: #50fe50;}.cm-s-erlang-dark span.cm-variable-2 {color: #e0e;}.cm-s-erlang-dark span.cm-variable-3 {color: #ccc;}.cm-s-erlang-dark span.cm-error {color: #9d1e15;}.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461;}.cm-s-erlang-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1339
 
1340
  Name: Hopscotch
1341
  Author: Jan T. Sott
@@ -1345,7 +1346,7 @@ color: #b6ad9a;
1345
 
1346
  */.cm-s-hopscotch.CodeMirror {background: #322931;color: #d5d3d5;}.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}.cm-s-hopscotch .CodeMirror-gutters {background: #322931;border-right: 0px;}.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}.cm-s-hopscotch span.cm-comment {color: #b33508;}.cm-s-hopscotch span.cm-atom {color: #c85e7c;}.cm-s-hopscotch span.cm-number {color: #c85e7c;}.cm-s-hopscotch span.cm-property,.cm-s-hopscotch span.cm-attribute {color: #8fc13e;}.cm-s-hopscotch span.cm-keyword {color: #dd464c;}.cm-s-hopscotch span.cm-string {color: #fdcc59;}.cm-s-hopscotch span.cm-variable {color: #8fc13e;}.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}.cm-s-hopscotch span.cm-def {color: #fd8b19;}.cm-s-hopscotch span.cm-error {background: #dd464c;color: #989498;}.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}.cm-s-hopscotch span.cm-tag {color: #dd464c;}.cm-s-hopscotch span.cm-link {color: #c85e7c;}.cm-s-hopscotch .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-hopscotch .CodeMirror-activeline-background {background: #302020;}/*
1347
  ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
1348
- */.cm-s-icecoder {color: #666;background: #1d1d1b;}.cm-s-icecoder span.cm-keyword {color: #eee;font-weight: bold;}/* off-white 1 */.cm-s-icecoder span.cm-atom {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-number {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-def {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-variable {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-variable-2 {color: #cc1e5c;}/* pink */.cm-s-icecoder span.cm-variable-3 {color: #f9602c;}/* orange */.cm-s-icecoder span.cm-property {color: #eee;}/* off-white 1 */.cm-s-icecoder span.cm-operator {color: #9179bb;}/* purple */.cm-s-icecoder span.cm-comment {color: #97a3aa;}/* grey-blue */.cm-s-icecoder span.cm-string {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-string-2 {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-meta {color: #555;}/* grey */.cm-s-icecoder span.cm-qualifier {color: #555;}/* grey */.cm-s-icecoder span.cm-builtin {color: #214e7b;}/* bright blue */.cm-s-icecoder span.cm-bracket {color: #cc7;}/* grey-yellow */.cm-s-icecoder span.cm-tag {color: #e8e8e8;}/* off-white 2 */.cm-s-icecoder span.cm-attribute {color: #099;}/* teal */.cm-s-icecoder span.cm-header {color: #6a0d6a;}/* purple-pink */.cm-s-icecoder span.cm-quote {color: #186718;}/* dark green */.cm-s-icecoder span.cm-hr {color: #888;}/* mid-grey */.cm-s-icecoder span.cm-link {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-error {color: #d00;}/* red */.cm-s-icecoder .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-icecoder div.CodeMirror-selected {color: #fff;background: #037;}.cm-s-icecoder .CodeMirror-gutters {background: #1d1d1b;min-width: 41px;border-right: 0;}.cm-s-icecoder .CodeMirror-linenumber {color: #555;cursor: default;}.cm-s-icecoder .CodeMirror-matchingbracket {color: #fff !important;background: #555 !important;}.cm-s-icecoder .CodeMirror-activeline-background {background: #000;}/*
1349
 
1350
  Name: Isotope
1351
  Author: David Desandro / Jan T. Sott
@@ -1356,14 +1357,14 @@ ICEcoder default theme by Matt Pass, used in code editor available at https://ic
1356
  */.cm-s-isotope.CodeMirror {background: #000000;color: #e0e0e0;}.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}.cm-s-isotope .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-isotope .CodeMirror-linenumber {color: #808080;}.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}.cm-s-isotope span.cm-comment {color: #3300ff;}.cm-s-isotope span.cm-atom {color: #cc00ff;}.cm-s-isotope span.cm-number {color: #cc00ff;}.cm-s-isotope span.cm-property,.cm-s-isotope span.cm-attribute {color: #33ff00;}.cm-s-isotope span.cm-keyword {color: #ff0000;}.cm-s-isotope span.cm-string {color: #ff0099;}.cm-s-isotope span.cm-variable {color: #33ff00;}.cm-s-isotope span.cm-variable-2 {color: #0066ff;}.cm-s-isotope span.cm-def {color: #ff9900;}.cm-s-isotope span.cm-error {background: #ff0000;color: #c0c0c0;}.cm-s-isotope span.cm-bracket {color: #e0e0e0;}.cm-s-isotope span.cm-tag {color: #ff0000;}.cm-s-isotope span.cm-link {color: #cc00ff;}.cm-s-isotope .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-isotope .CodeMirror-activeline-background {background: #202020;}/*
1357
  http://lesscss.org/ dark theme
1358
  Ported to CodeMirror by Peter Kroon
1359
- */.cm-s-lesser-dark {line-height: 1.3em;}.cm-s-lesser-dark.CodeMirror {background: #262626;color: #EBEFE7;text-shadow: 0 -1px 1px #262626;}.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B;}/* 33322B*/.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line > span::selection,.cm-s-lesser-dark .CodeMirror-line > span > span::selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-lesser-dark pre {padding: 0 8px;}/*editable code holder*/.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket {color: #7EFC7E;}/*65FC65*/.cm-s-lesser-dark .CodeMirror-gutters {background: #262626;border-right: 1px solid #aaa;}.cm-s-lesser-dark .CodeMirror-guttermarker {color: #599eff;}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-lesser-dark .CodeMirror-linenumber {color: #777;}.cm-s-lesser-dark span.cm-header {color: #a0a;}.cm-s-lesser-dark span.cm-quote {color: #090;}.cm-s-lesser-dark span.cm-keyword {color: #599eff;}.cm-s-lesser-dark span.cm-atom {color: #C2B470;}.cm-s-lesser-dark span.cm-number {color: #B35E4D;}.cm-s-lesser-dark span.cm-def {color: white;}.cm-s-lesser-dark span.cm-variable {color: #D9BF8C;}.cm-s-lesser-dark span.cm-variable-2 {color: #669199;}.cm-s-lesser-dark span.cm-variable-3 {color: white;}.cm-s-lesser-dark span.cm-property {color: #92A75C;}.cm-s-lesser-dark span.cm-operator {color: #92A75C;}.cm-s-lesser-dark span.cm-comment {color: #666;}.cm-s-lesser-dark span.cm-string {color: #BCD279;}.cm-s-lesser-dark span.cm-string-2 {color: #f50;}.cm-s-lesser-dark span.cm-meta {color: #738C73;}.cm-s-lesser-dark span.cm-qualifier {color: #555;}.cm-s-lesser-dark span.cm-builtin {color: #ff9e59;}.cm-s-lesser-dark span.cm-bracket {color: #EBEFE7;}.cm-s-lesser-dark span.cm-tag {color: #669199;}.cm-s-lesser-dark span.cm-attribute {color: #00c;}.cm-s-lesser-dark span.cm-hr {color: #999;}.cm-s-lesser-dark span.cm-link {color: #00c;}.cm-s-lesser-dark span.cm-error {color: #9d1e15;}.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A;}.cm-s-lesser-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-liquibyte.CodeMirror {background-color: #000;color: #fff;line-height: 1.2em;font-size: 1em;}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {text-decoration: underline;-webkit-text-decoration-color: #0f0;text-decoration-color: #0f0;-webkit-text-decoration-style: wavy;text-decoration-style: wavy;}.cm-s-liquibyte .cm-trailingspace {text-decoration: line-through;-webkit-text-decoration-color: #f00;text-decoration-color: #f00;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .cm-tab {text-decoration: line-through;-webkit-text-decoration-color: #404040;text-decoration-color: #404040;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .CodeMirror-gutters {background-color: #262626;border-right: 1px solid #505050;padding-right: 0.8em;}.cm-s-liquibyte .CodeMirror-gutter-elt div {font-size: 1.2em;}.cm-s-liquibyte .CodeMirror-linenumber {color: #606060;padding-left: 0;}.cm-s-liquibyte .CodeMirror-cursor {border-left: 1px solid #eee;}.cm-s-liquibyte span.cm-comment {color: #008000;}.cm-s-liquibyte span.cm-def {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-keyword {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-builtin {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-variable {color: #5967ff;font-weight: bold;}.cm-s-liquibyte span.cm-string {color: #ff8000;}.cm-s-liquibyte span.cm-number {color: #0f0;font-weight: bold;}.cm-s-liquibyte span.cm-atom {color: #bf3030;font-weight: bold;}.cm-s-liquibyte span.cm-variable-2 {color: #007f7f;font-weight: bold;}.cm-s-liquibyte span.cm-variable-3 {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-property {color: #999;font-weight: bold;}.cm-s-liquibyte span.cm-operator {color: #fff;}.cm-s-liquibyte span.cm-meta {color: #0f0;}.cm-s-liquibyte span.cm-qualifier {color: #fff700;font-weight: bold;}.cm-s-liquibyte span.cm-bracket {color: #cc7;}.cm-s-liquibyte span.cm-tag {color: #ff0;font-weight: bold;}.cm-s-liquibyte span.cm-attribute {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-error {color: #f00;}.cm-s-liquibyte div.CodeMirror-selected {background-color: rgba(255, 0, 0, 0.25);}.cm-s-liquibyte span.cm-compilation {background-color: rgba(255, 255, 255, 0.12);}.cm-s-liquibyte .CodeMirror-activeline-background {background-color: rgba(0, 255, 0, 0.15);}/* Default styles for common addons */.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket {color: #0f0;font-weight: bold;}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket {color: #f00;font-weight: bold;}.CodeMirror-matchingtag {background-color: rgba(150, 255, 0, 0.3);}/* Scrollbars *//* Simple */.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,div.CodeMirror-simplescroll-vertical div:hover {background-color: rgba(80, 80, 80, 0.7);}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,div.CodeMirror-simplescroll-vertical div {background-color: rgba(80, 80, 80, 0.3);border: 1px solid #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {border-top: 1px solid #404040;border-bottom: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {border-left: 1px solid #404040;border-right: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {background-color: #262626;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {background-color: #262626;border-top: 1px solid #404040;}/* Overlay */.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div {background-color: #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {border: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {border: 1px solid #404040;}/*
1360
 
1361
  Name: material
1362
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1363
 
1364
  Original material color scheme by Mattia Astorino (https://github.com/equinusocio/material-theme)
1365
 
1366
- */.cm-s-material.CodeMirror {background-color: #263238;color: #e9eded;}.cm-s-material .CodeMirror-gutters {background: #263238;color: #537f7e;border: none;}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber {color: #537f7e;}.cm-s-material .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-material div.CodeMirror-selected {background: rgba(255, 255, 255, 0.15);}.cm-s-material.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line > span::-moz-selection,.cm-s-material .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line > span::selection,.cm-s-material .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line > span::-moz-selection,.cm-s-material .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0);}.cm-s-material .cm-keyword {color: #c792ea;}.cm-s-material .cm-operator {color: #e9eded;}.cm-s-material .cm-variable-2 {color: #80CBC4;}.cm-s-material .cm-variable-3 {color: #82B1FF;}.cm-s-material .cm-builtin {color: #DECB6B;}.cm-s-material .cm-atom {color: #F77669;}.cm-s-material .cm-number {color: #F77669;}.cm-s-material .cm-def {color: #e9eded;}.cm-s-material .cm-string {color: #C3E88D;}.cm-s-material .cm-string-2 {color: #80CBC4;}.cm-s-material .cm-comment {color: #546E7A;}.cm-s-material .cm-variable {color: #82B1FF;}.cm-s-material .cm-tag {color: #80CBC4;}.cm-s-material .cm-meta {color: #80CBC4;}.cm-s-material .cm-attribute {color: #FFCB6B;}.cm-s-material .cm-property {color: #80CBAE;}.cm-s-material .cm-qualifier {color: #DECB6B;}.cm-s-material .cm-variable-3 {color: #DECB6B;}.cm-s-material .cm-tag {color: #ff5370;}.cm-s-material .cm-error {color: #ffffff;background-color: #EC5F67;}.cm-s-material .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/****************************************************************//* Based on mbonaci's Brackets mbo theme *//* https://github.com/mbonaci/global/blob/master/Mbo.tmTheme *//* Create your own: http://tmtheme-editor.herokuapp.com *//****************************************************************/.cm-s-mbo.CodeMirror {
1367
  background: #2c2c2c;
1368
  color: #ffffec;
1369
  }
@@ -1541,7 +1542,7 @@ color: #8DA6CE;
1541
  color: #690;
1542
  }
1543
 
1544
- .cm-s-mdn-like span.cm-variable-3,.cm-s-mdn-like span.cm-def {
1545
  color: #07a;
1546
  }
1547
 
@@ -1627,11 +1628,6 @@ background: #0F192A;
1627
  color: #D1EDFF;
1628
  }
1629
 
1630
- .cm-s-midnight.CodeMirror {
1631
- border-top: 1px solid black;
1632
- border-bottom: 1px solid black;
1633
- }
1634
-
1635
  .cm-s-midnight div.CodeMirror-selected {
1636
  background: #314D67;
1637
  }
@@ -1725,11 +1721,11 @@ color: #F8F8F0;
1725
  .cm-s-midnight .CodeMirror-matchingbracket {
1726
  text-decoration: underline;
1727
  color: white !important;
1728
- }/* Based on Sublime Text's Monokai theme */.cm-s-monokai.CodeMirror {background: #272822;color: #f8f8f2;}.cm-s-monokai div.CodeMirror-selected {background: #49483E;}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line > span::selection,.cm-s-monokai .CodeMirror-line > span > span::selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-gutters {background: #272822;border-right: 0px;}.cm-s-monokai .CodeMirror-guttermarker {color: white;}.cm-s-monokai .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-monokai span.cm-comment {color: #75715e;}.cm-s-monokai span.cm-atom {color: #ae81ff;}.cm-s-monokai span.cm-number {color: #ae81ff;}.cm-s-monokai span.cm-property,.cm-s-monokai span.cm-attribute {color: #a6e22e;}.cm-s-monokai span.cm-keyword {color: #f92672;}.cm-s-monokai span.cm-builtin {color: #66d9ef;}.cm-s-monokai span.cm-string {color: #e6db74;}.cm-s-monokai span.cm-variable {color: #f8f8f2;}.cm-s-monokai span.cm-variable-2 {color: #9effff;}.cm-s-monokai span.cm-variable-3 {color: #66d9ef;}.cm-s-monokai span.cm-def {color: #fd971f;}.cm-s-monokai span.cm-bracket {color: #f8f8f2;}.cm-s-monokai span.cm-tag {color: #f92672;}.cm-s-monokai span.cm-header {color: #ae81ff;}.cm-s-monokai span.cm-link {color: #ae81ff;}.cm-s-monokai span.cm-error {background: #f92672;color: #f8f8f0;}.cm-s-monokai .CodeMirror-activeline-background {background: #373831;}.cm-s-monokai .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-neat span.cm-comment {color: #a86;}.cm-s-neat span.cm-keyword {line-height: 1em;font-weight: bold;color: blue;}.cm-s-neat span.cm-string {color: #a22;}.cm-s-neat span.cm-builtin {line-height: 1em;font-weight: bold;color: #077;}.cm-s-neat span.cm-special {line-height: 1em;font-weight: bold;color: #0aa;}.cm-s-neat span.cm-variable {color: black;}.cm-s-neat span.cm-number,.cm-s-neat span.cm-atom {color: #3a3;}.cm-s-neat span.cm-meta {color: #555;}.cm-s-neat span.cm-link {color: #3a3;}.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-neat .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}/* neo theme for codemirror *//* Color scheme */.cm-s-neo.CodeMirror {background-color: #ffffff;color: #2e383c;line-height: 1.4375;}.cm-s-neo .cm-comment {color: #75787b;}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property {color: #1d75b3;}.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color: #75438a;}.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color: #9c3328;}.cm-s-neo .cm-string {color: #b35e14;}.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color: #047d65;}/* Editor styling */.cm-s-neo pre {padding: 0;}.cm-s-neo .CodeMirror-gutters {border: none;border-right: 10px solid transparent;background-color: transparent;}.cm-s-neo .CodeMirror-linenumber {padding: 0;color: #e0e2e5;}.cm-s-neo .CodeMirror-guttermarker {color: #1d75b3;}.cm-s-neo .CodeMirror-guttermarker-subtle {color: #e0e2e5;}.cm-s-neo .CodeMirror-cursor {width: auto;border: 0;background: rgba(155, 157, 162, 0.37);z-index: 1;}/* Loosely based on the Midnight Textmate theme */.cm-s-night.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-night div.CodeMirror-selected {background: #447;}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line > span::selection,.cm-s-night .CodeMirror-line > span > span::selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-night .CodeMirror-guttermarker {color: white;}.cm-s-night .CodeMirror-guttermarker-subtle {color: #bbb;}.cm-s-night .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-night .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-night span.cm-comment {color: #8900d1;}.cm-s-night span.cm-atom {color: #845dc4;}.cm-s-night span.cm-number,.cm-s-night span.cm-attribute {color: #ffd500;}.cm-s-night span.cm-keyword {color: #599eff;}.cm-s-night span.cm-string {color: #37f14a;}.cm-s-night span.cm-meta {color: #7678e2;}.cm-s-night span.cm-variable-2,.cm-s-night span.cm-tag {color: #99b2ff;}.cm-s-night span.cm-variable-3,.cm-s-night span.cm-def {color: white;}.cm-s-night span.cm-bracket {color: #8da6ce;}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special {color: #ff9e59;}.cm-s-night span.cm-link {color: #845dc4;}.cm-s-night span.cm-error {color: #9d1e15;}.cm-s-night .CodeMirror-activeline-background {background: #1C005A;}.cm-s-night .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1729
  Name: Panda Syntax
1730
  Author: Siamak Mokhtari (http://github.com/siamak/)
1731
  CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
1732
- */.cm-s-panda-syntax {background: #292A2B;color: #E6E6E6;line-height: 1.5;font-family: 'Operator Mono', 'Source Sans Pro', Menlo, Monaco, Consolas, Courier New, monospace;}.cm-s-panda-syntax .CodeMirror-cursor {border-color: #ff2c6d;}.cm-s-panda-syntax .CodeMirror-activeline-background {background: rgba(99, 123, 156, 0.1);}.cm-s-panda-syntax .CodeMirror-selected {background: #FFF;}.cm-s-panda-syntax .cm-comment {font-style: italic;color: #676B79;}.cm-s-panda-syntax .cm-operator {color: #f3f3f3;}.cm-s-panda-syntax .cm-string {color: #19F9D8;}.cm-s-panda-syntax .cm-string-2 {color: #FFB86C;}.cm-s-panda-syntax .cm-tag {color: #ff2c6d;}.cm-s-panda-syntax .cm-meta {color: #b084eb;}.cm-s-panda-syntax .cm-number {color: #FFB86C;}.cm-s-panda-syntax .cm-atom {color: #ff2c6d;}.cm-s-panda-syntax .cm-keyword {color: #FF75B5;}.cm-s-panda-syntax .cm-variable {color: #ffb86c;}.cm-s-panda-syntax .cm-variable-2 {color: #ff9ac1;}.cm-s-panda-syntax .cm-variable-3 {color: #ff9ac1;}.cm-s-panda-syntax .cm-def {color: #e6e6e6;}.cm-s-panda-syntax .cm-property {color: #f3f3f3;}.cm-s-panda-syntax .cm-unit {color: #ffb86c;}.cm-s-panda-syntax .cm-attribute {color: #ffb86c;}.cm-s-panda-syntax .CodeMirror-matchingbracket {border-bottom: 1px dotted #19F9D8;padding-bottom: 2px;color: #e6e6e6;}.cm-s-panda-syntax .CodeMirror-gutters {background: #292a2b;border-right-color: rgba(255, 255, 255, 0.1);}.cm-s-panda-syntax .CodeMirror-linenumber {color: #e6e6e6;opacity: 0.6;}/*
1733
 
1734
  Name: Paraíso (Dark)
1735
  Author: Jan T. Sott
@@ -1752,7 +1748,7 @@ color: white !important;
1752
  * @author Dennis Thompson, AtomicPages LLC
1753
  * @version 1.1
1754
  * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme
1755
- */.cm-s-pastel-on-dark.CodeMirror {background: #2c2827;color: #8F938F;line-height: 1.5;}.cm-s-pastel-on-dark div.CodeMirror-selected {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line > span::selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-gutters {background: #34302f;border-right: 0px;padding: 0 3px;}.cm-s-pastel-on-dark .CodeMirror-guttermarker {color: white;}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle {color: #8F938F;}.cm-s-pastel-on-dark .CodeMirror-linenumber {color: #8F938F;}.cm-s-pastel-on-dark .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-pastel-on-dark span.cm-comment {color: #A6C6FF;}.cm-s-pastel-on-dark span.cm-atom {color: #DE8E30;}.cm-s-pastel-on-dark span.cm-number {color: #CCCCCC;}.cm-s-pastel-on-dark span.cm-property {color: #8F938F;}.cm-s-pastel-on-dark span.cm-attribute {color: #a6e22e;}.cm-s-pastel-on-dark span.cm-keyword {color: #AEB2F8;}.cm-s-pastel-on-dark span.cm-string {color: #66A968;}.cm-s-pastel-on-dark span.cm-variable {color: #AEB2F8;}.cm-s-pastel-on-dark span.cm-variable-2 {color: #BEBF55;}.cm-s-pastel-on-dark span.cm-variable-3 {color: #DE8E30;}.cm-s-pastel-on-dark span.cm-def {color: #757aD8;}.cm-s-pastel-on-dark span.cm-bracket {color: #f8f8f2;}.cm-s-pastel-on-dark span.cm-tag {color: #C1C144;}.cm-s-pastel-on-dark span.cm-link {color: #ae81ff;}.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin {color: #C1C144;}.cm-s-pastel-on-dark span.cm-error {background: #757aD8;color: #f8f8f0;}.cm-s-pastel-on-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.031);}.cm-s-pastel-on-dark .CodeMirror-matchingbracket {border: 1px solid rgba(255, 255, 255, 0.25);color: #8F938F !important;margin: -1px -1px 0 -1px;}/*
1756
 
1757
  Name: Railscasts
1758
  Author: Ryan Bates (http://railscasts.com)
@@ -1760,20 +1756,20 @@ color: white !important;
1760
  CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
1761
  Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
1762
 
1763
- */.cm-s-railscasts.CodeMirror {background: #2b2b2b;color: #f4f1ed;}.cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}.cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b;border-right: 0px;}.cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}.cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}.cm-s-railscasts span.cm-comment {color: #bc9458;}.cm-s-railscasts span.cm-atom {color: #b6b3eb;}.cm-s-railscasts span.cm-number {color: #b6b3eb;}.cm-s-railscasts span.cm-property,.cm-s-railscasts span.cm-attribute {color: #a5c261;}.cm-s-railscasts span.cm-keyword {color: #da4939;}.cm-s-railscasts span.cm-string {color: #ffc66d;}.cm-s-railscasts span.cm-variable {color: #a5c261;}.cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}.cm-s-railscasts span.cm-def {color: #cc7833;}.cm-s-railscasts span.cm-error {background: #da4939;color: #d4cfc9;}.cm-s-railscasts span.cm-bracket {color: #f4f1ed;}.cm-s-railscasts span.cm-tag {color: #da4939;}.cm-s-railscasts span.cm-link {color: #b6b3eb;}.cm-s-railscasts .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-railscasts .CodeMirror-activeline-background {background: #303040;}.cm-s-rubyblue.CodeMirror {background: #112435;color: white;}.cm-s-rubyblue div.CodeMirror-selected {background: #38566F;}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line > span::selection,.cm-s-rubyblue .CodeMirror-line > span > span::selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-gutters {background: #1F4661;border-right: 7px solid #3E7087;}.cm-s-rubyblue .CodeMirror-guttermarker {color: white;}.cm-s-rubyblue .CodeMirror-guttermarker-subtle {color: #3E7087;}.cm-s-rubyblue .CodeMirror-linenumber {color: white;}.cm-s-rubyblue .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-rubyblue span.cm-comment {color: #999;font-style: italic;line-height: 1em;}.cm-s-rubyblue span.cm-atom {color: #F4C20B;}.cm-s-rubyblue span.cm-number,.cm-s-rubyblue span.cm-attribute {color: #82C6E0;}.cm-s-rubyblue span.cm-keyword {color: #F0F;}.cm-s-rubyblue span.cm-string {color: #F08047;}.cm-s-rubyblue span.cm-meta {color: #F0F;}.cm-s-rubyblue span.cm-variable-2,.cm-s-rubyblue span.cm-tag {color: #7BD827;}.cm-s-rubyblue span.cm-variable-3,.cm-s-rubyblue span.cm-def {color: white;}.cm-s-rubyblue span.cm-bracket {color: #F0F;}.cm-s-rubyblue span.cm-link {color: #F4C20B;}.cm-s-rubyblue span.CodeMirror-matchingbracket {color: #F0F !important;}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special {color: #FF9D00;}.cm-s-rubyblue span.cm-error {color: #AF2018;}.cm-s-rubyblue .CodeMirror-activeline-background {background: #173047;}/*
1764
 
1765
  Name: seti
1766
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1767
 
1768
  Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
1769
 
1770
- */.cm-s-seti.CodeMirror {background-color: #151718 !important;color: #CFD2D1 !important;border: none;}.cm-s-seti .CodeMirror-gutters {color: #404b53;background-color: #0E1112;border: none;}.cm-s-seti .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-seti .CodeMirror-linenumber {color: #6D8A88;}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line > span::selection,.cm-s-seti .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti span.cm-comment {color: #41535b;}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2 {color: #55b5db;}.cm-s-seti span.cm-number {color: #cd3f45;}.cm-s-seti span.cm-variable {color: #55b5db;}.cm-s-seti span.cm-variable-2 {color: #a074c4;}.cm-s-seti span.cm-def {color: #55b5db;}.cm-s-seti span.cm-keyword {color: #ff79c6;}.cm-s-seti span.cm-operator {color: #9fca56;}.cm-s-seti span.cm-keyword {color: #e6cd69;}.cm-s-seti span.cm-atom {color: #cd3f45;}.cm-s-seti span.cm-meta {color: #55b5db;}.cm-s-seti span.cm-tag {color: #55b5db;}.cm-s-seti span.cm-attribute {color: #9fca56;}.cm-s-seti span.cm-qualifier {color: #9fca56;}.cm-s-seti span.cm-property {color: #a074c4;}.cm-s-seti span.cm-variable-3 {color: #9fca56;}.cm-s-seti span.cm-builtin {color: #9fca56;}.cm-s-seti .CodeMirror-activeline-background {background: #101213;}.cm-s-seti .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
1771
  Solarized theme for code-mirror
1772
  http://ethanschoonover.com/solarized
1773
  *//*
1774
  Solarized color palette
1775
  http://ethanschoonover.com/solarized/img/solarized-palette.png
1776
- */.solarized.base03 {color: #002b36;}.solarized.base02 {color: #073642;}.solarized.base01 {color: #586e75;}.solarized.base00 {color: #657b83;}.solarized.base0 {color: #839496;}.solarized.base1 {color: #93a1a1;}.solarized.base2 {color: #eee8d5;}.solarized.base3 {color: #fdf6e3;}.solarized.solar-yellow {color: #b58900;}.solarized.solar-orange {color: #cb4b16;}.solarized.solar-red {color: #dc322f;}.solarized.solar-magenta {color: #d33682;}.solarized.solar-violet {color: #6c71c4;}.solarized.solar-blue {color: #268bd2;}.solarized.solar-cyan {color: #2aa198;}.solarized.solar-green {color: #859900;}/* Color scheme for code-mirror */.cm-s-solarized {line-height: 1.45em;color-profile: sRGB;rendering-intent: auto;}.cm-s-solarized.cm-s-dark {color: #839496;background-color: #002b36;text-shadow: #002b36 0 1px;}.cm-s-solarized.cm-s-light {background-color: #fdf6e3;color: #657b83;text-shadow: #eee8d5 0 1px;}.cm-s-solarized .CodeMirror-widget {text-shadow: none;}.cm-s-solarized .cm-header {color: #586e75;}.cm-s-solarized .cm-quote {color: #93a1a1;}.cm-s-solarized .cm-keyword {color: #cb4b16;}.cm-s-solarized .cm-atom {color: #d33682;}.cm-s-solarized .cm-number {color: #d33682;}.cm-s-solarized .cm-def {color: #2aa198;}.cm-s-solarized .cm-variable {color: #839496;}.cm-s-solarized .cm-variable-2 {color: #b58900;}.cm-s-solarized .cm-variable-3 {color: #6c71c4;}.cm-s-solarized .cm-property {color: #2aa198;}.cm-s-solarized .cm-operator {color: #6c71c4;}.cm-s-solarized .cm-comment {color: #586e75;font-style: italic;}.cm-s-solarized .cm-string {color: #859900;}.cm-s-solarized .cm-string-2 {color: #b58900;}.cm-s-solarized .cm-meta {color: #859900;}.cm-s-solarized .cm-qualifier {color: #b58900;}.cm-s-solarized .cm-builtin {color: #d33682;}.cm-s-solarized .cm-bracket {color: #cb4b16;}.cm-s-solarized .CodeMirror-matchingbracket {color: #859900;}.cm-s-solarized .CodeMirror-nonmatchingbracket {color: #dc322f;}.cm-s-solarized .cm-tag {color: #93a1a1;}.cm-s-solarized .cm-attribute {color: #2aa198;}.cm-s-solarized .cm-hr {color: transparent;border-top: 1px solid #586e75;display: block;}.cm-s-solarized .cm-link {color: #93a1a1;cursor: pointer;}.cm-s-solarized .cm-special {color: #6c71c4;}.cm-s-solarized .cm-em {color: #999;text-decoration: underline;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-solarized .cm-strong {color: #eee;}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar {color: #586e75;border-bottom: 1px dotted #dc322f;}.cm-s-solarized.cm-s-dark div.CodeMirror-selected {background: #073642;}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark.CodeMirror ::selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection,.cm-s-dark .CodeMirror-line > span::-moz-selection,.cm-s-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-light div.CodeMirror-selected {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-light .CodeMirror-line > span::-moz-selection,.cm-s-light .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::selection,.cm-s-light .CodeMirror-line > span::selection,.cm-s-light .CodeMirror-line > span > span::selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-ligh .CodeMirror-line > span::-moz-selection,.cm-s-ligh .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}/* Editor styling *//* Little shadow on the view-port of the buffer view */.cm-s-solarized.CodeMirror {box-shadow: inset 7px 0 12px -6px #000;}/* Remove gutter border */.cm-s-solarized .CodeMirror-gutters {border-right: 0;}/* Gutter colors and line number styling based of color scheme (dark / light) *//* Dark */.cm-s-solarized.cm-s-dark .CodeMirror-gutters {background-color: #073642;}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {color: #586e75;text-shadow: #021014 0 -1px;}/* Light */.cm-s-solarized.cm-s-light .CodeMirror-gutters {background-color: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-linenumber {color: #839496;}/* Common */.cm-s-solarized .CodeMirror-linenumber {padding: 0 5px;}.cm-s-solarized .CodeMirror-guttermarker-subtle {color: #586e75;}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker {color: #ddd;}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker {color: #cb4b16;}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {color: #586e75;}/* Cursor */.cm-s-solarized .CodeMirror-cursor {border-left: 1px solid #819090;}/* Fat cursor */.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor {background: #77ee77;}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor {background-color: #77ee77;}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor {background: #586e75;}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor {background-color: #586e75;}/* Active line */.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.06);}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0.06);}.cm-s-the-matrix.CodeMirror {background: #000000;color: #00FF00;}.cm-s-the-matrix div.CodeMirror-selected {background: #2D2D2D;}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line > span::selection,.cm-s-the-matrix .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-gutters {background: #060;border-right: 2px solid #00FF00;}.cm-s-the-matrix .CodeMirror-guttermarker {color: #0f0;}.cm-s-the-matrix .CodeMirror-guttermarker-subtle {color: white;}.cm-s-the-matrix .CodeMirror-linenumber {color: #FFFFFF;}.cm-s-the-matrix .CodeMirror-cursor {border-left: 1px solid #00FF00;}.cm-s-the-matrix span.cm-keyword {color: #008803;font-weight: bold;}.cm-s-the-matrix span.cm-atom {color: #3FF;}.cm-s-the-matrix span.cm-number {color: #FFB94F;}.cm-s-the-matrix span.cm-def {color: #99C;}.cm-s-the-matrix span.cm-variable {color: #F6C;}.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}.cm-s-the-matrix span.cm-variable-3 {color: #96F;}.cm-s-the-matrix span.cm-property {color: #62FFA0;}.cm-s-the-matrix span.cm-operator {color: #999;}.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}.cm-s-the-matrix span.cm-string {color: #39C;}.cm-s-the-matrix span.cm-meta {color: #C9F;}.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}.cm-s-the-matrix span.cm-builtin {color: #30a;}.cm-s-the-matrix span.cm-bracket {color: #cc7;}.cm-s-the-matrix span.cm-tag {color: #FFBD40;}.cm-s-the-matrix span.cm-attribute {color: #FFF700;}.cm-s-the-matrix span.cm-error {color: #FF0000;}.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}/*
1777
 
1778
  Name: Tomorrow Night - Bright
1779
  Author: Chris Kempson
@@ -1788,7 +1784,7 @@ http://ethanschoonover.com/solarized/img/solarized-palette.png
1788
  CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
1789
  Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
1790
 
1791
- */.cm-s-tomorrow-night-eighties.CodeMirror {background: #000000;color: #CCCCCC;}.cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D;}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker {color: #f2777a;}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;}.cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A;}.cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;}.cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-property,.cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;}.cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;}.cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;}.cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;}.cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;}.cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;}.cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;}.cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;}.cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a;color: #6A6A6A;}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600;}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-ttcn .cm-quote {color: #090;}.cm-s-ttcn .cm-negative {color: #d44;}.cm-s-ttcn .cm-positive {color: #292;}.cm-s-ttcn .cm-header,.cm-strong {font-weight: bold;}.cm-s-ttcn .cm-em {font-style: italic;}.cm-s-ttcn .cm-link {text-decoration: underline;}.cm-s-ttcn .cm-strikethrough {text-decoration: line-through;}.cm-s-ttcn .cm-header {color: #00f;font-weight: bold;}.cm-s-ttcn .cm-atom {color: #219;}.cm-s-ttcn .cm-attribute {color: #00c;}.cm-s-ttcn .cm-bracket {color: #997;}.cm-s-ttcn .cm-comment {color: #333333;}.cm-s-ttcn .cm-def {color: #00f;}.cm-s-ttcn .cm-em {font-style: italic;}.cm-s-ttcn .cm-error {color: #f00;}.cm-s-ttcn .cm-hr {color: #999;}.cm-s-ttcn .cm-invalidchar {color: #f00;}.cm-s-ttcn .cm-keyword {font-weight: bold;}.cm-s-ttcn .cm-link {color: #00c;text-decoration: underline;}.cm-s-ttcn .cm-meta {color: #555;}.cm-s-ttcn .cm-negative {color: #d44;}.cm-s-ttcn .cm-positive {color: #292;}.cm-s-ttcn .cm-qualifier {color: #555;}.cm-s-ttcn .cm-strikethrough {text-decoration: line-through;}.cm-s-ttcn .cm-string {color: #006400;}.cm-s-ttcn .cm-string-2 {color: #f50;}.cm-s-ttcn .cm-strong {font-weight: bold;}.cm-s-ttcn .cm-tag {color: #170;}.cm-s-ttcn .cm-variable {color: #8B2252;}.cm-s-ttcn .cm-variable-2 {color: #05a;}.cm-s-ttcn .cm-variable-3 {color: #085;}.cm-s-ttcn .cm-invalidchar {color: #f00;}/* ASN */.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes {color: #27408B;}.cm-s-ttcn .cm-cmipVerbs {color: #8B2252;}.cm-s-ttcn .cm-modifier {color: #D2691E;}.cm-s-ttcn .cm-status {color: #8B4545;}.cm-s-ttcn .cm-storage {color: #A020F0;}.cm-s-ttcn .cm-tags {color: #006400;}/* CFG */.cm-s-ttcn .cm-externalCommands {color: #8B4545;font-weight: bold;}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle {color: #2E8B57;font-weight: bold;}/* TTCN */.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts {color: #006400;}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps {color: #0000FF;}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros {color: #27408B;}.cm-s-ttcn .cm-types {color: #A52A2A;font-weight: bold;}.cm-s-ttcn .cm-visibilityModifiers {font-weight: bold;}.cm-s-twilight.CodeMirror {background: #141414;color: #f7f7f7;}/**/.cm-s-twilight div.CodeMirror-selected {background: #323232;}/**/.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line > span::-moz-selection,.cm-s-twilight .CodeMirror-line > span > span::-moz-selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line > span::selection,.cm-s-twilight .CodeMirror-line > span > span::selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line > span::-moz-selection,.cm-s-twilight .CodeMirror-line > span > span::-moz-selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-gutters {background: #222;border-right: 1px solid #aaa;}.cm-s-twilight .CodeMirror-guttermarker {color: white;}.cm-s-twilight .CodeMirror-guttermarker-subtle {color: #aaa;}.cm-s-twilight .CodeMirror-linenumber {color: #aaa;}.cm-s-twilight .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-twilight .cm-keyword {color: #f9ee98;}/**/.cm-s-twilight .cm-atom {color: #FC0;}.cm-s-twilight .cm-number {color: #ca7841;}/**/.cm-s-twilight .cm-def {color: #8DA6CE;}.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-tag {color: #607392;}/**/.cm-s-twilight span.cm-variable-3,.cm-s-twilight span.cm-def {color: #607392;}/**/.cm-s-twilight .cm-operator {color: #cda869;}/**/.cm-s-twilight .cm-comment {color: #777;font-style: italic;font-weight: normal;}/**/.cm-s-twilight .cm-string {color: #8f9d6a;font-style: italic;}/**/.cm-s-twilight .cm-string-2 {color: #bd6b18;}/*?*/.cm-s-twilight .cm-meta {background-color: #141414;color: #f7f7f7;}/*?*/.cm-s-twilight .cm-builtin {color: #cda869;}/*?*/.cm-s-twilight .cm-tag {color: #997643;}/**/.cm-s-twilight .cm-attribute {color: #d6bb6d;}/*?*/.cm-s-twilight .cm-header {color: #FF6400;}.cm-s-twilight .cm-hr {color: #AEAEAE;}.cm-s-twilight .cm-link {color: #ad9361;font-style: italic;text-decoration: none;}/**/.cm-s-twilight .cm-error {border-bottom: 1px solid red;}.cm-s-twilight .CodeMirror-activeline-background {background: #27282E;}.cm-s-twilight .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/* Taken from the popular Visual Studio Vibrant Ink Schema */.cm-s-vibrant-ink.CodeMirror {background: black;color: white;}.cm-s-vibrant-ink div.CodeMirror-selected {background: #35493c;}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line > span::selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-vibrant-ink .CodeMirror-guttermarker {color: white;}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-vibrant-ink .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-vibrant-ink .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-vibrant-ink .cm-keyword {color: #CC7832;}.cm-s-vibrant-ink .cm-atom {color: #FC0;}.cm-s-vibrant-ink .cm-number {color: #FFEE98;}.cm-s-vibrant-ink .cm-def {color: #8DA6CE;}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant span.cm-tag {color: #FFC66D;}.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def {color: #FFC66D;}.cm-s-vibrant-ink .cm-operator {color: #888;}.cm-s-vibrant-ink .cm-comment {color: gray;font-weight: bold;}.cm-s-vibrant-ink .cm-string {color: #A5C25C;}.cm-s-vibrant-ink .cm-string-2 {color: red;}.cm-s-vibrant-ink .cm-meta {color: #D8FA3C;}.cm-s-vibrant-ink .cm-builtin {color: #8DA6CE;}.cm-s-vibrant-ink .cm-tag {color: #8DA6CE;}.cm-s-vibrant-ink .cm-attribute {color: #8DA6CE;}.cm-s-vibrant-ink .cm-header {color: #FF6400;}.cm-s-vibrant-ink .cm-hr {color: #AEAEAE;}.cm-s-vibrant-ink .cm-link {color: blue;}.cm-s-vibrant-ink .cm-error {border-bottom: 1px solid red;}.cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E;}.cm-s-vibrant-ink .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1792
  Copyright (C) 2011 by MarkLogic Corporation
1793
  Author: Mike Brevoort <mike@brevoort.com>
1794
 
@@ -1809,7 +1805,7 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1809
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1810
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1811
  THE SOFTWARE.
1812
- */.cm-s-xq-dark.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-xq-dark div.CodeMirror-selected {background: #27007A;}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line > span::selection,.cm-s-xq-dark .CodeMirror-line > span > span::selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-xq-dark .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-xq-dark .CodeMirror-guttermarker-subtle {color: #f8f8f8;}.cm-s-xq-dark .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-xq-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-xq-dark span.cm-keyword {color: #FFBD40;}.cm-s-xq-dark span.cm-atom {color: #6C8CD5;}.cm-s-xq-dark span.cm-number {color: #164;}.cm-s-xq-dark span.cm-def {color: #FFF;text-decoration: underline;}.cm-s-xq-dark span.cm-variable {color: #FFF;}.cm-s-xq-dark span.cm-variable-2 {color: #EEE;}.cm-s-xq-dark span.cm-variable-3 {color: #DDD;}.cm-s-xq-dark span.cm-comment {color: gray;}.cm-s-xq-dark span.cm-string {color: #9FEE00;}.cm-s-xq-dark span.cm-meta {color: yellow;}.cm-s-xq-dark span.cm-qualifier {color: #FFF700;}.cm-s-xq-dark span.cm-builtin {color: #30a;}.cm-s-xq-dark span.cm-bracket {color: #cc7;}.cm-s-xq-dark span.cm-tag {color: #FFBD40;}.cm-s-xq-dark span.cm-attribute {color: #FFF700;}.cm-s-xq-dark span.cm-error {color: #f00;}.cm-s-xq-dark .CodeMirror-activeline-background {background: #27282E;}.cm-s-xq-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1813
  Copyright (C) 2011 by MarkLogic Corporation
1814
  Author: Mike Brevoort <mike@brevoort.com>
1815
 
@@ -1830,14 +1826,14 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1830
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1831
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1832
  THE SOFTWARE.
1833
- */.cm-s-xq-light span.cm-keyword {line-height: 1em;font-weight: bold;color: #5A5CAD;}.cm-s-xq-light span.cm-atom {color: #6C8CD5;}.cm-s-xq-light span.cm-number {color: #164;}.cm-s-xq-light span.cm-def {text-decoration: underline;}.cm-s-xq-light span.cm-variable {color: black;}.cm-s-xq-light span.cm-variable-2 {color: black;}.cm-s-xq-light span.cm-variable-3 {color: black;}.cm-s-xq-light span.cm-comment {color: #0080FF;font-style: italic;}.cm-s-xq-light span.cm-string {color: red;}.cm-s-xq-light span.cm-meta {color: yellow;}.cm-s-xq-light span.cm-qualifier {color: grey;}.cm-s-xq-light span.cm-builtin {color: #7EA656;}.cm-s-xq-light span.cm-bracket {color: #cc7;}.cm-s-xq-light span.cm-tag {color: #3F7F7F;}.cm-s-xq-light span.cm-attribute {color: #7F007F;}.cm-s-xq-light span.cm-error {color: #f00;}.cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-xq-light .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;background: yellow;}/*
1834
 
1835
  Name: yeti
1836
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1837
 
1838
  Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)
1839
 
1840
- */.cm-s-yeti.CodeMirror {background-color: #ECEAE8 !important;color: #d1c9c0 !important;border: none;}.cm-s-yeti .CodeMirror-gutters {color: #adaba6;background-color: #E5E1DB;border: none;}.cm-s-yeti .CodeMirror-cursor {border-left: solid thin #d1c9c0;}.cm-s-yeti .CodeMirror-linenumber {color: #adaba6;}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line > span::-moz-selection,.cm-s-yeti .CodeMirror-line > span > span::-moz-selection {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line > span::selection,.cm-s-yeti .CodeMirror-line > span > span::selection {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line > span::-moz-selection,.cm-s-yeti .CodeMirror-line > span > span::-moz-selection {background: #DCD8D2;}.cm-s-yeti span.cm-comment {color: #d4c8be;}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2 {color: #96c0d8;}.cm-s-yeti span.cm-number {color: #a074c4;}.cm-s-yeti span.cm-variable {color: #55b5db;}.cm-s-yeti span.cm-variable-2 {color: #a074c4;}.cm-s-yeti span.cm-def {color: #55b5db;}.cm-s-yeti span.cm-operator {color: #9fb96e;}.cm-s-yeti span.cm-keyword {color: #9fb96e;}.cm-s-yeti span.cm-atom {color: #a074c4;}.cm-s-yeti span.cm-meta {color: #96c0d8;}.cm-s-yeti span.cm-tag {color: #96c0d8;}.cm-s-yeti span.cm-attribute {color: #9fb96e;}.cm-s-yeti span.cm-qualifier {color: #96c0d8;}.cm-s-yeti span.cm-property {color: #a074c4;}.cm-s-yeti span.cm-builtin {color: #a074c4;}.cm-s-yeti span.cm-variable-3 {color: #96c0d8;}.cm-s-yeti .CodeMirror-activeline-background {background: #E7E4E0;}.cm-s-yeti .CodeMirror-matchingbracket {text-decoration: underline;}/**
1841
  * "
1842
  * Using Zenburn color palette from the Emacs Zenburn Theme
1843
  * https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
10
  font-family: monospace;
11
  height: 300px;
12
  color: black;
13
+ direction: ltr;
14
  }/* PADDING */.CodeMirror-lines {
15
  padding: 4px 0;
16
  /* Vertical padding around content */;
138
  color: #05a;
139
  }
140
 
141
+ .cm-s-default .cm-variable-3,.cm-s-default .cm-type {
142
  color: #085;
143
  }
144
 
409
  }
410
 
411
  .cm-searching {
412
+ background-color: #ffa;
413
+ background-color: rgba(255, 255, 0, 0.4);
414
  }/* Used to force a border model for a node */.cm-force-border {
415
  padding-right: .1px;
416
  }/* See issue #2901 */.cm-tab-wrap-hack:after {
710
  color: #cacbcc;
711
  }
712
 
713
+ .cm-s-abcdef span.cm-variable-3,.cm-s-abcdef span.cm-type {
714
  color: #def;
715
  }
716
 
806
  color: #eed1b3;
807
  }
808
 
809
+ .cm-s-ambiance .cm-variable-3,.cm-s-ambiance .cm-type {
810
  color: #faded3;
811
  }
812
 
1244
 
1245
  .cm-s-bespin .CodeMirror-activeline-background {
1246
  background: #404040;
1247
+ }/* Port of TextMate's Blackboard theme */.cm-s-blackboard.CodeMirror {background: #0C1021;color: #F8F8F8;}.cm-s-blackboard div.CodeMirror-selected {background: #253B76;}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line > span::selection,.cm-s-blackboard .CodeMirror-line > span > span::selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-gutters {background: #0C1021;border-right: 0;}.cm-s-blackboard .CodeMirror-guttermarker {color: #FBDE2D;}.cm-s-blackboard .CodeMirror-guttermarker-subtle {color: #888;}.cm-s-blackboard .CodeMirror-linenumber {color: #888;}.cm-s-blackboard .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-blackboard .cm-keyword {color: #FBDE2D;}.cm-s-blackboard .cm-atom {color: #D8FA3C;}.cm-s-blackboard .cm-number {color: #D8FA3C;}.cm-s-blackboard .cm-def {color: #8DA6CE;}.cm-s-blackboard .cm-variable {color: #FF6400;}.cm-s-blackboard .cm-operator {color: #FBDE2D;}.cm-s-blackboard .cm-comment {color: #AEAEAE;}.cm-s-blackboard .cm-string {color: #61CE3C;}.cm-s-blackboard .cm-string-2 {color: #61CE3C;}.cm-s-blackboard .cm-meta {color: #D8FA3C;}.cm-s-blackboard .cm-builtin {color: #8DA6CE;}.cm-s-blackboard .cm-tag {color: #8DA6CE;}.cm-s-blackboard .cm-attribute {color: #8DA6CE;}.cm-s-blackboard .cm-header {color: #FF6400;}.cm-s-blackboard .cm-hr {color: #AEAEAE;}.cm-s-blackboard .cm-link {color: #8DA6CE;}.cm-s-blackboard .cm-error {background: #9D1E15;color: #F8F8F8;}.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636;}.cm-s-blackboard .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-cobalt.CodeMirror {background: #002240;color: white;}.cm-s-cobalt div.CodeMirror-selected {background: #b36539;}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line > span::selection,.cm-s-cobalt .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-cobalt .CodeMirror-guttermarker {color: #ffee80;}.cm-s-cobalt .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-cobalt span.cm-comment {color: #08f;}.cm-s-cobalt span.cm-atom {color: #845dc4;}.cm-s-cobalt span.cm-number,.cm-s-cobalt span.cm-attribute {color: #ff80e1;}.cm-s-cobalt span.cm-keyword {color: #ffee80;}.cm-s-cobalt span.cm-string {color: #3ad900;}.cm-s-cobalt span.cm-meta {color: #ff9d00;}.cm-s-cobalt span.cm-variable-2,.cm-s-cobalt span.cm-tag {color: #9effff;}.cm-s-cobalt span.cm-variable-3,.cm-s-cobalt span.cm-def,.cm-s-cobalt .cm-type {color: white;}.cm-s-cobalt span.cm-bracket {color: #d8d8d8;}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special {color: #ff9e59;}.cm-s-cobalt span.cm-link {color: #845dc4;}.cm-s-cobalt span.cm-error {color: #9d1e15;}.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57;}.cm-s-cobalt .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-colorforth.CodeMirror {background: #000000;color: #f8f8f8;}.cm-s-colorforth .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-colorforth .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-colorforth .CodeMirror-guttermarker-subtle {color: #78846f;}.cm-s-colorforth .CodeMirror-linenumber {color: #bababa;}.cm-s-colorforth .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-colorforth span.cm-comment {color: #ededed;}.cm-s-colorforth span.cm-def {color: #ff1c1c;font-weight: bold;}.cm-s-colorforth span.cm-keyword {color: #ffd900;}.cm-s-colorforth span.cm-builtin {color: #00d95a;}.cm-s-colorforth span.cm-variable {color: #73ff00;}.cm-s-colorforth span.cm-string {color: #007bff;}.cm-s-colorforth span.cm-number {color: #00c4ff;}.cm-s-colorforth span.cm-atom {color: #606060;}.cm-s-colorforth span.cm-variable-2 {color: #EEE;}.cm-s-colorforth span.cm-variable-3,.cm-s-colorforth span.cm-type {color: #DDD;}.cm-s-colorforth span.cm-meta {color: yellow;}.cm-s-colorforth span.cm-qualifier {color: #FFF700;}.cm-s-colorforth span.cm-bracket {color: #cc7;}.cm-s-colorforth span.cm-tag {color: #FFBD40;}.cm-s-colorforth span.cm-attribute {color: #FFF700;}.cm-s-colorforth span.cm-error {color: #f00;}.cm-s-colorforth div.CodeMirror-selected {background: #333d53;}.cm-s-colorforth span.cm-compilation {background: rgba(255, 255, 255, 0.12);}.cm-s-colorforth .CodeMirror-activeline-background {background: #253540;}/*
1248
 
1249
  Name: dracula
1250
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1251
 
1252
  Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
1253
 
1254
+ */.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters {background-color: #282a36 !important;color: #f8f8f2 !important;border: none;}.cm-s-dracula .CodeMirror-gutters {color: #282a36;}.cm-s-dracula .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-dracula .CodeMirror-linenumber {color: #6D8A88;}.cm-s-dracula .CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line > span::-moz-selection,.cm-s-dracula .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line > span::selection,.cm-s-dracula .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line > span::-moz-selection,.cm-s-dracula .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula span.cm-comment {color: #6272a4;}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2 {color: #f1fa8c;}.cm-s-dracula span.cm-number {color: #bd93f9;}.cm-s-dracula span.cm-variable {color: #50fa7b;}.cm-s-dracula span.cm-variable-2 {color: white;}.cm-s-dracula span.cm-def {color: #50fa7b;}.cm-s-dracula span.cm-operator {color: #ff79c6;}.cm-s-dracula span.cm-keyword {color: #ff79c6;}.cm-s-dracula span.cm-atom {color: #bd93f9;}.cm-s-dracula span.cm-meta {color: #f8f8f2;}.cm-s-dracula span.cm-tag {color: #ff79c6;}.cm-s-dracula span.cm-attribute {color: #50fa7b;}.cm-s-dracula span.cm-qualifier {color: #50fa7b;}.cm-s-dracula span.cm-property {color: #66d9ef;}.cm-s-dracula span.cm-builtin {color: #50fa7b;}.cm-s-dracula span.cm-variable-3,.cm-s-dracula span.cm-type {color: #ffb86c;}.cm-s-dracula .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
1255
  Name: DuoTone-Dark
1256
  Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
1257
 
1258
  CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
1259
+ */.cm-s-duotone-dark.CodeMirror {background: #2a2734;color: #6c6783;}.cm-s-duotone-dark div.CodeMirror-selected {background: #545167!important;}.cm-s-duotone-dark .CodeMirror-gutters {background: #2a2734;border-right: 0px;}.cm-s-duotone-dark .CodeMirror-linenumber {color: #545167;}/* begin cursor */.cm-s-duotone-dark .CodeMirror-cursor {border-left: 1px solid #ffad5c; /* border-left: 1px solid #ffad5c80; */border-right: .5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */opacity: .5;}.cm-s-duotone-dark .CodeMirror-activeline-background {background: #363342; /* background: #36334280; */opacity: .5;}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor {background: #ffad5c; /* background: #ffad5c80; */opacity: .5;}/* end cursor */.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-variable,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-link {color: #ffcc99;}.cm-s-duotone-dark span.cm-property {color: #9a86fd;}.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit,.cm-s-duotone-dark span.cm-negative {color: #e09142;}.cm-s-duotone-dark span.cm-string {color: #ffb870;}.cm-s-duotone-dark span.cm-operator {color: #ffad5c;}.cm-s-duotone-dark span.cm-positive {color: #6a51e6;}.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3,.cm-s-duotone-dark span.cm-type,.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-url {color: #7a63ee;}.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-tag,.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-em {color: #eeebff;}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment {color: #6c6783;}/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar {
1260
  color: #f00;
1261
  }
1262
 
1326
  color: #896724;
1327
  }
1328
 
1329
+ .cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3,.cm-s-duotone-light span.cm-type,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-url {
1330
  color: #896724;
1331
  }
1332
 
1336
 
1337
  .cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment {
1338
  color: #b6ad9a;
1339
+ }/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... *//* .cm-s-duotone-light span.cm-error { background: #896724; color: #728fcb; } */.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar {color: #f00;}.cm-s-duotone-light span.cm-header {font-weight: normal;}.cm-s-duotone-light .CodeMirror-matchingbracket {text-decoration: underline;color: #faf8f5 !important;}.cm-s-eclipse span.cm-meta {color: #FF1717;}.cm-s-eclipse span.cm-keyword {line-height: 1em;font-weight: bold;color: #7F0055;}.cm-s-eclipse span.cm-atom {color: #219;}.cm-s-eclipse span.cm-number {color: #164;}.cm-s-eclipse span.cm-def {color: #00f;}.cm-s-eclipse span.cm-variable {color: black;}.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}.cm-s-eclipse span.cm-variable-3,.cm-s-eclipse span.cm-type {color: #0000C0;}.cm-s-eclipse span.cm-property {color: black;}.cm-s-eclipse span.cm-operator {color: black;}.cm-s-eclipse span.cm-comment {color: #3F7F5F;}.cm-s-eclipse span.cm-string {color: #2A00FF;}.cm-s-eclipse span.cm-string-2 {color: #f50;}.cm-s-eclipse span.cm-qualifier {color: #555;}.cm-s-eclipse span.cm-builtin {color: #30a;}.cm-s-eclipse span.cm-bracket {color: #cc7;}.cm-s-eclipse span.cm-tag {color: #170;}.cm-s-eclipse span.cm-attribute {color: #00c;}.cm-s-eclipse span.cm-link {color: #219;}.cm-s-eclipse span.cm-error {color: #f00;}.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-eclipse .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string,.cm-s-elegant span.cm-atom {color: #762;}.cm-s-elegant span.cm-comment {color: #262;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-meta {color: #555;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-variable {color: black;}.cm-s-elegant span.cm-variable-2 {color: #b11;}.cm-s-elegant span.cm-qualifier {color: #555;}.cm-s-elegant span.cm-keyword {color: #730;}.cm-s-elegant span.cm-builtin {color: #30a;}.cm-s-elegant span.cm-link {color: #762;}.cm-s-elegant span.cm-error {background-color: #fdd;}.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-elegant .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-erlang-dark.CodeMirror {background: #002240;color: white;}.cm-s-erlang-dark div.CodeMirror-selected {background: #b36539;}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line > span::selection,.cm-s-erlang-dark .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-erlang-dark .CodeMirror-guttermarker {color: white;}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-erlang-dark span.cm-quote {color: #ccc;}.cm-s-erlang-dark span.cm-atom {color: #f133f1;}.cm-s-erlang-dark span.cm-attribute {color: #ff80e1;}.cm-s-erlang-dark span.cm-bracket {color: #ff9d00;}.cm-s-erlang-dark span.cm-builtin {color: #eaa;}.cm-s-erlang-dark span.cm-comment {color: #77f;}.cm-s-erlang-dark span.cm-def {color: #e7a;}.cm-s-erlang-dark span.cm-keyword {color: #ffee80;}.cm-s-erlang-dark span.cm-meta {color: #50fefe;}.cm-s-erlang-dark span.cm-number {color: #ffd0d0;}.cm-s-erlang-dark span.cm-operator {color: #d55;}.cm-s-erlang-dark span.cm-property {color: #ccc;}.cm-s-erlang-dark span.cm-qualifier {color: #ccc;}.cm-s-erlang-dark span.cm-special {color: #ffbbbb;}.cm-s-erlang-dark span.cm-string {color: #3ad900;}.cm-s-erlang-dark span.cm-string-2 {color: #ccc;}.cm-s-erlang-dark span.cm-tag {color: #9effff;}.cm-s-erlang-dark span.cm-variable {color: #50fe50;}.cm-s-erlang-dark span.cm-variable-2 {color: #e0e;}.cm-s-erlang-dark span.cm-variable-3,.cm-s-erlang-dark span.cm-type {color: #ccc;}.cm-s-erlang-dark span.cm-error {color: #9d1e15;}.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461;}.cm-s-erlang-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1340
 
1341
  Name: Hopscotch
1342
  Author: Jan T. Sott
1346
 
1347
  */.cm-s-hopscotch.CodeMirror {background: #322931;color: #d5d3d5;}.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}.cm-s-hopscotch .CodeMirror-gutters {background: #322931;border-right: 0px;}.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}.cm-s-hopscotch span.cm-comment {color: #b33508;}.cm-s-hopscotch span.cm-atom {color: #c85e7c;}.cm-s-hopscotch span.cm-number {color: #c85e7c;}.cm-s-hopscotch span.cm-property,.cm-s-hopscotch span.cm-attribute {color: #8fc13e;}.cm-s-hopscotch span.cm-keyword {color: #dd464c;}.cm-s-hopscotch span.cm-string {color: #fdcc59;}.cm-s-hopscotch span.cm-variable {color: #8fc13e;}.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}.cm-s-hopscotch span.cm-def {color: #fd8b19;}.cm-s-hopscotch span.cm-error {background: #dd464c;color: #989498;}.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}.cm-s-hopscotch span.cm-tag {color: #dd464c;}.cm-s-hopscotch span.cm-link {color: #c85e7c;}.cm-s-hopscotch .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-hopscotch .CodeMirror-activeline-background {background: #302020;}/*
1348
  ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
1349
+ */.cm-s-icecoder {color: #666;background: #1d1d1b;}.cm-s-icecoder span.cm-keyword {color: #eee;font-weight: bold;}/* off-white 1 */.cm-s-icecoder span.cm-atom {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-number {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-def {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-variable {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-variable-2 {color: #cc1e5c;}/* pink */.cm-s-icecoder span.cm-variable-3,.cm-s-icecoder span.cm-type {color: #f9602c;}/* orange */.cm-s-icecoder span.cm-property {color: #eee;}/* off-white 1 */.cm-s-icecoder span.cm-operator {color: #9179bb;}/* purple */.cm-s-icecoder span.cm-comment {color: #97a3aa;}/* grey-blue */.cm-s-icecoder span.cm-string {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-string-2 {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-meta {color: #555;}/* grey */.cm-s-icecoder span.cm-qualifier {color: #555;}/* grey */.cm-s-icecoder span.cm-builtin {color: #214e7b;}/* bright blue */.cm-s-icecoder span.cm-bracket {color: #cc7;}/* grey-yellow */.cm-s-icecoder span.cm-tag {color: #e8e8e8;}/* off-white 2 */.cm-s-icecoder span.cm-attribute {color: #099;}/* teal */.cm-s-icecoder span.cm-header {color: #6a0d6a;}/* purple-pink */.cm-s-icecoder span.cm-quote {color: #186718;}/* dark green */.cm-s-icecoder span.cm-hr {color: #888;}/* mid-grey */.cm-s-icecoder span.cm-link {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-error {color: #d00;}/* red */.cm-s-icecoder .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-icecoder div.CodeMirror-selected {color: #fff;background: #037;}.cm-s-icecoder .CodeMirror-gutters {background: #1d1d1b;min-width: 41px;border-right: 0;}.cm-s-icecoder .CodeMirror-linenumber {color: #555;cursor: default;}.cm-s-icecoder .CodeMirror-matchingbracket {color: #fff !important;background: #555 !important;}.cm-s-icecoder .CodeMirror-activeline-background {background: #000;}/*
1350
 
1351
  Name: Isotope
1352
  Author: David Desandro / Jan T. Sott
1357
  */.cm-s-isotope.CodeMirror {background: #000000;color: #e0e0e0;}.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}.cm-s-isotope .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-isotope .CodeMirror-linenumber {color: #808080;}.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}.cm-s-isotope span.cm-comment {color: #3300ff;}.cm-s-isotope span.cm-atom {color: #cc00ff;}.cm-s-isotope span.cm-number {color: #cc00ff;}.cm-s-isotope span.cm-property,.cm-s-isotope span.cm-attribute {color: #33ff00;}.cm-s-isotope span.cm-keyword {color: #ff0000;}.cm-s-isotope span.cm-string {color: #ff0099;}.cm-s-isotope span.cm-variable {color: #33ff00;}.cm-s-isotope span.cm-variable-2 {color: #0066ff;}.cm-s-isotope span.cm-def {color: #ff9900;}.cm-s-isotope span.cm-error {background: #ff0000;color: #c0c0c0;}.cm-s-isotope span.cm-bracket {color: #e0e0e0;}.cm-s-isotope span.cm-tag {color: #ff0000;}.cm-s-isotope span.cm-link {color: #cc00ff;}.cm-s-isotope .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-isotope .CodeMirror-activeline-background {background: #202020;}/*
1358
  http://lesscss.org/ dark theme
1359
  Ported to CodeMirror by Peter Kroon
1360
+ */.cm-s-lesser-dark {line-height: 1.3em;}.cm-s-lesser-dark.CodeMirror {background: #262626;color: #EBEFE7;text-shadow: 0 -1px 1px #262626;}.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B;}/* 33322B*/.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line > span::selection,.cm-s-lesser-dark .CodeMirror-line > span > span::selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-lesser-dark pre {padding: 0 8px;}/*editable code holder*/.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket {color: #7EFC7E;}/*65FC65*/.cm-s-lesser-dark .CodeMirror-gutters {background: #262626;border-right: 1px solid #aaa;}.cm-s-lesser-dark .CodeMirror-guttermarker {color: #599eff;}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-lesser-dark .CodeMirror-linenumber {color: #777;}.cm-s-lesser-dark span.cm-header {color: #a0a;}.cm-s-lesser-dark span.cm-quote {color: #090;}.cm-s-lesser-dark span.cm-keyword {color: #599eff;}.cm-s-lesser-dark span.cm-atom {color: #C2B470;}.cm-s-lesser-dark span.cm-number {color: #B35E4D;}.cm-s-lesser-dark span.cm-def {color: white;}.cm-s-lesser-dark span.cm-variable {color: #D9BF8C;}.cm-s-lesser-dark span.cm-variable-2 {color: #669199;}.cm-s-lesser-dark span.cm-variable-3,.cm-s-lesser-dark span.cm-type {color: white;}.cm-s-lesser-dark span.cm-property {color: #92A75C;}.cm-s-lesser-dark span.cm-operator {color: #92A75C;}.cm-s-lesser-dark span.cm-comment {color: #666;}.cm-s-lesser-dark span.cm-string {color: #BCD279;}.cm-s-lesser-dark span.cm-string-2 {color: #f50;}.cm-s-lesser-dark span.cm-meta {color: #738C73;}.cm-s-lesser-dark span.cm-qualifier {color: #555;}.cm-s-lesser-dark span.cm-builtin {color: #ff9e59;}.cm-s-lesser-dark span.cm-bracket {color: #EBEFE7;}.cm-s-lesser-dark span.cm-tag {color: #669199;}.cm-s-lesser-dark span.cm-attribute {color: #00c;}.cm-s-lesser-dark span.cm-hr {color: #999;}.cm-s-lesser-dark span.cm-link {color: #00c;}.cm-s-lesser-dark span.cm-error {color: #9d1e15;}.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A;}.cm-s-lesser-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-liquibyte.CodeMirror {background-color: #000;color: #fff;line-height: 1.2em;font-size: 1em;}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {text-decoration: underline;-webkit-text-decoration-color: #0f0;text-decoration-color: #0f0;-webkit-text-decoration-style: wavy;text-decoration-style: wavy;}.cm-s-liquibyte .cm-trailingspace {text-decoration: line-through;-webkit-text-decoration-color: #f00;text-decoration-color: #f00;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .cm-tab {text-decoration: line-through;-webkit-text-decoration-color: #404040;text-decoration-color: #404040;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .CodeMirror-gutters {background-color: #262626;border-right: 1px solid #505050;padding-right: 0.8em;}.cm-s-liquibyte .CodeMirror-gutter-elt div {font-size: 1.2em;}.cm-s-liquibyte .CodeMirror-linenumber {color: #606060;padding-left: 0;}.cm-s-liquibyte .CodeMirror-cursor {border-left: 1px solid #eee;}.cm-s-liquibyte span.cm-comment {color: #008000;}.cm-s-liquibyte span.cm-def {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-keyword {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-builtin {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-variable {color: #5967ff;font-weight: bold;}.cm-s-liquibyte span.cm-string {color: #ff8000;}.cm-s-liquibyte span.cm-number {color: #0f0;font-weight: bold;}.cm-s-liquibyte span.cm-atom {color: #bf3030;font-weight: bold;}.cm-s-liquibyte span.cm-variable-2 {color: #007f7f;font-weight: bold;}.cm-s-liquibyte span.cm-variable-3,.cm-s-liquibyte span.cm-type {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-property {color: #999;font-weight: bold;}.cm-s-liquibyte span.cm-operator {color: #fff;}.cm-s-liquibyte span.cm-meta {color: #0f0;}.cm-s-liquibyte span.cm-qualifier {color: #fff700;font-weight: bold;}.cm-s-liquibyte span.cm-bracket {color: #cc7;}.cm-s-liquibyte span.cm-tag {color: #ff0;font-weight: bold;}.cm-s-liquibyte span.cm-attribute {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-error {color: #f00;}.cm-s-liquibyte div.CodeMirror-selected {background-color: rgba(255, 0, 0, 0.25);}.cm-s-liquibyte span.cm-compilation {background-color: rgba(255, 255, 255, 0.12);}.cm-s-liquibyte .CodeMirror-activeline-background {background-color: rgba(0, 255, 0, 0.15);}/* Default styles for common addons */.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket {color: #0f0;font-weight: bold;}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket {color: #f00;font-weight: bold;}.CodeMirror-matchingtag {background-color: rgba(150, 255, 0, 0.3);}/* Scrollbars *//* Simple */.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {background-color: rgba(80, 80, 80, 0.7);}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {background-color: rgba(80, 80, 80, 0.3);border: 1px solid #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {border-top: 1px solid #404040;border-bottom: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {border-left: 1px solid #404040;border-right: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {background-color: #262626;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {background-color: #262626;border-top: 1px solid #404040;}/* Overlay */.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div {background-color: #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {border: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {border: 1px solid #404040;}/*
1361
 
1362
  Name: material
1363
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1364
 
1365
  Original material color scheme by Mattia Astorino (https://github.com/equinusocio/material-theme)
1366
 
1367
+ */.cm-s-material.CodeMirror {background-color: #263238;color: #e9eded;}.cm-s-material .CodeMirror-gutters {background: #263238;color: #537f7e;border: none;}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber {color: #537f7e;}.cm-s-material .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-material div.CodeMirror-selected {background: rgba(255, 255, 255, 0.15);}.cm-s-material.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line > span::-moz-selection,.cm-s-material .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line > span::selection,.cm-s-material .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line > span::-moz-selection,.cm-s-material .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0);}.cm-s-material .cm-keyword {color: #c792ea;}.cm-s-material .cm-operator {color: #e9eded;}.cm-s-material .cm-variable-2 {color: #80CBC4;}.cm-s-material .cm-variable-3,.cm-s-material .cm-type {color: #82B1FF;}.cm-s-material .cm-builtin {color: #DECB6B;}.cm-s-material .cm-atom {color: #F77669;}.cm-s-material .cm-number {color: #F77669;}.cm-s-material .cm-def {color: #e9eded;}.cm-s-material .cm-string {color: #C3E88D;}.cm-s-material .cm-string-2 {color: #80CBC4;}.cm-s-material .cm-comment {color: #546E7A;}.cm-s-material .cm-variable {color: #82B1FF;}.cm-s-material .cm-tag {color: #80CBC4;}.cm-s-material .cm-meta {color: #80CBC4;}.cm-s-material .cm-attribute {color: #FFCB6B;}.cm-s-material .cm-property {color: #80CBAE;}.cm-s-material .cm-qualifier {color: #DECB6B;}.cm-s-material .cm-variable-3,.cm-s-material .cm-type {color: #DECB6B;}.cm-s-material .cm-tag {color: #ff5370;}.cm-s-material .cm-error {color: #ffffff;background-color: #EC5F67;}.cm-s-material .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/****************************************************************//* Based on mbonaci's Brackets mbo theme *//* https://github.com/mbonaci/global/blob/master/Mbo.tmTheme *//* Create your own: http://tmtheme-editor.herokuapp.com *//****************************************************************/.cm-s-mbo.CodeMirror {
1368
  background: #2c2c2c;
1369
  color: #ffffec;
1370
  }
1542
  color: #690;
1543
  }
1544
 
1545
+ .cm-s-mdn-like span.cm-variable-3,.cm-s-mdn-like span.cm-def,.cm-s-mdn-like span.cm-type {
1546
  color: #07a;
1547
  }
1548
 
1628
  color: #D1EDFF;
1629
  }
1630
 
 
 
 
 
 
1631
  .cm-s-midnight div.CodeMirror-selected {
1632
  background: #314D67;
1633
  }
1721
  .cm-s-midnight .CodeMirror-matchingbracket {
1722
  text-decoration: underline;
1723
  color: white !important;
1724
+ }/* Based on Sublime Text's Monokai theme */.cm-s-monokai.CodeMirror {background: #272822;color: #f8f8f2;}.cm-s-monokai div.CodeMirror-selected {background: #49483E;}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line > span::selection,.cm-s-monokai .CodeMirror-line > span > span::selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-gutters {background: #272822;border-right: 0px;}.cm-s-monokai .CodeMirror-guttermarker {color: white;}.cm-s-monokai .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-monokai span.cm-comment {color: #75715e;}.cm-s-monokai span.cm-atom {color: #ae81ff;}.cm-s-monokai span.cm-number {color: #ae81ff;}.cm-s-monokai span.cm-property,.cm-s-monokai span.cm-attribute {color: #a6e22e;}.cm-s-monokai span.cm-keyword {color: #f92672;}.cm-s-monokai span.cm-builtin {color: #66d9ef;}.cm-s-monokai span.cm-string {color: #e6db74;}.cm-s-monokai span.cm-variable {color: #f8f8f2;}.cm-s-monokai span.cm-variable-2 {color: #9effff;}.cm-s-monokai span.cm-variable-3,.cm-s-monokai span.cm-type {color: #66d9ef;}.cm-s-monokai span.cm-def {color: #fd971f;}.cm-s-monokai span.cm-bracket {color: #f8f8f2;}.cm-s-monokai span.cm-tag {color: #f92672;}.cm-s-monokai span.cm-header {color: #ae81ff;}.cm-s-monokai span.cm-link {color: #ae81ff;}.cm-s-monokai span.cm-error {background: #f92672;color: #f8f8f0;}.cm-s-monokai .CodeMirror-activeline-background {background: #373831;}.cm-s-monokai .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-neat span.cm-comment {color: #a86;}.cm-s-neat span.cm-keyword {line-height: 1em;font-weight: bold;color: blue;}.cm-s-neat span.cm-string {color: #a22;}.cm-s-neat span.cm-builtin {line-height: 1em;font-weight: bold;color: #077;}.cm-s-neat span.cm-special {line-height: 1em;font-weight: bold;color: #0aa;}.cm-s-neat span.cm-variable {color: black;}.cm-s-neat span.cm-number,.cm-s-neat span.cm-atom {color: #3a3;}.cm-s-neat span.cm-meta {color: #555;}.cm-s-neat span.cm-link {color: #3a3;}.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-neat .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}/* neo theme for codemirror *//* Color scheme */.cm-s-neo.CodeMirror {background-color: #ffffff;color: #2e383c;line-height: 1.4375;}.cm-s-neo .cm-comment {color: #75787b;}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property {color: #1d75b3;}.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color: #75438a;}.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color: #9c3328;}.cm-s-neo .cm-string {color: #b35e14;}.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color: #047d65;}/* Editor styling */.cm-s-neo pre {padding: 0;}.cm-s-neo .CodeMirror-gutters {border: none;border-right: 10px solid transparent;background-color: transparent;}.cm-s-neo .CodeMirror-linenumber {padding: 0;color: #e0e2e5;}.cm-s-neo .CodeMirror-guttermarker {color: #1d75b3;}.cm-s-neo .CodeMirror-guttermarker-subtle {color: #e0e2e5;}.cm-s-neo .CodeMirror-cursor {width: auto;border: 0;background: rgba(155, 157, 162, 0.37);z-index: 1;}/* Loosely based on the Midnight Textmate theme */.cm-s-night.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-night div.CodeMirror-selected {background: #447;}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line > span::selection,.cm-s-night .CodeMirror-line > span > span::selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-night .CodeMirror-guttermarker {color: white;}.cm-s-night .CodeMirror-guttermarker-subtle {color: #bbb;}.cm-s-night .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-night .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-night span.cm-comment {color: #8900d1;}.cm-s-night span.cm-atom {color: #845dc4;}.cm-s-night span.cm-number,.cm-s-night span.cm-attribute {color: #ffd500;}.cm-s-night span.cm-keyword {color: #599eff;}.cm-s-night span.cm-string {color: #37f14a;}.cm-s-night span.cm-meta {color: #7678e2;}.cm-s-night span.cm-variable-2,.cm-s-night span.cm-tag {color: #99b2ff;}.cm-s-night span.cm-variable-3,.cm-s-night span.cm-def,.cm-s-night span.cm-type {color: white;}.cm-s-night span.cm-bracket {color: #8da6ce;}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special {color: #ff9e59;}.cm-s-night span.cm-link {color: #845dc4;}.cm-s-night span.cm-error {color: #9d1e15;}.cm-s-night .CodeMirror-activeline-background {background: #1C005A;}.cm-s-night .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1725
  Name: Panda Syntax
1726
  Author: Siamak Mokhtari (http://github.com/siamak/)
1727
  CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
1728
+ */.cm-s-panda-syntax {background: #292A2B;color: #E6E6E6;line-height: 1.5;font-family: 'Operator Mono', 'Source Sans Pro', Menlo, Monaco, Consolas, Courier New, monospace;}.cm-s-panda-syntax .CodeMirror-cursor {border-color: #ff2c6d;}.cm-s-panda-syntax .CodeMirror-activeline-background {background: rgba(99, 123, 156, 0.1);}.cm-s-panda-syntax .CodeMirror-selected {background: #FFF;}.cm-s-panda-syntax .cm-comment {font-style: italic;color: #676B79;}.cm-s-panda-syntax .cm-operator {color: #f3f3f3;}.cm-s-panda-syntax .cm-string {color: #19F9D8;}.cm-s-panda-syntax .cm-string-2 {color: #FFB86C;}.cm-s-panda-syntax .cm-tag {color: #ff2c6d;}.cm-s-panda-syntax .cm-meta {color: #b084eb;}.cm-s-panda-syntax .cm-number {color: #FFB86C;}.cm-s-panda-syntax .cm-atom {color: #ff2c6d;}.cm-s-panda-syntax .cm-keyword {color: #FF75B5;}.cm-s-panda-syntax .cm-variable {color: #ffb86c;}.cm-s-panda-syntax .cm-variable-2 {color: #ff9ac1;}.cm-s-panda-syntax .cm-variable-3,.cm-s-panda-syntax .cm-type {color: #ff9ac1;}.cm-s-panda-syntax .cm-def {color: #e6e6e6;}.cm-s-panda-syntax .cm-property {color: #f3f3f3;}.cm-s-panda-syntax .cm-unit {color: #ffb86c;}.cm-s-panda-syntax .cm-attribute {color: #ffb86c;}.cm-s-panda-syntax .CodeMirror-matchingbracket {border-bottom: 1px dotted #19F9D8;padding-bottom: 2px;color: #e6e6e6;}.cm-s-panda-syntax .CodeMirror-gutters {background: #292a2b;border-right-color: rgba(255, 255, 255, 0.1);}.cm-s-panda-syntax .CodeMirror-linenumber {color: #e6e6e6;opacity: 0.6;}/*
1729
 
1730
  Name: Paraíso (Dark)
1731
  Author: Jan T. Sott
1748
  * @author Dennis Thompson, AtomicPages LLC
1749
  * @version 1.1
1750
  * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme
1751
+ */.cm-s-pastel-on-dark.CodeMirror {background: #2c2827;color: #8F938F;line-height: 1.5;}.cm-s-pastel-on-dark div.CodeMirror-selected {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line > span::selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-gutters {background: #34302f;border-right: 0px;padding: 0 3px;}.cm-s-pastel-on-dark .CodeMirror-guttermarker {color: white;}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle {color: #8F938F;}.cm-s-pastel-on-dark .CodeMirror-linenumber {color: #8F938F;}.cm-s-pastel-on-dark .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-pastel-on-dark span.cm-comment {color: #A6C6FF;}.cm-s-pastel-on-dark span.cm-atom {color: #DE8E30;}.cm-s-pastel-on-dark span.cm-number {color: #CCCCCC;}.cm-s-pastel-on-dark span.cm-property {color: #8F938F;}.cm-s-pastel-on-dark span.cm-attribute {color: #a6e22e;}.cm-s-pastel-on-dark span.cm-keyword {color: #AEB2F8;}.cm-s-pastel-on-dark span.cm-string {color: #66A968;}.cm-s-pastel-on-dark span.cm-variable {color: #AEB2F8;}.cm-s-pastel-on-dark span.cm-variable-2 {color: #BEBF55;}.cm-s-pastel-on-dark span.cm-variable-3,.cm-s-pastel-on-dark span.cm-type {color: #DE8E30;}.cm-s-pastel-on-dark span.cm-def {color: #757aD8;}.cm-s-pastel-on-dark span.cm-bracket {color: #f8f8f2;}.cm-s-pastel-on-dark span.cm-tag {color: #C1C144;}.cm-s-pastel-on-dark span.cm-link {color: #ae81ff;}.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin {color: #C1C144;}.cm-s-pastel-on-dark span.cm-error {background: #757aD8;color: #f8f8f0;}.cm-s-pastel-on-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.031);}.cm-s-pastel-on-dark .CodeMirror-matchingbracket {border: 1px solid rgba(255, 255, 255, 0.25);color: #8F938F !important;margin: -1px -1px 0 -1px;}/*
1752
 
1753
  Name: Railscasts
1754
  Author: Ryan Bates (http://railscasts.com)
1756
  CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
1757
  Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
1758
 
1759
+ */.cm-s-railscasts.CodeMirror {background: #2b2b2b;color: #f4f1ed;}.cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}.cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b;border-right: 0px;}.cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}.cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}.cm-s-railscasts span.cm-comment {color: #bc9458;}.cm-s-railscasts span.cm-atom {color: #b6b3eb;}.cm-s-railscasts span.cm-number {color: #b6b3eb;}.cm-s-railscasts span.cm-property,.cm-s-railscasts span.cm-attribute {color: #a5c261;}.cm-s-railscasts span.cm-keyword {color: #da4939;}.cm-s-railscasts span.cm-string {color: #ffc66d;}.cm-s-railscasts span.cm-variable {color: #a5c261;}.cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}.cm-s-railscasts span.cm-def {color: #cc7833;}.cm-s-railscasts span.cm-error {background: #da4939;color: #d4cfc9;}.cm-s-railscasts span.cm-bracket {color: #f4f1ed;}.cm-s-railscasts span.cm-tag {color: #da4939;}.cm-s-railscasts span.cm-link {color: #b6b3eb;}.cm-s-railscasts .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-railscasts .CodeMirror-activeline-background {background: #303040;}.cm-s-rubyblue.CodeMirror {background: #112435;color: white;}.cm-s-rubyblue div.CodeMirror-selected {background: #38566F;}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line > span::selection,.cm-s-rubyblue .CodeMirror-line > span > span::selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-gutters {background: #1F4661;border-right: 7px solid #3E7087;}.cm-s-rubyblue .CodeMirror-guttermarker {color: white;}.cm-s-rubyblue .CodeMirror-guttermarker-subtle {color: #3E7087;}.cm-s-rubyblue .CodeMirror-linenumber {color: white;}.cm-s-rubyblue .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-rubyblue span.cm-comment {color: #999;font-style: italic;line-height: 1em;}.cm-s-rubyblue span.cm-atom {color: #F4C20B;}.cm-s-rubyblue span.cm-number,.cm-s-rubyblue span.cm-attribute {color: #82C6E0;}.cm-s-rubyblue span.cm-keyword {color: #F0F;}.cm-s-rubyblue span.cm-string {color: #F08047;}.cm-s-rubyblue span.cm-meta {color: #F0F;}.cm-s-rubyblue span.cm-variable-2,.cm-s-rubyblue span.cm-tag {color: #7BD827;}.cm-s-rubyblue span.cm-variable-3,.cm-s-rubyblue span.cm-def,.cm-s-rubyblue span.cm-type {color: white;}.cm-s-rubyblue span.cm-bracket {color: #F0F;}.cm-s-rubyblue span.cm-link {color: #F4C20B;}.cm-s-rubyblue span.CodeMirror-matchingbracket {color: #F0F !important;}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special {color: #FF9D00;}.cm-s-rubyblue span.cm-error {color: #AF2018;}.cm-s-rubyblue .CodeMirror-activeline-background {background: #173047;}/*
1760
 
1761
  Name: seti
1762
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1763
 
1764
  Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
1765
 
1766
+ */.cm-s-seti.CodeMirror {background-color: #151718 !important;color: #CFD2D1 !important;border: none;}.cm-s-seti .CodeMirror-gutters {color: #404b53;background-color: #0E1112;border: none;}.cm-s-seti .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-seti .CodeMirror-linenumber {color: #6D8A88;}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line > span::selection,.cm-s-seti .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti span.cm-comment {color: #41535b;}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2 {color: #55b5db;}.cm-s-seti span.cm-number {color: #cd3f45;}.cm-s-seti span.cm-variable {color: #55b5db;}.cm-s-seti span.cm-variable-2 {color: #a074c4;}.cm-s-seti span.cm-def {color: #55b5db;}.cm-s-seti span.cm-keyword {color: #ff79c6;}.cm-s-seti span.cm-operator {color: #9fca56;}.cm-s-seti span.cm-keyword {color: #e6cd69;}.cm-s-seti span.cm-atom {color: #cd3f45;}.cm-s-seti span.cm-meta {color: #55b5db;}.cm-s-seti span.cm-tag {color: #55b5db;}.cm-s-seti span.cm-attribute {color: #9fca56;}.cm-s-seti span.cm-qualifier {color: #9fca56;}.cm-s-seti span.cm-property {color: #a074c4;}.cm-s-seti span.cm-variable-3,.cm-s-seti span.cm-type {color: #9fca56;}.cm-s-seti span.cm-builtin {color: #9fca56;}.cm-s-seti .CodeMirror-activeline-background {background: #101213;}.cm-s-seti .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
1767
  Solarized theme for code-mirror
1768
  http://ethanschoonover.com/solarized
1769
  *//*
1770
  Solarized color palette
1771
  http://ethanschoonover.com/solarized/img/solarized-palette.png
1772
+ */.solarized.base03 {color: #002b36;}.solarized.base02 {color: #073642;}.solarized.base01 {color: #586e75;}.solarized.base00 {color: #657b83;}.solarized.base0 {color: #839496;}.solarized.base1 {color: #93a1a1;}.solarized.base2 {color: #eee8d5;}.solarized.base3 {color: #fdf6e3;}.solarized.solar-yellow {color: #b58900;}.solarized.solar-orange {color: #cb4b16;}.solarized.solar-red {color: #dc322f;}.solarized.solar-magenta {color: #d33682;}.solarized.solar-violet {color: #6c71c4;}.solarized.solar-blue {color: #268bd2;}.solarized.solar-cyan {color: #2aa198;}.solarized.solar-green {color: #859900;}/* Color scheme for code-mirror */.cm-s-solarized {line-height: 1.45em;color-profile: sRGB;rendering-intent: auto;}.cm-s-solarized.cm-s-dark {color: #839496;background-color: #002b36;text-shadow: #002b36 0 1px;}.cm-s-solarized.cm-s-light {background-color: #fdf6e3;color: #657b83;text-shadow: #eee8d5 0 1px;}.cm-s-solarized .CodeMirror-widget {text-shadow: none;}.cm-s-solarized .cm-header {color: #586e75;}.cm-s-solarized .cm-quote {color: #93a1a1;}.cm-s-solarized .cm-keyword {color: #cb4b16;}.cm-s-solarized .cm-atom {color: #d33682;}.cm-s-solarized .cm-number {color: #d33682;}.cm-s-solarized .cm-def {color: #2aa198;}.cm-s-solarized .cm-variable {color: #839496;}.cm-s-solarized .cm-variable-2 {color: #b58900;}.cm-s-solarized .cm-variable-3,.cm-s-solarized .cm-type {color: #6c71c4;}.cm-s-solarized .cm-property {color: #2aa198;}.cm-s-solarized .cm-operator {color: #6c71c4;}.cm-s-solarized .cm-comment {color: #586e75;font-style: italic;}.cm-s-solarized .cm-string {color: #859900;}.cm-s-solarized .cm-string-2 {color: #b58900;}.cm-s-solarized .cm-meta {color: #859900;}.cm-s-solarized .cm-qualifier {color: #b58900;}.cm-s-solarized .cm-builtin {color: #d33682;}.cm-s-solarized .cm-bracket {color: #cb4b16;}.cm-s-solarized .CodeMirror-matchingbracket {color: #859900;}.cm-s-solarized .CodeMirror-nonmatchingbracket {color: #dc322f;}.cm-s-solarized .cm-tag {color: #93a1a1;}.cm-s-solarized .cm-attribute {color: #2aa198;}.cm-s-solarized .cm-hr {color: transparent;border-top: 1px solid #586e75;display: block;}.cm-s-solarized .cm-link {color: #93a1a1;cursor: pointer;}.cm-s-solarized .cm-special {color: #6c71c4;}.cm-s-solarized .cm-em {color: #999;text-decoration: underline;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-solarized .cm-strong {color: #eee;}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar {color: #586e75;border-bottom: 1px dotted #dc322f;}.cm-s-solarized.cm-s-dark div.CodeMirror-selected {background: #073642;}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark.CodeMirror ::selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection,.cm-s-dark .CodeMirror-line > span::-moz-selection,.cm-s-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-light div.CodeMirror-selected {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-light .CodeMirror-line > span::-moz-selection,.cm-s-light .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::selection,.cm-s-light .CodeMirror-line > span::selection,.cm-s-light .CodeMirror-line > span > span::selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-ligh .CodeMirror-line > span::-moz-selection,.cm-s-ligh .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}/* Editor styling *//* Little shadow on the view-port of the buffer view */.cm-s-solarized.CodeMirror {box-shadow: inset 7px 0 12px -6px #000;}/* Remove gutter border */.cm-s-solarized .CodeMirror-gutters {border-right: 0;}/* Gutter colors and line number styling based of color scheme (dark / light) *//* Dark */.cm-s-solarized.cm-s-dark .CodeMirror-gutters {background-color: #073642;}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {color: #586e75;text-shadow: #021014 0 -1px;}/* Light */.cm-s-solarized.cm-s-light .CodeMirror-gutters {background-color: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-linenumber {color: #839496;}/* Common */.cm-s-solarized .CodeMirror-linenumber {padding: 0 5px;}.cm-s-solarized .CodeMirror-guttermarker-subtle {color: #586e75;}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker {color: #ddd;}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker {color: #cb4b16;}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {color: #586e75;}/* Cursor */.cm-s-solarized .CodeMirror-cursor {border-left: 1px solid #819090;}/* Fat cursor */.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor {background: #77ee77;}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor {background-color: #77ee77;}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor {background: #586e75;}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor {background-color: #586e75;}/* Active line */.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.06);}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0.06);}.cm-s-the-matrix.CodeMirror {background: #000000;color: #00FF00;}.cm-s-the-matrix div.CodeMirror-selected {background: #2D2D2D;}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line > span::selection,.cm-s-the-matrix .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-gutters {background: #060;border-right: 2px solid #00FF00;}.cm-s-the-matrix .CodeMirror-guttermarker {color: #0f0;}.cm-s-the-matrix .CodeMirror-guttermarker-subtle {color: white;}.cm-s-the-matrix .CodeMirror-linenumber {color: #FFFFFF;}.cm-s-the-matrix .CodeMirror-cursor {border-left: 1px solid #00FF00;}.cm-s-the-matrix span.cm-keyword {color: #008803;font-weight: bold;}.cm-s-the-matrix span.cm-atom {color: #3FF;}.cm-s-the-matrix span.cm-number {color: #FFB94F;}.cm-s-the-matrix span.cm-def {color: #99C;}.cm-s-the-matrix span.cm-variable {color: #F6C;}.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}.cm-s-the-matrix span.cm-variable-3,.cm-s-the-matrix span.cm-type {color: #96F;}.cm-s-the-matrix span.cm-property {color: #62FFA0;}.cm-s-the-matrix span.cm-operator {color: #999;}.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}.cm-s-the-matrix span.cm-string {color: #39C;}.cm-s-the-matrix span.cm-meta {color: #C9F;}.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}.cm-s-the-matrix span.cm-builtin {color: #30a;}.cm-s-the-matrix span.cm-bracket {color: #cc7;}.cm-s-the-matrix span.cm-tag {color: #FFBD40;}.cm-s-the-matrix span.cm-attribute {color: #FFF700;}.cm-s-the-matrix span.cm-error {color: #FF0000;}.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}/*
1773
 
1774
  Name: Tomorrow Night - Bright
1775
  Author: Chris Kempson
1784
  CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
1785
  Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
1786
 
1787
+ */.cm-s-tomorrow-night-eighties.CodeMirror {background: #000000;color: #CCCCCC;}.cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D;}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker {color: #f2777a;}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;}.cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A;}.cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;}.cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-property,.cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;}.cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;}.cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;}.cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;}.cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;}.cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;}.cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;}.cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;}.cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a;color: #6A6A6A;}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600;}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-ttcn .cm-quote {color: #090;}.cm-s-ttcn .cm-negative {color: #d44;}.cm-s-ttcn .cm-positive {color: #292;}.cm-s-ttcn .cm-header,.cm-strong {font-weight: bold;}.cm-s-ttcn .cm-em {font-style: italic;}.cm-s-ttcn .cm-link {text-decoration: underline;}.cm-s-ttcn .cm-strikethrough {text-decoration: line-through;}.cm-s-ttcn .cm-header {color: #00f;font-weight: bold;}.cm-s-ttcn .cm-atom {color: #219;}.cm-s-ttcn .cm-attribute {color: #00c;}.cm-s-ttcn .cm-bracket {color: #997;}.cm-s-ttcn .cm-comment {color: #333333;}.cm-s-ttcn .cm-def {color: #00f;}.cm-s-ttcn .cm-em {font-style: italic;}.cm-s-ttcn .cm-error {color: #f00;}.cm-s-ttcn .cm-hr {color: #999;}.cm-s-ttcn .cm-invalidchar {color: #f00;}.cm-s-ttcn .cm-keyword {font-weight: bold;}.cm-s-ttcn .cm-link {color: #00c;text-decoration: underline;}.cm-s-ttcn .cm-meta {color: #555;}.cm-s-ttcn .cm-negative {color: #d44;}.cm-s-ttcn .cm-positive {color: #292;}.cm-s-ttcn .cm-qualifier {color: #555;}.cm-s-ttcn .cm-strikethrough {text-decoration: line-through;}.cm-s-ttcn .cm-string {color: #006400;}.cm-s-ttcn .cm-string-2 {color: #f50;}.cm-s-ttcn .cm-strong {font-weight: bold;}.cm-s-ttcn .cm-tag {color: #170;}.cm-s-ttcn .cm-variable {color: #8B2252;}.cm-s-ttcn .cm-variable-2 {color: #05a;}.cm-s-ttcn .cm-variable-3,.cm-s-ttcn .cm-type {color: #085;}.cm-s-ttcn .cm-invalidchar {color: #f00;}/* ASN */.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes {color: #27408B;}.cm-s-ttcn .cm-cmipVerbs {color: #8B2252;}.cm-s-ttcn .cm-modifier {color: #D2691E;}.cm-s-ttcn .cm-status {color: #8B4545;}.cm-s-ttcn .cm-storage {color: #A020F0;}.cm-s-ttcn .cm-tags {color: #006400;}/* CFG */.cm-s-ttcn .cm-externalCommands {color: #8B4545;font-weight: bold;}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle {color: #2E8B57;font-weight: bold;}/* TTCN */.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts {color: #006400;}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps {color: #0000FF;}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros {color: #27408B;}.cm-s-ttcn .cm-types {color: #A52A2A;font-weight: bold;}.cm-s-ttcn .cm-visibilityModifiers {font-weight: bold;}.cm-s-twilight.CodeMirror {background: #141414;color: #f7f7f7;}/**/.cm-s-twilight div.CodeMirror-selected {background: #323232;}/**/.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line > span::-moz-selection,.cm-s-twilight .CodeMirror-line > span > span::-moz-selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line > span::selection,.cm-s-twilight .CodeMirror-line > span > span::selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line > span::-moz-selection,.cm-s-twilight .CodeMirror-line > span > span::-moz-selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-gutters {background: #222;border-right: 1px solid #aaa;}.cm-s-twilight .CodeMirror-guttermarker {color: white;}.cm-s-twilight .CodeMirror-guttermarker-subtle {color: #aaa;}.cm-s-twilight .CodeMirror-linenumber {color: #aaa;}.cm-s-twilight .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-twilight .cm-keyword {color: #f9ee98;}/**/.cm-s-twilight .cm-atom {color: #FC0;}.cm-s-twilight .cm-number {color: #ca7841;}/**/.cm-s-twilight .cm-def {color: #8DA6CE;}.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-tag {color: #607392;}/**/.cm-s-twilight span.cm-variable-3,.cm-s-twilight span.cm-def,.cm-s-twilight span.cm-type {color: #607392;}/**/.cm-s-twilight .cm-operator {color: #cda869;}/**/.cm-s-twilight .cm-comment {color: #777;font-style: italic;font-weight: normal;}/**/.cm-s-twilight .cm-string {color: #8f9d6a;font-style: italic;}/**/.cm-s-twilight .cm-string-2 {color: #bd6b18;}/*?*/.cm-s-twilight .cm-meta {background-color: #141414;color: #f7f7f7;}/*?*/.cm-s-twilight .cm-builtin {color: #cda869;}/*?*/.cm-s-twilight .cm-tag {color: #997643;}/**/.cm-s-twilight .cm-attribute {color: #d6bb6d;}/*?*/.cm-s-twilight .cm-header {color: #FF6400;}.cm-s-twilight .cm-hr {color: #AEAEAE;}.cm-s-twilight .cm-link {color: #ad9361;font-style: italic;text-decoration: none;}/**/.cm-s-twilight .cm-error {border-bottom: 1px solid red;}.cm-s-twilight .CodeMirror-activeline-background {background: #27282E;}.cm-s-twilight .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/* Taken from the popular Visual Studio Vibrant Ink Schema */.cm-s-vibrant-ink.CodeMirror {background: black;color: white;}.cm-s-vibrant-ink div.CodeMirror-selected {background: #35493c;}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line > span::selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-vibrant-ink .CodeMirror-guttermarker {color: white;}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-vibrant-ink .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-vibrant-ink .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-vibrant-ink .cm-keyword {color: #CC7832;}.cm-s-vibrant-ink .cm-atom {color: #FC0;}.cm-s-vibrant-ink .cm-number {color: #FFEE98;}.cm-s-vibrant-ink .cm-def {color: #8DA6CE;}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant span.cm-tag {color: #FFC66D;}.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def,.cm-s-vibrant span.cm-type {color: #FFC66D;}.cm-s-vibrant-ink .cm-operator {color: #888;}.cm-s-vibrant-ink .cm-comment {color: gray;font-weight: bold;}.cm-s-vibrant-ink .cm-string {color: #A5C25C;}.cm-s-vibrant-ink .cm-string-2 {color: red;}.cm-s-vibrant-ink .cm-meta {color: #D8FA3C;}.cm-s-vibrant-ink .cm-builtin {color: #8DA6CE;}.cm-s-vibrant-ink .cm-tag {color: #8DA6CE;}.cm-s-vibrant-ink .cm-attribute {color: #8DA6CE;}.cm-s-vibrant-ink .cm-header {color: #FF6400;}.cm-s-vibrant-ink .cm-hr {color: #AEAEAE;}.cm-s-vibrant-ink .cm-link {color: blue;}.cm-s-vibrant-ink .cm-error {border-bottom: 1px solid red;}.cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E;}.cm-s-vibrant-ink .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1788
  Copyright (C) 2011 by MarkLogic Corporation
1789
  Author: Mike Brevoort <mike@brevoort.com>
1790
 
1805
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1806
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1807
  THE SOFTWARE.
1808
+ */.cm-s-xq-dark.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-xq-dark div.CodeMirror-selected {background: #27007A;}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line > span::selection,.cm-s-xq-dark .CodeMirror-line > span > span::selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-xq-dark .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-xq-dark .CodeMirror-guttermarker-subtle {color: #f8f8f8;}.cm-s-xq-dark .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-xq-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-xq-dark span.cm-keyword {color: #FFBD40;}.cm-s-xq-dark span.cm-atom {color: #6C8CD5;}.cm-s-xq-dark span.cm-number {color: #164;}.cm-s-xq-dark span.cm-def {color: #FFF;text-decoration: underline;}.cm-s-xq-dark span.cm-variable {color: #FFF;}.cm-s-xq-dark span.cm-variable-2 {color: #EEE;}.cm-s-xq-dark span.cm-variable-3,.cm-s-xq-dark span.cm-type {color: #DDD;}.cm-s-xq-dark span.cm-comment {color: gray;}.cm-s-xq-dark span.cm-string {color: #9FEE00;}.cm-s-xq-dark span.cm-meta {color: yellow;}.cm-s-xq-dark span.cm-qualifier {color: #FFF700;}.cm-s-xq-dark span.cm-builtin {color: #30a;}.cm-s-xq-dark span.cm-bracket {color: #cc7;}.cm-s-xq-dark span.cm-tag {color: #FFBD40;}.cm-s-xq-dark span.cm-attribute {color: #FFF700;}.cm-s-xq-dark span.cm-error {color: #f00;}.cm-s-xq-dark .CodeMirror-activeline-background {background: #27282E;}.cm-s-xq-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1809
  Copyright (C) 2011 by MarkLogic Corporation
1810
  Author: Mike Brevoort <mike@brevoort.com>
1811
 
1826
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1827
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1828
  THE SOFTWARE.
1829
+ */.cm-s-xq-light span.cm-keyword {line-height: 1em;font-weight: bold;color: #5A5CAD;}.cm-s-xq-light span.cm-atom {color: #6C8CD5;}.cm-s-xq-light span.cm-number {color: #164;}.cm-s-xq-light span.cm-def {text-decoration: underline;}.cm-s-xq-light span.cm-variable {color: black;}.cm-s-xq-light span.cm-variable-2 {color: black;}.cm-s-xq-light span.cm-variable-3,.cm-s-xq-light span.cm-type {color: black;}.cm-s-xq-light span.cm-comment {color: #0080FF;font-style: italic;}.cm-s-xq-light span.cm-string {color: red;}.cm-s-xq-light span.cm-meta {color: yellow;}.cm-s-xq-light span.cm-qualifier {color: grey;}.cm-s-xq-light span.cm-builtin {color: #7EA656;}.cm-s-xq-light span.cm-bracket {color: #cc7;}.cm-s-xq-light span.cm-tag {color: #3F7F7F;}.cm-s-xq-light span.cm-attribute {color: #7F007F;}.cm-s-xq-light span.cm-error {color: #f00;}.cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-xq-light .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;background: yellow;}/*
1830
 
1831
  Name: yeti
1832
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1833
 
1834
  Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)
1835
 
1836
+ */.cm-s-yeti.CodeMirror {background-color: #ECEAE8 !important;color: #d1c9c0 !important;border: none;}.cm-s-yeti .CodeMirror-gutters {color: #adaba6;background-color: #E5E1DB;border: none;}.cm-s-yeti .CodeMirror-cursor {border-left: solid thin #d1c9c0;}.cm-s-yeti .CodeMirror-linenumber {color: #adaba6;}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line > span::-moz-selection,.cm-s-yeti .CodeMirror-line > span > span::-moz-selection {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line > span::selection,.cm-s-yeti .CodeMirror-line > span > span::selection {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line > span::-moz-selection,.cm-s-yeti .CodeMirror-line > span > span::-moz-selection {background: #DCD8D2;}.cm-s-yeti span.cm-comment {color: #d4c8be;}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2 {color: #96c0d8;}.cm-s-yeti span.cm-number {color: #a074c4;}.cm-s-yeti span.cm-variable {color: #55b5db;}.cm-s-yeti span.cm-variable-2 {color: #a074c4;}.cm-s-yeti span.cm-def {color: #55b5db;}.cm-s-yeti span.cm-operator {color: #9fb96e;}.cm-s-yeti span.cm-keyword {color: #9fb96e;}.cm-s-yeti span.cm-atom {color: #a074c4;}.cm-s-yeti span.cm-meta {color: #96c0d8;}.cm-s-yeti span.cm-tag {color: #96c0d8;}.cm-s-yeti span.cm-attribute {color: #9fb96e;}.cm-s-yeti span.cm-qualifier {color: #96c0d8;}.cm-s-yeti span.cm-property {color: #a074c4;}.cm-s-yeti span.cm-builtin {color: #a074c4;}.cm-s-yeti span.cm-variable-3,.cm-s-yeti span.cm-type {color: #96c0d8;}.cm-s-yeti .CodeMirror-activeline-background {background: #E7E4E0;}.cm-s-yeti .CodeMirror-matchingbracket {text-decoration: underline;}/**
1837
  * "
1838
  * Using Zenburn color palette from the Emacs Zenburn Theme
1839
  * https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
dist/hesh.js CHANGED
@@ -1134,7 +1134,7 @@ function endOfLine(visually, cm, lineObj, lineNo, dir) {
1134
  ch = dir < 0 ? lineObj.text.length - 1 : 0;
1135
  var targetTop = measureCharPrepared(cm, prep, ch).top;
1136
  ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
1137
- if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1, true); }
1138
  } else { ch = dir < 0 ? part.to : part.from; }
1139
  return new Pos(lineNo, ch, sticky)
1140
  }
@@ -1495,12 +1495,13 @@ function startState(mode, a1, a2) {
1495
  // Fed to the mode parsers, provides helper functions to make
1496
  // parsers more succinct.
1497
 
1498
- var StringStream = function(string, tabSize) {
1499
  this.pos = this.start = 0;
1500
  this.string = string;
1501
  this.tabSize = tabSize || 8;
1502
  this.lastColumnPos = this.lastColumnValue = 0;
1503
  this.lineStart = 0;
 
1504
  };
1505
 
1506
  StringStream.prototype.eol = function () {return this.pos >= this.string.length};
@@ -1567,23 +1568,65 @@ StringStream.prototype.hideFirstChars = function (n, inner) {
1567
  try { return inner() }
1568
  finally { this.lineStart -= n; }
1569
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1570
 
1571
  // Compute a style array (an array starting with a mode generation
1572
  // -- for invalidation -- followed by pairs of end positions and
1573
  // style strings), which is used to highlight the tokens on the
1574
  // line.
1575
- function highlightLine(cm, line, state, forceToEnd) {
1576
  // A styles array always starts with a number identifying the
1577
  // mode/overlays that it is based on (for easy invalidation).
1578
  var st = [cm.state.modeGen], lineClasses = {};
1579
  // Compute the base array of styles
1580
- runMode(cm, line.text, cm.doc.mode, state, function (end, style) { return st.push(end, style); },
1581
- lineClasses, forceToEnd);
 
1582
 
1583
  // Run overlays, adjust style array.
1584
  var loop = function ( o ) {
1585
  var overlay = cm.state.overlays[o], i = 1, at = 0;
1586
- runMode(cm, line.text, overlay.mode, true, function (end, style) {
 
1587
  var start = i;
1588
  // Ensure there's a token end at the current position, and that i points at it
1589
  while (at < end) {
@@ -1607,49 +1650,54 @@ function highlightLine(cm, line, state, forceToEnd) {
1607
  };
1608
 
1609
  for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
 
1610
 
1611
  return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
1612
  }
1613
 
1614
  function getLineStyles(cm, line, updateFrontier) {
1615
  if (!line.styles || line.styles[0] != cm.state.modeGen) {
1616
- var state = getStateBefore(cm, lineNo(line));
1617
- var result = highlightLine(cm, line, line.text.length > cm.options.maxHighlightLength ? copyState(cm.doc.mode, state) : state);
1618
- line.stateAfter = state;
 
 
1619
  line.styles = result.styles;
1620
  if (result.classes) { line.styleClasses = result.classes; }
1621
  else if (line.styleClasses) { line.styleClasses = null; }
1622
- if (updateFrontier === cm.doc.frontier) { cm.doc.frontier++; }
 
1623
  }
1624
  return line.styles
1625
  }
1626
 
1627
- function getStateBefore(cm, n, precise) {
1628
  var doc = cm.doc, display = cm.display;
1629
- if (!doc.mode.startState) { return true }
1630
- var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;
1631
- if (!state) { state = startState(doc.mode); }
1632
- else { state = copyState(doc.mode, state); }
1633
- doc.iter(pos, n, function (line) {
1634
- processLine(cm, line.text, state);
1635
- var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo;
1636
- line.stateAfter = save ? copyState(doc.mode, state) : null;
1637
- ++pos;
 
1638
  });
1639
- if (precise) { doc.frontier = pos; }
1640
- return state
1641
  }
1642
 
1643
  // Lightweight form of highlight -- proceed over this line and
1644
  // update state, but don't save a style array. Used for lines that
1645
  // aren't currently visible.
1646
- function processLine(cm, text, state, startAt) {
1647
  var mode = cm.doc.mode;
1648
- var stream = new StringStream(text, cm.options.tabSize);
1649
  stream.start = stream.pos = startAt || 0;
1650
- if (text == "") { callBlankLine(mode, state); }
1651
  while (!stream.eol()) {
1652
- readToken(mode, stream, state);
1653
  stream.start = stream.pos;
1654
  }
1655
  }
@@ -1670,26 +1718,26 @@ function readToken(mode, stream, state, inner) {
1670
  throw new Error("Mode " + mode.name + " failed to advance stream.")
1671
  }
1672
 
 
 
 
 
 
 
 
1673
  // Utility for getTokenAt and getLineTokens
1674
  function takeToken(cm, pos, precise, asArray) {
1675
- var getObj = function (copy) { return ({
1676
- start: stream.start, end: stream.pos,
1677
- string: stream.current(),
1678
- type: style || null,
1679
- state: copy ? copyState(doc.mode, state) : state
1680
- }); };
1681
-
1682
  var doc = cm.doc, mode = doc.mode, style;
1683
  pos = clipPos(doc, pos);
1684
- var line = getLine(doc, pos.line), state = getStateBefore(cm, pos.line, precise);
1685
- var stream = new StringStream(line.text, cm.options.tabSize), tokens;
1686
  if (asArray) { tokens = []; }
1687
  while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
1688
  stream.start = stream.pos;
1689
- style = readToken(mode, stream, state);
1690
- if (asArray) { tokens.push(getObj(true)); }
1691
  }
1692
- return asArray ? tokens : getObj()
1693
  }
1694
 
1695
  function extractLineClasses(type, output) {
@@ -1707,21 +1755,21 @@ function extractLineClasses(type, output) {
1707
  }
1708
 
1709
  // Run the given mode's parser over a line, calling f for each token.
1710
- function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {
1711
  var flattenSpans = mode.flattenSpans;
1712
  if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }
1713
  var curStart = 0, curStyle = null;
1714
- var stream = new StringStream(text, cm.options.tabSize), style;
1715
  var inner = cm.options.addModeClass && [null];
1716
- if (text == "") { extractLineClasses(callBlankLine(mode, state), lineClasses); }
1717
  while (!stream.eol()) {
1718
  if (stream.pos > cm.options.maxHighlightLength) {
1719
  flattenSpans = false;
1720
- if (forceToEnd) { processLine(cm, text, state, stream.pos); }
1721
  stream.pos = text.length;
1722
  style = null;
1723
  } else {
1724
- style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses);
1725
  }
1726
  if (inner) {
1727
  var mName = inner[0].name;
@@ -1756,8 +1804,9 @@ function findStartLine(cm, n, precise) {
1756
  var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
1757
  for (var search = n; search > lim; --search) {
1758
  if (search <= doc.first) { return doc.first }
1759
- var line = getLine(doc, search - 1);
1760
- if (line.stateAfter && (!precise || search <= doc.frontier)) { return search }
 
1761
  var indented = countColumn(line.text, null, cm.options.tabSize);
1762
  if (minline == null || minindent > indented) {
1763
  minline = search - 1;
@@ -1767,6 +1816,23 @@ function findStartLine(cm, n, precise) {
1767
  return minline
1768
  }
1769
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1770
  // LINE DATA STRUCTURE
1771
 
1772
  // Line objects. These hold state related to a line, including
@@ -2643,8 +2709,17 @@ function clearCaches(cm) {
2643
  cm.display.lineNumChars = null;
2644
  }
2645
 
2646
- function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft }
2647
- function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop }
 
 
 
 
 
 
 
 
 
2648
 
2649
  // Converts a {top, bottom, left, right} box from line-local
2650
  // coordinates into another coordinate system. Context may be one of
@@ -2810,20 +2885,30 @@ function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
2810
  var assign;
2811
  ((assign = wrappedLineExtent(cm, lineObj, preparedMeasure, y), begin = assign.begin, end = assign.end, assign));
2812
  }
2813
- pos = new Pos(lineNo$$1, begin);
2814
  var beginLeft = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left;
2815
  var dir = beginLeft < x ? 1 : -1;
2816
  var prevDiff, diff = beginLeft - x, prevPos;
2817
- do {
 
2818
  prevDiff = diff;
2819
  prevPos = pos;
2820
- pos = moveVisually(cm, lineObj, pos, dir);
2821
- if (pos == null || pos.ch < begin || end <= (pos.sticky == "before" ? pos.ch - 1 : pos.ch)) {
2822
- pos = prevPos;
2823
- break
 
 
 
 
2824
  }
2825
  diff = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left - x;
2826
- } while ((dir < 0) != (diff < 0) && (Math.abs(diff) <= Math.abs(prevDiff)))
 
 
 
 
 
2827
  if (Math.abs(diff) > Math.abs(prevDiff)) {
2828
  if ((diff < 0) == (prevDiff < 0)) { throw new Error("Broke out of infinite loop in coordsCharInner") }
2829
  pos = prevPos;
@@ -3139,49 +3224,6 @@ function onBlur(cm, e) {
3139
  setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);
3140
  }
3141
 
3142
- // Re-align line numbers and gutter marks to compensate for
3143
- // horizontal scrolling.
3144
- function alignHorizontally(cm) {
3145
- var display = cm.display, view = display.view;
3146
- if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }
3147
- var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
3148
- var gutterW = display.gutters.offsetWidth, left = comp + "px";
3149
- for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {
3150
- if (cm.options.fixedGutter) {
3151
- if (view[i].gutter)
3152
- { view[i].gutter.style.left = left; }
3153
- if (view[i].gutterBackground)
3154
- { view[i].gutterBackground.style.left = left; }
3155
- }
3156
- var align = view[i].alignable;
3157
- if (align) { for (var j = 0; j < align.length; j++)
3158
- { align[j].style.left = left; } }
3159
- } }
3160
- if (cm.options.fixedGutter)
3161
- { display.gutters.style.left = (comp + gutterW) + "px"; }
3162
- }
3163
-
3164
- // Used to ensure that the line number gutter is still the right
3165
- // size for the current document size. Returns true when an update
3166
- // is needed.
3167
- function maybeUpdateLineNumberWidth(cm) {
3168
- if (!cm.options.lineNumbers) { return false }
3169
- var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
3170
- if (last.length != display.lineNumChars) {
3171
- var test = display.measure.appendChild(elt("div", [elt("div", last)],
3172
- "CodeMirror-linenumber CodeMirror-gutter-elt"));
3173
- var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
3174
- display.lineGutter.style.width = "";
3175
- display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
3176
- display.lineNumWidth = display.lineNumInnerWidth + padding;
3177
- display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
3178
- display.lineGutter.style.width = display.lineNumWidth + "px";
3179
- updateGutterSpace(cm);
3180
- return true
3181
- }
3182
- return false
3183
- }
3184
-
3185
  // Read the actual heights of the rendered lines, and update their
3186
  // stored heights to match.
3187
  function updateHeightsInViewport(cm) {
@@ -3200,7 +3242,7 @@ function updateHeightsInViewport(cm) {
3200
  }
3201
  var diff = cur.line.height - height;
3202
  if (height < 2) { height = textHeight(display); }
3203
- if (diff > .001 || diff < -.001) {
3204
  updateLineHeight(cur.line, height);
3205
  updateWidgetHeight(cur.line);
3206
  if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)
@@ -3240,140 +3282,222 @@ function visibleLines(display, doc, viewport) {
3240
  return {from: from, to: Math.max(to, from + 1)}
3241
  }
3242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3243
  // Sync the scrollable area and scrollbars, ensure the viewport
3244
  // covers the visible area.
3245
- function setScrollTop(cm, val) {
3246
  if (Math.abs(cm.doc.scrollTop - val) < 2) { return }
3247
- cm.doc.scrollTop = val;
3248
  if (!gecko) { updateDisplaySimple(cm, {top: val}); }
3249
- if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }
3250
- cm.display.scrollbars.setScrollTop(val);
3251
  if (gecko) { updateDisplaySimple(cm); }
3252
  startWorker(cm, 100);
3253
  }
 
 
 
 
 
 
 
 
 
3254
  // Sync scroller and scrollbar, ensure the gutter elements are
3255
  // aligned.
3256
- function setScrollLeft(cm, val, isScroller) {
3257
- if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) { return }
3258
  val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
 
3259
  cm.doc.scrollLeft = val;
3260
  alignHorizontally(cm);
3261
  if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }
3262
  cm.display.scrollbars.setScrollLeft(val);
3263
  }
3264
 
3265
- // Since the delta values reported on mouse wheel events are
3266
- // unstandardized between browsers and even browser versions, and
3267
- // generally horribly unpredictable, this code starts by measuring
3268
- // the scroll effect that the first few mouse wheel events have,
3269
- // and, from that, detects the way it can convert deltas to pixel
3270
- // offsets afterwards.
3271
- //
3272
- // The reason we want to know the amount a wheel event will scroll
3273
- // is that it gives us a chance to update the display before the
3274
- // actual scrolling happens, reducing flickering.
3275
-
3276
- var wheelSamples = 0;
3277
- var wheelPixelsPerUnit = null;
3278
- // Fill in a browser-detected starting value on browsers where we
3279
- // know one. These don't have to be accurate -- the result of them
3280
- // being wrong would just be a slight flicker on the first wheel
3281
- // scroll (if it is large enough).
3282
- if (ie) { wheelPixelsPerUnit = -.53; }
3283
- else if (gecko) { wheelPixelsPerUnit = 15; }
3284
- else if (chrome) { wheelPixelsPerUnit = -.7; }
3285
- else if (safari) { wheelPixelsPerUnit = -1/3; }
3286
-
3287
- function wheelEventDelta(e) {
3288
- var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
3289
- if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }
3290
- if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }
3291
- else if (dy == null) { dy = e.wheelDelta; }
3292
- return {x: dx, y: dy}
3293
- }
3294
- function wheelEventPixels(e) {
3295
- var delta = wheelEventDelta(e);
3296
- delta.x *= wheelPixelsPerUnit;
3297
- delta.y *= wheelPixelsPerUnit;
3298
- return delta
3299
- }
3300
-
3301
- function onScrollWheel(cm, e) {
3302
- var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
3303
-
3304
- var display = cm.display, scroll = display.scroller;
3305
- // Quit if there's nothing to scroll here
3306
- var canScrollX = scroll.scrollWidth > scroll.clientWidth;
3307
- var canScrollY = scroll.scrollHeight > scroll.clientHeight;
3308
- if (!(dx && canScrollX || dy && canScrollY)) { return }
3309
-
3310
- // Webkit browsers on OS X abort momentum scrolls when the target
3311
- // of the scroll event is removed from the scrollable element.
3312
- // This hack (see related code in patchDisplay) makes sure the
3313
- // element is kept around.
3314
- if (dy && mac && webkit) {
3315
- outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
3316
- for (var i = 0; i < view.length; i++) {
3317
- if (view[i].node == cur) {
3318
- cm.display.currentWheelTarget = cur;
3319
- break outer
3320
- }
3321
- }
3322
- }
3323
- }
3324
-
3325
- // On some browsers, horizontal scrolling will cause redraws to
3326
- // happen before the gutter has been realigned, causing it to
3327
- // wriggle around in a most unseemly way. When we have an
3328
- // estimated pixels/delta value, we just handle horizontal
3329
- // scrolling entirely here. It'll be slightly off from native, but
3330
- // better than glitching out.
3331
- if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
3332
- if (dy && canScrollY)
3333
- { setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight))); }
3334
- setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));
3335
- // Only prevent default scrolling if vertical scrolling is
3336
- // actually possible. Otherwise, it causes vertical scroll
3337
- // jitter on OSX trackpads when deltaX is small and deltaY
3338
- // is large (issue #3579)
3339
- if (!dy || (dy && canScrollY))
3340
- { e_preventDefault(e); }
3341
- display.wheelStartX = null; // Abort measurement, if in progress
3342
- return
3343
- }
3344
-
3345
- // 'Project' the visible viewport to cover the area that is being
3346
- // scrolled into view (if we know enough to estimate it).
3347
- if (dy && wheelPixelsPerUnit != null) {
3348
- var pixels = dy * wheelPixelsPerUnit;
3349
- var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
3350
- if (pixels < 0) { top = Math.max(0, top + pixels - 50); }
3351
- else { bot = Math.min(cm.doc.height, bot + pixels + 50); }
3352
- updateDisplaySimple(cm, {top: top, bottom: bot});
3353
- }
3354
-
3355
- if (wheelSamples < 20) {
3356
- if (display.wheelStartX == null) {
3357
- display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
3358
- display.wheelDX = dx; display.wheelDY = dy;
3359
- setTimeout(function () {
3360
- if (display.wheelStartX == null) { return }
3361
- var movedX = scroll.scrollLeft - display.wheelStartX;
3362
- var movedY = scroll.scrollTop - display.wheelStartY;
3363
- var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
3364
- (movedX && display.wheelDX && movedX / display.wheelDX);
3365
- display.wheelStartX = display.wheelStartY = null;
3366
- if (!sample) { return }
3367
- wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
3368
- ++wheelSamples;
3369
- }, 200);
3370
- } else {
3371
- display.wheelDX += dx; display.wheelDY += dy;
3372
- }
3373
- }
3374
- }
3375
-
3376
- // SCROLLBARS
3377
 
3378
  // Prepare DOM reads needed to update the scrollbars. Done in one
3379
  // shot to minimize update/measure roundtrips.
@@ -3450,12 +3574,12 @@ NativeScrollbars.prototype.update = function (measure) {
3450
 
3451
  NativeScrollbars.prototype.setScrollLeft = function (pos) {
3452
  if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }
3453
- if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz); }
3454
  };
3455
 
3456
  NativeScrollbars.prototype.setScrollTop = function (pos) {
3457
  if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }
3458
- if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert); }
3459
  };
3460
 
3461
  NativeScrollbars.prototype.zeroWidthHack = function () {
@@ -3466,17 +3590,18 @@ NativeScrollbars.prototype.zeroWidthHack = function () {
3466
  this.disableVert = new Delayed;
3467
  };
3468
 
3469
- NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay) {
3470
  bar.style.pointerEvents = "auto";
3471
  function maybeDisable() {
3472
  // To find out whether the scrollbar is still visible, we
3473
  // check whether the element under the pixel in the bottom
3474
- // left corner of the scrollbar box is the scrollbar box
3475
  // itself (when the bar is still visible) or its filler child
3476
  // (when the bar is hidden). If it is still visible, we keep
3477
  // it enabled, if it's hidden, we disable pointer events.
3478
  var box = bar.getBoundingClientRect();
3479
- var elt$$1 = document.elementFromPoint(box.left + 1, box.bottom - 1);
 
3480
  if (elt$$1 != bar) { bar.style.pointerEvents = "none"; }
3481
  else { delay.set(1000, maybeDisable); }
3482
  }
@@ -3548,139 +3673,12 @@ function initScrollbars(cm) {
3548
  node.setAttribute("cm-not-content", "true");
3549
  }, function (pos, axis) {
3550
  if (axis == "horizontal") { setScrollLeft(cm, pos); }
3551
- else { setScrollTop(cm, pos); }
3552
  }, cm);
3553
  if (cm.display.scrollbars.addClass)
3554
  { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }
3555
  }
3556
 
3557
- // SCROLLING THINGS INTO VIEW
3558
-
3559
- // If an editor sits on the top or bottom of the window, partially
3560
- // scrolled out of view, this ensures that the cursor is visible.
3561
- function maybeScrollWindow(cm, rect) {
3562
- if (signalDOMEvent(cm, "scrollCursorIntoView")) { return }
3563
-
3564
- var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
3565
- if (rect.top + box.top < 0) { doScroll = true; }
3566
- else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }
3567
- if (doScroll != null && !phantom) {
3568
- var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;"));
3569
- cm.display.lineSpace.appendChild(scrollNode);
3570
- scrollNode.scrollIntoView(doScroll);
3571
- cm.display.lineSpace.removeChild(scrollNode);
3572
- }
3573
- }
3574
-
3575
- // Scroll a given position into view (immediately), verifying that
3576
- // it actually became visible (as line heights are accurately
3577
- // measured, the position of something may 'drift' during drawing).
3578
- function scrollPosIntoView(cm, pos, end, margin) {
3579
- if (margin == null) { margin = 0; }
3580
- var rect;
3581
- for (var limit = 0; limit < 5; limit++) {
3582
- var changed = false;
3583
- var coords = cursorCoords(cm, pos);
3584
- var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
3585
- rect = {left: Math.min(coords.left, endCoords.left),
3586
- top: Math.min(coords.top, endCoords.top) - margin,
3587
- right: Math.max(coords.left, endCoords.left),
3588
- bottom: Math.max(coords.bottom, endCoords.bottom) + margin};
3589
- var scrollPos = calculateScrollPos(cm, rect);
3590
- var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
3591
- if (scrollPos.scrollTop != null) {
3592
- setScrollTop(cm, scrollPos.scrollTop);
3593
- if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }
3594
- }
3595
- if (scrollPos.scrollLeft != null) {
3596
- setScrollLeft(cm, scrollPos.scrollLeft);
3597
- if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }
3598
- }
3599
- if (!changed) { break }
3600
- }
3601
- return rect
3602
- }
3603
-
3604
- // Scroll a given set of coordinates into view (immediately).
3605
- function scrollIntoView(cm, rect) {
3606
- var scrollPos = calculateScrollPos(cm, rect);
3607
- if (scrollPos.scrollTop != null) { setScrollTop(cm, scrollPos.scrollTop); }
3608
- if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }
3609
- }
3610
-
3611
- // Calculate a new scroll position needed to scroll the given
3612
- // rectangle into view. Returns an object with scrollTop and
3613
- // scrollLeft properties. When these are undefined, the
3614
- // vertical/horizontal position does not need to be adjusted.
3615
- function calculateScrollPos(cm, rect) {
3616
- var display = cm.display, snapMargin = textHeight(cm.display);
3617
- if (rect.top < 0) { rect.top = 0; }
3618
- var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
3619
- var screen = displayHeight(cm), result = {};
3620
- if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }
3621
- var docBottom = cm.doc.height + paddingVert(display);
3622
- var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;
3623
- if (rect.top < screentop) {
3624
- result.scrollTop = atTop ? 0 : rect.top;
3625
- } else if (rect.bottom > screentop + screen) {
3626
- var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);
3627
- if (newTop != screentop) { result.scrollTop = newTop; }
3628
- }
3629
-
3630
- var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
3631
- var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
3632
- var tooWide = rect.right - rect.left > screenw;
3633
- if (tooWide) { rect.right = rect.left + screenw; }
3634
- if (rect.left < 10)
3635
- { result.scrollLeft = 0; }
3636
- else if (rect.left < screenleft)
3637
- { result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); }
3638
- else if (rect.right > screenw + screenleft - 3)
3639
- { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }
3640
- return result
3641
- }
3642
-
3643
- // Store a relative adjustment to the scroll position in the current
3644
- // operation (to be applied when the operation finishes).
3645
- function addToScrollPos(cm, left, top) {
3646
- if (left != null || top != null) { resolveScrollToPos(cm); }
3647
- if (left != null)
3648
- { cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left; }
3649
- if (top != null)
3650
- { cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; }
3651
- }
3652
-
3653
- // Make sure that at the end of the operation the current cursor is
3654
- // shown.
3655
- function ensureCursorVisible(cm) {
3656
- resolveScrollToPos(cm);
3657
- var cur = cm.getCursor(), from = cur, to = cur;
3658
- if (!cm.options.lineWrapping) {
3659
- from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur;
3660
- to = Pos(cur.line, cur.ch + 1);
3661
- }
3662
- cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin};
3663
- }
3664
-
3665
- // When an operation has its scrollToPos property set, and another
3666
- // scroll action is applied before the end of the operation, this
3667
- // 'simulates' scrolling that position into view in a cheap way, so
3668
- // that the effect of intermediate scroll commands is not ignored.
3669
- function resolveScrollToPos(cm) {
3670
- var range$$1 = cm.curOp.scrollToPos;
3671
- if (range$$1) {
3672
- cm.curOp.scrollToPos = null;
3673
- var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to);
3674
- var sPos = calculateScrollPos(cm, {
3675
- left: Math.min(from.left, to.left),
3676
- top: Math.min(from.top, to.top) - range$$1.margin,
3677
- right: Math.max(from.right, to.right),
3678
- bottom: Math.max(from.bottom, to.bottom) + range$$1.margin
3679
- });
3680
- cm.scrollTo(sPos.scrollLeft, sPos.scrollTop);
3681
- }
3682
- }
3683
-
3684
  // Operations are used to wrap a series of changes to the editor
3685
  // state in such a way that each change won't have to update the
3686
  // cursor and display (which would be awkward, slow, and
@@ -3809,17 +3807,9 @@ function endOperation_finish(op) {
3809
  { display.wheelStartX = display.wheelStartY = null; }
3810
 
3811
  // Propagate the scroll position to the actual DOM scroller
3812
- if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) {
3813
- doc.scrollTop = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop));
3814
- display.scrollbars.setScrollTop(doc.scrollTop);
3815
- display.scroller.scrollTop = doc.scrollTop;
3816
- }
3817
- if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) {
3818
- doc.scrollLeft = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, op.scrollLeft));
3819
- display.scrollbars.setScrollLeft(doc.scrollLeft);
3820
- display.scroller.scrollLeft = doc.scrollLeft;
3821
- alignHorizontally(cm);
3822
- }
3823
  // If we need to scroll a specific position into view, do so.
3824
  if (op.scrollToPos) {
3825
  var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
@@ -4032,22 +4022,23 @@ function countDirtyView(cm) {
4032
  // HIGHLIGHT WORKER
4033
 
4034
  function startWorker(cm, time) {
4035
- if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo)
4036
  { cm.state.highlight.set(time, bind(highlightWorker, cm)); }
4037
  }
4038
 
4039
  function highlightWorker(cm) {
4040
  var doc = cm.doc;
4041
- if (doc.frontier < doc.first) { doc.frontier = doc.first; }
4042
- if (doc.frontier >= cm.display.viewTo) { return }
4043
  var end = +new Date + cm.options.workTime;
4044
- var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));
4045
  var changedLines = [];
4046
 
4047
- doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {
4048
- if (doc.frontier >= cm.display.viewFrom) { // Visible
4049
- var oldStyles = line.styles, tooLong = line.text.length > cm.options.maxHighlightLength;
4050
- var highlighted = highlightLine(cm, line, tooLong ? copyState(doc.mode, state) : state, true);
 
 
4051
  line.styles = highlighted.styles;
4052
  var oldCls = line.styleClasses, newCls = highlighted.classes;
4053
  if (newCls) { line.styleClasses = newCls; }
@@ -4055,19 +4046,22 @@ function highlightWorker(cm) {
4055
  var ischange = !oldStyles || oldStyles.length != line.styles.length ||
4056
  oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
4057
  for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }
4058
- if (ischange) { changedLines.push(doc.frontier); }
4059
- line.stateAfter = tooLong ? state : copyState(doc.mode, state);
 
4060
  } else {
4061
  if (line.text.length <= cm.options.maxHighlightLength)
4062
- { processLine(cm, line.text, state); }
4063
- line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;
 
4064
  }
4065
- ++doc.frontier;
4066
  if (+new Date > end) {
4067
  startWorker(cm, cm.options.workDelay);
4068
  return true
4069
  }
4070
  });
 
 
4071
  if (changedLines.length) { runInOp(cm, function () {
4072
  for (var i = 0; i < changedLines.length; i++)
4073
  { regLineChange(cm, changedLines[i], "text"); }
@@ -4113,6 +4107,36 @@ function maybeClipScrollbars(cm) {
4113
  }
4114
  }
4115
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4116
  // Does the actual updating of the line display. Bails out
4117
  // (returning false) when there is nothing to be done and forced is
4118
  // false.
@@ -4162,14 +4186,14 @@ function updateDisplayIfNeeded(cm, update) {
4162
 
4163
  // For big changes, we hide the enclosing element during the
4164
  // update, since that speeds up the operations on most browsers.
4165
- var focused = activeElt();
4166
  if (toUpdate > 4) { display.lineDiv.style.display = "none"; }
4167
  patchDisplay(cm, display.updateLineNumbers, update.dims);
4168
  if (toUpdate > 4) { display.lineDiv.style.display = ""; }
4169
  display.renderedView = display.view;
4170
  // There might have been a widget with a focused element that got
4171
  // hidden or updated, if so re-focus it.
4172
- if (focused && activeElt() != focused && focused.offsetHeight) { focused.focus(); }
4173
 
4174
  // Prevent selection and cursors from interfering with the scroll
4175
  // width and height.
@@ -4208,6 +4232,7 @@ function postUpdateDisplay(cm, update) {
4208
  updateSelection(cm);
4209
  updateScrollbars(cm, barMeasure);
4210
  setDocumentHeight(cm, barMeasure);
 
4211
  }
4212
 
4213
  update.signal(cm, "update", cm);
@@ -4301,20 +4326,131 @@ function updateGutters(cm) {
4301
  gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
4302
  }
4303
  }
4304
- gutters.style.display = i ? "" : "none";
4305
- updateGutterSpace(cm);
4306
- }
4307
-
4308
- // Make sure the gutters options contains the element
4309
- // "CodeMirror-linenumbers" when the lineNumbers option is true.
4310
- function setGuttersForLineNumbers(options) {
4311
- var found = indexOf(options.gutters, "CodeMirror-linenumbers");
4312
- if (found == -1 && options.lineNumbers) {
4313
- options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
4314
- } else if (found > -1 && !options.lineNumbers) {
4315
- options.gutters = options.gutters.slice(0);
4316
- options.gutters.splice(found, 1);
4317
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4318
  }
4319
 
4320
  // Selection objects are immutable. A new one is created every time
@@ -4470,7 +4606,7 @@ function resetModeState(cm) {
4470
  if (line.stateAfter) { line.stateAfter = null; }
4471
  if (line.styles) { line.styles = null; }
4472
  });
4473
- cm.doc.frontier = cm.doc.first;
4474
  startWorker(cm, 100);
4475
  cm.state.modeGen++;
4476
  if (cm.curOp) { regChange(cm); }
@@ -4804,8 +4940,8 @@ function copyHistoryArray(events, newGroup, instantiateSel) {
4804
  // include a given position (and optionally a second position).
4805
  // Otherwise, simply returns the range between the given positions.
4806
  // Used for cursor motion and such.
4807
- function extendRange(doc, range, head, other) {
4808
- if (doc.cm && doc.cm.display.shift || doc.extend) {
4809
  var anchor = range.anchor;
4810
  if (other) {
4811
  var posBefore = cmp(head, anchor) < 0;
@@ -4823,16 +4959,18 @@ function extendRange(doc, range, head, other) {
4823
  }
4824
 
4825
  // Extend the primary selection range, discard the rest.
4826
- function extendSelection(doc, head, other, options) {
4827
- setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options);
 
4828
  }
4829
 
4830
  // Extend all selections (pos is an array of selections with length
4831
  // equal the number of selections)
4832
  function extendSelections(doc, heads, options) {
4833
  var out = [];
 
4834
  for (var i = 0; i < doc.sel.ranges.length; i++)
4835
- { out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null); }
4836
  var newSel = normalizeSelection(out, doc.sel.primIndex);
4837
  setSelection(doc, newSel, options);
4838
  }
@@ -4913,7 +5051,7 @@ function setSelectionInner(doc, sel) {
4913
  // Verify that the selection does not partially select any atomic
4914
  // marked ranges.
4915
  function reCheckSelection(doc) {
4916
- setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll);
4917
  }
4918
 
4919
  // Return a selection that does not partially select any atomic
@@ -5038,7 +5176,7 @@ function makeChange(doc, change, ignoreReadOnly) {
5038
  var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
5039
  if (split) {
5040
  for (var i = split.length - 1; i >= 0; --i)
5041
- { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text}); }
5042
  } else {
5043
  makeChangeInner(doc, change);
5044
  }
@@ -5216,8 +5354,7 @@ function makeChangeSingleDocInEditor(cm, change, spans) {
5216
  if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }
5217
  }
5218
 
5219
- // Adjust frontier, schedule worker
5220
- doc.frontier = Math.min(doc.frontier, from.line);
5221
  startWorker(cm, 400);
5222
 
5223
  var lendiff = change.text.length - (to.line - from.line) - 1;
@@ -5327,7 +5464,7 @@ function changeLine(doc, handle, changeType, op) {
5327
  //
5328
  // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html
5329
 
5330
- var LeafChunk = function(lines) {
5331
  var this$1 = this;
5332
 
5333
  this.lines = lines;
@@ -5338,47 +5475,49 @@ var LeafChunk = function(lines) {
5338
  height += lines[i].height;
5339
  }
5340
  this.height = height;
5341
- };
5342
 
5343
- LeafChunk.prototype.chunkSize = function () { return this.lines.length };
 
5344
 
5345
- // Remove the n lines at offset 'at'.
5346
- LeafChunk.prototype.removeInner = function (at, n) {
5347
  var this$1 = this;
5348
 
5349
- for (var i = at, e = at + n; i < e; ++i) {
5350
- var line = this$1.lines[i];
5351
- this$1.height -= line.height;
5352
- cleanUpLine(line);
5353
- signalLater(line, "delete");
5354
- }
5355
- this.lines.splice(at, n);
5356
- };
5357
 
5358
- // Helper used to collapse a small branch into a single leaf.
5359
- LeafChunk.prototype.collapse = function (lines) {
5360
- lines.push.apply(lines, this.lines);
5361
- };
5362
 
5363
- // Insert the given array of lines at offset 'at', count them as
5364
- // having the given height.
5365
- LeafChunk.prototype.insertInner = function (at, lines, height) {
5366
  var this$1 = this;
5367
 
5368
- this.height += height;
5369
- this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
5370
- for (var i = 0; i < lines.length; ++i) { lines[i].parent = this$1; }
5371
- };
5372
 
5373
- // Used to iterate over a part of the tree.
5374
- LeafChunk.prototype.iterN = function (at, n, op) {
5375
  var this$1 = this;
5376
 
5377
- for (var e = at + n; at < e; ++at)
5378
- { if (op(this$1.lines[at])) { return true } }
 
5379
  };
5380
 
5381
- var BranchChunk = function(children) {
5382
  var this$1 = this;
5383
 
5384
  this.children = children;
@@ -5391,104 +5530,106 @@ var BranchChunk = function(children) {
5391
  this.size = size;
5392
  this.height = height;
5393
  this.parent = null;
5394
- };
5395
 
5396
- BranchChunk.prototype.chunkSize = function () { return this.size };
 
5397
 
5398
- BranchChunk.prototype.removeInner = function (at, n) {
5399
  var this$1 = this;
5400
 
5401
- this.size -= n;
5402
- for (var i = 0; i < this.children.length; ++i) {
5403
- var child = this$1.children[i], sz = child.chunkSize();
5404
- if (at < sz) {
5405
- var rm = Math.min(n, sz - at), oldHeight = child.height;
5406
- child.removeInner(at, rm);
5407
- this$1.height -= oldHeight - child.height;
5408
- if (sz == rm) { this$1.children.splice(i--, 1); child.parent = null; }
5409
- if ((n -= rm) == 0) { break }
5410
- at = 0;
5411
- } else { at -= sz; }
5412
- }
5413
- // If the result is smaller than 25 lines, ensure that it is a
5414
- // single leaf node.
5415
- if (this.size - n < 25 &&
5416
- (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {
5417
- var lines = [];
5418
- this.collapse(lines);
5419
- this.children = [new LeafChunk(lines)];
5420
- this.children[0].parent = this;
5421
- }
5422
- };
5423
 
5424
- BranchChunk.prototype.collapse = function (lines) {
5425
  var this$1 = this;
5426
 
5427
- for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); }
5428
- };
5429
 
5430
- BranchChunk.prototype.insertInner = function (at, lines, height) {
5431
  var this$1 = this;
5432
 
5433
- this.size += lines.length;
5434
- this.height += height;
5435
- for (var i = 0; i < this.children.length; ++i) {
5436
- var child = this$1.children[i], sz = child.chunkSize();
5437
- if (at <= sz) {
5438
- child.insertInner(at, lines, height);
5439
- if (child.lines && child.lines.length > 50) {
5440
- // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.
5441
- // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.
5442
- var remaining = child.lines.length % 25 + 25;
5443
- for (var pos = remaining; pos < child.lines.length;) {
5444
- var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));
5445
- child.height -= leaf.height;
5446
- this$1.children.splice(++i, 0, leaf);
5447
- leaf.parent = this$1;
5448
- }
5449
- child.lines = child.lines.slice(0, remaining);
5450
- this$1.maybeSpill();
 
 
5451
  }
5452
- break
5453
  }
5454
- at -= sz;
5455
- }
5456
- };
5457
 
5458
- // When a node has grown, check whether it should be split.
5459
- BranchChunk.prototype.maybeSpill = function () {
5460
- if (this.children.length <= 10) { return }
5461
- var me = this;
5462
- do {
5463
- var spilled = me.children.splice(me.children.length - 5, 5);
5464
- var sibling = new BranchChunk(spilled);
5465
- if (!me.parent) { // Become the parent node
5466
- var copy = new BranchChunk(me.children);
5467
- copy.parent = me;
5468
- me.children = [copy, sibling];
5469
- me = copy;
5470
- } else {
5471
- me.size -= sibling.size;
5472
- me.height -= sibling.height;
5473
- var myIndex = indexOf(me.parent.children, me);
5474
- me.parent.children.splice(myIndex + 1, 0, sibling);
5475
- }
5476
- sibling.parent = me.parent;
5477
- } while (me.children.length > 10)
5478
- me.parent.maybeSpill();
5479
- };
5480
 
5481
- BranchChunk.prototype.iterN = function (at, n, op) {
5482
  var this$1 = this;
5483
 
5484
- for (var i = 0; i < this.children.length; ++i) {
5485
- var child = this$1.children[i], sz = child.chunkSize();
5486
- if (at < sz) {
5487
- var used = Math.min(n, sz - at);
5488
- if (child.iterN(at, used, op)) { return true }
5489
- if ((n -= used) == 0) { break }
5490
- at = 0;
5491
- } else { at -= sz; }
 
5492
  }
5493
  };
5494
 
@@ -5541,7 +5682,7 @@ eventMixin(LineWidget);
5541
 
5542
  function adjustScrollWhenAboveVisible(cm, line, diff) {
5543
  if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
5544
- { addToScrollPos(cm, null, diff); }
5545
  }
5546
 
5547
  function addLineWidget(doc, handle, node, options) {
@@ -5556,7 +5697,7 @@ function addLineWidget(doc, handle, node, options) {
5556
  if (cm && !lineIsHidden(doc, line)) {
5557
  var aboveVisible = heightAtLine(line) < doc.scrollTop;
5558
  updateLineHeight(line, line.height + widgetHeight(widget));
5559
- if (aboveVisible) { addToScrollPos(cm, null, widget.height); }
5560
  cm.curOp.forceUpdate = true;
5561
  }
5562
  return true
@@ -5858,7 +5999,7 @@ var Doc = function(text, mode, firstLine, lineSep, direction) {
5858
  this.scrollTop = this.scrollLeft = 0;
5859
  this.cantEdit = false;
5860
  this.cleanGeneration = 1;
5861
- this.frontier = firstLine;
5862
  var start = Pos(firstLine, 0);
5863
  this.sel = simpleSelection(start);
5864
  this.history = new History(null);
@@ -5904,7 +6045,8 @@ Doc.prototype = createObj(BranchChunk.prototype, {
5904
  var top = Pos(this.first, 0), last = this.first + this.size - 1;
5905
  makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
5906
  text: this.splitLines(code), origin: "setValue", full: true}, true);
5907
- setSelection(this, simpleSelection(top));
 
5908
  }),
5909
  replaceRange: function(code, from, to, origin) {
5910
  from = clipPos(this, from);
@@ -6380,8 +6522,8 @@ function clearDragCursor(cm) {
6380
  // garbage collected.
6381
 
6382
  function forEachCodeMirror(f) {
6383
- if (!document.body.getElementsByClassName) { return }
6384
- var byClass = document.body.getElementsByClassName("CodeMirror");
6385
  for (var i = 0; i < byClass.length; i++) {
6386
  var cm = byClass[i].CodeMirror;
6387
  if (cm) { f(cm); }
@@ -6555,11 +6697,8 @@ function isModifierKey(value) {
6555
  return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"
6556
  }
6557
 
6558
- // Look up the name of a key as indicated by an event object.
6559
- function keyName(event, noShift) {
6560
- if (presto && event.keyCode == 34 && event["char"]) { return false }
6561
- var base = keyNames[event.keyCode], name = base;
6562
- if (name == null || event.altGraphKey) { return false }
6563
  if (event.altKey && base != "Alt") { name = "Alt-" + name; }
6564
  if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; }
6565
  if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") { name = "Cmd-" + name; }
@@ -6567,6 +6706,14 @@ function keyName(event, noShift) {
6567
  return name
6568
  }
6569
 
 
 
 
 
 
 
 
 
6570
  function getKeyMap(val) {
6571
  return typeof val == "string" ? keyMap[val] : val
6572
  }
@@ -6645,15 +6792,15 @@ var commands = {
6645
  {origin: "+move", bias: -1}
6646
  ); },
6647
  goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {
6648
- var top = cm.charCoords(range.head, "div").top + 5;
6649
  return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div")
6650
  }, sel_move); },
6651
  goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {
6652
- var top = cm.charCoords(range.head, "div").top + 5;
6653
  return cm.coordsChar({left: 0, top: top}, "div")
6654
  }, sel_move); },
6655
  goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {
6656
- var top = cm.charCoords(range.head, "div").top + 5;
6657
  var pos = cm.coordsChar({left: 0, top: top}, "div");
6658
  if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) }
6659
  return pos
@@ -6793,6 +6940,9 @@ function lookupKeyForEditor(cm, name, handle) {
6793
  || lookupKey(name, cm.options.keyMap, handle, cm)
6794
  }
6795
 
 
 
 
6796
  var stopSeq = new Delayed;
6797
  function dispatchKey(cm, name, e, handle) {
6798
  var seq = cm.state.keySeq;
@@ -6904,6 +7054,37 @@ function onKeyPress(e) {
6904
  cm.display.input.onKeyPress(e);
6905
  }
6906
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6907
  // A mouse down can be a single click, double click, triple click,
6908
  // start of selection drag, start of text drag, new cursor
6909
  // (ctrl-click), rectangle drag (alt-drag), or xwin
@@ -6925,72 +7106,91 @@ function onMouseDown(e) {
6925
  return
6926
  }
6927
  if (clickInGutter(cm, e)) { return }
6928
- var start = posFromMouse(cm, e);
6929
  window.focus();
6930
 
6931
- switch (e_button(e)) {
6932
- case 1:
6933
- // #3261: make sure, that we're not starting a second selection
6934
- if (cm.state.selectingText)
6935
- { cm.state.selectingText(e); }
6936
- else if (start)
6937
- { leftButtonDown(cm, e, start); }
6938
- else if (e_target(e) == display.scroller)
6939
- { e_preventDefault(e); }
6940
- break
6941
- case 2:
6942
- if (webkit) { cm.state.lastMiddleDown = +new Date; }
6943
- if (start) { extendSelection(cm.doc, start); }
6944
  setTimeout(function () { return display.input.focus(); }, 20);
6945
- e_preventDefault(e);
6946
- break
6947
- case 3:
6948
  if (captureRightClick) { onContextMenu(cm, e); }
6949
  else { delayBlurEvent(cm); }
6950
- break
6951
  }
6952
  }
6953
 
6954
- var lastClick;
6955
- var lastDoubleClick;
6956
- function leftButtonDown(cm, e, start) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6957
  if (ie) { setTimeout(bind(ensureFocus, cm), 0); }
6958
  else { cm.curOp.focus = activeElt(); }
6959
 
6960
- var now = +new Date, type;
6961
- if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) {
6962
- type = "triple";
6963
- } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) {
6964
- type = "double";
6965
- lastDoubleClick = {time: now, pos: start};
6966
- } else {
6967
- type = "single";
6968
- lastClick = {time: now, pos: start};
6969
- }
6970
 
6971
- var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey, contained;
6972
  if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&
6973
- type == "single" && (contained = sel.contains(start)) > -1 &&
6974
- (cmp((contained = sel.ranges[contained]).from(), start) < 0 || start.xRel > 0) &&
6975
- (cmp(contained.to(), start) > 0 || start.xRel < 0))
6976
- { leftButtonStartDrag(cm, e, start, modifier); }
6977
  else
6978
- { leftButtonSelect(cm, e, start, type, modifier); }
6979
  }
6980
 
6981
  // Start a text drag. When it ends, see if any dragging actually
6982
  // happen, and treat as a click if it didn't.
6983
- function leftButtonStartDrag(cm, e, start, modifier) {
6984
- var display = cm.display, startTime = +new Date;
6985
- var dragEnd = operation(cm, function (e2) {
6986
  if (webkit) { display.scroller.draggable = false; }
6987
  cm.state.draggingText = false;
6988
  off(document, "mouseup", dragEnd);
 
 
6989
  off(display.scroller, "drop", dragEnd);
6990
- if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {
6991
- e_preventDefault(e2);
6992
- if (!modifier && +new Date - 200 < startTime)
6993
- { extendSelection(cm.doc, start); }
6994
  // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
6995
  if (webkit || ie && ie_version == 9)
6996
  { setTimeout(function () {document.body.focus(); display.input.focus();}, 20); }
@@ -6998,23 +7198,40 @@ function leftButtonStartDrag(cm, e, start, modifier) {
6998
  { display.input.focus(); }
6999
  }
7000
  });
 
 
 
 
7001
  // Let the drag handler handle this.
7002
  if (webkit) { display.scroller.draggable = true; }
7003
  cm.state.draggingText = dragEnd;
7004
- dragEnd.copy = mac ? e.altKey : e.ctrlKey;
7005
  // IE's approach to draggable
7006
  if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
7007
  on(document, "mouseup", dragEnd);
 
 
7008
  on(display.scroller, "drop", dragEnd);
 
 
 
 
 
 
 
 
 
 
 
7009
  }
7010
 
7011
  // Normal selection, as opposed to text dragging.
7012
- function leftButtonSelect(cm, e, start, type, addNew) {
7013
  var display = cm.display, doc = cm.doc;
7014
- e_preventDefault(e);
7015
 
7016
  var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
7017
- if (addNew && !e.shiftKey) {
7018
  ourIndex = doc.sel.contains(start);
7019
  if (ourIndex > -1)
7020
  { ourRange = ranges[ourIndex]; }
@@ -7025,28 +7242,19 @@ function leftButtonSelect(cm, e, start, type, addNew) {
7025
  ourIndex = doc.sel.primIndex;
7026
  }
7027
 
7028
- if (chromeOS ? e.shiftKey && e.metaKey : e.altKey) {
7029
- type = "rect";
7030
- if (!addNew) { ourRange = new Range(start, start); }
7031
- start = posFromMouse(cm, e, true, true);
7032
  ourIndex = -1;
7033
- } else if (type == "double") {
7034
- var word = cm.findWordAt(start);
7035
- if (cm.display.shift || doc.extend)
7036
- { ourRange = extendRange(doc, ourRange, word.anchor, word.head); }
7037
- else
7038
- { ourRange = word; }
7039
- } else if (type == "triple") {
7040
- var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0)));
7041
- if (cm.display.shift || doc.extend)
7042
- { ourRange = extendRange(doc, ourRange, line.anchor, line.head); }
7043
- else
7044
- { ourRange = line; }
7045
  } else {
7046
- ourRange = extendRange(doc, ourRange, start);
 
 
 
 
7047
  }
7048
 
7049
- if (!addNew) {
7050
  ourIndex = 0;
7051
  setSelection(doc, new Selection([ourRange], 0), sel_mouse);
7052
  startSel = doc.sel;
@@ -7054,7 +7262,7 @@ function leftButtonSelect(cm, e, start, type, addNew) {
7054
  ourIndex = ranges.length;
7055
  setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),
7056
  {scroll: false, origin: "*mouse"});
7057
- } else if (ranges.length > 1 && ranges[ourIndex].empty() && type == "single" && !e.shiftKey) {
7058
  setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
7059
  {scroll: false, origin: "*mouse"});
7060
  startSel = doc.sel;
@@ -7067,7 +7275,7 @@ function leftButtonSelect(cm, e, start, type, addNew) {
7067
  if (cmp(lastPos, pos) == 0) { return }
7068
  lastPos = pos;
7069
 
7070
- if (type == "rect") {
7071
  var ranges = [], tabSize = cm.options.tabSize;
7072
  var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
7073
  var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
@@ -7086,20 +7294,14 @@ function leftButtonSelect(cm, e, start, type, addNew) {
7086
  cm.scrollIntoView(pos);
7087
  } else {
7088
  var oldRange = ourRange;
7089
- var anchor = oldRange.anchor, head = pos;
7090
- if (type != "single") {
7091
- var range$$1;
7092
- if (type == "double")
7093
- { range$$1 = cm.findWordAt(pos); }
7094
- else
7095
- { range$$1 = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0))); }
7096
- if (cmp(range$$1.anchor, anchor) > 0) {
7097
- head = range$$1.head;
7098
- anchor = minPos(oldRange.from(), range$$1.anchor);
7099
- } else {
7100
- head = range$$1.anchor;
7101
- anchor = maxPos(oldRange.to(), range$$1.head);
7102
- }
7103
  }
7104
  var ranges$1 = startSel.ranges.slice(0);
7105
  ranges$1[ourIndex] = new Range(clipPos(doc, anchor), head);
@@ -7116,7 +7318,7 @@ function leftButtonSelect(cm, e, start, type, addNew) {
7116
 
7117
  function extend(e) {
7118
  var curCount = ++counter;
7119
- var cur = posFromMouse(cm, e, true, type == "rect");
7120
  if (!cur) { return }
7121
  if (cmp(cur, lastPos) != 0) {
7122
  cm.curOp.focus = activeElt();
@@ -7282,6 +7484,7 @@ function defineOptions(CodeMirror) {
7282
  if (next.attach) { next.attach(cm, prev || null); }
7283
  });
7284
  option("extraKeys", null);
 
7285
 
7286
  option("lineWrapping", false, wrappingChanged, true);
7287
  option("gutters", [], function (cm) {
@@ -7309,14 +7512,12 @@ function defineOptions(CodeMirror) {
7309
 
7310
  option("resetSelectionOnContextMenu", true);
7311
  option("lineWiseCopyCut", true);
 
7312
 
7313
  option("readOnly", false, function (cm, val) {
7314
  if (val == "nocursor") {
7315
  onBlur(cm);
7316
  cm.display.input.blur();
7317
- cm.display.disabled = true;
7318
- } else {
7319
- cm.display.disabled = false;
7320
  }
7321
  cm.display.input.readOnlyChanged(val);
7322
  });
@@ -7537,7 +7738,7 @@ function registerEventHandlers(cm) {
7537
  // area, ensure viewport is updated when scrolling.
7538
  on(d.scroller, "scroll", function () {
7539
  if (d.scroller.clientHeight) {
7540
- setScrollTop(cm, d.scroller.scrollTop);
7541
  setScrollLeft(cm, d.scroller.scrollLeft, true);
7542
  signal(cm, "scroll", cm);
7543
  }
@@ -7581,7 +7782,7 @@ function indentLine(cm, n, how, aggressive) {
7581
  // Fall back to "prev" when the mode doesn't have an indentation
7582
  // method.
7583
  if (!doc.mode.indent) { how = "prev"; }
7584
- else { state = getStateBefore(cm, n); }
7585
  }
7586
 
7587
  var tabSize = cm.options.tabSize;
@@ -7657,7 +7858,7 @@ function applyTextInput(cm, inserted, deleted, sel, origin) {
7657
  for (var i = 0; i < lastCopied.text.length; i++)
7658
  { multiPaste.push(doc.splitLines(lastCopied.text[i])); }
7659
  }
7660
- } else if (textLines.length == sel.ranges.length) {
7661
  multiPaste = map(textLines, function (l) { return [l]; });
7662
  }
7663
  }
@@ -7917,7 +8118,7 @@ var addEditorMethods = function(CodeMirror) {
7917
  getStateAfter: function(line, precise) {
7918
  var doc = this.doc;
7919
  line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
7920
- return getStateBefore(this, line + 1, precise)
7921
  },
7922
 
7923
  cursorCoords: function(start, mode) {
@@ -7998,6 +8199,7 @@ var addEditorMethods = function(CodeMirror) {
7998
  triggerOnKeyDown: methodOp(onKeyDown),
7999
  triggerOnKeyPress: methodOp(onKeyPress),
8000
  triggerOnKeyUp: onKeyUp,
 
8001
 
8002
  execCommand: function(cmd) {
8003
  if (commands.hasOwnProperty(cmd))
@@ -8070,7 +8272,7 @@ var addEditorMethods = function(CodeMirror) {
8070
  goals.push(headPos.left);
8071
  var pos = findPosV(this$1, headPos, dir, unit);
8072
  if (unit == "page" && range$$1 == doc.sel.primary())
8073
- { addToScrollPos(this$1, null, charCoords(this$1, pos, "div").top - headPos.top); }
8074
  return pos
8075
  }, sel_move);
8076
  if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)
@@ -8107,11 +8309,7 @@ var addEditorMethods = function(CodeMirror) {
8107
  hasFocus: function() { return this.display.input.getField() == activeElt() },
8108
  isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },
8109
 
8110
- scrollTo: methodOp(function(x, y) {
8111
- if (x != null || y != null) { resolveScrollToPos(this); }
8112
- if (x != null) { this.curOp.scrollLeft = x; }
8113
- if (y != null) { this.curOp.scrollTop = y; }
8114
- }),
8115
  getScrollInfo: function() {
8116
  var scroller = this.display.scroller;
8117
  return {left: scroller.scrollLeft, top: scroller.scrollTop,
@@ -8133,16 +8331,9 @@ var addEditorMethods = function(CodeMirror) {
8133
  range$$1.margin = margin || 0;
8134
 
8135
  if (range$$1.from.line != null) {
8136
- resolveScrollToPos(this);
8137
- this.curOp.scrollToPos = range$$1;
8138
  } else {
8139
- var sPos = calculateScrollPos(this, {
8140
- left: Math.min(range$$1.from.left, range$$1.to.left),
8141
- top: Math.min(range$$1.from.top, range$$1.to.top) - range$$1.margin,
8142
- right: Math.max(range$$1.from.right, range$$1.to.right),
8143
- bottom: Math.max(range$$1.from.bottom, range$$1.to.bottom) + range$$1.margin
8144
- });
8145
- this.scrollTo(sPos.scrollLeft, sPos.scrollTop);
8146
  }
8147
  }),
8148
 
@@ -8164,13 +8355,15 @@ var addEditorMethods = function(CodeMirror) {
8164
  }),
8165
 
8166
  operation: function(f){return runInOp(this, f)},
 
 
8167
 
8168
  refresh: methodOp(function() {
8169
  var oldHeight = this.display.cachedTextHeight;
8170
  regChange(this);
8171
  this.curOp.forceUpdate = true;
8172
  clearCaches(this);
8173
- this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop);
8174
  updateGutterSpace(this);
8175
  if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
8176
  { estimateLineHeights(this); }
@@ -8183,7 +8376,7 @@ var addEditorMethods = function(CodeMirror) {
8183
  attachDoc(this, doc);
8184
  clearCaches(this);
8185
  this.display.input.reset();
8186
- this.scrollTo(doc.scrollLeft, doc.scrollTop);
8187
  this.curOp.forceScroll = true;
8188
  signalLater(this, "swapDoc", this, old);
8189
  return old
@@ -8394,36 +8587,41 @@ ContentEditableInput.prototype.showSelection = function (info, takeFocus) {
8394
  };
8395
 
8396
  ContentEditableInput.prototype.showPrimarySelection = function () {
8397
- var sel = window.getSelection(), prim = this.cm.doc.sel.primary();
8398
- var curAnchor = domToPos(this.cm, sel.anchorNode, sel.anchorOffset);
8399
- var curFocus = domToPos(this.cm, sel.focusNode, sel.focusOffset);
8400
- if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
8401
- cmp(minPos(curAnchor, curFocus), prim.from()) == 0 &&
8402
- cmp(maxPos(curAnchor, curFocus), prim.to()) == 0)
8403
- { return }
8404
 
8405
- var start = posToDOM(this.cm, prim.from());
8406
- var end = posToDOM(this.cm, prim.to());
8407
- if (!start && !end) {
8408
  sel.removeAllRanges();
8409
  return
8410
  }
8411
 
8412
- var view = this.cm.display.view;
8413
- var old = sel.rangeCount && sel.getRangeAt(0);
8414
- if (!start) {
8415
- start = {node: view[0].measure.map[2], offset: 0};
8416
- } else if (!end) { // FIXME dangerously hacky
 
 
 
 
 
 
 
8417
  var measure = view[view.length - 1].measure;
8418
  var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
8419
  end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]};
8420
  }
8421
 
8422
- var rng;
 
 
 
 
 
8423
  try { rng = range(start.node, start.offset, end.offset, end.node); }
8424
  catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
8425
  if (rng) {
8426
- if (!gecko && this.cm.state.focused) {
8427
  sel.collapse(start.node, start.offset);
8428
  if (!rng.collapsed) {
8429
  sel.removeAllRanges();
@@ -8702,7 +8900,7 @@ function domTextBetween(cm, from, to, fromLine, toLine) {
8702
  var markerID = node.getAttribute("cm-marker"), range$$1;
8703
  if (markerID) {
8704
  var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
8705
- if (found.length && (range$$1 = found[0].find()))
8706
  { addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); }
8707
  return
8708
  }
@@ -8811,9 +9009,6 @@ var TextareaInput = function(cm) {
8811
  this.pollingFast = false;
8812
  // Self-resetting timeout for the poller
8813
  this.polling = new Delayed();
8814
- // Tracks when input.reset has punted to just putting a short
8815
- // string into the textarea instead of the full selection.
8816
- this.inaccurateSelection = false;
8817
  // Used to work around IE issue with selection being forgotten when focus moves away from textarea
8818
  this.hasSelection = false;
8819
  this.composing = null;
@@ -8850,12 +9045,6 @@ TextareaInput.prototype.init = function (display) {
8850
  if (signalDOMEvent(cm, e)) { return }
8851
  if (cm.somethingSelected()) {
8852
  setLastCopied({lineWise: false, text: cm.getSelections()});
8853
- if (input.inaccurateSelection) {
8854
- input.prevInput = "";
8855
- input.inaccurateSelection = false;
8856
- te.value = lastCopied.text.join("\n");
8857
- selectInput(te);
8858
- }
8859
  } else if (!cm.options.lineWiseCopyCut) {
8860
  return
8861
  } else {
@@ -8933,14 +9122,11 @@ TextareaInput.prototype.showSelection = function (drawn) {
8933
  // Reset the input to correspond to the selection (or to be empty,
8934
  // when not typing and nothing is selected)
8935
  TextareaInput.prototype.reset = function (typing) {
8936
- if (this.contextMenuPending) { return }
8937
- var minimal, selected, cm = this.cm, doc = cm.doc;
8938
  if (cm.somethingSelected()) {
8939
  this.prevInput = "";
8940
- var range$$1 = doc.sel.primary();
8941
- minimal = hasCopyEvent &&
8942
- (range$$1.to().line - range$$1.from().line > 100 || (selected = cm.getSelection()).length > 1000);
8943
- var content = minimal ? "-" : selected || cm.getSelection();
8944
  this.textarea.value = content;
8945
  if (cm.state.focused) { selectInput(this.textarea); }
8946
  if (ie && ie_version >= 9) { this.hasSelection = content; }
@@ -8948,7 +9134,6 @@ TextareaInput.prototype.reset = function (typing) {
8948
  this.prevInput = this.textarea.value = "";
8949
  if (ie && ie_version >= 9) { this.hasSelection = null; }
8950
  }
8951
- this.inaccurateSelection = minimal;
8952
  };
8953
 
8954
  TextareaInput.prototype.getField = function () { return this.textarea };
@@ -9143,6 +9328,7 @@ TextareaInput.prototype.onContextMenu = function (e) {
9143
 
9144
  TextareaInput.prototype.readOnlyChanged = function (val) {
9145
  if (!val) { this.reset(); }
 
9146
  };
9147
 
9148
  TextareaInput.prototype.setUneditable = function () {};
@@ -9298,7 +9484,7 @@ CodeMirror$1.fromTextArea = fromTextArea;
9298
 
9299
  addLegacyProps(CodeMirror$1);
9300
 
9301
- CodeMirror$1.version = "5.25.0";
9302
 
9303
  return CodeMirror$1;
9304
 
@@ -9712,11 +9898,6 @@ if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
9712
  })(function(CodeMirror) {
9713
  "use strict";
9714
 
9715
- function expressionAllowed(stream, state, backUp) {
9716
- return /^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
9717
- (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
9718
- }
9719
-
9720
  CodeMirror.defineMode("javascript", function(config, parserConfig) {
9721
  var indentUnit = config.indentUnit;
9722
  var statementIndent = parserConfig.statementIndent;
@@ -9742,12 +9923,12 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
9742
  "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom,
9743
  "this": kw("this"), "class": kw("class"), "super": kw("atom"),
9744
  "yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
9745
- "await": C, "async": kw("async")
9746
  };
9747
 
9748
  // Extend the 'normal' keywords with the TypeScript language extensions
9749
  if (isTS) {
9750
- var type = {type: "variable", style: "variable-3"};
9751
  var tsKeywords = {
9752
  // object-like things
9753
  "interface": kw("class"),
@@ -9755,16 +9936,13 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
9755
  "namespace": C,
9756
  "module": kw("module"),
9757
  "enum": kw("module"),
9758
- "type": kw("type"),
9759
 
9760
  // scope modifiers
9761
  "public": kw("modifier"),
9762
  "private": kw("modifier"),
9763
  "protected": kw("modifier"),
9764
  "abstract": kw("modifier"),
9765
-
9766
- // operators
9767
- "as": operator,
9768
 
9769
  // types
9770
  "string": type, "number": type, "boolean": type, "any": type
@@ -9778,7 +9956,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
9778
  return jsKeywords;
9779
  }();
9780
 
9781
- var isOperatorChar = /[+\-*&%=<>!?|~^]/;
9782
  var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
9783
 
9784
  function readRegexp(stream) {
@@ -9852,9 +10030,16 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
9852
  return ret("operator", "operator", stream.current());
9853
  } else if (wordRE.test(ch)) {
9854
  stream.eatWhile(wordRE);
9855
- var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];
9856
- return (known && state.lastType != ".") ? ret(known.type, known.style, word) :
9857
- ret("variable", "variable", word);
 
 
 
 
 
 
 
9858
  }
9859
  }
9860
 
@@ -10062,8 +10247,18 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10062
  }
10063
  if (type == "function") return cont(functiondef);
10064
  if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
10065
- if (type == "variable") return cont(pushlex("stat"), maybelabel);
10066
- if (type == "switch") return cont(pushlex("form"), parenExpr, pushlex("}", "switch"), expect("{"),
 
 
 
 
 
 
 
 
 
 
10067
  block, poplex, poplex);
10068
  if (type == "case") return cont(expression, expect(":"));
10069
  if (type == "default") return cont(expect(":"));
@@ -10072,9 +10267,9 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10072
  if (type == "class") return cont(pushlex("form"), className, poplex);
10073
  if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
10074
  if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
10075
- if (type == "module") return cont(pushlex("form"), pattern, pushlex("}"), expect("{"), block, poplex, poplex)
10076
- if (type == "type") return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
10077
  if (type == "async") return cont(statement)
 
10078
  return pass(pushlex("stat"), expression, expect(";"), poplex);
10079
  }
10080
  function expression(type) {
@@ -10125,7 +10320,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10125
  var expr = noComma == false ? expression : expressionNoComma;
10126
  if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
10127
  if (type == "operator") {
10128
- if (/\+\+|--/.test(value)) return cont(me);
10129
  if (value == "?") return cont(expression, expect(":"), expr);
10130
  return cont(expr);
10131
  }
@@ -10134,6 +10329,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10134
  if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
10135
  if (type == ".") return cont(property, me);
10136
  if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
 
10137
  }
10138
  function quasi(type, value) {
10139
  if (type != "quasi") return pass();
@@ -10158,6 +10354,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10158
  function maybeTarget(noComma) {
10159
  return function(type) {
10160
  if (type == ".") return cont(noComma ? targetNoComma : target);
 
10161
  else return pass(noComma ? expressionNoComma : expression);
10162
  };
10163
  }
@@ -10192,7 +10389,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10192
  } else if (type == "[") {
10193
  return cont(expression, expect("]"), afterprop);
10194
  } else if (type == "spread") {
10195
- return cont(expression);
10196
  } else if (type == ":") {
10197
  return pass(afterprop)
10198
  }
@@ -10239,10 +10436,19 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10239
  if (value == "?") return cont(maybetype);
10240
  }
10241
  }
10242
- function typeexpr(type) {
10243
- if (type == "variable") {cx.marked = "variable-3"; return cont(afterType);}
 
 
 
 
 
 
 
 
10244
  if (type == "string" || type == "number" || type == "atom") return cont(afterType);
10245
- if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex)
 
10246
  if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
10247
  }
10248
  function maybeReturnType(type) {
@@ -10256,6 +10462,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10256
  return cont(typeprop)
10257
  } else if (type == ":") {
10258
  return cont(typeexpr)
 
 
10259
  }
10260
  }
10261
  function typearg(type) {
@@ -10266,6 +10474,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10266
  if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
10267
  if (value == "|" || type == ".") return cont(typeexpr)
10268
  if (type == "[") return cont(expect("]"), afterType)
 
 
 
 
10269
  }
10270
  function vardef() {
10271
  return pass(pattern, maybetype, maybeAssign, vardefCont);
@@ -10321,9 +10533,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10321
  if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
10322
  if (type == "variable") {register(value); return cont(functiondef);}
10323
  if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, maybetype, statement, popcontext);
 
10324
  }
10325
  function funarg(type) {
10326
- if (type == "spread") return cont(funarg);
10327
  return pass(pattern, maybetype, maybeAssign);
10328
  }
10329
  function classExpression(type, value) {
@@ -10341,13 +10554,14 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10341
  if (type == "{") return cont(pushlex("}"), classBody, poplex);
10342
  }
10343
  function classBody(type, value) {
10344
- if (type == "variable" || cx.style == "keyword") {
10345
- if ((value == "async" || value == "static" || value == "get" || value == "set" ||
10346
- (isTS && (value == "public" || value == "private" || value == "protected" || value == "readonly" || value == "abstract"))) &&
10347
- cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false)) {
10348
- cx.marked = "keyword";
10349
- return cont(classBody);
10350
- }
 
10351
  cx.marked = "property";
10352
  return cont(isTS ? classfield : functiondef, classBody);
10353
  }
@@ -10359,6 +10573,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10359
  }
10360
  if (type == ";") return cont(classBody);
10361
  if (type == "}") return cont();
 
10362
  }
10363
  function classfield(type, value) {
10364
  if (value == "?") return cont(classfield)
@@ -10406,6 +10621,12 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10406
  /[,.]/.test(textAfter.charAt(0));
10407
  }
10408
 
 
 
 
 
 
 
10409
  // Interface
10410
 
10411
  return {
@@ -10480,6 +10701,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10480
  jsonMode: jsonMode,
10481
 
10482
  expressionAllowed: expressionAllowed,
 
10483
  skipExpression: function(state) {
10484
  var top = state.cc[state.cc.length - 1]
10485
  if (top == expression || top == expressionNoComma) state.cc.pop()
@@ -10887,7 +11109,8 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
10887
  style = style[0];
10888
  }
10889
  override = style;
10890
- state.state = states[state.state](type, stream, state);
 
10891
  return override;
10892
  },
10893
 
@@ -10905,7 +11128,6 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
10905
  ch == "{" && (cx.type == "at" || cx.type == "atBlock")) {
10906
  // Dedent relative to current context.
10907
  indent = Math.max(0, cx.indent - indentUnit);
10908
- cx = cx.prev;
10909
  }
10910
  }
10911
  return indent;
@@ -10976,7 +11198,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
10976
  "border-top-left-radius", "border-top-right-radius", "border-top-style",
10977
  "border-top-width", "border-width", "bottom", "box-decoration-break",
10978
  "box-shadow", "box-sizing", "break-after", "break-before", "break-inside",
10979
- "caption-side", "clear", "clip", "color", "color-profile", "column-count",
10980
  "column-fill", "column-gap", "column-rule", "column-rule-color",
10981
  "column-rule-style", "column-rule-width", "column-span", "column-width",
10982
  "columns", "content", "counter-increment", "counter-reset", "crop", "cue",
@@ -10997,7 +11219,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
10997
  "grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns",
10998
  "grid-template-rows", "hanging-punctuation", "height", "hyphens",
10999
  "icon", "image-orientation", "image-rendering", "image-resolution",
11000
- "inline-box-align", "justify-content", "left", "letter-spacing",
11001
  "line-break", "line-height", "line-stacking", "line-stacking-ruby",
11002
  "line-stacking-shift", "line-stacking-strategy", "list-style",
11003
  "list-style-image", "list-style-position", "list-style-type", "margin",
@@ -11012,7 +11234,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
11012
  "padding", "padding-bottom", "padding-left", "padding-right", "padding-top",
11013
  "page", "page-break-after", "page-break-before", "page-break-inside",
11014
  "page-policy", "pause", "pause-after", "pause-before", "perspective",
11015
- "perspective-origin", "pitch", "pitch-range", "play-during", "position",
11016
  "presentation-level", "punctuation-trim", "quotes", "region-break-after",
11017
  "region-break-before", "region-break-inside", "region-fragment",
11018
  "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness",
@@ -11163,13 +11385,13 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
11163
  "s-resize", "sans-serif", "saturation", "scale", "scale3d", "scaleX", "scaleY", "scaleZ", "screen",
11164
  "scroll", "scrollbar", "scroll-position", "se-resize", "searchfield",
11165
  "searchfield-cancel-button", "searchfield-decoration",
11166
- "searchfield-results-button", "searchfield-results-decoration",
11167
  "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama",
11168
  "simp-chinese-formal", "simp-chinese-informal", "single",
11169
  "skew", "skewX", "skewY", "skip-white-space", "slide", "slider-horizontal",
11170
  "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow",
11171
  "small", "small-caps", "small-caption", "smaller", "soft-light", "solid", "somali",
11172
- "source-atop", "source-in", "source-out", "source-over", "space", "space-around", "space-between", "spell-out", "square",
11173
  "square-button", "start", "static", "status-bar", "stretch", "stroke", "sub",
11174
  "subpixel-antialiased", "super", "sw-resize", "symbolic", "symbols", "system-ui", "table",
11175
  "table-caption", "table-cell", "table-column", "table-column-group",
@@ -11252,8 +11474,8 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
11252
  }
11253
  },
11254
  ":": function(stream) {
11255
- if (stream.match(/\s*\{/))
11256
- return [null, "{"];
11257
  return false;
11258
  },
11259
  "$": function(stream) {
@@ -11469,11 +11691,11 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
11469
  return state.token(stream, state);
11470
  },
11471
 
11472
- indent: function (state, textAfter) {
11473
  if (!state.localMode || /^\s*<\//.test(textAfter))
11474
  return htmlMode.indent(state.htmlState, textAfter);
11475
  else if (state.localMode.indent)
11476
- return state.localMode.indent(state.localState, textAfter);
11477
  else
11478
  return CodeMirror.Pass;
11479
  },
@@ -11522,7 +11744,7 @@ function popContext(state) {
11522
  }
11523
 
11524
  function typeBefore(stream, state, pos) {
11525
- if (state.prevToken == "variable" || state.prevToken == "variable-3") return true;
11526
  if (/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(stream.string.slice(0, pos))) return true;
11527
  if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;
11528
  }
@@ -11553,7 +11775,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
11553
  isPunctuationChar = parserConfig.isPunctuationChar || /[\[\]{}\(\),;\:\.]/,
11554
  numberStart = parserConfig.numberStart || /[\d\.]/,
11555
  number = parserConfig.number || /^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,
11556
- isOperatorChar = parserConfig.isOperatorChar || /[+\-*&%=<>!?|\/]/;
 
11557
 
11558
  var curPunc, isDefKeyword;
11559
 
@@ -11590,9 +11813,9 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
11590
  while (!stream.match(/^\/[\/*]/, false) && stream.eat(isOperatorChar)) {}
11591
  return "operator";
11592
  }
11593
- stream.eatWhile(/[\w\$_\xa1-\uffff]/);
11594
  if (namespaceSeparator) while (stream.match(namespaceSeparator))
11595
- stream.eatWhile(/[\w\$_\xa1-\uffff]/);
11596
 
11597
  var cur = stream.current();
11598
  if (contains(keywords, cur)) {
@@ -11600,7 +11823,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
11600
  if (contains(defKeywords, cur)) isDefKeyword = true;
11601
  return "keyword";
11602
  }
11603
- if (contains(types, cur)) return "variable-3";
11604
  if (contains(builtin, cur)) {
11605
  if (contains(blockKeywords, cur)) curPunc = "newstatement";
11606
  return "builtin";
@@ -11769,7 +11992,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
11769
  }
11770
 
11771
  function pointerHook(_stream, state) {
11772
- if (state.prevToken == "variable-3") return "variable-3";
11773
  return false;
11774
  }
11775
 
@@ -11803,7 +12026,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
11803
  }
11804
 
11805
  function cppLooksLikeConstructor(word) {
11806
- var lastTwo = /(\w+)::(\w+)$/.exec(word);
11807
  return lastTwo && lastTwo[1] == lastTwo[2];
11808
  }
11809
 
@@ -11879,6 +12102,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
11879
  typeFirstDefinitions: true,
11880
  atoms: words("true false null"),
11881
  dontIndentStatements: /^template$/,
 
11882
  hooks: {
11883
  "#": cppHook,
11884
  "*": pointerHook,
@@ -12002,8 +12226,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12002
  "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
12003
  ),
12004
  multiLineStrings: true,
12005
- blockKeywords: words("catch class do else finally for forSome if match switch try while"),
12006
- defKeywords: words("class def object package trait type val var"),
12007
  atoms: words("true false null"),
12008
  indentStatements: false,
12009
  indentSwitch: false,
@@ -12261,7 +12485,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12261
  return "atom";
12262
  },
12263
  token: function(_stream, state, style) {
12264
- if ((style == "variable" || style == "variable-3") &&
12265
  state.prevToken == ".") {
12266
  return "variable-2";
12267
  }
@@ -13025,189 +13249,289 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13025
 
13026
  (function(mod) {
13027
  if (typeof exports == "object" && typeof module == "object") // CommonJS
13028
- mod(require("../../lib/codemirror"));
13029
  else if (typeof define == "function" && define.amd) // AMD
13030
- define(["../../lib/codemirror"], mod);
13031
  else // Plain browser env
13032
- mod(CodeMirror);
13033
  })(function(CodeMirror) {
13034
- "use strict";
13035
- var Pos = CodeMirror.Pos;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13036
 
13037
- function SearchCursor(doc, query, pos, caseFold) {
13038
- this.atOccurrence = false; this.doc = doc;
13039
- if (caseFold == null && typeof query == "string") caseFold = false;
13040
 
13041
- pos = pos ? doc.clipPos(pos) : Pos(0, 0);
13042
- this.pos = {from: pos, to: pos};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13043
 
13044
- // The matches method is filled in based on the type of query.
13045
- // It takes a position and a direction, and returns an object
13046
- // describing the next occurrence of the query, or null if no
13047
- // more matches were found.
13048
- if (typeof query != "string") { // Regexp match
13049
- if (!query.global) query = new RegExp(query.source, query.ignoreCase ? "ig" : "g");
 
 
 
 
 
 
 
 
 
 
13050
  this.matches = function(reverse, pos) {
13051
- if (reverse) {
13052
- query.lastIndex = 0;
13053
- var line = doc.getLine(pos.line).slice(0, pos.ch), cutOff = 0, match, start;
13054
- for (;;) {
13055
- query.lastIndex = cutOff;
13056
- var newMatch = query.exec(line);
13057
- if (!newMatch) break;
13058
- match = newMatch;
13059
- start = match.index;
13060
- cutOff = match.index + (match[0].length || 1);
13061
- if (cutOff == line.length) break;
13062
- }
13063
- var matchLen = (match && match[0].length) || 0;
13064
- if (!matchLen) {
13065
- if (start == 0 && line.length == 0) {match = undefined;}
13066
- else if (start != doc.getLine(pos.line).length) {
13067
- matchLen++;
13068
- }
13069
- }
13070
- } else {
13071
- query.lastIndex = pos.ch;
13072
- var line = doc.getLine(pos.line), match = query.exec(line);
13073
- var matchLen = (match && match[0].length) || 0;
13074
- var start = match && match.index;
13075
- if (start + matchLen != line.length && !matchLen) matchLen = 1;
13076
- }
13077
- if (match && matchLen)
13078
- return {from: Pos(pos.line, start),
13079
- to: Pos(pos.line, start + matchLen),
13080
- match: match};
13081
- };
13082
- } else { // String query
13083
- var origQuery = query;
13084
- if (caseFold) query = query.toLowerCase();
13085
- var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;};
13086
- var target = query.split("\n");
13087
- // Different methods for single-line and multi-line queries
13088
- if (target.length == 1) {
13089
- if (!query.length) {
13090
- // Empty string would match anything and never progress, so
13091
- // we define it to match nothing instead.
13092
- this.matches = function() {};
13093
- } else {
13094
- this.matches = function(reverse, pos) {
13095
- if (reverse) {
13096
- var orig = doc.getLine(pos.line).slice(0, pos.ch), line = fold(orig);
13097
- var match = line.lastIndexOf(query);
13098
- if (match > -1) {
13099
- match = adjustPos(orig, line, match);
13100
- return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};
13101
- }
13102
- } else {
13103
- var orig = doc.getLine(pos.line).slice(pos.ch), line = fold(orig);
13104
- var match = line.indexOf(query);
13105
- if (match > -1) {
13106
- match = adjustPos(orig, line, match) + pos.ch;
13107
- return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};
13108
- }
13109
- }
13110
- };
13111
  }
13112
- } else {
13113
- var origTarget = origQuery.split("\n");
13114
  this.matches = function(reverse, pos) {
13115
- var last = target.length - 1;
13116
- if (reverse) {
13117
- if (pos.line - (target.length - 1) < doc.firstLine()) return;
13118
- if (fold(doc.getLine(pos.line).slice(0, origTarget[last].length)) != target[target.length - 1]) return;
13119
- var to = Pos(pos.line, origTarget[last].length);
13120
- for (var ln = pos.line - 1, i = last - 1; i >= 1; --i, --ln)
13121
- if (target[i] != fold(doc.getLine(ln))) return;
13122
- var line = doc.getLine(ln), cut = line.length - origTarget[0].length;
13123
- if (fold(line.slice(cut)) != target[0]) return;
13124
- return {from: Pos(ln, cut), to: to};
13125
- } else {
13126
- if (pos.line + (target.length - 1) > doc.lastLine()) return;
13127
- var line = doc.getLine(pos.line), cut = line.length - origTarget[0].length;
13128
- if (fold(line.slice(cut)) != target[0]) return;
13129
- var from = Pos(pos.line, cut);
13130
- for (var ln = pos.line + 1, i = 1; i < last; ++i, ++ln)
13131
- if (target[i] != fold(doc.getLine(ln))) return;
13132
- if (fold(doc.getLine(ln).slice(0, origTarget[last].length)) != target[last]) return;
13133
- return {from: from, to: Pos(ln, origTarget[last].length)};
13134
- }
13135
- };
13136
- }
13137
  }
13138
  }
13139
 
13140
  SearchCursor.prototype = {
13141
- findNext: function() {return this.find(false);},
13142
- findPrevious: function() {return this.find(true);},
13143
 
13144
  find: function(reverse) {
13145
- var self = this, pos = this.doc.clipPos(reverse ? this.pos.from : this.pos.to);
13146
- function savePosAndFail(line) {
13147
- var pos = Pos(line, 0);
13148
- self.pos = {from: pos, to: pos};
13149
- self.atOccurrence = false;
13150
- return false;
13151
- }
13152
 
13153
- for (;;) {
13154
- if (this.pos = this.matches(reverse, pos)) {
13155
- this.atOccurrence = true;
13156
- return this.pos.match || true;
13157
- }
13158
  if (reverse) {
13159
- if (!pos.line) return savePosAndFail(0);
13160
- pos = Pos(pos.line-1, this.doc.getLine(pos.line-1).length);
13161
- }
13162
- else {
13163
- var maxLine = this.doc.lineCount();
13164
- if (pos.line == maxLine - 1) return savePosAndFail(maxLine);
13165
- pos = Pos(pos.line + 1, 0);
13166
  }
13167
  }
 
 
 
 
 
 
 
 
 
 
13168
  },
13169
 
13170
- from: function() {if (this.atOccurrence) return this.pos.from;},
13171
- to: function() {if (this.atOccurrence) return this.pos.to;},
13172
 
13173
  replace: function(newText, origin) {
13174
- if (!this.atOccurrence) return;
13175
- var lines = CodeMirror.splitLines(newText);
13176
- this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin);
13177
  this.pos.to = Pos(this.pos.from.line + lines.length - 1,
13178
- lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0));
13179
- }
13180
- };
13181
-
13182
- // Maps a position in a case-folded line back to a position in the original line
13183
- // (compensating for codepoints increasing in number during folding)
13184
- function adjustPos(orig, folded, pos) {
13185
- if (orig.length == folded.length) return pos;
13186
- for (var pos1 = Math.min(pos, orig.length);;) {
13187
- var len1 = orig.slice(0, pos1).toLowerCase().length;
13188
- if (len1 < pos) ++pos1;
13189
- else if (len1 > pos) --pos1;
13190
- else return pos1;
13191
  }
13192
  }
13193
 
13194
  CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) {
13195
- return new SearchCursor(this.doc, query, pos, caseFold);
13196
- });
13197
  CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) {
13198
- return new SearchCursor(this, query, pos, caseFold);
13199
- });
13200
 
13201
  CodeMirror.defineExtension("selectMatches", function(query, caseFold) {
13202
- var ranges = [];
13203
- var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold);
13204
  while (cur.findNext()) {
13205
- if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break;
13206
- ranges.push({anchor: cur.from(), head: cur.to()});
13207
  }
13208
  if (ranges.length)
13209
- this.setSelections(ranges, 0);
13210
- });
13211
  });
13212
 
13213
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
@@ -13266,7 +13590,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13266
 
13267
  function getSearchCursor(cm, query, pos) {
13268
  // Heuristic: if the query string is all lowercase, do a case insensitive search.
13269
- return cm.getSearchCursor(query, pos, queryCaseInsensitive(query));
13270
  }
13271
 
13272
  function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {
@@ -13311,7 +13635,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13311
  }
13312
 
13313
  var queryDialog =
13314
- 'Search: <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
13315
 
13316
  function startSearch(cm, state, query) {
13317
  state.queryText = query;
@@ -13349,8 +13673,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13349
  };
13350
  persistentDialog(cm, queryDialog, q, searchNext, function(event, query) {
13351
  var keyName = CodeMirror.keyName(event)
13352
- var cmd = CodeMirror.keyMap[cm.getOption("keyMap")][keyName]
13353
- if (!cmd) cmd = cm.getOption('extraKeys')[keyName]
13354
  if (cmd == "findNext" || cmd == "findPrev" ||
13355
  cmd == "findPersistentNext" || cmd == "findPersistentPrev") {
13356
  CodeMirror.e_stop(event);
@@ -13400,8 +13723,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13400
 
13401
  var replaceQueryDialog =
13402
  ' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
13403
- var replacementQueryDialog = 'With: <input type="text" style="width: 10em" class="CodeMirror-search-field"/>';
13404
- var doReplaceConfirm = "Replace? <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>";
13405
 
13406
  function replaceAll(cm, query, text) {
13407
  cm.operation(function() {
@@ -13417,7 +13740,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13417
  function replace(cm, all) {
13418
  if (cm.getOption("readOnly")) return;
13419
  var query = cm.getSelection() || getSearchState(cm).lastQuery;
13420
- var dialogText = all ? "Replace all:" : "Replace:"
13421
  dialog(cm, dialogText + replaceQueryDialog, dialogText, query, function(query) {
13422
  if (!query) return;
13423
  query = parseQuery(query);
@@ -14055,6 +14378,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
14055
  widget = document.createElement("span");
14056
  widget.appendChild(text);
14057
  widget.className = "CodeMirror-foldmarker";
 
 
14058
  }
14059
  return widget;
14060
  }
@@ -14451,10 +14776,10 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
14451
  }
14452
  };
14453
 
14454
- CodeMirror.findEnclosingTag = function(cm, pos, range) {
14455
  var iter = new Iter(cm, pos.line, pos.ch, range);
14456
  for (;;) {
14457
- var open = findMatchingOpen(iter);
14458
  if (!open) break;
14459
  var forward = new Iter(cm, pos.line, pos.ch, range);
14460
  var close = findMatchingClose(forward, open.tag);
@@ -14489,7 +14814,7 @@ function lineIndent(cm, lineNo) {
14489
  return -1
14490
  return CodeMirror.countColumn(text, null, cm.getOption("tabSize"))
14491
  }
14492
- !
14493
  CodeMirror.registerHelper("fold", "indent", function(cm, start) {
14494
  var myIndent = lineIndent(cm, start.line)
14495
  if (myIndent < 0) return
@@ -14536,12 +14861,21 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
14536
 
14537
  var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
14538
 
14539
- function findMatchingBracket(cm, where, strict, config) {
14540
  var line = cm.getLineHandle(where.line), pos = where.ch - 1;
14541
- var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)];
 
 
 
 
 
 
 
 
 
14542
  if (!match) return null;
14543
  var dir = match.charAt(1) == ">" ? 1 : -1;
14544
- if (strict && (dir > 0) != (pos == where.ch)) return null;
14545
  var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));
14546
 
14547
  var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
@@ -14589,7 +14923,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
14589
  var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
14590
  var marks = [], ranges = cm.listSelections();
14591
  for (var i = 0; i < ranges.length; i++) {
14592
- var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, false, config);
14593
  if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
14594
  var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
14595
  marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
@@ -14633,8 +14967,17 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
14633
  });
14634
 
14635
  CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
14636
- CodeMirror.defineExtension("findMatchingBracket", function(pos, strict, config){
14637
- return findMatchingBracket(this, pos, strict, config);
 
 
 
 
 
 
 
 
 
14638
  });
14639
  CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
14640
  return scanForBracket(this, pos, dir, style, config);
@@ -15414,6 +15757,23 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15414
  cm.state.sublimeFindFullWord = cm.doc.sel;
15415
  };
15416
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15417
  function isSelectedRange(ranges, from, to) {
15418
  for (var i = 0; i < ranges.length; i++)
15419
  if (ranges[i].from() == from && ranges[i].to() == to) return true
@@ -15943,7 +16303,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15943
 
15944
  function byExpr(cm, pos, dir) {
15945
  var wrap;
15946
- if (cm.findMatchingBracket && (wrap = cm.findMatchingBracket(pos, true))
15947
  && wrap.match && (wrap.forward ? 1 : -1) == dir)
15948
  return dir > 0 ? Pos(wrap.to.line, wrap.to.ch + 1) : wrap.to;
15949
 
@@ -16215,7 +16575,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16215
  "Ctrl-/": repeated("undo"), "Shift-Ctrl--": repeated("undo"),
16216
  "Ctrl-Z": repeated("undo"), "Cmd-Z": repeated("undo"),
16217
  "Shift-Alt-,": "goDocStart", "Shift-Alt-.": "goDocEnd",
16218
- "Ctrl-S": "findNext", "Ctrl-R": "findPrev", "Ctrl-G": quit, "Shift-Alt-5": "replace",
16219
  "Alt-/": "autocomplete",
16220
  "Enter": "newlineAndIndent",
16221
  "Ctrl-J": repeated(function(cm) { cm.replaceSelection("\n", "end"); }),
@@ -16522,7 +16882,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16522
  CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
16523
 
16524
  if (!next || next.attach != attachVimMap)
16525
- leaveVimMode(cm, false);
16526
  }
16527
  function attachVimMap(cm, prev) {
16528
  if (this == CodeMirror.keyMap.vim)
@@ -16674,11 +17034,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16674
  cfg = cfg || {};
16675
  var scope = cfg.scope;
16676
  if (!option) {
16677
- throw Error('Unknown option: ' + name);
16678
  }
16679
  if (option.type == 'boolean') {
16680
  if (value && value !== true) {
16681
- throw Error('Invalid argument: ' + name + '=' + value);
16682
  } else if (value !== false) {
16683
  // Boolean options are set to true if value is not defined.
16684
  value = true;
@@ -16706,7 +17066,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16706
  cfg = cfg || {};
16707
  var scope = cfg.scope;
16708
  if (!option) {
16709
- throw Error('Unknown option: ' + name);
16710
  }
16711
  if (option.callback) {
16712
  var local = cm && option.callback(undefined, cm);
@@ -16912,9 +17272,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16912
  lastCharacterSearch: {increment:0, forward:true, selectedCharacter:''},
16913
  registerController: new RegisterController({}),
16914
  // search history buffer
16915
- searchHistoryController: new HistoryController({}),
16916
  // ex Command history buffer
16917
- exCommandHistoryController : new HistoryController({})
16918
  };
16919
  for (var optionName in options) {
16920
  var option = options[optionName];
@@ -17221,7 +17581,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
17221
  * for a reference implementation.
17222
  */
17223
  function defineRegister(name, register) {
17224
- var registers = vimGlobalState.registerController.registers[name];
17225
  if (!name || name.length != 1) {
17226
  throw Error('Register name must be 1 character');
17227
  }
@@ -17249,9 +17609,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
17249
  }
17250
  RegisterController.prototype = {
17251
  pushText: function(registerName, operator, text, linewise, blockwise) {
17252
- if (linewise && text.charAt(0) == '\n') {
17253
- text = text.slice(1) + '\n';
17254
- }
17255
  if (linewise && text.charAt(text.length - 1) !== '\n'){
17256
  text += '\n';
17257
  }
@@ -17373,7 +17730,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
17373
  }
17374
  }
17375
  if (bestMatch.keys.slice(-11) == '<character>') {
17376
- inputState.selectedCharacter = lastChar(keys);
 
 
17377
  }
17378
  return {type: 'full', command: bestMatch};
17379
  },
@@ -18099,16 +18458,16 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
18099
  var ch = cursor.ch;
18100
  var lineText = cm.getLine(line);
18101
  var symbol;
18102
- do {
18103
- symbol = lineText.charAt(ch++);
18104
  if (symbol && isMatchableSymbol(symbol)) {
18105
- var style = cm.getTokenTypeAt(Pos(line, ch));
18106
  if (style !== "string" && style !== "comment") {
18107
  break;
18108
  }
18109
  }
18110
- } while (symbol);
18111
- if (symbol) {
18112
  var matched = cm.findMatchingBracket(Pos(line, ch));
18113
  return matched.to;
18114
  } else {
@@ -18449,7 +18808,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
18449
  enterMacroRecordMode: function(cm, actionArgs) {
18450
  var macroModeState = vimGlobalState.macroModeState;
18451
  var registerName = actionArgs.selectedCharacter;
18452
- macroModeState.enterMacroRecordMode(cm, registerName);
 
 
18453
  },
18454
  toggleOverwrite: function(cm) {
18455
  if (!cm.state.overwrite) {
@@ -18967,7 +19328,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
18967
  }
18968
  }
18969
  function lastChar(keys) {
18970
- var match = /^.*(<[\w\-]+>)$/.exec(keys);
18971
  var selectedCharacter = match ? match[1] : keys.slice(-1);
18972
  if (selectedCharacter.length > 1){
18973
  switch(selectedCharacter){
@@ -18978,6 +19339,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
18978
  selectedCharacter=' ';
18979
  break;
18980
  default:
 
18981
  break;
18982
  }
18983
  }
@@ -19078,7 +19440,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
19078
  var range = {anchor: new Pos(line, baseCh), head: new Pos(line, headCh)};
19079
  selections.push(range);
19080
  }
19081
- primIndex = head.line == lastLine ? selections.length - 1 : 0;
19082
  cm.setSelections(selections);
19083
  selectionEnd.ch = headCh;
19084
  base.ch = baseCh;
@@ -20346,23 +20707,42 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
20346
  parseLineSpec_: function(cm, inputStream) {
20347
  var numberMatch = inputStream.match(/^(\d+)/);
20348
  if (numberMatch) {
 
 
20349
  return parseInt(numberMatch[1], 10) - 1;
20350
  }
20351
  switch (inputStream.next()) {
20352
  case '.':
20353
- return cm.getCursor().line;
20354
  case '$':
20355
- return cm.lastLine();
20356
  case '\'':
20357
  var markName = inputStream.next();
20358
  var markPos = getMarkPos(cm, cm.state.vim, markName);
20359
  if (!markPos) throw new Error('Mark not set');
20360
- return markPos.line;
 
 
 
 
 
20361
  default:
20362
  inputStream.backUp(1);
20363
  return undefined;
20364
  }
20365
  },
 
 
 
 
 
 
 
 
 
 
 
 
20366
  parseCommandArgs_: function(inputStream, params, command) {
20367
  if (inputStream.eol()) {
20368
  return;
@@ -20542,13 +20922,18 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
20542
  // If no value is provided, then we assume this is a get.
20543
  if (!optionIsBoolean && value === undefined || forceGet) {
20544
  var oldValue = getOption(optionName, cm, setCfg);
20545
- if (oldValue === true || oldValue === false) {
 
 
20546
  showConfirm(cm, ' ' + (oldValue ? '' : 'no') + optionName);
20547
  } else {
20548
  showConfirm(cm, ' ' + optionName + '=' + oldValue);
20549
  }
20550
  } else {
20551
- setOption(optionName, value, cm, setCfg);
 
 
 
20552
  }
20553
  },
20554
  setlocal: function (cm, params) {
@@ -20747,6 +21132,10 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
20747
  if (tokens.length) {
20748
  regexPart = tokens[0];
20749
  replacePart = tokens[1];
 
 
 
 
20750
  if (replacePart !== undefined) {
20751
  if (getOption('pcre')) {
20752
  replacePart = unescapeRegexReplace(replacePart);
@@ -21166,7 +21555,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21166
  * Listens for changes made in insert mode.
21167
  * Should only be active in insert mode.
21168
  */
21169
- function onChange(_cm, changeObj) {
21170
  var macroModeState = vimGlobalState.macroModeState;
21171
  var lastChange = macroModeState.lastInsertModeChanges;
21172
  if (!macroModeState.isPlaying) {
@@ -21179,7 +21568,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21179
  lastChange.changes = [];
21180
  lastChange.maybeReset = false;
21181
  }
21182
- lastChange.changes.push(text);
 
 
 
 
21183
  }
21184
  // Change objects may be chained with next.
21185
  changeObj = changeObj.next;
@@ -21361,9 +21754,13 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21361
  var change = changes[j];
21362
  if (change instanceof InsertModeKey) {
21363
  CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler);
21364
- } else {
21365
  var cur = cm.getCursor();
21366
  cm.replaceRange(change, cur, cur);
 
 
 
 
21367
  }
21368
  }
21369
  }
@@ -21388,7 +21785,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21388
  * @since 2.2.1
21389
  */
21390
 
21391
- console.log(window.heshOptions); // from wordpress php
21392
 
21393
  (function (
21394
  document,
1134
  ch = dir < 0 ? lineObj.text.length - 1 : 0;
1135
  var targetTop = measureCharPrepared(cm, prep, ch).top;
1136
  ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
1137
+ if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); }
1138
  } else { ch = dir < 0 ? part.to : part.from; }
1139
  return new Pos(lineNo, ch, sticky)
1140
  }
1495
  // Fed to the mode parsers, provides helper functions to make
1496
  // parsers more succinct.
1497
 
1498
+ var StringStream = function(string, tabSize, lineOracle) {
1499
  this.pos = this.start = 0;
1500
  this.string = string;
1501
  this.tabSize = tabSize || 8;
1502
  this.lastColumnPos = this.lastColumnValue = 0;
1503
  this.lineStart = 0;
1504
+ this.lineOracle = lineOracle;
1505
  };
1506
 
1507
  StringStream.prototype.eol = function () {return this.pos >= this.string.length};
1568
  try { return inner() }
1569
  finally { this.lineStart -= n; }
1570
  };
1571
+ StringStream.prototype.lookAhead = function (n) {
1572
+ var oracle = this.lineOracle;
1573
+ return oracle && oracle.lookAhead(n)
1574
+ };
1575
+
1576
+ var SavedContext = function(state, lookAhead) {
1577
+ this.state = state;
1578
+ this.lookAhead = lookAhead;
1579
+ };
1580
+
1581
+ var Context = function(doc, state, line, lookAhead) {
1582
+ this.state = state;
1583
+ this.doc = doc;
1584
+ this.line = line;
1585
+ this.maxLookAhead = lookAhead || 0;
1586
+ };
1587
+
1588
+ Context.prototype.lookAhead = function (n) {
1589
+ var line = this.doc.getLine(this.line + n);
1590
+ if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }
1591
+ return line
1592
+ };
1593
+
1594
+ Context.prototype.nextLine = function () {
1595
+ this.line++;
1596
+ if (this.maxLookAhead > 0) { this.maxLookAhead--; }
1597
+ };
1598
+
1599
+ Context.fromSaved = function (doc, saved, line) {
1600
+ if (saved instanceof SavedContext)
1601
+ { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }
1602
+ else
1603
+ { return new Context(doc, copyState(doc.mode, saved), line) }
1604
+ };
1605
+
1606
+ Context.prototype.save = function (copy) {
1607
+ var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;
1608
+ return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state
1609
+ };
1610
+
1611
 
1612
  // Compute a style array (an array starting with a mode generation
1613
  // -- for invalidation -- followed by pairs of end positions and
1614
  // style strings), which is used to highlight the tokens on the
1615
  // line.
1616
+ function highlightLine(cm, line, context, forceToEnd) {
1617
  // A styles array always starts with a number identifying the
1618
  // mode/overlays that it is based on (for easy invalidation).
1619
  var st = [cm.state.modeGen], lineClasses = {};
1620
  // Compute the base array of styles
1621
+ runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },
1622
+ lineClasses, forceToEnd);
1623
+ var state = context.state;
1624
 
1625
  // Run overlays, adjust style array.
1626
  var loop = function ( o ) {
1627
  var overlay = cm.state.overlays[o], i = 1, at = 0;
1628
+ context.state = true;
1629
+ runMode(cm, line.text, overlay.mode, context, function (end, style) {
1630
  var start = i;
1631
  // Ensure there's a token end at the current position, and that i points at it
1632
  while (at < end) {
1650
  };
1651
 
1652
  for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
1653
+ context.state = state;
1654
 
1655
  return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
1656
  }
1657
 
1658
  function getLineStyles(cm, line, updateFrontier) {
1659
  if (!line.styles || line.styles[0] != cm.state.modeGen) {
1660
+ var context = getContextBefore(cm, lineNo(line));
1661
+ var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);
1662
+ var result = highlightLine(cm, line, context);
1663
+ if (resetState) { context.state = resetState; }
1664
+ line.stateAfter = context.save(!resetState);
1665
  line.styles = result.styles;
1666
  if (result.classes) { line.styleClasses = result.classes; }
1667
  else if (line.styleClasses) { line.styleClasses = null; }
1668
+ if (updateFrontier === cm.doc.highlightFrontier)
1669
+ { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }
1670
  }
1671
  return line.styles
1672
  }
1673
 
1674
+ function getContextBefore(cm, n, precise) {
1675
  var doc = cm.doc, display = cm.display;
1676
+ if (!doc.mode.startState) { return new Context(doc, true, n) }
1677
+ var start = findStartLine(cm, n, precise);
1678
+ var saved = start > doc.first && getLine(doc, start - 1).stateAfter;
1679
+ var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);
1680
+
1681
+ doc.iter(start, n, function (line) {
1682
+ processLine(cm, line.text, context);
1683
+ var pos = context.line;
1684
+ line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;
1685
+ context.nextLine();
1686
  });
1687
+ if (precise) { doc.modeFrontier = context.line; }
1688
+ return context
1689
  }
1690
 
1691
  // Lightweight form of highlight -- proceed over this line and
1692
  // update state, but don't save a style array. Used for lines that
1693
  // aren't currently visible.
1694
+ function processLine(cm, text, context, startAt) {
1695
  var mode = cm.doc.mode;
1696
+ var stream = new StringStream(text, cm.options.tabSize, context);
1697
  stream.start = stream.pos = startAt || 0;
1698
+ if (text == "") { callBlankLine(mode, context.state); }
1699
  while (!stream.eol()) {
1700
+ readToken(mode, stream, context.state);
1701
  stream.start = stream.pos;
1702
  }
1703
  }
1718
  throw new Error("Mode " + mode.name + " failed to advance stream.")
1719
  }
1720
 
1721
+ var Token = function(stream, type, state) {
1722
+ this.start = stream.start; this.end = stream.pos;
1723
+ this.string = stream.current();
1724
+ this.type = type || null;
1725
+ this.state = state;
1726
+ };
1727
+
1728
  // Utility for getTokenAt and getLineTokens
1729
  function takeToken(cm, pos, precise, asArray) {
 
 
 
 
 
 
 
1730
  var doc = cm.doc, mode = doc.mode, style;
1731
  pos = clipPos(doc, pos);
1732
+ var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);
1733
+ var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;
1734
  if (asArray) { tokens = []; }
1735
  while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
1736
  stream.start = stream.pos;
1737
+ style = readToken(mode, stream, context.state);
1738
+ if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }
1739
  }
1740
+ return asArray ? tokens : new Token(stream, style, context.state)
1741
  }
1742
 
1743
  function extractLineClasses(type, output) {
1755
  }
1756
 
1757
  // Run the given mode's parser over a line, calling f for each token.
1758
+ function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {
1759
  var flattenSpans = mode.flattenSpans;
1760
  if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }
1761
  var curStart = 0, curStyle = null;
1762
+ var stream = new StringStream(text, cm.options.tabSize, context), style;
1763
  var inner = cm.options.addModeClass && [null];
1764
+ if (text == "") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }
1765
  while (!stream.eol()) {
1766
  if (stream.pos > cm.options.maxHighlightLength) {
1767
  flattenSpans = false;
1768
+ if (forceToEnd) { processLine(cm, text, context, stream.pos); }
1769
  stream.pos = text.length;
1770
  style = null;
1771
  } else {
1772
+ style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);
1773
  }
1774
  if (inner) {
1775
  var mName = inner[0].name;
1804
  var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
1805
  for (var search = n; search > lim; --search) {
1806
  if (search <= doc.first) { return doc.first }
1807
+ var line = getLine(doc, search - 1), after = line.stateAfter;
1808
+ if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))
1809
+ { return search }
1810
  var indented = countColumn(line.text, null, cm.options.tabSize);
1811
  if (minline == null || minindent > indented) {
1812
  minline = search - 1;
1816
  return minline
1817
  }
1818
 
1819
+ function retreatFrontier(doc, n) {
1820
+ doc.modeFrontier = Math.min(doc.modeFrontier, n);
1821
+ if (doc.highlightFrontier < n - 10) { return }
1822
+ var start = doc.first;
1823
+ for (var line = n - 1; line > start; line--) {
1824
+ var saved = getLine(doc, line).stateAfter;
1825
+ // change is on 3
1826
+ // state on line 1 looked ahead 2 -- so saw 3
1827
+ // test 1 + 2 < 3 should cover this
1828
+ if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {
1829
+ start = line + 1;
1830
+ break
1831
+ }
1832
+ }
1833
+ doc.highlightFrontier = Math.min(doc.highlightFrontier, start);
1834
+ }
1835
+
1836
  // LINE DATA STRUCTURE
1837
 
1838
  // Line objects. These hold state related to a line, including
2709
  cm.display.lineNumChars = null;
2710
  }
2711
 
2712
+ function pageScrollX() {
2713
+ // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206
2714
+ // which causes page_Offset and bounding client rects to use
2715
+ // different reference viewports and invalidate our calculations.
2716
+ if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }
2717
+ return window.pageXOffset || (document.documentElement || document.body).scrollLeft
2718
+ }
2719
+ function pageScrollY() {
2720
+ if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }
2721
+ return window.pageYOffset || (document.documentElement || document.body).scrollTop
2722
+ }
2723
 
2724
  // Converts a {top, bottom, left, right} box from line-local
2725
  // coordinates into another coordinate system. Context may be one of
2885
  var assign;
2886
  ((assign = wrappedLineExtent(cm, lineObj, preparedMeasure, y), begin = assign.begin, end = assign.end, assign));
2887
  }
2888
+ pos = new Pos(lineNo$$1, Math.floor(begin + (end - begin) / 2));
2889
  var beginLeft = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left;
2890
  var dir = beginLeft < x ? 1 : -1;
2891
  var prevDiff, diff = beginLeft - x, prevPos;
2892
+ var steps = Math.ceil((end - begin) / 4);
2893
+ outer: do {
2894
  prevDiff = diff;
2895
  prevPos = pos;
2896
+ var i = 0;
2897
+ for (; i < steps; ++i) {
2898
+ var prevPos$1 = pos;
2899
+ pos = moveVisually(cm, lineObj, pos, dir);
2900
+ if (pos == null || pos.ch < begin || end <= (pos.sticky == "before" ? pos.ch - 1 : pos.ch)) {
2901
+ pos = prevPos$1;
2902
+ break outer
2903
+ }
2904
  }
2905
  diff = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left - x;
2906
+ if (steps > 1) {
2907
+ var diff_change_per_step = Math.abs(diff - prevDiff) / steps;
2908
+ steps = Math.min(steps, Math.ceil(Math.abs(diff) / diff_change_per_step));
2909
+ dir = diff < 0 ? 1 : -1;
2910
+ }
2911
+ } while (diff != 0 && (steps > 1 || ((dir < 0) != (diff < 0) && (Math.abs(diff) <= Math.abs(prevDiff)))))
2912
  if (Math.abs(diff) > Math.abs(prevDiff)) {
2913
  if ((diff < 0) == (prevDiff < 0)) { throw new Error("Broke out of infinite loop in coordsCharInner") }
2914
  pos = prevPos;
3224
  setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);
3225
  }
3226
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3227
  // Read the actual heights of the rendered lines, and update their
3228
  // stored heights to match.
3229
  function updateHeightsInViewport(cm) {
3242
  }
3243
  var diff = cur.line.height - height;
3244
  if (height < 2) { height = textHeight(display); }
3245
+ if (diff > .005 || diff < -.005) {
3246
  updateLineHeight(cur.line, height);
3247
  updateWidgetHeight(cur.line);
3248
  if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)
3282
  return {from: from, to: Math.max(to, from + 1)}
3283
  }
3284
 
3285
+ // Re-align line numbers and gutter marks to compensate for
3286
+ // horizontal scrolling.
3287
+ function alignHorizontally(cm) {
3288
+ var display = cm.display, view = display.view;
3289
+ if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }
3290
+ var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
3291
+ var gutterW = display.gutters.offsetWidth, left = comp + "px";
3292
+ for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {
3293
+ if (cm.options.fixedGutter) {
3294
+ if (view[i].gutter)
3295
+ { view[i].gutter.style.left = left; }
3296
+ if (view[i].gutterBackground)
3297
+ { view[i].gutterBackground.style.left = left; }
3298
+ }
3299
+ var align = view[i].alignable;
3300
+ if (align) { for (var j = 0; j < align.length; j++)
3301
+ { align[j].style.left = left; } }
3302
+ } }
3303
+ if (cm.options.fixedGutter)
3304
+ { display.gutters.style.left = (comp + gutterW) + "px"; }
3305
+ }
3306
+
3307
+ // Used to ensure that the line number gutter is still the right
3308
+ // size for the current document size. Returns true when an update
3309
+ // is needed.
3310
+ function maybeUpdateLineNumberWidth(cm) {
3311
+ if (!cm.options.lineNumbers) { return false }
3312
+ var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
3313
+ if (last.length != display.lineNumChars) {
3314
+ var test = display.measure.appendChild(elt("div", [elt("div", last)],
3315
+ "CodeMirror-linenumber CodeMirror-gutter-elt"));
3316
+ var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
3317
+ display.lineGutter.style.width = "";
3318
+ display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
3319
+ display.lineNumWidth = display.lineNumInnerWidth + padding;
3320
+ display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
3321
+ display.lineGutter.style.width = display.lineNumWidth + "px";
3322
+ updateGutterSpace(cm);
3323
+ return true
3324
+ }
3325
+ return false
3326
+ }
3327
+
3328
+ // SCROLLING THINGS INTO VIEW
3329
+
3330
+ // If an editor sits on the top or bottom of the window, partially
3331
+ // scrolled out of view, this ensures that the cursor is visible.
3332
+ function maybeScrollWindow(cm, rect) {
3333
+ if (signalDOMEvent(cm, "scrollCursorIntoView")) { return }
3334
+
3335
+ var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
3336
+ if (rect.top + box.top < 0) { doScroll = true; }
3337
+ else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }
3338
+ if (doScroll != null && !phantom) {
3339
+ var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;"));
3340
+ cm.display.lineSpace.appendChild(scrollNode);
3341
+ scrollNode.scrollIntoView(doScroll);
3342
+ cm.display.lineSpace.removeChild(scrollNode);
3343
+ }
3344
+ }
3345
+
3346
+ // Scroll a given position into view (immediately), verifying that
3347
+ // it actually became visible (as line heights are accurately
3348
+ // measured, the position of something may 'drift' during drawing).
3349
+ function scrollPosIntoView(cm, pos, end, margin) {
3350
+ if (margin == null) { margin = 0; }
3351
+ var rect;
3352
+ if (!cm.options.lineWrapping && pos == end) {
3353
+ // Set pos and end to the cursor positions around the character pos sticks to
3354
+ // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch
3355
+ // If pos == Pos(_, 0, "before"), pos and end are unchanged
3356
+ pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos;
3357
+ end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos;
3358
+ }
3359
+ for (var limit = 0; limit < 5; limit++) {
3360
+ var changed = false;
3361
+ var coords = cursorCoords(cm, pos);
3362
+ var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
3363
+ rect = {left: Math.min(coords.left, endCoords.left),
3364
+ top: Math.min(coords.top, endCoords.top) - margin,
3365
+ right: Math.max(coords.left, endCoords.left),
3366
+ bottom: Math.max(coords.bottom, endCoords.bottom) + margin};
3367
+ var scrollPos = calculateScrollPos(cm, rect);
3368
+ var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
3369
+ if (scrollPos.scrollTop != null) {
3370
+ updateScrollTop(cm, scrollPos.scrollTop);
3371
+ if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }
3372
+ }
3373
+ if (scrollPos.scrollLeft != null) {
3374
+ setScrollLeft(cm, scrollPos.scrollLeft);
3375
+ if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }
3376
+ }
3377
+ if (!changed) { break }
3378
+ }
3379
+ return rect
3380
+ }
3381
+
3382
+ // Scroll a given set of coordinates into view (immediately).
3383
+ function scrollIntoView(cm, rect) {
3384
+ var scrollPos = calculateScrollPos(cm, rect);
3385
+ if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }
3386
+ if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }
3387
+ }
3388
+
3389
+ // Calculate a new scroll position needed to scroll the given
3390
+ // rectangle into view. Returns an object with scrollTop and
3391
+ // scrollLeft properties. When these are undefined, the
3392
+ // vertical/horizontal position does not need to be adjusted.
3393
+ function calculateScrollPos(cm, rect) {
3394
+ var display = cm.display, snapMargin = textHeight(cm.display);
3395
+ if (rect.top < 0) { rect.top = 0; }
3396
+ var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
3397
+ var screen = displayHeight(cm), result = {};
3398
+ if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }
3399
+ var docBottom = cm.doc.height + paddingVert(display);
3400
+ var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;
3401
+ if (rect.top < screentop) {
3402
+ result.scrollTop = atTop ? 0 : rect.top;
3403
+ } else if (rect.bottom > screentop + screen) {
3404
+ var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);
3405
+ if (newTop != screentop) { result.scrollTop = newTop; }
3406
+ }
3407
+
3408
+ var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
3409
+ var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
3410
+ var tooWide = rect.right - rect.left > screenw;
3411
+ if (tooWide) { rect.right = rect.left + screenw; }
3412
+ if (rect.left < 10)
3413
+ { result.scrollLeft = 0; }
3414
+ else if (rect.left < screenleft)
3415
+ { result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); }
3416
+ else if (rect.right > screenw + screenleft - 3)
3417
+ { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }
3418
+ return result
3419
+ }
3420
+
3421
+ // Store a relative adjustment to the scroll position in the current
3422
+ // operation (to be applied when the operation finishes).
3423
+ function addToScrollTop(cm, top) {
3424
+ if (top == null) { return }
3425
+ resolveScrollToPos(cm);
3426
+ cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;
3427
+ }
3428
+
3429
+ // Make sure that at the end of the operation the current cursor is
3430
+ // shown.
3431
+ function ensureCursorVisible(cm) {
3432
+ resolveScrollToPos(cm);
3433
+ var cur = cm.getCursor();
3434
+ cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};
3435
+ }
3436
+
3437
+ function scrollToCoords(cm, x, y) {
3438
+ if (x != null || y != null) { resolveScrollToPos(cm); }
3439
+ if (x != null) { cm.curOp.scrollLeft = x; }
3440
+ if (y != null) { cm.curOp.scrollTop = y; }
3441
+ }
3442
+
3443
+ function scrollToRange(cm, range$$1) {
3444
+ resolveScrollToPos(cm);
3445
+ cm.curOp.scrollToPos = range$$1;
3446
+ }
3447
+
3448
+ // When an operation has its scrollToPos property set, and another
3449
+ // scroll action is applied before the end of the operation, this
3450
+ // 'simulates' scrolling that position into view in a cheap way, so
3451
+ // that the effect of intermediate scroll commands is not ignored.
3452
+ function resolveScrollToPos(cm) {
3453
+ var range$$1 = cm.curOp.scrollToPos;
3454
+ if (range$$1) {
3455
+ cm.curOp.scrollToPos = null;
3456
+ var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to);
3457
+ scrollToCoordsRange(cm, from, to, range$$1.margin);
3458
+ }
3459
+ }
3460
+
3461
+ function scrollToCoordsRange(cm, from, to, margin) {
3462
+ var sPos = calculateScrollPos(cm, {
3463
+ left: Math.min(from.left, to.left),
3464
+ top: Math.min(from.top, to.top) - margin,
3465
+ right: Math.max(from.right, to.right),
3466
+ bottom: Math.max(from.bottom, to.bottom) + margin
3467
+ });
3468
+ scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);
3469
+ }
3470
+
3471
  // Sync the scrollable area and scrollbars, ensure the viewport
3472
  // covers the visible area.
3473
+ function updateScrollTop(cm, val) {
3474
  if (Math.abs(cm.doc.scrollTop - val) < 2) { return }
 
3475
  if (!gecko) { updateDisplaySimple(cm, {top: val}); }
3476
+ setScrollTop(cm, val, true);
 
3477
  if (gecko) { updateDisplaySimple(cm); }
3478
  startWorker(cm, 100);
3479
  }
3480
+
3481
+ function setScrollTop(cm, val, forceScroll) {
3482
+ val = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val);
3483
+ if (cm.display.scroller.scrollTop == val && !forceScroll) { return }
3484
+ cm.doc.scrollTop = val;
3485
+ cm.display.scrollbars.setScrollTop(val);
3486
+ if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }
3487
+ }
3488
+
3489
  // Sync scroller and scrollbar, ensure the gutter elements are
3490
  // aligned.
3491
+ function setScrollLeft(cm, val, isScroller, forceScroll) {
 
3492
  val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
3493
+ if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }
3494
  cm.doc.scrollLeft = val;
3495
  alignHorizontally(cm);
3496
  if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }
3497
  cm.display.scrollbars.setScrollLeft(val);
3498
  }
3499
 
3500
+ // SCROLLBARS
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3501
 
3502
  // Prepare DOM reads needed to update the scrollbars. Done in one
3503
  // shot to minimize update/measure roundtrips.
3574
 
3575
  NativeScrollbars.prototype.setScrollLeft = function (pos) {
3576
  if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }
3577
+ if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); }
3578
  };
3579
 
3580
  NativeScrollbars.prototype.setScrollTop = function (pos) {
3581
  if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }
3582
+ if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); }
3583
  };
3584
 
3585
  NativeScrollbars.prototype.zeroWidthHack = function () {
3590
  this.disableVert = new Delayed;
3591
  };
3592
 
3593
+ NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {
3594
  bar.style.pointerEvents = "auto";
3595
  function maybeDisable() {
3596
  // To find out whether the scrollbar is still visible, we
3597
  // check whether the element under the pixel in the bottom
3598
+ // right corner of the scrollbar box is the scrollbar box
3599
  // itself (when the bar is still visible) or its filler child
3600
  // (when the bar is hidden). If it is still visible, we keep
3601
  // it enabled, if it's hidden, we disable pointer events.
3602
  var box = bar.getBoundingClientRect();
3603
+ var elt$$1 = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)
3604
+ : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);
3605
  if (elt$$1 != bar) { bar.style.pointerEvents = "none"; }
3606
  else { delay.set(1000, maybeDisable); }
3607
  }
3673
  node.setAttribute("cm-not-content", "true");
3674
  }, function (pos, axis) {
3675
  if (axis == "horizontal") { setScrollLeft(cm, pos); }
3676
+ else { updateScrollTop(cm, pos); }
3677
  }, cm);
3678
  if (cm.display.scrollbars.addClass)
3679
  { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }
3680
  }
3681
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3682
  // Operations are used to wrap a series of changes to the editor
3683
  // state in such a way that each change won't have to update the
3684
  // cursor and display (which would be awkward, slow, and
3807
  { display.wheelStartX = display.wheelStartY = null; }
3808
 
3809
  // Propagate the scroll position to the actual DOM scroller
3810
+ if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }
3811
+
3812
+ if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }
 
 
 
 
 
 
 
 
3813
  // If we need to scroll a specific position into view, do so.
3814
  if (op.scrollToPos) {
3815
  var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
4022
  // HIGHLIGHT WORKER
4023
 
4024
  function startWorker(cm, time) {
4025
+ if (cm.doc.highlightFrontier < cm.display.viewTo)
4026
  { cm.state.highlight.set(time, bind(highlightWorker, cm)); }
4027
  }
4028
 
4029
  function highlightWorker(cm) {
4030
  var doc = cm.doc;
4031
+ if (doc.highlightFrontier >= cm.display.viewTo) { return }
 
4032
  var end = +new Date + cm.options.workTime;
4033
+ var context = getContextBefore(cm, doc.highlightFrontier);
4034
  var changedLines = [];
4035
 
4036
+ doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {
4037
+ if (context.line >= cm.display.viewFrom) { // Visible
4038
+ var oldStyles = line.styles;
4039
+ var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;
4040
+ var highlighted = highlightLine(cm, line, context, true);
4041
+ if (resetState) { context.state = resetState; }
4042
  line.styles = highlighted.styles;
4043
  var oldCls = line.styleClasses, newCls = highlighted.classes;
4044
  if (newCls) { line.styleClasses = newCls; }
4046
  var ischange = !oldStyles || oldStyles.length != line.styles.length ||
4047
  oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
4048
  for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }
4049
+ if (ischange) { changedLines.push(context.line); }
4050
+ line.stateAfter = context.save();
4051
+ context.nextLine();
4052
  } else {
4053
  if (line.text.length <= cm.options.maxHighlightLength)
4054
+ { processLine(cm, line.text, context); }
4055
+ line.stateAfter = context.line % 5 == 0 ? context.save() : null;
4056
+ context.nextLine();
4057
  }
 
4058
  if (+new Date > end) {
4059
  startWorker(cm, cm.options.workDelay);
4060
  return true
4061
  }
4062
  });
4063
+ doc.highlightFrontier = context.line;
4064
+ doc.modeFrontier = Math.max(doc.modeFrontier, context.line);
4065
  if (changedLines.length) { runInOp(cm, function () {
4066
  for (var i = 0; i < changedLines.length; i++)
4067
  { regLineChange(cm, changedLines[i], "text"); }
4107
  }
4108
  }
4109
 
4110
+ function selectionSnapshot(cm) {
4111
+ if (cm.hasFocus()) { return null }
4112
+ var active = activeElt();
4113
+ if (!active || !contains(cm.display.lineDiv, active)) { return null }
4114
+ var result = {activeElt: active};
4115
+ if (window.getSelection) {
4116
+ var sel = window.getSelection();
4117
+ if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {
4118
+ result.anchorNode = sel.anchorNode;
4119
+ result.anchorOffset = sel.anchorOffset;
4120
+ result.focusNode = sel.focusNode;
4121
+ result.focusOffset = sel.focusOffset;
4122
+ }
4123
+ }
4124
+ return result
4125
+ }
4126
+
4127
+ function restoreSelection(snapshot) {
4128
+ if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }
4129
+ snapshot.activeElt.focus();
4130
+ if (snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {
4131
+ var sel = window.getSelection(), range$$1 = document.createRange();
4132
+ range$$1.setEnd(snapshot.anchorNode, snapshot.anchorOffset);
4133
+ range$$1.collapse(false);
4134
+ sel.removeAllRanges();
4135
+ sel.addRange(range$$1);
4136
+ sel.extend(snapshot.focusNode, snapshot.focusOffset);
4137
+ }
4138
+ }
4139
+
4140
  // Does the actual updating of the line display. Bails out
4141
  // (returning false) when there is nothing to be done and forced is
4142
  // false.
4186
 
4187
  // For big changes, we hide the enclosing element during the
4188
  // update, since that speeds up the operations on most browsers.
4189
+ var selSnapshot = selectionSnapshot(cm);
4190
  if (toUpdate > 4) { display.lineDiv.style.display = "none"; }
4191
  patchDisplay(cm, display.updateLineNumbers, update.dims);
4192
  if (toUpdate > 4) { display.lineDiv.style.display = ""; }
4193
  display.renderedView = display.view;
4194
  // There might have been a widget with a focused element that got
4195
  // hidden or updated, if so re-focus it.
4196
+ restoreSelection(selSnapshot);
4197
 
4198
  // Prevent selection and cursors from interfering with the scroll
4199
  // width and height.
4232
  updateSelection(cm);
4233
  updateScrollbars(cm, barMeasure);
4234
  setDocumentHeight(cm, barMeasure);
4235
+ update.force = false;
4236
  }
4237
 
4238
  update.signal(cm, "update", cm);
4326
  gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
4327
  }
4328
  }
4329
+ gutters.style.display = i ? "" : "none";
4330
+ updateGutterSpace(cm);
4331
+ }
4332
+
4333
+ // Make sure the gutters options contains the element
4334
+ // "CodeMirror-linenumbers" when the lineNumbers option is true.
4335
+ function setGuttersForLineNumbers(options) {
4336
+ var found = indexOf(options.gutters, "CodeMirror-linenumbers");
4337
+ if (found == -1 && options.lineNumbers) {
4338
+ options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
4339
+ } else if (found > -1 && !options.lineNumbers) {
4340
+ options.gutters = options.gutters.slice(0);
4341
+ options.gutters.splice(found, 1);
4342
+ }
4343
+ }
4344
+
4345
+ // Since the delta values reported on mouse wheel events are
4346
+ // unstandardized between browsers and even browser versions, and
4347
+ // generally horribly unpredictable, this code starts by measuring
4348
+ // the scroll effect that the first few mouse wheel events have,
4349
+ // and, from that, detects the way it can convert deltas to pixel
4350
+ // offsets afterwards.
4351
+ //
4352
+ // The reason we want to know the amount a wheel event will scroll
4353
+ // is that it gives us a chance to update the display before the
4354
+ // actual scrolling happens, reducing flickering.
4355
+
4356
+ var wheelSamples = 0;
4357
+ var wheelPixelsPerUnit = null;
4358
+ // Fill in a browser-detected starting value on browsers where we
4359
+ // know one. These don't have to be accurate -- the result of them
4360
+ // being wrong would just be a slight flicker on the first wheel
4361
+ // scroll (if it is large enough).
4362
+ if (ie) { wheelPixelsPerUnit = -.53; }
4363
+ else if (gecko) { wheelPixelsPerUnit = 15; }
4364
+ else if (chrome) { wheelPixelsPerUnit = -.7; }
4365
+ else if (safari) { wheelPixelsPerUnit = -1/3; }
4366
+
4367
+ function wheelEventDelta(e) {
4368
+ var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
4369
+ if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }
4370
+ if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }
4371
+ else if (dy == null) { dy = e.wheelDelta; }
4372
+ return {x: dx, y: dy}
4373
+ }
4374
+ function wheelEventPixels(e) {
4375
+ var delta = wheelEventDelta(e);
4376
+ delta.x *= wheelPixelsPerUnit;
4377
+ delta.y *= wheelPixelsPerUnit;
4378
+ return delta
4379
+ }
4380
+
4381
+ function onScrollWheel(cm, e) {
4382
+ var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
4383
+
4384
+ var display = cm.display, scroll = display.scroller;
4385
+ // Quit if there's nothing to scroll here
4386
+ var canScrollX = scroll.scrollWidth > scroll.clientWidth;
4387
+ var canScrollY = scroll.scrollHeight > scroll.clientHeight;
4388
+ if (!(dx && canScrollX || dy && canScrollY)) { return }
4389
+
4390
+ // Webkit browsers on OS X abort momentum scrolls when the target
4391
+ // of the scroll event is removed from the scrollable element.
4392
+ // This hack (see related code in patchDisplay) makes sure the
4393
+ // element is kept around.
4394
+ if (dy && mac && webkit) {
4395
+ outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
4396
+ for (var i = 0; i < view.length; i++) {
4397
+ if (view[i].node == cur) {
4398
+ cm.display.currentWheelTarget = cur;
4399
+ break outer
4400
+ }
4401
+ }
4402
+ }
4403
+ }
4404
+
4405
+ // On some browsers, horizontal scrolling will cause redraws to
4406
+ // happen before the gutter has been realigned, causing it to
4407
+ // wriggle around in a most unseemly way. When we have an
4408
+ // estimated pixels/delta value, we just handle horizontal
4409
+ // scrolling entirely here. It'll be slightly off from native, but
4410
+ // better than glitching out.
4411
+ if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
4412
+ if (dy && canScrollY)
4413
+ { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }
4414
+ setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));
4415
+ // Only prevent default scrolling if vertical scrolling is
4416
+ // actually possible. Otherwise, it causes vertical scroll
4417
+ // jitter on OSX trackpads when deltaX is small and deltaY
4418
+ // is large (issue #3579)
4419
+ if (!dy || (dy && canScrollY))
4420
+ { e_preventDefault(e); }
4421
+ display.wheelStartX = null; // Abort measurement, if in progress
4422
+ return
4423
+ }
4424
+
4425
+ // 'Project' the visible viewport to cover the area that is being
4426
+ // scrolled into view (if we know enough to estimate it).
4427
+ if (dy && wheelPixelsPerUnit != null) {
4428
+ var pixels = dy * wheelPixelsPerUnit;
4429
+ var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
4430
+ if (pixels < 0) { top = Math.max(0, top + pixels - 50); }
4431
+ else { bot = Math.min(cm.doc.height, bot + pixels + 50); }
4432
+ updateDisplaySimple(cm, {top: top, bottom: bot});
4433
+ }
4434
+
4435
+ if (wheelSamples < 20) {
4436
+ if (display.wheelStartX == null) {
4437
+ display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
4438
+ display.wheelDX = dx; display.wheelDY = dy;
4439
+ setTimeout(function () {
4440
+ if (display.wheelStartX == null) { return }
4441
+ var movedX = scroll.scrollLeft - display.wheelStartX;
4442
+ var movedY = scroll.scrollTop - display.wheelStartY;
4443
+ var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
4444
+ (movedX && display.wheelDX && movedX / display.wheelDX);
4445
+ display.wheelStartX = display.wheelStartY = null;
4446
+ if (!sample) { return }
4447
+ wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
4448
+ ++wheelSamples;
4449
+ }, 200);
4450
+ } else {
4451
+ display.wheelDX += dx; display.wheelDY += dy;
4452
+ }
4453
+ }
4454
  }
4455
 
4456
  // Selection objects are immutable. A new one is created every time
4606
  if (line.stateAfter) { line.stateAfter = null; }
4607
  if (line.styles) { line.styles = null; }
4608
  });
4609
+ cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;
4610
  startWorker(cm, 100);
4611
  cm.state.modeGen++;
4612
  if (cm.curOp) { regChange(cm); }
4940
  // include a given position (and optionally a second position).
4941
  // Otherwise, simply returns the range between the given positions.
4942
  // Used for cursor motion and such.
4943
+ function extendRange(range, head, other, extend) {
4944
+ if (extend) {
4945
  var anchor = range.anchor;
4946
  if (other) {
4947
  var posBefore = cmp(head, anchor) < 0;
4959
  }
4960
 
4961
  // Extend the primary selection range, discard the rest.
4962
+ function extendSelection(doc, head, other, options, extend) {
4963
+ if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }
4964
+ setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);
4965
  }
4966
 
4967
  // Extend all selections (pos is an array of selections with length
4968
  // equal the number of selections)
4969
  function extendSelections(doc, heads, options) {
4970
  var out = [];
4971
+ var extend = doc.cm && (doc.cm.display.shift || doc.extend);
4972
  for (var i = 0; i < doc.sel.ranges.length; i++)
4973
+ { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }
4974
  var newSel = normalizeSelection(out, doc.sel.primIndex);
4975
  setSelection(doc, newSel, options);
4976
  }
5051
  // Verify that the selection does not partially select any atomic
5052
  // marked ranges.
5053
  function reCheckSelection(doc) {
5054
+ setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));
5055
  }
5056
 
5057
  // Return a selection that does not partially select any atomic
5176
  var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
5177
  if (split) {
5178
  for (var i = split.length - 1; i >= 0; --i)
5179
+ { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text, origin: change.origin}); }
5180
  } else {
5181
  makeChangeInner(doc, change);
5182
  }
5354
  if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }
5355
  }
5356
 
5357
+ retreatFrontier(doc, from.line);
 
5358
  startWorker(cm, 400);
5359
 
5360
  var lendiff = change.text.length - (to.line - from.line) - 1;
5464
  //
5465
  // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html
5466
 
5467
+ function LeafChunk(lines) {
5468
  var this$1 = this;
5469
 
5470
  this.lines = lines;
5475
  height += lines[i].height;
5476
  }
5477
  this.height = height;
5478
+ }
5479
 
5480
+ LeafChunk.prototype = {
5481
+ chunkSize: function chunkSize() { return this.lines.length },
5482
 
5483
+ // Remove the n lines at offset 'at'.
5484
+ removeInner: function removeInner(at, n) {
5485
  var this$1 = this;
5486
 
5487
+ for (var i = at, e = at + n; i < e; ++i) {
5488
+ var line = this$1.lines[i];
5489
+ this$1.height -= line.height;
5490
+ cleanUpLine(line);
5491
+ signalLater(line, "delete");
5492
+ }
5493
+ this.lines.splice(at, n);
5494
+ },
5495
 
5496
+ // Helper used to collapse a small branch into a single leaf.
5497
+ collapse: function collapse(lines) {
5498
+ lines.push.apply(lines, this.lines);
5499
+ },
5500
 
5501
+ // Insert the given array of lines at offset 'at', count them as
5502
+ // having the given height.
5503
+ insertInner: function insertInner(at, lines, height) {
5504
  var this$1 = this;
5505
 
5506
+ this.height += height;
5507
+ this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
5508
+ for (var i = 0; i < lines.length; ++i) { lines[i].parent = this$1; }
5509
+ },
5510
 
5511
+ // Used to iterate over a part of the tree.
5512
+ iterN: function iterN(at, n, op) {
5513
  var this$1 = this;
5514
 
5515
+ for (var e = at + n; at < e; ++at)
5516
+ { if (op(this$1.lines[at])) { return true } }
5517
+ }
5518
  };
5519
 
5520
+ function BranchChunk(children) {
5521
  var this$1 = this;
5522
 
5523
  this.children = children;
5530
  this.size = size;
5531
  this.height = height;
5532
  this.parent = null;
5533
+ }
5534
 
5535
+ BranchChunk.prototype = {
5536
+ chunkSize: function chunkSize() { return this.size },
5537
 
5538
+ removeInner: function removeInner(at, n) {
5539
  var this$1 = this;
5540
 
5541
+ this.size -= n;
5542
+ for (var i = 0; i < this.children.length; ++i) {
5543
+ var child = this$1.children[i], sz = child.chunkSize();
5544
+ if (at < sz) {
5545
+ var rm = Math.min(n, sz - at), oldHeight = child.height;
5546
+ child.removeInner(at, rm);
5547
+ this$1.height -= oldHeight - child.height;
5548
+ if (sz == rm) { this$1.children.splice(i--, 1); child.parent = null; }
5549
+ if ((n -= rm) == 0) { break }
5550
+ at = 0;
5551
+ } else { at -= sz; }
5552
+ }
5553
+ // If the result is smaller than 25 lines, ensure that it is a
5554
+ // single leaf node.
5555
+ if (this.size - n < 25 &&
5556
+ (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {
5557
+ var lines = [];
5558
+ this.collapse(lines);
5559
+ this.children = [new LeafChunk(lines)];
5560
+ this.children[0].parent = this;
5561
+ }
5562
+ },
5563
 
5564
+ collapse: function collapse(lines) {
5565
  var this$1 = this;
5566
 
5567
+ for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); }
5568
+ },
5569
 
5570
+ insertInner: function insertInner(at, lines, height) {
5571
  var this$1 = this;
5572
 
5573
+ this.size += lines.length;
5574
+ this.height += height;
5575
+ for (var i = 0; i < this.children.length; ++i) {
5576
+ var child = this$1.children[i], sz = child.chunkSize();
5577
+ if (at <= sz) {
5578
+ child.insertInner(at, lines, height);
5579
+ if (child.lines && child.lines.length > 50) {
5580
+ // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.
5581
+ // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.
5582
+ var remaining = child.lines.length % 25 + 25;
5583
+ for (var pos = remaining; pos < child.lines.length;) {
5584
+ var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));
5585
+ child.height -= leaf.height;
5586
+ this$1.children.splice(++i, 0, leaf);
5587
+ leaf.parent = this$1;
5588
+ }
5589
+ child.lines = child.lines.slice(0, remaining);
5590
+ this$1.maybeSpill();
5591
+ }
5592
+ break
5593
  }
5594
+ at -= sz;
5595
  }
5596
+ },
 
 
5597
 
5598
+ // When a node has grown, check whether it should be split.
5599
+ maybeSpill: function maybeSpill() {
5600
+ if (this.children.length <= 10) { return }
5601
+ var me = this;
5602
+ do {
5603
+ var spilled = me.children.splice(me.children.length - 5, 5);
5604
+ var sibling = new BranchChunk(spilled);
5605
+ if (!me.parent) { // Become the parent node
5606
+ var copy = new BranchChunk(me.children);
5607
+ copy.parent = me;
5608
+ me.children = [copy, sibling];
5609
+ me = copy;
5610
+ } else {
5611
+ me.size -= sibling.size;
5612
+ me.height -= sibling.height;
5613
+ var myIndex = indexOf(me.parent.children, me);
5614
+ me.parent.children.splice(myIndex + 1, 0, sibling);
5615
+ }
5616
+ sibling.parent = me.parent;
5617
+ } while (me.children.length > 10)
5618
+ me.parent.maybeSpill();
5619
+ },
5620
 
5621
+ iterN: function iterN(at, n, op) {
5622
  var this$1 = this;
5623
 
5624
+ for (var i = 0; i < this.children.length; ++i) {
5625
+ var child = this$1.children[i], sz = child.chunkSize();
5626
+ if (at < sz) {
5627
+ var used = Math.min(n, sz - at);
5628
+ if (child.iterN(at, used, op)) { return true }
5629
+ if ((n -= used) == 0) { break }
5630
+ at = 0;
5631
+ } else { at -= sz; }
5632
+ }
5633
  }
5634
  };
5635
 
5682
 
5683
  function adjustScrollWhenAboveVisible(cm, line, diff) {
5684
  if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
5685
+ { addToScrollTop(cm, diff); }
5686
  }
5687
 
5688
  function addLineWidget(doc, handle, node, options) {
5697
  if (cm && !lineIsHidden(doc, line)) {
5698
  var aboveVisible = heightAtLine(line) < doc.scrollTop;
5699
  updateLineHeight(line, line.height + widgetHeight(widget));
5700
+ if (aboveVisible) { addToScrollTop(cm, widget.height); }
5701
  cm.curOp.forceUpdate = true;
5702
  }
5703
  return true
5999
  this.scrollTop = this.scrollLeft = 0;
6000
  this.cantEdit = false;
6001
  this.cleanGeneration = 1;
6002
+ this.modeFrontier = this.highlightFrontier = firstLine;
6003
  var start = Pos(firstLine, 0);
6004
  this.sel = simpleSelection(start);
6005
  this.history = new History(null);
6045
  var top = Pos(this.first, 0), last = this.first + this.size - 1;
6046
  makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
6047
  text: this.splitLines(code), origin: "setValue", full: true}, true);
6048
+ if (this.cm) { scrollToCoords(this.cm, 0, 0); }
6049
+ setSelection(this, simpleSelection(top), sel_dontScroll);
6050
  }),
6051
  replaceRange: function(code, from, to, origin) {
6052
  from = clipPos(this, from);
6522
  // garbage collected.
6523
 
6524
  function forEachCodeMirror(f) {
6525
+ if (!document.getElementsByClassName) { return }
6526
+ var byClass = document.getElementsByClassName("CodeMirror");
6527
  for (var i = 0; i < byClass.length; i++) {
6528
  var cm = byClass[i].CodeMirror;
6529
  if (cm) { f(cm); }
6697
  return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"
6698
  }
6699
 
6700
+ function addModifierNames(name, event, noShift) {
6701
+ var base = name;
 
 
 
6702
  if (event.altKey && base != "Alt") { name = "Alt-" + name; }
6703
  if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; }
6704
  if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") { name = "Cmd-" + name; }
6706
  return name
6707
  }
6708
 
6709
+ // Look up the name of a key as indicated by an event object.
6710
+ function keyName(event, noShift) {
6711
+ if (presto && event.keyCode == 34 && event["char"]) { return false }
6712
+ var name = keyNames[event.keyCode];
6713
+ if (name == null || event.altGraphKey) { return false }
6714
+ return addModifierNames(name, event, noShift)
6715
+ }
6716
+
6717
  function getKeyMap(val) {
6718
  return typeof val == "string" ? keyMap[val] : val
6719
  }
6792
  {origin: "+move", bias: -1}
6793
  ); },
6794
  goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {
6795
+ var top = cm.cursorCoords(range.head, "div").top + 5;
6796
  return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div")
6797
  }, sel_move); },
6798
  goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {
6799
+ var top = cm.cursorCoords(range.head, "div").top + 5;
6800
  return cm.coordsChar({left: 0, top: top}, "div")
6801
  }, sel_move); },
6802
  goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {
6803
+ var top = cm.cursorCoords(range.head, "div").top + 5;
6804
  var pos = cm.coordsChar({left: 0, top: top}, "div");
6805
  if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) }
6806
  return pos
6940
  || lookupKey(name, cm.options.keyMap, handle, cm)
6941
  }
6942
 
6943
+ // Note that, despite the name, this function is also used to check
6944
+ // for bound mouse clicks.
6945
+
6946
  var stopSeq = new Delayed;
6947
  function dispatchKey(cm, name, e, handle) {
6948
  var seq = cm.state.keySeq;
7054
  cm.display.input.onKeyPress(e);
7055
  }
7056
 
7057
+ var DOUBLECLICK_DELAY = 400;
7058
+
7059
+ var PastClick = function(time, pos, button) {
7060
+ this.time = time;
7061
+ this.pos = pos;
7062
+ this.button = button;
7063
+ };
7064
+
7065
+ PastClick.prototype.compare = function (time, pos, button) {
7066
+ return this.time + DOUBLECLICK_DELAY > time &&
7067
+ cmp(pos, this.pos) == 0 && button == this.button
7068
+ };
7069
+
7070
+ var lastClick;
7071
+ var lastDoubleClick;
7072
+ function clickRepeat(pos, button) {
7073
+ var now = +new Date;
7074
+ if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {
7075
+ lastClick = lastDoubleClick = null;
7076
+ return "triple"
7077
+ } else if (lastClick && lastClick.compare(now, pos, button)) {
7078
+ lastDoubleClick = new PastClick(now, pos, button);
7079
+ lastClick = null;
7080
+ return "double"
7081
+ } else {
7082
+ lastClick = new PastClick(now, pos, button);
7083
+ lastDoubleClick = null;
7084
+ return "single"
7085
+ }
7086
+ }
7087
+
7088
  // A mouse down can be a single click, double click, triple click,
7089
  // start of selection drag, start of text drag, new cursor
7090
  // (ctrl-click), rectangle drag (alt-drag), or xwin
7106
  return
7107
  }
7108
  if (clickInGutter(cm, e)) { return }
7109
+ var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single";
7110
  window.focus();
7111
 
7112
+ // #3261: make sure, that we're not starting a second selection
7113
+ if (button == 1 && cm.state.selectingText)
7114
+ { cm.state.selectingText(e); }
7115
+
7116
+ if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }
7117
+
7118
+ if (button == 1) {
7119
+ if (pos) { leftButtonDown(cm, pos, repeat, e); }
7120
+ else if (e_target(e) == display.scroller) { e_preventDefault(e); }
7121
+ } else if (button == 2) {
7122
+ if (pos) { extendSelection(cm.doc, pos); }
 
 
7123
  setTimeout(function () { return display.input.focus(); }, 20);
7124
+ } else if (button == 3) {
 
 
7125
  if (captureRightClick) { onContextMenu(cm, e); }
7126
  else { delayBlurEvent(cm); }
 
7127
  }
7128
  }
7129
 
7130
+ function handleMappedButton(cm, button, pos, repeat, event) {
7131
+ var name = "Click";
7132
+ if (repeat == "double") { name = "Double" + name; }
7133
+ else if (repeat == "triple") { name = "Triple" + name; }
7134
+ name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name;
7135
+
7136
+ return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {
7137
+ if (typeof bound == "string") { bound = commands[bound]; }
7138
+ if (!bound) { return false }
7139
+ var done = false;
7140
+ try {
7141
+ if (cm.isReadOnly()) { cm.state.suppressEdits = true; }
7142
+ done = bound(cm, pos) != Pass;
7143
+ } finally {
7144
+ cm.state.suppressEdits = false;
7145
+ }
7146
+ return done
7147
+ })
7148
+ }
7149
+
7150
+ function configureMouse(cm, repeat, event) {
7151
+ var option = cm.getOption("configureMouse");
7152
+ var value = option ? option(cm, repeat, event) : {};
7153
+ if (value.unit == null) {
7154
+ var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;
7155
+ value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line";
7156
+ }
7157
+ if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }
7158
+ if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }
7159
+ if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }
7160
+ return value
7161
+ }
7162
+
7163
+ function leftButtonDown(cm, pos, repeat, event) {
7164
  if (ie) { setTimeout(bind(ensureFocus, cm), 0); }
7165
  else { cm.curOp.focus = activeElt(); }
7166
 
7167
+ var behavior = configureMouse(cm, repeat, event);
 
 
 
 
 
 
 
 
 
7168
 
7169
+ var sel = cm.doc.sel, contained;
7170
  if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&
7171
+ repeat == "single" && (contained = sel.contains(pos)) > -1 &&
7172
+ (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&
7173
+ (cmp(contained.to(), pos) > 0 || pos.xRel < 0))
7174
+ { leftButtonStartDrag(cm, event, pos, behavior); }
7175
  else
7176
+ { leftButtonSelect(cm, event, pos, behavior); }
7177
  }
7178
 
7179
  // Start a text drag. When it ends, see if any dragging actually
7180
  // happen, and treat as a click if it didn't.
7181
+ function leftButtonStartDrag(cm, event, pos, behavior) {
7182
+ var display = cm.display, moved = false;
7183
+ var dragEnd = operation(cm, function (e) {
7184
  if (webkit) { display.scroller.draggable = false; }
7185
  cm.state.draggingText = false;
7186
  off(document, "mouseup", dragEnd);
7187
+ off(document, "mousemove", mouseMove);
7188
+ off(display.scroller, "dragstart", dragStart);
7189
  off(display.scroller, "drop", dragEnd);
7190
+ if (!moved) {
7191
+ e_preventDefault(e);
7192
+ if (!behavior.addNew)
7193
+ { extendSelection(cm.doc, pos, null, null, behavior.extend); }
7194
  // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
7195
  if (webkit || ie && ie_version == 9)
7196
  { setTimeout(function () {document.body.focus(); display.input.focus();}, 20); }
7198
  { display.input.focus(); }
7199
  }
7200
  });
7201
+ var mouseMove = function(e2) {
7202
+ moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;
7203
+ };
7204
+ var dragStart = function () { return moved = true; };
7205
  // Let the drag handler handle this.
7206
  if (webkit) { display.scroller.draggable = true; }
7207
  cm.state.draggingText = dragEnd;
7208
+ dragEnd.copy = !behavior.moveOnDrag;
7209
  // IE's approach to draggable
7210
  if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
7211
  on(document, "mouseup", dragEnd);
7212
+ on(document, "mousemove", mouseMove);
7213
+ on(display.scroller, "dragstart", dragStart);
7214
  on(display.scroller, "drop", dragEnd);
7215
+
7216
+ delayBlurEvent(cm);
7217
+ setTimeout(function () { return display.input.focus(); }, 20);
7218
+ }
7219
+
7220
+ function rangeForUnit(cm, pos, unit) {
7221
+ if (unit == "char") { return new Range(pos, pos) }
7222
+ if (unit == "word") { return cm.findWordAt(pos) }
7223
+ if (unit == "line") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }
7224
+ var result = unit(cm, pos);
7225
+ return new Range(result.from, result.to)
7226
  }
7227
 
7228
  // Normal selection, as opposed to text dragging.
7229
+ function leftButtonSelect(cm, event, start, behavior) {
7230
  var display = cm.display, doc = cm.doc;
7231
+ e_preventDefault(event);
7232
 
7233
  var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
7234
+ if (behavior.addNew && !behavior.extend) {
7235
  ourIndex = doc.sel.contains(start);
7236
  if (ourIndex > -1)
7237
  { ourRange = ranges[ourIndex]; }
7242
  ourIndex = doc.sel.primIndex;
7243
  }
7244
 
7245
+ if (behavior.unit == "rectangle") {
7246
+ if (!behavior.addNew) { ourRange = new Range(start, start); }
7247
+ start = posFromMouse(cm, event, true, true);
 
7248
  ourIndex = -1;
 
 
 
 
 
 
 
 
 
 
 
 
7249
  } else {
7250
+ var range$$1 = rangeForUnit(cm, start, behavior.unit);
7251
+ if (behavior.extend)
7252
+ { ourRange = extendRange(ourRange, range$$1.anchor, range$$1.head, behavior.extend); }
7253
+ else
7254
+ { ourRange = range$$1; }
7255
  }
7256
 
7257
+ if (!behavior.addNew) {
7258
  ourIndex = 0;
7259
  setSelection(doc, new Selection([ourRange], 0), sel_mouse);
7260
  startSel = doc.sel;
7262
  ourIndex = ranges.length;
7263
  setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),
7264
  {scroll: false, origin: "*mouse"});
7265
+ } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) {
7266
  setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
7267
  {scroll: false, origin: "*mouse"});
7268
  startSel = doc.sel;
7275
  if (cmp(lastPos, pos) == 0) { return }
7276
  lastPos = pos;
7277
 
7278
+ if (behavior.unit == "rectangle") {
7279
  var ranges = [], tabSize = cm.options.tabSize;
7280
  var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
7281
  var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
7294
  cm.scrollIntoView(pos);
7295
  } else {
7296
  var oldRange = ourRange;
7297
+ var range$$1 = rangeForUnit(cm, pos, behavior.unit);
7298
+ var anchor = oldRange.anchor, head;
7299
+ if (cmp(range$$1.anchor, anchor) > 0) {
7300
+ head = range$$1.head;
7301
+ anchor = minPos(oldRange.from(), range$$1.anchor);
7302
+ } else {
7303
+ head = range$$1.anchor;
7304
+ anchor = maxPos(oldRange.to(), range$$1.head);
 
 
 
 
 
 
7305
  }
7306
  var ranges$1 = startSel.ranges.slice(0);
7307
  ranges$1[ourIndex] = new Range(clipPos(doc, anchor), head);
7318
 
7319
  function extend(e) {
7320
  var curCount = ++counter;
7321
+ var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle");
7322
  if (!cur) { return }
7323
  if (cmp(cur, lastPos) != 0) {
7324
  cm.curOp.focus = activeElt();
7484
  if (next.attach) { next.attach(cm, prev || null); }
7485
  });
7486
  option("extraKeys", null);
7487
+ option("configureMouse", null);
7488
 
7489
  option("lineWrapping", false, wrappingChanged, true);
7490
  option("gutters", [], function (cm) {
7512
 
7513
  option("resetSelectionOnContextMenu", true);
7514
  option("lineWiseCopyCut", true);
7515
+ option("pasteLinesPerSelection", true);
7516
 
7517
  option("readOnly", false, function (cm, val) {
7518
  if (val == "nocursor") {
7519
  onBlur(cm);
7520
  cm.display.input.blur();
 
 
 
7521
  }
7522
  cm.display.input.readOnlyChanged(val);
7523
  });
7738
  // area, ensure viewport is updated when scrolling.
7739
  on(d.scroller, "scroll", function () {
7740
  if (d.scroller.clientHeight) {
7741
+ updateScrollTop(cm, d.scroller.scrollTop);
7742
  setScrollLeft(cm, d.scroller.scrollLeft, true);
7743
  signal(cm, "scroll", cm);
7744
  }
7782
  // Fall back to "prev" when the mode doesn't have an indentation
7783
  // method.
7784
  if (!doc.mode.indent) { how = "prev"; }
7785
+ else { state = getContextBefore(cm, n).state; }
7786
  }
7787
 
7788
  var tabSize = cm.options.tabSize;
7858
  for (var i = 0; i < lastCopied.text.length; i++)
7859
  { multiPaste.push(doc.splitLines(lastCopied.text[i])); }
7860
  }
7861
+ } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {
7862
  multiPaste = map(textLines, function (l) { return [l]; });
7863
  }
7864
  }
8118
  getStateAfter: function(line, precise) {
8119
  var doc = this.doc;
8120
  line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
8121
+ return getContextBefore(this, line + 1, precise).state
8122
  },
8123
 
8124
  cursorCoords: function(start, mode) {
8199
  triggerOnKeyDown: methodOp(onKeyDown),
8200
  triggerOnKeyPress: methodOp(onKeyPress),
8201
  triggerOnKeyUp: onKeyUp,
8202
+ triggerOnMouseDown: methodOp(onMouseDown),
8203
 
8204
  execCommand: function(cmd) {
8205
  if (commands.hasOwnProperty(cmd))
8272
  goals.push(headPos.left);
8273
  var pos = findPosV(this$1, headPos, dir, unit);
8274
  if (unit == "page" && range$$1 == doc.sel.primary())
8275
+ { addToScrollTop(this$1, charCoords(this$1, pos, "div").top - headPos.top); }
8276
  return pos
8277
  }, sel_move);
8278
  if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)
8309
  hasFocus: function() { return this.display.input.getField() == activeElt() },
8310
  isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },
8311
 
8312
+ scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),
 
 
 
 
8313
  getScrollInfo: function() {
8314
  var scroller = this.display.scroller;
8315
  return {left: scroller.scrollLeft, top: scroller.scrollTop,
8331
  range$$1.margin = margin || 0;
8332
 
8333
  if (range$$1.from.line != null) {
8334
+ scrollToRange(this, range$$1);
 
8335
  } else {
8336
+ scrollToCoordsRange(this, range$$1.from, range$$1.to, range$$1.margin);
 
 
 
 
 
 
8337
  }
8338
  }),
8339
 
8355
  }),
8356
 
8357
  operation: function(f){return runInOp(this, f)},
8358
+ startOperation: function(){return startOperation(this)},
8359
+ endOperation: function(){return endOperation(this)},
8360
 
8361
  refresh: methodOp(function() {
8362
  var oldHeight = this.display.cachedTextHeight;
8363
  regChange(this);
8364
  this.curOp.forceUpdate = true;
8365
  clearCaches(this);
8366
+ scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);
8367
  updateGutterSpace(this);
8368
  if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
8369
  { estimateLineHeights(this); }
8376
  attachDoc(this, doc);
8377
  clearCaches(this);
8378
  this.display.input.reset();
8379
+ scrollToCoords(this, doc.scrollLeft, doc.scrollTop);
8380
  this.curOp.forceScroll = true;
8381
  signalLater(this, "swapDoc", this, old);
8382
  return old
8587
  };
8588
 
8589
  ContentEditableInput.prototype.showPrimarySelection = function () {
8590
+ var sel = window.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();
8591
+ var from = prim.from(), to = prim.to();
 
 
 
 
 
8592
 
8593
+ if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {
 
 
8594
  sel.removeAllRanges();
8595
  return
8596
  }
8597
 
8598
+ var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
8599
+ var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);
8600
+ if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
8601
+ cmp(minPos(curAnchor, curFocus), from) == 0 &&
8602
+ cmp(maxPos(curAnchor, curFocus), to) == 0)
8603
+ { return }
8604
+
8605
+ var view = cm.display.view;
8606
+ var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||
8607
+ {node: view[0].measure.map[2], offset: 0};
8608
+ var end = to.line < cm.display.viewTo && posToDOM(cm, to);
8609
+ if (!end) {
8610
  var measure = view[view.length - 1].measure;
8611
  var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
8612
  end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]};
8613
  }
8614
 
8615
+ if (!start || !end) {
8616
+ sel.removeAllRanges();
8617
+ return
8618
+ }
8619
+
8620
+ var old = sel.rangeCount && sel.getRangeAt(0), rng;
8621
  try { rng = range(start.node, start.offset, end.offset, end.node); }
8622
  catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
8623
  if (rng) {
8624
+ if (!gecko && cm.state.focused) {
8625
  sel.collapse(start.node, start.offset);
8626
  if (!rng.collapsed) {
8627
  sel.removeAllRanges();
8900
  var markerID = node.getAttribute("cm-marker"), range$$1;
8901
  if (markerID) {
8902
  var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
8903
+ if (found.length && (range$$1 = found[0].find(0)))
8904
  { addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); }
8905
  return
8906
  }
9009
  this.pollingFast = false;
9010
  // Self-resetting timeout for the poller
9011
  this.polling = new Delayed();
 
 
 
9012
  // Used to work around IE issue with selection being forgotten when focus moves away from textarea
9013
  this.hasSelection = false;
9014
  this.composing = null;
9045
  if (signalDOMEvent(cm, e)) { return }
9046
  if (cm.somethingSelected()) {
9047
  setLastCopied({lineWise: false, text: cm.getSelections()});
 
 
 
 
 
 
9048
  } else if (!cm.options.lineWiseCopyCut) {
9049
  return
9050
  } else {
9122
  // Reset the input to correspond to the selection (or to be empty,
9123
  // when not typing and nothing is selected)
9124
  TextareaInput.prototype.reset = function (typing) {
9125
+ if (this.contextMenuPending || this.composing) { return }
9126
+ var cm = this.cm;
9127
  if (cm.somethingSelected()) {
9128
  this.prevInput = "";
9129
+ var content = cm.getSelection();
 
 
 
9130
  this.textarea.value = content;
9131
  if (cm.state.focused) { selectInput(this.textarea); }
9132
  if (ie && ie_version >= 9) { this.hasSelection = content; }
9134
  this.prevInput = this.textarea.value = "";
9135
  if (ie && ie_version >= 9) { this.hasSelection = null; }
9136
  }
 
9137
  };
9138
 
9139
  TextareaInput.prototype.getField = function () { return this.textarea };
9328
 
9329
  TextareaInput.prototype.readOnlyChanged = function (val) {
9330
  if (!val) { this.reset(); }
9331
+ this.textarea.disabled = val == "nocursor";
9332
  };
9333
 
9334
  TextareaInput.prototype.setUneditable = function () {};
9484
 
9485
  addLegacyProps(CodeMirror$1);
9486
 
9487
+ CodeMirror$1.version = "5.29.0";
9488
 
9489
  return CodeMirror$1;
9490
 
9898
  })(function(CodeMirror) {
9899
  "use strict";
9900
 
 
 
 
 
 
9901
  CodeMirror.defineMode("javascript", function(config, parserConfig) {
9902
  var indentUnit = config.indentUnit;
9903
  var statementIndent = parserConfig.statementIndent;
9923
  "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom,
9924
  "this": kw("this"), "class": kw("class"), "super": kw("atom"),
9925
  "yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
9926
+ "await": C
9927
  };
9928
 
9929
  // Extend the 'normal' keywords with the TypeScript language extensions
9930
  if (isTS) {
9931
+ var type = {type: "variable", style: "type"};
9932
  var tsKeywords = {
9933
  // object-like things
9934
  "interface": kw("class"),
9936
  "namespace": C,
9937
  "module": kw("module"),
9938
  "enum": kw("module"),
 
9939
 
9940
  // scope modifiers
9941
  "public": kw("modifier"),
9942
  "private": kw("modifier"),
9943
  "protected": kw("modifier"),
9944
  "abstract": kw("modifier"),
9945
+ "readonly": kw("modifier"),
 
 
9946
 
9947
  // types
9948
  "string": type, "number": type, "boolean": type, "any": type
9956
  return jsKeywords;
9957
  }();
9958
 
9959
+ var isOperatorChar = /[+\-*&%=<>!?|~^@]/;
9960
  var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
9961
 
9962
  function readRegexp(stream) {
10030
  return ret("operator", "operator", stream.current());
10031
  } else if (wordRE.test(ch)) {
10032
  stream.eatWhile(wordRE);
10033
+ var word = stream.current()
10034
+ if (state.lastType != ".") {
10035
+ if (keywords.propertyIsEnumerable(word)) {
10036
+ var kw = keywords[word]
10037
+ return ret(kw.type, kw.style, word)
10038
+ }
10039
+ if (word == "async" && stream.match(/^\s*[\(\w]/, false))
10040
+ return ret("async", "keyword", word)
10041
+ }
10042
+ return ret("variable", "variable", word)
10043
  }
10044
  }
10045
 
10247
  }
10248
  if (type == "function") return cont(functiondef);
10249
  if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
10250
+ if (type == "variable") {
10251
+ if (isTS && value == "type") {
10252
+ cx.marked = "keyword"
10253
+ return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
10254
+ } if (isTS && value == "declare") {
10255
+ cx.marked = "keyword"
10256
+ return cont(statement)
10257
+ } else {
10258
+ return cont(pushlex("stat"), maybelabel);
10259
+ }
10260
+ }
10261
+ if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"),
10262
  block, poplex, poplex);
10263
  if (type == "case") return cont(expression, expect(":"));
10264
  if (type == "default") return cont(expect(":"));
10267
  if (type == "class") return cont(pushlex("form"), className, poplex);
10268
  if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
10269
  if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
10270
+ if (type == "module") return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex)
 
10271
  if (type == "async") return cont(statement)
10272
+ if (value == "@") return cont(expression, statement)
10273
  return pass(pushlex("stat"), expression, expect(";"), poplex);
10274
  }
10275
  function expression(type) {
10320
  var expr = noComma == false ? expression : expressionNoComma;
10321
  if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
10322
  if (type == "operator") {
10323
+ if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me);
10324
  if (value == "?") return cont(expression, expect(":"), expr);
10325
  return cont(expr);
10326
  }
10329
  if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
10330
  if (type == ".") return cont(property, me);
10331
  if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
10332
+ if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) }
10333
  }
10334
  function quasi(type, value) {
10335
  if (type != "quasi") return pass();
10354
  function maybeTarget(noComma) {
10355
  return function(type) {
10356
  if (type == ".") return cont(noComma ? targetNoComma : target);
10357
+ else if (type == "variable" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)
10358
  else return pass(noComma ? expressionNoComma : expression);
10359
  };
10360
  }
10389
  } else if (type == "[") {
10390
  return cont(expression, expect("]"), afterprop);
10391
  } else if (type == "spread") {
10392
+ return cont(expression, afterprop);
10393
  } else if (type == ":") {
10394
  return pass(afterprop)
10395
  }
10436
  if (value == "?") return cont(maybetype);
10437
  }
10438
  }
10439
+ function typeexpr(type, value) {
10440
+ if (type == "variable") {
10441
+ if (value == "keyof") {
10442
+ cx.marked = "keyword"
10443
+ return cont(typeexpr)
10444
+ } else {
10445
+ cx.marked = "type"
10446
+ return cont(afterType)
10447
+ }
10448
+ }
10449
  if (type == "string" || type == "number" || type == "atom") return cont(afterType);
10450
+ if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType)
10451
+ if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex, afterType)
10452
  if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
10453
  }
10454
  function maybeReturnType(type) {
10462
  return cont(typeprop)
10463
  } else if (type == ":") {
10464
  return cont(typeexpr)
10465
+ } else if (type == "[") {
10466
+ return cont(expression, maybetype, expect("]"), typeprop)
10467
  }
10468
  }
10469
  function typearg(type) {
10474
  if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
10475
  if (value == "|" || type == ".") return cont(typeexpr)
10476
  if (type == "[") return cont(expect("]"), afterType)
10477
+ if (value == "extends") return cont(typeexpr)
10478
+ }
10479
+ function maybeTypeArgs(_, value) {
10480
+ if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
10481
  }
10482
  function vardef() {
10483
  return pass(pattern, maybetype, maybeAssign, vardefCont);
10533
  if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
10534
  if (type == "variable") {register(value); return cont(functiondef);}
10535
  if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, maybetype, statement, popcontext);
10536
+ if (isTS && value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, functiondef)
10537
  }
10538
  function funarg(type) {
10539
+ if (type == "spread" || type == "modifier") return cont(funarg);
10540
  return pass(pattern, maybetype, maybeAssign);
10541
  }
10542
  function classExpression(type, value) {
10554
  if (type == "{") return cont(pushlex("}"), classBody, poplex);
10555
  }
10556
  function classBody(type, value) {
10557
+ if (type == "modifier" || type == "async" ||
10558
+ (type == "variable" &&
10559
+ (value == "static" || value == "get" || value == "set") &&
10560
+ cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false))) {
10561
+ cx.marked = "keyword";
10562
+ return cont(classBody);
10563
+ }
10564
+ if (type == "variable") {
10565
  cx.marked = "property";
10566
  return cont(isTS ? classfield : functiondef, classBody);
10567
  }
10573
  }
10574
  if (type == ";") return cont(classBody);
10575
  if (type == "}") return cont();
10576
+ if (value == "@") return cont(expression, classBody)
10577
  }
10578
  function classfield(type, value) {
10579
  if (value == "?") return cont(classfield)
10621
  /[,.]/.test(textAfter.charAt(0));
10622
  }
10623
 
10624
+ function expressionAllowed(stream, state, backUp) {
10625
+ return state.tokenize == tokenBase &&
10626
+ /^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
10627
+ (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
10628
+ }
10629
+
10630
  // Interface
10631
 
10632
  return {
10701
  jsonMode: jsonMode,
10702
 
10703
  expressionAllowed: expressionAllowed,
10704
+
10705
  skipExpression: function(state) {
10706
  var top = state.cc[state.cc.length - 1]
10707
  if (top == expression || top == expressionNoComma) state.cc.pop()
11109
  style = style[0];
11110
  }
11111
  override = style;
11112
+ if (type != "comment")
11113
+ state.state = states[state.state](type, stream, state);
11114
  return override;
11115
  },
11116
 
11128
  ch == "{" && (cx.type == "at" || cx.type == "atBlock")) {
11129
  // Dedent relative to current context.
11130
  indent = Math.max(0, cx.indent - indentUnit);
 
11131
  }
11132
  }
11133
  return indent;
11198
  "border-top-left-radius", "border-top-right-radius", "border-top-style",
11199
  "border-top-width", "border-width", "bottom", "box-decoration-break",
11200
  "box-shadow", "box-sizing", "break-after", "break-before", "break-inside",
11201
+ "caption-side", "caret-color", "clear", "clip", "color", "color-profile", "column-count",
11202
  "column-fill", "column-gap", "column-rule", "column-rule-color",
11203
  "column-rule-style", "column-rule-width", "column-span", "column-width",
11204
  "columns", "content", "counter-increment", "counter-reset", "crop", "cue",
11219
  "grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns",
11220
  "grid-template-rows", "hanging-punctuation", "height", "hyphens",
11221
  "icon", "image-orientation", "image-rendering", "image-resolution",
11222
+ "inline-box-align", "justify-content", "justify-items", "justify-self", "left", "letter-spacing",
11223
  "line-break", "line-height", "line-stacking", "line-stacking-ruby",
11224
  "line-stacking-shift", "line-stacking-strategy", "list-style",
11225
  "list-style-image", "list-style-position", "list-style-type", "margin",
11234
  "padding", "padding-bottom", "padding-left", "padding-right", "padding-top",
11235
  "page", "page-break-after", "page-break-before", "page-break-inside",
11236
  "page-policy", "pause", "pause-after", "pause-before", "perspective",
11237
+ "perspective-origin", "pitch", "pitch-range", "place-content", "place-items", "place-self", "play-during", "position",
11238
  "presentation-level", "punctuation-trim", "quotes", "region-break-after",
11239
  "region-break-before", "region-break-inside", "region-fragment",
11240
  "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness",
11385
  "s-resize", "sans-serif", "saturation", "scale", "scale3d", "scaleX", "scaleY", "scaleZ", "screen",
11386
  "scroll", "scrollbar", "scroll-position", "se-resize", "searchfield",
11387
  "searchfield-cancel-button", "searchfield-decoration",
11388
+ "searchfield-results-button", "searchfield-results-decoration", "self-start", "self-end",
11389
  "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama",
11390
  "simp-chinese-formal", "simp-chinese-informal", "single",
11391
  "skew", "skewX", "skewY", "skip-white-space", "slide", "slider-horizontal",
11392
  "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow",
11393
  "small", "small-caps", "small-caption", "smaller", "soft-light", "solid", "somali",
11394
+ "source-atop", "source-in", "source-out", "source-over", "space", "space-around", "space-between", "space-evenly", "spell-out", "square",
11395
  "square-button", "start", "static", "status-bar", "stretch", "stroke", "sub",
11396
  "subpixel-antialiased", "super", "sw-resize", "symbolic", "symbols", "system-ui", "table",
11397
  "table-caption", "table-cell", "table-column", "table-column-group",
11474
  }
11475
  },
11476
  ":": function(stream) {
11477
+ if (stream.match(/\s*\{/, false))
11478
+ return [null, null]
11479
  return false;
11480
  },
11481
  "$": function(stream) {
11691
  return state.token(stream, state);
11692
  },
11693
 
11694
+ indent: function (state, textAfter, line) {
11695
  if (!state.localMode || /^\s*<\//.test(textAfter))
11696
  return htmlMode.indent(state.htmlState, textAfter);
11697
  else if (state.localMode.indent)
11698
+ return state.localMode.indent(state.localState, textAfter, line);
11699
  else
11700
  return CodeMirror.Pass;
11701
  },
11744
  }
11745
 
11746
  function typeBefore(stream, state, pos) {
11747
+ if (state.prevToken == "variable" || state.prevToken == "type") return true;
11748
  if (/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(stream.string.slice(0, pos))) return true;
11749
  if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;
11750
  }
11775
  isPunctuationChar = parserConfig.isPunctuationChar || /[\[\]{}\(\),;\:\.]/,
11776
  numberStart = parserConfig.numberStart || /[\d\.]/,
11777
  number = parserConfig.number || /^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,
11778
+ isOperatorChar = parserConfig.isOperatorChar || /[+\-*&%=<>!?|\/]/,
11779
+ isIdentifierChar = parserConfig.isIdentifierChar || /[\w\$_\xa1-\uffff]/;
11780
 
11781
  var curPunc, isDefKeyword;
11782
 
11813
  while (!stream.match(/^\/[\/*]/, false) && stream.eat(isOperatorChar)) {}
11814
  return "operator";
11815
  }
11816
+ stream.eatWhile(isIdentifierChar);
11817
  if (namespaceSeparator) while (stream.match(namespaceSeparator))
11818
+ stream.eatWhile(isIdentifierChar);
11819
 
11820
  var cur = stream.current();
11821
  if (contains(keywords, cur)) {
11823
  if (contains(defKeywords, cur)) isDefKeyword = true;
11824
  return "keyword";
11825
  }
11826
+ if (contains(types, cur)) return "type";
11827
  if (contains(builtin, cur)) {
11828
  if (contains(blockKeywords, cur)) curPunc = "newstatement";
11829
  return "builtin";
11992
  }
11993
 
11994
  function pointerHook(_stream, state) {
11995
+ if (state.prevToken == "type") return "type";
11996
  return false;
11997
  }
11998
 
12026
  }
12027
 
12028
  function cppLooksLikeConstructor(word) {
12029
+ var lastTwo = /(\w+)::~?(\w+)$/.exec(word);
12030
  return lastTwo && lastTwo[1] == lastTwo[2];
12031
  }
12032
 
12102
  typeFirstDefinitions: true,
12103
  atoms: words("true false null"),
12104
  dontIndentStatements: /^template$/,
12105
+ isIdentifierChar: /[\w\$_~\xa1-\uffff]/,
12106
  hooks: {
12107
  "#": cppHook,
12108
  "*": pointerHook,
12226
  "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
12227
  ),
12228
  multiLineStrings: true,
12229
+ blockKeywords: words("catch class enum do else finally for forSome if match switch try while"),
12230
+ defKeywords: words("class enum def object package trait type val var"),
12231
  atoms: words("true false null"),
12232
  indentStatements: false,
12233
  indentSwitch: false,
12485
  return "atom";
12486
  },
12487
  token: function(_stream, state, style) {
12488
+ if ((style == "variable" || style == "type") &&
12489
  state.prevToken == ".") {
12490
  return "variable-2";
12491
  }
13249
 
13250
  (function(mod) {
13251
  if (typeof exports == "object" && typeof module == "object") // CommonJS
13252
+ mod(require("../../lib/codemirror"))
13253
  else if (typeof define == "function" && define.amd) // AMD
13254
+ define(["../../lib/codemirror"], mod)
13255
  else // Plain browser env
13256
+ mod(CodeMirror)
13257
  })(function(CodeMirror) {
13258
+ "use strict"
13259
+ var Pos = CodeMirror.Pos
13260
+
13261
+ function regexpFlags(regexp) {
13262
+ var flags = regexp.flags
13263
+ return flags != null ? flags : (regexp.ignoreCase ? "i" : "")
13264
+ + (regexp.global ? "g" : "")
13265
+ + (regexp.multiline ? "m" : "")
13266
+ }
13267
+
13268
+ function ensureGlobal(regexp) {
13269
+ return regexp.global ? regexp : new RegExp(regexp.source, regexpFlags(regexp) + "g")
13270
+ }
13271
+
13272
+ function maybeMultiline(regexp) {
13273
+ return /\\s|\\n|\n|\\W|\\D|\[\^/.test(regexp.source)
13274
+ }
13275
+
13276
+ function searchRegexpForward(doc, regexp, start) {
13277
+ regexp = ensureGlobal(regexp)
13278
+ for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {
13279
+ regexp.lastIndex = ch
13280
+ var string = doc.getLine(line), match = regexp.exec(string)
13281
+ if (match)
13282
+ return {from: Pos(line, match.index),
13283
+ to: Pos(line, match.index + match[0].length),
13284
+ match: match}
13285
+ }
13286
+ }
13287
 
13288
+ function searchRegexpForwardMultiline(doc, regexp, start) {
13289
+ if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)
 
13290
 
13291
+ regexp = ensureGlobal(regexp)
13292
+ var string, chunk = 1
13293
+ for (var line = start.line, last = doc.lastLine(); line <= last;) {
13294
+ // This grows the search buffer in exponentially-sized chunks
13295
+ // between matches, so that nearby matches are fast and don't
13296
+ // require concatenating the whole document (in case we're
13297
+ // searching for something that has tons of matches), but at the
13298
+ // same time, the amount of retries is limited.
13299
+ for (var i = 0; i < chunk; i++) {
13300
+ var curLine = doc.getLine(line++)
13301
+ string = string == null ? curLine : string + "\n" + curLine
13302
+ }
13303
+ chunk = chunk * 2
13304
+ regexp.lastIndex = start.ch
13305
+ var match = regexp.exec(string)
13306
+ if (match) {
13307
+ var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n")
13308
+ var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length
13309
+ return {from: Pos(startLine, startCh),
13310
+ to: Pos(startLine + inside.length - 1,
13311
+ inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),
13312
+ match: match}
13313
+ }
13314
+ }
13315
+ }
13316
+
13317
+ function lastMatchIn(string, regexp) {
13318
+ var cutOff = 0, match
13319
+ for (;;) {
13320
+ regexp.lastIndex = cutOff
13321
+ var newMatch = regexp.exec(string)
13322
+ if (!newMatch) return match
13323
+ match = newMatch
13324
+ cutOff = match.index + (match[0].length || 1)
13325
+ if (cutOff == string.length) return match
13326
+ }
13327
+ }
13328
+
13329
+ function searchRegexpBackward(doc, regexp, start) {
13330
+ regexp = ensureGlobal(regexp)
13331
+ for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {
13332
+ var string = doc.getLine(line)
13333
+ if (ch > -1) string = string.slice(0, ch)
13334
+ var match = lastMatchIn(string, regexp)
13335
+ if (match)
13336
+ return {from: Pos(line, match.index),
13337
+ to: Pos(line, match.index + match[0].length),
13338
+ match: match}
13339
+ }
13340
+ }
13341
+
13342
+ function searchRegexpBackwardMultiline(doc, regexp, start) {
13343
+ regexp = ensureGlobal(regexp)
13344
+ var string, chunk = 1
13345
+ for (var line = start.line, first = doc.firstLine(); line >= first;) {
13346
+ for (var i = 0; i < chunk; i++) {
13347
+ var curLine = doc.getLine(line--)
13348
+ string = string == null ? curLine.slice(0, start.ch) : curLine + "\n" + string
13349
+ }
13350
+ chunk *= 2
13351
+
13352
+ var match = lastMatchIn(string, regexp)
13353
+ if (match) {
13354
+ var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n")
13355
+ var startLine = line + before.length, startCh = before[before.length - 1].length
13356
+ return {from: Pos(startLine, startCh),
13357
+ to: Pos(startLine + inside.length - 1,
13358
+ inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),
13359
+ match: match}
13360
+ }
13361
+ }
13362
+ }
13363
+
13364
+ var doFold, noFold
13365
+ if (String.prototype.normalize) {
13366
+ doFold = function(str) { return str.normalize("NFD").toLowerCase() }
13367
+ noFold = function(str) { return str.normalize("NFD") }
13368
+ } else {
13369
+ doFold = function(str) { return str.toLowerCase() }
13370
+ noFold = function(str) { return str }
13371
+ }
13372
+
13373
+ // Maps a position in a case-folded line back to a position in the original line
13374
+ // (compensating for codepoints increasing in number during folding)
13375
+ function adjustPos(orig, folded, pos, foldFunc) {
13376
+ if (orig.length == folded.length) return pos
13377
+ for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) {
13378
+ if (min == max) return min
13379
+ var mid = (min + max) >> 1
13380
+ var len = foldFunc(orig.slice(0, mid)).length
13381
+ if (len == pos) return mid
13382
+ else if (len > pos) max = mid
13383
+ else min = mid + 1
13384
+ }
13385
+ }
13386
+
13387
+ function searchStringForward(doc, query, start, caseFold) {
13388
+ // Empty string would match anything and never progress, so we
13389
+ // define it to match nothing instead.
13390
+ if (!query.length) return null
13391
+ var fold = caseFold ? doFold : noFold
13392
+ var lines = fold(query).split(/\r|\n\r?/)
13393
+
13394
+ search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) {
13395
+ var orig = doc.getLine(line).slice(ch), string = fold(orig)
13396
+ if (lines.length == 1) {
13397
+ var found = string.indexOf(lines[0])
13398
+ if (found == -1) continue search
13399
+ var start = adjustPos(orig, string, found, fold) + ch
13400
+ return {from: Pos(line, adjustPos(orig, string, found, fold) + ch),
13401
+ to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)}
13402
+ } else {
13403
+ var cutFrom = string.length - lines[0].length
13404
+ if (string.slice(cutFrom) != lines[0]) continue search
13405
+ for (var i = 1; i < lines.length - 1; i++)
13406
+ if (fold(doc.getLine(line + i)) != lines[i]) continue search
13407
+ var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]
13408
+ if (end.slice(0, lastLine.length) != lastLine) continue search
13409
+ return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),
13410
+ to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}
13411
+ }
13412
+ }
13413
+ }
13414
+
13415
+ function searchStringBackward(doc, query, start, caseFold) {
13416
+ if (!query.length) return null
13417
+ var fold = caseFold ? doFold : noFold
13418
+ var lines = fold(query).split(/\r|\n\r?/)
13419
+
13420
+ search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) {
13421
+ var orig = doc.getLine(line)
13422
+ if (ch > -1) orig = orig.slice(0, ch)
13423
+ var string = fold(orig)
13424
+ if (lines.length == 1) {
13425
+ var found = string.lastIndexOf(lines[0])
13426
+ if (found == -1) continue search
13427
+ return {from: Pos(line, adjustPos(orig, string, found, fold)),
13428
+ to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))}
13429
+ } else {
13430
+ var lastLine = lines[lines.length - 1]
13431
+ if (string.slice(0, lastLine.length) != lastLine) continue search
13432
+ for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++)
13433
+ if (fold(doc.getLine(start + i)) != lines[i]) continue search
13434
+ var top = doc.getLine(line + 1 - lines.length), topString = fold(top)
13435
+ if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search
13436
+ return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)),
13437
+ to: Pos(line, adjustPos(orig, string, lastLine.length, fold))}
13438
+ }
13439
+ }
13440
+ }
13441
 
13442
+ function SearchCursor(doc, query, pos, options) {
13443
+ this.atOccurrence = false
13444
+ this.doc = doc
13445
+ pos = pos ? doc.clipPos(pos) : Pos(0, 0)
13446
+ this.pos = {from: pos, to: pos}
13447
+
13448
+ var caseFold
13449
+ if (typeof options == "object") {
13450
+ caseFold = options.caseFold
13451
+ } else { // Backwards compat for when caseFold was the 4th argument
13452
+ caseFold = options
13453
+ options = null
13454
+ }
13455
+
13456
+ if (typeof query == "string") {
13457
+ if (caseFold == null) caseFold = false
13458
  this.matches = function(reverse, pos) {
13459
+ return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)
13460
+ }
13461
+ } else {
13462
+ query = ensureGlobal(query)
13463
+ if (!options || options.multiline !== false)
13464
+ this.matches = function(reverse, pos) {
13465
+ return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13466
  }
13467
+ else
 
13468
  this.matches = function(reverse, pos) {
13469
+ return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos)
13470
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13471
  }
13472
  }
13473
 
13474
  SearchCursor.prototype = {
13475
+ findNext: function() {return this.find(false)},
13476
+ findPrevious: function() {return this.find(true)},
13477
 
13478
  find: function(reverse) {
13479
+ var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to))
 
 
 
 
 
 
13480
 
13481
+ // Implements weird auto-growing behavior on null-matches for
13482
+ // backwards-compatiblity with the vim code (unfortunately)
13483
+ while (result && CodeMirror.cmpPos(result.from, result.to) == 0) {
 
 
13484
  if (reverse) {
13485
+ if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1)
13486
+ else if (result.from.line == this.doc.firstLine()) result = null
13487
+ else result = this.matches(reverse, this.doc.clipPos(Pos(result.from.line - 1)))
13488
+ } else {
13489
+ if (result.to.ch < this.doc.getLine(result.to.line).length) result.to = Pos(result.to.line, result.to.ch + 1)
13490
+ else if (result.to.line == this.doc.lastLine()) result = null
13491
+ else result = this.matches(reverse, Pos(result.to.line + 1, 0))
13492
  }
13493
  }
13494
+
13495
+ if (result) {
13496
+ this.pos = result
13497
+ this.atOccurrence = true
13498
+ return this.pos.match || true
13499
+ } else {
13500
+ var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0)
13501
+ this.pos = {from: end, to: end}
13502
+ return this.atOccurrence = false
13503
+ }
13504
  },
13505
 
13506
+ from: function() {if (this.atOccurrence) return this.pos.from},
13507
+ to: function() {if (this.atOccurrence) return this.pos.to},
13508
 
13509
  replace: function(newText, origin) {
13510
+ if (!this.atOccurrence) return
13511
+ var lines = CodeMirror.splitLines(newText)
13512
+ this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin)
13513
  this.pos.to = Pos(this.pos.from.line + lines.length - 1,
13514
+ lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0))
 
 
 
 
 
 
 
 
 
 
 
 
13515
  }
13516
  }
13517
 
13518
  CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) {
13519
+ return new SearchCursor(this.doc, query, pos, caseFold)
13520
+ })
13521
  CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) {
13522
+ return new SearchCursor(this, query, pos, caseFold)
13523
+ })
13524
 
13525
  CodeMirror.defineExtension("selectMatches", function(query, caseFold) {
13526
+ var ranges = []
13527
+ var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold)
13528
  while (cur.findNext()) {
13529
+ if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break
13530
+ ranges.push({anchor: cur.from(), head: cur.to()})
13531
  }
13532
  if (ranges.length)
13533
+ this.setSelections(ranges, 0)
13534
+ })
13535
  });
13536
 
13537
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13590
 
13591
  function getSearchCursor(cm, query, pos) {
13592
  // Heuristic: if the query string is all lowercase, do a case insensitive search.
13593
+ return cm.getSearchCursor(query, pos, {caseFold: queryCaseInsensitive(query), multiline: true});
13594
  }
13595
 
13596
  function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {
13635
  }
13636
 
13637
  var queryDialog =
13638
+ '<span class="CodeMirror-search-label">Search:</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
13639
 
13640
  function startSearch(cm, state, query) {
13641
  state.queryText = query;
13673
  };
13674
  persistentDialog(cm, queryDialog, q, searchNext, function(event, query) {
13675
  var keyName = CodeMirror.keyName(event)
13676
+ var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption("keyMap")][keyName]
 
13677
  if (cmd == "findNext" || cmd == "findPrev" ||
13678
  cmd == "findPersistentNext" || cmd == "findPersistentPrev") {
13679
  CodeMirror.e_stop(event);
13723
 
13724
  var replaceQueryDialog =
13725
  ' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
13726
+ var replacementQueryDialog = '<span class="CodeMirror-search-label">With:</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/>';
13727
+ var doReplaceConfirm = '<span class="CodeMirror-search-label">Replace?</span> <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>';
13728
 
13729
  function replaceAll(cm, query, text) {
13730
  cm.operation(function() {
13740
  function replace(cm, all) {
13741
  if (cm.getOption("readOnly")) return;
13742
  var query = cm.getSelection() || getSearchState(cm).lastQuery;
13743
+ var dialogText = '<span class="CodeMirror-search-label">' + (all ? 'Replace all:' : 'Replace:') + '</span>';
13744
  dialog(cm, dialogText + replaceQueryDialog, dialogText, query, function(query) {
13745
  if (!query) return;
13746
  query = parseQuery(query);
14378
  widget = document.createElement("span");
14379
  widget.appendChild(text);
14380
  widget.className = "CodeMirror-foldmarker";
14381
+ } else if (widget) {
14382
+ widget = widget.cloneNode(true)
14383
  }
14384
  return widget;
14385
  }
14776
  }
14777
  };
14778
 
14779
+ CodeMirror.findEnclosingTag = function(cm, pos, range, tag) {
14780
  var iter = new Iter(cm, pos.line, pos.ch, range);
14781
  for (;;) {
14782
+ var open = findMatchingOpen(iter, tag);
14783
  if (!open) break;
14784
  var forward = new Iter(cm, pos.line, pos.ch, range);
14785
  var close = findMatchingClose(forward, open.tag);
14814
  return -1
14815
  return CodeMirror.countColumn(text, null, cm.getOption("tabSize"))
14816
  }
14817
+
14818
  CodeMirror.registerHelper("fold", "indent", function(cm, start) {
14819
  var myIndent = lineIndent(cm, start.line)
14820
  if (myIndent < 0) return
14861
 
14862
  var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
14863
 
14864
+ function findMatchingBracket(cm, where, config) {
14865
  var line = cm.getLineHandle(where.line), pos = where.ch - 1;
14866
+ var afterCursor = config && config.afterCursor
14867
+ if (afterCursor == null)
14868
+ afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)
14869
+
14870
+ // A cursor is defined as between two characters, but in in vim command mode
14871
+ // (i.e. not insert mode), the cursor is visually represented as a
14872
+ // highlighted box on top of the 2nd character. Otherwise, we allow matches
14873
+ // from before or after the cursor.
14874
+ var match = (!afterCursor && pos >= 0 && matching[line.text.charAt(pos)]) ||
14875
+ matching[line.text.charAt(++pos)];
14876
  if (!match) return null;
14877
  var dir = match.charAt(1) == ">" ? 1 : -1;
14878
+ if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;
14879
  var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));
14880
 
14881
  var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
14923
  var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
14924
  var marks = [], ranges = cm.listSelections();
14925
  for (var i = 0; i < ranges.length; i++) {
14926
+ var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);
14927
  if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
14928
  var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
14929
  marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
14967
  });
14968
 
14969
  CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
14970
+ CodeMirror.defineExtension("findMatchingBracket", function(pos, config, oldConfig){
14971
+ // Backwards-compatibility kludge
14972
+ if (oldConfig || typeof config == "boolean") {
14973
+ if (!oldConfig) {
14974
+ config = config ? {strict: true} : null
14975
+ } else {
14976
+ oldConfig.strict = config
14977
+ config = oldConfig
14978
+ }
14979
+ }
14980
+ return findMatchingBracket(this, pos, config)
14981
  });
14982
  CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
14983
  return scanForBracket(this, pos, dir, style, config);
15757
  cm.state.sublimeFindFullWord = cm.doc.sel;
15758
  };
15759
 
15760
+ function addCursorToSelection(cm, dir) {
15761
+ var ranges = cm.listSelections(), newRanges = [];
15762
+ for (var i = 0; i < ranges.length; i++) {
15763
+ var range = ranges[i];
15764
+ var newAnchor = cm.findPosV(range.anchor, dir, "line");
15765
+ var newHead = cm.findPosV(range.head, dir, "line");
15766
+ var newRange = {anchor: newAnchor, head: newHead};
15767
+ newRanges.push(range);
15768
+ newRanges.push(newRange);
15769
+ }
15770
+ cm.setSelections(newRanges);
15771
+ }
15772
+
15773
+ var addCursorToLineCombo = mac ? "Shift-Cmd" : 'Alt-Ctrl';
15774
+ cmds[map[addCursorToLineCombo + "Up"] = "addCursorToPrevLine"] = function(cm) { addCursorToSelection(cm, -1); };
15775
+ cmds[map[addCursorToLineCombo + "Down"] = "addCursorToNextLine"] = function(cm) { addCursorToSelection(cm, 1); };
15776
+
15777
  function isSelectedRange(ranges, from, to) {
15778
  for (var i = 0; i < ranges.length; i++)
15779
  if (ranges[i].from() == from && ranges[i].to() == to) return true
16303
 
16304
  function byExpr(cm, pos, dir) {
16305
  var wrap;
16306
+ if (cm.findMatchingBracket && (wrap = cm.findMatchingBracket(pos, {strict: true}))
16307
  && wrap.match && (wrap.forward ? 1 : -1) == dir)
16308
  return dir > 0 ? Pos(wrap.to.line, wrap.to.ch + 1) : wrap.to;
16309
 
16575
  "Ctrl-/": repeated("undo"), "Shift-Ctrl--": repeated("undo"),
16576
  "Ctrl-Z": repeated("undo"), "Cmd-Z": repeated("undo"),
16577
  "Shift-Alt-,": "goDocStart", "Shift-Alt-.": "goDocEnd",
16578
+ "Ctrl-S": "findPersistentNext", "Ctrl-R": "findPersistentPrev", "Ctrl-G": quit, "Shift-Alt-5": "replace",
16579
  "Alt-/": "autocomplete",
16580
  "Enter": "newlineAndIndent",
16581
  "Ctrl-J": repeated(function(cm) { cm.replaceSelection("\n", "end"); }),
16882
  CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
16883
 
16884
  if (!next || next.attach != attachVimMap)
16885
+ leaveVimMode(cm);
16886
  }
16887
  function attachVimMap(cm, prev) {
16888
  if (this == CodeMirror.keyMap.vim)
17034
  cfg = cfg || {};
17035
  var scope = cfg.scope;
17036
  if (!option) {
17037
+ return new Error('Unknown option: ' + name);
17038
  }
17039
  if (option.type == 'boolean') {
17040
  if (value && value !== true) {
17041
+ return new Error('Invalid argument: ' + name + '=' + value);
17042
  } else if (value !== false) {
17043
  // Boolean options are set to true if value is not defined.
17044
  value = true;
17066
  cfg = cfg || {};
17067
  var scope = cfg.scope;
17068
  if (!option) {
17069
+ return new Error('Unknown option: ' + name);
17070
  }
17071
  if (option.callback) {
17072
  var local = cm && option.callback(undefined, cm);
17272
  lastCharacterSearch: {increment:0, forward:true, selectedCharacter:''},
17273
  registerController: new RegisterController({}),
17274
  // search history buffer
17275
+ searchHistoryController: new HistoryController(),
17276
  // ex Command history buffer
17277
+ exCommandHistoryController : new HistoryController()
17278
  };
17279
  for (var optionName in options) {
17280
  var option = options[optionName];
17581
  * for a reference implementation.
17582
  */
17583
  function defineRegister(name, register) {
17584
+ var registers = vimGlobalState.registerController.registers;
17585
  if (!name || name.length != 1) {
17586
  throw Error('Register name must be 1 character');
17587
  }
17609
  }
17610
  RegisterController.prototype = {
17611
  pushText: function(registerName, operator, text, linewise, blockwise) {
 
 
 
17612
  if (linewise && text.charAt(text.length - 1) !== '\n'){
17613
  text += '\n';
17614
  }
17730
  }
17731
  }
17732
  if (bestMatch.keys.slice(-11) == '<character>') {
17733
+ var character = lastChar(keys);
17734
+ if (!character) return {type: 'none'};
17735
+ inputState.selectedCharacter = character;
17736
  }
17737
  return {type: 'full', command: bestMatch};
17738
  },
18458
  var ch = cursor.ch;
18459
  var lineText = cm.getLine(line);
18460
  var symbol;
18461
+ for (; ch < lineText.length; ch++) {
18462
+ symbol = lineText.charAt(ch);
18463
  if (symbol && isMatchableSymbol(symbol)) {
18464
+ var style = cm.getTokenTypeAt(Pos(line, ch + 1));
18465
  if (style !== "string" && style !== "comment") {
18466
  break;
18467
  }
18468
  }
18469
+ }
18470
+ if (ch < lineText.length) {
18471
  var matched = cm.findMatchingBracket(Pos(line, ch));
18472
  return matched.to;
18473
  } else {
18808
  enterMacroRecordMode: function(cm, actionArgs) {
18809
  var macroModeState = vimGlobalState.macroModeState;
18810
  var registerName = actionArgs.selectedCharacter;
18811
+ if (vimGlobalState.registerController.isValidRegister(registerName)) {
18812
+ macroModeState.enterMacroRecordMode(cm, registerName);
18813
+ }
18814
  },
18815
  toggleOverwrite: function(cm) {
18816
  if (!cm.state.overwrite) {
19328
  }
19329
  }
19330
  function lastChar(keys) {
19331
+ var match = /^.*(<[^>]+>)$/.exec(keys);
19332
  var selectedCharacter = match ? match[1] : keys.slice(-1);
19333
  if (selectedCharacter.length > 1){
19334
  switch(selectedCharacter){
19339
  selectedCharacter=' ';
19340
  break;
19341
  default:
19342
+ selectedCharacter='';
19343
  break;
19344
  }
19345
  }
19440
  var range = {anchor: new Pos(line, baseCh), head: new Pos(line, headCh)};
19441
  selections.push(range);
19442
  }
 
19443
  cm.setSelections(selections);
19444
  selectionEnd.ch = headCh;
19445
  base.ch = baseCh;
20707
  parseLineSpec_: function(cm, inputStream) {
20708
  var numberMatch = inputStream.match(/^(\d+)/);
20709
  if (numberMatch) {
20710
+ // Absolute line number plus offset (N+M or N-M) is probably a typo,
20711
+ // not something the user actually wanted. (NB: vim does allow this.)
20712
  return parseInt(numberMatch[1], 10) - 1;
20713
  }
20714
  switch (inputStream.next()) {
20715
  case '.':
20716
+ return this.parseLineSpecOffset_(inputStream, cm.getCursor().line);
20717
  case '$':
20718
+ return this.parseLineSpecOffset_(inputStream, cm.lastLine());
20719
  case '\'':
20720
  var markName = inputStream.next();
20721
  var markPos = getMarkPos(cm, cm.state.vim, markName);
20722
  if (!markPos) throw new Error('Mark not set');
20723
+ return this.parseLineSpecOffset_(inputStream, markPos.line);
20724
+ case '-':
20725
+ case '+':
20726
+ inputStream.backUp(1);
20727
+ // Offset is relative to current line if not otherwise specified.
20728
+ return this.parseLineSpecOffset_(inputStream, cm.getCursor().line);
20729
  default:
20730
  inputStream.backUp(1);
20731
  return undefined;
20732
  }
20733
  },
20734
+ parseLineSpecOffset_: function(inputStream, line) {
20735
+ var offsetMatch = inputStream.match(/^([+-])?(\d+)/);
20736
+ if (offsetMatch) {
20737
+ var offset = parseInt(offsetMatch[2], 10);
20738
+ if (offsetMatch[1] == "-") {
20739
+ line -= offset;
20740
+ } else {
20741
+ line += offset;
20742
+ }
20743
+ }
20744
+ return line;
20745
+ },
20746
  parseCommandArgs_: function(inputStream, params, command) {
20747
  if (inputStream.eol()) {
20748
  return;
20922
  // If no value is provided, then we assume this is a get.
20923
  if (!optionIsBoolean && value === undefined || forceGet) {
20924
  var oldValue = getOption(optionName, cm, setCfg);
20925
+ if (oldValue instanceof Error) {
20926
+ showConfirm(cm, oldValue.message);
20927
+ } else if (oldValue === true || oldValue === false) {
20928
  showConfirm(cm, ' ' + (oldValue ? '' : 'no') + optionName);
20929
  } else {
20930
  showConfirm(cm, ' ' + optionName + '=' + oldValue);
20931
  }
20932
  } else {
20933
+ var setOptionReturn = setOption(optionName, value, cm, setCfg);
20934
+ if (setOptionReturn instanceof Error) {
20935
+ showConfirm(cm, setOptionReturn.message);
20936
+ }
20937
  }
20938
  },
20939
  setlocal: function (cm, params) {
21132
  if (tokens.length) {
21133
  regexPart = tokens[0];
21134
  replacePart = tokens[1];
21135
+ if (regexPart && regexPart[regexPart.length - 1] === '$') {
21136
+ regexPart = regexPart.slice(0, regexPart.length - 1) + '\\n';
21137
+ replacePart = replacePart ? replacePart + '\n' : '\n';
21138
+ }
21139
  if (replacePart !== undefined) {
21140
  if (getOption('pcre')) {
21141
  replacePart = unescapeRegexReplace(replacePart);
21555
  * Listens for changes made in insert mode.
21556
  * Should only be active in insert mode.
21557
  */
21558
+ function onChange(cm, changeObj) {
21559
  var macroModeState = vimGlobalState.macroModeState;
21560
  var lastChange = macroModeState.lastInsertModeChanges;
21561
  if (!macroModeState.isPlaying) {
21568
  lastChange.changes = [];
21569
  lastChange.maybeReset = false;
21570
  }
21571
+ if (cm.state.overwrite && !/\n/.test(text)) {
21572
+ lastChange.changes.push([text]);
21573
+ } else {
21574
+ lastChange.changes.push(text);
21575
+ }
21576
  }
21577
  // Change objects may be chained with next.
21578
  changeObj = changeObj.next;
21754
  var change = changes[j];
21755
  if (change instanceof InsertModeKey) {
21756
  CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler);
21757
+ } else if (typeof change == "string") {
21758
  var cur = cm.getCursor();
21759
  cm.replaceRange(change, cur, cur);
21760
+ } else {
21761
+ var start = cm.getCursor();
21762
+ var end = offsetCursor(start, 0, change[0].length);
21763
+ cm.replaceRange(change[0], start, end);
21764
  }
21765
  }
21766
  }
21785
  * @since 2.2.1
21786
  */
21787
 
21788
+ // console.log(window.heshOptions); // from wordpress php
21789
 
21790
  (function (
21791
  document,
dist/hesh.min.css CHANGED
@@ -1 +1 @@
1
- .CodeMirror{font-family:monospace;height:300px;color:#000}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;animation:a 1.06s steps(1) infinite;background-color:#7e7}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day div.CodeMirror-selected{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::selection,.cm-s-3024-day .CodeMirror-line>span::selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-day .CodeMirror-guttermarker-subtle,.cm-s-3024-day .CodeMirror-linenumber{color:#807d7c}.cm-s-3024-day .CodeMirror-cursor{border-left:1px solid #5c5855}.cm-s-3024-day span.cm-comment{color:#cdab53}.cm-s-3024-day span.cm-atom,.cm-s-3024-day span.cm-number{color:#a16a94}.cm-s-3024-day span.cm-attribute,.cm-s-3024-day span.cm-property{color:#01a252}.cm-s-3024-day span.cm-keyword{color:#db2d20}.cm-s-3024-day span.cm-string{color:#fded02}.cm-s-3024-day span.cm-variable{color:#01a252}.cm-s-3024-day span.cm-variable-2{color:#01a0e4}.cm-s-3024-day span.cm-def{color:#e8bbd0}.cm-s-3024-day span.cm-bracket{color:#3a3432}.cm-s-3024-day span.cm-tag{color:#db2d20}.cm-s-3024-day span.cm-link{color:#a16a94}.cm-s-3024-day span.cm-error{background:#db2d20;color:#5c5855}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-3024-day .CodeMirror-matchingbracket{text-decoration:underline;color:#a16a94!important}.cm-s-3024-night.CodeMirror{background:#090300;color:#d6d5d4}.cm-s-3024-night div.CodeMirror-selected{background:#3a3432}.cm-s-3024-night .CodeMirror-line::selection,.cm-s-3024-night .CodeMirror-line>span::selection,.cm-s-3024-night .CodeMirror-line>span>span::selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-line::-moz-selection,.cm-s-3024-night .CodeMirror-line>span::-moz-selection,.cm-s-3024-night .CodeMirror-line>span>span::-moz-selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-gutters{background:#090300;border-right:0}.cm-s-3024-night .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-night .CodeMirror-guttermarker-subtle,.cm-s-3024-night .CodeMirror-linenumber{color:#5c5855}.cm-s-3024-night .CodeMirror-cursor{border-left:1px solid #807d7c}.cm-s-3024-night span.cm-comment{color:#cdab53}.cm-s-3024-night span.cm-atom,.cm-s-3024-night span.cm-number{color:#a16a94}.cm-s-3024-night span.cm-attribute,.cm-s-3024-night span.cm-property{color:#01a252}.cm-s-3024-night span.cm-keyword{color:#db2d20}.cm-s-3024-night span.cm-string{color:#fded02}.cm-s-3024-night span.cm-variable{color:#01a252}.cm-s-3024-night span.cm-variable-2{color:#01a0e4}.cm-s-3024-night span.cm-def{color:#e8bbd0}.cm-s-3024-night span.cm-bracket{color:#d6d5d4}.cm-s-3024-night span.cm-tag{color:#db2d20}.cm-s-3024-night span.cm-link{color:#a16a94}.cm-s-3024-night span.cm-error{background:#db2d20;color:#807d7c}.cm-s-3024-night .CodeMirror-activeline-background{background:#2f2f2f}.cm-s-3024-night .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-abcdef.CodeMirror{background:#0f0f0f;color:#defdef}.cm-s-abcdef div.CodeMirror-selected{background:#515151}.cm-s-abcdef .CodeMirror-line::selection,.cm-s-abcdef .CodeMirror-line>span::selection,.cm-s-abcdef .CodeMirror-line>span>span::selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-line::-moz-selection,.cm-s-abcdef .CodeMirror-line>span::-moz-selection,.cm-s-abcdef .CodeMirror-line>span>span::-moz-selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-gutters{background:#555;border-right:2px solid #314151}.cm-s-abcdef .CodeMirror-guttermarker{color:#222}.cm-s-abcdef .CodeMirror-guttermarker-subtle{color:azure}.cm-s-abcdef .CodeMirror-linenumber{color:#fff}.cm-s-abcdef .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-abcdef span.cm-keyword{color:#b8860b;font-weight:700}.cm-s-abcdef span.cm-atom{color:#77f}.cm-s-abcdef span.cm-number{color:violet}.cm-s-abcdef span.cm-def{color:#fffabc}.cm-s-abcdef span.cm-variable{color:#abcdef}.cm-s-abcdef span.cm-variable-2{color:#cacbcc}.cm-s-abcdef span.cm-variable-3{color:#def}.cm-s-abcdef span.cm-property{color:#fedcba}.cm-s-abcdef span.cm-operator{color:#ff0}.cm-s-abcdef span.cm-comment{color:#7a7b7c;font-style:italic}.cm-s-abcdef span.cm-string{color:#2b4}.cm-s-abcdef span.cm-meta{color:#c9f}.cm-s-abcdef span.cm-qualifier{color:#fff700}.cm-s-abcdef span.cm-builtin{color:#30aabc}.cm-s-abcdef span.cm-bracket{color:#8a8a8a}.cm-s-abcdef span.cm-tag{color:#fd4}.cm-s-abcdef span.cm-attribute{color:#df0}.cm-s-abcdef span.cm-error{color:red}.cm-s-abcdef span.cm-header{color:#7fffd4;font-weight:700}.cm-s-abcdef span.cm-link{color:#8a2be2}.cm-s-abcdef .CodeMirror-activeline-background{background:#314151}.cm-s-ambiance.CodeMirror{box-shadow:none}.cm-s-ambiance .cm-header{color:blue}.cm-s-ambiance .cm-quote{color:#24c2c7}.cm-s-ambiance .cm-keyword{color:#cda869}.cm-s-ambiance .cm-atom{color:#cf7ea9}.cm-s-ambiance .cm-number{color:#78cf8a}.cm-s-ambiance .cm-def{color:#aac6e3}.cm-s-ambiance .cm-variable{color:#ffb795}.cm-s-ambiance .cm-variable-2{color:#eed1b3}.cm-s-ambiance .cm-variable-3{color:#faded3}.cm-s-ambiance .cm-property{color:#eed1b3}.cm-s-ambiance .cm-operator{color:#fa8d6a}.cm-s-ambiance .cm-comment{color:#555;font-style:italic}.cm-s-ambiance .cm-string{color:#8f9d6a}.cm-s-ambiance .cm-string-2{color:#9d937c}.cm-s-ambiance .cm-meta{color:#d2a8a1}.cm-s-ambiance .cm-qualifier{color:#ff0}.cm-s-ambiance .cm-builtin{color:#99c}.cm-s-ambiance .cm-bracket{color:#24c2c7}.cm-s-ambiance .cm-tag{color:#fee4ff}.cm-s-ambiance .cm-attribute{color:#9b859d}.cm-s-ambiance .cm-hr{color:pink}.cm-s-ambiance .cm-link{color:#f4c20b}.cm-s-ambiance .cm-special{color:#ff9d00}.cm-s-ambiance .cm-error{color:#af2018}.cm-s-ambiance .CodeMirror-matchingbracket{color:#0f0}.cm-s-ambiance .CodeMirror-nonmatchingbracket{color:#f22}.cm-s-ambiance div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::selection,.cm-s-ambiance .CodeMirror-line>span::selection,.cm-s-ambiance .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line>span::-moz-selection,.cm-s-ambiance .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance.CodeMirror{line-height:1.4em;color:#e6e1dc;background-color:#202020;box-shadow:inset 0 0 10px #000}.cm-s-ambiance .CodeMirror-gutters{background:#3d3d3d;border-right:1px solid #4d4d4d;box-shadow:0 10px 20px #000}.cm-s-ambiance .CodeMirror-linenumber{text-shadow:0 1px 1px #4d4d4d;color:#111;padding:0 5px}.cm-s-ambiance .CodeMirror-guttermarker{color:#aaa}.cm-s-ambiance .CodeMirror-guttermarker-subtle{color:#111}.cm-s-ambiance .CodeMirror-cursor{border-left:1px solid #7991e8}.cm-s-ambiance .CodeMirror-activeline-background{background:none repeat scroll 0 0 hsla(0,0%,100%,.031)}.cm-s-ambiance.CodeMirror,.cm-s-ambiance .CodeMirror-gutters{background-image:url("data:image/png;base64,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")}.cm-s-base16-dark.CodeMirror{background:#151515;color:#e0e0e0}.cm-s-base16-dark div.CodeMirror-selected{background:#303030}.cm-s-base16-dark .CodeMirror-line::selection,.cm-s-base16-dark .CodeMirror-line>span::selection,.cm-s-base16-dark .CodeMirror-line>span>span::selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-line::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-gutters{background:#151515;border-right:0}.cm-s-base16-dark .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-dark .CodeMirror-guttermarker-subtle,.cm-s-base16-dark .CodeMirror-linenumber{color:#505050}.cm-s-base16-dark .CodeMirror-cursor{border-left:1px solid #b0b0b0}.cm-s-base16-dark span.cm-comment{color:#8f5536}.cm-s-base16-dark span.cm-atom,.cm-s-base16-dark span.cm-number{color:#aa759f}.cm-s-base16-dark span.cm-attribute,.cm-s-base16-dark span.cm-property{color:#90a959}.cm-s-base16-dark span.cm-keyword{color:#ac4142}.cm-s-base16-dark span.cm-string{color:#f4bf75}.cm-s-base16-dark span.cm-variable{color:#90a959}.cm-s-base16-dark span.cm-variable-2{color:#6a9fb5}.cm-s-base16-dark span.cm-def{color:#d28445}.cm-s-base16-dark span.cm-bracket{color:#e0e0e0}.cm-s-base16-dark span.cm-tag{color:#ac4142}.cm-s-base16-dark span.cm-link{color:#aa759f}.cm-s-base16-dark span.cm-error{background:#ac4142;color:#b0b0b0}.cm-s-base16-dark .CodeMirror-activeline-background{background:#202020}.cm-s-base16-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-base16-light.CodeMirror{background:#f5f5f5;color:#202020}.cm-s-base16-light div.CodeMirror-selected{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::selection,.cm-s-base16-light .CodeMirror-line>span::selection,.cm-s-base16-light .CodeMirror-line>span>span::selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::-moz-selection,.cm-s-base16-light .CodeMirror-line>span::-moz-selection,.cm-s-base16-light .CodeMirror-line>span>span::-moz-selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-gutters{background:#f5f5f5;border-right:0}.cm-s-base16-light .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-light .CodeMirror-guttermarker-subtle,.cm-s-base16-light .CodeMirror-linenumber{color:#b0b0b0}.cm-s-base16-light .CodeMirror-cursor{border-left:1px solid #505050}.cm-s-base16-light span.cm-comment{color:#8f5536}.cm-s-base16-light span.cm-atom,.cm-s-base16-light span.cm-number{color:#aa759f}.cm-s-base16-light span.cm-attribute,.cm-s-base16-light span.cm-property{color:#90a959}.cm-s-base16-light span.cm-keyword{color:#ac4142}.cm-s-base16-light span.cm-string{color:#f4bf75}.cm-s-base16-light span.cm-variable{color:#90a959}.cm-s-base16-light span.cm-variable-2{color:#6a9fb5}.cm-s-base16-light span.cm-def{color:#d28445}.cm-s-base16-light span.cm-bracket{color:#202020}.cm-s-base16-light span.cm-tag{color:#ac4142}.cm-s-base16-light span.cm-link{color:#aa759f}.cm-s-base16-light span.cm-error{background:#ac4142;color:#505050}.cm-s-base16-light .CodeMirror-activeline-background{background:#dddcdc}.cm-s-base16-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin.CodeMirror{background:#28211c;color:#9d9b97}.cm-s-bespin div.CodeMirror-selected{background:#36312e!important}.cm-s-bespin .CodeMirror-gutters{background:#28211c;border-right:0}.cm-s-bespin .CodeMirror-linenumber{color:#666}.cm-s-bespin .CodeMirror-cursor{border-left:1px solid #797977!important}.cm-s-bespin span.cm-comment{color:#937121}.cm-s-bespin span.cm-atom,.cm-s-bespin span.cm-number{color:#9b859d}.cm-s-bespin span.cm-attribute,.cm-s-bespin span.cm-property{color:#54be0d}.cm-s-bespin span.cm-keyword{color:#cf6a4c}.cm-s-bespin span.cm-string{color:#f9ee98}.cm-s-bespin span.cm-variable{color:#54be0d}.cm-s-bespin span.cm-variable-2{color:#5ea6ea}.cm-s-bespin span.cm-def{color:#cf7d34}.cm-s-bespin span.cm-error{background:#cf6a4c;color:#797977}.cm-s-bespin span.cm-bracket{color:#9d9b97}.cm-s-bespin span.cm-tag{color:#cf6a4c}.cm-s-bespin span.cm-link{color:#9b859d}.cm-s-bespin .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin .CodeMirror-activeline-background{background:#404040}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard div.CodeMirror-selected{background:#253b76}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line>span::selection,.cm-s-blackboard .CodeMirror-line>span>span::selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line>span::-moz-selection,.cm-s-blackboard .CodeMirror-line>span>span::-moz-selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-guttermarker{color:#fbde2d}.cm-s-blackboard .CodeMirror-guttermarker-subtle,.cm-s-blackboard .CodeMirror-linenumber{color:#888}.cm-s-blackboard .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-blackboard .cm-keyword{color:#fbde2d}.cm-s-blackboard .cm-atom,.cm-s-blackboard .cm-number{color:#d8fa3c}.cm-s-blackboard .cm-def{color:#8da6ce}.cm-s-blackboard .cm-variable{color:#ff6400}.cm-s-blackboard .cm-operator{color:#fbde2d}.cm-s-blackboard .cm-comment{color:#aeaeae}.cm-s-blackboard .cm-string,.cm-s-blackboard .cm-string-2{color:#61ce3c}.cm-s-blackboard .cm-meta{color:#d8fa3c}.cm-s-blackboard .cm-attribute,.cm-s-blackboard .cm-builtin,.cm-s-blackboard .cm-tag{color:#8da6ce}.cm-s-blackboard .cm-header{color:#ff6400}.cm-s-blackboard .cm-hr{color:#aeaeae}.cm-s-blackboard .cm-link{color:#8da6ce}.cm-s-blackboard .cm-error{background:#9d1e15;color:#f8f8f8}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-blackboard .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-cobalt.CodeMirror{background:#002240;color:#fff}.cm-s-cobalt div.CodeMirror-selected{background:#b36539}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line>span::selection,.cm-s-cobalt .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line>span::-moz-selection,.cm-s-cobalt .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-cobalt .CodeMirror-guttermarker{color:#ffee80}.cm-s-cobalt .CodeMirror-guttermarker-subtle,.cm-s-cobalt .CodeMirror-linenumber{color:#d0d0d0}.cm-s-cobalt .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-cobalt span.cm-comment{color:#08f}.cm-s-cobalt span.cm-atom{color:#845dc4}.cm-s-cobalt span.cm-attribute,.cm-s-cobalt span.cm-number{color:#ff80e1}.cm-s-cobalt span.cm-keyword{color:#ffee80}.cm-s-cobalt span.cm-string{color:#3ad900}.cm-s-cobalt span.cm-meta{color:#ff9d00}.cm-s-cobalt span.cm-tag,.cm-s-cobalt span.cm-variable-2{color:#9effff}.cm-s-cobalt span.cm-def,.cm-s-cobalt span.cm-variable-3{color:#fff}.cm-s-cobalt span.cm-bracket{color:#d8d8d8}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special{color:#ff9e59}.cm-s-cobalt span.cm-link{color:#845dc4}.cm-s-cobalt span.cm-error{color:#9d1e15}.cm-s-cobalt .CodeMirror-activeline-background{background:#002d57}.cm-s-cobalt .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-colorforth.CodeMirror{background:#000;color:#f8f8f8}.cm-s-colorforth .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-colorforth .CodeMirror-guttermarker{color:#ffbd40}.cm-s-colorforth .CodeMirror-guttermarker-subtle{color:#78846f}.cm-s-colorforth .CodeMirror-linenumber{color:#bababa}.cm-s-colorforth .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-colorforth span.cm-comment{color:#ededed}.cm-s-colorforth span.cm-def{color:#ff1c1c;font-weight:700}.cm-s-colorforth span.cm-keyword{color:#ffd900}.cm-s-colorforth span.cm-builtin{color:#00d95a}.cm-s-colorforth span.cm-variable{color:#73ff00}.cm-s-colorforth span.cm-string{color:#007bff}.cm-s-colorforth span.cm-number{color:#00c4ff}.cm-s-colorforth span.cm-atom{color:#606060}.cm-s-colorforth span.cm-variable-2{color:#eee}.cm-s-colorforth span.cm-variable-3{color:#ddd}.cm-s-colorforth span.cm-meta{color:#ff0}.cm-s-colorforth span.cm-qualifier{color:#fff700}.cm-s-colorforth span.cm-bracket{color:#cc7}.cm-s-colorforth span.cm-tag{color:#ffbd40}.cm-s-colorforth span.cm-attribute{color:#fff700}.cm-s-colorforth span.cm-error{color:red}.cm-s-colorforth div.CodeMirror-selected{background:#333d53}.cm-s-colorforth span.cm-compilation{background:hsla(0,0%,100%,.12)}.cm-s-colorforth .CodeMirror-activeline-background{background:#253540}.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters{background-color:#282a36!important;color:#f8f8f2!important;border:none}.cm-s-dracula .CodeMirror-gutters{color:#282a36}.cm-s-dracula .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-dracula .CodeMirror-linenumber{color:#6d8a88}.cm-s-dracula .CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line>span::selection,.cm-s-dracula .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line>span::-moz-selection,.cm-s-dracula .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula span.cm-comment{color:#6272a4}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2{color:#f1fa8c}.cm-s-dracula span.cm-number{color:#bd93f9}.cm-s-dracula span.cm-variable{color:#50fa7b}.cm-s-dracula span.cm-variable-2{color:#fff}.cm-s-dracula span.cm-def{color:#50fa7b}.cm-s-dracula span.cm-keyword,.cm-s-dracula span.cm-operator{color:#ff79c6}.cm-s-dracula span.cm-atom{color:#bd93f9}.cm-s-dracula span.cm-meta{color:#f8f8f2}.cm-s-dracula span.cm-tag{color:#ff79c6}.cm-s-dracula span.cm-attribute,.cm-s-dracula span.cm-qualifier{color:#50fa7b}.cm-s-dracula span.cm-property{color:#66d9ef}.cm-s-dracula span.cm-builtin{color:#50fa7b}.cm-s-dracula span.cm-variable-3{color:#ffb86c}.cm-s-dracula .CodeMirror-activeline-background{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-duotone-dark.CodeMirror{background:#2a2734;color:#6c6783}.cm-s-duotone-dark div.CodeMirror-selected{background:#545167!important}.cm-s-duotone-dark .CodeMirror-gutters{background:#2a2734;border-right:0}.cm-s-duotone-dark .CodeMirror-linenumber{color:#545167}.cm-s-duotone-dark .CodeMirror-cursor{border-left:1px solid #ffad5c;border-right:.5em solid #ffad5c;opacity:.5}.cm-s-duotone-dark .CodeMirror-activeline-background{background:#363342;opacity:.5}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor{background:#ffad5c;opacity:.5}.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-link,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-variable{color:#fc9}.cm-s-duotone-dark span.cm-property{color:#9a86fd}.cm-s-duotone-dark span.cm-negative,.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit{color:#e09142}.cm-s-duotone-dark span.cm-string{color:#ffb870}.cm-s-duotone-dark span.cm-operator{color:#ffad5c}.cm-s-duotone-dark span.cm-positive{color:#6a51e6}.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-url,.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3{color:#7a63ee}.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-em,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-tag{color:#eeebff}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment{color:#6c6783}.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar{color:red}.cm-s-duotone-dark span.cm-header{font-weight:400}.cm-s-duotone-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#eeebff!important}.cm-s-duotone-light.CodeMirror{background:#faf8f5;color:#b29762}.cm-s-duotone-light div.CodeMirror-selected{background:#e3dcce!important}.cm-s-duotone-light .CodeMirror-gutters{background:#faf8f5;border-right:0}.cm-s-duotone-light .CodeMirror-linenumber{color:#cdc4b1}.cm-s-duotone-light .CodeMirror-cursor{border-left:1px solid #93abdc;border-right:.5em solid #93abdc;opacity:.5}.cm-s-duotone-light .CodeMirror-activeline-background{background:#e3dcce;opacity:.5}.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor{background:#93abdc;opacity:.5}.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link,.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light span.cm-variable{color:#063289}.cm-s-duotone-light span.cm-property{color:#b29762}.cm-s-duotone-light span.cm-negative,.cm-s-duotone-light span.cm-punctuation,.cm-s-duotone-light span.cm-unit{color:#063289}.cm-s-duotone-light span.cm-operator,.cm-s-duotone-light span.cm-string{color:#1659df}.cm-s-duotone-light span.cm-positive,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-url,.cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3{color:#896724}.cm-s-duotone-light span.cm-builtin,.cm-s-duotone-light span.cm-def,.cm-s-duotone-light span.cm-em,.cm-s-duotone-light span.cm-header,.cm-s-duotone-light span.cm-qualifier,.cm-s-duotone-light span.cm-tag{color:#2d2006}.cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment{color:#b6ad9a}.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar{color:red}.cm-s-duotone-light span.cm-header{font-weight:400}.cm-s-duotone-light .CodeMirror-matchingbracket{text-decoration:underline;color:#faf8f5!important}.cm-s-eclipse span.cm-meta{color:#ff1717}.cm-s-eclipse span.cm-keyword{line-height:1em;font-weight:700;color:#7f0055}.cm-s-eclipse span.cm-atom{color:#219}.cm-s-eclipse span.cm-number{color:#164}.cm-s-eclipse span.cm-def{color:#00f}.cm-s-eclipse span.cm-variable{color:#000}.cm-s-eclipse span.cm-variable-2,.cm-s-eclipse span.cm-variable-3{color:#0000c0}.cm-s-eclipse span.cm-operator,.cm-s-eclipse span.cm-property{color:#000}.cm-s-eclipse span.cm-comment{color:#3f7f5f}.cm-s-eclipse span.cm-string{color:#2a00ff}.cm-s-eclipse span.cm-string-2{color:#f50}.cm-s-eclipse span.cm-qualifier{color:#555}.cm-s-eclipse span.cm-builtin{color:#30a}.cm-s-eclipse span.cm-bracket{color:#cc7}.cm-s-eclipse span.cm-tag{color:#170}.cm-s-eclipse span.cm-attribute{color:#00c}.cm-s-eclipse span.cm-link{color:#219}.cm-s-eclipse span.cm-error{color:red}.cm-s-eclipse .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-eclipse .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-elegant span.cm-atom,.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string{color:#762}.cm-s-elegant span.cm-comment{color:#262;font-style:italic;line-height:1em}.cm-s-elegant span.cm-meta{color:#555;font-style:italic;line-height:1em}.cm-s-elegant span.cm-variable{color:#000}.cm-s-elegant span.cm-variable-2{color:#b11}.cm-s-elegant span.cm-qualifier{color:#555}.cm-s-elegant span.cm-keyword{color:#730}.cm-s-elegant span.cm-builtin{color:#30a}.cm-s-elegant span.cm-link{color:#762}.cm-s-elegant span.cm-error{background-color:#fdd}.cm-s-elegant .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-elegant .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-erlang-dark.CodeMirror{background:#002240;color:#fff}.cm-s-erlang-dark div.CodeMirror-selected{background:#b36539}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line>span::selection,.cm-s-erlang-dark .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-erlang-dark .CodeMirror-guttermarker{color:#fff}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle,.cm-s-erlang-dark .CodeMirror-linenumber{color:#d0d0d0}.cm-s-erlang-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-erlang-dark span.cm-quote{color:#ccc}.cm-s-erlang-dark span.cm-atom{color:#f133f1}.cm-s-erlang-dark span.cm-attribute{color:#ff80e1}.cm-s-erlang-dark span.cm-bracket{color:#ff9d00}.cm-s-erlang-dark span.cm-builtin{color:#eaa}.cm-s-erlang-dark span.cm-comment{color:#77f}.cm-s-erlang-dark span.cm-def{color:#e7a}.cm-s-erlang-dark span.cm-keyword{color:#ffee80}.cm-s-erlang-dark span.cm-meta{color:#50fefe}.cm-s-erlang-dark span.cm-number{color:#ffd0d0}.cm-s-erlang-dark span.cm-operator{color:#d55}.cm-s-erlang-dark span.cm-property,.cm-s-erlang-dark span.cm-qualifier{color:#ccc}.cm-s-erlang-dark span.cm-special{color:#fbb}.cm-s-erlang-dark span.cm-string{color:#3ad900}.cm-s-erlang-dark span.cm-string-2{color:#ccc}.cm-s-erlang-dark span.cm-tag{color:#9effff}.cm-s-erlang-dark span.cm-variable{color:#50fe50}.cm-s-erlang-dark span.cm-variable-2{color:#e0e}.cm-s-erlang-dark span.cm-variable-3{color:#ccc}.cm-s-erlang-dark span.cm-error{color:#9d1e15}.cm-s-erlang-dark .CodeMirror-activeline-background{background:#013461}.cm-s-erlang-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-hopscotch.CodeMirror{background:#322931;color:#d5d3d5}.cm-s-hopscotch div.CodeMirror-selected{background:#433b42!important}.cm-s-hopscotch .CodeMirror-gutters{background:#322931;border-right:0}.cm-s-hopscotch .CodeMirror-linenumber{color:#797379}.cm-s-hopscotch .CodeMirror-cursor{border-left:1px solid #989498!important}.cm-s-hopscotch span.cm-comment{color:#b33508}.cm-s-hopscotch span.cm-atom,.cm-s-hopscotch span.cm-number{color:#c85e7c}.cm-s-hopscotch span.cm-attribute,.cm-s-hopscotch span.cm-property{color:#8fc13e}.cm-s-hopscotch span.cm-keyword{color:#dd464c}.cm-s-hopscotch span.cm-string{color:#fdcc59}.cm-s-hopscotch span.cm-variable{color:#8fc13e}.cm-s-hopscotch span.cm-variable-2{color:#1290bf}.cm-s-hopscotch span.cm-def{color:#fd8b19}.cm-s-hopscotch span.cm-error{background:#dd464c;color:#989498}.cm-s-hopscotch span.cm-bracket{color:#d5d3d5}.cm-s-hopscotch span.cm-tag{color:#dd464c}.cm-s-hopscotch span.cm-link{color:#c85e7c}.cm-s-hopscotch .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-hopscotch .CodeMirror-activeline-background{background:#302020}.cm-s-icecoder{color:#666;background:#1d1d1b}.cm-s-icecoder span.cm-keyword{color:#eee;font-weight:700}.cm-s-icecoder span.cm-atom{color:#e1c76e}.cm-s-icecoder span.cm-number{color:#6cb5d9}.cm-s-icecoder span.cm-def{color:#b9ca4a}.cm-s-icecoder span.cm-variable{color:#6cb5d9}.cm-s-icecoder span.cm-variable-2{color:#cc1e5c}.cm-s-icecoder span.cm-variable-3{color:#f9602c}.cm-s-icecoder span.cm-property{color:#eee}.cm-s-icecoder span.cm-operator{color:#9179bb}.cm-s-icecoder span.cm-comment{color:#97a3aa}.cm-s-icecoder span.cm-string{color:#b9ca4a}.cm-s-icecoder span.cm-string-2{color:#6cb5d9}.cm-s-icecoder span.cm-meta,.cm-s-icecoder span.cm-qualifier{color:#555}.cm-s-icecoder span.cm-builtin{color:#214e7b}.cm-s-icecoder span.cm-bracket{color:#cc7}.cm-s-icecoder span.cm-tag{color:#e8e8e8}.cm-s-icecoder span.cm-attribute{color:#099}.cm-s-icecoder span.cm-header{color:#6a0d6a}.cm-s-icecoder span.cm-quote{color:#186718}.cm-s-icecoder span.cm-hr{color:#888}.cm-s-icecoder span.cm-link{color:#e1c76e}.cm-s-icecoder span.cm-error{color:#d00}.cm-s-icecoder .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-icecoder div.CodeMirror-selected{color:#fff;background:#037}.cm-s-icecoder .CodeMirror-gutters{background:#1d1d1b;min-width:41px;border-right:0}.cm-s-icecoder .CodeMirror-linenumber{color:#555;cursor:default}.cm-s-icecoder .CodeMirror-matchingbracket{color:#fff!important;background:#555!important}.cm-s-icecoder .CodeMirror-activeline-background{background:#000}.cm-s-isotope.CodeMirror{background:#000;color:#e0e0e0}.cm-s-isotope div.CodeMirror-selected{background:#404040!important}.cm-s-isotope .CodeMirror-gutters{background:#000;border-right:0}.cm-s-isotope .CodeMirror-linenumber{color:gray}.cm-s-isotope .CodeMirror-cursor{border-left:1px solid silver!important}.cm-s-isotope span.cm-comment{color:#30f}.cm-s-isotope span.cm-atom,.cm-s-isotope span.cm-number{color:#c0f}.cm-s-isotope span.cm-attribute,.cm-s-isotope span.cm-property{color:#3f0}.cm-s-isotope span.cm-keyword{color:red}.cm-s-isotope span.cm-string{color:#f09}.cm-s-isotope span.cm-variable{color:#3f0}.cm-s-isotope span.cm-variable-2{color:#06f}.cm-s-isotope span.cm-def{color:#f90}.cm-s-isotope span.cm-error{background:red;color:silver}.cm-s-isotope span.cm-bracket{color:#e0e0e0}.cm-s-isotope span.cm-tag{color:red}.cm-s-isotope span.cm-link{color:#c0f}.cm-s-isotope .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-isotope .CodeMirror-activeline-background{background:#202020}.cm-s-lesser-dark{line-height:1.3em}.cm-s-lesser-dark.CodeMirror{background:#262626;color:#ebefe7;text-shadow:0 -1px 1px #262626}.cm-s-lesser-dark div.CodeMirror-selected{background:#45443b}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line>span::selection,.cm-s-lesser-dark .CodeMirror-line>span>span::selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-lesser-dark pre{padding:0 8px}.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket{color:#7efc7e}.cm-s-lesser-dark .CodeMirror-gutters{background:#262626;border-right:1px solid #aaa}.cm-s-lesser-dark .CodeMirror-guttermarker{color:#599eff}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle,.cm-s-lesser-dark .CodeMirror-linenumber{color:#777}.cm-s-lesser-dark span.cm-header{color:#a0a}.cm-s-lesser-dark span.cm-quote{color:#090}.cm-s-lesser-dark span.cm-keyword{color:#599eff}.cm-s-lesser-dark span.cm-atom{color:#c2b470}.cm-s-lesser-dark span.cm-number{color:#b35e4d}.cm-s-lesser-dark span.cm-def{color:#fff}.cm-s-lesser-dark span.cm-variable{color:#d9bf8c}.cm-s-lesser-dark span.cm-variable-2{color:#669199}.cm-s-lesser-dark span.cm-variable-3{color:#fff}.cm-s-lesser-dark span.cm-operator,.cm-s-lesser-dark span.cm-property{color:#92a75c}.cm-s-lesser-dark span.cm-comment{color:#666}.cm-s-lesser-dark span.cm-string{color:#bcd279}.cm-s-lesser-dark span.cm-string-2{color:#f50}.cm-s-lesser-dark span.cm-meta{color:#738c73}.cm-s-lesser-dark span.cm-qualifier{color:#555}.cm-s-lesser-dark span.cm-builtin{color:#ff9e59}.cm-s-lesser-dark span.cm-bracket{color:#ebefe7}.cm-s-lesser-dark span.cm-tag{color:#669199}.cm-s-lesser-dark span.cm-attribute{color:#00c}.cm-s-lesser-dark span.cm-hr{color:#999}.cm-s-lesser-dark span.cm-link{color:#00c}.cm-s-lesser-dark span.cm-error{color:#9d1e15}.cm-s-lesser-dark .CodeMirror-activeline-background{background:#3c3a3a}.cm-s-lesser-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-liquibyte.CodeMirror{background-color:#000;color:#fff;line-height:1.2em;font-size:1em}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight{text-decoration:underline;-webkit-text-decoration-color:#0f0;text-decoration-color:#0f0;-webkit-text-decoration-style:wavy;text-decoration-style:wavy}.cm-s-liquibyte .cm-trailingspace{text-decoration:line-through;-webkit-text-decoration-color:red;text-decoration-color:red;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .cm-tab{text-decoration:line-through;-webkit-text-decoration-color:#404040;text-decoration-color:#404040;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .CodeMirror-gutters{background-color:#262626;border-right:1px solid #505050;padding-right:.8em}.cm-s-liquibyte .CodeMirror-gutter-elt div{font-size:1.2em}.cm-s-liquibyte .CodeMirror-linenumber{color:#606060;padding-left:0}.cm-s-liquibyte .CodeMirror-cursor{border-left:1px solid #eee}.cm-s-liquibyte span.cm-comment{color:green}.cm-s-liquibyte span.cm-def{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-keyword{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-builtin{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-variable{color:#5967ff;font-weight:700}.cm-s-liquibyte span.cm-string{color:#ff8000}.cm-s-liquibyte span.cm-number{color:#0f0;font-weight:700}.cm-s-liquibyte span.cm-atom{color:#bf3030;font-weight:700}.cm-s-liquibyte span.cm-variable-2{color:#007f7f;font-weight:700}.cm-s-liquibyte span.cm-variable-3{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-property{color:#999;font-weight:700}.cm-s-liquibyte span.cm-operator{color:#fff}.cm-s-liquibyte span.cm-meta{color:#0f0}.cm-s-liquibyte span.cm-qualifier{color:#fff700;font-weight:700}.cm-s-liquibyte span.cm-bracket{color:#cc7}.cm-s-liquibyte span.cm-tag{color:#ff0;font-weight:700}.cm-s-liquibyte span.cm-attribute{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-error{color:red}.cm-s-liquibyte div.CodeMirror-selected{background-color:rgba(255,0,0,.25)}.cm-s-liquibyte span.cm-compilation{background-color:hsla(0,0%,100%,.12)}.cm-s-liquibyte .CodeMirror-activeline-background{background-color:rgba(0,255,0,.15)}.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket{color:#0f0;font-weight:700}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket{color:red;font-weight:700}.CodeMirror-matchingtag{background-color:rgba(150,255,0,.3)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,div.CodeMirror-simplescroll-vertical div:hover{background-color:rgba(80,80,80,.7)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,div.CodeMirror-simplescroll-vertical div{background-color:rgba(80,80,80,.3);border:1px solid #404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{border-top:1px solid #404040;border-bottom:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div{border-left:1px solid #404040;border-right:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical{background-color:#262626}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal{background-color:#262626;border-top:1px solid #404040}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div{background-color:#404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div{border:1px solid #404040}.cm-s-material.CodeMirror{background-color:#263238;color:#e9eded}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-activeline-background{background:transparent}.cm-s-material .cm-keyword{color:#c792ea}.cm-s-material .cm-operator{color:#e9eded}.cm-s-material .cm-variable-2{color:#80cbc4}.cm-s-material .cm-variable-3{color:#82b1ff}.cm-s-material .cm-builtin{color:#decb6b}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#f77669}.cm-s-material .cm-def{color:#e9eded}.cm-s-material .cm-string{color:#c3e88d}.cm-s-material .cm-string-2{color:#80cbc4}.cm-s-material .cm-comment{color:#546e7a}.cm-s-material .cm-variable{color:#82b1ff}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80cbc4}.cm-s-material .cm-attribute{color:#ffcb6b}.cm-s-material .cm-property{color:#80cbae}.cm-s-material .cm-qualifier,.cm-s-material .cm-variable-3{color:#decb6b}.cm-s-material .cm-tag{color:#ff5370}.cm-s-material .cm-error{color:#fff;background-color:#ec5f67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-mbo.CodeMirror{background:#2c2c2c;color:#ffffec}.cm-s-mbo div.CodeMirror-selected{background:#716c62}.cm-s-mbo .CodeMirror-line::selection,.cm-s-mbo .CodeMirror-line>span::selection,.cm-s-mbo .CodeMirror-line>span>span::selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-line::-moz-selection,.cm-s-mbo .CodeMirror-line>span::-moz-selection,.cm-s-mbo .CodeMirror-line>span>span::-moz-selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-gutters{background:#4e4e4e;border-right:0}.cm-s-mbo .CodeMirror-guttermarker{color:#fff}.cm-s-mbo .CodeMirror-guttermarker-subtle{color:grey}.cm-s-mbo .CodeMirror-linenumber{color:#dadada}.cm-s-mbo .CodeMirror-cursor{border-left:1px solid #ffffec}.cm-s-mbo span.cm-comment{color:#95958a}.cm-s-mbo span.cm-atom,.cm-s-mbo span.cm-number{color:#00a8c6}.cm-s-mbo span.cm-attribute,.cm-s-mbo span.cm-property{color:#9ddfe9}.cm-s-mbo span.cm-keyword{color:#ffb928}.cm-s-mbo span.cm-string{color:#ffcf6c}.cm-s-mbo span.cm-string.cm-property,.cm-s-mbo span.cm-variable{color:#ffffec}.cm-s-mbo span.cm-variable-2{color:#00a8c6}.cm-s-mbo span.cm-def{color:#ffffec}.cm-s-mbo span.cm-bracket{color:#fffffc;font-weight:700}.cm-s-mbo span.cm-tag{color:#9ddfe9}.cm-s-mbo span.cm-link{color:#f54b07}.cm-s-mbo span.cm-error{border-bottom:#636363;color:#ffffec}.cm-s-mbo span.cm-qualifier{color:#ffffec}.cm-s-mbo .CodeMirror-activeline-background{background:#494b41}.cm-s-mbo .CodeMirror-matchingbracket{color:#ffb928!important}.cm-s-mbo .CodeMirror-matchingtag{background:hsla(0,0%,100%,.37)}.cm-s-mdn-like.CodeMirror{color:#999;background-color:#fff}.cm-s-mdn-like div.CodeMirror-selected{background:#cfc}.cm-s-mdn-like .CodeMirror-line::selection,.cm-s-mdn-like .CodeMirror-line>span::selection,.cm-s-mdn-like .CodeMirror-line>span>span::selection{background:#cfc}.cm-s-mdn-like .CodeMirror-line::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span>span::-moz-selection{background:#cfc}.cm-s-mdn-like .CodeMirror-gutters{background:#f8f8f8;border-left:6px solid rgba(0,83,159,.65);color:#333}.cm-s-mdn-like .CodeMirror-linenumber{color:#aaa;padding-left:8px}.cm-s-mdn-like .CodeMirror-cursor{border-left:2px solid #222}.cm-s-mdn-like .cm-keyword{color:#6262ff}.cm-s-mdn-like .cm-atom{color:#f90}.cm-s-mdn-like .cm-number{color:#ca7841}.cm-s-mdn-like .cm-def{color:#8da6ce}.cm-s-mdn-like span.cm-tag,.cm-s-mdn-like span.cm-variable-2{color:#690}.cm-s-mdn-like .cm-variable,.cm-s-mdn-like span.cm-def,.cm-s-mdn-like span.cm-variable-3{color:#07a}.cm-s-mdn-like .cm-property{color:#905}.cm-s-mdn-like .cm-qualifier{color:#690}.cm-s-mdn-like .cm-operator{color:#cda869}.cm-s-mdn-like .cm-comment{color:#777;font-weight:400}.cm-s-mdn-like .cm-string{color:#07a;font-style:italic}.cm-s-mdn-like .cm-string-2{color:#bd6b18}.cm-s-mdn-like .cm-meta{color:#000}.cm-s-mdn-like .cm-builtin{color:#9b7536}.cm-s-mdn-like .cm-tag{color:#997643}.cm-s-mdn-like .cm-attribute{color:#d6bb6d}.cm-s-mdn-like .cm-header{color:#ff6400}.cm-s-mdn-like .cm-hr{color:#aeaeae}.cm-s-mdn-like .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-mdn-like .cm-error{border-bottom:1px solid red}div.cm-s-mdn-like .CodeMirror-activeline-background{background:#efefff}div.cm-s-mdn-like span.CodeMirror-matchingbracket{outline:1px solid grey;color:inherit}.cm-s-mdn-like.CodeMirror{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=)}.cm-s-midnight span.CodeMirror-matchhighlight{background:#494949}.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight{background:#314d67!important}.cm-s-midnight .CodeMirror-activeline-background{background:#253540}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff;border-top:1px solid #000;border-bottom:1px solid #000}.cm-s-midnight div.CodeMirror-selected{background:#314d67}.cm-s-midnight .CodeMirror-line::selection,.cm-s-midnight .CodeMirror-line>span::selection,.cm-s-midnight .CodeMirror-line>span>span::selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-line::-moz-selection,.cm-s-midnight .CodeMirror-line>span::-moz-selection,.cm-s-midnight .CodeMirror-line>span>span::-moz-selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-guttermarker{color:#fff}.cm-s-midnight .CodeMirror-guttermarker-subtle,.cm-s-midnight .CodeMirror-linenumber{color:#d0d0d0}.cm-s-midnight .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-midnight span.cm-comment{color:#428bdd}.cm-s-midnight span.cm-atom{color:#ae81ff}.cm-s-midnight span.cm-number{color:#d1edff}.cm-s-midnight span.cm-attribute,.cm-s-midnight span.cm-property{color:#a6e22e}.cm-s-midnight span.cm-keyword{color:#e83737}.cm-s-midnight span.cm-string{color:#1dc116}.cm-s-midnight span.cm-variable,.cm-s-midnight span.cm-variable-2{color:#ffaa3e}.cm-s-midnight span.cm-def{color:#4dd}.cm-s-midnight span.cm-bracket{color:#d1edff}.cm-s-midnight span.cm-tag{color:#449}.cm-s-midnight span.cm-link{color:#ae81ff}.cm-s-midnight span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-midnight .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai div.CodeMirror-selected{background:#49483e}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line>span::selection,.cm-s-monokai .CodeMirror-line>span>span::selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line>span::-moz-selection,.cm-s-monokai .CodeMirror-line>span>span::-moz-selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-guttermarker{color:#fff}.cm-s-monokai .CodeMirror-guttermarker-subtle,.cm-s-monokai .CodeMirror-linenumber{color:#d0d0d0}.cm-s-monokai .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-monokai span.cm-comment{color:#75715e}.cm-s-monokai span.cm-atom,.cm-s-monokai span.cm-number{color:#ae81ff}.cm-s-monokai span.cm-attribute,.cm-s-monokai span.cm-property{color:#a6e22e}.cm-s-monokai span.cm-keyword{color:#f92672}.cm-s-monokai span.cm-builtin{color:#66d9ef}.cm-s-monokai span.cm-string{color:#e6db74}.cm-s-monokai span.cm-variable{color:#f8f8f2}.cm-s-monokai span.cm-variable-2{color:#9effff}.cm-s-monokai span.cm-variable-3{color:#66d9ef}.cm-s-monokai span.cm-def{color:#fd971f}.cm-s-monokai span.cm-bracket{color:#f8f8f2}.cm-s-monokai span.cm-tag{color:#f92672}.cm-s-monokai span.cm-header,.cm-s-monokai span.cm-link{color:#ae81ff}.cm-s-monokai span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-monokai .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-neat span.cm-comment{color:#a86}.cm-s-neat span.cm-keyword{line-height:1em;font-weight:700;color:blue}.cm-s-neat span.cm-string{color:#a22}.cm-s-neat span.cm-builtin{line-height:1em;font-weight:700;color:#077}.cm-s-neat span.cm-special{line-height:1em;font-weight:700;color:#0aa}.cm-s-neat span.cm-variable{color:#000}.cm-s-neat span.cm-atom,.cm-s-neat span.cm-number{color:#3a3}.cm-s-neat span.cm-meta{color:#555}.cm-s-neat span.cm-link{color:#3a3}.cm-s-neat .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-neat .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-neo.CodeMirror{background-color:#fff;color:#2e383c;line-height:1.4375}.cm-s-neo .cm-comment{color:#75787b}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property{color:#1d75b3}.cm-s-neo .cm-atom,.cm-s-neo .cm-number{color:#75438a}.cm-s-neo .cm-node,.cm-s-neo .cm-tag{color:#9c3328}.cm-s-neo .cm-string{color:#b35e14}.cm-s-neo .cm-qualifier,.cm-s-neo .cm-variable{color:#047d65}.cm-s-neo pre{padding:0}.cm-s-neo .CodeMirror-gutters{border:none;border-right:10px solid transparent;background-color:transparent}.cm-s-neo .CodeMirror-linenumber{padding:0;color:#e0e2e5}.cm-s-neo .CodeMirror-guttermarker{color:#1d75b3}.cm-s-neo .CodeMirror-guttermarker-subtle{color:#e0e2e5}.cm-s-neo .CodeMirror-cursor{width:auto;border:0;background:hsla(223,4%,62%,.37);z-index:1}.cm-s-night.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-night div.CodeMirror-selected{background:#447}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line>span::selection,.cm-s-night .CodeMirror-line>span>span::selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line>span::-moz-selection,.cm-s-night .CodeMirror-line>span>span::-moz-selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-night .CodeMirror-guttermarker{color:#fff}.cm-s-night .CodeMirror-guttermarker-subtle{color:#bbb}.cm-s-night .CodeMirror-linenumber{color:#f8f8f8}.cm-s-night .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-night span.cm-comment{color:#8900d1}.cm-s-night span.cm-atom{color:#845dc4}.cm-s-night span.cm-attribute,.cm-s-night span.cm-number{color:#ffd500}.cm-s-night span.cm-keyword{color:#599eff}.cm-s-night span.cm-string{color:#37f14a}.cm-s-night span.cm-meta{color:#7678e2}.cm-s-night span.cm-tag,.cm-s-night span.cm-variable-2{color:#99b2ff}.cm-s-night span.cm-def,.cm-s-night span.cm-variable-3{color:#fff}.cm-s-night span.cm-bracket{color:#8da6ce}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special{color:#ff9e59}.cm-s-night span.cm-link{color:#845dc4}.cm-s-night span.cm-error{color:#9d1e15}.cm-s-night .CodeMirror-activeline-background{background:#1c005a}.cm-s-night .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-panda-syntax{background:#292a2b;color:#e6e6e6;line-height:1.5;font-family:Operator Mono,Source Sans Pro,Menlo,Monaco,Consolas,Courier New,monospace}.cm-s-panda-syntax .CodeMirror-cursor{border-color:#ff2c6d}.cm-s-panda-syntax .CodeMirror-activeline-background{background:rgba(99,123,156,.1)}.cm-s-panda-syntax .CodeMirror-selected{background:#fff}.cm-s-panda-syntax .cm-comment{font-style:italic;color:#676b79}.cm-s-panda-syntax .cm-operator{color:#f3f3f3}.cm-s-panda-syntax .cm-string{color:#19f9d8}.cm-s-panda-syntax .cm-string-2{color:#ffb86c}.cm-s-panda-syntax .cm-tag{color:#ff2c6d}.cm-s-panda-syntax .cm-meta{color:#b084eb}.cm-s-panda-syntax .cm-number{color:#ffb86c}.cm-s-panda-syntax .cm-atom{color:#ff2c6d}.cm-s-panda-syntax .cm-keyword{color:#ff75b5}.cm-s-panda-syntax .cm-variable{color:#ffb86c}.cm-s-panda-syntax .cm-variable-2,.cm-s-panda-syntax .cm-variable-3{color:#ff9ac1}.cm-s-panda-syntax .cm-def{color:#e6e6e6}.cm-s-panda-syntax .cm-property{color:#f3f3f3}.cm-s-panda-syntax .cm-attribute,.cm-s-panda-syntax .cm-unit{color:#ffb86c}.cm-s-panda-syntax .CodeMirror-matchingbracket{border-bottom:1px dotted #19f9d8;padding-bottom:2px;color:#e6e6e6}.cm-s-panda-syntax .CodeMirror-gutters{background:#292a2b;border-right-color:hsla(0,0%,100%,.1)}.cm-s-panda-syntax .CodeMirror-linenumber{color:#e6e6e6;opacity:.6}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark div.CodeMirror-selected{background:#41323f}.cm-s-paraiso-dark .CodeMirror-line::selection,.cm-s-paraiso-dark .CodeMirror-line>span::selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-line::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-guttermarker{color:#ef6155}.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle,.cm-s-paraiso-dark .CodeMirror-linenumber{color:#776e71}.cm-s-paraiso-dark .CodeMirror-cursor{border-left:1px solid #8d8687}.cm-s-paraiso-dark span.cm-comment{color:#e96ba8}.cm-s-paraiso-dark span.cm-atom,.cm-s-paraiso-dark span.cm-number{color:#815ba4}.cm-s-paraiso-dark span.cm-attribute,.cm-s-paraiso-dark span.cm-property{color:#48b685}.cm-s-paraiso-dark span.cm-keyword{color:#ef6155}.cm-s-paraiso-dark span.cm-string{color:#fec418}.cm-s-paraiso-dark span.cm-variable{color:#48b685}.cm-s-paraiso-dark span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-dark span.cm-def{color:#f99b15}.cm-s-paraiso-dark span.cm-bracket{color:#b9b6b0}.cm-s-paraiso-dark span.cm-tag{color:#ef6155}.cm-s-paraiso-dark span.cm-link{color:#815ba4}.cm-s-paraiso-dark span.cm-error{background:#ef6155;color:#8d8687}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-paraiso-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-paraiso-light.CodeMirror{background:#e7e9db;color:#41323f}.cm-s-paraiso-light div.CodeMirror-selected{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::selection,.cm-s-paraiso-light .CodeMirror-line>span::selection,.cm-s-paraiso-light .CodeMirror-line>span>span::selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span>span::-moz-selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-gutters{background:#e7e9db;border-right:0}.cm-s-paraiso-light .CodeMirror-guttermarker{color:#000}.cm-s-paraiso-light .CodeMirror-guttermarker-subtle,.cm-s-paraiso-light .CodeMirror-linenumber{color:#8d8687}.cm-s-paraiso-light .CodeMirror-cursor{border-left:1px solid #776e71}.cm-s-paraiso-light span.cm-comment{color:#e96ba8}.cm-s-paraiso-light span.cm-atom,.cm-s-paraiso-light span.cm-number{color:#815ba4}.cm-s-paraiso-light span.cm-attribute,.cm-s-paraiso-light span.cm-property{color:#48b685}.cm-s-paraiso-light span.cm-keyword{color:#ef6155}.cm-s-paraiso-light span.cm-string{color:#fec418}.cm-s-paraiso-light span.cm-variable{color:#48b685}.cm-s-paraiso-light span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-light span.cm-def{color:#f99b15}.cm-s-paraiso-light span.cm-bracket{color:#41323f}.cm-s-paraiso-light span.cm-tag{color:#ef6155}.cm-s-paraiso-light span.cm-link{color:#815ba4}.cm-s-paraiso-light span.cm-error{background:#ef6155;color:#776e71}.cm-s-paraiso-light .CodeMirror-activeline-background{background:#cfd1c4}.cm-s-paraiso-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-pastel-on-dark.CodeMirror{background:#2c2827;color:#8f938f;line-height:1.5}.cm-s-pastel-on-dark div.CodeMirror-selected{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line>span::selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-gutters{background:#34302f;border-right:0;padding:0 3px}.cm-s-pastel-on-dark .CodeMirror-guttermarker{color:#fff}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle,.cm-s-pastel-on-dark .CodeMirror-linenumber{color:#8f938f}.cm-s-pastel-on-dark .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-pastel-on-dark span.cm-comment{color:#a6c6ff}.cm-s-pastel-on-dark span.cm-atom{color:#de8e30}.cm-s-pastel-on-dark span.cm-number{color:#ccc}.cm-s-pastel-on-dark span.cm-property{color:#8f938f}.cm-s-pastel-on-dark span.cm-attribute{color:#a6e22e}.cm-s-pastel-on-dark span.cm-keyword{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-string{color:#66a968}.cm-s-pastel-on-dark span.cm-variable{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-variable-2{color:#bebf55}.cm-s-pastel-on-dark span.cm-variable-3{color:#de8e30}.cm-s-pastel-on-dark span.cm-def{color:#757ad8}.cm-s-pastel-on-dark span.cm-bracket{color:#f8f8f2}.cm-s-pastel-on-dark span.cm-tag{color:#c1c144}.cm-s-pastel-on-dark span.cm-link{color:#ae81ff}.cm-s-pastel-on-dark span.cm-builtin,.cm-s-pastel-on-dark span.cm-qualifier{color:#c1c144}.cm-s-pastel-on-dark span.cm-error{background:#757ad8;color:#f8f8f0}.cm-s-pastel-on-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.031)}.cm-s-pastel-on-dark .CodeMirror-matchingbracket{border:1px solid hsla(0,0%,100%,.25);color:#8f938f!important;margin:-1px -1px 0}.cm-s-railscasts.CodeMirror{background:#2b2b2b;color:#f4f1ed}.cm-s-railscasts div.CodeMirror-selected{background:#272935!important}.cm-s-railscasts .CodeMirror-gutters{background:#2b2b2b;border-right:0}.cm-s-railscasts .CodeMirror-linenumber{color:#5a647e}.cm-s-railscasts .CodeMirror-cursor{border-left:1px solid #d4cfc9!important}.cm-s-railscasts span.cm-comment{color:#bc9458}.cm-s-railscasts span.cm-atom,.cm-s-railscasts span.cm-number{color:#b6b3eb}.cm-s-railscasts span.cm-attribute,.cm-s-railscasts span.cm-property{color:#a5c261}.cm-s-railscasts span.cm-keyword{color:#da4939}.cm-s-railscasts span.cm-string{color:#ffc66d}.cm-s-railscasts span.cm-variable{color:#a5c261}.cm-s-railscasts span.cm-variable-2{color:#6d9cbe}.cm-s-railscasts span.cm-def{color:#cc7833}.cm-s-railscasts span.cm-error{background:#da4939;color:#d4cfc9}.cm-s-railscasts span.cm-bracket{color:#f4f1ed}.cm-s-railscasts span.cm-tag{color:#da4939}.cm-s-railscasts span.cm-link{color:#b6b3eb}.cm-s-railscasts .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-railscasts .CodeMirror-activeline-background{background:#303040}.cm-s-rubyblue.CodeMirror{background:#112435;color:#fff}.cm-s-rubyblue div.CodeMirror-selected{background:#38566f}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line>span::selection,.cm-s-rubyblue .CodeMirror-line>span>span::selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span>span::-moz-selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-gutters{background:#1f4661;border-right:7px solid #3e7087}.cm-s-rubyblue .CodeMirror-guttermarker{color:#fff}.cm-s-rubyblue .CodeMirror-guttermarker-subtle{color:#3e7087}.cm-s-rubyblue .CodeMirror-linenumber{color:#fff}.cm-s-rubyblue .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-rubyblue span.cm-comment{color:#999;font-style:italic;line-height:1em}.cm-s-rubyblue span.cm-atom{color:#f4c20b}.cm-s-rubyblue span.cm-attribute,.cm-s-rubyblue span.cm-number{color:#82c6e0}.cm-s-rubyblue span.cm-keyword{color:#f0f}.cm-s-rubyblue span.cm-string{color:#f08047}.cm-s-rubyblue span.cm-meta{color:#f0f}.cm-s-rubyblue span.cm-tag,.cm-s-rubyblue span.cm-variable-2{color:#7bd827}.cm-s-rubyblue span.cm-def,.cm-s-rubyblue span.cm-variable-3{color:#fff}.cm-s-rubyblue span.cm-bracket{color:#f0f}.cm-s-rubyblue span.cm-link{color:#f4c20b}.cm-s-rubyblue span.CodeMirror-matchingbracket{color:#f0f!important}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special{color:#ff9d00}.cm-s-rubyblue span.cm-error{color:#af2018}.cm-s-rubyblue .CodeMirror-activeline-background{background:#173047}.cm-s-seti.CodeMirror{background-color:#151718!important;color:#cfd2d1!important;border:none}.cm-s-seti .CodeMirror-gutters{color:#404b53;background-color:#0e1112;border:none}.cm-s-seti .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-seti .CodeMirror-linenumber{color:#6d8a88}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line>span::selection,.cm-s-seti .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line>span::-moz-selection,.cm-s-seti .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-seti span.cm-comment{color:#41535b}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2{color:#55b5db}.cm-s-seti span.cm-number{color:#cd3f45}.cm-s-seti span.cm-variable{color:#55b5db}.cm-s-seti span.cm-variable-2{color:#a074c4}.cm-s-seti span.cm-def{color:#55b5db}.cm-s-seti span.cm-keyword{color:#ff79c6}.cm-s-seti span.cm-operator{color:#9fca56}.cm-s-seti span.cm-keyword{color:#e6cd69}.cm-s-seti span.cm-atom{color:#cd3f45}.cm-s-seti span.cm-meta,.cm-s-seti span.cm-tag{color:#55b5db}.cm-s-seti span.cm-attribute,.cm-s-seti span.cm-qualifier{color:#9fca56}.cm-s-seti span.cm-property{color:#a074c4}.cm-s-seti span.cm-builtin,.cm-s-seti span.cm-variable-3{color:#9fca56}.cm-s-seti .CodeMirror-activeline-background{background:#101213}.cm-s-seti .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.solarized.base03{color:#002b36}.solarized.base02{color:#073642}.solarized.base01{color:#586e75}.solarized.base00{color:#657b83}.solarized.base0{color:#839496}.solarized.base1{color:#93a1a1}.solarized.base2{color:#eee8d5}.solarized.base3{color:#fdf6e3}.solarized.solar-yellow{color:#b58900}.solarized.solar-orange{color:#cb4b16}.solarized.solar-red{color:#dc322f}.solarized.solar-magenta{color:#d33682}.solarized.solar-violet{color:#6c71c4}.solarized.solar-blue{color:#268bd2}.solarized.solar-cyan{color:#2aa198}.solarized.solar-green{color:#859900}.cm-s-solarized{line-height:1.45em;color-profile:sRGB;rendering-intent:auto}.cm-s-solarized.cm-s-dark{color:#839496;background-color:#002b36;text-shadow:#002b36 0 1px}.cm-s-solarized.cm-s-light{background-color:#fdf6e3;color:#657b83;text-shadow:#eee8d5 0 1px}.cm-s-solarized .CodeMirror-widget{text-shadow:none}.cm-s-solarized .cm-header{color:#586e75}.cm-s-solarized .cm-quote{color:#93a1a1}.cm-s-solarized .cm-keyword{color:#cb4b16}.cm-s-solarized .cm-atom,.cm-s-solarized .cm-number{color:#d33682}.cm-s-solarized .cm-def{color:#2aa198}.cm-s-solarized .cm-variable{color:#839496}.cm-s-solarized .cm-variable-2{color:#b58900}.cm-s-solarized .cm-variable-3{color:#6c71c4}.cm-s-solarized .cm-property{color:#2aa198}.cm-s-solarized .cm-operator{color:#6c71c4}.cm-s-solarized .cm-comment{color:#586e75;font-style:italic}.cm-s-solarized .cm-string{color:#859900}.cm-s-solarized .cm-string-2{color:#b58900}.cm-s-solarized .cm-meta{color:#859900}.cm-s-solarized .cm-qualifier{color:#b58900}.cm-s-solarized .cm-builtin{color:#d33682}.cm-s-solarized .cm-bracket{color:#cb4b16}.cm-s-solarized .CodeMirror-matchingbracket{color:#859900}.cm-s-solarized .CodeMirror-nonmatchingbracket{color:#dc322f}.cm-s-solarized .cm-tag{color:#93a1a1}.cm-s-solarized .cm-attribute{color:#2aa198}.cm-s-solarized .cm-hr{color:transparent;border-top:1px solid #586e75;display:block}.cm-s-solarized .cm-link{color:#93a1a1;cursor:pointer}.cm-s-solarized .cm-special{color:#6c71c4}.cm-s-solarized .cm-em{color:#999;text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-solarized .cm-strong{color:#eee}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar{color:#586e75;border-bottom:1px dotted #dc322f}.cm-s-solarized.cm-s-dark div.CodeMirror-selected{background:#073642}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-dark.CodeMirror ::selection{background:rgba(7,54,66,.99)}.cm-s-dark .CodeMirror-line>span::-moz-selection,.cm-s-dark .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-light div.CodeMirror-selected{background:#eee8d5}.cm-s-light .CodeMirror-line>span::-moz-selection,.cm-s-light .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-light .CodeMirror-line>span::selection,.cm-s-light .CodeMirror-line>span>span::selection,.cm-s-solarized.cm-s-light .CodeMirror-line::selection{background:#eee8d5}.cm-s-ligh .CodeMirror-line>span::-moz-selection,.cm-s-ligh .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-solarized.CodeMirror{box-shadow:inset 7px 0 12px -6px #000}.cm-s-solarized .CodeMirror-gutters{border-right:0}.cm-s-solarized.cm-s-dark .CodeMirror-gutters{background-color:#073642}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber{color:#586e75;text-shadow:#021014 0 -1px}.cm-s-solarized.cm-s-light .CodeMirror-gutters{background-color:#eee8d5}.cm-s-solarized.cm-s-light .CodeMirror-linenumber{color:#839496}.cm-s-solarized .CodeMirror-linenumber{padding:0 5px}.cm-s-solarized .CodeMirror-guttermarker-subtle{color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker{color:#ddd}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker{color:#cb4b16}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text{color:#586e75}.cm-s-solarized .CodeMirror-cursor{border-left:1px solid #819090}.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor{background:#7e7}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor{background-color:#7e7}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor{background:#586e75}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor{background-color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.06)}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background{background:rgba(0,0,0,.06)}.cm-s-the-matrix.CodeMirror{background:#000;color:#0f0}.cm-s-the-matrix div.CodeMirror-selected{background:#2d2d2d}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line>span::selection,.cm-s-the-matrix .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-gutters{background:#060;border-right:2px solid #0f0}.cm-s-the-matrix .CodeMirror-guttermarker{color:#0f0}.cm-s-the-matrix .CodeMirror-guttermarker-subtle,.cm-s-the-matrix .CodeMirror-linenumber{color:#fff}.cm-s-the-matrix .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-the-matrix span.cm-keyword{color:#008803;font-weight:700}.cm-s-the-matrix span.cm-atom{color:#3ff}.cm-s-the-matrix span.cm-number{color:#ffb94f}.cm-s-the-matrix span.cm-def{color:#99c}.cm-s-the-matrix span.cm-variable{color:#f6c}.cm-s-the-matrix span.cm-variable-2{color:#c6f}.cm-s-the-matrix span.cm-variable-3{color:#96f}.cm-s-the-matrix span.cm-property{color:#62ffa0}.cm-s-the-matrix span.cm-operator{color:#999}.cm-s-the-matrix span.cm-comment{color:#ccc}.cm-s-the-matrix span.cm-string{color:#39c}.cm-s-the-matrix span.cm-meta{color:#c9f}.cm-s-the-matrix span.cm-qualifier{color:#fff700}.cm-s-the-matrix span.cm-builtin{color:#30a}.cm-s-the-matrix span.cm-bracket{color:#cc7}.cm-s-the-matrix span.cm-tag{color:#ffbd40}.cm-s-the-matrix span.cm-attribute{color:#fff700}.cm-s-the-matrix span.cm-error{color:red}.cm-s-the-matrix .CodeMirror-activeline-background{background:#040}.cm-s-tomorrow-night-bright.CodeMirror{background:#000;color:#eaeaea}.cm-s-tomorrow-night-bright div.CodeMirror-selected{background:#424242}.cm-s-tomorrow-night-bright .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker{color:#e78c45}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-bright .CodeMirror-linenumber{color:#424242}.cm-s-tomorrow-night-bright .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-bright span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-bright span.cm-atom,.cm-s-tomorrow-night-bright span.cm-number{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-attribute,.cm-s-tomorrow-night-bright span.cm-property{color:#9c9}.cm-s-tomorrow-night-bright span.cm-keyword{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-string{color:#e7c547}.cm-s-tomorrow-night-bright span.cm-variable{color:#b9ca4a}.cm-s-tomorrow-night-bright span.cm-variable-2{color:#7aa6da}.cm-s-tomorrow-night-bright span.cm-def{color:#e78c45}.cm-s-tomorrow-night-bright span.cm-bracket{color:#eaeaea}.cm-s-tomorrow-night-bright span.cm-tag{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-link{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-error{background:#d54e53;color:#6a6a6a}.cm-s-tomorrow-night-bright .CodeMirror-activeline-background{background:#2a2a2a}.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-tomorrow-night-eighties.CodeMirror{background:#000;color:#ccc}.cm-s-tomorrow-night-eighties div.CodeMirror-selected{background:#2d2d2d}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker{color:#f2777a}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber{color:#515151}.cm-s-tomorrow-night-eighties .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-eighties span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-eighties span.cm-atom,.cm-s-tomorrow-night-eighties span.cm-number{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-attribute,.cm-s-tomorrow-night-eighties span.cm-property{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-keyword{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-string{color:#fc6}.cm-s-tomorrow-night-eighties span.cm-variable{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-variable-2{color:#69c}.cm-s-tomorrow-night-eighties span.cm-def{color:#f99157}.cm-s-tomorrow-night-eighties span.cm-bracket{color:#ccc}.cm-s-tomorrow-night-eighties span.cm-tag{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-link{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-error{background:#f2777a;color:#6a6a6a}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background{background:#343600}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-ttcn .cm-quote{color:#090}.cm-s-ttcn .cm-header,.cm-strong{font-weight:700}.cm-s-ttcn .cm-header{color:#00f;font-weight:700}.cm-s-ttcn .cm-atom{color:#219}.cm-s-ttcn .cm-attribute{color:#00c}.cm-s-ttcn .cm-bracket{color:#997}.cm-s-ttcn .cm-comment{color:#333}.cm-s-ttcn .cm-def{color:#00f}.cm-s-ttcn .cm-em{font-style:italic}.cm-s-ttcn .cm-error{color:red}.cm-s-ttcn .cm-hr{color:#999}.cm-s-ttcn .cm-keyword{font-weight:700}.cm-s-ttcn .cm-link{color:#00c;text-decoration:underline}.cm-s-ttcn .cm-meta{color:#555}.cm-s-ttcn .cm-negative{color:#d44}.cm-s-ttcn .cm-positive{color:#292}.cm-s-ttcn .cm-qualifier{color:#555}.cm-s-ttcn .cm-strikethrough{text-decoration:line-through}.cm-s-ttcn .cm-string{color:#006400}.cm-s-ttcn .cm-string-2{color:#f50}.cm-s-ttcn .cm-strong{font-weight:700}.cm-s-ttcn .cm-tag{color:#170}.cm-s-ttcn .cm-variable{color:#8b2252}.cm-s-ttcn .cm-variable-2{color:#05a}.cm-s-ttcn .cm-variable-3{color:#085}.cm-s-ttcn .cm-invalidchar{color:red}.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes{color:#27408b}.cm-s-ttcn .cm-cmipVerbs{color:#8b2252}.cm-s-ttcn .cm-modifier{color:#d2691e}.cm-s-ttcn .cm-status{color:#8b4545}.cm-s-ttcn .cm-storage{color:#a020f0}.cm-s-ttcn .cm-tags{color:#006400}.cm-s-ttcn .cm-externalCommands{color:#8b4545;font-weight:700}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle{color:#2e8b57;font-weight:700}.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts{color:#006400}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps{color:#00f}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros{color:#27408b}.cm-s-ttcn .cm-types{color:brown;font-weight:700}.cm-s-ttcn .cm-visibilityModifiers{font-weight:700}.cm-s-twilight.CodeMirror{background:#141414;color:#f7f7f7}.cm-s-twilight div.CodeMirror-selected{background:#323232}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line>span::selection,.cm-s-twilight .CodeMirror-line>span>span::selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line>span::-moz-selection,.cm-s-twilight .CodeMirror-line>span>span::-moz-selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-gutters{background:#222;border-right:1px solid #aaa}.cm-s-twilight .CodeMirror-guttermarker{color:#fff}.cm-s-twilight .CodeMirror-guttermarker-subtle,.cm-s-twilight .CodeMirror-linenumber{color:#aaa}.cm-s-twilight .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-twilight .cm-keyword{color:#f9ee98}.cm-s-twilight .cm-atom{color:#fc0}.cm-s-twilight .cm-number{color:#ca7841}.cm-s-twilight .cm-def{color:#8da6ce}.cm-s-twilight span.cm-def,.cm-s-twilight span.cm-tag,.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-variable-3{color:#607392}.cm-s-twilight .cm-operator{color:#cda869}.cm-s-twilight .cm-comment{color:#777;font-style:italic;font-weight:400}.cm-s-twilight .cm-string{color:#8f9d6a;font-style:italic}.cm-s-twilight .cm-string-2{color:#bd6b18}.cm-s-twilight .cm-meta{background-color:#141414;color:#f7f7f7}.cm-s-twilight .cm-builtin{color:#cda869}.cm-s-twilight .cm-tag{color:#997643}.cm-s-twilight .cm-attribute{color:#d6bb6d}.cm-s-twilight .cm-header{color:#ff6400}.cm-s-twilight .cm-hr{color:#aeaeae}.cm-s-twilight .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-twilight .cm-error{border-bottom:1px solid red}.cm-s-twilight .CodeMirror-activeline-background{background:#27282e}.cm-s-twilight .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-vibrant-ink.CodeMirror{background:#000;color:#fff}.cm-s-vibrant-ink div.CodeMirror-selected{background:#35493c}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line>span::selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::-moz-selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-vibrant-ink .CodeMirror-guttermarker{color:#fff}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle,.cm-s-vibrant-ink .CodeMirror-linenumber{color:#d0d0d0}.cm-s-vibrant-ink .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-vibrant-ink .cm-keyword{color:#cc7832}.cm-s-vibrant-ink .cm-atom{color:#fc0}.cm-s-vibrant-ink .cm-number{color:#ffee98}.cm-s-vibrant-ink .cm-def{color:#8da6ce}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def,.cm-s-vibrant span.cm-tag{color:#ffc66d}.cm-s-vibrant-ink .cm-operator{color:#888}.cm-s-vibrant-ink .cm-comment{color:gray;font-weight:700}.cm-s-vibrant-ink .cm-string{color:#a5c25c}.cm-s-vibrant-ink .cm-string-2{color:red}.cm-s-vibrant-ink .cm-meta{color:#d8fa3c}.cm-s-vibrant-ink .cm-attribute,.cm-s-vibrant-ink .cm-builtin,.cm-s-vibrant-ink .cm-tag{color:#8da6ce}.cm-s-vibrant-ink .cm-header{color:#ff6400}.cm-s-vibrant-ink .cm-hr{color:#aeaeae}.cm-s-vibrant-ink .cm-link{color:blue}.cm-s-vibrant-ink .cm-error{border-bottom:1px solid red}.cm-s-vibrant-ink .CodeMirror-activeline-background{background:#27282e}.cm-s-vibrant-ink .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-dark.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-xq-dark div.CodeMirror-selected{background:#27007a}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line>span::selection,.cm-s-xq-dark .CodeMirror-line>span>span::selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-xq-dark .CodeMirror-guttermarker{color:#ffbd40}.cm-s-xq-dark .CodeMirror-guttermarker-subtle,.cm-s-xq-dark .CodeMirror-linenumber{color:#f8f8f8}.cm-s-xq-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-xq-dark span.cm-keyword{color:#ffbd40}.cm-s-xq-dark span.cm-atom{color:#6c8cd5}.cm-s-xq-dark span.cm-number{color:#164}.cm-s-xq-dark span.cm-def{color:#fff;text-decoration:underline}.cm-s-xq-dark span.cm-variable{color:#fff}.cm-s-xq-dark span.cm-variable-2{color:#eee}.cm-s-xq-dark span.cm-variable-3{color:#ddd}.cm-s-xq-dark span.cm-comment{color:gray}.cm-s-xq-dark span.cm-string{color:#9fee00}.cm-s-xq-dark span.cm-meta{color:#ff0}.cm-s-xq-dark span.cm-qualifier{color:#fff700}.cm-s-xq-dark span.cm-builtin{color:#30a}.cm-s-xq-dark span.cm-bracket{color:#cc7}.cm-s-xq-dark span.cm-tag{color:#ffbd40}.cm-s-xq-dark span.cm-attribute{color:#fff700}.cm-s-xq-dark span.cm-error{color:red}.cm-s-xq-dark .CodeMirror-activeline-background{background:#27282e}.cm-s-xq-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-light span.cm-keyword{line-height:1em;font-weight:700;color:#5a5cad}.cm-s-xq-light span.cm-atom{color:#6c8cd5}.cm-s-xq-light span.cm-number{color:#164}.cm-s-xq-light span.cm-def{text-decoration:underline}.cm-s-xq-light span.cm-variable,.cm-s-xq-light span.cm-variable-2,.cm-s-xq-light span.cm-variable-3{color:#000}.cm-s-xq-light span.cm-comment{color:#0080ff;font-style:italic}.cm-s-xq-light span.cm-string{color:red}.cm-s-xq-light span.cm-meta{color:#ff0}.cm-s-xq-light span.cm-qualifier{color:grey}.cm-s-xq-light span.cm-builtin{color:#7ea656}.cm-s-xq-light span.cm-bracket{color:#cc7}.cm-s-xq-light span.cm-tag{color:#3f7f7f}.cm-s-xq-light span.cm-attribute{color:#7f007f}.cm-s-xq-light span.cm-error{color:red}.cm-s-xq-light .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-xq-light .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important;background:#ff0}.cm-s-yeti.CodeMirror{background-color:#eceae8!important;color:#d1c9c0!important;border:none}.cm-s-yeti .CodeMirror-gutters{color:#adaba6;background-color:#e5e1db;border:none}.cm-s-yeti .CodeMirror-cursor{border-left:thin solid #d1c9c0}.cm-s-yeti .CodeMirror-linenumber{color:#adaba6}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line>span::selection,.cm-s-yeti .CodeMirror-line>span>span::selection{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line>span::-moz-selection,.cm-s-yeti .CodeMirror-line>span>span::-moz-selection{background:#dcd8d2}.cm-s-yeti span.cm-comment{color:#d4c8be}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2{color:#96c0d8}.cm-s-yeti span.cm-number{color:#a074c4}.cm-s-yeti span.cm-variable{color:#55b5db}.cm-s-yeti span.cm-variable-2{color:#a074c4}.cm-s-yeti span.cm-def{color:#55b5db}.cm-s-yeti span.cm-keyword,.cm-s-yeti span.cm-operator{color:#9fb96e}.cm-s-yeti span.cm-atom{color:#a074c4}.cm-s-yeti span.cm-meta,.cm-s-yeti span.cm-tag{color:#96c0d8}.cm-s-yeti span.cm-attribute{color:#9fb96e}.cm-s-yeti span.cm-qualifier{color:#96c0d8}.cm-s-yeti span.cm-builtin,.cm-s-yeti span.cm-property{color:#a074c4}.cm-s-yeti span.cm-variable-3{color:#96c0d8}.cm-s-yeti .CodeMirror-activeline-background{background:#e7e4e0}.cm-s-yeti .CodeMirror-matchingbracket{text-decoration:underline}.cm-s-zenburn .CodeMirror-gutters{background:#3f3f3f!important}.cm-s-zenburn .CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded{color:#999}.cm-s-zenburn .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-zenburn{background-color:#3f3f3f;color:#dcdccc}.cm-s-zenburn span.cm-builtin{color:#dcdccc;font-weight:700}.cm-s-zenburn span.cm-comment{color:#7f9f7f}.cm-s-zenburn span.cm-keyword{color:#f0dfaf;font-weight:700}.cm-s-zenburn span.cm-atom{color:#bfebbf}.cm-s-zenburn span.cm-def{color:#dcdccc}.cm-s-zenburn span.cm-variable{color:#dfaf8f}.cm-s-zenburn span.cm-variable-2{color:#dcdccc}.cm-s-zenburn span.cm-string,.cm-s-zenburn span.cm-string-2{color:#cc9393}.cm-s-zenburn span.cm-number{color:#dcdccc}.cm-s-zenburn span.cm-tag{color:#93e0e3}.cm-s-zenburn span.cm-attribute,.cm-s-zenburn span.cm-property{color:#dfaf8f}.cm-s-zenburn span.cm-qualifier{color:#7cb8bb}.cm-s-zenburn span.cm-meta{color:#f0dfaf}.cm-s-zenburn span.cm-header,.cm-s-zenburn span.cm-operator{color:#f0efd0}.cm-s-zenburn span.CodeMirror-matchingbracket{box-sizing:border-box;background:transparent;border-bottom:1px solid}.cm-s-zenburn span.CodeMirror-nonmatchingbracket{border-bottom:1px solid;background:none}.cm-s-zenburn .CodeMirror-activeline,.cm-s-zenburn .CodeMirror-activeline-background{background:#000}.cm-s-zenburn div.CodeMirror-selected{background:#545454}.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected{background:#4f4f4f}.CodeMirror-foldmarker{color:blue;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.CodeMirror{font:inherit}.CodeMirror-scroll{font-family:Menlo Regular,Consolas,Monaco,monospace;line-height:150%;position:relative}.CodeMirror-settings{color:#444;height:0;width:100%;z-index:9;text-shadow:none}.CodeMirror-settings__toggle{border-radius:3px;z-index:11;box-sizing:border-box;position:absolute;top:0;right:0;margin:6px;display:block;cursor:pointer}.CodeMirror-settings__toggle:after{content:"\f111";font-family:dashicons;line-height:1em;display:inline-block}.CodeMirror-settings__toggle:before{border:1px solid #ddd;border-radius:3px;z-index:-1;content:"";background-color:#fff;transition:.25s ease;transition-property:transform opacity;position:absolute;top:0;right:0;bottom:0;left:0}.CodeMirror-settings__wrapper{pointer-events:none;visibility:hidden}.CodeMirror-settings__body,.CodeMirror-settings__docked{pointer-events:auto;visibility:visible}.CodeMirror-settings__wrapper{position:absolute;width:calc(100% - 12px);max-height:calc(100% - 12px);top:0;margin:6px;box-sizing:border-box;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.CodeMirror-settings__docked{-ms-flex:0 0 auto;flex:0 0 auto;z-index:10;background-color:#fff;box-sizing:border-box}.CodeMirror-settings__header{border-top-left-radius:3px;border-top-right-radius:3px;border:1px solid #ddd;padding:4px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.CodeMirror-settings__body{-ms-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box;padding:1px 12px;overflow-y:auto;background-color:hsla(0,0%,100%,.93);border-left:1px solid #ddd;border-right:1px solid #ddd}.CodeMirror-settings__footer{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:1px solid #ddd;padding:6px 12px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:justify;justify-content:space-between}.CodeMirror-settings-advanced__description{margin-left:10px;opacity:.6}td.CodeMirror-settings__heading{padding:0;padding-bottom:12px}.CodeMirror-settings__foot-content{margin:0}.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__header,.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__wrapper{transition:.25s ease;transition-property:opacity,transform;transform-origin:top right}.CodeMirror-settings.closed .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.closed .CodeMirror-settings__toggle{opacity:.5}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before,.CodeMirror-settings.closed .CodeMirror-settings__toggle:hover{opacity:1}.CodeMirror-settings.closed .CodeMirror-settings__wrapper{opacity:0;transform:scaleX(0)}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.open .CodeMirror-settings__toggle:after{content:"\f158"}.CodeMirror-settings.open .CodeMirror-settings__toggle:before{opacity:0}.CodeMirror-settings.open .CodeMirror-settings__wrapper{opacity:1;transform:scaleX(1)}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open-advanced .CodeMirror-settings__toggle-advanced:before{content:"less"}.CodeMirror-settings.open-advanced .CodeMirror-settings__header{border-bottom-left-radius:0;border-bottom-right-radius:0}.CodeMirror-settings.open-advanced .CodeMirror-settings__body,.CodeMirror-settings.open-advanced .CodeMirror-settings__footer{visibility:visible;opacity:1;transform:translate(0);transition:visibility 1ms ease,opacity .25s ease 1ms,transform .25s ease 1ms}.CodeMirror-settings__button{position:relative}.CodeMirror-settings__button:active{transform:none!important}.CodeMirror-settings__button input,.CodeMirror-settings__button select{display:block;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-appearance:none;margin:0;padding:0;border:none;height:auto;font-size:0;line-height:0;height:100%!important;width:100%!important;background:none;opacity:0}.CodeMirror-settings__button option{font-size:12px}.CodeMirror-settings__button--select:after{content:"\f140";font-family:dashicons;vertical-align:top;display:inline-block;margin:0 -5px -4px}.CodeMirror-settings__toggle-advanced{cursor:pointer;display:inline-block;line-height:25px;padding:0 4px;vertical-align:middle}.CodeMirror-dialog{position:absolute;left:0;right:0;top:0;width:calc(100% - 12px);margin:6px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;z-index:12;padding-left:12px;border-radius:3px;border:1px solid #ddd;color:#444;background-color:#fff}.CodeMirror-dialog:after{position:absolute;right:0;top:0;bottom:0;content:"\f158";font-family:dashicons;line-height:1em;cursor:pointer}.CodeMirror-dialog input{border:none;outline:none;background:rgba(0,0,0,.05);color:inherit;font-family:monospace;margin:-1px 12px;padding:0 12px;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;-ms-flex:1 1 auto;flex:1 1 auto}.CodeMirror-dialog input,.CodeMirror-dialog input:focus{box-shadow:none}.CodeMirror-dialog button{margin:0 2px!important}.CodeMirror-dialog button:first-of-type{margin-left:12px!important}.CodeMirror-dialog span{-ms-flex-item-align:stretch;align-self:stretch;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none!important}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:6;transition:opacity .1s linear;opacity:.5}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover{opacity:1}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active{opacity:.75}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:transparent!important}.CodeMirror-overlayscroll-horizontal div:after,.CodeMirror-overlayscroll-vertical div:after{content:"";background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;position:absolute}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:8px;margin-bottom:6px}.CodeMirror-overlayscroll-horizontal div{top:0;bottom:0}.CodeMirror-overlayscroll-horizontal div:after{top:0;bottom:0;left:6px;right:6px}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:8px;margin-right:6px}.CodeMirror-overlayscroll-vertical div{left:0;right:0}.CodeMirror-overlayscroll-vertical div:after{left:0;right:0;bottom:6px}.wp-editor-expand .CodeMirror{min-height:300px}.wp-editor-expand .CodeMirror .CodeMirror-scroll{padding-bottom:330px!important;margin-bottom:-330px!important}.CodeMirror-mirrored{display:block!important;position:fixed!important;left:-9999px!important;top:-9999px!important;z-index:-999!important;opacity:0!important}#template .CodeMirror div{margin-right:0}#template .CodeMirror p{width:auto}.CodeMirror-vscrollbar{display:none!important}.CodeMirror-scroll{margin-right:-30px!important}.CodeMirror-settings__toggle{margin:6px!important}.heshFullscreen{z-index:99999;position:fixed!important;top:0;left:0;right:0;bottom:0;height:100%;background:#fff;padding:2% 2% 0}.heshFullscreen .CodeMirror{border:1px solid #ccc;border-radius:0 0 4px 4px;height:85%!important}.heshFullscreen #ed_toolbar{border:1px solid #ccc;border-bottom:0;border-radius:4px 4px 0 0}.heshFullscreen #cm_content_fullscreen:before{content:"\f506"}.cm-matchhighlight,.CodeMirror-matchingbracket,.CodeMirror-matchingtag{background-color:rgba(0,255,175,.2)}#cm_content_fullscreen{display:inline-block}.wp-editor-expand #cm_content_fullscreen{display:none}.hesh-content-resize-handle{position:absolute;right:0;bottom:0;width:12px;height:12px;z-index:8;margin:1px!important}#ed_toolbar{z-index:10}@media screen and (min-width:782px){.CodeMirror-settings__toggle{height:35px;width:35px}.CodeMirror-settings__toggle:after{font-size:20px;margin:7px}.CodeMirror-settings__docked{min-height:35px}.CodeMirror-settings__header{padding-right:35px}.CodeMirror-settings__button--select:after{font-size:16px;margin-top:0}.CodeMirror-dialog{height:35px;padding-right:35px}.CodeMirror-dialog:after{font-size:20px;margin:7px}.CodeMirror-overlayscroll-vertical div:after{top:47px}#template .CodeMirror{margin-right:20px}}@media screen and (max-width:781px){.CodeMirror-settings__toggle{height:44px;width:44px}.CodeMirror-settings__toggle:after{font-size:28px;margin:8px}.CodeMirror-settings__docked{min-height:44px}.CodeMirror-settings__header{padding-right:44px}.CodeMirror-settings__button--select:after{font-size:20px;margin-top:-2px}.CodeMirror-dialog{height:44px;padding-right:44px}.CodeMirror-dialog:after{font-size:28px;margin:8px}.CodeMirror-overlayscroll-vertical div:after{top:56px}#template .CodeMirror{margin-right:0}}@media screen and (max-height:550px){.heshFullscreen .CodeMirror{height:75%!important}}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}@keyframes a{50%{background-color:transparent}}
1
+ .CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;animation:a 1.06s steps(1) infinite;background-color:#7e7}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day div.CodeMirror-selected{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::selection,.cm-s-3024-day .CodeMirror-line>span::selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-day .CodeMirror-guttermarker-subtle,.cm-s-3024-day .CodeMirror-linenumber{color:#807d7c}.cm-s-3024-day .CodeMirror-cursor{border-left:1px solid #5c5855}.cm-s-3024-day span.cm-comment{color:#cdab53}.cm-s-3024-day span.cm-atom,.cm-s-3024-day span.cm-number{color:#a16a94}.cm-s-3024-day span.cm-attribute,.cm-s-3024-day span.cm-property{color:#01a252}.cm-s-3024-day span.cm-keyword{color:#db2d20}.cm-s-3024-day span.cm-string{color:#fded02}.cm-s-3024-day span.cm-variable{color:#01a252}.cm-s-3024-day span.cm-variable-2{color:#01a0e4}.cm-s-3024-day span.cm-def{color:#e8bbd0}.cm-s-3024-day span.cm-bracket{color:#3a3432}.cm-s-3024-day span.cm-tag{color:#db2d20}.cm-s-3024-day span.cm-link{color:#a16a94}.cm-s-3024-day span.cm-error{background:#db2d20;color:#5c5855}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-3024-day .CodeMirror-matchingbracket{text-decoration:underline;color:#a16a94!important}.cm-s-3024-night.CodeMirror{background:#090300;color:#d6d5d4}.cm-s-3024-night div.CodeMirror-selected{background:#3a3432}.cm-s-3024-night .CodeMirror-line::selection,.cm-s-3024-night .CodeMirror-line>span::selection,.cm-s-3024-night .CodeMirror-line>span>span::selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-line::-moz-selection,.cm-s-3024-night .CodeMirror-line>span::-moz-selection,.cm-s-3024-night .CodeMirror-line>span>span::-moz-selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-gutters{background:#090300;border-right:0}.cm-s-3024-night .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-night .CodeMirror-guttermarker-subtle,.cm-s-3024-night .CodeMirror-linenumber{color:#5c5855}.cm-s-3024-night .CodeMirror-cursor{border-left:1px solid #807d7c}.cm-s-3024-night span.cm-comment{color:#cdab53}.cm-s-3024-night span.cm-atom,.cm-s-3024-night span.cm-number{color:#a16a94}.cm-s-3024-night span.cm-attribute,.cm-s-3024-night span.cm-property{color:#01a252}.cm-s-3024-night span.cm-keyword{color:#db2d20}.cm-s-3024-night span.cm-string{color:#fded02}.cm-s-3024-night span.cm-variable{color:#01a252}.cm-s-3024-night span.cm-variable-2{color:#01a0e4}.cm-s-3024-night span.cm-def{color:#e8bbd0}.cm-s-3024-night span.cm-bracket{color:#d6d5d4}.cm-s-3024-night span.cm-tag{color:#db2d20}.cm-s-3024-night span.cm-link{color:#a16a94}.cm-s-3024-night span.cm-error{background:#db2d20;color:#807d7c}.cm-s-3024-night .CodeMirror-activeline-background{background:#2f2f2f}.cm-s-3024-night .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-abcdef.CodeMirror{background:#0f0f0f;color:#defdef}.cm-s-abcdef div.CodeMirror-selected{background:#515151}.cm-s-abcdef .CodeMirror-line::selection,.cm-s-abcdef .CodeMirror-line>span::selection,.cm-s-abcdef .CodeMirror-line>span>span::selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-line::-moz-selection,.cm-s-abcdef .CodeMirror-line>span::-moz-selection,.cm-s-abcdef .CodeMirror-line>span>span::-moz-selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-gutters{background:#555;border-right:2px solid #314151}.cm-s-abcdef .CodeMirror-guttermarker{color:#222}.cm-s-abcdef .CodeMirror-guttermarker-subtle{color:azure}.cm-s-abcdef .CodeMirror-linenumber{color:#fff}.cm-s-abcdef .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-abcdef span.cm-keyword{color:#b8860b;font-weight:700}.cm-s-abcdef span.cm-atom{color:#77f}.cm-s-abcdef span.cm-number{color:violet}.cm-s-abcdef span.cm-def{color:#fffabc}.cm-s-abcdef span.cm-variable{color:#abcdef}.cm-s-abcdef span.cm-variable-2{color:#cacbcc}.cm-s-abcdef span.cm-type,.cm-s-abcdef span.cm-variable-3{color:#def}.cm-s-abcdef span.cm-property{color:#fedcba}.cm-s-abcdef span.cm-operator{color:#ff0}.cm-s-abcdef span.cm-comment{color:#7a7b7c;font-style:italic}.cm-s-abcdef span.cm-string{color:#2b4}.cm-s-abcdef span.cm-meta{color:#c9f}.cm-s-abcdef span.cm-qualifier{color:#fff700}.cm-s-abcdef span.cm-builtin{color:#30aabc}.cm-s-abcdef span.cm-bracket{color:#8a8a8a}.cm-s-abcdef span.cm-tag{color:#fd4}.cm-s-abcdef span.cm-attribute{color:#df0}.cm-s-abcdef span.cm-error{color:red}.cm-s-abcdef span.cm-header{color:#7fffd4;font-weight:700}.cm-s-abcdef span.cm-link{color:#8a2be2}.cm-s-abcdef .CodeMirror-activeline-background{background:#314151}.cm-s-ambiance.CodeMirror{box-shadow:none}.cm-s-ambiance .cm-header{color:blue}.cm-s-ambiance .cm-quote{color:#24c2c7}.cm-s-ambiance .cm-keyword{color:#cda869}.cm-s-ambiance .cm-atom{color:#cf7ea9}.cm-s-ambiance .cm-number{color:#78cf8a}.cm-s-ambiance .cm-def{color:#aac6e3}.cm-s-ambiance .cm-variable{color:#ffb795}.cm-s-ambiance .cm-variable-2{color:#eed1b3}.cm-s-ambiance .cm-type,.cm-s-ambiance .cm-variable-3{color:#faded3}.cm-s-ambiance .cm-property{color:#eed1b3}.cm-s-ambiance .cm-operator{color:#fa8d6a}.cm-s-ambiance .cm-comment{color:#555;font-style:italic}.cm-s-ambiance .cm-string{color:#8f9d6a}.cm-s-ambiance .cm-string-2{color:#9d937c}.cm-s-ambiance .cm-meta{color:#d2a8a1}.cm-s-ambiance .cm-qualifier{color:#ff0}.cm-s-ambiance .cm-builtin{color:#99c}.cm-s-ambiance .cm-bracket{color:#24c2c7}.cm-s-ambiance .cm-tag{color:#fee4ff}.cm-s-ambiance .cm-attribute{color:#9b859d}.cm-s-ambiance .cm-hr{color:pink}.cm-s-ambiance .cm-link{color:#f4c20b}.cm-s-ambiance .cm-special{color:#ff9d00}.cm-s-ambiance .cm-error{color:#af2018}.cm-s-ambiance .CodeMirror-matchingbracket{color:#0f0}.cm-s-ambiance .CodeMirror-nonmatchingbracket{color:#f22}.cm-s-ambiance div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::selection,.cm-s-ambiance .CodeMirror-line>span::selection,.cm-s-ambiance .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line>span::-moz-selection,.cm-s-ambiance .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance.CodeMirror{line-height:1.4em;color:#e6e1dc;background-color:#202020;box-shadow:inset 0 0 10px #000}.cm-s-ambiance .CodeMirror-gutters{background:#3d3d3d;border-right:1px solid #4d4d4d;box-shadow:0 10px 20px #000}.cm-s-ambiance .CodeMirror-linenumber{text-shadow:0 1px 1px #4d4d4d;color:#111;padding:0 5px}.cm-s-ambiance .CodeMirror-guttermarker{color:#aaa}.cm-s-ambiance .CodeMirror-guttermarker-subtle{color:#111}.cm-s-ambiance .CodeMirror-cursor{border-left:1px solid #7991e8}.cm-s-ambiance .CodeMirror-activeline-background{background:none repeat scroll 0 0 hsla(0,0%,100%,.031)}.cm-s-ambiance.CodeMirror,.cm-s-ambiance .CodeMirror-gutters{background-image:url("data:image/png;base64,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")}.cm-s-base16-dark.CodeMirror{background:#151515;color:#e0e0e0}.cm-s-base16-dark div.CodeMirror-selected{background:#303030}.cm-s-base16-dark .CodeMirror-line::selection,.cm-s-base16-dark .CodeMirror-line>span::selection,.cm-s-base16-dark .CodeMirror-line>span>span::selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-line::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-gutters{background:#151515;border-right:0}.cm-s-base16-dark .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-dark .CodeMirror-guttermarker-subtle,.cm-s-base16-dark .CodeMirror-linenumber{color:#505050}.cm-s-base16-dark .CodeMirror-cursor{border-left:1px solid #b0b0b0}.cm-s-base16-dark span.cm-comment{color:#8f5536}.cm-s-base16-dark span.cm-atom,.cm-s-base16-dark span.cm-number{color:#aa759f}.cm-s-base16-dark span.cm-attribute,.cm-s-base16-dark span.cm-property{color:#90a959}.cm-s-base16-dark span.cm-keyword{color:#ac4142}.cm-s-base16-dark span.cm-string{color:#f4bf75}.cm-s-base16-dark span.cm-variable{color:#90a959}.cm-s-base16-dark span.cm-variable-2{color:#6a9fb5}.cm-s-base16-dark span.cm-def{color:#d28445}.cm-s-base16-dark span.cm-bracket{color:#e0e0e0}.cm-s-base16-dark span.cm-tag{color:#ac4142}.cm-s-base16-dark span.cm-link{color:#aa759f}.cm-s-base16-dark span.cm-error{background:#ac4142;color:#b0b0b0}.cm-s-base16-dark .CodeMirror-activeline-background{background:#202020}.cm-s-base16-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-base16-light.CodeMirror{background:#f5f5f5;color:#202020}.cm-s-base16-light div.CodeMirror-selected{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::selection,.cm-s-base16-light .CodeMirror-line>span::selection,.cm-s-base16-light .CodeMirror-line>span>span::selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::-moz-selection,.cm-s-base16-light .CodeMirror-line>span::-moz-selection,.cm-s-base16-light .CodeMirror-line>span>span::-moz-selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-gutters{background:#f5f5f5;border-right:0}.cm-s-base16-light .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-light .CodeMirror-guttermarker-subtle,.cm-s-base16-light .CodeMirror-linenumber{color:#b0b0b0}.cm-s-base16-light .CodeMirror-cursor{border-left:1px solid #505050}.cm-s-base16-light span.cm-comment{color:#8f5536}.cm-s-base16-light span.cm-atom,.cm-s-base16-light span.cm-number{color:#aa759f}.cm-s-base16-light span.cm-attribute,.cm-s-base16-light span.cm-property{color:#90a959}.cm-s-base16-light span.cm-keyword{color:#ac4142}.cm-s-base16-light span.cm-string{color:#f4bf75}.cm-s-base16-light span.cm-variable{color:#90a959}.cm-s-base16-light span.cm-variable-2{color:#6a9fb5}.cm-s-base16-light span.cm-def{color:#d28445}.cm-s-base16-light span.cm-bracket{color:#202020}.cm-s-base16-light span.cm-tag{color:#ac4142}.cm-s-base16-light span.cm-link{color:#aa759f}.cm-s-base16-light span.cm-error{background:#ac4142;color:#505050}.cm-s-base16-light .CodeMirror-activeline-background{background:#dddcdc}.cm-s-base16-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin.CodeMirror{background:#28211c;color:#9d9b97}.cm-s-bespin div.CodeMirror-selected{background:#36312e!important}.cm-s-bespin .CodeMirror-gutters{background:#28211c;border-right:0}.cm-s-bespin .CodeMirror-linenumber{color:#666}.cm-s-bespin .CodeMirror-cursor{border-left:1px solid #797977!important}.cm-s-bespin span.cm-comment{color:#937121}.cm-s-bespin span.cm-atom,.cm-s-bespin span.cm-number{color:#9b859d}.cm-s-bespin span.cm-attribute,.cm-s-bespin span.cm-property{color:#54be0d}.cm-s-bespin span.cm-keyword{color:#cf6a4c}.cm-s-bespin span.cm-string{color:#f9ee98}.cm-s-bespin span.cm-variable{color:#54be0d}.cm-s-bespin span.cm-variable-2{color:#5ea6ea}.cm-s-bespin span.cm-def{color:#cf7d34}.cm-s-bespin span.cm-error{background:#cf6a4c;color:#797977}.cm-s-bespin span.cm-bracket{color:#9d9b97}.cm-s-bespin span.cm-tag{color:#cf6a4c}.cm-s-bespin span.cm-link{color:#9b859d}.cm-s-bespin .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin .CodeMirror-activeline-background{background:#404040}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard div.CodeMirror-selected{background:#253b76}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line>span::selection,.cm-s-blackboard .CodeMirror-line>span>span::selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line>span::-moz-selection,.cm-s-blackboard .CodeMirror-line>span>span::-moz-selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-guttermarker{color:#fbde2d}.cm-s-blackboard .CodeMirror-guttermarker-subtle,.cm-s-blackboard .CodeMirror-linenumber{color:#888}.cm-s-blackboard .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-blackboard .cm-keyword{color:#fbde2d}.cm-s-blackboard .cm-atom,.cm-s-blackboard .cm-number{color:#d8fa3c}.cm-s-blackboard .cm-def{color:#8da6ce}.cm-s-blackboard .cm-variable{color:#ff6400}.cm-s-blackboard .cm-operator{color:#fbde2d}.cm-s-blackboard .cm-comment{color:#aeaeae}.cm-s-blackboard .cm-string,.cm-s-blackboard .cm-string-2{color:#61ce3c}.cm-s-blackboard .cm-meta{color:#d8fa3c}.cm-s-blackboard .cm-attribute,.cm-s-blackboard .cm-builtin,.cm-s-blackboard .cm-tag{color:#8da6ce}.cm-s-blackboard .cm-header{color:#ff6400}.cm-s-blackboard .cm-hr{color:#aeaeae}.cm-s-blackboard .cm-link{color:#8da6ce}.cm-s-blackboard .cm-error{background:#9d1e15;color:#f8f8f8}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-blackboard .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-cobalt.CodeMirror{background:#002240;color:#fff}.cm-s-cobalt div.CodeMirror-selected{background:#b36539}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line>span::selection,.cm-s-cobalt .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line>span::-moz-selection,.cm-s-cobalt .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-cobalt .CodeMirror-guttermarker{color:#ffee80}.cm-s-cobalt .CodeMirror-guttermarker-subtle,.cm-s-cobalt .CodeMirror-linenumber{color:#d0d0d0}.cm-s-cobalt .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-cobalt span.cm-comment{color:#08f}.cm-s-cobalt span.cm-atom{color:#845dc4}.cm-s-cobalt span.cm-attribute,.cm-s-cobalt span.cm-number{color:#ff80e1}.cm-s-cobalt span.cm-keyword{color:#ffee80}.cm-s-cobalt span.cm-string{color:#3ad900}.cm-s-cobalt span.cm-meta{color:#ff9d00}.cm-s-cobalt span.cm-tag,.cm-s-cobalt span.cm-variable-2{color:#9effff}.cm-s-cobalt .cm-type,.cm-s-cobalt span.cm-def,.cm-s-cobalt span.cm-variable-3{color:#fff}.cm-s-cobalt span.cm-bracket{color:#d8d8d8}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special{color:#ff9e59}.cm-s-cobalt span.cm-link{color:#845dc4}.cm-s-cobalt span.cm-error{color:#9d1e15}.cm-s-cobalt .CodeMirror-activeline-background{background:#002d57}.cm-s-cobalt .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-colorforth.CodeMirror{background:#000;color:#f8f8f8}.cm-s-colorforth .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-colorforth .CodeMirror-guttermarker{color:#ffbd40}.cm-s-colorforth .CodeMirror-guttermarker-subtle{color:#78846f}.cm-s-colorforth .CodeMirror-linenumber{color:#bababa}.cm-s-colorforth .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-colorforth span.cm-comment{color:#ededed}.cm-s-colorforth span.cm-def{color:#ff1c1c;font-weight:700}.cm-s-colorforth span.cm-keyword{color:#ffd900}.cm-s-colorforth span.cm-builtin{color:#00d95a}.cm-s-colorforth span.cm-variable{color:#73ff00}.cm-s-colorforth span.cm-string{color:#007bff}.cm-s-colorforth span.cm-number{color:#00c4ff}.cm-s-colorforth span.cm-atom{color:#606060}.cm-s-colorforth span.cm-variable-2{color:#eee}.cm-s-colorforth span.cm-type,.cm-s-colorforth span.cm-variable-3{color:#ddd}.cm-s-colorforth span.cm-meta{color:#ff0}.cm-s-colorforth span.cm-qualifier{color:#fff700}.cm-s-colorforth span.cm-bracket{color:#cc7}.cm-s-colorforth span.cm-tag{color:#ffbd40}.cm-s-colorforth span.cm-attribute{color:#fff700}.cm-s-colorforth span.cm-error{color:red}.cm-s-colorforth div.CodeMirror-selected{background:#333d53}.cm-s-colorforth span.cm-compilation{background:hsla(0,0%,100%,.12)}.cm-s-colorforth .CodeMirror-activeline-background{background:#253540}.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters{background-color:#282a36!important;color:#f8f8f2!important;border:none}.cm-s-dracula .CodeMirror-gutters{color:#282a36}.cm-s-dracula .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-dracula .CodeMirror-linenumber{color:#6d8a88}.cm-s-dracula .CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line>span::selection,.cm-s-dracula .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line>span::-moz-selection,.cm-s-dracula .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula span.cm-comment{color:#6272a4}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2{color:#f1fa8c}.cm-s-dracula span.cm-number{color:#bd93f9}.cm-s-dracula span.cm-variable{color:#50fa7b}.cm-s-dracula span.cm-variable-2{color:#fff}.cm-s-dracula span.cm-def{color:#50fa7b}.cm-s-dracula span.cm-keyword,.cm-s-dracula span.cm-operator{color:#ff79c6}.cm-s-dracula span.cm-atom{color:#bd93f9}.cm-s-dracula span.cm-meta{color:#f8f8f2}.cm-s-dracula span.cm-tag{color:#ff79c6}.cm-s-dracula span.cm-attribute,.cm-s-dracula span.cm-qualifier{color:#50fa7b}.cm-s-dracula span.cm-property{color:#66d9ef}.cm-s-dracula span.cm-builtin{color:#50fa7b}.cm-s-dracula span.cm-type,.cm-s-dracula span.cm-variable-3{color:#ffb86c}.cm-s-dracula .CodeMirror-activeline-background{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-duotone-dark.CodeMirror{background:#2a2734;color:#6c6783}.cm-s-duotone-dark div.CodeMirror-selected{background:#545167!important}.cm-s-duotone-dark .CodeMirror-gutters{background:#2a2734;border-right:0}.cm-s-duotone-dark .CodeMirror-linenumber{color:#545167}.cm-s-duotone-dark .CodeMirror-cursor{border-left:1px solid #ffad5c;border-right:.5em solid #ffad5c;opacity:.5}.cm-s-duotone-dark .CodeMirror-activeline-background{background:#363342;opacity:.5}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor{background:#ffad5c;opacity:.5}.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-link,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-variable{color:#fc9}.cm-s-duotone-dark span.cm-property{color:#9a86fd}.cm-s-duotone-dark span.cm-negative,.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit{color:#e09142}.cm-s-duotone-dark span.cm-string{color:#ffb870}.cm-s-duotone-dark span.cm-operator{color:#ffad5c}.cm-s-duotone-dark span.cm-positive{color:#6a51e6}.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-type,.cm-s-duotone-dark span.cm-url,.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3{color:#7a63ee}.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-em,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-tag{color:#eeebff}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment{color:#6c6783}.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar{color:red}.cm-s-duotone-dark span.cm-header{font-weight:400}.cm-s-duotone-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#eeebff!important}.cm-s-duotone-light.CodeMirror{background:#faf8f5;color:#b29762}.cm-s-duotone-light div.CodeMirror-selected{background:#e3dcce!important}.cm-s-duotone-light .CodeMirror-gutters{background:#faf8f5;border-right:0}.cm-s-duotone-light .CodeMirror-linenumber{color:#cdc4b1}.cm-s-duotone-light .CodeMirror-cursor{border-left:1px solid #93abdc;border-right:.5em solid #93abdc;opacity:.5}.cm-s-duotone-light .CodeMirror-activeline-background{background:#e3dcce;opacity:.5}.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor{background:#93abdc;opacity:.5}.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link,.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light span.cm-variable{color:#063289}.cm-s-duotone-light span.cm-property{color:#b29762}.cm-s-duotone-light span.cm-negative,.cm-s-duotone-light span.cm-punctuation,.cm-s-duotone-light span.cm-unit{color:#063289}.cm-s-duotone-light span.cm-operator,.cm-s-duotone-light span.cm-string{color:#1659df}.cm-s-duotone-light span.cm-positive,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-type,.cm-s-duotone-light span.cm-url,.cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3{color:#896724}.cm-s-duotone-light span.cm-builtin,.cm-s-duotone-light span.cm-def,.cm-s-duotone-light span.cm-em,.cm-s-duotone-light span.cm-header,.cm-s-duotone-light span.cm-qualifier,.cm-s-duotone-light span.cm-tag{color:#2d2006}.cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment{color:#b6ad9a}.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar{color:red}.cm-s-duotone-light span.cm-header{font-weight:400}.cm-s-duotone-light .CodeMirror-matchingbracket{text-decoration:underline;color:#faf8f5!important}.cm-s-eclipse span.cm-meta{color:#ff1717}.cm-s-eclipse span.cm-keyword{line-height:1em;font-weight:700;color:#7f0055}.cm-s-eclipse span.cm-atom{color:#219}.cm-s-eclipse span.cm-number{color:#164}.cm-s-eclipse span.cm-def{color:#00f}.cm-s-eclipse span.cm-variable{color:#000}.cm-s-eclipse span.cm-type,.cm-s-eclipse span.cm-variable-2,.cm-s-eclipse span.cm-variable-3{color:#0000c0}.cm-s-eclipse span.cm-operator,.cm-s-eclipse span.cm-property{color:#000}.cm-s-eclipse span.cm-comment{color:#3f7f5f}.cm-s-eclipse span.cm-string{color:#2a00ff}.cm-s-eclipse span.cm-string-2{color:#f50}.cm-s-eclipse span.cm-qualifier{color:#555}.cm-s-eclipse span.cm-builtin{color:#30a}.cm-s-eclipse span.cm-bracket{color:#cc7}.cm-s-eclipse span.cm-tag{color:#170}.cm-s-eclipse span.cm-attribute{color:#00c}.cm-s-eclipse span.cm-link{color:#219}.cm-s-eclipse span.cm-error{color:red}.cm-s-eclipse .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-eclipse .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-elegant span.cm-atom,.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string{color:#762}.cm-s-elegant span.cm-comment{color:#262;font-style:italic;line-height:1em}.cm-s-elegant span.cm-meta{color:#555;font-style:italic;line-height:1em}.cm-s-elegant span.cm-variable{color:#000}.cm-s-elegant span.cm-variable-2{color:#b11}.cm-s-elegant span.cm-qualifier{color:#555}.cm-s-elegant span.cm-keyword{color:#730}.cm-s-elegant span.cm-builtin{color:#30a}.cm-s-elegant span.cm-link{color:#762}.cm-s-elegant span.cm-error{background-color:#fdd}.cm-s-elegant .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-elegant .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-erlang-dark.CodeMirror{background:#002240;color:#fff}.cm-s-erlang-dark div.CodeMirror-selected{background:#b36539}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line>span::selection,.cm-s-erlang-dark .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-erlang-dark .CodeMirror-guttermarker{color:#fff}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle,.cm-s-erlang-dark .CodeMirror-linenumber{color:#d0d0d0}.cm-s-erlang-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-erlang-dark span.cm-quote{color:#ccc}.cm-s-erlang-dark span.cm-atom{color:#f133f1}.cm-s-erlang-dark span.cm-attribute{color:#ff80e1}.cm-s-erlang-dark span.cm-bracket{color:#ff9d00}.cm-s-erlang-dark span.cm-builtin{color:#eaa}.cm-s-erlang-dark span.cm-comment{color:#77f}.cm-s-erlang-dark span.cm-def{color:#e7a}.cm-s-erlang-dark span.cm-keyword{color:#ffee80}.cm-s-erlang-dark span.cm-meta{color:#50fefe}.cm-s-erlang-dark span.cm-number{color:#ffd0d0}.cm-s-erlang-dark span.cm-operator{color:#d55}.cm-s-erlang-dark span.cm-property,.cm-s-erlang-dark span.cm-qualifier{color:#ccc}.cm-s-erlang-dark span.cm-special{color:#fbb}.cm-s-erlang-dark span.cm-string{color:#3ad900}.cm-s-erlang-dark span.cm-string-2{color:#ccc}.cm-s-erlang-dark span.cm-tag{color:#9effff}.cm-s-erlang-dark span.cm-variable{color:#50fe50}.cm-s-erlang-dark span.cm-variable-2{color:#e0e}.cm-s-erlang-dark span.cm-type,.cm-s-erlang-dark span.cm-variable-3{color:#ccc}.cm-s-erlang-dark span.cm-error{color:#9d1e15}.cm-s-erlang-dark .CodeMirror-activeline-background{background:#013461}.cm-s-erlang-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-hopscotch.CodeMirror{background:#322931;color:#d5d3d5}.cm-s-hopscotch div.CodeMirror-selected{background:#433b42!important}.cm-s-hopscotch .CodeMirror-gutters{background:#322931;border-right:0}.cm-s-hopscotch .CodeMirror-linenumber{color:#797379}.cm-s-hopscotch .CodeMirror-cursor{border-left:1px solid #989498!important}.cm-s-hopscotch span.cm-comment{color:#b33508}.cm-s-hopscotch span.cm-atom,.cm-s-hopscotch span.cm-number{color:#c85e7c}.cm-s-hopscotch span.cm-attribute,.cm-s-hopscotch span.cm-property{color:#8fc13e}.cm-s-hopscotch span.cm-keyword{color:#dd464c}.cm-s-hopscotch span.cm-string{color:#fdcc59}.cm-s-hopscotch span.cm-variable{color:#8fc13e}.cm-s-hopscotch span.cm-variable-2{color:#1290bf}.cm-s-hopscotch span.cm-def{color:#fd8b19}.cm-s-hopscotch span.cm-error{background:#dd464c;color:#989498}.cm-s-hopscotch span.cm-bracket{color:#d5d3d5}.cm-s-hopscotch span.cm-tag{color:#dd464c}.cm-s-hopscotch span.cm-link{color:#c85e7c}.cm-s-hopscotch .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-hopscotch .CodeMirror-activeline-background{background:#302020}.cm-s-icecoder{color:#666;background:#1d1d1b}.cm-s-icecoder span.cm-keyword{color:#eee;font-weight:700}.cm-s-icecoder span.cm-atom{color:#e1c76e}.cm-s-icecoder span.cm-number{color:#6cb5d9}.cm-s-icecoder span.cm-def{color:#b9ca4a}.cm-s-icecoder span.cm-variable{color:#6cb5d9}.cm-s-icecoder span.cm-variable-2{color:#cc1e5c}.cm-s-icecoder span.cm-type,.cm-s-icecoder span.cm-variable-3{color:#f9602c}.cm-s-icecoder span.cm-property{color:#eee}.cm-s-icecoder span.cm-operator{color:#9179bb}.cm-s-icecoder span.cm-comment{color:#97a3aa}.cm-s-icecoder span.cm-string{color:#b9ca4a}.cm-s-icecoder span.cm-string-2{color:#6cb5d9}.cm-s-icecoder span.cm-meta,.cm-s-icecoder span.cm-qualifier{color:#555}.cm-s-icecoder span.cm-builtin{color:#214e7b}.cm-s-icecoder span.cm-bracket{color:#cc7}.cm-s-icecoder span.cm-tag{color:#e8e8e8}.cm-s-icecoder span.cm-attribute{color:#099}.cm-s-icecoder span.cm-header{color:#6a0d6a}.cm-s-icecoder span.cm-quote{color:#186718}.cm-s-icecoder span.cm-hr{color:#888}.cm-s-icecoder span.cm-link{color:#e1c76e}.cm-s-icecoder span.cm-error{color:#d00}.cm-s-icecoder .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-icecoder div.CodeMirror-selected{color:#fff;background:#037}.cm-s-icecoder .CodeMirror-gutters{background:#1d1d1b;min-width:41px;border-right:0}.cm-s-icecoder .CodeMirror-linenumber{color:#555;cursor:default}.cm-s-icecoder .CodeMirror-matchingbracket{color:#fff!important;background:#555!important}.cm-s-icecoder .CodeMirror-activeline-background{background:#000}.cm-s-isotope.CodeMirror{background:#000;color:#e0e0e0}.cm-s-isotope div.CodeMirror-selected{background:#404040!important}.cm-s-isotope .CodeMirror-gutters{background:#000;border-right:0}.cm-s-isotope .CodeMirror-linenumber{color:gray}.cm-s-isotope .CodeMirror-cursor{border-left:1px solid silver!important}.cm-s-isotope span.cm-comment{color:#30f}.cm-s-isotope span.cm-atom,.cm-s-isotope span.cm-number{color:#c0f}.cm-s-isotope span.cm-attribute,.cm-s-isotope span.cm-property{color:#3f0}.cm-s-isotope span.cm-keyword{color:red}.cm-s-isotope span.cm-string{color:#f09}.cm-s-isotope span.cm-variable{color:#3f0}.cm-s-isotope span.cm-variable-2{color:#06f}.cm-s-isotope span.cm-def{color:#f90}.cm-s-isotope span.cm-error{background:red;color:silver}.cm-s-isotope span.cm-bracket{color:#e0e0e0}.cm-s-isotope span.cm-tag{color:red}.cm-s-isotope span.cm-link{color:#c0f}.cm-s-isotope .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-isotope .CodeMirror-activeline-background{background:#202020}.cm-s-lesser-dark{line-height:1.3em}.cm-s-lesser-dark.CodeMirror{background:#262626;color:#ebefe7;text-shadow:0 -1px 1px #262626}.cm-s-lesser-dark div.CodeMirror-selected{background:#45443b}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line>span::selection,.cm-s-lesser-dark .CodeMirror-line>span>span::selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-lesser-dark pre{padding:0 8px}.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket{color:#7efc7e}.cm-s-lesser-dark .CodeMirror-gutters{background:#262626;border-right:1px solid #aaa}.cm-s-lesser-dark .CodeMirror-guttermarker{color:#599eff}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle,.cm-s-lesser-dark .CodeMirror-linenumber{color:#777}.cm-s-lesser-dark span.cm-header{color:#a0a}.cm-s-lesser-dark span.cm-quote{color:#090}.cm-s-lesser-dark span.cm-keyword{color:#599eff}.cm-s-lesser-dark span.cm-atom{color:#c2b470}.cm-s-lesser-dark span.cm-number{color:#b35e4d}.cm-s-lesser-dark span.cm-def{color:#fff}.cm-s-lesser-dark span.cm-variable{color:#d9bf8c}.cm-s-lesser-dark span.cm-variable-2{color:#669199}.cm-s-lesser-dark span.cm-type,.cm-s-lesser-dark span.cm-variable-3{color:#fff}.cm-s-lesser-dark span.cm-operator,.cm-s-lesser-dark span.cm-property{color:#92a75c}.cm-s-lesser-dark span.cm-comment{color:#666}.cm-s-lesser-dark span.cm-string{color:#bcd279}.cm-s-lesser-dark span.cm-string-2{color:#f50}.cm-s-lesser-dark span.cm-meta{color:#738c73}.cm-s-lesser-dark span.cm-qualifier{color:#555}.cm-s-lesser-dark span.cm-builtin{color:#ff9e59}.cm-s-lesser-dark span.cm-bracket{color:#ebefe7}.cm-s-lesser-dark span.cm-tag{color:#669199}.cm-s-lesser-dark span.cm-attribute{color:#00c}.cm-s-lesser-dark span.cm-hr{color:#999}.cm-s-lesser-dark span.cm-link{color:#00c}.cm-s-lesser-dark span.cm-error{color:#9d1e15}.cm-s-lesser-dark .CodeMirror-activeline-background{background:#3c3a3a}.cm-s-lesser-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-liquibyte.CodeMirror{background-color:#000;color:#fff;line-height:1.2em;font-size:1em}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight{text-decoration:underline;-webkit-text-decoration-color:#0f0;text-decoration-color:#0f0;-webkit-text-decoration-style:wavy;text-decoration-style:wavy}.cm-s-liquibyte .cm-trailingspace{text-decoration:line-through;-webkit-text-decoration-color:red;text-decoration-color:red;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .cm-tab{text-decoration:line-through;-webkit-text-decoration-color:#404040;text-decoration-color:#404040;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .CodeMirror-gutters{background-color:#262626;border-right:1px solid #505050;padding-right:.8em}.cm-s-liquibyte .CodeMirror-gutter-elt div{font-size:1.2em}.cm-s-liquibyte .CodeMirror-linenumber{color:#606060;padding-left:0}.cm-s-liquibyte .CodeMirror-cursor{border-left:1px solid #eee}.cm-s-liquibyte span.cm-comment{color:green}.cm-s-liquibyte span.cm-def{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-keyword{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-builtin{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-variable{color:#5967ff;font-weight:700}.cm-s-liquibyte span.cm-string{color:#ff8000}.cm-s-liquibyte span.cm-number{color:#0f0;font-weight:700}.cm-s-liquibyte span.cm-atom{color:#bf3030;font-weight:700}.cm-s-liquibyte span.cm-variable-2{color:#007f7f;font-weight:700}.cm-s-liquibyte span.cm-type,.cm-s-liquibyte span.cm-variable-3{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-property{color:#999;font-weight:700}.cm-s-liquibyte span.cm-operator{color:#fff}.cm-s-liquibyte span.cm-meta{color:#0f0}.cm-s-liquibyte span.cm-qualifier{color:#fff700;font-weight:700}.cm-s-liquibyte span.cm-bracket{color:#cc7}.cm-s-liquibyte span.cm-tag{color:#ff0;font-weight:700}.cm-s-liquibyte span.cm-attribute{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-error{color:red}.cm-s-liquibyte div.CodeMirror-selected{background-color:rgba(255,0,0,.25)}.cm-s-liquibyte span.cm-compilation{background-color:hsla(0,0%,100%,.12)}.cm-s-liquibyte .CodeMirror-activeline-background{background-color:rgba(0,255,0,.15)}.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket{color:#0f0;font-weight:700}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket{color:red;font-weight:700}.CodeMirror-matchingtag{background-color:rgba(150,255,0,.3)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover{background-color:rgba(80,80,80,.7)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{background-color:rgba(80,80,80,.3);border:1px solid #404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{border-top:1px solid #404040;border-bottom:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div{border-left:1px solid #404040;border-right:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical{background-color:#262626}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal{background-color:#262626;border-top:1px solid #404040}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div{background-color:#404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div{border:1px solid #404040}.cm-s-material.CodeMirror{background-color:#263238;color:#e9eded}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-activeline-background{background:transparent}.cm-s-material .cm-keyword{color:#c792ea}.cm-s-material .cm-operator{color:#e9eded}.cm-s-material .cm-variable-2{color:#80cbc4}.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#82b1ff}.cm-s-material .cm-builtin{color:#decb6b}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#f77669}.cm-s-material .cm-def{color:#e9eded}.cm-s-material .cm-string{color:#c3e88d}.cm-s-material .cm-string-2{color:#80cbc4}.cm-s-material .cm-comment{color:#546e7a}.cm-s-material .cm-variable{color:#82b1ff}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80cbc4}.cm-s-material .cm-attribute{color:#ffcb6b}.cm-s-material .cm-property{color:#80cbae}.cm-s-material .cm-qualifier,.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#decb6b}.cm-s-material .cm-tag{color:#ff5370}.cm-s-material .cm-error{color:#fff;background-color:#ec5f67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-mbo.CodeMirror{background:#2c2c2c;color:#ffffec}.cm-s-mbo div.CodeMirror-selected{background:#716c62}.cm-s-mbo .CodeMirror-line::selection,.cm-s-mbo .CodeMirror-line>span::selection,.cm-s-mbo .CodeMirror-line>span>span::selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-line::-moz-selection,.cm-s-mbo .CodeMirror-line>span::-moz-selection,.cm-s-mbo .CodeMirror-line>span>span::-moz-selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-gutters{background:#4e4e4e;border-right:0}.cm-s-mbo .CodeMirror-guttermarker{color:#fff}.cm-s-mbo .CodeMirror-guttermarker-subtle{color:grey}.cm-s-mbo .CodeMirror-linenumber{color:#dadada}.cm-s-mbo .CodeMirror-cursor{border-left:1px solid #ffffec}.cm-s-mbo span.cm-comment{color:#95958a}.cm-s-mbo span.cm-atom,.cm-s-mbo span.cm-number{color:#00a8c6}.cm-s-mbo span.cm-attribute,.cm-s-mbo span.cm-property{color:#9ddfe9}.cm-s-mbo span.cm-keyword{color:#ffb928}.cm-s-mbo span.cm-string{color:#ffcf6c}.cm-s-mbo span.cm-string.cm-property,.cm-s-mbo span.cm-variable{color:#ffffec}.cm-s-mbo span.cm-variable-2{color:#00a8c6}.cm-s-mbo span.cm-def{color:#ffffec}.cm-s-mbo span.cm-bracket{color:#fffffc;font-weight:700}.cm-s-mbo span.cm-tag{color:#9ddfe9}.cm-s-mbo span.cm-link{color:#f54b07}.cm-s-mbo span.cm-error{border-bottom:#636363;color:#ffffec}.cm-s-mbo span.cm-qualifier{color:#ffffec}.cm-s-mbo .CodeMirror-activeline-background{background:#494b41}.cm-s-mbo .CodeMirror-matchingbracket{color:#ffb928!important}.cm-s-mbo .CodeMirror-matchingtag{background:hsla(0,0%,100%,.37)}.cm-s-mdn-like.CodeMirror{color:#999;background-color:#fff}.cm-s-mdn-like div.CodeMirror-selected{background:#cfc}.cm-s-mdn-like .CodeMirror-line::selection,.cm-s-mdn-like .CodeMirror-line>span::selection,.cm-s-mdn-like .CodeMirror-line>span>span::selection{background:#cfc}.cm-s-mdn-like .CodeMirror-line::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span>span::-moz-selection{background:#cfc}.cm-s-mdn-like .CodeMirror-gutters{background:#f8f8f8;border-left:6px solid rgba(0,83,159,.65);color:#333}.cm-s-mdn-like .CodeMirror-linenumber{color:#aaa;padding-left:8px}.cm-s-mdn-like .CodeMirror-cursor{border-left:2px solid #222}.cm-s-mdn-like .cm-keyword{color:#6262ff}.cm-s-mdn-like .cm-atom{color:#f90}.cm-s-mdn-like .cm-number{color:#ca7841}.cm-s-mdn-like .cm-def{color:#8da6ce}.cm-s-mdn-like span.cm-tag,.cm-s-mdn-like span.cm-variable-2{color:#690}.cm-s-mdn-like .cm-variable,.cm-s-mdn-like span.cm-def,.cm-s-mdn-like span.cm-type,.cm-s-mdn-like span.cm-variable-3{color:#07a}.cm-s-mdn-like .cm-property{color:#905}.cm-s-mdn-like .cm-qualifier{color:#690}.cm-s-mdn-like .cm-operator{color:#cda869}.cm-s-mdn-like .cm-comment{color:#777;font-weight:400}.cm-s-mdn-like .cm-string{color:#07a;font-style:italic}.cm-s-mdn-like .cm-string-2{color:#bd6b18}.cm-s-mdn-like .cm-meta{color:#000}.cm-s-mdn-like .cm-builtin{color:#9b7536}.cm-s-mdn-like .cm-tag{color:#997643}.cm-s-mdn-like .cm-attribute{color:#d6bb6d}.cm-s-mdn-like .cm-header{color:#ff6400}.cm-s-mdn-like .cm-hr{color:#aeaeae}.cm-s-mdn-like .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-mdn-like .cm-error{border-bottom:1px solid red}div.cm-s-mdn-like .CodeMirror-activeline-background{background:#efefff}div.cm-s-mdn-like span.CodeMirror-matchingbracket{outline:1px solid grey;color:inherit}.cm-s-mdn-like.CodeMirror{background-image:url(data:image/png;base64,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)}.cm-s-midnight span.CodeMirror-matchhighlight{background:#494949}.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight{background:#314d67!important}.cm-s-midnight .CodeMirror-activeline-background{background:#253540}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff}.cm-s-midnight div.CodeMirror-selected{background:#314d67}.cm-s-midnight .CodeMirror-line::selection,.cm-s-midnight .CodeMirror-line>span::selection,.cm-s-midnight .CodeMirror-line>span>span::selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-line::-moz-selection,.cm-s-midnight .CodeMirror-line>span::-moz-selection,.cm-s-midnight .CodeMirror-line>span>span::-moz-selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-guttermarker{color:#fff}.cm-s-midnight .CodeMirror-guttermarker-subtle,.cm-s-midnight .CodeMirror-linenumber{color:#d0d0d0}.cm-s-midnight .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-midnight span.cm-comment{color:#428bdd}.cm-s-midnight span.cm-atom{color:#ae81ff}.cm-s-midnight span.cm-number{color:#d1edff}.cm-s-midnight span.cm-attribute,.cm-s-midnight span.cm-property{color:#a6e22e}.cm-s-midnight span.cm-keyword{color:#e83737}.cm-s-midnight span.cm-string{color:#1dc116}.cm-s-midnight span.cm-variable,.cm-s-midnight span.cm-variable-2{color:#ffaa3e}.cm-s-midnight span.cm-def{color:#4dd}.cm-s-midnight span.cm-bracket{color:#d1edff}.cm-s-midnight span.cm-tag{color:#449}.cm-s-midnight span.cm-link{color:#ae81ff}.cm-s-midnight span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-midnight .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai div.CodeMirror-selected{background:#49483e}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line>span::selection,.cm-s-monokai .CodeMirror-line>span>span::selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line>span::-moz-selection,.cm-s-monokai .CodeMirror-line>span>span::-moz-selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-guttermarker{color:#fff}.cm-s-monokai .CodeMirror-guttermarker-subtle,.cm-s-monokai .CodeMirror-linenumber{color:#d0d0d0}.cm-s-monokai .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-monokai span.cm-comment{color:#75715e}.cm-s-monokai span.cm-atom,.cm-s-monokai span.cm-number{color:#ae81ff}.cm-s-monokai span.cm-attribute,.cm-s-monokai span.cm-property{color:#a6e22e}.cm-s-monokai span.cm-keyword{color:#f92672}.cm-s-monokai span.cm-builtin{color:#66d9ef}.cm-s-monokai span.cm-string{color:#e6db74}.cm-s-monokai span.cm-variable{color:#f8f8f2}.cm-s-monokai span.cm-variable-2{color:#9effff}.cm-s-monokai span.cm-type,.cm-s-monokai span.cm-variable-3{color:#66d9ef}.cm-s-monokai span.cm-def{color:#fd971f}.cm-s-monokai span.cm-bracket{color:#f8f8f2}.cm-s-monokai span.cm-tag{color:#f92672}.cm-s-monokai span.cm-header,.cm-s-monokai span.cm-link{color:#ae81ff}.cm-s-monokai span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-monokai .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-neat span.cm-comment{color:#a86}.cm-s-neat span.cm-keyword{line-height:1em;font-weight:700;color:blue}.cm-s-neat span.cm-string{color:#a22}.cm-s-neat span.cm-builtin{line-height:1em;font-weight:700;color:#077}.cm-s-neat span.cm-special{line-height:1em;font-weight:700;color:#0aa}.cm-s-neat span.cm-variable{color:#000}.cm-s-neat span.cm-atom,.cm-s-neat span.cm-number{color:#3a3}.cm-s-neat span.cm-meta{color:#555}.cm-s-neat span.cm-link{color:#3a3}.cm-s-neat .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-neat .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-neo.CodeMirror{background-color:#fff;color:#2e383c;line-height:1.4375}.cm-s-neo .cm-comment{color:#75787b}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property{color:#1d75b3}.cm-s-neo .cm-atom,.cm-s-neo .cm-number{color:#75438a}.cm-s-neo .cm-node,.cm-s-neo .cm-tag{color:#9c3328}.cm-s-neo .cm-string{color:#b35e14}.cm-s-neo .cm-qualifier,.cm-s-neo .cm-variable{color:#047d65}.cm-s-neo pre{padding:0}.cm-s-neo .CodeMirror-gutters{border:none;border-right:10px solid transparent;background-color:transparent}.cm-s-neo .CodeMirror-linenumber{padding:0;color:#e0e2e5}.cm-s-neo .CodeMirror-guttermarker{color:#1d75b3}.cm-s-neo .CodeMirror-guttermarker-subtle{color:#e0e2e5}.cm-s-neo .CodeMirror-cursor{width:auto;border:0;background:hsla(223,4%,62%,.37);z-index:1}.cm-s-night.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-night div.CodeMirror-selected{background:#447}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line>span::selection,.cm-s-night .CodeMirror-line>span>span::selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line>span::-moz-selection,.cm-s-night .CodeMirror-line>span>span::-moz-selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-night .CodeMirror-guttermarker{color:#fff}.cm-s-night .CodeMirror-guttermarker-subtle{color:#bbb}.cm-s-night .CodeMirror-linenumber{color:#f8f8f8}.cm-s-night .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-night span.cm-comment{color:#8900d1}.cm-s-night span.cm-atom{color:#845dc4}.cm-s-night span.cm-attribute,.cm-s-night span.cm-number{color:#ffd500}.cm-s-night span.cm-keyword{color:#599eff}.cm-s-night span.cm-string{color:#37f14a}.cm-s-night span.cm-meta{color:#7678e2}.cm-s-night span.cm-tag,.cm-s-night span.cm-variable-2{color:#99b2ff}.cm-s-night span.cm-def,.cm-s-night span.cm-type,.cm-s-night span.cm-variable-3{color:#fff}.cm-s-night span.cm-bracket{color:#8da6ce}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special{color:#ff9e59}.cm-s-night span.cm-link{color:#845dc4}.cm-s-night span.cm-error{color:#9d1e15}.cm-s-night .CodeMirror-activeline-background{background:#1c005a}.cm-s-night .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-panda-syntax{background:#292a2b;color:#e6e6e6;line-height:1.5;font-family:Operator Mono,Source Sans Pro,Menlo,Monaco,Consolas,Courier New,monospace}.cm-s-panda-syntax .CodeMirror-cursor{border-color:#ff2c6d}.cm-s-panda-syntax .CodeMirror-activeline-background{background:rgba(99,123,156,.1)}.cm-s-panda-syntax .CodeMirror-selected{background:#fff}.cm-s-panda-syntax .cm-comment{font-style:italic;color:#676b79}.cm-s-panda-syntax .cm-operator{color:#f3f3f3}.cm-s-panda-syntax .cm-string{color:#19f9d8}.cm-s-panda-syntax .cm-string-2{color:#ffb86c}.cm-s-panda-syntax .cm-tag{color:#ff2c6d}.cm-s-panda-syntax .cm-meta{color:#b084eb}.cm-s-panda-syntax .cm-number{color:#ffb86c}.cm-s-panda-syntax .cm-atom{color:#ff2c6d}.cm-s-panda-syntax .cm-keyword{color:#ff75b5}.cm-s-panda-syntax .cm-variable{color:#ffb86c}.cm-s-panda-syntax .cm-type,.cm-s-panda-syntax .cm-variable-2,.cm-s-panda-syntax .cm-variable-3{color:#ff9ac1}.cm-s-panda-syntax .cm-def{color:#e6e6e6}.cm-s-panda-syntax .cm-property{color:#f3f3f3}.cm-s-panda-syntax .cm-attribute,.cm-s-panda-syntax .cm-unit{color:#ffb86c}.cm-s-panda-syntax .CodeMirror-matchingbracket{border-bottom:1px dotted #19f9d8;padding-bottom:2px;color:#e6e6e6}.cm-s-panda-syntax .CodeMirror-gutters{background:#292a2b;border-right-color:hsla(0,0%,100%,.1)}.cm-s-panda-syntax .CodeMirror-linenumber{color:#e6e6e6;opacity:.6}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark div.CodeMirror-selected{background:#41323f}.cm-s-paraiso-dark .CodeMirror-line::selection,.cm-s-paraiso-dark .CodeMirror-line>span::selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-line::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-guttermarker{color:#ef6155}.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle,.cm-s-paraiso-dark .CodeMirror-linenumber{color:#776e71}.cm-s-paraiso-dark .CodeMirror-cursor{border-left:1px solid #8d8687}.cm-s-paraiso-dark span.cm-comment{color:#e96ba8}.cm-s-paraiso-dark span.cm-atom,.cm-s-paraiso-dark span.cm-number{color:#815ba4}.cm-s-paraiso-dark span.cm-attribute,.cm-s-paraiso-dark span.cm-property{color:#48b685}.cm-s-paraiso-dark span.cm-keyword{color:#ef6155}.cm-s-paraiso-dark span.cm-string{color:#fec418}.cm-s-paraiso-dark span.cm-variable{color:#48b685}.cm-s-paraiso-dark span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-dark span.cm-def{color:#f99b15}.cm-s-paraiso-dark span.cm-bracket{color:#b9b6b0}.cm-s-paraiso-dark span.cm-tag{color:#ef6155}.cm-s-paraiso-dark span.cm-link{color:#815ba4}.cm-s-paraiso-dark span.cm-error{background:#ef6155;color:#8d8687}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-paraiso-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-paraiso-light.CodeMirror{background:#e7e9db;color:#41323f}.cm-s-paraiso-light div.CodeMirror-selected{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::selection,.cm-s-paraiso-light .CodeMirror-line>span::selection,.cm-s-paraiso-light .CodeMirror-line>span>span::selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span>span::-moz-selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-gutters{background:#e7e9db;border-right:0}.cm-s-paraiso-light .CodeMirror-guttermarker{color:#000}.cm-s-paraiso-light .CodeMirror-guttermarker-subtle,.cm-s-paraiso-light .CodeMirror-linenumber{color:#8d8687}.cm-s-paraiso-light .CodeMirror-cursor{border-left:1px solid #776e71}.cm-s-paraiso-light span.cm-comment{color:#e96ba8}.cm-s-paraiso-light span.cm-atom,.cm-s-paraiso-light span.cm-number{color:#815ba4}.cm-s-paraiso-light span.cm-attribute,.cm-s-paraiso-light span.cm-property{color:#48b685}.cm-s-paraiso-light span.cm-keyword{color:#ef6155}.cm-s-paraiso-light span.cm-string{color:#fec418}.cm-s-paraiso-light span.cm-variable{color:#48b685}.cm-s-paraiso-light span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-light span.cm-def{color:#f99b15}.cm-s-paraiso-light span.cm-bracket{color:#41323f}.cm-s-paraiso-light span.cm-tag{color:#ef6155}.cm-s-paraiso-light span.cm-link{color:#815ba4}.cm-s-paraiso-light span.cm-error{background:#ef6155;color:#776e71}.cm-s-paraiso-light .CodeMirror-activeline-background{background:#cfd1c4}.cm-s-paraiso-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-pastel-on-dark.CodeMirror{background:#2c2827;color:#8f938f;line-height:1.5}.cm-s-pastel-on-dark div.CodeMirror-selected{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line>span::selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-gutters{background:#34302f;border-right:0;padding:0 3px}.cm-s-pastel-on-dark .CodeMirror-guttermarker{color:#fff}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle,.cm-s-pastel-on-dark .CodeMirror-linenumber{color:#8f938f}.cm-s-pastel-on-dark .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-pastel-on-dark span.cm-comment{color:#a6c6ff}.cm-s-pastel-on-dark span.cm-atom{color:#de8e30}.cm-s-pastel-on-dark span.cm-number{color:#ccc}.cm-s-pastel-on-dark span.cm-property{color:#8f938f}.cm-s-pastel-on-dark span.cm-attribute{color:#a6e22e}.cm-s-pastel-on-dark span.cm-keyword{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-string{color:#66a968}.cm-s-pastel-on-dark span.cm-variable{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-variable-2{color:#bebf55}.cm-s-pastel-on-dark span.cm-type,.cm-s-pastel-on-dark span.cm-variable-3{color:#de8e30}.cm-s-pastel-on-dark span.cm-def{color:#757ad8}.cm-s-pastel-on-dark span.cm-bracket{color:#f8f8f2}.cm-s-pastel-on-dark span.cm-tag{color:#c1c144}.cm-s-pastel-on-dark span.cm-link{color:#ae81ff}.cm-s-pastel-on-dark span.cm-builtin,.cm-s-pastel-on-dark span.cm-qualifier{color:#c1c144}.cm-s-pastel-on-dark span.cm-error{background:#757ad8;color:#f8f8f0}.cm-s-pastel-on-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.031)}.cm-s-pastel-on-dark .CodeMirror-matchingbracket{border:1px solid hsla(0,0%,100%,.25);color:#8f938f!important;margin:-1px -1px 0}.cm-s-railscasts.CodeMirror{background:#2b2b2b;color:#f4f1ed}.cm-s-railscasts div.CodeMirror-selected{background:#272935!important}.cm-s-railscasts .CodeMirror-gutters{background:#2b2b2b;border-right:0}.cm-s-railscasts .CodeMirror-linenumber{color:#5a647e}.cm-s-railscasts .CodeMirror-cursor{border-left:1px solid #d4cfc9!important}.cm-s-railscasts span.cm-comment{color:#bc9458}.cm-s-railscasts span.cm-atom,.cm-s-railscasts span.cm-number{color:#b6b3eb}.cm-s-railscasts span.cm-attribute,.cm-s-railscasts span.cm-property{color:#a5c261}.cm-s-railscasts span.cm-keyword{color:#da4939}.cm-s-railscasts span.cm-string{color:#ffc66d}.cm-s-railscasts span.cm-variable{color:#a5c261}.cm-s-railscasts span.cm-variable-2{color:#6d9cbe}.cm-s-railscasts span.cm-def{color:#cc7833}.cm-s-railscasts span.cm-error{background:#da4939;color:#d4cfc9}.cm-s-railscasts span.cm-bracket{color:#f4f1ed}.cm-s-railscasts span.cm-tag{color:#da4939}.cm-s-railscasts span.cm-link{color:#b6b3eb}.cm-s-railscasts .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-railscasts .CodeMirror-activeline-background{background:#303040}.cm-s-rubyblue.CodeMirror{background:#112435;color:#fff}.cm-s-rubyblue div.CodeMirror-selected{background:#38566f}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line>span::selection,.cm-s-rubyblue .CodeMirror-line>span>span::selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span>span::-moz-selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-gutters{background:#1f4661;border-right:7px solid #3e7087}.cm-s-rubyblue .CodeMirror-guttermarker{color:#fff}.cm-s-rubyblue .CodeMirror-guttermarker-subtle{color:#3e7087}.cm-s-rubyblue .CodeMirror-linenumber{color:#fff}.cm-s-rubyblue .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-rubyblue span.cm-comment{color:#999;font-style:italic;line-height:1em}.cm-s-rubyblue span.cm-atom{color:#f4c20b}.cm-s-rubyblue span.cm-attribute,.cm-s-rubyblue span.cm-number{color:#82c6e0}.cm-s-rubyblue span.cm-keyword{color:#f0f}.cm-s-rubyblue span.cm-string{color:#f08047}.cm-s-rubyblue span.cm-meta{color:#f0f}.cm-s-rubyblue span.cm-tag,.cm-s-rubyblue span.cm-variable-2{color:#7bd827}.cm-s-rubyblue span.cm-def,.cm-s-rubyblue span.cm-type,.cm-s-rubyblue span.cm-variable-3{color:#fff}.cm-s-rubyblue span.cm-bracket{color:#f0f}.cm-s-rubyblue span.cm-link{color:#f4c20b}.cm-s-rubyblue span.CodeMirror-matchingbracket{color:#f0f!important}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special{color:#ff9d00}.cm-s-rubyblue span.cm-error{color:#af2018}.cm-s-rubyblue .CodeMirror-activeline-background{background:#173047}.cm-s-seti.CodeMirror{background-color:#151718!important;color:#cfd2d1!important;border:none}.cm-s-seti .CodeMirror-gutters{color:#404b53;background-color:#0e1112;border:none}.cm-s-seti .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-seti .CodeMirror-linenumber{color:#6d8a88}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line>span::selection,.cm-s-seti .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line>span::-moz-selection,.cm-s-seti .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-seti span.cm-comment{color:#41535b}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2{color:#55b5db}.cm-s-seti span.cm-number{color:#cd3f45}.cm-s-seti span.cm-variable{color:#55b5db}.cm-s-seti span.cm-variable-2{color:#a074c4}.cm-s-seti span.cm-def{color:#55b5db}.cm-s-seti span.cm-keyword{color:#ff79c6}.cm-s-seti span.cm-operator{color:#9fca56}.cm-s-seti span.cm-keyword{color:#e6cd69}.cm-s-seti span.cm-atom{color:#cd3f45}.cm-s-seti span.cm-meta,.cm-s-seti span.cm-tag{color:#55b5db}.cm-s-seti span.cm-attribute,.cm-s-seti span.cm-qualifier{color:#9fca56}.cm-s-seti span.cm-property{color:#a074c4}.cm-s-seti span.cm-builtin,.cm-s-seti span.cm-type,.cm-s-seti span.cm-variable-3{color:#9fca56}.cm-s-seti .CodeMirror-activeline-background{background:#101213}.cm-s-seti .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.solarized.base03{color:#002b36}.solarized.base02{color:#073642}.solarized.base01{color:#586e75}.solarized.base00{color:#657b83}.solarized.base0{color:#839496}.solarized.base1{color:#93a1a1}.solarized.base2{color:#eee8d5}.solarized.base3{color:#fdf6e3}.solarized.solar-yellow{color:#b58900}.solarized.solar-orange{color:#cb4b16}.solarized.solar-red{color:#dc322f}.solarized.solar-magenta{color:#d33682}.solarized.solar-violet{color:#6c71c4}.solarized.solar-blue{color:#268bd2}.solarized.solar-cyan{color:#2aa198}.solarized.solar-green{color:#859900}.cm-s-solarized{line-height:1.45em;color-profile:sRGB;rendering-intent:auto}.cm-s-solarized.cm-s-dark{color:#839496;background-color:#002b36;text-shadow:#002b36 0 1px}.cm-s-solarized.cm-s-light{background-color:#fdf6e3;color:#657b83;text-shadow:#eee8d5 0 1px}.cm-s-solarized .CodeMirror-widget{text-shadow:none}.cm-s-solarized .cm-header{color:#586e75}.cm-s-solarized .cm-quote{color:#93a1a1}.cm-s-solarized .cm-keyword{color:#cb4b16}.cm-s-solarized .cm-atom,.cm-s-solarized .cm-number{color:#d33682}.cm-s-solarized .cm-def{color:#2aa198}.cm-s-solarized .cm-variable{color:#839496}.cm-s-solarized .cm-variable-2{color:#b58900}.cm-s-solarized .cm-type,.cm-s-solarized .cm-variable-3{color:#6c71c4}.cm-s-solarized .cm-property{color:#2aa198}.cm-s-solarized .cm-operator{color:#6c71c4}.cm-s-solarized .cm-comment{color:#586e75;font-style:italic}.cm-s-solarized .cm-string{color:#859900}.cm-s-solarized .cm-string-2{color:#b58900}.cm-s-solarized .cm-meta{color:#859900}.cm-s-solarized .cm-qualifier{color:#b58900}.cm-s-solarized .cm-builtin{color:#d33682}.cm-s-solarized .cm-bracket{color:#cb4b16}.cm-s-solarized .CodeMirror-matchingbracket{color:#859900}.cm-s-solarized .CodeMirror-nonmatchingbracket{color:#dc322f}.cm-s-solarized .cm-tag{color:#93a1a1}.cm-s-solarized .cm-attribute{color:#2aa198}.cm-s-solarized .cm-hr{color:transparent;border-top:1px solid #586e75;display:block}.cm-s-solarized .cm-link{color:#93a1a1;cursor:pointer}.cm-s-solarized .cm-special{color:#6c71c4}.cm-s-solarized .cm-em{color:#999;text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-solarized .cm-strong{color:#eee}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar{color:#586e75;border-bottom:1px dotted #dc322f}.cm-s-solarized.cm-s-dark div.CodeMirror-selected{background:#073642}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-dark.CodeMirror ::selection{background:rgba(7,54,66,.99)}.cm-s-dark .CodeMirror-line>span::-moz-selection,.cm-s-dark .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-light div.CodeMirror-selected{background:#eee8d5}.cm-s-light .CodeMirror-line>span::-moz-selection,.cm-s-light .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-light .CodeMirror-line>span::selection,.cm-s-light .CodeMirror-line>span>span::selection,.cm-s-solarized.cm-s-light .CodeMirror-line::selection{background:#eee8d5}.cm-s-ligh .CodeMirror-line>span::-moz-selection,.cm-s-ligh .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-solarized.CodeMirror{box-shadow:inset 7px 0 12px -6px #000}.cm-s-solarized .CodeMirror-gutters{border-right:0}.cm-s-solarized.cm-s-dark .CodeMirror-gutters{background-color:#073642}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber{color:#586e75;text-shadow:#021014 0 -1px}.cm-s-solarized.cm-s-light .CodeMirror-gutters{background-color:#eee8d5}.cm-s-solarized.cm-s-light .CodeMirror-linenumber{color:#839496}.cm-s-solarized .CodeMirror-linenumber{padding:0 5px}.cm-s-solarized .CodeMirror-guttermarker-subtle{color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker{color:#ddd}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker{color:#cb4b16}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text{color:#586e75}.cm-s-solarized .CodeMirror-cursor{border-left:1px solid #819090}.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor{background:#7e7}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor{background-color:#7e7}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor{background:#586e75}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor{background-color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.06)}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background{background:rgba(0,0,0,.06)}.cm-s-the-matrix.CodeMirror{background:#000;color:#0f0}.cm-s-the-matrix div.CodeMirror-selected{background:#2d2d2d}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line>span::selection,.cm-s-the-matrix .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-gutters{background:#060;border-right:2px solid #0f0}.cm-s-the-matrix .CodeMirror-guttermarker{color:#0f0}.cm-s-the-matrix .CodeMirror-guttermarker-subtle,.cm-s-the-matrix .CodeMirror-linenumber{color:#fff}.cm-s-the-matrix .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-the-matrix span.cm-keyword{color:#008803;font-weight:700}.cm-s-the-matrix span.cm-atom{color:#3ff}.cm-s-the-matrix span.cm-number{color:#ffb94f}.cm-s-the-matrix span.cm-def{color:#99c}.cm-s-the-matrix span.cm-variable{color:#f6c}.cm-s-the-matrix span.cm-variable-2{color:#c6f}.cm-s-the-matrix span.cm-type,.cm-s-the-matrix span.cm-variable-3{color:#96f}.cm-s-the-matrix span.cm-property{color:#62ffa0}.cm-s-the-matrix span.cm-operator{color:#999}.cm-s-the-matrix span.cm-comment{color:#ccc}.cm-s-the-matrix span.cm-string{color:#39c}.cm-s-the-matrix span.cm-meta{color:#c9f}.cm-s-the-matrix span.cm-qualifier{color:#fff700}.cm-s-the-matrix span.cm-builtin{color:#30a}.cm-s-the-matrix span.cm-bracket{color:#cc7}.cm-s-the-matrix span.cm-tag{color:#ffbd40}.cm-s-the-matrix span.cm-attribute{color:#fff700}.cm-s-the-matrix span.cm-error{color:red}.cm-s-the-matrix .CodeMirror-activeline-background{background:#040}.cm-s-tomorrow-night-bright.CodeMirror{background:#000;color:#eaeaea}.cm-s-tomorrow-night-bright div.CodeMirror-selected{background:#424242}.cm-s-tomorrow-night-bright .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker{color:#e78c45}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-bright .CodeMirror-linenumber{color:#424242}.cm-s-tomorrow-night-bright .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-bright span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-bright span.cm-atom,.cm-s-tomorrow-night-bright span.cm-number{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-attribute,.cm-s-tomorrow-night-bright span.cm-property{color:#9c9}.cm-s-tomorrow-night-bright span.cm-keyword{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-string{color:#e7c547}.cm-s-tomorrow-night-bright span.cm-variable{color:#b9ca4a}.cm-s-tomorrow-night-bright span.cm-variable-2{color:#7aa6da}.cm-s-tomorrow-night-bright span.cm-def{color:#e78c45}.cm-s-tomorrow-night-bright span.cm-bracket{color:#eaeaea}.cm-s-tomorrow-night-bright span.cm-tag{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-link{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-error{background:#d54e53;color:#6a6a6a}.cm-s-tomorrow-night-bright .CodeMirror-activeline-background{background:#2a2a2a}.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-tomorrow-night-eighties.CodeMirror{background:#000;color:#ccc}.cm-s-tomorrow-night-eighties div.CodeMirror-selected{background:#2d2d2d}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker{color:#f2777a}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber{color:#515151}.cm-s-tomorrow-night-eighties .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-eighties span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-eighties span.cm-atom,.cm-s-tomorrow-night-eighties span.cm-number{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-attribute,.cm-s-tomorrow-night-eighties span.cm-property{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-keyword{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-string{color:#fc6}.cm-s-tomorrow-night-eighties span.cm-variable{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-variable-2{color:#69c}.cm-s-tomorrow-night-eighties span.cm-def{color:#f99157}.cm-s-tomorrow-night-eighties span.cm-bracket{color:#ccc}.cm-s-tomorrow-night-eighties span.cm-tag{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-link{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-error{background:#f2777a;color:#6a6a6a}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background{background:#343600}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-ttcn .cm-quote{color:#090}.cm-s-ttcn .cm-header,.cm-strong{font-weight:700}.cm-s-ttcn .cm-header{color:#00f;font-weight:700}.cm-s-ttcn .cm-atom{color:#219}.cm-s-ttcn .cm-attribute{color:#00c}.cm-s-ttcn .cm-bracket{color:#997}.cm-s-ttcn .cm-comment{color:#333}.cm-s-ttcn .cm-def{color:#00f}.cm-s-ttcn .cm-em{font-style:italic}.cm-s-ttcn .cm-error{color:red}.cm-s-ttcn .cm-hr{color:#999}.cm-s-ttcn .cm-keyword{font-weight:700}.cm-s-ttcn .cm-link{color:#00c;text-decoration:underline}.cm-s-ttcn .cm-meta{color:#555}.cm-s-ttcn .cm-negative{color:#d44}.cm-s-ttcn .cm-positive{color:#292}.cm-s-ttcn .cm-qualifier{color:#555}.cm-s-ttcn .cm-strikethrough{text-decoration:line-through}.cm-s-ttcn .cm-string{color:#006400}.cm-s-ttcn .cm-string-2{color:#f50}.cm-s-ttcn .cm-strong{font-weight:700}.cm-s-ttcn .cm-tag{color:#170}.cm-s-ttcn .cm-variable{color:#8b2252}.cm-s-ttcn .cm-variable-2{color:#05a}.cm-s-ttcn .cm-type,.cm-s-ttcn .cm-variable-3{color:#085}.cm-s-ttcn .cm-invalidchar{color:red}.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes{color:#27408b}.cm-s-ttcn .cm-cmipVerbs{color:#8b2252}.cm-s-ttcn .cm-modifier{color:#d2691e}.cm-s-ttcn .cm-status{color:#8b4545}.cm-s-ttcn .cm-storage{color:#a020f0}.cm-s-ttcn .cm-tags{color:#006400}.cm-s-ttcn .cm-externalCommands{color:#8b4545;font-weight:700}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle{color:#2e8b57;font-weight:700}.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts{color:#006400}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps{color:#00f}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros{color:#27408b}.cm-s-ttcn .cm-types{color:brown;font-weight:700}.cm-s-ttcn .cm-visibilityModifiers{font-weight:700}.cm-s-twilight.CodeMirror{background:#141414;color:#f7f7f7}.cm-s-twilight div.CodeMirror-selected{background:#323232}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line>span::selection,.cm-s-twilight .CodeMirror-line>span>span::selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line>span::-moz-selection,.cm-s-twilight .CodeMirror-line>span>span::-moz-selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-gutters{background:#222;border-right:1px solid #aaa}.cm-s-twilight .CodeMirror-guttermarker{color:#fff}.cm-s-twilight .CodeMirror-guttermarker-subtle,.cm-s-twilight .CodeMirror-linenumber{color:#aaa}.cm-s-twilight .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-twilight .cm-keyword{color:#f9ee98}.cm-s-twilight .cm-atom{color:#fc0}.cm-s-twilight .cm-number{color:#ca7841}.cm-s-twilight .cm-def{color:#8da6ce}.cm-s-twilight span.cm-def,.cm-s-twilight span.cm-tag,.cm-s-twilight span.cm-type,.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-variable-3{color:#607392}.cm-s-twilight .cm-operator{color:#cda869}.cm-s-twilight .cm-comment{color:#777;font-style:italic;font-weight:400}.cm-s-twilight .cm-string{color:#8f9d6a;font-style:italic}.cm-s-twilight .cm-string-2{color:#bd6b18}.cm-s-twilight .cm-meta{background-color:#141414;color:#f7f7f7}.cm-s-twilight .cm-builtin{color:#cda869}.cm-s-twilight .cm-tag{color:#997643}.cm-s-twilight .cm-attribute{color:#d6bb6d}.cm-s-twilight .cm-header{color:#ff6400}.cm-s-twilight .cm-hr{color:#aeaeae}.cm-s-twilight .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-twilight .cm-error{border-bottom:1px solid red}.cm-s-twilight .CodeMirror-activeline-background{background:#27282e}.cm-s-twilight .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-vibrant-ink.CodeMirror{background:#000;color:#fff}.cm-s-vibrant-ink div.CodeMirror-selected{background:#35493c}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line>span::selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::-moz-selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-vibrant-ink .CodeMirror-guttermarker{color:#fff}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle,.cm-s-vibrant-ink .CodeMirror-linenumber{color:#d0d0d0}.cm-s-vibrant-ink .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-vibrant-ink .cm-keyword{color:#cc7832}.cm-s-vibrant-ink .cm-atom{color:#fc0}.cm-s-vibrant-ink .cm-number{color:#ffee98}.cm-s-vibrant-ink .cm-def{color:#8da6ce}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def,.cm-s-vibrant span.cm-tag,.cm-s-vibrant span.cm-type{color:#ffc66d}.cm-s-vibrant-ink .cm-operator{color:#888}.cm-s-vibrant-ink .cm-comment{color:gray;font-weight:700}.cm-s-vibrant-ink .cm-string{color:#a5c25c}.cm-s-vibrant-ink .cm-string-2{color:red}.cm-s-vibrant-ink .cm-meta{color:#d8fa3c}.cm-s-vibrant-ink .cm-attribute,.cm-s-vibrant-ink .cm-builtin,.cm-s-vibrant-ink .cm-tag{color:#8da6ce}.cm-s-vibrant-ink .cm-header{color:#ff6400}.cm-s-vibrant-ink .cm-hr{color:#aeaeae}.cm-s-vibrant-ink .cm-link{color:blue}.cm-s-vibrant-ink .cm-error{border-bottom:1px solid red}.cm-s-vibrant-ink .CodeMirror-activeline-background{background:#27282e}.cm-s-vibrant-ink .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-dark.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-xq-dark div.CodeMirror-selected{background:#27007a}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line>span::selection,.cm-s-xq-dark .CodeMirror-line>span>span::selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-xq-dark .CodeMirror-guttermarker{color:#ffbd40}.cm-s-xq-dark .CodeMirror-guttermarker-subtle,.cm-s-xq-dark .CodeMirror-linenumber{color:#f8f8f8}.cm-s-xq-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-xq-dark span.cm-keyword{color:#ffbd40}.cm-s-xq-dark span.cm-atom{color:#6c8cd5}.cm-s-xq-dark span.cm-number{color:#164}.cm-s-xq-dark span.cm-def{color:#fff;text-decoration:underline}.cm-s-xq-dark span.cm-variable{color:#fff}.cm-s-xq-dark span.cm-variable-2{color:#eee}.cm-s-xq-dark span.cm-type,.cm-s-xq-dark span.cm-variable-3{color:#ddd}.cm-s-xq-dark span.cm-comment{color:gray}.cm-s-xq-dark span.cm-string{color:#9fee00}.cm-s-xq-dark span.cm-meta{color:#ff0}.cm-s-xq-dark span.cm-qualifier{color:#fff700}.cm-s-xq-dark span.cm-builtin{color:#30a}.cm-s-xq-dark span.cm-bracket{color:#cc7}.cm-s-xq-dark span.cm-tag{color:#ffbd40}.cm-s-xq-dark span.cm-attribute{color:#fff700}.cm-s-xq-dark span.cm-error{color:red}.cm-s-xq-dark .CodeMirror-activeline-background{background:#27282e}.cm-s-xq-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-light span.cm-keyword{line-height:1em;font-weight:700;color:#5a5cad}.cm-s-xq-light span.cm-atom{color:#6c8cd5}.cm-s-xq-light span.cm-number{color:#164}.cm-s-xq-light span.cm-def{text-decoration:underline}.cm-s-xq-light span.cm-type,.cm-s-xq-light span.cm-variable,.cm-s-xq-light span.cm-variable-2,.cm-s-xq-light span.cm-variable-3{color:#000}.cm-s-xq-light span.cm-comment{color:#0080ff;font-style:italic}.cm-s-xq-light span.cm-string{color:red}.cm-s-xq-light span.cm-meta{color:#ff0}.cm-s-xq-light span.cm-qualifier{color:grey}.cm-s-xq-light span.cm-builtin{color:#7ea656}.cm-s-xq-light span.cm-bracket{color:#cc7}.cm-s-xq-light span.cm-tag{color:#3f7f7f}.cm-s-xq-light span.cm-attribute{color:#7f007f}.cm-s-xq-light span.cm-error{color:red}.cm-s-xq-light .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-xq-light .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important;background:#ff0}.cm-s-yeti.CodeMirror{background-color:#eceae8!important;color:#d1c9c0!important;border:none}.cm-s-yeti .CodeMirror-gutters{color:#adaba6;background-color:#e5e1db;border:none}.cm-s-yeti .CodeMirror-cursor{border-left:thin solid #d1c9c0}.cm-s-yeti .CodeMirror-linenumber{color:#adaba6}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line>span::selection,.cm-s-yeti .CodeMirror-line>span>span::selection{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line>span::-moz-selection,.cm-s-yeti .CodeMirror-line>span>span::-moz-selection{background:#dcd8d2}.cm-s-yeti span.cm-comment{color:#d4c8be}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2{color:#96c0d8}.cm-s-yeti span.cm-number{color:#a074c4}.cm-s-yeti span.cm-variable{color:#55b5db}.cm-s-yeti span.cm-variable-2{color:#a074c4}.cm-s-yeti span.cm-def{color:#55b5db}.cm-s-yeti span.cm-keyword,.cm-s-yeti span.cm-operator{color:#9fb96e}.cm-s-yeti span.cm-atom{color:#a074c4}.cm-s-yeti span.cm-meta,.cm-s-yeti span.cm-tag{color:#96c0d8}.cm-s-yeti span.cm-attribute{color:#9fb96e}.cm-s-yeti span.cm-qualifier{color:#96c0d8}.cm-s-yeti span.cm-builtin,.cm-s-yeti span.cm-property{color:#a074c4}.cm-s-yeti span.cm-type,.cm-s-yeti span.cm-variable-3{color:#96c0d8}.cm-s-yeti .CodeMirror-activeline-background{background:#e7e4e0}.cm-s-yeti .CodeMirror-matchingbracket{text-decoration:underline}.cm-s-zenburn .CodeMirror-gutters{background:#3f3f3f!important}.cm-s-zenburn .CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded{color:#999}.cm-s-zenburn .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-zenburn{background-color:#3f3f3f;color:#dcdccc}.cm-s-zenburn span.cm-builtin{color:#dcdccc;font-weight:700}.cm-s-zenburn span.cm-comment{color:#7f9f7f}.cm-s-zenburn span.cm-keyword{color:#f0dfaf;font-weight:700}.cm-s-zenburn span.cm-atom{color:#bfebbf}.cm-s-zenburn span.cm-def{color:#dcdccc}.cm-s-zenburn span.cm-variable{color:#dfaf8f}.cm-s-zenburn span.cm-variable-2{color:#dcdccc}.cm-s-zenburn span.cm-string,.cm-s-zenburn span.cm-string-2{color:#cc9393}.cm-s-zenburn span.cm-number{color:#dcdccc}.cm-s-zenburn span.cm-tag{color:#93e0e3}.cm-s-zenburn span.cm-attribute,.cm-s-zenburn span.cm-property{color:#dfaf8f}.cm-s-zenburn span.cm-qualifier{color:#7cb8bb}.cm-s-zenburn span.cm-meta{color:#f0dfaf}.cm-s-zenburn span.cm-header,.cm-s-zenburn span.cm-operator{color:#f0efd0}.cm-s-zenburn span.CodeMirror-matchingbracket{box-sizing:border-box;background:transparent;border-bottom:1px solid}.cm-s-zenburn span.CodeMirror-nonmatchingbracket{border-bottom:1px solid;background:none}.cm-s-zenburn .CodeMirror-activeline,.cm-s-zenburn .CodeMirror-activeline-background{background:#000}.cm-s-zenburn div.CodeMirror-selected{background:#545454}.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected{background:#4f4f4f}.CodeMirror-foldmarker{color:blue;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.CodeMirror{font:inherit}.CodeMirror-scroll{font-family:Menlo Regular,Consolas,Monaco,monospace;line-height:150%;position:relative}.CodeMirror-settings{color:#444;height:0;width:100%;z-index:9;text-shadow:none}.CodeMirror-settings__toggle{border-radius:3px;z-index:11;box-sizing:border-box;position:absolute;top:0;right:0;margin:6px;display:block;cursor:pointer}.CodeMirror-settings__toggle:after{content:"\f111";font-family:dashicons;line-height:1em;display:inline-block}.CodeMirror-settings__toggle:before{border:1px solid #ddd;border-radius:3px;z-index:-1;content:"";background-color:#fff;transition:.25s ease;transition-property:transform opacity;position:absolute;top:0;right:0;bottom:0;left:0}.CodeMirror-settings__wrapper{pointer-events:none;visibility:hidden}.CodeMirror-settings__body,.CodeMirror-settings__docked{pointer-events:auto;visibility:visible}.CodeMirror-settings__wrapper{position:absolute;width:calc(100% - 12px);max-height:calc(100% - 12px);top:0;margin:6px;box-sizing:border-box;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.CodeMirror-settings__docked{-ms-flex:0 0 auto;flex:0 0 auto;z-index:10;background-color:#fff;box-sizing:border-box}.CodeMirror-settings__header{border-top-left-radius:3px;border-top-right-radius:3px;border:1px solid #ddd;padding:4px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.CodeMirror-settings__body{-ms-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box;padding:1px 12px;overflow-y:auto;background-color:hsla(0,0%,100%,.93);border-left:1px solid #ddd;border-right:1px solid #ddd}.CodeMirror-settings__footer{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:1px solid #ddd;padding:6px 12px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:justify;justify-content:space-between}.CodeMirror-settings-advanced__description{margin-left:10px;opacity:.6}td.CodeMirror-settings__heading{padding:0;padding-bottom:12px}.CodeMirror-settings__foot-content{margin:0}.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__header,.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__wrapper{transition:.25s ease;transition-property:opacity,transform;transform-origin:top right}.CodeMirror-settings.closed .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.closed .CodeMirror-settings__toggle{opacity:.5}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before,.CodeMirror-settings.closed .CodeMirror-settings__toggle:hover{opacity:1}.CodeMirror-settings.closed .CodeMirror-settings__wrapper{opacity:0;transform:scaleX(0)}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.open .CodeMirror-settings__toggle:after{content:"\f158"}.CodeMirror-settings.open .CodeMirror-settings__toggle:before{opacity:0}.CodeMirror-settings.open .CodeMirror-settings__wrapper{opacity:1;transform:scaleX(1)}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open-advanced .CodeMirror-settings__toggle-advanced:before{content:"less"}.CodeMirror-settings.open-advanced .CodeMirror-settings__header{border-bottom-left-radius:0;border-bottom-right-radius:0}.CodeMirror-settings.open-advanced .CodeMirror-settings__body,.CodeMirror-settings.open-advanced .CodeMirror-settings__footer{visibility:visible;opacity:1;transform:translate(0);transition:visibility 1ms ease,opacity .25s ease 1ms,transform .25s ease 1ms}.CodeMirror-settings__button{position:relative}.CodeMirror-settings__button:active{transform:none!important}.CodeMirror-settings__button input,.CodeMirror-settings__button select{display:block;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-appearance:none;margin:0;padding:0;border:none;height:auto;font-size:0;line-height:0;height:100%!important;width:100%!important;background:none;opacity:0}.CodeMirror-settings__button option{font-size:12px}.CodeMirror-settings__button--select:after{content:"\f140";font-family:dashicons;vertical-align:top;display:inline-block;margin:0 -5px -4px}.CodeMirror-settings__toggle-advanced{cursor:pointer;display:inline-block;line-height:25px;padding:0 4px;vertical-align:middle}.CodeMirror-dialog{position:absolute;left:0;right:0;top:0;width:calc(100% - 12px);margin:6px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;z-index:12;padding-left:12px;border-radius:3px;border:1px solid #ddd;color:#444;background-color:#fff}.CodeMirror-dialog:after{position:absolute;right:0;top:0;bottom:0;content:"\f158";font-family:dashicons;line-height:1em;cursor:pointer}.CodeMirror-dialog input{border:none;outline:none;background:rgba(0,0,0,.05);color:inherit;font-family:monospace;margin:-1px 12px;padding:0 12px;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;-ms-flex:1 1 auto;flex:1 1 auto}.CodeMirror-dialog input,.CodeMirror-dialog input:focus{box-shadow:none}.CodeMirror-dialog button{margin:0 2px!important}.CodeMirror-dialog button:first-of-type{margin-left:12px!important}.CodeMirror-dialog span{-ms-flex-item-align:stretch;align-self:stretch;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none!important}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:6;transition:opacity .1s linear;opacity:.5}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover{opacity:1}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active{opacity:.75}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:transparent!important}.CodeMirror-overlayscroll-horizontal div:after,.CodeMirror-overlayscroll-vertical div:after{content:"";background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;position:absolute}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:8px;margin-bottom:6px}.CodeMirror-overlayscroll-horizontal div{top:0;bottom:0}.CodeMirror-overlayscroll-horizontal div:after{top:0;bottom:0;left:6px;right:6px}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:8px;margin-right:6px}.CodeMirror-overlayscroll-vertical div{left:0;right:0}.CodeMirror-overlayscroll-vertical div:after{left:0;right:0;bottom:6px}.wp-editor-expand .CodeMirror{min-height:300px}.wp-editor-expand .CodeMirror .CodeMirror-scroll{padding-bottom:330px!important;margin-bottom:-330px!important}.CodeMirror-mirrored{display:block!important;position:fixed!important;left:-9999px!important;top:-9999px!important;z-index:-999!important;opacity:0!important}#template .CodeMirror div{margin-right:0}#template .CodeMirror p{width:auto}.CodeMirror-vscrollbar{display:none!important}.CodeMirror-scroll{margin-right:-30px!important}.CodeMirror-settings__toggle{margin:6px!important}.heshFullscreen{z-index:99999;position:fixed!important;top:0;left:0;right:0;bottom:0;height:100%;background:#fff;padding:2% 2% 0}.heshFullscreen .CodeMirror{border:1px solid #ccc;border-radius:0 0 4px 4px;height:85%!important}.heshFullscreen #ed_toolbar{border:1px solid #ccc;border-bottom:0;border-radius:4px 4px 0 0}.heshFullscreen #cm_content_fullscreen:before{content:"\f506"}.cm-matchhighlight,.CodeMirror-matchingbracket,.CodeMirror-matchingtag{background-color:rgba(0,255,175,.2)}#cm_content_fullscreen{display:inline-block}.wp-editor-expand #cm_content_fullscreen{display:none}.hesh-content-resize-handle{position:absolute;right:0;bottom:0;width:12px;height:12px;z-index:8;margin:1px!important}#ed_toolbar{z-index:10}@media screen and (min-width:782px){.CodeMirror-settings__toggle{height:35px;width:35px}.CodeMirror-settings__toggle:after{font-size:20px;margin:7px}.CodeMirror-settings__docked{min-height:35px}.CodeMirror-settings__header{padding-right:35px}.CodeMirror-settings__button--select:after{font-size:16px;margin-top:0}.CodeMirror-dialog{height:35px;padding-right:35px}.CodeMirror-dialog:after{font-size:20px;margin:7px}.CodeMirror-overlayscroll-vertical div:after{top:47px}#template .CodeMirror{margin-right:20px}}@media screen and (max-width:781px){.CodeMirror-settings__toggle{height:44px;width:44px}.CodeMirror-settings__toggle:after{font-size:28px;margin:8px}.CodeMirror-settings__docked{min-height:44px}.CodeMirror-settings__header{padding-right:44px}.CodeMirror-settings__button--select:after{font-size:20px;margin-top:-2px}.CodeMirror-dialog{height:44px;padding-right:44px}.CodeMirror-dialog:after{font-size:28px;margin:8px}.CodeMirror-overlayscroll-vertical div:after{top:56px}#template .CodeMirror{margin-right:0}}@media screen and (max-height:550px){.heshFullscreen .CodeMirror{height:75%!important}}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}@keyframes a{50%{background-color:transparent}}
dist/hesh.min.js CHANGED
@@ -1,13 +1,13 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function r(e,r){return t(e).appendChild(r)}function n(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,r,i){var o=n(e,t,r,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function a(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function l(t,r){var n=t.className;e(r).test(n)||(t.className+=(n?" ":"")+r)}function s(t,r){for(var n=t.split(" "),i=0;i<n.length;i++)n[i]&&!e(n[i]).test(r)&&(r+=" "+n[i]);return r}function c(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function u(e,t,r){t||(t={});for(var n in e)!e.hasOwnProperty(n)||r===!1&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function f(e,t,r,n,i){null==t&&(t=e.search(/[^\s\u00a0]/))==-1&&(t=e.length);for(var o=n||0,a=i||0;;){var l=e.indexOf("\t",o);if(l<0||l>=t)return a+(t-o);a+=l-o,a+=r-a%r,o=l+1}}function d(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}function h(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);o==-1&&(o=e.length);var a=o-n;if(o==e.length||i+a>=t)return n+Math.min(a,t-i);if(i+=o-n,i+=r-i%r,n=o+1,i>=t)return n}}function p(e){for(;Ma.length<=e;)Ma.push(m(Ma)+" ");return Ma[e]}function m(e){return e[e.length-1]}function g(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function v(e,t,r){for(var n=0,i=r(t);n<e.length&&r(e[n])<=i;)n++;e.splice(n,0,t)}function y(){}function b(e,t){var r;return Object.create?r=Object.create(e):(y.prototype=e,r=new y),t&&u(t,r),r}function x(e){return/\w/.test(e)||e>"€"&&(e.toUpperCase()!=e.toLowerCase()||La.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&x(e))||t.test(e):x(e)}function k(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function C(e){return e.charCodeAt(0)>=768&&Ta.test(e)}function S(e,t,r){for(;(r<0?t>0:t<e.length)&&C(e.charAt(t));)t+=r;return t}function _(e,t,r){for(;;){if(Math.abs(t-r)<=1)return e(t)?t:r;var n=Math.floor((t+r)/2);e(n)?r=n:t=n}}function M(e,t,r){var o=this;this.input=r,o.scrollbarFiller=n("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=n("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=i("div",null,"CodeMirror-code"),o.selectionDiv=n("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=n("div",null,"CodeMirror-cursors"),o.measure=n("div",null,"CodeMirror-measure"),o.lineMeasure=n("div",null,"CodeMirror-measure"),o.lineSpace=i("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var a=i("div",[o.lineSpace],"CodeMirror-lines");o.mover=n("div",[a],null,"position: relative"),o.sizer=n("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=n("div",null,null,"position: absolute; height: "+wa+"px; width: 1px;"),o.gutters=n("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=n("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=n("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),Qo&&Jo<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),Zo||$o&&sa||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,r.init(o)}function L(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t<o){r=i;break}t-=o}return r.lines[t]}function T(e,t,r){var n=[],i=t.line;return e.iter(t.line,r.line+1,function(e){var o=e.text;i==r.line&&(o=o.slice(0,r.ch)),i==t.line&&(o=o.slice(t.ch)),n.push(o),++i}),n}function A(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function O(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function E(e){if(null==e.parent)return null;for(var t=e.parent,r=d(t.lines,e),n=t.parent;n;t=n,n=n.parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function I(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var a=0;a<e.lines.length;++a){var l=e.lines[a],s=l.height;if(t<s)break;t-=s}return r+a}function N(e,t){return t>=e.first&&t<e.first+e.size}function P(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function R(e,t,r){if(void 0===r&&(r=null),!(this instanceof R))return new R(e,t,r);this.line=e,this.ch=t,this.sticky=r}function B(e,t){return e.line-t.line||e.ch-t.ch}function z(e,t){return e.sticky==t.sticky&&0==B(e,t)}function D(e){return R(e.line,e.ch)}function W(e,t){return B(e,t)<0?t:e}function q(e,t){return B(e,t)<0?e:t}function F(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function H(e,t){if(t.line<e.first)return R(e.first,0);var r=e.first+e.size-1;return t.line>r?R(r,L(e,r).text.length):j(t,L(e,t.line).text.length)}function j(e,t){var r=e.ch;return null==r||r>t?R(e.line,t):r<0?R(e.line,0):e}function K(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=H(e,t[n]);return r}function U(){Aa=!0}function V(){Oa=!0}function $(e,t,r){this.marker=e,this.from=t,this.to=r}function G(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function X(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function Y(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function Q(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);if(l||o.from==t&&"bookmark"==a.type&&(!r||!o.marker.insertLeft)){var s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new $(a,o.from,s?null:o.to))}}return n}function J(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);if(l||o.from==t&&"bookmark"==a.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new $(a,s?null:o.from-t,null==o.to?null:o.to-t))}}return n}function Z(e,t){if(t.full)return null;var r=N(e,t.from.line)&&L(e,t.from.line).markedSpans,n=N(e,t.to.line)&&L(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,a=0==B(t.from,t.to),l=Q(r,i,a),s=J(n,o,a),c=1==t.text.length,u=m(t.text).length+(c?i:0);if(l)for(var f=0;f<l.length;++f){var d=l[f];if(null==d.to){var h=G(s,d.marker);h?c&&(d.to=null==h.to?null:h.to+u):d.to=i}}if(s)for(var p=0;p<s.length;++p){var g=s[p];if(null!=g.to&&(g.to+=u),null==g.from){var v=G(l,g.marker);v||(g.from=u,c&&(l||(l=[])).push(g))}else g.from+=u,c&&(l||(l=[])).push(g)}l&&(l=ee(l)),s&&s!=l&&(s=ee(s));var y=[l];if(!c){var b,x=t.text.length-2;if(x>0&&l)for(var w=0;w<l.length;++w)null==l[w].to&&(b||(b=[])).push(new $(l[w].marker,null,null));for(var k=0;k<x;++k)y.push(b);y.push(s)}return y}function ee(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&r.marker.clearWhenEmpty!==!1&&e.splice(t--,1)}return e.length?e:null}function te(e,t,r){var n=null;if(e.iter(t.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var r=e.markedSpans[t].marker;!r.readOnly||n&&d(n,r)!=-1||(n||(n=[])).push(r)}}),!n)return null;for(var i=[{from:t,to:r}],o=0;o<n.length;++o)for(var a=n[o],l=a.find(0),s=0;s<i.length;++s){var c=i[s];if(!(B(c.to,l.from)<0||B(c.from,l.to)>0)){var u=[s,1],f=B(c.from,l.from),h=B(c.to,l.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:l.to,to:c.to}),i.splice.apply(i,u),s+=u.length-3}}return i}function re(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function ne(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function ie(e){return e.inclusiveLeft?-1:0}function oe(e){return e.inclusiveRight?1:0}function ae(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=B(n.from,i.from)||ie(e)-ie(t);if(o)return-o;var a=B(n.to,i.to)||oe(e)-oe(t);return a?a:t.id-e.id}function le(e,t){var r,n=Oa&&e.markedSpans;if(n)for(var i=void 0,o=0;o<n.length;++o)i=n[o],i.marker.collapsed&&null==(t?i.from:i.to)&&(!r||ae(r,i.marker)<0)&&(r=i.marker);return r}function se(e){return le(e,!0)}function ce(e){return le(e,!1)}function ue(e,t,r,n,i){var o=L(e,t),a=Oa&&o.markedSpans;if(a)for(var l=0;l<a.length;++l){var s=a[l];if(s.marker.collapsed){var c=s.marker.find(0),u=B(c.from,r)||ie(s.marker)-ie(i),f=B(c.to,n)||oe(s.marker)-oe(i);if(!(u>=0&&f<=0||u<=0&&f>=0)&&(u<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?B(c.to,r)>=0:B(c.to,r)>0)||u>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?B(c.from,n)<=0:B(c.from,n)<0)))return!0}}}function fe(e){for(var t;t=se(e);)e=t.find(-1,!0).line;return e}function de(e){for(var t;t=ce(e);)e=t.find(1,!0).line;return e}function he(e){for(var t,r;t=ce(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}function pe(e,t){var r=L(e,t),n=fe(r);return r==n?t:E(n)}function me(e,t){if(t>e.lastLine())return t;var r,n=L(e,t);if(!ge(e,n))return t;for(;r=ce(n);)n=r.find(1,!0).line;return E(n)+1}function ge(e,t){var r=Oa&&t.markedSpans;if(r)for(var n=void 0,i=0;i<r.length;++i)if(n=r[i],n.marker.collapsed){if(null==n.from)return!0;if(!n.marker.widgetNode&&0==n.from&&n.marker.inclusiveLeft&&ve(e,t,n))return!0}}function ve(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return ve(e,n.line,G(n.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if(i=t.markedSpans[o],i.marker.collapsed&&!i.marker.widgetNode&&i.from==r.to&&(null==i.to||i.to!=r.from)&&(i.marker.inclusiveLeft||r.marker.inclusiveRight)&&ve(e,t,i))return!0}function ye(e){e=fe(e);for(var t=0,r=e.parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;r=o,o=r.parent)for(var a=0;a<o.children.length;++a){var l=o.children[a];if(l==r)break;t+=l.height}return t}function be(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=se(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=ce(n);){var o=t.find(0,!0);r-=n.text.length-o.from.ch,n=o.to.line,r+=n.text.length-o.to.ch}return r}function xe(e){var t=e.display,r=e.doc;t.maxLine=L(r,r.first),t.maxLineLength=be(t.maxLine),t.maxLineChanged=!0,r.iter(function(e){var r=be(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function we(e,t,r,n){if(!e)return n(t,r,"ltr");for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<r&&a.to>t||t==r&&a.to==t)&&(n(Math.max(a.from,t),Math.min(a.to,r),1==a.level?"rtl":"ltr"),i=!0)}i||n(t,r,"ltr")}function ke(e,t,r){var n;Ea=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:Ea=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:Ea=i)}return null!=n?n:Ea}function Ce(e,t){var r=e.order;return null==r&&(r=e.order=Ia(e.text,t)),r}function Se(e,t,r){var n=S(e.text,t+r,r);return n<0||n>e.text.length?null:n}function _e(e,t,r){var n=Se(e,t.ch,r);return null==n?null:new R(t.line,n,r<0?"after":"before")}function Me(e,t,r,n,i){if(e){var o=Ce(r,t.doc.direction);if(o){var a,l=i<0?m(o):o[0],s=i<0==(1==l.level),c=s?"after":"before";if(l.level>0){var u=Yt(t,r);a=i<0?r.text.length-1:0;var f=Qt(t,u,a).top;a=_(function(e){return Qt(t,u,e).top==f},i<0==(1==l.level)?l.from:l.to-1,a),"before"==c&&(a=Se(r,a,1,!0))}else a=i<0?l.to:l.from;return new R(n,a,c)}}return new R(n,i<0?r.text.length:0,i<0?"before":"after")}function Le(e,t,r,n){var i=Ce(t,e.doc.direction);if(!i)return _e(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=ke(i,r.ch,r.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(n>0?a.to>r.ch:a.from<r.ch))return _e(t,r,n);var l,s=function(e,r){return Se(t,e instanceof R?e.ch:e,r)},c=function(r){return e.options.lineWrapping?(l=l||Yt(e,t),mr(e,t,l,r)):{begin:0,end:t.text.length}},u=c("before"==r.sticky?s(r,-1):r.ch);if("rtl"==e.doc.direction||1==a.level){var f=1==a.level==n<0,d=s(r,f?1:-1);if(null!=d&&(f?d<=a.to&&d<=u.end:d>=a.from&&d>=u.begin)){var h=f?"before":"after";return new R(r.line,d,h)}}var p=function(e,t,n){for(var o=function(e,t){return t?new R(r.line,s(e,1),"before"):new R(r.line,e,"after")};e>=0&&e<i.length;e+=t){var a=i[e],l=t>0==(1!=a.level),c=l?n.begin:s(n.end,-1);if(a.from<=c&&c<a.to)return o(c,l);if(c=l?a.from:s(a.to,-1),n.begin<=c&&c<n.end)return o(c,l)}},m=p(o+n,n,u);if(m)return m;var g=n>0?u.end:s(u.begin,-1);return null==g||n>0&&g==t.text.length||!(m=p(n>0?0:i.length-1,n,c(g)))?null:m}function Te(e,t){return e._handlers&&e._handlers[t]||Na}function Ae(e,t,r){if(e.removeEventListener)e.removeEventListener(t,r,!1);else if(e.detachEvent)e.detachEvent("on"+t,r);else{var n=e._handlers,i=n&&n[t];if(i){var o=d(i,r);o>-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function Oe(e,t){var r=Te(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,n)}function Ee(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Oe(e,r||t.type,e,t),ze(t)||t.codemirrorIgnore}function Ie(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var r=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),n=0;n<t.length;++n)d(r,t[n])==-1&&r.push(t[n])}function Ne(e,t){return Te(e,t).length>0}function Pe(e){e.prototype.on=function(e,t){Pa(this,e,t)},e.prototype.off=function(e,t){Ae(this,e,t)}}function Re(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Be(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ze(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function De(e){Re(e),Be(e)}function We(e){return e.target||e.srcElement}function qe(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),ca&&e.ctrlKey&&1==t&&(t=3),t}function Fe(e){if(null==ba){var t=n("span","​");r(e,n("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(ba=t.offsetWidth<=1&&t.offsetHeight>2&&!(Qo&&Jo<8))}var i=ba?n("span","​"):n("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function He(e){if(null!=xa)return xa;var n=r(e,document.createTextNode("AخA")),i=ha(n,0,1).getBoundingClientRect(),o=ha(n,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(xa=o.right-i.right<3)}function je(e){if(null!=Wa)return Wa;var t=r(e,n("span","x")),i=t.getBoundingClientRect(),o=ha(t,0,1).getBoundingClientRect();return Wa=Math.abs(i.left-o.left)>1}function Ke(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),qa[e]=t}function Ue(e,t){Fa[e]=t}function Ve(e){if("string"==typeof e&&Fa.hasOwnProperty(e))e=Fa[e];else if(e&&"string"==typeof e.name&&Fa.hasOwnProperty(e.name)){var t=Fa[e.name];"string"==typeof t&&(t={name:t}),e=b(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ve("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ve("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function $e(e,t){t=Ve(t);var r=qa[t.name];if(!r)return $e(e,"text/plain");var n=r(e,t);if(Ha.hasOwnProperty(t.name)){var i=Ha[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)n[a]=t.modeProps[a];return n}function Ge(e,t){u(t,Ha.hasOwnProperty(e)?Ha[e]:Ha[e]={})}function Xe(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Ye(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Qe(e,t,r){return!e.startState||e.startState(t,r)}function Je(e,t,r,n){var i=[e.state.modeGen],o={};at(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var a=0;a<e.state.overlays.length;++a)!function(r){var n=e.state.overlays[r],a=1,l=0;at(e,t.text,n.mode,!0,function(e,t){for(var r=a;l<e;){var o=i[a];o>e&&i.splice(a,1,e,i[a+1],o),a+=2,l=Math.min(e,o)}if(t)if(n.opaque)i.splice(r,a-r,e,"overlay "+t),a=r+2;else for(;r<a;r+=2){var s=i[r+1];i[r+1]=(s?s+" ":"")+"overlay "+t}},o)}(a);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Ze(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=et(e,E(t)),i=Je(e,t,t.text.length>e.options.maxHighlightLength?Xe(e.doc.mode,n):n);t.stateAfter=n,t.styles=i.styles,i.classes?t.styleClasses=i.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.frontier&&e.doc.frontier++}return t.styles}function et(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return!0;var o=lt(e,t,r),a=o>n.first&&L(n,o-1).stateAfter;return a=a?Xe(n.mode,a):Qe(n.mode),n.iter(o,t,function(r){tt(e,r.text,a);var l=o==t-1||o%5==0||o>=i.viewFrom&&o<i.viewTo;r.stateAfter=l?Xe(n.mode,a):null,++o}),r&&(n.frontier=o),a}function tt(e,t,r,n){var i=e.doc.mode,o=new ja(t,e.options.tabSize);for(o.start=o.pos=n||0,""==t&&rt(i,r);!o.eol();)nt(i,o,r),o.start=o.pos}function rt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=Ye(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function nt(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=Ye(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function it(e,t,r,n){var i,o=function(e){return{start:f.start,end:f.pos,string:f.current(),type:i||null,state:e?Xe(a.mode,u):u}},a=e.doc,l=a.mode;t=H(a,t);var s,c=L(a,t.line),u=et(e,t.line,r),f=new ja(c.text,e.options.tabSize);for(n&&(s=[]);(n||f.pos<t.ch)&&!f.eol();)f.start=f.pos,i=nt(l,f,u),n&&s.push(o(!0));return n?s:o()}function ot(e,t){if(e)for(;;){var r=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!r)break;e=e.slice(0,r.index)+e.slice(r.index+r[0].length);var n=r[1]?"bgClass":"textClass";null==t[n]?t[n]=r[2]:new RegExp("(?:^|s)"+r[2]+"(?:$|s)").test(t[n])||(t[n]+=" "+r[2])}return e}function at(e,t,r,n,i,o,a){var l=r.flattenSpans;null==l&&(l=e.options.flattenSpans);var s,c=0,u=null,f=new ja(t,e.options.tabSize),d=e.options.addModeClass&&[null];for(""==t&&ot(rt(r,n),o);!f.eol();){if(f.pos>e.options.maxHighlightLength?(l=!1,a&&tt(e,t,n,f.pos),f.pos=t.length,s=null):s=ot(nt(r,f,n,d),o),d){var h=d[0].name;h&&(s="m-"+(s?h+" "+s:h))}if(!l||u!=s){for(;c<f.start;)c=Math.min(f.start,c+5e3),i(c,u);u=s}f.start=f.pos}for(;c<f.pos;){var p=Math.min(f.pos,c+5e3);i(p,u),c=p}}function lt(e,t,r){for(var n,i,o=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=L(o,l-1);if(s.stateAfter&&(!r||l<=o.frontier))return l;var c=f(s.text,null,e.options.tabSize);(null==i||n>c)&&(i=l-1,n=c)}return i}function st(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),re(e),ne(e,r);var i=n?n(e):1;i!=e.height&&O(e,i)}function ct(e){e.parent=null,re(e)}function ut(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?$a:Va;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function ft(e,t){var r=i("span",null,null,Zo?"padding-right: .1px":null),n={pre:i("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(Qo||Zo)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var a=o?t.rest[o-1]:t.line,l=void 0;n.pos=0,n.addToken=ht,He(e.display.measure)&&(l=Ce(a,e.doc.direction))&&(n.addToken=mt(n.addToken,l)),n.map=[];vt(a,n,Ze(e,a,t!=e.display.externalMeasured&&E(a))),a.styleClasses&&(a.styleClasses.bgClass&&(n.bgClass=s(a.styleClasses.bgClass,n.bgClass||"")),a.styleClasses.textClass&&(n.textClass=s(a.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Fe(e.display.measure))),0==o?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(Zo){var c=n.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return Oe(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=s(n.pre.className,n.textClass||"")),n}function dt(e){var t=n("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function ht(e,t,r,i,o,a,l){if(t){var s,c=e.splitSpaces?pt(t,e.trailingSpace):t,u=e.cm.state.specialChars,f=!1;if(u.test(t)){s=document.createDocumentFragment();for(var d=0;;){u.lastIndex=d;var h=u.exec(t),m=h?h.index-d:t.length-d;if(m){var g=document.createTextNode(c.slice(d,d+m));Qo&&Jo<9?s.appendChild(n("span",[g])):s.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!h)break;d+=m+1;var v=void 0;if("\t"==h[0]){var y=e.cm.options.tabSize,b=y-e.col%y;v=s.appendChild(n("span",p(b),"cm-tab")),v.setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==h[0]||"\n"==h[0]?(v=s.appendChild(n("span","\r"==h[0]?"␍":"␤","cm-invalidchar")),v.setAttribute("cm-text",h[0]),e.col+=1):(v=e.cm.options.specialCharPlaceholder(h[0]),v.setAttribute("cm-text",h[0]),Qo&&Jo<9?s.appendChild(n("span",[v])):s.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,s=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,s),Qo&&Jo<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),r||i||o||f||l){var x=r||"";i&&(x+=i),o&&(x+=o);var w=n("span",[s],x,l);return a&&(w.title=a),e.content.appendChild(w)}e.content.appendChild(s)}}function pt(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),n+=o,r=" "==o}return n}function mt(e,t){return function(r,n,i,o,a,l,s){i=i?i+" cm-force-border":"cm-force-border";for(var c=r.pos,u=c+n.length;;){for(var f=void 0,d=0;d<t.length&&(f=t[d],!(f.to>c&&f.from<=c));d++);if(f.to>=u)return e(r,n,i,o,a,l,s);e(r,n.slice(0,f.to-c),i,o,null,l,s),o=null,n=n.slice(f.to-c),c=f.to}}}function gt(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function vt(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var a,l,s,c,u,f,d,h=i.length,p=0,m=1,g="",v=0;;){if(v==p){s=c=u=f=l="",d=null,v=1/0;for(var y=[],b=void 0,x=0;x<n.length;++x){var w=n[x],k=w.marker;"bookmark"==k.type&&w.from==p&&k.widgetNode?y.push(k):w.from<=p&&(null==w.to||w.to>p||k.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),k.className&&(s+=" "+k.className),k.css&&(l=(l?l+";":"")+k.css),k.startStyle&&w.from==p&&(u+=" "+k.startStyle),k.endStyle&&w.to==v&&(b||(b=[])).push(k.endStyle,w.to),k.title&&!f&&(f=k.title),k.collapsed&&(!d||ae(d.marker,k)<0)&&(d=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var C=0;C<b.length;C+=2)b[C+1]==v&&(c+=" "+b[C]);if(!d||d.from==p)for(var S=0;S<y.length;++S)gt(t,0,y[S]);if(d&&(d.from||0)==p){if(gt(t,(null==d.to?h+1:d.to)-p,d.marker,null==d.from),null==d.to)return;d.to==p&&(d=!1)}}if(p>=h)break;for(var _=Math.min(h,v);;){if(g){var M=p+g.length;if(!d){var L=M>_?g.slice(0,_-p):g;t.addToken(t,L,a?a+s:s,u,p+L.length==v?c:"",f,l)}if(M>=_){g=g.slice(_-p),p=_;break}p=M,u=""}g=i.slice(o,o=r[m++]),a=ut(r[m++],t.cm.options)}}else for(var T=1;T<r.length;T+=2)t.addToken(t,i.slice(o,o=r[T]),ut(r[T+1],t.cm.options))}function yt(e,t,r){this.line=t,this.rest=he(t),this.size=this.rest?E(m(this.rest))-r+1:1,this.node=this.text=null,this.hidden=ge(e,t)}function bt(e,t,r){for(var n,i=[],o=t;o<r;o=n){var a=new yt(e.doc,L(e.doc,o),o);n=o+a.size,i.push(a)}return i}function xt(e){Ga?Ga.ops.push(e):e.ownsGroup=Ga={ops:[e],delayedCallbacks:[]}}function wt(e){var t=e.delayedCallbacks,r=0;do{for(;r<t.length;r++)t[r].call(null);for(var n=0;n<e.ops.length;n++){var i=e.ops[n];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(r<t.length)}function kt(e,t){var r=e.ownsGroup;if(r)try{wt(r)}finally{Ga=null,t(r)}}function Ct(e,t){var r=Te(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);Ga?n=Ga.delayedCallbacks:Xa?n=Xa:(n=Xa=[],setTimeout(St,0));for(var o=0;o<r.length;++o)!function(e){n.push(function(){return r[e].apply(null,i)})}(o)}}function St(){var e=Xa;Xa=null;for(var t=0;t<e.length;++t)e[t]()}function _t(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?At(e,t):"gutter"==o?Et(e,t,r,n):"class"==o?Ot(e,t):"widget"==o&&It(e,t,n)}t.changes=null}function Mt(e){return e.node==e.text&&(e.node=n("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),Qo&&Jo<8&&(e.node.style.zIndex=2)),e.node}function Lt(e,t){var r=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(r&&(r+=" CodeMirror-linebackground"),t.background)r?t.background.className=r:(t.background.parentNode.removeChild(t.background),t.background=null);else if(r){var i=Mt(t);t.background=i.insertBefore(n("div",null,r),i.firstChild),e.display.input.setUneditable(t.background)}}function Tt(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):ft(e,t)}function At(e,t){var r=t.text.className,n=Tt(e,t);t.text==t.node&&(t.node=n.pre),t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,Ot(e,t)):r&&(t.text.className=r)}function Ot(e,t){Lt(e,t),t.line.wrapClass?Mt(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var r=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=r||""}function Et(e,t,r,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Mt(t);t.gutterBackground=n("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var a=t.line.gutterMarkers;if(e.options.lineNumbers||a){var l=Mt(t),s=t.gutter=n("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(s),l.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=" "+t.line.gutterClass),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(t.lineNumber=s.appendChild(n("div",P(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),a)for(var c=0;c<e.options.gutters.length;++c){var u=e.options.gutters[c],f=a.hasOwnProperty(u)&&a[u];f&&s.appendChild(n("div",[f],"CodeMirror-gutter-elt","left: "+i.gutterLeft[u]+"px; width: "+i.gutterWidth[u]+"px"))}}}function It(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild,i=void 0;n;n=i)i=n.nextSibling,"CodeMirror-linewidget"==n.className&&t.node.removeChild(n);Pt(e,t,r)}function Nt(e,t,r,n){var i=Tt(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),Ot(e,t),Et(e,t,r,n),Pt(e,t,n),t.node}function Pt(e,t,r){if(Rt(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)Rt(e,t.rest[n],t,r,!1)}function Rt(e,t,r,i,o){if(t.widgets)for(var a=Mt(r),l=0,s=t.widgets;l<s.length;++l){var c=s[l],u=n("div",[c.node],"CodeMirror-linewidget");c.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),Bt(c,u,r,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,r.gutter||r.text):a.appendChild(u),Ct(c,"redraw")}}function Bt(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+"px",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+"px"))}function zt(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),r(t.display.measure,n("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function Dt(e,t){for(var r=We(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&"true"==r.getAttribute("cm-ignore-events")||r.parentNode==e.sizer&&r!=e.mover)return!0}function Wt(e){return e.lineSpace.offsetTop}function qt(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Ft(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=r(e.measure,n("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function Ht(e){return wa-e.display.nativeBarWidth}function jt(e){return e.display.scroller.clientWidth-Ht(e)-e.display.barWidth}function Kt(e){return e.display.scroller.clientHeight-Ht(e)-e.display.barHeight}function Ut(e,t,r){var n=e.options.lineWrapping,i=n&&jt(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),l=0;l<a.length-1;l++){var s=a[l],c=a[l+1];Math.abs(s.bottom-c.bottom)>2&&o.push((s.bottom+c.top)/2-r.top)}}o.push(r.bottom-r.top)}}function Vt(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(var i=0;i<e.rest.length;i++)if(E(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function $t(e,t){t=fe(t);var n=E(t),i=e.display.externalMeasured=new yt(e.doc,t,n);i.lineN=n;var o=i.built=ft(e,i);return i.text=o.pre,r(e.display.lineMeasure,o.pre),i}function Gt(e,t,r,n){return Qt(e,Yt(e,t),r,n)}function Xt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Sr(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function Yt(e,t){var r=E(t),n=Xt(e,r);n&&!n.text?n=null:n&&n.changes&&(_t(e,n,r,br(e)),e.curOp.forceUpdate=!0),n||(n=$t(e,t));var i=Vt(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,
2
- before:i.before,hasHeights:!1}}function Qt(e,t,r,n,i){t.before&&(r=-1);var o,a=r+(n||"");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(Ut(e,t.view,t.rect),t.hasHeights=!0),o=er(e,t,r,n),o.bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}function Jt(e,t,r){for(var n,i,o,a,l,s,c=0;c<e.length;c+=3)if(l=e[c],s=e[c+1],t<l?(i=0,o=1,a="left"):t<s?(i=t-l,o=i+1):(c==e.length-3||t==s&&e[c+3]>t)&&(o=s-l,i=o-1,t>=s&&(a="right")),null!=i){if(n=e[c+2],l==s&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)n=e[2+(c-=3)],a="left";if("right"==r&&i==s-l)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)n=e[2+(c+=3)],a="right";break}return{node:n,start:i,end:o,collapse:a,coverStart:l,coverEnd:s}}function Zt(e,t){var r=Ya;if("left"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;i>=0&&(r=e[i]).left==r.right;i--);return r}function er(e,t,r,n){var i,o=Jt(t.map,r,n),a=o.node,l=o.start,s=o.end,c=o.collapse;if(3==a.nodeType){for(var u=0;u<4;u++){for(;l&&C(t.line.text.charAt(o.coverStart+l));)--l;for(;o.coverStart+s<o.coverEnd&&C(t.line.text.charAt(o.coverStart+s));)++s;if(i=Qo&&Jo<9&&0==l&&s==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():Zt(ha(a,l,s).getClientRects(),n),i.left||i.right||0==l)break;s=l,l-=1,c="right"}Qo&&Jo<11&&(i=tr(e.display.measure,i))}else{l>0&&(c=n="right");var f;i=e.options.lineWrapping&&(f=a.getClientRects()).length>1?f["right"==n?f.length-1:0]:a.getBoundingClientRect()}if(Qo&&Jo<9&&!l&&(!i||!i.left&&!i.right)){var d=a.parentNode.getClientRects()[0];i=d?{left:d.left,right:d.left+yr(e.display),top:d.top,bottom:d.bottom}:Ya}for(var h=i.top-t.rect.top,p=i.bottom-t.rect.top,m=(h+p)/2,g=t.view.measure.heights,v=0;v<g.length-1&&!(m<g[v]);v++);var y=v?g[v-1]:0,b=g[v],x={left:("right"==c?i.right:i.left)-t.rect.left,right:("left"==c?i.left:i.right)-t.rect.left,top:y,bottom:b};return i.left||i.right||(x.bogus=!0),e.options.singleCursorHeightPerLine||(x.rtop=h,x.rbottom=p),x}function tr(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!je(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}function rr(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function nr(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var r=0;r<e.display.view.length;r++)rr(e.display.view[r])}function ir(e){nr(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function or(){return window.pageXOffset||(document.documentElement||document.body).scrollLeft}function ar(){return window.pageYOffset||(document.documentElement||document.body).scrollTop}function lr(e,t,r,n,i){if(!i&&t.widgets)for(var o=0;o<t.widgets.length;++o)if(t.widgets[o].above){var a=zt(t.widgets[o]);r.top+=a,r.bottom+=a}if("line"==n)return r;n||(n="local");var l=ye(t);if("local"==n?l+=Wt(e.display):l-=e.display.viewOffset,"page"==n||"window"==n){var s=e.display.lineSpace.getBoundingClientRect();l+=s.top+("window"==n?0:ar());var c=s.left+("window"==n?0:or());r.left+=c,r.right+=c}return r.top+=l,r.bottom+=l,r}function sr(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=or(),i-=ar();else if("local"==r||!r){var o=e.display.sizer.getBoundingClientRect();n+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:n-a.left,top:i-a.top}}function cr(e,t,r,n,i){return n||(n=L(e.doc,t.line)),lr(e,n,Gt(e,n,t.ch,i),r)}function ur(e,t,r,n,i,o){function a(t,a){var l=Qt(e,i,t,a?"right":"left",o);return a?l.left=l.right:l.right=l.left,lr(e,n,l,r)}function l(e,t,r){var n=s[t],i=n.level%2!=0;return a(r?e-1:e,i!=r)}n=n||L(e.doc,t.line),i||(i=Yt(e,n));var s=Ce(n,e.doc.direction),c=t.ch,u=t.sticky;if(c>=n.text.length?(c=n.text.length,u="before"):c<=0&&(c=0,u="after"),!s)return a("before"==u?c-1:c,"before"==u);var f=ke(s,c,u),d=Ea,h=l(c,f,"before"==u);return null!=d&&(h.other=l(c,d,"before"!=u)),h}function fr(e,t){var r=0;t=H(e.doc,t),e.options.lineWrapping||(r=yr(e.display)*t.ch);var n=L(e.doc,t.line),i=ye(n)+Wt(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function dr(e,t,r,n,i){var o=R(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function hr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return dr(n.first,0,null,!0,-1);var i=I(n,r),o=n.first+n.size-1;if(i>o)return dr(n.first+n.size-1,L(n,o).text.length,null,!0,1);t<0&&(t=0);for(var a=L(n,i);;){var l=gr(e,a,i,t,r),s=ce(a),c=s&&s.find(0,!0);if(!s||!(l.ch>c.from.ch||l.ch==c.from.ch&&l.xRel>0))return l;i=E(a=c.to.line)}}function pr(e,t,r,n){var i=function(n){return lr(e,t,Qt(e,r,n),"line")},o=t.text.length,a=_(function(e){return i(e-1).bottom<=n},o,0);return o=_(function(e){return i(e).top>n},a,o),{begin:a,end:o}}function mr(e,t,r,n){return pr(e,t,r,lr(e,t,Qt(e,r,n),"line").top)}function gr(e,t,r,n,i){i-=ye(t);var o,a=0,l=t.text.length,s=Yt(e,t);if(Ce(t,e.doc.direction)){if(e.options.lineWrapping){var c;c=pr(e,t,s,i),a=c.begin,l=c.end}o=new R(r,a);var u,f,d=ur(e,o,"line",t,s).left,h=d<n?1:-1,p=d-n;do{if(u=p,f=o,null==(o=Le(e,t,o,h))||o.ch<a||l<=("before"==o.sticky?o.ch-1:o.ch)){o=f;break}p=ur(e,o,"line",t,s).left-n}while(h<0!=p<0&&Math.abs(p)<=Math.abs(u));if(Math.abs(p)>Math.abs(u)){if(p<0==u<0)throw new Error("Broke out of infinite loop in coordsCharInner");o=f}}else{var m=_(function(r){var o=lr(e,t,Qt(e,s,r),"line");return o.top>i?(l=Math.min(r,l),!0):!(o.bottom<=i)&&(o.left>n||!(o.right<n)&&n-o.left<o.right-n)},a,l);m=S(t.text,m,1),o=new R(r,m,m==l?"before":"after")}var g=ur(e,o,"line",t,s);return(i<g.top||g.bottom<i)&&(o.outside=!0),o.xRel=n<g.left?-1:n>g.right?1:0,o}function vr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Ua){Ua=n("pre");for(var i=0;i<49;++i)Ua.appendChild(document.createTextNode("x")),Ua.appendChild(n("br"));Ua.appendChild(document.createTextNode("x"))}r(e.measure,Ua);var o=Ua.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function yr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=n("span","xxxxxxxxxx"),i=n("pre",[t]);r(e.measure,i);var o=t.getBoundingClientRect(),a=(o.right-o.left)/10;return a>2&&(e.cachedCharWidth=a),a||10}function br(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)r[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[a]]=o.clientWidth;return{fixedPos:xr(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function xr(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function wr(e){var t=vr(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/yr(e.display)-3);return function(i){if(ge(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function kr(e){var t=e.doc,r=wr(e);t.iter(function(e){var t=r(e);t!=e.height&&O(e,t)})}function Cr(e,t,r,n){var i=e.display;if(!r&&"true"==We(t).getAttribute("cm-not-content"))return null;var o,a,l=i.lineSpace.getBoundingClientRect();try{o=t.clientX-l.left,a=t.clientY-l.top}catch(e){return null}var s,c=hr(e,o,a);if(n&&1==c.xRel&&(s=L(e.doc,c.line).text).length==c.ch){var u=f(s,s.length,e.options.tabSize)-s.length;c=R(c.line,Math.max(0,Math.round((o-Ft(e.display).left)/yr(e.display))-u))}return c}function Sr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n<r.length;n++)if((t-=r[n].size)<0)return n}function _r(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Mr(e,t){for(var r=e.doc,n={},i=n.cursors=document.createDocumentFragment(),o=n.selection=document.createDocumentFragment(),a=0;a<r.sel.ranges.length;a++)if(t!==!1||a!=r.sel.primIndex){var l=r.sel.ranges[a];if(!(l.from().line>=e.display.viewTo||l.to().line<e.display.viewFrom)){var s=l.empty();(s||e.options.showCursorWhenSelecting)&&Lr(e,l.head,i),s||Tr(e,l,o)}}return n}function Lr(e,t,r){var i=ur(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=r.appendChild(n("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var a=r.appendChild(n("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=i.other.left+"px",a.style.top=i.other.top+"px",a.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function Tr(e,t,r){function i(e,t,r,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),s.appendChild(n("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==r?f-e:r)+"px;\n height: "+(i-t)+"px"))}function o(t,r,n){function o(r,n){return cr(e,R(t,r),"div",c,n)}var a,s,c=L(l,t),d=c.text.length;return we(Ce(c,l.direction),r||0,null==n?d:n,function(e,t,l){var c,h,p,m=o(e,"left");if(e==t)c=m,h=p=m.left;else{if(c=o(t-1,"right"),"rtl"==l){var g=m;m=c,c=g}h=m.left,p=c.right}null==r&&0==e&&(h=u),c.top-m.top>3&&(i(h,m.top,null,m.bottom),h=u,m.bottom<c.top&&i(h,m.bottom,null,c.top)),null==n&&t==d&&(p=f),(!a||m.top<a.top||m.top==a.top&&m.left<a.left)&&(a=m),(!s||c.bottom>s.bottom||c.bottom==s.bottom&&c.right>s.right)&&(s=c),h<u+1&&(h=u),i(h,c.top,p-h,c.bottom)}),{start:a,end:s}}var a=e.display,l=e.doc,s=document.createDocumentFragment(),c=Ft(e.display),u=c.left,f=Math.max(a.sizerWidth,jt(e)-a.sizer.offsetLeft)-c.right,d=t.from(),h=t.to();if(d.line==h.line)o(d.line,d.ch,h.ch);else{var p=L(l,d.line),m=L(l,h.line),g=fe(p)==fe(m),v=o(d.line,d.ch,g?p.text.length+1:null).end,y=o(h.line,g?0:null,h.ch).start;g&&(v.top<y.top-2?(i(v.right,v.top,null,v.bottom),i(u,y.top,y.left,y.bottom)):i(v.right,v.top,y.left-v.right,v.bottom)),v.bottom<y.top&&i(u,v.bottom,null,y.top)}r.appendChild(s)}function Ar(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Or(e){e.state.focused||(e.display.input.focus(),Ir(e))}function Er(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Nr(e))},100)}function Ir(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Oe(e,"focus",e,t),e.state.focused=!0,l(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),Zo&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Ar(e))}function Nr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Oe(e,"blur",e,t),e.state.focused=!1,ga(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Pr(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=xr(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",a=0;a<r.length;a++)if(!r[a].hidden){e.options.fixedGutter&&(r[a].gutter&&(r[a].gutter.style.left=o),r[a].gutterBackground&&(r[a].gutterBackground.style.left=o));var l=r[a].alignable;if(l)for(var s=0;s<l.length;s++)l[s].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function Rr(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=P(e.options,t.first+t.size-1),i=e.display;if(r.length!=i.lineNumChars){var o=i.measure.appendChild(n("div",[n("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),a=o.firstChild.offsetWidth,l=o.offsetWidth-a;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(a,i.lineGutter.offsetWidth-l)+1,i.lineNumWidth=i.lineNumInnerWidth+l,i.lineNumChars=i.lineNumInnerWidth?r.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Ln(e),!0}return!1}function Br(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i=t.view[n],o=void 0;if(!i.hidden){if(Qo&&Jo<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var l=i.node.getBoundingClientRect();o=l.bottom-l.top}var s=i.line.height-o;if(o<2&&(o=vr(t)),(s>.001||s<-.001)&&(O(i.line,o),zr(i.line),i.rest))for(var c=0;c<i.rest.length;c++)zr(i.rest[c])}}}function zr(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function Dr(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-Wt(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=I(t,n),a=I(t,i);if(r&&r.ensure){var l=r.ensure.from.line,s=r.ensure.to.line;l<o?(o=l,a=I(t,ye(L(t,l))+e.wrapper.clientHeight)):Math.min(s,t.lastLine())>=a&&(o=I(t,ye(L(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function Wr(e,t){Math.abs(e.doc.scrollTop-t)<2||(e.doc.scrollTop=t,$o||_n(e,{top:t}),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t),e.display.scrollbars.setScrollTop(t),$o&&_n(e),xn(e,100))}function qr(e,t,r){(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)||(t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),e.doc.scrollLeft=t,Pr(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Fr(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}}function Hr(e){var t=Fr(e);return t.x*=Ja,t.y*=Ja,t}function jr(e,t){var r=Fr(t),n=r.x,i=r.y,o=e.display,a=o.scroller,l=a.scrollWidth>a.clientWidth,s=a.scrollHeight>a.clientHeight;if(n&&l||i&&s){if(i&&ca&&Zo)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var f=0;f<u.length;f++)if(u[f].node==c){e.display.currentWheelTarget=c;break e}if(n&&!$o&&!ra&&null!=Ja)return i&&s&&Wr(e,Math.max(0,Math.min(a.scrollTop+i*Ja,a.scrollHeight-a.clientHeight))),qr(e,Math.max(0,Math.min(a.scrollLeft+n*Ja,a.scrollWidth-a.clientWidth))),(!i||i&&s)&&Re(t),void(o.wheelStartX=null);if(i&&null!=Ja){var d=i*Ja,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;d<0?h=Math.max(0,h+d-50):p=Math.min(e.doc.height,p+d+50),_n(e,{top:h,bottom:p})}Qa<20&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=n,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,r=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,r&&(Ja=(Ja*Qa+r)/(Qa+1),++Qa)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}function Kr(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+qt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Ht(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function Ur(e,t){t||(t=Kr(e));var r=e.display.barWidth,n=e.display.barHeight;Vr(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&Br(e),Vr(e,Kr(e)),r=e.display.barWidth,n=e.display.barHeight}function Vr(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function $r(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&ga(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new tl[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Pa(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,r){"horizontal"==r?qr(e,t):Wr(e,t)},e),e.display.scrollbars.addClass&&l(e.display.wrapper,e.display.scrollbars.addClass)}function Gr(e,t){if(!Ee(e,"scrollCursorIntoView")){var r=e.display,i=r.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!oa){var a=n("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-Wt(e.display))+"px;\n height: "+(t.bottom-t.top+Ht(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}function Xr(e,t,r,n){null==n&&(n=0);for(var i,o=0;o<5;o++){var a=!1,l=ur(e,t),s=r&&r!=t?ur(e,r):l;i={left:Math.min(l.left,s.left),top:Math.min(l.top,s.top)-n,right:Math.max(l.left,s.left),bottom:Math.max(l.bottom,s.bottom)+n};var c=Qr(e,i),u=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=c.scrollTop&&(Wr(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(qr(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-f)>1&&(a=!0)),!a)break}return i}function Yr(e,t){var r=Qr(e,t);null!=r.scrollTop&&Wr(e,r.scrollTop),null!=r.scrollLeft&&qr(e,r.scrollLeft)}function Qr(e,t){var r=e.display,n=vr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Kt(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var l=e.doc.height+qt(r),s=t.top<n,c=t.bottom>l-n;if(t.top<i)a.scrollTop=s?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?l:t.bottom)-o);u!=i&&(a.scrollTop=u)}var f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,d=jt(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),h=t.right-t.left>d;return h&&(t.right=t.left+d),t.left<10?a.scrollLeft=0:t.left<f?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>d+f-3&&(a.scrollLeft=t.right+(h?0:10)-d),a}function Jr(e,t,r){null==t&&null==r||en(e),null!=t&&(e.curOp.scrollLeft=(null==e.curOp.scrollLeft?e.doc.scrollLeft:e.curOp.scrollLeft)+t),null!=r&&(e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+r)}function Zr(e){en(e);var t=e.getCursor(),r=t,n=t;e.options.lineWrapping||(r=t.ch?R(t.line,t.ch-1):t,n=R(t.line,t.ch+1)),e.curOp.scrollToPos={from:r,to:n,margin:e.options.cursorScrollMargin}}function en(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var r=fr(e,t.from),n=fr(e,t.to),i=Qr(e,{left:Math.min(r.left,n.left),top:Math.min(r.top,n.top)-t.margin,right:Math.max(r.right,n.right),bottom:Math.max(r.bottom,n.bottom)+t.margin});e.scrollTo(i.scrollLeft,i.scrollTop)}}function tn(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++rl},xt(e.curOp)}function rn(e){kt(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;nn(e)})}function nn(e){for(var t=e.ops,r=0;r<t.length;r++)on(t[r]);for(var n=0;n<t.length;n++)an(t[n]);for(var i=0;i<t.length;i++)ln(t[i]);for(var o=0;o<t.length;o++)sn(t[o]);for(var a=0;a<t.length;a++)cn(t[a])}function on(e){var t=e.cm,r=t.display;kn(t),e.updateMaxLine&&xe(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<r.viewFrom||e.scrollToPos.to.line>=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new nl(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function an(e){e.updatedDisplay=e.mustUpdate&&Cn(e.cm,e.update)}function ln(e){var t=e.cm,r=t.display;e.updatedDisplay&&Br(t),e.barMeasure=Kr(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Gt(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Ht(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-jt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection(e.focus))}function sn(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&qr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==a()&&(!document.hasFocus||document.hasFocus());e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r),(e.updatedDisplay||e.startHeight!=t.doc.height)&&Ur(t,e.barMeasure),e.updatedDisplay&&Tn(t,e.barMeasure),e.selectionChanged&&Ar(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),r&&Or(e.cm)}function cn(e){var t=e.cm,r=t.display,n=t.doc;if(e.updatedDisplay&&Sn(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null==e.scrollTop||r.scroller.scrollTop==e.scrollTop&&!e.forceScroll||(n.scrollTop=Math.max(0,Math.min(r.scroller.scrollHeight-r.scroller.clientHeight,e.scrollTop)),r.scrollbars.setScrollTop(n.scrollTop),r.scroller.scrollTop=n.scrollTop),null==e.scrollLeft||r.scroller.scrollLeft==e.scrollLeft&&!e.forceScroll||(n.scrollLeft=Math.max(0,Math.min(r.scroller.scrollWidth-r.scroller.clientWidth,e.scrollLeft)),r.scrollbars.setScrollLeft(n.scrollLeft),r.scroller.scrollLeft=n.scrollLeft,Pr(t)),e.scrollToPos){Gr(t,Xr(t,H(n,e.scrollToPos.from),H(n,e.scrollToPos.to),e.scrollToPos.margin))}var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a<i.length;++a)i[a].lines.length||Oe(i[a],"hide");if(o)for(var l=0;l<o.length;++l)o[l].lines.length&&Oe(o[l],"unhide");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Oe(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function un(e,t){if(e.curOp)return t();tn(e);try{return t()}finally{rn(e)}}function fn(e,t){return function(){if(e.curOp)return t.apply(e,arguments);tn(e);try{return t.apply(e,arguments)}finally{rn(e)}}}function dn(e){return function(){if(this.curOp)return e.apply(this,arguments);tn(this);try{return e.apply(this,arguments)}finally{rn(this)}}}function hn(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);tn(t);try{return e.apply(this,arguments)}finally{rn(t)}}}function pn(e,t,r,n){null==t&&(t=e.doc.first),null==r&&(r=e.doc.first+e.doc.size),n||(n=0);var i=e.display;if(n&&r<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Oa&&pe(e.doc,t)<i.viewTo&&gn(e);else if(r<=i.viewFrom)Oa&&me(e.doc,r+n)>i.viewFrom?gn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)gn(e);else if(t<=i.viewFrom){var o=vn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):gn(e)}else if(r>=i.viewTo){var a=vn(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):gn(e)}else{var l=vn(e,t,t,-1),s=vn(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(bt(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):gn(e)}var c=i.externalMeasured;c&&(r<c.lineN?c.lineN+=n:t<c.lineN+c.size&&(i.externalMeasured=null))}function mn(e,t,r){e.curOp.viewChanged=!0;var n=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(n.externalMeasured=null),!(t<n.viewFrom||t>=n.viewTo)){var o=n.view[Sr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);d(a,r)==-1&&a.push(r)}}}function gn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function vn(e,t,r,n){var i,o=Sr(e,t),a=e.display.view;if(!Oa||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var l=e.display.viewFrom,s=0;s<o;s++)l+=a[s].size;if(l!=t){if(n>0){if(o==a.length-1)return null;i=l+a[o].size-t,o++}else i=l-t;t+=i,r+=i}for(;pe(e.doc,r)!=r;){if(o==(n<0?0:a.length-1))return null;r+=n*a[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function yn(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=bt(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=bt(e,t,n.viewFrom).concat(n.view):n.viewFrom<t&&(n.view=n.view.slice(Sr(e,t))),n.viewFrom=t,n.viewTo<r?n.view=n.view.concat(bt(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,Sr(e,r)))),n.viewTo=r}function bn(e){for(var t=e.display.view,r=0,n=0;n<t.length;n++){var i=t[n];i.hidden||i.node&&!i.changes||++r}return r}function xn(e,t){e.doc.mode.startState&&e.doc.frontier<e.display.viewTo&&e.state.highlight.set(t,c(wn,e))}function wn(e){var t=e.doc;if(t.frontier<t.first&&(t.frontier=t.first),!(t.frontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=Xe(t.mode,et(e,t.frontier)),i=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(t.frontier>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength,s=Je(e,o,l?Xe(t.mode,n):n,!0);o.styles=s.styles;var c=o.styleClasses,u=s.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!f&&d<a.length;++d)f=a[d]!=o.styles[d];f&&i.push(t.frontier),o.stateAfter=l?n:Xe(t.mode,n)}else o.text.length<=e.options.maxHighlightLength&&tt(e,o.text,n),o.stateAfter=t.frontier%5==0?Xe(t.mode,n):null;if(++t.frontier,+new Date>r)return xn(e,e.options.workDelay),!0}),i.length&&un(e,function(){for(var t=0;t<i.length;t++)mn(e,i[t],"text")})}}function kn(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=Ht(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=Ht(e)+"px",t.scrollbarsClipped=!0)}function Cn(e,r){var n=e.display,i=e.doc;if(r.editorIsHidden)return gn(e),!1;if(!r.force&&r.visible.from>=n.viewFrom&&r.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==bn(e))return!1;Rr(e)&&(gn(e),r.dims=br(e));var o=i.first+i.size,l=Math.max(r.visible.from-e.options.viewportMargin,i.first),s=Math.min(o,r.visible.to+e.options.viewportMargin);n.viewFrom<l&&l-n.viewFrom<20&&(l=Math.max(i.first,n.viewFrom)),n.viewTo>s&&n.viewTo-s<20&&(s=Math.min(o,n.viewTo)),Oa&&(l=pe(e.doc,l),s=me(e.doc,s));var c=l!=n.viewFrom||s!=n.viewTo||n.lastWrapHeight!=r.wrapperHeight||n.lastWrapWidth!=r.wrapperWidth;yn(e,l,s),n.viewOffset=ye(L(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var u=bn(e);if(!c&&0==u&&!r.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var f=a();return u>4&&(n.lineDiv.style.display="none"),Mn(e,n.updateLineNumbers,r.dims),u>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,f&&a()!=f&&f.offsetHeight&&f.focus(),t(n.cursorDiv),t(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,c&&(n.lastWrapHeight=r.wrapperHeight,n.lastWrapWidth=r.wrapperWidth,xn(e,400)),n.updateLineNumbers=null,!0}function Sn(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=jt(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+qt(e.display)-Kt(e),r.top)}),t.visible=Dr(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&Cn(e,t);n=!1){Br(e);var i=Kr(e);_r(e),Ur(e,i),Tn(e,i)}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function _n(e,t){var r=new nl(e,t);if(Cn(e,r)){Br(e),Sn(e,r);var n=Kr(e);_r(e),Ur(e,n),Tn(e,n),r.finish()}}function Mn(e,r,n){function i(t){var r=t.nextSibling;return Zo&&ca&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var o=e.display,a=e.options.lineNumbers,l=o.lineDiv,s=l.firstChild,c=o.view,u=o.viewFrom,f=0;f<c.length;f++){var h=c[f];if(h.hidden);else if(h.node&&h.node.parentNode==l){for(;s!=h.node;)s=i(s);var p=a&&null!=r&&r<=u&&h.lineNumber;h.changes&&(d(h.changes,"gutter")>-1&&(p=!1),_t(e,h,u,n)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(P(e.options,u)))),s=h.node.nextSibling}else{var m=Nt(e,h,u,n);l.insertBefore(m,s)}u+=h.size}for(;s;)s=i(s)}function Ln(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Tn(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Ht(e)+"px"}function An(e){var r=e.display.gutters,i=e.options.gutters;t(r);for(var o=0;o<i.length;++o){var a=i[o],l=r.appendChild(n("div",null,"CodeMirror-gutter "+a));"CodeMirror-linenumbers"==a&&(e.display.lineGutter=l,l.style.width=(e.display.lineNumWidth||1)+"px")}r.style.display=o?"":"none",Ln(e)}function On(e){var t=d(e.gutters,"CodeMirror-linenumbers");t==-1&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function En(e,t){var r=e[t];e.sort(function(e,t){return B(e.from(),t.from())}),t=d(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(B(o.to(),i.from())>=0){var a=q(o.from(),i.from()),l=W(o.to(),i.to()),s=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new ol(s?l:a,s?a:l))}}return new il(e,t)}function In(e,t){return new il([new ol(e,t||e)],0)}function Nn(e){return e.text?R(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Pn(e,t){if(B(e,t.from)<0)return e;if(B(e,t.to)<=0)return Nn(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=Nn(t).ch-t.to.ch),R(r,n)}function Rn(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new ol(Pn(i.anchor,t),Pn(i.head,t)))}return En(r,e.sel.primIndex)}function Bn(e,t,r){return e.line==t.line?R(r.line,e.ch-t.ch+r.ch):R(r.line+(e.line-t.line),e.ch)}function zn(e,t,r){for(var n=[],i=R(e.first,0),o=i,a=0;a<t.length;a++){var l=t[a],s=Bn(l.from,i,o),c=Bn(Nn(l),i,o);if(i=l.to,o=c,"around"==r){var u=e.sel.ranges[a],f=B(u.head,u.anchor)<0;n[a]=new ol(f?c:s,f?s:c)}else n[a]=new ol(s,s)}return new il(n,e.sel.primIndex)}function Dn(e){e.doc.mode=$e(e.options,e.doc.modeOption),Wn(e)}function Wn(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.frontier=e.doc.first,xn(e,100),e.state.modeGen++,e.curOp&&pn(e)}function qn(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Fn(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){st(e,r,i,n),Ct(e,"change",e,t)}function a(e,t){for(var r=[],o=e;o<t;++o)r.push(new Ka(c[o],i(o),n));return r}var l=t.from,s=t.to,c=t.text,u=L(e,l.line),f=L(e,s.line),d=m(c),h=i(c.length-1),p=s.line-l.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if(qn(e,t)){var g=a(0,c.length-1);o(f,f.text,h),p&&e.remove(l.line,p),g.length&&e.insert(l.line,g)}else if(u==f)if(1==c.length)o(u,u.text.slice(0,l.ch)+d+u.text.slice(s.ch),h);else{
3
- var v=a(1,c.length-1);v.push(new Ka(d+u.text.slice(s.ch),h,n)),o(u,u.text.slice(0,l.ch)+c[0],i(0)),e.insert(l.line+1,v)}else if(1==c.length)o(u,u.text.slice(0,l.ch)+c[0]+f.text.slice(s.ch),i(0)),e.remove(l.line+1,p);else{o(u,u.text.slice(0,l.ch)+c[0],i(0)),o(f,d+f.text.slice(s.ch),h);var y=a(1,c.length-1);p>1&&e.remove(l.line+1,p-1),e.insert(l.line+1,y)}Ct(e,"change",e,t)}function Hn(e,t,r){function n(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var l=e.linked[a];if(l.doc!=i){var s=o&&l.sharedHist;r&&!s||(t(l.doc,s),n(l.doc,e,s))}}}n(e,null,!0)}function jn(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,kr(e),Dn(e),Kn(e),e.options.lineWrapping||xe(e),e.options.mode=t.modeOption,pn(e)}function Kn(e){("rtl"==e.doc.direction?l:ga)(e.display.lineDiv,"CodeMirror-rtl")}function Un(e){un(e,function(){Kn(e),pn(e)})}function Vn(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function $n(e,t){var r={from:D(t.from),to:Nn(t),text:T(e,t.from,t.to)};return ei(e,r,t.from.line,t.to.line+1),Hn(e,function(e){return ei(e,r,t.from.line,t.to.line+1)},!0),r}function Gn(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function Xn(e,t){return t?(Gn(e.done),m(e.done)):e.done.length&&!m(e.done).ranges?m(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),m(e.done)):void 0}function Yn(e,t,r,n){var i=e.history;i.undone.length=0;var o,a,l=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>l-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=Xn(i,i.lastOp==n)))a=m(o.changes),0==B(t.from,t.to)&&0==B(t.from,a.to)?a.to=Nn(t):o.changes.push($n(e,t));else{var s=m(i.done);for(s&&s.ranges||Zn(e.sel,i.done),o={changes:[$n(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=l,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,a||Oe(e,"historyAdded")}function Qn(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function Jn(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||Qn(e,o,m(i.done),t))?i.done[i.done.length-1]=t:Zn(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&n.clearRedo!==!1&&Gn(i.undone)}function Zn(e,t){var r=m(t);r&&r.ranges&&r.equals(e)||t.push(e)}function ei(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o})}function ti(e){if(!e)return null;for(var t,r=0;r<e.length;++r)e[r].marker.explicitlyCleared?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t?t.length?t:null:e}function ri(e,t){var r=t["spans_"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(ti(r[i]));return n}function ni(e,t){var r=ri(e,t),n=Z(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],a=n[i];if(o&&a)e:for(var l=0;l<a.length;++l){for(var s=a[l],c=0;c<o.length;++c)if(o[c].marker==s.marker)continue e;o.push(s)}else a&&(r[i]=a)}return r}function ii(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?il.prototype.deepCopy.call(o):o);else{var a=o.changes,l=[];n.push({changes:l});for(var s=0;s<a.length;++s){var c=a[s],u=void 0;if(l.push({from:c.from,to:c.to,text:c.text}),t)for(var f in c)(u=f.match(/^spans_(\d+)$/))&&d(t,Number(u[1]))>-1&&(m(l)[f]=c[f],delete c[f])}}}return n}function oi(e,t,r,n){if(e.cm&&e.cm.display.shift||e.extend){var i=t.anchor;if(n){var o=B(r,i)<0;o!=B(n,i)<0?(i=r,r=n):o!=B(r,n)<0&&(r=n)}return new ol(i,r)}return new ol(n||r,r)}function ai(e,t,r,n){di(e,new il([oi(e,e.sel.primary(),t,r)],0),n)}function li(e,t,r){for(var n=[],i=0;i<e.sel.ranges.length;i++)n[i]=oi(e,e.sel.ranges[i],t[i],null);di(e,En(n,e.sel.primIndex),r)}function si(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,di(e,En(i,e.sel.primIndex),n)}function ci(e,t,r,n){di(e,In(t,r),n)}function ui(e,t,r){var n={ranges:t.ranges,update:function(t){var r=this;this.ranges=[];for(var n=0;n<t.length;n++)r.ranges[n]=new ol(H(e,t[n].anchor),H(e,t[n].head))},origin:r&&r.origin};return Oe(e,"beforeSelectionChange",e,n),e.cm&&Oe(e.cm,"beforeSelectionChange",e.cm,n),n.ranges!=t.ranges?En(n.ranges,n.ranges.length-1):t}function fi(e,t,r){var n=e.history.done,i=m(n);i&&i.ranges?(n[n.length-1]=t,hi(e,t,r)):di(e,t,r)}function di(e,t,r){hi(e,t,r),Jn(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function hi(e,t,r){(Ne(e,"beforeSelectionChange")||e.cm&&Ne(e.cm,"beforeSelectionChange"))&&(t=ui(e,t,r)),pi(e,gi(e,t,r&&r.bias||(B(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&r.scroll===!1||!e.cm||Zr(e.cm)}function pi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Ie(e.cm)),Ct(e,"cursorActivity",e))}function mi(e){pi(e,gi(e,e.sel,null,!1),Ca)}function gi(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],l=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],s=yi(e,a.anchor,l&&l.anchor,r,n),c=yi(e,a.head,l&&l.head,r,n);(i||s!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new ol(s,c))}return i?En(i,t.primIndex):t}function vi(e,t,r,n,i){var o=L(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var l=o.markedSpans[a],s=l.marker;if((null==l.from||(s.inclusiveLeft?l.from<=t.ch:l.from<t.ch))&&(null==l.to||(s.inclusiveRight?l.to>=t.ch:l.to>t.ch))){if(i&&(Oe(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(r){var c=s.find(n<0?1:-1),u=void 0;if((n<0?s.inclusiveRight:s.inclusiveLeft)&&(c=bi(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=B(c,r))&&(n<0?u<0:u>0))return vi(e,c,t,n,i)}var f=s.find(n<0?-1:1);return(n<0?s.inclusiveLeft:s.inclusiveRight)&&(f=bi(e,f,n,f.line==t.line?o:null)),f?vi(e,f,t,n,i):null}}return t}function yi(e,t,r,n,i){var o=n||1,a=vi(e,t,r,o,i)||!i&&vi(e,t,r,o,!0)||vi(e,t,r,-o,i)||!i&&vi(e,t,r,-o,!0);return a?a:(e.cantEdit=!0,R(e.first,0))}function bi(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?H(e,R(t.line-1)):null:r>0&&t.ch==(n||L(e,t.line)).text.length?t.line<e.first+e.size-1?R(t.line+1,0):null:new R(t.line,t.ch+r)}function xi(e){e.setSelection(R(e.firstLine(),0),R(e.lastLine()),Ca)}function wi(e,t,r){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return n.canceled=!0}};return r&&(n.update=function(t,r,i,o){t&&(n.from=H(e,t)),r&&(n.to=H(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),Oe(e,"beforeChange",e,n),e.cm&&Oe(e.cm,"beforeChange",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function ki(e,t,r){if(e.cm){if(!e.cm.curOp)return fn(e.cm,ki)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(Ne(e,"beforeChange")||e.cm&&Ne(e.cm,"beforeChange"))||(t=wi(e,t,!0))){var n=Aa&&!r&&te(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)Ci(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text});else Ci(e,t)}}function Ci(e,t){if(1!=t.text.length||""!=t.text[0]||0!=B(t.from,t.to)){var r=Rn(e,t);Yn(e,t,r,e.cm?e.cm.curOp.id:NaN),Mi(e,t,r,Z(e,t));var n=[];Hn(e,function(e,r){r||d(n,e.history)!=-1||(Ei(e.history,t),n.push(e.history)),Mi(e,t,null,Z(e,t))})}}function Si(e,t,r){if(!e.cm||!e.cm.state.suppressEdits||r){for(var n,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,l="undo"==t?i.undone:i.done,s=0;s<a.length&&(n=a[s],r?!n.ranges||n.equals(e.sel):n.ranges);s++);if(s!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;n=a.pop(),n.ranges;){if(Zn(n,l),r&&!n.equals(e.sel))return void di(e,n,{clearRedo:!1});o=n}var c=[];Zn(o,l),l.push({changes:c,generation:i.generation}),i.generation=n.generation||++i.maxGeneration;for(var u=Ne(e,"beforeChange")||e.cm&&Ne(e.cm,"beforeChange"),f=n.changes.length-1;f>=0;--f){var h=function(r){var i=n.changes[r];if(i.origin=t,u&&!wi(e,i,!1))return a.length=0,{};c.push($n(e,i));var o=r?Rn(e,i):m(a);Mi(e,i,o,ni(e,i)),!r&&e.cm&&e.cm.scrollIntoView({from:i.from,to:Nn(i)});var l=[];Hn(e,function(e,t){t||d(l,e.history)!=-1||(Ei(e.history,i),l.push(e.history)),Mi(e,i,null,ni(e,i))})}(f);if(h)return h.v}}}}function _i(e,t){if(0!=t&&(e.first+=t,e.sel=new il(g(e.sel.ranges,function(e){return new ol(R(e.anchor.line+t,e.anchor.ch),R(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){pn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)mn(e.cm,n,"gutter")}}function Mi(e,t,r,n){if(e.cm&&!e.cm.curOp)return fn(e.cm,Mi)(e,t,r,n);if(t.to.line<e.first)return void _i(e,t.text.length-1-(t.to.line-t.from.line));if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);_i(e,i),t={from:R(e.first,0),to:R(t.to.line+i,t.to.ch),text:[m(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:R(o,L(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=T(e,t.from,t.to),r||(r=Rn(e,t)),e.cm?Li(e.cm,t,n):Fn(e,t,n),hi(e,r,Ca)}}function Li(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,l=!1,s=o.line;e.options.lineWrapping||(s=E(fe(L(n,o.line))),n.iter(s,a.line+1,function(e){if(e==i.maxLine)return l=!0,!0})),n.sel.contains(t.from,t.to)>-1&&Ie(e),Fn(n,t,r,wr(e)),e.options.lineWrapping||(n.iter(s,o.line+t.text.length,function(e){var t=be(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,l=!1)}),l&&(e.curOp.updateMaxLine=!0)),n.frontier=Math.min(n.frontier,o.line),xn(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?pn(e):o.line!=a.line||1!=t.text.length||qn(e.doc,t)?pn(e,o.line,a.line+1,c):mn(e,o.line,"text");var u=Ne(e,"changes"),f=Ne(e,"change");if(f||u){var d={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};f&&Ct(e,"change",e,d),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(d)}e.display.selForContextMenu=null}function Ti(e,t,r,n,i){if(n||(n=r),B(n,r)<0){var o=n;n=r,r=o}"string"==typeof t&&(t=e.splitLines(t)),ki(e,{from:r,to:n,text:t,origin:i})}function Ai(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function Oi(e,t,r,n){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||(o=e[i]=o.deepCopy(),o.copied=!0);for(var l=0;l<o.ranges.length;l++)Ai(o.ranges[l].anchor,t,r,n),Ai(o.ranges[l].head,t,r,n)}else{for(var s=0;s<o.changes.length;++s){var c=o.changes[s];if(r<c.from.line)c.from=R(c.from.line+n,c.from.ch),c.to=R(c.to.line+n,c.to.ch);else if(t<=c.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function Ei(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;Oi(e.done,r,n,i),Oi(e.undone,r,n,i)}function Ii(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=L(e,F(e,t)):i=E(t),null==i?null:(n(o,i)&&e.cm&&mn(e.cm,i,r),o)}function Ni(e,t,r){ye(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Jr(e,null,r)}function Pi(e,t,r,n){var i=new sl(e,r,n),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),Ii(e,t,"widget",function(t){var r=t.widgets||(t.widgets=[]);if(null==i.insertAt?r.push(i):r.splice(Math.min(r.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!ge(e,t)){var n=ye(t)<e.scrollTop;O(t,t.height+zt(i)),n&&Jr(o,null,i.height),o.curOp.forceUpdate=!0}return!0}),Ct(o,"lineWidgetAdded",o,i,"number"==typeof t?t:E(t)),i}function Ri(e,t,r,n,o){if(n&&n.shared)return Bi(e,t,r,n,o);if(e.cm&&!e.cm.curOp)return fn(e.cm,Ri)(e,t,r,n,o);var a=new ul(e,o),l=B(t,r);if(n&&u(n,a,!1),l>0||0==l&&a.clearWhenEmpty!==!1)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=i("span",[a.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(ue(e,t.line,t,r,a)||t.line!=r.line&&ue(e,r.line,t,r,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");V()}a.addToHistory&&Yn(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,c=t.line,f=e.cm;if(e.iter(c,r.line+1,function(e){f&&a.collapsed&&!f.options.lineWrapping&&fe(e)==f.display.maxLine&&(s=!0),a.collapsed&&c!=t.line&&O(e,0),Y(e,new $(a,c==t.line?t.ch:null,c==r.line?r.ch:null)),++c}),a.collapsed&&e.iter(t.line,r.line+1,function(t){ge(e,t)&&O(t,0)}),a.clearOnEnter&&Pa(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(U(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++cl,a.atomic=!0),f){if(s&&(f.curOp.updateMaxLine=!0),a.collapsed)pn(f,t.line,r.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var d=t.line;d<=r.line;d++)mn(f,d,"text");a.atomic&&mi(f.doc),Ct(f,"markerAdded",f,a)}return a}function Bi(e,t,r,n,i){n=u(n),n.shared=!1;var o=[Ri(e,t,r,n,i)],a=o[0],l=n.widgetNode;return Hn(e,function(e){l&&(n.widgetNode=l.cloneNode(!0)),o.push(Ri(e,H(e,t),H(e,r),n,i));for(var s=0;s<e.linked.length;++s)if(e.linked[s].isParent)return;a=m(o)}),new fl(o,a)}function zi(e){return e.findMarks(R(e.first,0),e.clipPos(R(e.lastLine())),function(e){return e.parent})}function Di(e,t){for(var r=0;r<t.length;r++){var n=t[r],i=n.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(B(o,a)){var l=Ri(e,o,a,n.primary,n.primary.type);n.markers.push(l),l.parent=n}}}function Wi(e){for(var t=0;t<e.length;t++)!function(t){var r=e[t],n=[r.primary.doc];Hn(r.primary.doc,function(e){return n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];d(n,o.doc)==-1&&(o.parent=null,r.markers.splice(i--,1))}}(t)}function qi(e){var t=this;if(ji(t),!Ee(t,e)&&!Dt(t.display,e)){Re(e),Qo&&(pl=+new Date);var r=Cr(t,e,!0),n=e.dataTransfer.files;if(r&&!t.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),a=0,l=0;l<i;++l)!function(e,n){if(!t.options.allowDropFileTypes||d(t.options.allowDropFileTypes,e.type)!=-1){var l=new FileReader;l.onload=fn(t,function(){var e=l.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[n]=e,++a==i){r=H(t.doc,r);var s={from:r,to:r,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};ki(t.doc,s),fi(t.doc,In(r,Nn(s)))}}),l.readAsText(e)}}(n[l],l);else{if(t.state.draggingText&&t.doc.sel.contains(r)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var s=e.dataTransfer.getData("Text");if(s){var c;if(t.state.draggingText&&!t.state.draggingText.copy&&(c=t.listSelections()),hi(t.doc,In(r,r)),c)for(var u=0;u<c.length;++u)Ti(t.doc,"",c[u].anchor,c[u].head,"drag");t.replaceSelection(s,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Fi(e,t){if(Qo&&(!e.state.draggingText||+new Date-pl<100))return void De(t);if(!Ee(e,t)&&!Dt(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!na)){var r=n("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",ra&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),ra&&r.parentNode.removeChild(r)}}function Hi(e,t){var i=Cr(e,t);if(i){var o=document.createDocumentFragment();Lr(e,i,o),e.display.dragCursor||(e.display.dragCursor=n("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),r(e.display.dragCursor,o)}}function ji(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Ki(e){if(document.body.getElementsByClassName)for(var t=document.body.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}function Ui(){ml||(Vi(),ml=!0)}function Vi(){var e;Pa(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Ki($i)},100))}),Pa(window,"blur",function(){return Ki(Nr)})}function $i(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function Gi(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var r,n,i,o,a=0;a<t.length-1;a++){var l=t[a];if(/^(cmd|meta|m)$/i.test(l))o=!0;else if(/^a(lt)?$/i.test(l))r=!0;else if(/^(c|ctrl|control)$/i.test(l))n=!0;else{if(!/^s(hift)?$/i.test(l))throw new Error("Unrecognized modifier name: "+l);i=!0}}return r&&(e="Alt-"+e),n&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function Xi(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if("..."==n){delete e[r];continue}for(var i=g(r.split(" "),Gi),o=0;o<i.length;o++){var a=void 0,l=void 0;o==i.length-1?(l=i.join(" "),a=n):(l=i.slice(0,o+1).join(" "),a="...");var s=t[l];if(s){if(s!=a)throw new Error("Inconsistent bindings for "+l)}else t[l]=a}delete e[r]}for(var c in t)e[c]=t[c];return e}function Yi(e,t,r,n){t=Zi(t);var i=t.call?t.call(e,n):t[e];if(i===!1)return"nothing";if("..."===i)return"multi";if(null!=i&&r(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return Yi(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var a=Yi(e,t.fallthrough[o],r,n);if(a)return a}}}function Qi(e){var t="string"==typeof e?e:gl[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function Ji(e,t){if(ra&&34==e.keyCode&&e.char)return!1;var r=gl[e.keyCode],n=r;return null!=n&&!e.altGraphKey&&(e.altKey&&"Alt"!=r&&(n="Alt-"+n),(pa?e.metaKey:e.ctrlKey)&&"Ctrl"!=r&&(n="Ctrl-"+n),(pa?e.ctrlKey:e.metaKey)&&"Cmd"!=r&&(n="Cmd-"+n),!t&&e.shiftKey&&"Shift"!=r&&(n="Shift-"+n),n)}function Zi(e){return"string"==typeof e?xl[e]:e}function eo(e,t){for(var r=e.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=t(r[i]);n.length&&B(o.from,m(n).to)<=0;){var a=n.pop();if(B(a.from,o.from)<0){o.from=a.from;break}}n.push(o)}un(e,function(){for(var t=n.length-1;t>=0;t--)Ti(e.doc,"",n[t].from,n[t].to,"+delete");Zr(e)})}function to(e,t){var r=L(e.doc,t),n=fe(r);return n!=r&&(t=E(n)),Me(!0,e,n,t,1)}function ro(e,t){var r=L(e.doc,t),n=de(r);return n!=r&&(t=E(n)),Me(!0,e,r,t,-1)}function no(e,t){var r=to(e,t.line),n=L(e.doc,r.line),i=Ce(n,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\S/)),a=t.line==r.line&&t.ch<=o&&t.ch;return R(r.line,a?0:o,r.sticky)}return r}function io(e,t,r){if("string"==typeof t&&!(t=Cl[t]))return!1;e.display.input.ensurePolled();var n=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r&&(e.display.shift=!1),i=t(e)!=ka}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}function oo(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=Yi(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&Yi(t,e.options.extraKeys,r,e)||Yi(t,e.options.keyMap,r,e)}function ao(e,t,r,n){var i=e.state.keySeq;if(i){if(Qi(t))return"handled";Sl.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=oo(e,t,n);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&Ct(e,"keyHandled",e,t,r),"handled"!=o&&"multi"!=o||(Re(r),Ar(e)),i&&!o&&/\'$/.test(t)?(Re(r),!0):!!o}function lo(e,t){var r=Ji(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?ao(e,"Shift-"+r,t,function(t){return io(e,t,!0)})||ao(e,r,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return io(e,t)}):ao(e,r,t,function(t){return io(e,t)}))}function so(e,t,r){return ao(e,"'"+r+"'",t,function(t){return io(e,t,!0)})}function co(e){var t=this;if(t.curOp.focus=a(),!Ee(t,e)){Qo&&Jo<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=lo(t,e);ra&&(_l=n?r:null,!n&&88==r&&!Da&&(ca?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=r||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||uo(t)}}function uo(e){function t(e){18!=e.keyCode&&e.altKey||(ga(r,"CodeMirror-crosshair"),Ae(document,"keyup",t),Ae(document,"mouseover",t))}var r=e.display.lineDiv;l(r,"CodeMirror-crosshair"),Pa(document,"keyup",t),Pa(document,"mouseover",t)}function fo(e){16==e.keyCode&&(this.doc.sel.shift=!1),Ee(this,e)}function ho(e){var t=this;if(!(Dt(t.display,e)||Ee(t,e)||e.ctrlKey&&!e.altKey||ca&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(ra&&r==_l)return _l=null,void Re(e);if(!ra||e.which&&!(e.which<10)||!lo(t,e)){var i=String.fromCharCode(null==n?r:n);"\b"!=i&&(so(t,e,i)||t.display.input.onKeyPress(e))}}}function po(e){var t=this,r=t.display;if(!(Ee(t,e)||r.activeTouch&&r.input.supportsTouch())){if(r.input.ensurePolled(),r.shift=e.shiftKey,Dt(r,e))return void(Zo||(r.scroller.draggable=!1,setTimeout(function(){return r.scroller.draggable=!0},100)));if(!bo(t,e)){var n=Cr(t,e);switch(window.focus(),qe(e)){case 1:t.state.selectingText?t.state.selectingText(e):n?mo(t,e,n):We(e)==r.scroller&&Re(e);break;case 2:Zo&&(t.state.lastMiddleDown=+new Date),n&&ai(t.doc,n),setTimeout(function(){return r.input.focus()},20),Re(e);break;case 3:ma?xo(t,e):Er(t)}}}}function mo(e,t,r){Qo?setTimeout(c(Or,e),0):e.curOp.focus=a();var n,i=+new Date;kl&&kl.time>i-400&&0==B(kl.pos,r)?n="triple":wl&&wl.time>i-400&&0==B(wl.pos,r)?(n="double",kl={time:i,pos:r}):(n="single",wl={time:i,pos:r});var o,l=e.doc.sel,s=ca?t.metaKey:t.ctrlKey;e.options.dragDrop&&Ra&&!e.isReadOnly()&&"single"==n&&(o=l.contains(r))>-1&&(B((o=l.ranges[o]).from(),r)<0||r.xRel>0)&&(B(o.to(),r)>0||r.xRel<0)?go(e,t,r,s):vo(e,t,r,n,s)}function go(e,t,r,n){var i=e.display,o=+new Date,a=fn(e,function(l){Zo&&(i.scroller.draggable=!1),e.state.draggingText=!1,Ae(document,"mouseup",a),Ae(i.scroller,"drop",a),Math.abs(t.clientX-l.clientX)+Math.abs(t.clientY-l.clientY)<10&&(Re(l),!n&&+new Date-200<o&&ai(e.doc,r),Zo||Qo&&9==Jo?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())});Zo&&(i.scroller.draggable=!0),e.state.draggingText=a,a.copy=ca?t.altKey:t.ctrlKey,i.scroller.dragDrop&&i.scroller.dragDrop(),Pa(document,"mouseup",a),Pa(i.scroller,"drop",a)}function vo(e,t,r,n,i){function o(t){if(0!=B(b,t))if(b=t,"rect"==n){for(var i=[],o=e.options.tabSize,a=f(L(u,r.line).text,r.ch,o),l=f(L(u,t.line).text,t.ch,o),s=Math.min(a,l),c=Math.max(a,l),g=Math.min(r.line,t.line),v=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=v;g++){var y=L(u,g).text,x=h(y,s,o);s==c?i.push(new ol(R(g,x),R(g,x))):y.length>x&&i.push(new ol(R(g,x),R(g,h(y,c,o))))}i.length||i.push(new ol(r,r)),di(u,En(m.ranges.slice(0,p).concat(i),p),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var w=d,k=w.anchor,C=t;if("single"!=n){var S;S="double"==n?e.findWordAt(t):new ol(R(t.line,0),H(u,R(t.line+1,0))),B(S.anchor,k)>0?(C=S.head,k=q(w.from(),S.anchor)):(C=S.anchor,k=W(w.to(),S.head))}var _=m.ranges.slice(0);_[p]=new ol(H(u,k),C),di(u,En(_,p),Sa)}}function l(t){var r=++w,i=Cr(e,t,!0,"rect"==n);if(i)if(0!=B(i,b)){e.curOp.focus=a(),o(i);var s=Dr(c,u);(i.line>=s.to||i.line<s.from)&&setTimeout(fn(e,function(){w==r&&l(t)}),150)}else{var f=t.clientY<x.top?-20:t.clientY>x.bottom?20:0;f&&setTimeout(fn(e,function(){w==r&&(c.scroller.scrollTop+=f,l(t))}),50)}}function s(t){e.state.selectingText=!1,w=1/0,Re(t),c.input.focus(),Ae(document,"mousemove",k),Ae(document,"mouseup",C),u.history.lastSelOrigin=null}var c=e.display,u=e.doc;Re(t);var d,p,m=u.sel,g=m.ranges;if(i&&!t.shiftKey?(p=u.sel.contains(r),d=p>-1?g[p]:new ol(r,r)):(d=u.sel.primary(),p=u.sel.primIndex),ua?t.shiftKey&&t.metaKey:t.altKey)n="rect",i||(d=new ol(r,r)),r=Cr(e,t,!0,!0),p=-1;else if("double"==n){var v=e.findWordAt(r);d=e.display.shift||u.extend?oi(u,d,v.anchor,v.head):v}else if("triple"==n){var y=new ol(R(r.line,0),H(u,R(r.line+1,0)));d=e.display.shift||u.extend?oi(u,d,y.anchor,y.head):y}else d=oi(u,d,r);i?p==-1?(p=g.length,di(u,En(g.concat([d]),p),{scroll:!1,origin:"*mouse"})):g.length>1&&g[p].empty()&&"single"==n&&!t.shiftKey?(di(u,En(g.slice(0,p).concat(g.slice(p+1)),0),{scroll:!1,origin:"*mouse"}),m=u.sel):si(u,p,d,Sa):(p=0,di(u,new il([d],0),Sa),m=u.sel);var b=r,x=c.wrapper.getBoundingClientRect(),w=0,k=fn(e,function(e){qe(e)?l(e):s(e)}),C=fn(e,s);e.state.selectingText=C,Pa(document,"mousemove",k),Pa(document,"mouseup",C)}function yo(e,t,r,n){var i,o;try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&Re(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!Ne(e,r))return ze(t);o-=l.top-a.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var c=a.gutters.childNodes[s];if(c&&c.getBoundingClientRect().right>=i){return Oe(e,r,e,I(e.doc,o),e.options.gutters[s],t),ze(t)}}}function bo(e,t){return yo(e,t,"gutterClick",!0)}function xo(e,t){Dt(e.display,t)||wo(e,t)||Ee(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function wo(e,t){return!!Ne(e,"gutterContextMenu")&&yo(e,t,"gutterContextMenu",!1)}function ko(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),ir(e)}function Co(e){An(e),pn(e),Pr(e)}function So(e,t,r){if(!t!=!(r&&r!=Ml)){var n=e.display.dragFunctions,i=t?Pa:Ae;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function _o(e){e.options.lineWrapping?(l(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(ga(e.display.wrapper,"CodeMirror-wrap"),xe(e)),kr(e),pn(e),ir(e),setTimeout(function(){return Ur(e)},100)}function Mo(e,t){var r=this;if(!(this instanceof Mo))return new Mo(e,t);this.options=t=t?u(t):{},u(Ll,t,!1),On(t);var n=t.value;"string"==typeof n&&(n=new hl(n,t.mode,null,t.lineSeparator,t.direction)),this.doc=n;var i=new Mo.inputStyles[t.inputStyle](this),o=this.display=new M(e,n,i);o.wrapper.CodeMirror=this,An(this),ko(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),$r(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new ya,keySeq:null,specialChars:null},t.autofocus&&!sa&&o.input.focus(),Qo&&Jo<11&&setTimeout(function(){return r.display.input.reset(!0)},20),Lo(this),Ui(),tn(this),this.curOp.forceUpdate=!0,jn(this,n),t.autofocus&&!sa||this.hasFocus()?setTimeout(c(Ir,this),20):Nr(this);for(var a in Tl)Tl.hasOwnProperty(a)&&Tl[a](r,t[a],Ml);Rr(this),t.finishInit&&t.finishInit(this);for(var l=0;l<Al.length;++l)Al[l](r);rn(this),Zo&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}function Lo(e){function t(){i.activeTouch&&(o=setTimeout(function(){return i.activeTouch=null},1e3),a=i.activeTouch,a.end=+new Date)}function r(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function n(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}var i=e.display;Pa(i.scroller,"mousedown",fn(e,po)),Qo&&Jo<11?Pa(i.scroller,"dblclick",fn(e,function(t){if(!Ee(e,t)){var r=Cr(e,t);if(r&&!bo(e,t)&&!Dt(e.display,t)){Re(t);var n=e.findWordAt(r);ai(e.doc,n.anchor,n.head)}}})):Pa(i.scroller,"dblclick",function(t){return Ee(e,t)||Re(t)}),ma||Pa(i.scroller,"contextmenu",function(t){return xo(e,t)});var o,a={end:0};Pa(i.scroller,"touchstart",function(t){if(!Ee(e,t)&&!r(t)){i.input.ensurePolled(),clearTimeout(o);var n=+new Date;i.activeTouch={start:n,moved:!1,prev:n-a.end<=300?a:null},1==t.touches.length&&(i.activeTouch.left=t.touches[0].pageX,i.activeTouch.top=t.touches[0].pageY)}}),Pa(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),Pa(i.scroller,"touchend",function(r){var o=i.activeTouch;if(o&&!Dt(i,r)&&null!=o.left&&!o.moved&&new Date-o.start<300){var a,l=e.coordsChar(i.activeTouch,"page");a=!o.prev||n(o,o.prev)?new ol(l,l):!o.prev.prev||n(o,o.prev.prev)?e.findWordAt(l):new ol(R(l.line,0),H(e.doc,R(l.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),Re(r)}t()}),Pa(i.scroller,"touchcancel",t),Pa(i.scroller,"scroll",function(){i.scroller.clientHeight&&(Wr(e,i.scroller.scrollTop),qr(e,i.scroller.scrollLeft,!0),Oe(e,"scroll",e))}),Pa(i.scroller,"mousewheel",function(t){return jr(e,t)}),Pa(i.scroller,"DOMMouseScroll",function(t){return jr(e,t)}),Pa(i.wrapper,"scroll",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){Ee(e,t)||De(t)},over:function(t){Ee(e,t)||(Hi(e,t),De(t))},start:function(t){return Fi(e,t)},drop:fn(e,qi),leave:function(t){Ee(e,t)||ji(e)}};var l=i.input.getField();Pa(l,"keyup",function(t){return fo.call(e,t)}),Pa(l,"keydown",fn(e,co)),Pa(l,"keypress",fn(e,ho)),Pa(l,"focus",function(t){return Ir(e,t)}),Pa(l,"blur",function(t){return Nr(e,t)})}function To(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=et(e,t):r="prev");var a=e.options.tabSize,l=L(o,t),s=f(l.text,null,a);l.stateAfter&&(l.stateAfter=null);var c,u=l.text.match(/^\s*/)[0];if(n||/\S/.test(l.text)){if("smart"==r&&((c=o.mode.indent(i,l.text.slice(u.length),l.text))==ka||c>150)){if(!n)return;r="prev"}}else c=0,r="not";"prev"==r?c=t>o.first?f(L(o,t-1).text,null,a):0:"add"==r?c=s+e.options.indentUnit:"subtract"==r?c=s-e.options.indentUnit:"number"==typeof r&&(c=s+r),c=Math.max(0,c);var d="",h=0;if(e.options.indentWithTabs)for(var m=Math.floor(c/a);m;--m)h+=a,d+="\t";if(h<c&&(d+=p(c-h)),d!=u)return Ti(o,d,R(t,0),R(t,u.length),"+input"),l.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var v=o.sel.ranges[g];if(v.head.line==t&&v.head.ch<u.length){var y=R(t,u.length);si(o,g,new ol(y,y));break}}}function Ao(e){Ol=e}function Oo(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var a=e.state.pasteIncoming||"paste"==i,l=Ba(t),s=null;if(a&&n.ranges.length>1)if(Ol&&Ol.text.join("\n")==t){if(n.ranges.length%Ol.text.length==0){s=[];for(var c=0;c<Ol.text.length;c++)s.push(o.splitLines(Ol.text[c]))}}else l.length==n.ranges.length&&(s=g(l,function(e){return[e]}));for(var u,f=n.ranges.length-1;f>=0;f--){var d=n.ranges[f],h=d.from(),p=d.to();d.empty()&&(r&&r>0?h=R(h.line,h.ch-r):e.state.overwrite&&!a?p=R(p.line,Math.min(L(o,p.line).text.length,p.ch+m(l).length)):Ol&&Ol.lineWise&&Ol.text.join("\n")==t&&(h=p=R(h.line,0))),u=e.curOp.updateInput;var v={from:h,to:p,text:s?s[f%s.length]:l,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};ki(e.doc,v),Ct(e,"inputRead",e,v)}t&&!a&&Io(e,t),Zr(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Eo(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||un(t,function(){return Oo(t,r,0,null,"paste")}),!0}function Io(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l<o.electricChars.length;l++)if(t.indexOf(o.electricChars.charAt(l))>-1){a=To(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(L(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=To(e,i.head.line,"smart"));a&&Ct(e,"electricInput",e,i.head.line)}}}function No(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:R(i,0),head:R(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function Po(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Ro(){var e=n("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=n("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return Zo?e.style.width="1000px":e.setAttribute("wrap","off"),aa&&(e.style.border="1px solid black"),Po(e),t}function Bo(e,t,r,n,i){function o(){var n=t.line+r;return!(n<e.first||n>=e.first+e.size)&&(t=new R(n,t.ch,t.sticky),
4
- c=L(e,n))}function a(n){var a;if(null==(a=i?Le(e.cm,c,t,r):_e(c,t,r))){if(n||!o())return!1;t=Me(i,e.cm,c,t.line,r)}else t=a;return!0}var l=t,s=r,c=L(e,t.line);if("char"==n)a();else if("column"==n)a(!0);else if("word"==n||"group"==n)for(var u=null,f="group"==n,d=e.cm&&e.cm.getHelper(t,"wordChars"),h=!0;!(r<0)||a(!h);h=!1){var p=c.text.charAt(t.ch)||"\n",m=w(p,d)?"w":f&&"\n"==p?"n":!f||/\s/.test(p)?null:"p";if(!f||h||m||(m="s"),u&&u!=m){r<0&&(r=1,a(),t.sticky="after");break}if(m&&(u=m),r>0&&!a(!h))break}var g=yi(e,t,l,s,!0);return z(l,g)&&(g.hitSide=!0),g}function zo(e,t,r,n){var i,o=e.doc,a=t.left;if("page"==n){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),s=Math.max(l-.5*vr(e.display),3);i=(r>0?t.bottom:t.top)+r*s}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(var c;c=hr(e,a,i),c.outside;){if(r<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*r}return c}function Do(e,t){var r=Xt(e,t.line);if(!r||r.hidden)return null;var n=L(e.doc,t.line),i=Vt(r,n,t.line),o=Ce(n,e.doc.direction),a="left";if(o){a=ke(o,t.ch)%2?"right":"left"}var l=Jt(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function Wo(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function qo(e,t){return t&&(e.bad=!0),e}function Fo(e,t,r,n,i){function o(e){return function(t){return t.id==e}}function a(){u&&(c+=f,u=!1)}function l(e){e&&(a(),c+=e)}function s(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(null!=r)return void l(r||t.textContent.replace(/\u200b/g,""));var c,d=t.getAttribute("cm-marker");if(d){var h=e.findMarks(R(n,0),R(i+1,0),o(+d));return void(h.length&&(c=h[0].find())&&l(T(e.doc,c.from,c.to).join(f)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(t.nodeName);p&&a();for(var m=0;m<t.childNodes.length;m++)s(t.childNodes[m]);p&&(u=!0)}else 3==t.nodeType&&l(t.nodeValue)}for(var c="",u=!1,f=e.doc.lineSeparator();s(t),t!=r;)t=t.nextSibling;return c}function Ho(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return qo(e.clipPos(R(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==n)return jo(o,t,r)}}function jo(e,t,r){function n(t,r,n){for(var i=-1;i<(f?f.length:0);i++)for(var o=i<0?u.map:f[i],a=0;a<o.length;a+=3){var l=o[a+2];if(l==t||l==r){var s=E(i<0?e.line:e.rest[i]),c=o[a]+n;return(n<0||l!=t)&&(c=o[a+(n?1:0)]),R(s,c)}}}var i=e.text.firstChild,a=!1;if(!t||!o(i,t))return qo(R(E(e.line),0),!0);if(t==i&&(a=!0,t=i.childNodes[r],r=0,!t)){var l=e.rest?m(e.rest):e.line;return qo(R(E(l),l.text.length),a)}var s=3==t.nodeType?t:null,c=t;for(s||1!=t.childNodes.length||3!=t.firstChild.nodeType||(s=t.firstChild,r&&(r=s.nodeValue.length));c.parentNode!=i;)c=c.parentNode;var u=e.measure,f=u.maps,d=n(s,c,r);if(d)return qo(d,a);for(var h=c.nextSibling,p=s?s.nodeValue.length-r:0;h;h=h.nextSibling){if(d=n(h,h.firstChild,0))return qo(R(d.line,d.ch-p),a);p+=h.textContent.length}for(var g=c.previousSibling,v=r;g;g=g.previousSibling){if(d=n(g,g.firstChild,-1))return qo(R(d.line,d.ch+v),a);v+=g.textContent.length}}function Ko(e,t){function r(){e.value=s.getValue()}if(t=t?u(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=a();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}var i;if(e.form&&(Pa(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(t){t.save=r,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,r(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(Ae(e.form,"submit",r),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var s=Mo(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s}var Uo=navigator.userAgent,Vo=navigator.platform,$o=/gecko\/\d/i.test(Uo),Go=/MSIE \d/.test(Uo),Xo=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Uo),Yo=/Edge\/(\d+)/.exec(Uo),Qo=Go||Xo||Yo,Jo=Qo&&(Go?document.documentMode||6:+(Yo||Xo)[1]),Zo=!Yo&&/WebKit\//.test(Uo),ea=Zo&&/Qt\/\d+\.\d+/.test(Uo),ta=!Yo&&/Chrome\//.test(Uo),ra=/Opera\//.test(Uo),na=/Apple Computer/.test(navigator.vendor),ia=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(Uo),oa=/PhantomJS/.test(Uo),aa=!Yo&&/AppleWebKit/.test(Uo)&&/Mobile\/\w+/.test(Uo),la=/Android/.test(Uo),sa=aa||la||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Uo),ca=aa||/Mac/.test(Vo),ua=/\bCrOS\b/.test(Uo),fa=/win/i.test(Vo),da=ra&&Uo.match(/Version\/(\d*\.\d*)/);da&&(da=Number(da[1])),da&&da>=15&&(ra=!1,Zo=!0);var ha,pa=ca&&(ea||ra&&(null==da||da<12.11)),ma=$o||Qo&&Jo>=9,ga=function(t,r){var n=t.className,i=e(r).exec(n);if(i){var o=n.slice(i.index+i[0].length);t.className=n.slice(0,i.index)+(o?i[1]+o:"")}};ha=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(e){return n}return n.collapse(!0),n.moveEnd("character",r),n.moveStart("character",t),n};var va=function(e){e.select()};aa?va=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:Qo&&(va=function(e){try{e.select()}catch(e){}});var ya=function(){this.id=null};ya.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var ba,xa,wa=30,ka={toString:function(){return"CodeMirror.Pass"}},Ca={scroll:!1},Sa={origin:"*mouse"},_a={origin:"+move"},Ma=[""],La=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ta=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\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\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\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\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Aa=!1,Oa=!1,Ea=null,Ia=function(){function e(e){return e<=247?r.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?n.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,r){this.level=e,this.from=t,this.to=r}var r="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",n="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,s=/[1n]/;return function(r,n){var c="ltr"==n?"L":"R";if(0==r.length||"ltr"==n&&!i.test(r))return!1;for(var u=r.length,f=[],d=0;d<u;++d)f.push(e(r.charCodeAt(d)));for(var h=0,p=c;h<u;++h){var g=f[h];"m"==g?f[h]=p:p=g}for(var v=0,y=c;v<u;++v){var b=f[v];"1"==b&&"r"==y?f[v]="n":a.test(b)&&(y=b,"r"==b&&(f[v]="R"))}for(var x=1,w=f[0];x<u-1;++x){var k=f[x];"+"==k&&"1"==w&&"1"==f[x+1]?f[x]="1":","!=k||w!=f[x+1]||"1"!=w&&"n"!=w||(f[x]=w),w=k}for(var C=0;C<u;++C){var S=f[C];if(","==S)f[C]="N";else if("%"==S){var _=void 0;for(_=C+1;_<u&&"%"==f[_];++_);for(var M=C&&"!"==f[C-1]||_<u&&"1"==f[_]?"1":"N",L=C;L<_;++L)f[L]=M;C=_-1}}for(var T=0,A=c;T<u;++T){var O=f[T];"L"==A&&"1"==O?f[T]="L":a.test(O)&&(A=O)}for(var E=0;E<u;++E)if(o.test(f[E])){var I=void 0;for(I=E+1;I<u&&o.test(f[I]);++I);for(var N="L"==(E?f[E-1]:c),P="L"==(I<u?f[I]:c),R=N==P?N?"L":"R":c,B=E;B<I;++B)f[B]=R;E=I-1}for(var z,D=[],W=0;W<u;)if(l.test(f[W])){var q=W;for(++W;W<u&&l.test(f[W]);++W);D.push(new t(0,q,W))}else{var F=W,H=D.length;for(++W;W<u&&"L"!=f[W];++W);for(var j=F;j<W;)if(s.test(f[j])){F<j&&D.splice(H,0,new t(1,F,j));var K=j;for(++j;j<W&&s.test(f[j]);++j);D.splice(H,0,new t(2,K,j)),F=j}else++j;F<W&&D.splice(H,0,new t(1,F,W))}return 1==D[0].level&&(z=r.match(/^\s+/))&&(D[0].from=z[0].length,D.unshift(new t(0,0,z[0].length))),1==m(D).level&&(z=r.match(/\s+$/))&&(m(D).to-=z[0].length,D.push(new t(0,u-z[0].length,u))),"rtl"==n?D.reverse():D}}(),Na=[],Pa=function(e,t,r){if(e.addEventListener)e.addEventListener(t,r,!1);else if(e.attachEvent)e.attachEvent("on"+t,r);else{var n=e._handlers||(e._handlers={});n[t]=(n[t]||Na).concat(r)}},Ra=function(){if(Qo&&Jo<9)return!1;var e=n("div");return"draggable"in e||"dragDrop"in e}(),Ba=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);i==-1&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");a!=-1?(r.push(o.slice(0,a)),t+=a+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},za=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Da=function(){var e=n("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Wa=null,qa={},Fa={},Ha={},ja=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};ja.prototype.eol=function(){return this.pos>=this.string.length},ja.prototype.sol=function(){return this.pos==this.lineStart},ja.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ja.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},ja.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},ja.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},ja.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},ja.prototype.skipToEnd=function(){this.pos=this.string.length},ja.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},ja.prototype.backUp=function(e){this.pos-=e},ja.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=f(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},ja.prototype.indentation=function(){return f(this.string,null,this.tabSize)-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},ja.prototype.match=function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&t!==!1&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return t!==!1&&(this.pos+=e.length),!0},ja.prototype.current=function(){return this.string.slice(this.start,this.pos)},ja.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}};var Ka=function(e,t,r){this.text=e,ne(this,t),this.height=r?r(this):1};Ka.prototype.lineNo=function(){return E(this)},Pe(Ka);var Ua,Va={},$a={},Ga=null,Xa=null,Ya={left:0,right:0,top:0,bottom:0},Qa=0,Ja=null;Qo?Ja=-.53:$o?Ja=15:ta?Ja=-.7:na&&(Ja=-1/3);var Za=function(e,t,r){this.cm=r;var i=this.vert=n("div",[n("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=n("div",[n("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),Pa(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),Pa(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,Qo&&Jo<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Za.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},Za.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz)},Za.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert)},Za.prototype.zeroWidthHack=function(){var e=ca&&!ia?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new ya,this.disableVert=new ya},Za.prototype.enableZeroWidthBar=function(e,t){function r(){var n=e.getBoundingClientRect();document.elementFromPoint(n.left+1,n.bottom-1)!=e?e.style.pointerEvents="none":t.set(1e3,r)}e.style.pointerEvents="auto",t.set(1e3,r)},Za.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var el=function(){};el.prototype.update=function(){return{bottom:0,right:0}},el.prototype.setScrollLeft=function(){},el.prototype.setScrollTop=function(){},el.prototype.clear=function(){};var tl={native:Za,null:el},rl=0,nl=function(e,t,r){var n=e.display;this.viewport=t,this.visible=Dr(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=jt(e),this.force=r,this.dims=br(e),this.events=[]};nl.prototype.signal=function(e,t){Ne(e,t)&&this.events.push(arguments)},nl.prototype.finish=function(){for(var e=this,t=0;t<this.events.length;t++)Oe.apply(null,e.events[t])};var il=function(e,t){this.ranges=e,this.primIndex=t};il.prototype.primary=function(){return this.ranges[this.primIndex]},il.prototype.equals=function(e){var t=this;if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var r=0;r<this.ranges.length;r++){var n=t.ranges[r],i=e.ranges[r];if(!z(n.anchor,i.anchor)||!z(n.head,i.head))return!1}return!0},il.prototype.deepCopy=function(){for(var e=this,t=[],r=0;r<this.ranges.length;r++)t[r]=new ol(D(e.ranges[r].anchor),D(e.ranges[r].head));return new il(t,this.primIndex)},il.prototype.somethingSelected=function(){for(var e=this,t=0;t<this.ranges.length;t++)if(!e.ranges[t].empty())return!0;return!1},il.prototype.contains=function(e,t){var r=this;t||(t=e);for(var n=0;n<this.ranges.length;n++){var i=r.ranges[n];if(B(t,i.from())>=0&&B(e,i.to())<=0)return n}return-1};var ol=function(e,t){this.anchor=e,this.head=t};ol.prototype.from=function(){return q(this.anchor,this.head)},ol.prototype.to=function(){return W(this.anchor,this.head)},ol.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};var al=function(e){var t=this;this.lines=e,this.parent=null;for(var r=0,n=0;n<e.length;++n)e[n].parent=t,r+=e[n].height;this.height=r};al.prototype.chunkSize=function(){return this.lines.length},al.prototype.removeInner=function(e,t){for(var r=this,n=e,i=e+t;n<i;++n){var o=r.lines[n];r.height-=o.height,ct(o),Ct(o,"delete")}this.lines.splice(e,t)},al.prototype.collapse=function(e){e.push.apply(e,this.lines)},al.prototype.insertInner=function(e,t,r){var n=this;this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var i=0;i<t.length;++i)t[i].parent=n},al.prototype.iterN=function(e,t,r){for(var n=this,i=e+t;e<i;++e)if(r(n.lines[e]))return!0};var ll=function(e){var t=this;this.children=e;for(var r=0,n=0,i=0;i<e.length;++i){var o=e[i];r+=o.chunkSize(),n+=o.height,o.parent=t}this.size=r,this.height=n,this.parent=null};ll.prototype.chunkSize=function(){return this.size},ll.prototype.removeInner=function(e,t){var r=this;this.size-=t;for(var n=0;n<this.children.length;++n){var i=r.children[n],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e),l=i.height;if(i.removeInner(e,a),r.height-=l-i.height,o==a&&(r.children.splice(n--,1),i.parent=null),0==(t-=a))break;e=0}else e-=o}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof al))){var s=[];this.collapse(s),this.children=[new al(s)],this.children[0].parent=this}},ll.prototype.collapse=function(e){for(var t=this,r=0;r<this.children.length;++r)t.children[r].collapse(e)},ll.prototype.insertInner=function(e,t,r){var n=this;this.size+=t.length,this.height+=r;for(var i=0;i<this.children.length;++i){var o=n.children[i],a=o.chunkSize();if(e<=a){if(o.insertInner(e,t,r),o.lines&&o.lines.length>50){for(var l=o.lines.length%25+25,s=l;s<o.lines.length;){var c=new al(o.lines.slice(s,s+=25));o.height-=c.height,n.children.splice(++i,0,c),c.parent=n}o.lines=o.lines.slice(0,l),n.maybeSpill()}break}e-=a}},ll.prototype.maybeSpill=function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),r=new ll(t);if(e.parent){e.size-=r.size,e.height-=r.height;var n=d(e.parent.children,e);e.parent.children.splice(n+1,0,r)}else{var i=new ll(e.children);i.parent=e,e.children=[i,r],e=i}r.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},ll.prototype.iterN=function(e,t,r){for(var n=this,i=0;i<this.children.length;++i){var o=n.children[i],a=o.chunkSize();if(e<a){var l=Math.min(t,a-e);if(o.iterN(e,l,r))return!0;if(0==(t-=l))break;e=0}else e-=a}};var sl=function(e,t,r){var n=this;if(r)for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i]);this.doc=e,this.node=t};sl.prototype.clear=function(){var e=this,t=this.doc.cm,r=this.line.widgets,n=this.line,i=E(n);if(null!=i&&r){for(var o=0;o<r.length;++o)r[o]==e&&r.splice(o--,1);r.length||(n.widgets=null);var a=zt(this);O(n,Math.max(0,n.height-a)),t&&(un(t,function(){Ni(t,n,-a),mn(t,i,"widget")}),Ct(t,"lineWidgetCleared",t,this,i))}},sl.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=zt(this)-t;i&&(O(n,n.height+i),r&&un(r,function(){r.curOp.forceUpdate=!0,Ni(r,n,i),Ct(r,"lineWidgetChanged",r,e,E(n))}))},Pe(sl);var cl=0,ul=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++cl};ul.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&tn(t),Ne(this,"clear")){var n=this.find();n&&Ct(this,"clear",n.from,n.to)}for(var i=null,o=null,a=0;a<this.lines.length;++a){var l=e.lines[a],s=G(l.markedSpans,e);t&&!e.collapsed?mn(t,E(l),"text"):t&&(null!=s.to&&(o=E(l)),null!=s.from&&(i=E(l))),l.markedSpans=X(l.markedSpans,s),null==s.from&&e.collapsed&&!ge(e.doc,l)&&t&&O(l,vr(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var c=0;c<this.lines.length;++c){var u=fe(e.lines[c]),f=be(u);f>t.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=f,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&pn(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&mi(t.doc)),t&&Ct(t,"markerCleared",t,this,i,o),r&&rn(t),this.parent&&this.parent.clear()}},ul.prototype.find=function(e,t){var r=this;null==e&&"bookmark"==this.type&&(e=1);for(var n,i,o=0;o<this.lines.length;++o){var a=r.lines[o],l=G(a.markedSpans,r);if(null!=l.from&&(n=R(t?a:E(a),l.from),e==-1))return n;if(null!=l.to&&(i=R(t?a:E(a),l.to),1==e))return i}return n&&{from:n,to:i}},ul.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&un(n,function(){var i=t.line,o=E(t.line),a=Xt(n,o);if(a&&(rr(a),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!ge(r.doc,i)&&null!=r.height){var l=r.height;r.height=null;var s=zt(r)-l;s&&O(i,i.height+s)}Ct(n,"markerChanged",n,e)})},ul.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&d(t.maybeHiddenMarkers,this)!=-1||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},ul.prototype.detachLine=function(e){if(this.lines.splice(d(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},Pe(ul);var fl=function(e,t){var r=this;this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=r};fl.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var t=0;t<this.markers.length;++t)e.markers[t].clear();Ct(this,"clear")}},fl.prototype.find=function(e,t){return this.primary.find(e,t)},Pe(fl);var dl=0,hl=function(e,t,r,n,i){if(!(this instanceof hl))return new hl(e,t,r,n,i);null==r&&(r=0),ll.call(this,[new al([new Ka("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.frontier=r;var o=R(r,0);this.sel=In(o),this.history=new Vn(null),this.id=++dl,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Fn(this,{from:o,to:o,text:e}),di(this,In(o),Ca)};hl.prototype=b(ll.prototype,{constructor:hl,iter:function(e,t,r){r?this.iterN(e-this.first,t-e,r):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var r=0,n=0;n<t.length;++n)r+=t[n].height;this.insertInner(e-this.first,t,r)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=A(this,this.first,this.first+this.size);return e===!1?t:t.join(e||this.lineSeparator())},setValue:hn(function(e){var t=R(this.first,0),r=this.first+this.size-1;ki(this,{from:t,to:R(r,L(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),di(this,In(t))}),replaceRange:function(e,t,r,n){t=H(this,t),r=r?H(this,r):t,Ti(this,e,t,r,n)},getRange:function(e,t,r){var n=T(this,H(this,e),H(this,t));return r===!1?n:n.join(r||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(N(this,e))return L(this,e)},getLineNumber:function(e){return E(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=L(this,e)),fe(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return H(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||e===!1?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:hn(function(e,t,r){ci(this,H(this,"number"==typeof e?R(e,t||0):e),null,r)}),setSelection:hn(function(e,t,r){ci(this,H(this,e),H(this,t||e),r)}),extendSelection:hn(function(e,t,r){ai(this,H(this,e),t&&H(this,t),r)}),extendSelections:hn(function(e,t){li(this,K(this,e),t)}),extendSelectionsBy:hn(function(e,t){li(this,K(this,g(this.sel.ranges,e)),t)}),setSelections:hn(function(e,t,r){var n=this;if(e.length){for(var i=[],o=0;o<e.length;o++)i[o]=new ol(H(n,e[o].anchor),H(n,e[o].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),di(this,En(i,t),r)}}),addSelection:hn(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new ol(H(this,e),H(this,t||e))),di(this,En(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this,n=this.sel.ranges,i=0;i<n.length;i++){var o=T(r,n[i].from(),n[i].to());t=t?t.concat(o):o}return e===!1?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=this,r=[],n=this.sel.ranges,i=0;i<n.length;i++){var o=T(t,n[i].from(),n[i].to());e!==!1&&(o=o.join(e||t.lineSeparator())),r[i]=o}return r},replaceSelection:function(e,t,r){for(var n=[],i=0;i<this.sel.ranges.length;i++)n[i]=e;this.replaceSelections(n,t,r||"+input")},replaceSelections:hn(function(e,t,r){for(var n=this,i=[],o=this.sel,a=0;a<o.ranges.length;a++){var l=o.ranges[a];i[a]={from:l.from(),to:l.to(),text:n.splitLines(e[a]),origin:r}}for(var s=t&&"end"!=t&&zn(this,i,t),c=i.length-1;c>=0;c--)ki(n,i[c]);s?fi(this,s):this.cm&&Zr(this.cm)}),undo:hn(function(){Si(this,"undo")}),redo:hn(function(){Si(this,"redo")}),undoSelection:hn(function(){Si(this,"undo",!0)}),redoSelection:hn(function(){Si(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n<e.done.length;n++)e.done[n].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++r;return{undo:t,redo:r}},clearHistory:function(){this.history=new Vn(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:ii(this.history.done),undone:ii(this.history.undone)}},setHistory:function(e){var t=this.history=new Vn(this.history.maxGeneration);t.done=ii(e.done.slice(0),null,!0),t.undone=ii(e.undone.slice(0),null,!0)},setGutterMarker:hn(function(e,t,r){return Ii(this,e,"gutter",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&k(n)&&(e.gutterMarkers=null),!0})}),clearGutter:hn(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&Ii(t,r,"gutter",function(){return r.gutterMarkers[e]=null,k(r.gutterMarkers)&&(r.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!N(this,e))return null;if(t=e,!(e=L(this,e)))return null}else if(null==(t=E(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:hn(function(t,r,n){return Ii(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(t[i]){if(e(n).test(t[i]))return!1;t[i]+=" "+n}else t[i]=n;return!0})}),removeLineClass:hn(function(t,r,n){return Ii(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==n)t[i]=null;else{var a=o.match(e(n));if(!a)return!1;var l=a.index+a[0].length;t[i]=o.slice(0,a.index)+(a.index&&l!=o.length?" ":"")+o.slice(l)||null}return!0})}),addLineWidget:hn(function(e,t,r){return Pi(this,e,t,r)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return Ri(this,H(this,e),H(this,t),r,r&&r.type||"range")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=H(this,e),Ri(this,e,e,r,"bookmark")},findMarksAt:function(e){e=H(this,e);var t=[],r=L(this,e.line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=H(this,e),t=H(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var l=0;l<a.length;l++){var s=a[l];null!=s.to&&i==e.line&&e.ch>=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||r&&!r(s.marker)||n.push(s.marker.parent||s.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;n<r.length;++n)null!=r[n].from&&e.push(r[n].marker)}),e},posFromIndex:function(e){var t,r=this.first,n=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+n;if(o>e)return t=e,!0;e-=o,++r}),H(this,R(r,t))},indexFromPos:function(e){e=H(this,e);var t=e.ch;if(e.line<this.first||e.ch<0)return 0;var r=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+r}),t},copy:function(e){var t=new hl(A(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,r=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<r&&(r=e.to);var n=new hl(A(this,t,r),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(n.history=this.history),(this.linked||(this.linked=[])).push({doc:n,sharedHist:e.sharedHist}),n.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],Di(n,zi(this)),n},unlinkDoc:function(e){var t=this;if(e instanceof Mo&&(e=e.doc),this.linked)for(var r=0;r<this.linked.length;++r){var n=t.linked[r];if(n.doc==e){t.linked.splice(r,1),e.unlinkDoc(t),Wi(zi(t));break}}if(e.history==this.history){var i=[e.id];Hn(e,function(e){return i.push(e.id)},!0),e.history=new Vn(null),e.history.done=ii(this.history.done,i),e.history.undone=ii(this.history.undone,i)}},iterLinkedDocs:function(e){Hn(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):Ba(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:hn(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Un(this.cm))})}),hl.prototype.eachLine=hl.prototype.iter;for(var pl=0,ml=!1,gl={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",
5
- 63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},vl=0;vl<10;vl++)gl[vl+48]=gl[vl+96]=String(vl);for(var yl=65;yl<=90;yl++)gl[yl]=String.fromCharCode(yl);for(var bl=1;bl<=12;bl++)gl[bl+111]=gl[bl+63235]="F"+bl;var xl={};xl.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},xl.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},xl.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},xl.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},xl.default=ca?xl.macDefault:xl.pcDefault;var wl,kl,Cl={selectAll:xi,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),Ca)},killLine:function(e){return eo(e,function(t){if(t.empty()){var r=L(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line<e.lastLine()?{from:t.head,to:R(t.head.line+1,0)}:{from:t.head,to:R(t.head.line,r)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return eo(e,function(t){return{from:R(t.from().line,0),to:H(e.doc,R(t.to().line+1,0))}})},delLineLeft:function(e){return eo(e,function(e){return{from:R(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return eo(e,function(t){var r=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:r},"div"),to:t.from()}})},delWrappedLineRight:function(e){return eo(e,function(t){var r=e.charCoords(t.head,"div").top+5,n=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div");return{from:t.from(),to:n}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(R(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(R(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return to(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return no(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return ro(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var r=e.charCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div")},_a)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var r=e.charCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:r},"div")},_a)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var r=e.charCoords(t.head,"div").top+5,n=e.coordsChar({left:0,top:r},"div");return n.ch<e.getLine(n.line).search(/\S/)?no(e,t.head):n},_a)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],r=e.listSelections(),n=e.options.tabSize,i=0;i<r.length;i++){var o=r[i].from(),a=f(e.getLine(o.line),o.ch,n);t.push(p(n-a%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return un(e,function(){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)if(t[n].empty()){var i=t[n].head,o=L(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new R(i.line,i.ch-1)),i.ch>0)i=new R(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),R(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=L(e.doc,i.line-1).text;a&&(i=new R(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),R(i.line-1,a.length-1),i,"+transpose"))}r.push(new ol(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return un(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n<t.length;n++)e.indentLine(t[n].from().line,null,!0);Zr(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},Sl=new ya,_l=null,Ml={toString:function(){return"CodeMirror.Init"}},Ll={},Tl={};Mo.defaults=Ll,Mo.optionHandlers=Tl;var Al=[];Mo.defineInitHook=function(e){return Al.push(e)};var Ol=null,El=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new ya,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};El.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())Ao({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=No(i);Ao({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,Ca),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=Ol.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var a=Ro(),l=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),l.value=Ol.text.join("\n");var s=document.activeElement;va(l),setTimeout(function(){i.display.lineSpace.removeChild(a),s.focus(),s==o&&n.showPrimarySelection()},50)}}var r=this,n=this,i=n.cm,o=n.div=e.lineDiv;Po(o,i.options.spellcheck),Pa(o,"paste",function(e){Ee(i,e)||Eo(e,i)||Jo<=11&&setTimeout(fn(i,function(){return r.updateFromDOM()}),20)}),Pa(o,"compositionstart",function(e){r.composing={data:e.data,done:!1}}),Pa(o,"compositionupdate",function(e){r.composing||(r.composing={data:e.data,done:!1})}),Pa(o,"compositionend",function(e){r.composing&&(e.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),Pa(o,"touchstart",function(){return n.forceCompositionEnd()}),Pa(o,"input",function(){r.composing||r.readFromDOMSoon()}),Pa(o,"copy",t),Pa(o,"cut",t)},El.prototype.prepareSelection=function(){var e=Mr(this.cm,!1);return e.focus=this.cm.state.focused,e},El.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},El.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm.doc.sel.primary(),r=Ho(this.cm,e.anchorNode,e.anchorOffset),n=Ho(this.cm,e.focusNode,e.focusOffset);if(!r||r.bad||!n||n.bad||0!=B(q(r,n),t.from())||0!=B(W(r,n),t.to())){var i=Do(this.cm,t.from()),o=Do(this.cm,t.to());if(!i&&!o)return void e.removeAllRanges();var a=this.cm.display.view,l=e.rangeCount&&e.getRangeAt(0);if(i){if(!o){var s=a[a.length-1].measure,c=s.maps?s.maps[s.maps.length-1]:s.map;o={node:c[c.length-1],offset:c[c.length-2]-c[c.length-3]}}}else i={node:a[0].measure.map[2],offset:0};var u;try{u=ha(i.node,i.offset,o.offset,o.node)}catch(e){}u&&(!$o&&this.cm.state.focused?(e.collapse(i.node,i.offset),u.collapsed||(e.removeAllRanges(),e.addRange(u))):(e.removeAllRanges(),e.addRange(u)),l&&null==e.anchorNode?e.addRange(l):$o&&this.startGracePeriod()),this.rememberSelection()}},El.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},El.prototype.showMultipleSelections=function(e){r(this.cm.display.cursorDiv,e.cursors),r(this.cm.display.selectionDiv,e.selection)},El.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},El.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},El.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},El.prototype.blur=function(){this.div.blur()},El.prototype.getField=function(){return this.div},El.prototype.supportsTouch=function(){return!0},El.prototype.receivedFocus=function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():un(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},El.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},El.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(la&&ta&&this.cm.options.gutters.length&&Wo(e.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var r=Ho(t,e.anchorNode,e.anchorOffset),n=Ho(t,e.focusNode,e.focusOffset);r&&n&&un(t,function(){di(t.doc,In(r,n),Ca),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},El.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,r=e.doc.sel.primary(),n=r.from(),i=r.to();if(0==n.ch&&n.line>e.firstLine()&&(n=R(n.line-1,L(e.doc,n.line-1).length)),i.ch==L(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=R(i.line+1,0)),n.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,a,l;n.line==t.viewFrom||0==(o=Sr(e,n.line))?(a=E(t.view[0].line),l=t.view[0].node):(a=E(t.view[o].line),l=t.view[o-1].node.nextSibling);var s,c,u=Sr(e,i.line);if(u==t.view.length-1?(s=t.viewTo-1,c=t.lineDiv.lastChild):(s=E(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!l)return!1;for(var f=e.doc.splitLines(Fo(e,l,c,a,s)),d=T(e.doc,R(a,0),R(s,L(e.doc,s).text.length));f.length>1&&d.length>1;)if(m(f)==m(d))f.pop(),d.pop(),s--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),a++}for(var h=0,p=0,g=f[0],v=d[0],y=Math.min(g.length,v.length);h<y&&g.charCodeAt(h)==v.charCodeAt(h);)++h;for(var b=m(f),x=m(d),w=Math.min(b.length-(1==f.length?h:0),x.length-(1==d.length?h:0));p<w&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)++p;if(1==f.length&&1==d.length&&a==n.line)for(;h&&h>n.ch&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)h--,p++;f[f.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(h).replace(/\u200b+$/,"");var k=R(a,h),C=R(s,d.length?m(d).length-p:0);return f.length>1||f[0]||B(k,C)?(Ti(e.doc,f,k,C,"+input"),!0):void 0},El.prototype.ensurePolled=function(){this.forceCompositionEnd()},El.prototype.reset=function(){this.forceCompositionEnd()},El.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},El.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},El.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||un(this.cm,function(){return pn(e.cm)})},El.prototype.setUneditable=function(e){e.contentEditable="false"},El.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||fn(this.cm,Oo)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},El.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},El.prototype.onContextMenu=function(){},El.prototype.resetPosition=function(){},El.prototype.needsContentAttribute=!0;var Il=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new ya,this.inaccurateSelection=!1,this.hasSelection=!1,this.composing=null};Il.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())Ao({lineWise:!1,text:i.getSelections()}),n.inaccurateSelection&&(n.prevInput="",n.inaccurateSelection=!1,a.value=Ol.text.join("\n"),va(a));else{if(!i.options.lineWiseCopyCut)return;var t=No(i);Ao({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,Ca):(n.prevInput="",a.value=t.text.join("\n"),va(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var r=this,n=this,i=this.cm,o=this.wrapper=Ro(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),aa&&(a.style.width="0px"),Pa(a,"input",function(){Qo&&Jo>=9&&r.hasSelection&&(r.hasSelection=null),n.poll()}),Pa(a,"paste",function(e){Ee(i,e)||Eo(e,i)||(i.state.pasteIncoming=!0,n.fastPoll())}),Pa(a,"cut",t),Pa(a,"copy",t),Pa(e.scroller,"paste",function(t){Dt(e,t)||Ee(i,t)||(i.state.pasteIncoming=!0,n.focus())}),Pa(e.lineSpace,"selectstart",function(t){Dt(e,t)||Re(t)}),Pa(a,"compositionstart",function(){var e=i.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),Pa(a,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},Il.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=Mr(e);if(e.options.moveInputWithCursor){var i=ur(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return n},Il.prototype.showSelection=function(e){var t=this.cm,n=t.display;r(n.cursorDiv,e.cursors),r(n.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Il.prototype.reset=function(e){if(!this.contextMenuPending){var t,r,n=this.cm,i=n.doc;if(n.somethingSelected()){this.prevInput="";var o=i.sel.primary();t=Da&&(o.to().line-o.from().line>100||(r=n.getSelection()).length>1e3);var a=t?"-":r||n.getSelection();this.textarea.value=a,n.state.focused&&va(this.textarea),Qo&&Jo>=9&&(this.hasSelection=a)}else e||(this.prevInput=this.textarea.value="",Qo&&Jo>=9&&(this.hasSelection=null));this.inaccurateSelection=t}},Il.prototype.getField=function(){return this.textarea},Il.prototype.supportsTouch=function(){return!1},Il.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!sa||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},Il.prototype.blur=function(){this.textarea.blur()},Il.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Il.prototype.receivedFocus=function(){this.slowPoll()},Il.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Il.prototype.fastPoll=function(){function e(){r.poll()||t?(r.pollingFast=!1,r.slowPoll()):(t=!0,r.polling.set(60,e))}var t=!1,r=this;r.pollingFast=!0,r.polling.set(20,e)},Il.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||za(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(Qo&&Jo>=9&&this.hasSelection===i||ca&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,l=Math.min(n.length,i.length);a<l&&n.charCodeAt(a)==i.charCodeAt(a);)++a;return un(t,function(){Oo(t,i.slice(a),n.length-a,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Il.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Il.prototype.onKeyPress=function(){Qo&&Jo>=9&&(this.hasSelection=null),this.fastPoll()},Il.prototype.onContextMenu=function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t="​"+(e?a.value:"");a.value="⇚",a.value=t,n.prevInput=e?"":"​",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function r(){if(n.contextMenuPending=!1,n.wrapper.style.cssText=u,a.style.cssText=c,Qo&&Jo<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=a.selectionStart){(!Qo||Qo&&Jo<9)&&t();var e=0,r=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==n.prevInput?fn(i,xi)(i):e++<10?o.detectingSelectAll=setTimeout(r,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(r,200)}}var n=this,i=n.cm,o=i.display,a=n.textarea,l=Cr(i,e),s=o.scroller.scrollTop;if(l&&!ra){i.options.resetSelectionOnContextMenu&&i.doc.sel.contains(l)==-1&&fn(i,di)(i.doc,In(l),Ca);var c=a.style.cssText,u=n.wrapper.style.cssText;n.wrapper.style.cssText="position: absolute";var f=n.wrapper.getBoundingClientRect();a.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-f.top-5)+"px; left: "+(e.clientX-f.left-5)+"px;\n z-index: 1000; background: "+(Qo?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var d;if(Zo&&(d=window.scrollY),o.input.focus(),Zo&&window.scrollTo(null,d),o.input.reset(),i.somethingSelected()||(a.value=n.prevInput=" "),n.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),Qo&&Jo>=9&&t(),ma){De(e);var h=function(){Ae(window,"mouseup",h),setTimeout(r,20)};Pa(window,"mouseup",h)}else setTimeout(r,50)}},Il.prototype.readOnlyChanged=function(e){e||this.reset()},Il.prototype.setUneditable=function(){},Il.prototype.needsContentAttribute=!1,function(e){function t(t,n,i,o){e.defaults[t]=n,i&&(r[t]=o?function(e,t,r){r!=Ml&&i(e,t,r)}:i)}var r=e.optionHandlers;e.defineOption=t,e.Init=Ml,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Dn(e)},!0),t("indentUnit",2,Dn,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Wn(e),ir(e),pn(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(o==-1)break;i=o+t.length,r.push(R(n,o))}n++});for(var i=r.length-1;i>=0;i--)Ti(e.doc,t,r[i],R(r[i].line,r[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=Ml&&e.refresh()}),t("specialCharPlaceholder",dt,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",sa?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!fa),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){ko(e),Co(e)},!0),t("keyMap","default",function(e,t,r){var n=Zi(t),i=r!=Ml&&Zi(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),t("extraKeys",null),t("lineWrapping",!1,_o,!0),t("gutters",[],function(e){On(e.options),Co(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?xr(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return Ur(e)},!0),t("scrollbarStyle","native",function(e){$r(e),Ur(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){On(e.options),Co(e)},!0),t("firstLineNumber",1,Co,!0),t("lineNumberFormatter",function(e){return e},Co,!0),t("showCursorWhenSelecting",!1,_r,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("readOnly",!1,function(e,t){"nocursor"==t?(Nr(e),e.display.input.blur(),e.display.disabled=!0):e.display.disabled=!1,e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,So),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,_r,!0),t("singleCursorHeightPerLine",!0,_r,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,Wn,!0),t("addModeClass",!1,Wn,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,Wn,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(Mo),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&fn(this,t[e])(this,r,i),Oe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Zi(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:dn(function(t,r){var n=t.token?t:e.getMode(this.options,t);if(n.startState)throw new Error("Overlays may not be stateful.");v(this.state.overlays,{mode:n,modeSpec:t,opaque:r&&r.opaque,priority:r&&r.priority||0},function(e){return e.priority}),this.state.modeGen++,pn(this)}),removeOverlay:dn(function(e){for(var t=this,r=this.state.overlays,n=0;n<r.length;++n){var i=r[n].modeSpec;if(i==e||"string"==typeof e&&i.name==e)return r.splice(n,1),t.state.modeGen++,void pn(t)}}),indentLine:dn(function(e,t,r){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),N(this.doc,e)&&To(this,e,t,r)}),indentSelection:dn(function(e){for(var t=this,r=this.doc.sel.ranges,n=-1,i=0;i<r.length;i++){var o=r[i];if(o.empty())o.head.line>n&&(To(t,o.head.line,e,!0),n=o.head.line,i==t.doc.sel.primIndex&&Zr(t));else{var a=o.from(),l=o.to(),s=Math.max(n,a.line);n=Math.min(t.lastLine(),l.line-(l.ch?0:1))+1;for(var c=s;c<n;++c)To(t,c,e);var u=t.doc.sel.ranges;0==a.ch&&r.length==u.length&&u[i].from().ch>0&&si(t.doc,i,new ol(a,u[i].to()),Ca)}}}),getTokenAt:function(e,t){return it(this,e,t)},getLineTokens:function(e,t){return it(this,R(e),t,!0)},getTokenTypeAt:function(e){e=H(this.doc,e);var t,r=Ze(this,L(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var a=n+i>>1;if((a?r[2*a-1]:0)>=o)i=a;else{if(!(r[2*a+1]<o)){t=r[2*a+2];break}n=a+1}}var l=t?t.indexOf("overlay "):-1;return l<0?t:0==l?null:t.slice(0,l-1)},getModeAt:function(t){var r=this.doc.mode;return r.innerMode?e.innerMode(r,this.getTokenAt(t).state).mode:r},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=this,i=[];if(!r.hasOwnProperty(t))return i;var o=r[t],a=this.getModeAt(e);if("string"==typeof a[t])o[a[t]]&&i.push(o[a[t]]);else if(a[t])for(var l=0;l<a[t].length;l++){var s=o[a[t][l]];s&&i.push(s)}else a.helperType&&o[a.helperType]?i.push(o[a.helperType]):o[a.name]&&i.push(o[a.name]);for(var c=0;c<o._global.length;c++){var u=o._global[c];u.pred(a,n)&&d(i,u.val)==-1&&i.push(u.val)}return i},getStateAfter:function(e,t){var r=this.doc;return e=F(r,null==e?r.first+r.size-1:e),et(this,e+1,t)},cursorCoords:function(e,t){var r,n=this.doc.sel.primary();return r=null==e?n.head:"object"==typeof e?H(this.doc,e):e?n.from():n.to(),ur(this,r,t||"page")},charCoords:function(e,t){return cr(this,H(this.doc,e),t||"page")},coordsChar:function(e,t){return e=sr(this,e,t||"page"),hr(this,e.left,e.top)},lineAtHeight:function(e,t){return e=sr(this,{top:e,left:0},t||"page").top,I(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,r){var n,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),n=L(this.doc,e)}else n=e;return lr(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-ye(n):0)},defaultTextHeight:function(){return vr(this.display)},defaultCharWidth:function(){return yr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o=this.display;e=ur(this,H(this.doc,e));var a=e.bottom,l=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==n)a=e.top;else if("above"==n||"near"==n){var s=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>s)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=s&&(a=e.bottom),l+t.offsetWidth>c&&(l=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(l=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?l=0:"middle"==i&&(l=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=l+"px"),r&&Yr(this,{left:l,top:a,right:l+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:dn(co),triggerOnKeyPress:dn(ho),triggerOnKeyUp:fo,execCommand:function(e){if(Cl.hasOwnProperty(e))return Cl[e].call(null,this)},triggerElectric:dn(function(e){Io(this,e)}),findPosH:function(e,t,r,n){var i=this,o=1;t<0&&(o=-1,t=-t);for(var a=H(this.doc,e),l=0;l<t&&(a=Bo(i.doc,a,o,r,n),!a.hitSide);++l);return a},moveH:dn(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?Bo(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},_a)}),deleteH:dn(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection("",null,"+delete"):eo(this,function(r){var i=Bo(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,r,n){var i=this,o=1,a=n;t<0&&(o=-1,t=-t);for(var l=H(this.doc,e),s=0;s<t;++s){var c=ur(i,l,"div");if(null==a?a=c.left:c.left=a,l=zo(i,c,o,r),l.hitSide)break}return l},moveV:dn(function(e,t){var r=this,n=this.doc,i=[],o=!this.display.shift&&!n.extend&&n.sel.somethingSelected();if(n.extendSelectionsBy(function(a){if(o)return e<0?a.from():a.to();var l=ur(r,a.head,"div");null!=a.goalColumn&&(l.left=a.goalColumn),i.push(l.left);var s=zo(r,l,e,t);return"page"==t&&a==n.sel.primary()&&Jr(r,null,cr(r,s,"div").top-l.top),s},_a),i.length)for(var a=0;a<n.sel.ranges.length;a++)n.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=this.doc,r=L(t,e.line).text,n=e.ch,i=e.ch;if(r){var o=this.getHelper(e,"wordChars");"before"!=e.sticky&&i!=r.length||!n?++i:--n;for(var a=r.charAt(n),l=w(a,o)?function(e){return w(e,o)}:/\s/.test(a)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!w(e)};n>0&&l(r.charAt(n-1));)--n;for(;i<r.length&&l(r.charAt(i));)++i}return new ol(R(e.line,n),R(e.line,i))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?l(this.display.cursorDiv,"CodeMirror-overwrite"):ga(this.display.cursorDiv,"CodeMirror-overwrite"),Oe(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:dn(function(e,t){null==e&&null==t||en(this),null!=e&&(this.curOp.scrollLeft=e),null!=t&&(this.curOp.scrollTop=t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-Ht(this)-this.display.barHeight,width:e.scrollWidth-Ht(this)-this.display.barWidth,clientHeight:Kt(this),clientWidth:jt(this)}},scrollIntoView:dn(function(e,t){if(null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:R(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line)en(this),this.curOp.scrollToPos=e;else{var r=Qr(this,{left:Math.min(e.from.left,e.to.left),top:Math.min(e.from.top,e.to.top)-e.margin,right:Math.max(e.from.right,e.to.right),bottom:Math.max(e.from.bottom,e.to.bottom)+e.margin});this.scrollTo(r.scrollLeft,r.scrollTop)}}),setSize:dn(function(e,t){var r=this,n=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&nr(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){mn(r,i,"widget");break}++i}),this.curOp.forceUpdate=!0,Oe(this,"refresh",this)}),operation:function(e){return un(this,e)},refresh:dn(function(){var e=this.display.cachedTextHeight;pn(this),this.curOp.forceUpdate=!0,ir(this),this.scrollTo(this.doc.scrollLeft,this.doc.scrollTop),Ln(this),(null==e||Math.abs(e-vr(this.display))>.5)&&kr(this),Oe(this,"refresh",this)}),
6
- swapDoc:dn(function(e){var t=this.doc;return t.cm=null,jn(this,e),ir(this),this.display.input.reset(),this.scrollTo(e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Ct(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Pe(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Mo);var Nl="iter insert remove copy getEditor constructor".split(" ");for(var Pl in hl.prototype)hl.prototype.hasOwnProperty(Pl)&&d(Nl,Pl)<0&&(Mo.prototype[Pl]=function(e){return function(){return e.apply(this.doc,arguments)}}(hl.prototype[Pl]));return Pe(hl),Mo.inputStyles={textarea:Il,contenteditable:El},Mo.defineMode=function(e){Mo.defaults.mode||"null"==e||(Mo.defaults.mode=e),Ke.apply(this,arguments)},Mo.defineMIME=Ue,Mo.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Mo.defineMIME("text/plain","null"),Mo.defineExtension=function(e,t){Mo.prototype[e]=t},Mo.defineDocExtension=function(e,t){hl.prototype[e]=t},Mo.fromTextArea=Ko,function(e){e.off=Ae,e.on=Pa,e.wheelEventPixels=Hr,e.Doc=hl,e.splitLines=Ba,e.countColumn=f,e.findColumn=h,e.isWordChar=x,e.Pass=ka,e.signal=Oe,e.Line=Ka,e.changeEnd=Nn,e.scrollbarModel=tl,e.Pos=R,e.cmpPos=B,e.modes=qa,e.mimeModes=Fa,e.resolveMode=Ve,e.getMode=$e,e.modeExtensions=Ha,e.extendMode=Ge,e.copyState=Xe,e.startState=Qe,e.innerMode=Ye,e.commands=Cl,e.keyMap=xl,e.keyName=Ji,e.isModifierKey=Qi,e.lookupKey=Yi,e.normalizeKeyMap=Xi,e.StringStream=ja,e.SharedTextMarker=fl,e.TextMarker=ul,e.LineWidget=sl,e.e_preventDefault=Re,e.e_stopPropagation=Be,e.e_stop=De,e.addClass=l,e.contains=o,e.rmClass=ga,e.keyNames=gl}(Mo),Mo.version="5.25.0",Mo}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},r={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(n,i){function o(e,t){function r(r){return t.tokenize=r,r(e,t)}var n=e.next();if("<"==n)return e.eat("!")?e.eat("[")?e.match("CDATA[")?r(s("atom","]]>")):null:e.match("--")?r(s("comment","-->")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),r(c(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=s("meta","?>"),"meta"):(M=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==n){var i;return i=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),i?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var r=e.next();if(">"==r||"/"==r&&e.eat(">"))return t.tokenize=o,M=">"==r?"endTag":"selfcloseTag","tag bracket";if("="==r)return M="equals",null;if("<"==r){t.tokenize=o,t.state=h,t.tagName=t.tagStart=null;var n=t.tokenize(e,t);return n?n+" tag error":"tag error"}return/[\'\"]/.test(r)?(t.tokenize=l(r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function l(e){var t=function(t,r){for(;!t.eol();)if(t.next()==e){r.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}function s(e,t){return function(r,n){for(;!r.eol();){if(r.match(t)){n.tokenize=o;break}r.next()}return e}}function c(e){return function(t,r){for(var n;null!=(n=t.next());){if("<"==n)return r.tokenize=c(e+1),r.tokenize(t,r);if(">"==n){if(1==e){r.tokenize=o;break}return r.tokenize=c(e-1),r.tokenize(t,r)}}return"meta"}}function u(e,t,r){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r,(C.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function f(e){e.context&&(e.context=e.context.prev)}function d(e,t){for(var r;;){if(!e.context)return;if(r=e.context.tagName,!C.contextGrabbers.hasOwnProperty(r)||!C.contextGrabbers[r].hasOwnProperty(t))return;f(e)}}function h(e,t,r){return"openTag"==e?(r.tagStart=t.column(),p):"closeTag"==e?m:h}function p(e,t,r){return"word"==e?(r.tagName=t.current(),L="tag",y):(L="error",p)}function m(e,t,r){if("word"==e){var n=t.current();return r.context&&r.context.tagName!=n&&C.implicitlyClosed.hasOwnProperty(r.context.tagName)&&f(r),r.context&&r.context.tagName==n||C.matchClosing===!1?(L="tag",g):(L="tag error",v)}return L="error",v}function g(e,t,r){return"endTag"!=e?(L="error",g):(f(r),h)}function v(e,t,r){return L="error",g(e,t,r)}function y(e,t,r){if("word"==e)return L="attribute",b;if("endTag"==e||"selfcloseTag"==e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,"selfcloseTag"==e||C.autoSelfClosers.hasOwnProperty(n)?d(r,n):(d(r,n),r.context=new u(r,n,i==r.indented)),h}return L="error",y}function b(e,t,r){return"equals"==e?x:(C.allowMissing||(L="error"),y(e,t,r))}function x(e,t,r){return"string"==e?w:"word"==e&&C.allowUnquoted?(L="string",y):(L="error",y(e,t,r))}function w(e,t,r){return"string"==e?w:y(e,t,r)}var k=n.indentUnit,C={},S=i.htmlMode?t:r;for(var _ in S)C[_]=S[_];for(var _ in i)C[_]=i[_];var M,L;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:h,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;M=null;var r=t.tokenize(e,t);return(r||M)&&"comment"!=r&&(L=null,t.state=t.state(M||r,e,t),L&&(r="error"==L?r+" error":L)),r},indent:function(t,r,n){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+k;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return n?n.match(/^(\s*)/)[0].length:0;if(t.tagName)return C.multilineTagIndentPastTag!==!1?t.tagStart+t.tagName.length+2:t.tagStart+k*(C.multilineTagIndentFactor||1);if(C.alignCDATA&&/<!\[CDATA\[/.test(r))return 0;var l=r&&/^<(\/)?([\w_:\.-]*)/.exec(r);if(l&&l[1])for(;i;){if(i.tagName==l[2]){i=i.prev;break}if(!C.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(l)for(;i;){var s=C.contextGrabbers[i.tagName];if(!s||!s.hasOwnProperty(l[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+k:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:C.htmlMode?"html":"xml",helperType:C.htmlMode?"html":"xml",skipAttribute:function(e){e.state==x&&(e.state=y)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r){return/^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}e.defineMode("javascript",function(r,n){function i(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}function o(e,t,r){return _e=e,Me=r,t}function a(e,r){var n=e.next();if('"'==n||"'"==n)return r.tokenize=l(n),r.tokenize(e,r);if("."==n&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return o("number","number");if("."==n&&e.match(".."))return o("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return o(n);if("="==n&&e.eat(">"))return o("=>","operator");if("0"==n&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),o("number","number");if("0"==n&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),o("number","number");if("0"==n&&e.eat(/b/i))return e.eatWhile(/[01]/i),o("number","number");if(/\d/.test(n))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),o("number","number");if("/"==n)return e.eat("*")?(r.tokenize=s,s(e,r)):e.eat("/")?(e.skipToEnd(),o("comment","comment")):t(e,r,1)?(i(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),o("regexp","string-2")):(e.eatWhile(Pe),o("operator","operator",e.current()));if("`"==n)return r.tokenize=c,c(e,r);if("#"==n)return e.skipToEnd(),o("error","error");if(Pe.test(n))return">"==n&&r.lexical&&">"==r.lexical.type||e.eatWhile(Pe),o("operator","operator",e.current());if(Ie.test(n)){e.eatWhile(Ie);var a=e.current(),u=Ne.propertyIsEnumerable(a)&&Ne[a];return u&&"."!=r.lastType?o(u.type,u.style,a):o("variable","variable",a)}}function l(e){return function(t,r){var n,i=!1;if(Ae&&"@"==t.peek()&&t.match(Re))return r.tokenize=a,o("jsonld-keyword","meta");for(;null!=(n=t.next())&&(n!=e||i);)i=!i&&"\\"==n;return i||(r.tokenize=a),o("string","string")}}function s(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=a;break}n="*"==r}return o("comment","comment")}function c(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=a;break}n=!n&&"\\"==r}return o("quasi","string-2",e.current())}function u(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){if(Ee){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var i=0,o=!1,a=r-1;a>=0;--a){var l=e.string.charAt(a),s=Be.indexOf(l);if(s>=0&&s<3){if(!i){++a;break}if(0==--i){"("==l&&(o=!0);break}}else if(s>=3&&s<6)++i;else if(Ie.test(l))o=!0;else{if(/["'\/]/.test(l))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}function f(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=o,null!=n&&(this.align=n)}function d(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(var r=n.vars;r;r=r.next)if(r.name==t)return!0}function h(e,t,r,n,i){var o=e.cc;for(De.state=e,De.stream=i,De.marked=null,De.cc=o,De.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){if((o.length?o.pop():Oe?C:k)(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return De.marked?De.marked:"variable"==r&&d(e,n)?"variable-2":t}}}function p(){for(var e=arguments.length-1;e>=0;e--)De.cc.push(arguments[e])}function m(){return p.apply(null,arguments),!0}function g(e){function t(t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}var r=De.state;if(De.marked="def",r.context){if(t(r.localVars))return;r.localVars={name:e,next:r.localVars}}else{if(t(r.globalVars))return;n.globalVars&&(r.globalVars={name:e,next:r.globalVars})}}function v(){De.state.context={prev:De.state.context,vars:De.state.localVars},De.state.localVars=We}function y(){De.state.localVars=De.state.context.vars,De.state.context=De.state.context.prev}function b(e,t){var r=function(){var r=De.state,n=r.indented;if("stat"==r.lexical.type)n=r.lexical.indented;else for(var i=r.lexical;i&&")"==i.type&&i.align;i=i.prev)n=i.indented;r.lexical=new f(n,De.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function x(){var e=De.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function w(e){function t(r){return r==e?m():";"==e?p():m(t)}return t}function k(e,t){return"var"==e?m(b("vardef",t.length),J,w(";"),x):"keyword a"==e?m(b("form"),_,k,x):"keyword b"==e?m(b("form"),k,x):"{"==e?m(b("}"),U,x):";"==e?m():"if"==e?("else"==De.state.lexical.info&&De.state.cc[De.state.cc.length-1]==x&&De.state.cc.pop()(),m(b("form"),_,k,x,ne)):"function"==e?m(ce):"for"==e?m(b("form"),ie,k,x):"variable"==e?m(b("stat"),D):"switch"==e?m(b("form"),_,b("}","switch"),w("{"),U,x,x):"case"==e?m(C,w(":")):"default"==e?m(w(":")):"catch"==e?m(b("form"),v,w("("),ue,w(")"),k,x,y):"class"==e?m(b("form"),de,x):"export"==e?m(b("stat"),ge,x):"import"==e?m(b("stat"),ye,x):"module"==e?m(b("form"),Z,b("}"),w("{"),U,x,x):"type"==e?m($,w("operator"),$,w(";")):"async"==e?m(k):p(b("stat"),C,w(";"),x)}function C(e){return M(e,!1)}function S(e){return M(e,!0)}function _(e){return"("!=e?p():m(b(")"),C,w(")"),x)}function M(e,t){if(De.state.fatArrowAt==De.stream.start){var r=t?P:N;if("("==e)return m(v,b(")"),j(Z,")"),x,w("=>"),r,y);if("variable"==e)return p(v,Z,w("=>"),r,y)}var n=t?O:A;return ze.hasOwnProperty(e)?m(n):"function"==e?m(ce,n):"class"==e?m(b("form"),fe,x):"keyword c"==e||"async"==e?m(t?T:L):"("==e?m(b(")"),L,w(")"),x,n):"operator"==e||"spread"==e?m(t?S:C):"["==e?m(b("]"),Ce,x,n):"{"==e?K(q,"}",null,n):"quasi"==e?p(E,n):"new"==e?m(R(t)):m()}function L(e){return e.match(/[;\}\)\],]/)?p():p(C)}function T(e){return e.match(/[;\}\)\],]/)?p():p(S)}function A(e,t){return","==e?m(C):O(e,t,!1)}function O(e,t,r){var n=0==r?A:O,i=0==r?C:S;return"=>"==e?m(v,r?P:N,y):"operator"==e?/\+\+|--/.test(t)?m(n):"?"==t?m(C,w(":"),i):m(i):"quasi"==e?p(E,n):";"!=e?"("==e?K(S,")","call",n):"."==e?m(W,n):"["==e?m(b("]"),L,w("]"),x,n):void 0:void 0}function E(e,t){return"quasi"!=e?p():"${"!=t.slice(t.length-2)?m(E):m(C,I)}function I(e){if("}"==e)return De.marked="string-2",De.state.tokenize=c,m(E)}function N(e){return u(De.stream,De.state),p("{"==e?k:C)}function P(e){return u(De.stream,De.state),p("{"==e?k:S)}function R(e){return function(t){return"."==t?m(e?z:B):p(e?S:C)}}function B(e,t){if("target"==t)return De.marked="keyword",m(A)}function z(e,t){if("target"==t)return De.marked="keyword",m(O)}function D(e){return":"==e?m(x,k):p(A,w(";"),x)}function W(e){if("variable"==e)return De.marked="property",m()}function q(e,t){return"async"==e?(De.marked="property",m(q)):"variable"==e||"keyword"==De.style?(De.marked="property",m("get"==t||"set"==t?F:H)):"number"==e||"string"==e?(De.marked=Ae?"property":De.style+" property",m(H)):"jsonld-keyword"==e?m(H):"modifier"==e?m(q):"["==e?m(C,w("]"),H):"spread"==e?m(C):":"==e?p(H):void 0}function F(e){return"variable"!=e?p(H):(De.marked="property",m(ce))}function H(e){return":"==e?m(S):"("==e?p(ce):void 0}function j(e,t,r){function n(i,o){if(r?r.indexOf(i)>-1:","==i){var a=De.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),m(function(r,n){return r==t||n==t?p():p(e)},n)}return i==t||o==t?m():m(w(t))}return function(r,i){return r==t||i==t?m():p(e,n)}}function K(e,t,r){for(var n=3;n<arguments.length;n++)De.cc.push(arguments[n]);return m(b(t,r),j(e,t),x)}function U(e){return"}"==e?m():p(k,U)}function V(e,t){if(Ee){if(":"==e)return m($);if("?"==t)return m(V)}}function $(e){return"variable"==e?(De.marked="variable-3",m(Q)):"string"==e||"number"==e||"atom"==e?m(Q):"{"==e?m(b("}"),j(X,"}",",;"),x):"("==e?m(j(Y,")"),G):void 0}function G(e){if("=>"==e)return m($)}function X(e,t){return"variable"==e||"keyword"==De.style?(De.marked="property",m(X)):"?"==t?m(X):":"==e?m($):void 0}function Y(e){return"variable"==e?m(Y):":"==e?m($):void 0}function Q(e,t){return"<"==t?m(b(">"),j($,">"),x,Q):"|"==t||"."==e?m($):"["==e?m(w("]"),Q):void 0}function J(){return p(Z,V,te,re)}function Z(e,t){return"modifier"==e?m(Z):"variable"==e?(g(t),m()):"spread"==e?m(Z):"["==e?K(Z,"]"):"{"==e?K(ee,"}"):void 0}function ee(e,t){return"variable"!=e||De.stream.match(/^\s*:/,!1)?("variable"==e&&(De.marked="property"),"spread"==e?m(Z):"}"==e?p():m(w(":"),Z,te)):(g(t),m(te))}function te(e,t){if("="==t)return m(S)}function re(e){if(","==e)return m(J)}function ne(e,t){if("keyword b"==e&&"else"==t)return m(b("form","else"),k,x)}function ie(e){if("("==e)return m(b(")"),oe,w(")"),x)}function oe(e){return"var"==e?m(J,w(";"),le):";"==e?m(le):"variable"==e?m(ae):p(C,w(";"),le)}function ae(e,t){return"in"==t||"of"==t?(De.marked="keyword",m(C)):m(A,le)}function le(e,t){return";"==e?m(se):"in"==t||"of"==t?(De.marked="keyword",m(C)):p(C,w(";"),se)}function se(e){")"!=e&&m(C)}function ce(e,t){return"*"==t?(De.marked="keyword",m(ce)):"variable"==e?(g(t),m(ce)):"("==e?m(v,b(")"),j(ue,")"),x,V,k,y):void 0}function ue(e){return"spread"==e?m(ue):p(Z,V,te)}function fe(e,t){return"variable"==e?de(e,t):he(e,t)}function de(e,t){if("variable"==e)return g(t),m(he)}function he(e,t){return"<"==t?m(b(">"),j($,">"),x,he):"extends"==t||"implements"==t||Ee&&","==e?m(Ee?$:C,he):"{"==e?m(b("}"),pe,x):void 0}function pe(e,t){return"variable"==e||"keyword"==De.style?("async"==t||"static"==t||"get"==t||"set"==t||Ee&&("public"==t||"private"==t||"protected"==t||"readonly"==t||"abstract"==t))&&De.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(De.marked="keyword",m(pe)):(De.marked="property",m(Ee?me:ce,pe)):"["==e?m(C,w("]"),Ee?me:ce,pe):"*"==t?(De.marked="keyword",m(pe)):";"==e?m(pe):"}"==e?m():void 0}function me(e,t){return"?"==t?m(me):":"==e?m($,te):"="==t?m(S):p(ce)}function ge(e,t){return"*"==t?(De.marked="keyword",m(ke,w(";"))):"default"==t?(De.marked="keyword",m(C,w(";"))):"{"==e?m(j(ve,"}"),ke,w(";")):p(k)}function ve(e,t){return"as"==t?(De.marked="keyword",m(w("variable"))):"variable"==e?p(S,ve):void 0}function ye(e){return"string"==e?m():p(be,xe,ke)}function be(e,t){return"{"==e?K(be,"}"):("variable"==e&&g(t),"*"==t&&(De.marked="keyword"),m(we))}function xe(e){if(","==e)return m(be,xe)}function we(e,t){if("as"==t)return De.marked="keyword",m(be)}function ke(e,t){if("from"==t)return De.marked="keyword",m(C)}function Ce(e){return"]"==e?m():p(j(S,"]"))}function Se(e,t){return"operator"==e.lastType||","==e.lastType||Pe.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}var _e,Me,Le=r.indentUnit,Te=n.statementIndent,Ae=n.jsonld,Oe=n.json||Ae,Ee=n.typescript,Ie=n.wordCharacters||/[\w$\xa1-\uffff]/,Ne=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},a={if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:n,break:n,continue:n,new:e("new"),delete:n,throw:n,debugger:n,var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:i,typeof:i,instanceof:i,true:o,false:o,null:o,undefined:o,NaN:o,Infinity:o,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n,async:e("async")};if(Ee){var l={type:"variable",style:"variable-3"},s={interface:e("class"),implements:n,namespace:n,module:e("module"),enum:e("module"),type:e("type"),public:e("modifier"),private:e("modifier"),protected:e("modifier"),abstract:e("modifier"),as:i,string:l,number:l,boolean:l,any:l};for(var c in s)a[c]=s[c]}return a}(),Pe=/[+\-*&%=<>!?|~^]/,Re=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Be="([{}])",ze={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},De={state:null,column:null,marked:null,cc:null},We={name:"this",next:{name:"arguments"}};return x.lex=!0,{startState:function(e){var t={tokenize:a,lastType:"sof",cc:[],lexical:new f((e||0)-Le,0,"block",!1),localVars:n.localVars,context:n.localVars&&{vars:n.localVars},indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),u(e,t)),t.tokenize!=s&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==_e?r:(t.lastType="operator"!=_e||"++"!=Me&&"--"!=Me?_e:"incdec",h(t,r,_e,Me,e))},indent:function(t,r){if(t.tokenize==s)return e.Pass;if(t.tokenize!=a)return 0;var i,o=r&&r.charAt(0),l=t.lexical;if(!/^\s*else\b/.test(r))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==x)l=l.prev;else if(u!=ne)break}for(;("stat"==l.type||"form"==l.type)&&("}"==o||(i=t.cc[t.cc.length-1])&&(i==A||i==O)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;Te&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var f=l.type,d=o==f;return"vardef"==f?l.indented+("operator"==t.lastType||","==t.lastType?l.info+1:0):"form"==f&&"{"==o?l.indented:"form"==f?l.indented+Le:"stat"==f?l.indented+(Se(t,r)?Te||Le:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:Le):l.indented+(/^(?:case|default)\b/.test(r)?Le:2*Le)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Oe?null:"/*",blockCommentEnd:Oe?null:"*/",lineComment:Oe?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Oe?"json":"javascript",jsonldMode:Ae,jsonMode:Oe,expressionAllowed:t,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=C&&t!=S||e.cc.pop()}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;return t}function r(e,t){for(var r,n=!1;null!=(r=e.next());){if(n&&"/"==r){t.tokenize=null;break}n="*"==r}return["comment","comment"]}e.defineMode("css",function(t,r){function n(e,t){return p=t,e}function i(e,t){var r=e.next();if(v[r]){var i=v[r](e,t);if(i!==!1)return i}return"@"==r?(e.eatWhile(/[\w\\\-]/),n("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?n(null,"compare"):'"'==r||"'"==r?(t.tokenize=o(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),n("atom","hash")):"!"==r?(e.match(/^\s*\w*/),n("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),n("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?n(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?n("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?n(null,r):"u"==r&&e.match(/rl(-prefix)?\(/)||"d"==r&&e.match("omain(")||"r"==r&&e.match("egexp(")?(e.backUp(1),t.tokenize=a,n("property","word")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),n("property","word")):n(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),n("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?n("variable-2","variable-definition"):n("variable-2","variable")):e.match(/^\w+-/)?n("meta","meta"):void 0}function o(e){return function(t,r){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){")"==e&&t.backUp(1);break}o=!o&&"\\"==i}return(i==e||!o&&")"!=e)&&(r.tokenize=null),n("string","string")}}function a(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=o(")"),n(null,"(")}function l(e,t,r){this.type=e,this.indent=t,this.prev=r}function s(e,t,r,n){return e.context=new l(r,t.indentation()+(n===!1?0:g),e.context),r}function c(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function u(e,t,r){return E[r.context.type](e,t,r)}function f(e,t,r,n){for(var i=n||1;i>0;i--)r.context=r.context.prev;return u(e,t,r)}function d(e){var t=e.current().toLowerCase();m=L.hasOwnProperty(t)?"atom":M.hasOwnProperty(t)?"keyword":"variable"}var h=r.inline;r.propertyKeywords||(r=e.resolveMode("text/css"));var p,m,g=t.indentUnit,v=r.tokenHooks,y=r.documentTypes||{},b=r.mediaTypes||{},x=r.mediaFeatures||{},w=r.mediaValueKeywords||{},k=r.propertyKeywords||{},C=r.nonStandardPropertyKeywords||{},S=r.fontProperties||{},_=r.counterDescriptors||{},M=r.colorKeywords||{},L=r.valueKeywords||{},T=r.allowNested,A=r.lineComment,O=r.supportsAtComponent===!0,E={};return E.top=function(e,t,r){if("{"==e)return s(r,t,"block");if("}"==e&&r.context.prev)return c(r);if(O&&/@component/.test(e))return s(r,t,"atComponentBlock");if(/^@(-moz-)?document$/.test(e))return s(r,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(e))return s(r,t,"atBlock");if(/^@(font-face|counter-style)/.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return s(r,t,"at");if("hash"==e)m="builtin";else if("word"==e)m="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return s(r,t,"interpolation");if(":"==e)return"pseudo";if(T&&"("==e)return s(r,t,"parens")}return r.context.type},E.block=function(e,t,r){if("word"==e){var n=t.current().toLowerCase();return k.hasOwnProperty(n)?(m="property","maybeprop"):C.hasOwnProperty(n)?(m="string-2","maybeprop"):T?(m=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(m+=" error","maybeprop")}return"meta"==e?"block":T||"hash"!=e&&"qualifier"!=e?E.top(e,t,r):(m="error","block")},E.maybeprop=function(e,t,r){return":"==e?s(r,t,"prop"):u(e,t,r)},E.prop=function(e,t,r){if(";"==e)return c(r);if("{"==e&&T)return s(r,t,"propBlock");if("}"==e||"{"==e)return f(e,t,r);if("("==e)return s(r,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)d(t);else if("interpolation"==e)return s(r,t,"interpolation")}else m+=" error";return"prop"},E.propBlock=function(e,t,r){return"}"==e?c(r):"word"==e?(m="property","maybeprop"):r.context.type},E.parens=function(e,t,r){return"{"==e||"}"==e?f(e,t,r):")"==e?c(r):"("==e?s(r,t,"parens"):"interpolation"==e?s(r,t,"interpolation"):("word"==e&&d(t),"parens")},E.pseudo=function(e,t,r){return"meta"==e?"pseudo":"word"==e?(m="variable-3",r.context.type):u(e,t,r)},E.documentTypes=function(e,t,r){return"word"==e&&y.hasOwnProperty(t.current())?(m="tag",r.context.type):E.atBlock(e,t,r)},E.atBlock=function(e,t,r){if("("==e)return s(r,t,"atBlock_parens");if("}"==e||";"==e)return f(e,t,r);if("{"==e)return c(r)&&s(r,t,T?"block":"top");if("interpolation"==e)return s(r,t,"interpolation");if("word"==e){var n=t.current().toLowerCase();m="only"==n||"not"==n||"and"==n||"or"==n?"keyword":b.hasOwnProperty(n)?"attribute":x.hasOwnProperty(n)?"property":w.hasOwnProperty(n)?"keyword":k.hasOwnProperty(n)?"property":C.hasOwnProperty(n)?"string-2":L.hasOwnProperty(n)?"atom":M.hasOwnProperty(n)?"keyword":"error"}return r.context.type},E.atComponentBlock=function(e,t,r){return"}"==e?f(e,t,r):"{"==e?c(r)&&s(r,t,T?"block":"top",!1):("word"==e&&(m="error"),r.context.type)},E.atBlock_parens=function(e,t,r){return")"==e?c(r):"{"==e||"}"==e?f(e,t,r,2):E.atBlock(e,t,r)},E.restricted_atBlock_before=function(e,t,r){return"{"==e?s(r,t,"restricted_atBlock"):"word"==e&&"@counter-style"==r.stateArg?(m="variable","restricted_atBlock_before"):u(e,t,r)},E.restricted_atBlock=function(e,t,r){return"}"==e?(r.stateArg=null,c(r)):"word"==e?(m="@font-face"==r.stateArg&&!S.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==r.stateArg&&!_.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},E.keyframes=function(e,t,r){return"word"==e?(m="variable","keyframes"):"{"==e?s(r,t,"top"):u(e,t,r)},E.at=function(e,t,r){return";"==e?c(r):"{"==e||"}"==e?f(e,t,r):("word"==e?m="tag":"hash"==e&&(m="builtin"),"at")},E.interpolation=function(e,t,r){return"}"==e?c(r):"{"==e||";"==e?f(e,t,r):("word"==e?m="variable":"variable"!=e&&"("!=e&&")"!=e&&(m="error"),"interpolation")},{startState:function(e){return{tokenize:null,state:h?"block":"top",stateArg:null,context:new l(h?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||i)(e,t);return r&&"object"==typeof r&&(p=r[1],r=r[0]),m=r,t.state=E[t.state](p,e,t),m},indent:function(e,t){var r=e.context,n=t&&t.charAt(0),i=r.indent;return"prop"!=r.type||"}"!=n&&")"!=n||(r=r.prev),r.prev&&("}"!=n||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type?(")"!=n||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=n||"at"!=r.type&&"atBlock"!=r.type)||(i=Math.max(0,r.indent-g),r=r.prev):(r=r.prev,i=r.indent)),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:A,fold:"brace"}})
7
- ;var n=["domain","regexp","url","url-prefix"],i=t(n),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=t(o),l=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],s=t(l),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=t(c),f=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=t(f),h=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],p=t(h),m=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],g=t(m),v=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],y=t(v),b=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],x=t(b),w=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],k=t(w),C=n.concat(o).concat(l).concat(c).concat(f).concat(h).concat(b).concat(w);e.registerHelper("hintWords","css",C),e.defineMIME("text/css",{documentTypes:i,mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:x,valueKeywords:k,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/)&&[null,"{"]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:i,mediaTypes:a,mediaFeatures:s,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:x,valueKeywords:k,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css",helperType:"gss"})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r){var n=e.current(),i=n.search(t);return i>-1?e.backUp(n.length-i):n.match(/<\/?$/)&&(e.backUp(n.length),e.match(t,!1)||e.match(n)),r}function r(e){var t=s[e];return t?t:s[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")}function n(e,t){var n=e.match(r(t));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function i(e,t){return new RegExp((t?"^":"")+"</s*"+e+"s*>","i")}function o(e,t){for(var r in e)for(var n=t[r]||(t[r]=[]),i=e[r],o=i.length-1;o>=0;o--)n.unshift(i[o])}function a(e,t){for(var r=0;r<e.length;r++){var i=e[r];if(!i[0]||i[1].test(n(t,i[0])))return i[2]}}var l={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]},s={};e.defineMode("htmlmixed",function(r,n){function s(n,o){var l,f=c.token(n,o.htmlState),d=/\btag\b/.test(f);if(d&&!/[<>\s\/]/.test(n.current())&&(l=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&u.hasOwnProperty(l))o.inTag=l+" ";else if(o.inTag&&d&&/>$/.test(n.current())){var h=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==n.current()&&a(u[h[1]],h[2]),m=e.getMode(r,p),g=i(h[1],!0),v=i(h[1],!1);o.token=function(e,r){return e.match(g,!1)?(r.token=s,r.localState=r.localMode=null,null):t(e,v,r.localMode.token(e,r.localState))},o.localMode=m,o.localState=e.startState(m,c.indent(o.htmlState,""))}else o.inTag&&(o.inTag+=n.current(),n.eol()&&(o.inTag+=" "));return f}var c=e.getMode(r,{name:"xml",htmlMode:!0,multilineTagIndentFactor:n.multilineTagIndentFactor,multilineTagIndentPastTag:n.multilineTagIndentPastTag}),u={},f=n&&n.tags,d=n&&n.scriptTypes;if(o(l,u),f&&o(f,u),d)for(var h=d.length-1;h>=0;h--)u.script.unshift(["type",d[h].matches,d[h].mode]);return{startState:function(){return{token:s,inTag:null,localMode:null,localState:null,htmlState:e.startState(c)}},copyState:function(t){var r;return t.localState&&(r=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:r,htmlState:e.copyState(c,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,r){return!t.localMode||/^\s*<\//.test(r)?c.indent(t.htmlState,r):t.localMode.indent?t.localMode.indent(t.localState,r):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||c}}}},"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.info=n,this.align=i,this.prev=o}function r(e,r,n,i){var o=e.indented;return e.context&&"statement"==e.context.type&&"statement"!=n&&(o=e.context.indented),e.context=new t(o,r,n,i,null,e.context)}function n(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function i(e,t,r){return"variable"==t.prevToken||"variable-3"==t.prevToken||(!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,r))||(!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0))}function o(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function a(e){for(var t={},r=e.split(" "),n=0;n<r.length;++n)t[r[n]]=!0;return t}function l(e,t){return"function"==typeof e?e(t):e.propertyIsEnumerable(t)}function s(e,t){if(!t.startOfLine)return!1;for(var r,n=null;r=e.peek();){if("\\"==r&&e.match(/^.$/)){n=s;break}if("/"==r&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=n,"meta"}function c(e,t){return"variable-3"==t.prevToken&&"variable-3"}function u(e){return e.eatWhile(/[\w\.']/),"number"}function f(e,t){if(e.backUp(1),e.match(/(R|u8R|uR|UR|LR)/)){var r=e.match(/"([^\s\\()]{0,16})\(/);return!!r&&(t.cpp11RawStringDelim=r[1],t.tokenize=p,p(e,t))}return e.match(/(u8|u|U|L)/)?!!e.match(/["']/,!1)&&"string":(e.next(),!1)}function d(e){var t=/(\w+)::(\w+)$/.exec(e);return t&&t[1]==t[2]}function h(e,t){for(var r;null!=(r=e.next());)if('"'==r&&!e.eat('"')){t.tokenize=null;break}return"string"}function p(e,t){var r=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+r+'"'))?t.tokenize=null:e.skipToEnd(),"string"}function m(t,r){function n(e){if(e)for(var t in e)e.hasOwnProperty(t)&&i.push(t)}"string"==typeof t&&(t=[t]);var i=[];n(r.keywords),n(r.types),n(r.builtin),n(r.atoms),i.length&&(r.helperType=t[0],e.registerHelper("hintWords",t[0],i));for(var o=0;o<t.length;++o)e.defineMIME(t[o],r)}function g(e,t){for(var r=!1;!e.eol();){if(!r&&e.match('"""')){t.tokenize=null;break}r="\\"==e.next()&&!r}return"string"}function v(e){return function(t,r){for(var n,i=!1,o=!1;!t.eol();){if(!e&&!i&&t.match('"')){o=!0;break}if(e&&t.match('"""')){o=!0;break}n=t.next(),!i&&"$"==n&&t.match("{")&&t.skipTo("}"),i=!i&&"\\"==n&&!e}return!o&&e||(r.tokenize=null),"string"}}function y(e){return function(t,r){for(var n,i=!1,o=!1;!t.eol();){if(!i&&t.match('"')&&("single"==e||t.match('""'))){o=!0;break}if(!i&&t.match("``")){w=y(e),o=!0;break}n=t.next(),i="single"==e&&!i&&"\\"==n}return o&&(r.tokenize=null),"string"}}e.defineMode("clike",function(a,s){function c(e,t){var r=e.next();if(S[r]){var n=S[r](e,t);if(n!==!1)return n}if('"'==r||"'"==r)return t.tokenize=u(r),t.tokenize(e,t);if(A.test(r))return h=r,null;if(O.test(r)){if(e.backUp(1),e.match(E))return"number";e.next()}if("/"==r){if(e.eat("*"))return t.tokenize=f,f(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(I.test(r)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(I););return"operator"}if(e.eatWhile(/[\w\$_\xa1-\uffff]/),T)for(;e.match(T);)e.eatWhile(/[\w\$_\xa1-\uffff]/);var i=e.current();return l(y,i)?(l(w,i)&&(h="newstatement"),l(k,i)&&(p=!0),"keyword"):l(b,i)?"variable-3":l(x,i)?(l(w,i)&&(h="newstatement"),"builtin"):l(C,i)?"atom":"variable"}function u(e){return function(t,r){for(var n,i=!1,o=!1;null!=(n=t.next());){if(n==e&&!i){o=!0;break}i=!i&&"\\"==n}return(o||!i&&!_)&&(r.tokenize=null),"string"}}function f(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=null;break}n="*"==r}return"comment"}function d(e,t){s.typeFirstDefinitions&&e.eol()&&o(t.context)&&(t.typeAtEndOfLine=i(e,t,e.pos))}var h,p,m=a.indentUnit,g=s.statementIndentUnit||m,v=s.dontAlignCalls,y=s.keywords||{},b=s.types||{},x=s.builtin||{},w=s.blockKeywords||{},k=s.defKeywords||{},C=s.atoms||{},S=s.hooks||{},_=s.multiLineStrings,M=s.indentStatements!==!1,L=s.indentSwitch!==!1,T=s.namespaceSeparator,A=s.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,O=s.numberStart||/[\d\.]/,E=s.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,I=s.isOperatorChar||/[+\-*&%=<>!?|\/]/;return{startState:function(e){return{tokenize:null,context:new t((e||0)-m,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(e,t){var a=t.context;if(e.sol()&&(null==a.align&&(a.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return d(e,t),null;h=p=null;var l=(t.tokenize||c)(e,t);if("comment"==l||"meta"==l)return l;if(null==a.align&&(a.align=!0),";"==h||":"==h||","==h&&e.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==t.context.type;)n(t);else if("{"==h)r(t,e.column(),"}");else if("["==h)r(t,e.column(),"]");else if("("==h)r(t,e.column(),")");else if("}"==h){for(;"statement"==a.type;)a=n(t);for("}"==a.type&&(a=n(t));"statement"==a.type;)a=n(t)}else h==a.type?n(t):M&&(("}"==a.type||"top"==a.type)&&";"!=h||"statement"==a.type&&"newstatement"==h)&&r(t,e.column(),"statement",e.current());if("variable"==l&&("def"==t.prevToken||s.typeFirstDefinitions&&i(e,t,e.start)&&o(t.context)&&e.match(/^\s*\(/,!1))&&(l="def"),S.token){var u=S.token(e,t,l);void 0!==u&&(l=u)}return"def"==l&&s.styleDefs===!1&&(l="variable"),t.startOfLine=!1,t.prevToken=p?"def":l||h,d(e,t),l},indent:function(t,r){if(t.tokenize!=c&&null!=t.tokenize||t.typeAtEndOfLine)return e.Pass;var n=t.context,i=r&&r.charAt(0);if("statement"==n.type&&"}"==i&&(n=n.prev),s.dontIndentStatements)for(;"statement"==n.type&&s.dontIndentStatements.test(n.info);)n=n.prev;if(S.indent){var o=S.indent(t,n,r);if("number"==typeof o)return o}var a=i==n.type,l=n.prev&&"switch"==n.prev.info;if(s.allmanIndentation&&/[{(]/.test(i)){for(;"top"!=n.type&&"}"!=n.type;)n=n.prev;return n.indented}return"statement"==n.type?n.indented+("{"==i?0:g):!n.align||v&&")"==n.type?")"!=n.type||a?n.indented+(a?0:m)+(a||!l||/^(?:case|default)\b/.test(r)?0:m):n.indented+g:n.column+(a?0:1)},electricInput:L?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}});var b="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile",x="int long char short double float unsigned signed void size_t ptrdiff_t";m(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:a(b),types:a(x+" bool _Complex _Bool float_t double_t intptr_t intmax_t int8_t int16_t int32_t int64_t uintptr_t uintmax_t uint8_t uint16_t uint32_t uint64_t"),blockKeywords:a("case do else for if switch while struct"),defKeywords:a("struct"),typeFirstDefinitions:!0,atoms:a("null true false"),hooks:{"#":s,"*":c},modeProps:{fold:["brace","include"]}}),m(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:a(b+" asm dynamic_cast namespace reinterpret_cast try explicit new static_cast typeid catch operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected alignas alignof constexpr decltype nullptr noexcept thread_local final static_assert override"),types:a(x+" bool wchar_t"),blockKeywords:a("catch class do else finally for if struct switch try while"),defKeywords:a("class namespace struct enum union"),typeFirstDefinitions:!0,atoms:a("true false null"),dontIndentStatements:/^template$/,hooks:{"#":s,"*":c,u:f,U:f,L:f,R:f,0:u,1:u,2:u,3:u,4:u,5:u,6:u,7:u,8:u,9:u,token:function(e,t,r){if("variable"==r&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&d(e.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),m("text/x-java",{name:"clike",keywords:a("abstract assert break case catch class const continue default do else enum extends final finally float for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while @interface"),types:a("byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:a("catch class do else finally for if switch try while"),defKeywords:a("class interface package enum @interface"),typeFirstDefinitions:!0,atoms:a("true false null"),number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,hooks:{"@":function(e){return!e.match("interface",!1)&&(e.eatWhile(/[\w\$_]/),"meta")}},modeProps:{fold:["brace","import"]}}),m("text/x-csharp",{name:"clike",keywords:a("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:a("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:a("catch class do else finally for foreach if struct switch try while"),defKeywords:a("class interface namespace struct var"),typeFirstDefinitions:!0,atoms:a("true false null"),hooks:{"@":function(e,t){return e.eat('"')?(t.tokenize=h,h(e,t)):(e.eatWhile(/[\w\$_]/),"meta")}}}),m("text/x-scala",{name:"clike",keywords:a("abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble"),types:a("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:a("catch class do else finally for forSome if match switch try while"),defKeywords:a("class def object package trait type val var"),atoms:a("true false null"),indentStatements:!1,indentSwitch:!1,isOperatorChar:/[+\-*&%=<>!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=g,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},"=":function(e,r){var n=r.context
8
- ;return!("}"!=n.type||!n.align||!e.eat(">"))&&(r.context=new t(n.indented,n.column,n.type,n.info,null,n.prev),"operator")}},modeProps:{closeBrackets:{triples:'"'}}}),m("text/x-kotlin",{name:"clike",keywords:a("package as typealias class interface this super val var fun for is in This throw return break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend"),types:a("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:a("catch class do else finally for if where try while enum"),defKeywords:a("class val var object package interface fun"),atoms:a("true false null this"),hooks:{'"':function(e,t){return t.tokenize=v(e.match('""')),t.tokenize(e,t)}},modeProps:{closeBrackets:{triples:'"'}}}),m(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:a("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:a("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:a("for while do if else struct"),builtin:a("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:a("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":s},modeProps:{fold:["brace","include"]}}),m("text/x-nesc",{name:"clike",keywords:a(b+"as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:a(x),blockKeywords:a("case do else for if switch while struct"),atoms:a("null true false"),hooks:{"#":s},modeProps:{fold:["brace","include"]}}),m("text/x-objectivec",{name:"clike",keywords:a(b+"inline restrict _Bool _Complex _Imaginary BOOL Class bycopy byref id IMP in inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),types:a(x),atoms:a("YES NO NULL NILL ON OFF true false"),hooks:{"@":function(e){return e.eatWhile(/[\w\$]/),"keyword"},"#":s,indent:function(e,t,r){if("statement"==t.type&&/^@\w/.test(r))return t.indented}},modeProps:{fold:"brace"}}),m("text/x-squirrel",{name:"clike",keywords:a("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:a(x),blockKeywords:a("case catch class else for foreach if switch try while"),defKeywords:a("function local class"),typeFirstDefinitions:!0,atoms:a("true false null"),hooks:{"#":s},modeProps:{fold:["brace","include"]}});var w=null;m("text/x-ceylon",{name:"clike",keywords:a("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:a("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:a("class dynamic function interface module object package value"),builtin:a("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:a("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=y(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!(!w||!e.match("`"))&&(t.tokenize=w,w=null,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(e,t,r){if(("variable"==r||"variable-3"==r)&&"."==t.prevToken)return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../clike/clike")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../clike/clike"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=e.split(" "),n=0;n<r.length;++n)t[r[n]]=!0;return t}function r(e,t,i){return 0==e.length?n(t):function(o,a){for(var l=e[0],s=0;s<l.length;s++)if(o.match(l[s][0]))return a.tokenize=r(e.slice(1),t),l[s][1];return a.tokenize=n(t,i),"string"}}function n(e,t){return function(r,n){return i(r,n,e,t)}}function i(e,t,n,i){if(i!==!1&&e.match("${",!1)||e.match("{$",!1))return t.tokenize=null,"string";if(i!==!1&&e.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/))return e.match("[",!1)&&(t.tokenize=r([[["[",null]],[[/\d[\w\.]*/,"number"],[/\$[a-zA-Z_][a-zA-Z0-9_]*/,"variable-2"],[/[\w\$]+/,"variable"]],[["]",null]]],n,i)),e.match(/\-\>\w/,!1)&&(t.tokenize=r([[["->",null]],[[/[\w]+/,"variable"]]],n,i)),"variable-2";for(var o=!1;!e.eol()&&(o||i===!1||!e.match("{$",!1)&&!e.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!o&&e.match(n)){t.tokenize=null,t.tokStack.pop(),t.tokStack.pop();break}o="\\"==e.next()&&!o}return"string"}var o="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally",a="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",l="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";e.registerHelper("hintWords","php",[o,a,l].join(" ").split(" ")),e.registerHelper("wordChars","php",/[\w$]/);var s={name:"clike",helperType:"php",keywords:t(o),blockKeywords:t("catch do else elseif for foreach if switch try while finally"),defKeywords:t("class function interface namespace trait"),atoms:t(a),builtin:t(l),multiLineStrings:!0,hooks:{$:function(e){return e.eatWhile(/[\w\$_]/),"variable-2"},"<":function(e,t){var r;if(r=e.match(/<<\s*/)){var i=e.eat(/['"]/);e.eatWhile(/[\w\.]/);var o=e.current().slice(r[0].length+(i?2:1));if(i&&e.eat(i),o)return(t.tokStack||(t.tokStack=[])).push(o,0),t.tokenize=n(o,"'"!=i),"string"}return!1},"#":function(e){for(;!e.eol()&&!e.match("?>",!1);)e.next();return"comment"},"/":function(e){if(e.eat("/")){for(;!e.eol()&&!e.match("?>",!1);)e.next();return"comment"}return!1},'"':function(e,t){return(t.tokStack||(t.tokStack=[])).push('"',0),t.tokenize=n('"'),"string"},"{":function(e,t){return t.tokStack&&t.tokStack.length&&t.tokStack[t.tokStack.length-1]++,!1},"}":function(e,t){return t.tokStack&&t.tokStack.length>0&&!--t.tokStack[t.tokStack.length-1]&&(t.tokenize=n(t.tokStack[t.tokStack.length-2])),!1}}};e.defineMode("php",function(t,r){function n(t,r){var n=r.curMode==o;if(t.sol()&&r.pending&&'"'!=r.pending&&"'"!=r.pending&&(r.pending=null),n)return n&&null==r.php.tokenize&&t.match("?>")?(r.curMode=i,r.curState=r.html,r.php.context.prev||(r.php=null),"meta"):o.token(t,r.curState);if(t.match(/^<\?\w*/))return r.curMode=o,r.php||(r.php=e.startState(o,i.indent(r.html,""))),r.curState=r.php,"meta";if('"'==r.pending||"'"==r.pending){for(;!t.eol()&&t.next()!=r.pending;);var a="string"}else if(r.pending&&t.pos<r.pending.end){t.pos=r.pending.end;var a=r.pending.style}else var a=i.token(t,r.curState);r.pending&&(r.pending=null);var l,s=t.current(),c=s.search(/<\?/);return c!=-1&&("string"==a&&(l=s.match(/[\'\"]$/))&&!/\?>/.test(s)?r.pending=l[0]:r.pending={end:t.pos,style:a},t.backUp(s.length-c)),a}var i=e.getMode(t,"text/html"),o=e.getMode(t,s);return{startState:function(){var t=e.startState(i),n=r.startOpen?e.startState(o):null;return{html:t,php:n,curMode:r.startOpen?o:i,curState:r.startOpen?n:t,pending:null}},copyState:function(t){var r,n=t.html,a=e.copyState(i,n),l=t.php,s=l&&e.copyState(o,l);return r=t.curMode==i?a:s,{html:a,php:s,curMode:t.curMode,curState:r,pending:t.pending}},token:n,indent:function(e,t){return e.curMode!=o&&/^\s*<\//.test(t)||e.curMode==o&&/^\?>/.test(t)?i.indent(e.html,t):e.curMode.indent(e.curState,t)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(e){return{state:e.curState,mode:e.curMode}}}},"htmlmixed","clike"),e.defineMIME("application/x-httpd-php","php"),e.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),e.defineMIME("text/x-php",s)}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var t={allowUnquoted:!0,allowMissing:!0,caseFold:!0};e.defineMode("shortcode",function(e,r){function n(e,t){return"["===e.next()?"["===e.peek()?(t.tokenize=i,"comment"):/\s/.test(e.peek())?null:(C=e.eat("/")?"closeTag":"openTag",t.tokenize=o,"tag bracket"):(e.eatWhile(/[^\[]/),null)}function i(e,t){var r=function(e,t){return e.next(),t.tokenize=n,"comment"};return r.isInEscape=!0,"]"===e.next()&&"]"===e.peek()&&(t.tokenize=r),e.eatWhile(/[^\]]/),null}function o(e,t){var r=e.next();if("]"===r||"/"===r&&e.eat("]"))return t.tokenize=n,C="endTag","tag bracket";if("="===r)return C="equals",null;if("["===r){t.tokenize=n,t.state=c,t.tagName=t.tagStart=null;var i=t.tokenize(e,t);return i?i+" tag error":"tag error"}return/[\'\"]/.test(r)?(t.tokenize=a(r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=\[\]\"\']*[^\s\u00a0=\[\]\"\'\/]/),"word")}function a(e){var t=function(t,r){var n=t.next();return n===e?(r.tokenize=o,"string"):/[\[\]]/.test(n)?"string error":(t.eatWhile(/[^\[\]\'\"]/),"string")};return t.isInAttribute=!0,t}function l(e,t,r){this.tagHistory=[t],e.context&&(this.tagHistory=this.tagHistory.concat(e.context.tagHistory)),this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r}function s(e){e.context&&(e.context=e.context.prev)}function c(e,t,r){return"openTag"===e?(r.tagStart=t.column(),u):"closeTag"===e?f:c}function u(e,t,r){if("word"===e){var n=t.current();return/[\[\]\/\'\"<>&]/.test(n)?S="error":(r.tagName=t.current(),S="tag"),p}return S="error",u}function f(e,t,r){if("word"===e){var n=t.current();if(r.context&&r.context.tagName===n||b.matchClosing===!1)return S="tag",d;if(r.context&&r.context.tagHistory.indexOf(n)>0){for(var i=r.context.tagHistory.indexOf(n),o=0;o<i;o++)s(r);return S="tag",d}return S="tag error",h}return S="error",h}function d(e,t,r){return"endTag"!==e?(S="error",d):(s(r),c)}function h(e,t,r){return S="error",d(e,t,r)}function p(e,t,r){if("word"===e)return S=/^[a-z0-9_\-]+$/i.test(t.current())?"attribute":"error",m;if("endTag"===e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,r.context=new l(r,n,i===r.indented),c}return S="error",p}function m(e,t,r){return"equals"===e?g:(b.allowMissing||(S="error"),p(e,t,r))}function g(e,t,r){return"string"===e?v:"word"===e&&b.allowUnquoted?(S="string",p):(S="error",p(e,t,r))}function v(e,t,r){return"string"===e?v:p(e,t,r)}var y=e.indentUnit,b={},x=t;for(var w in x)b[w]=x[w];for(var k in r)b[k]=r[k];var C,S;return n.isInText=!0,i.isInEscape=!0,{startState:function(e){var t={tokenize:n,state:c,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;C=null;var r=t.tokenize(e,t);return(r||C)&&"comment"!==r&&(S=null,t.state=t.state(C||r,e,t),S&&(r="error"===S?r+" error":S)),r},indent:function(e,t,r){var i=e.context;if(e.tokenize.isInAttribute)return e.tagStart===e.indented?e.stringStartCol+1:e.indented+y;if(e.tokenize!==o&&e.tokenize!==n)return r?r.match(/^(\s*)/)[0].length:0;if(e.tagName)return b.multilineTagIndentPastTag!==!1?e.tagStart+e.tagName.length+2:e.tagStart+y*(b.multilineTagIndentFactor||1);var a=t&&/^\[(\/)?([\w_:\.-]*)/.exec(t);if(a&&a[1])for(;i;){if(i.tagName===a[2]){i=i.prev;break}break}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+y:e.baseIndent||0},skipAttribute:function(e){e.state===g&&(e.state=p)}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("wordpresspost",function(t,r){function n(e,t){t.isInShortcode=!0;var r=l.token(e,t.shortcodeState),n=t.shortcodeState.tokenize.isInText,o=t.shortcodeState.tokenize.isInEscape;if(n)t.token=i;else if(o&&/\]/.test(e.current())){var a=e.current(),s=a.search(/\]/);e.backUp(a.length-s-1),"]"!==e.peek()&&(t.token=i)}return r}function i(e,t){t.isInShortcode=!1;var r=a.token(e,t.htmlmixedState),i=t.htmlmixedState.htmlState.tokenize.isInText;if(i&&/\[/.test(e.current())&&!t.htmlmixedState.localState&&null===r){var s=e.current(),c=s.search(/\[/);e.backUp(s.length-c),null==t.shortcodeState&&(t.shortcodeState=l.startState(a.indent(t.htmlmixedState,""))),t.token=n}else i&&/<!\-\-more|<!\-\-(noteaser|nextpage)\-\->?/.test(e.current())&&!t.htmlmixedState.localState&&"comment"===r&&(e.backUp(e.current().length),t.token=o);return r}function o(e,t){return e.match("<!--more")?"meta":e.match("-->")||e.match("<!--noteaser-->")||e.match("<!--nextpage-->")?(t.token=i,"meta"):(e.eatWhile(/[^\-\/]/),"string")}var a=e.getMode(t,{name:"htmlmixed",multilineTagIndentFactor:r.multilineTagIndentFactor,multilineTagIndentPastTag:r.multilineTagIndentPastTag}),l=e.getMode(t,{name:"shortcode",multilineTagIndentFactor:r.multilineTagIndentFactor,multilineTagIndentPastTag:r.multilineTagIndentPastTag});return{startState:function(){return{token:i,isInShortcode:!1,shortcodeState:null,htmlmixedState:a.startState()}},copyState:function(t){var r;return t.shortcodeState&&(r=e.copyState(l,t.shortcodeState)),{token:t.token,shortcodeState:r,htmlmixedState:e.copyState(a,t.htmlmixedState)}},token:function(e,t){return t.token(e,t)},indent:function(t,r){return t.isInShortcode?t.isInShortcode?l.indent(t.shortcodeState,r):e.Pass:a.indent(t.htmlmixedState,r)},innerMode:function(e){return e.isInShortcode?{state:e.shortcodeState,mode:l}:{state:e.htmlmixedState,mode:a}}}},"htmlmixed","shortcode")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t=0;t<e.state.activeLines.length;t++)e.removeLineClass(e.state.activeLines[t],"wrap",o),e.removeLineClass(e.state.activeLines[t],"background",a),e.removeLineClass(e.state.activeLines[t],"gutter",l)}function r(e,t){if(e.length!=t.length)return!1;for(var r=0;r<e.length;r++)if(e[r]!=t[r])return!1;return!0}function n(e,n){for(var i=[],s=0;s<n.length;s++){var c=n[s],u=e.getOption("styleActiveLine");if("object"==typeof u&&u.nonEmpty?c.anchor.line==c.head.line:c.empty()){var f=e.getLineHandleVisualStart(c.head.line);i[i.length-1]!=f&&i.push(f)}}r(e.state.activeLines,i)||e.operation(function(){t(e);for(var r=0;r<i.length;r++)e.addLineClass(i[r],"wrap",o),e.addLineClass(i[r],"background",a),e.addLineClass(i[r],"gutter",l);e.state.activeLines=i})}function i(e,t){n(e,t.ranges)}var o="CodeMirror-activeline",a="CodeMirror-activeline-background",l="CodeMirror-activeline-gutter";e.defineOption("styleActiveLine",!1,function(r,o,a){var l=a!=e.Init&&a;o!=l&&(l&&(r.off("beforeSelectionChange",i),t(r),delete r.state.activeLines),o&&(r.state.activeLines=[],n(r,r.listSelections()),r.on("beforeSelectionChange",i)))})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,i,o){if(this.atOccurrence=!1,this.doc=e,null==o&&"string"==typeof t&&(o=!1),i=i?e.clipPos(i):n(0,0),this.pos={from:i,to:i},"string"!=typeof t)t.global||(t=new RegExp(t.source,t.ignoreCase?"ig":"g")),this.matches=function(r,i){if(r){t.lastIndex=0;for(var o,a,l=e.getLine(i.line).slice(0,i.ch),s=0;;){t.lastIndex=s;var c=t.exec(l);if(!c)break;if(o=c,a=o.index,(s=o.index+(o[0].length||1))==l.length)break}var u=o&&o[0].length||0;u||(0==a&&0==l.length?o=void 0:a!=e.getLine(i.line).length&&u++)}else{t.lastIndex=i.ch;var l=e.getLine(i.line),o=t.exec(l),u=o&&o[0].length||0,a=o&&o.index;a+u==l.length||u||(u=1)}if(o&&u)return{from:n(i.line,a),to:n(i.line,a+u),match:o}};else{var a=t;o&&(t=t.toLowerCase());var l=o?function(e){return e.toLowerCase()}:function(e){return e},s=t.split("\n");if(1==s.length)t.length?this.matches=function(i,o){if(i){var s=e.getLine(o.line).slice(0,o.ch),c=l(s),u=c.lastIndexOf(t);if(u>-1)return u=r(s,c,u),{from:n(o.line,u),to:n(o.line,u+a.length)}}else{var s=e.getLine(o.line).slice(o.ch),c=l(s),u=c.indexOf(t);if(u>-1)return u=r(s,c,u)+o.ch,{from:n(o.line,u),to:n(o.line,u+a.length)}}}:this.matches=function(){};else{var c=a.split("\n");this.matches=function(t,r){var i=s.length-1;if(t){if(r.line-(s.length-1)<e.firstLine())return;if(l(e.getLine(r.line).slice(0,c[i].length))!=s[s.length-1])return;for(var o=n(r.line,c[i].length),a=r.line-1,u=i-1;u>=1;--u,--a)if(s[u]!=l(e.getLine(a)))return;var f=e.getLine(a),d=f.length-c[0].length;if(l(f.slice(d))!=s[0])return;return{from:n(a,d),to:o}}if(!(r.line+(s.length-1)>e.lastLine())){var f=e.getLine(r.line),d=f.length-c[0].length;if(l(f.slice(d))==s[0]){for(var h=n(r.line,d),a=r.line+1,u=1;u<i;++u,++a)if(s[u]!=l(e.getLine(a)))return;if(l(e.getLine(a).slice(0,c[i].length))==s[i])return{from:h,to:n(a,c[i].length)}}}}}}}function r(e,t,r){if(e.length==t.length)return r;for(var n=Math.min(r,e.length);;){var i=e.slice(0,n).toLowerCase().length;if(i<r)++n;else{if(!(i>r))return n;--n}}}var n=e.Pos;t.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){function t(e){var t=n(e,0);return r.pos={from:t,to:t},r.atOccurrence=!1,!1}for(var r=this,i=this.doc.clipPos(e?this.pos.from:this.pos.to);;){if(this.pos=this.matches(e,i))return this.atOccurrence=!0,this.pos.match||!0;if(e){if(!i.line)return t(0);i=n(i.line-1,this.doc.getLine(i.line-1).length)}else{var o=this.doc.lineCount();if(i.line==o-1)return t(o);i=n(i.line+1,0)}}},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,r){if(this.atOccurrence){var i=e.splitLines(t);this.doc.replaceRange(i,this.pos.from,this.pos.to,r),this.pos.to=n(this.pos.from.line+i.length-1,i[i.length-1].length+(1==i.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,r,n){return new t(this.doc,e,r,n)}),e.defineDocExtension("getSearchCursor",function(e,r,n){return new t(this,e,r,n)}),e.defineExtension("selectMatches",function(t,r){for(var n=[],i=this.getSearchCursor(t,this.getCursor("from"),r);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor("to"))>0);)n.push({anchor:i.from(),head:i.to()});n.length&&this.setSelections(n,0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./searchcursor"),require("../dialog/dialog")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../dialog/dialog"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return"string"==typeof e?e=new RegExp(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):e.global||(e=new RegExp(e.source,e.ignoreCase?"gi":"g")),{token:function(t){e.lastIndex=t.pos;var r=e.exec(t.string);if(r&&r.index==t.pos)return t.pos+=r[0].length||1,"searching";r?t.pos=r.index:t.skipToEnd()}}}function r(){
9
- this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function n(e){return e.state.search||(e.state.search=new r)}function i(e){return"string"==typeof e&&e==e.toLowerCase()}function o(e,t,r){return e.getSearchCursor(t,r,i(t))}function a(e,t,r,n,i){e.openDialog(t,n,{value:r,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){p(e)},onKeyDown:i})}function l(e,t,r,n,i){e.openDialog?e.openDialog(t,i,{value:n,selectValueOnOpen:!0}):i(prompt(r,n))}function s(e,t,r,n){e.openConfirm?e.openConfirm(t,n):confirm(r)&&n[0]()}function c(e){return e.replace(/\\(.)/g,function(e,t){return"n"==t?"\n":"r"==t?"\r":t})}function u(e){var t=e.match(/^\/(.*)\/([a-z]*)$/);if(t)try{e=new RegExp(t[1],t[2].indexOf("i")==-1?"":"i")}catch(e){}else e=c(e);return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function f(e,r,n){r.queryText=n,r.query=u(n),e.removeOverlay(r.overlay,i(r.query)),r.overlay=t(r.query,i(r.query)),e.addOverlay(r.overlay),e.showMatchesOnScrollbar&&(r.annotate&&(r.annotate.clear(),r.annotate=null),r.annotate=e.showMatchesOnScrollbar(r.query,i(r.query)))}function d(t,r,i,o){var s=n(t);if(s.query)return h(t,r);var c=t.getSelection()||s.lastQuery;if(i&&t.openDialog){var u=null,d=function(r,n){e.e_stop(n),r&&(r!=s.queryText&&(f(t,s,r),s.posFrom=s.posTo=t.getCursor()),u&&(u.style.opacity=1),h(t,n.shiftKey,function(e,r){var n;r.line<3&&document.querySelector&&(n=t.display.wrapper.querySelector(".CodeMirror-dialog"))&&n.getBoundingClientRect().bottom-4>t.cursorCoords(r,"window").top&&((u=n).style.opacity=.4)}))};a(t,v,c,d,function(r,i){var o=e.keyName(r),a=e.keyMap[t.getOption("keyMap")][o];a||(a=t.getOption("extraKeys")[o]),"findNext"==a||"findPrev"==a||"findPersistentNext"==a||"findPersistentPrev"==a?(e.e_stop(r),f(t,n(t),i),t.execCommand(a)):"find"!=a&&"findPersistent"!=a||(e.e_stop(r),d(i,r))}),o&&c&&(f(t,s,c),h(t,r))}else l(t,v,"Search for:",c,function(e){e&&!s.query&&t.operation(function(){f(t,s,e),s.posFrom=s.posTo=t.getCursor(),h(t,r)})})}function h(t,r,i){t.operation(function(){var a=n(t),l=o(t,a.query,r?a.posFrom:a.posTo);(l.find(r)||(l=o(t,a.query,r?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0)),l.find(r)))&&(t.setSelection(l.from(),l.to()),t.scrollIntoView({from:l.from(),to:l.to()},20),a.posFrom=l.from(),a.posTo=l.to(),i&&i(l.from(),l.to()))})}function p(e){e.operation(function(){var t=n(e);t.lastQuery=t.query,t.query&&(t.query=t.queryText=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))})}function m(e,t,r){e.operation(function(){for(var n=o(e,t);n.findNext();)if("string"!=typeof t){var i=e.getRange(n.from(),n.to()).match(t);n.replace(r.replace(/\$(\d)/g,function(e,t){return i[t]}))}else n.replace(r)})}function g(e,t){if(!e.getOption("readOnly")){var r=e.getSelection()||n(e).lastQuery,i=t?"Replace all:":"Replace:";l(e,i+y,i,r,function(r){r&&(r=u(r),l(e,b,"Replace with:","",function(n){if(n=c(n),t)m(e,r,n);else{p(e);var i=o(e,r,e.getCursor("from")),a=function(){var t,c=i.from();!(t=i.findNext())&&(i=o(e,r),!(t=i.findNext())||c&&i.from().line==c.line&&i.from().ch==c.ch)||(e.setSelection(i.from(),i.to()),e.scrollIntoView({from:i.from(),to:i.to()}),s(e,x,"Replace?",[function(){l(t)},a,function(){m(e,r,n)}]))},l=function(e){i.replace("string"==typeof r?n:n.replace(/\$(\d)/g,function(t,r){return e[r]})),a()};a()}}))})}}var v='Search: <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>',y=' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>',b='With: <input type="text" style="width: 10em" class="CodeMirror-search-field"/>',x="Replace? <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>";e.commands.find=function(e){p(e),d(e)},e.commands.findPersistent=function(e){p(e),d(e,!1,!0)},e.commands.findPersistentNext=function(e){d(e,!1,!0,!0)},e.commands.findPersistentPrev=function(e){d(e,!0,!0,!0)},e.commands.findNext=d,e.commands.findPrev=function(e){d(e,!0)},e.commands.clearSearch=p,e.commands.replace=g,e.commands.replaceAll=function(e){g(e,!0)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,r){var n,i=e.getWrapperElement();return n=i.appendChild(document.createElement("div")),n.className=r?"CodeMirror-dialog CodeMirror-dialog-bottom":"CodeMirror-dialog CodeMirror-dialog-top","string"==typeof t?n.innerHTML=t:n.appendChild(t),n}function r(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}e.defineExtension("openDialog",function(n,i,o){function a(e){if("string"==typeof e)f.value=e;else{if(c)return;c=!0,s.parentNode.removeChild(s),u.focus(),o.onClose&&o.onClose(s)}}o||(o={}),r(this,null);var l,s=t(this,n,o.bottom),c=!1,u=this,f=s.getElementsByTagName("input")[0];return f?(f.focus(),o.value&&(f.value=o.value,o.selectValueOnOpen!==!1&&f.select()),o.onInput&&e.on(f,"input",function(e){o.onInput(e,f.value,a)}),o.onKeyUp&&e.on(f,"keyup",function(e){o.onKeyUp(e,f.value,a)}),e.on(f,"keydown",function(t){o&&o.onKeyDown&&o.onKeyDown(t,f.value,a)||((27==t.keyCode||o.closeOnEnter!==!1&&13==t.keyCode)&&(f.blur(),e.e_stop(t),a()),13==t.keyCode&&i(f.value,t))}),o.closeOnBlur!==!1&&e.on(f,"blur",a)):(l=s.getElementsByTagName("button")[0])&&(e.on(l,"click",function(){a(),u.focus()}),o.closeOnBlur!==!1&&e.on(l,"blur",a),l.focus()),a}),e.defineExtension("openConfirm",function(n,i,o){function a(){c||(c=!0,l.parentNode.removeChild(l),u.focus())}r(this,null);var l=t(this,n,o&&o.bottom),s=l.getElementsByTagName("button"),c=!1,u=this,f=1;s[0].focus();for(var d=0;d<s.length;++d){var h=s[d];!function(t){e.on(h,"click",function(r){e.e_preventDefault(r),a(),t&&t(u)})}(i[d]),e.on(h,"blur",function(){--f,setTimeout(function(){f<=0&&a()},200)}),e.on(h,"focus",function(){++f})}}),e.defineExtension("openNotification",function(n,i){function o(){s||(s=!0,clearTimeout(a),l.parentNode.removeChild(l))}r(this,o);var a,l=t(this,n,i&&i.bottom),s=!1,c=i&&void 0!==i.duration?i.duration:5e3;return e.on(l,"click",function(t){e.e_preventDefault(t),o()}),c&&(a=setTimeout(o,c)),o})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,r,n){function i(t){var r=e.wheelEventPixels(t)["horizontal"==o.orientation?"x":"y"],n=o.pos;o.moveTo(o.pos+r),o.pos!=n&&e.e_preventDefault(t)}this.orientation=r,this.scroll=n,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=t+"-"+r,this.inner=this.node.appendChild(document.createElement("div"));var o=this;e.on(this.inner,"mousedown",function(t){function r(){e.off(document,"mousemove",n),e.off(document,"mouseup",r)}function n(e){if(1!=e.which)return r();o.moveTo(l+(e[i]-a)*(o.total/o.size))}if(1==t.which){e.e_preventDefault(t);var i="horizontal"==o.orientation?"pageX":"pageY",a=t[i],l=o.pos;e.on(document,"mousemove",n),e.on(document,"mouseup",r)}}),e.on(this.node,"click",function(t){e.e_preventDefault(t);var r,n=o.inner.getBoundingClientRect();r="horizontal"==o.orientation?t.clientX<n.left?-1:t.clientX>n.right?1:0:t.clientY<n.top?-1:t.clientY>n.bottom?1:0,o.moveTo(o.pos+r*o.screen)}),e.on(this.node,"mousewheel",i),e.on(this.node,"DOMMouseScroll",i)}function r(e,r,n){this.addClass=e,this.horiz=new t(e,"horizontal",n),r(this.horiz.node),this.vert=new t(e,"vertical",n),r(this.vert.node),this.width=null}t.prototype.setPos=function(e,t){return e<0&&(e=0),e>this.total-this.screen&&(e=this.total-this.screen),!(!t&&e==this.pos)&&(this.pos=e,this.inner.style["horizontal"==this.orientation?"left":"top"]=e*(this.size/this.total)+"px",!0)},t.prototype.moveTo=function(e){this.setPos(e)&&this.scroll(e,this.orientation)};t.prototype.update=function(e,t,r){var n=this.screen!=t||this.total!=e||this.size!=r;n&&(this.screen=t,this.total=e,this.size=r);var i=this.screen*(this.size/this.total);i<10&&(this.size-=10-i,i=10),this.inner.style["horizontal"==this.orientation?"width":"height"]=i+"px",this.setPos(this.pos,n)},r.prototype.update=function(e){if(null==this.width){var t=window.getComputedStyle?window.getComputedStyle(this.horiz.node):this.horiz.node.currentStyle;t&&(this.width=parseInt(t.height))}var r=this.width||0,n=e.scrollWidth>e.clientWidth+1,i=e.scrollHeight>e.clientHeight+1;return this.vert.node.style.display=i?"block":"none",this.horiz.node.style.display=n?"block":"none",i&&(this.vert.update(e.scrollHeight,e.clientHeight,e.viewHeight-(n?r:0)),this.vert.node.style.bottom=n?r+"px":"0"),n&&(this.horiz.update(e.scrollWidth,e.clientWidth,e.viewWidth-(i?r:0)-e.barLeft),this.horiz.node.style.right=i?r+"px":"0",this.horiz.node.style.left=e.barLeft+"px"),{right:i?r:0,bottom:n?r:0}},r.prototype.setScrollTop=function(e){this.vert.setPos(e)},r.prototype.setScrollLeft=function(e){this.horiz.setPos(e)},r.prototype.clear=function(){var e=this.horiz.node.parentNode;e.removeChild(this.horiz.node),e.removeChild(this.vert.node)},e.scrollbarModel.simple=function(e,t){return new r("CodeMirror-simplescroll",e,t)},e.scrollbarModel.overlay=function(e,t){return new r("CodeMirror-overlayscroll",e,t)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){var t=e.search(o);return t==-1?0:t}function r(e,t,r){return/\bstring\b/.test(e.getTokenTypeAt(a(t.line,0)))&&!/^[\'\"\`]/.test(r)}function n(e,t){var r=e.getMode();return r.useInnerComments!==!1&&r.innerMode?e.getModeAt(t):r}var i={},o=/[^\s\u00a0]/,a=e.Pos;e.commands.toggleComment=function(e){e.toggleComment()},e.defineExtension("toggleComment",function(e){e||(e=i);for(var t=this,r=1/0,n=this.listSelections(),o=null,l=n.length-1;l>=0;l--){var s=n[l].from(),c=n[l].to();s.line>=r||(c.line>=r&&(c=a(r,0)),r=s.line,null==o?t.uncomment(s,c,e)?o="un":(t.lineComment(s,c,e),o="line"):"un"==o?t.uncomment(s,c,e):t.lineComment(s,c,e))}}),e.defineExtension("lineComment",function(e,l,s){s||(s=i);var c=this,u=n(c,e),f=c.getLine(e.line);if(null!=f&&!r(c,e,f)){var d=s.lineComment||u.lineComment;if(!d)return void((s.blockCommentStart||u.blockCommentStart)&&(s.fullLines=!0,c.blockComment(e,l,s)));var h=Math.min(0!=l.ch||l.line==e.line?l.line+1:l.line,c.lastLine()+1),p=null==s.padding?" ":s.padding,m=s.commentBlankLines||e.line==l.line;c.operation(function(){if(s.indent){for(var r=null,n=e.line;n<h;++n){var i=c.getLine(n),l=i.slice(0,t(i));(null==r||r.length>l.length)&&(r=l)}for(var n=e.line;n<h;++n){var i=c.getLine(n),u=r.length;(m||o.test(i))&&(i.slice(0,u)!=r&&(u=t(i)),c.replaceRange(r+d+p,a(n,0),a(n,u)))}}else for(var n=e.line;n<h;++n)(m||o.test(c.getLine(n)))&&c.replaceRange(d+p,a(n,0))})}}),e.defineExtension("blockComment",function(e,t,r){r||(r=i);var l=this,s=n(l,e),c=r.blockCommentStart||s.blockCommentStart,u=r.blockCommentEnd||s.blockCommentEnd;if(!c||!u)return void((r.lineComment||s.lineComment)&&0!=r.fullLines&&l.lineComment(e,t,r));if(!/\bcomment\b/.test(l.getTokenTypeAt(a(e.line,0)))){var f=Math.min(t.line,l.lastLine());f!=e.line&&0==t.ch&&o.test(l.getLine(f))&&--f;var d=null==r.padding?" ":r.padding;e.line>f||l.operation(function(){if(0!=r.fullLines){var n=o.test(l.getLine(f));l.replaceRange(d+u,a(f)),l.replaceRange(c+d,a(e.line,0));var i=r.blockCommentLead||s.blockCommentLead;if(null!=i)for(var h=e.line+1;h<=f;++h)(h!=f||n)&&l.replaceRange(i+d,a(h,0))}else l.replaceRange(u,t),l.replaceRange(c,e)})}}),e.defineExtension("uncomment",function(e,t,r){r||(r=i);var l,s=this,c=n(s,e),u=Math.min(0!=t.ch||t.line==e.line?t.line:t.line-1,s.lastLine()),f=Math.min(e.line,u),d=r.lineComment||c.lineComment,h=[],p=null==r.padding?" ":r.padding;e:if(d){for(var m=f;m<=u;++m){var g=s.getLine(m),v=g.indexOf(d);if(v>-1&&!/comment/.test(s.getTokenTypeAt(a(m,v+1)))&&(v=-1),v==-1&&o.test(g))break e;if(v>-1&&o.test(g.slice(0,v)))break e;h.push(g)}if(s.operation(function(){for(var e=f;e<=u;++e){var t=h[e-f],r=t.indexOf(d),n=r+d.length;r<0||(t.slice(n,n+p.length)==p&&(n+=p.length),l=!0,s.replaceRange("",a(e,r),a(e,n)))}}),l)return!0}var y=r.blockCommentStart||c.blockCommentStart,b=r.blockCommentEnd||c.blockCommentEnd;if(!y||!b)return!1;var x=r.blockCommentLead||c.blockCommentLead,w=s.getLine(f),k=w.indexOf(y);if(k==-1)return!1;var C=u==f?w:s.getLine(u),S=C.indexOf(b,u==f?k+y.length:0);S==-1&&f!=u&&(C=s.getLine(--u),S=C.indexOf(b));var _=a(f,k+1),M=a(u,S+1);if(S==-1||!/comment/.test(s.getTokenTypeAt(_))||!/comment/.test(s.getTokenTypeAt(M))||s.getRange(_,M,"\n").indexOf(b)>-1)return!1;var L=w.lastIndexOf(y,e.ch),T=L==-1?-1:w.slice(0,e.ch).indexOf(b,L+y.length);if(L!=-1&&T!=-1&&T+b.length!=e.ch)return!1;T=C.indexOf(b,t.ch);var A=C.slice(t.ch).lastIndexOf(y,T-t.ch);return L=T==-1||A==-1?-1:t.ch+A,(T==-1||L==-1||L==t.ch)&&(s.operation(function(){s.replaceRange("",a(u,S-(p&&C.slice(S-p.length,S)==p?p.length:0)),a(u,S+b.length));var e=k+y.length;if(p&&w.slice(e,e+p.length)==p&&(e+=p.length),s.replaceRange("",a(f,k),a(f,e)),x)for(var t=f+1;t<=u;++t){var r=s.getLine(t),n=r.indexOf(x);if(n!=-1&&!o.test(r.slice(0,n))){var i=n+x.length;p&&r.slice(i,i+p.length)==p&&(i+=p.length),s.replaceRange("",a(t,n),a(t,i))}}}),!0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,i,o,a){function l(e){var r=s(t,i);if(!r||r.to.line-r.from.line<c)return null;for(var n=t.findMarksAt(r.from),o=0;o<n.length;++o)if(n[o].__isFold&&"fold"!==a){if(!e)return null;r.cleared=!0,n[o].clear()}return r}if(o&&o.call){var s=o;o=null}else var s=n(t,o,"rangeFinder");"number"==typeof i&&(i=e.Pos(i,0));var c=n(t,o,"minFoldSize"),u=l(!0);if(n(t,o,"scanUp"))for(;!u&&i.line>t.firstLine();)i=e.Pos(i.line-1,0),u=l(!1);if(u&&!u.cleared&&"unfold"!==a){var f=r(t,o);e.on(f,"mousedown",function(t){d.clear(),e.e_preventDefault(t)});var d=t.markText(u.from,u.to,{replacedWith:f,clearOnEnter:n(t,o,"clearOnEnter"),__isFold:!0});d.on("clear",function(r,n){e.signal(t,"unfold",t,r,n)}),e.signal(t,"fold",t,u.from,u.to)}}function r(e,t){var r=n(e,t,"widget");if("string"==typeof r){var i=document.createTextNode(r);r=document.createElement("span"),r.appendChild(i),r.className="CodeMirror-foldmarker"}return r}function n(e,t,r){if(t&&void 0!==t[r])return t[r];var n=e.options.foldOptions;return n&&void 0!==n[r]?n[r]:i[r]}e.newFoldFunction=function(e,r){return function(n,i){t(n,i,{rangeFinder:e,widget:r})}},e.defineExtension("foldCode",function(e,r,n){t(this,e,r,n)}),e.defineExtension("isFolded",function(e){for(var t=this.findMarksAt(e),r=0;r<t.length;++r)if(t[r].__isFold)return!0}),e.commands.toggleFold=function(e){e.foldCode(e.getCursor())},e.commands.fold=function(e){e.foldCode(e.getCursor(),null,"fold")},e.commands.unfold=function(e){e.foldCode(e.getCursor(),null,"unfold")},e.commands.foldAll=function(t){t.operation(function(){for(var r=t.firstLine(),n=t.lastLine();r<=n;r++)t.foldCode(e.Pos(r,0),null,"fold")})},e.commands.unfoldAll=function(t){t.operation(function(){for(var r=t.firstLine(),n=t.lastLine();r<=n;r++)t.foldCode(e.Pos(r,0),null,"unfold")})},e.registerHelper("fold","combine",function(){var e=Array.prototype.slice.call(arguments,0);return function(t,r){for(var n=0;n<e.length;++n){var i=e[n](t,r);if(i)return i}}}),e.registerHelper("fold","auto",function(e,t){for(var r=e.getHelpers(t,"fold"),n=0;n<r.length;n++){var i=r[n](e,t);if(i)return i}});var i={rangeFinder:e.fold.auto,widget:"↔",minFoldSize:0,scanUp:!1,clearOnEnter:!0};e.defineOption("foldOptions",null),e.defineExtension("foldOption",function(e,t){return n(this,e,t)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./foldcode")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./foldcode"],e):e(CodeMirror)}(function(e){"use strict";function t(e){this.options=e,this.from=this.to=0}function r(e){return e===!0&&(e={}),null==e.gutter&&(e.gutter="CodeMirror-foldgutter"),null==e.indicatorOpen&&(e.indicatorOpen="CodeMirror-foldgutter-open"),null==e.indicatorFolded&&(e.indicatorFolded="CodeMirror-foldgutter-folded"),e}function n(e,t){for(var r=e.findMarks(f(t,0),f(t+1,0)),n=0;n<r.length;++n)if(r[n].__isFold&&r[n].find().from.line==t)return r[n]}function i(e){if("string"==typeof e){var t=document.createElement("div");return t.className=e+" CodeMirror-guttermarker-subtle",t}return e.cloneNode(!0)}function o(e,t,r){var o=e.state.foldGutter.options,a=t,l=e.foldOption(o,"minFoldSize"),s=e.foldOption(o,"rangeFinder");e.eachLine(t,r,function(t){var r=null;if(n(e,a))r=i(o.indicatorFolded);else{var c=f(a,0),u=s&&s(e,c);u&&u.to.line-u.from.line>=l&&(r=i(o.indicatorOpen))}e.setGutterMarker(t,o.gutter,r),++a})}function a(e){var t=e.getViewport(),r=e.state.foldGutter;r&&(e.operation(function(){o(e,t.from,t.to)}),r.from=t.from,r.to=t.to)}function l(e,t,r){var i=e.state.foldGutter;if(i){var o=i.options;if(r==o.gutter){var a=n(e,t);a?a.clear():e.foldCode(f(t,0),o.rangeFinder)}}}function s(e){var t=e.state.foldGutter;if(t){var r=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){a(e)},r.foldOnChangeTimeSpan||600)}}function c(e){var t=e.state.foldGutter;if(t){var r=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var r=e.getViewport();t.from==t.to||r.from-t.to>20||t.from-r.to>20?a(e):e.operation(function(){r.from<t.from&&(o(e,r.from,t.from),t.from=r.from),r.to>t.to&&(o(e,t.to,r.to),t.to=r.to)})},r.updateViewportTimeSpan||400)}}function u(e,t){var r=e.state.foldGutter;if(r){var n=t.line;n>=r.from&&n<r.to&&o(e,n,n+1)}}e.defineOption("foldGutter",!1,function(n,i,o){o&&o!=e.Init&&(n.clearGutter(n.state.foldGutter.options.gutter),n.state.foldGutter=null,n.off("gutterClick",l),n.off("change",s),n.off("viewportChange",c),n.off("fold",u),n.off("unfold",u),n.off("swapDoc",s)),i&&(n.state.foldGutter=new t(r(i)),a(n),n.on("gutterClick",l),n.on("change",s),n.on("viewportChange",c),n.on("fold",u),n.on("unfold",u),n.on("swapDoc",s))});var f=e.Pos}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line-t.line||e.ch-t.ch}function r(e,t,r,n){this.line=t,this.ch=r,this.cm=e,this.text=e.getLine(t),this.min=n?Math.max(n.from,e.firstLine()):e.firstLine(),this.max=n?Math.min(n.to-1,e.lastLine()):e.lastLine()}function n(e,t){var r=e.cm.getTokenTypeAt(d(e.line,t));return r&&/\btag\b/.test(r)}function i(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function o(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function a(e){for(;;){var t=e.text.indexOf(">",e.ch);if(t==-1){if(i(e))continue;return}{if(n(e,t+1)){var r=e.text.lastIndexOf("/",t),o=r>-1&&!/\S/.test(e.text.slice(r+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t+1}}}function l(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(t==-1){if(o(e))continue;return}if(n(e,t+1)){p.lastIndex=t,e.ch=t;var r=p.exec(e.text);if(r&&r.index==t)return r}else e.ch=t}}function s(e){for(;;){p.lastIndex=e.ch;var t=p.exec(e.text);if(!t){if(i(e))continue;return}{if(n(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}}function c(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(t==-1){if(o(e))continue;return}{if(n(e,t+1)){var r=e.text.lastIndexOf("/",t),i=r>-1&&!/\S/.test(e.text.slice(r+1,t));return e.ch=t+1,i?"selfClose":"regular"}e.ch=t}}}function u(e,t){for(var r=[];;){var n,i=s(e),o=e.line,l=e.ch-(i?i[0].length:0);if(!i||!(n=a(e)))return;if("selfClose"!=n)if(i[1]){for(var c=r.length-1;c>=0;--c)if(r[c]==i[2]){r.length=c;break}if(c<0&&(!t||t==i[2]))return{tag:i[2],from:d(o,l),to:d(e.line,e.ch)}}else r.push(i[2])}}function f(e,t){for(var r=[];;){var n=c(e);if(!n)return;if("selfClose"!=n){var i=e.line,o=e.ch,a=l(e);if(!a)return;if(a[1])r.push(a[2]);else{for(var s=r.length-1;s>=0;--s)if(r[s]==a[2]){r.length=s;break}if(s<0&&(!t||t==a[2]))return{tag:a[2],from:d(e.line,e.ch),to:d(i,o)}}}else l(e)}}var d=e.Pos,h="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",p=new RegExp("<(/?)(["+h+"]["+h+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");e.registerHelper("fold","xml",function(e,t){for(var n=new r(e,t.line,0);;){var i,o=s(n);if(!o||n.line!=t.line||!(i=a(n)))return;if(!o[1]&&"selfClose"!=i){var l=d(n.line,n.ch),c=u(n,o[2]);return c&&{from:l,to:c.from}}}}),e.findMatchingTag=function(e,n,i){var o=new r(e,n.line,n.ch,i);if(o.text.indexOf(">")!=-1||o.text.indexOf("<")!=-1){var s=a(o),c=s&&d(o.line,o.ch),h=s&&l(o);if(s&&h&&!(t(o,n)>0)){var p={from:d(o.line,o.ch),to:c,tag:h[2]};return"selfClose"==s?{open:p,close:null,at:"open"}:h[1]?{open:f(o,h[2]),close:p,at:"close"}:(o=new r(e,c.line,c.ch,i),{open:p,close:u(o,h[2]),at:"open"})}}},e.findEnclosingTag=function(e,t,n){for(var i=new r(e,t.line,t.ch,n);;){var o=f(i);if(!o)break;var a=new r(e,t.line,t.ch,n),l=u(a,o.tag);if(l)return{open:o,close:l}}},e.scanForClosingTag=function(e,t,n,i){return u(new r(e,t.line,t.ch,i?{from:0,to:i}:null),n)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,r){var n=t.getLine(r),i=n.search(/\S/);return i==-1||/\bcomment\b/.test(t.getTokenTypeAt(e.Pos(r,i+1)))?-1:e.countColumn(n,null,t.getOption("tabSize"))}e.registerHelper("fold","indent",function(r,n){var i=t(r,n.line);if(!(i<0)){for(var o=null,a=n.line+1,l=r.lastLine();a<=l;++a){var s=t(r,a);if(s==-1);else{if(!(s>i))break;o=a}}return o?{from:e.Pos(n.line,r.getLine(n.line).length),to:e.Pos(o,r.getLine(o).length)}:void 0}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,n,i){var o=e.getLineHandle(t.line),s=t.ch-1,c=s>=0&&l[o.text.charAt(s)]||l[o.text.charAt(++s)];if(!c)return null;var u=">"==c.charAt(1)?1:-1;if(n&&u>0!=(s==t.ch))return null;var f=e.getTokenTypeAt(a(t.line,s+1)),d=r(e,a(t.line,s+(u>0?1:0)),u,f||null,i);return null==d?null:{from:a(t.line,s),to:d&&d.pos,match:d&&d.ch==c.charAt(0),forward:u>0}}function r(e,t,r,n,i){for(var o=i&&i.maxScanLineLength||1e4,s=i&&i.maxScanLines||1e3,c=[],u=i&&i.bracketRegex?i.bracketRegex:/[(){}[\]]/,f=r>0?Math.min(t.line+s,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-s),d=t.line;d!=f;d+=r){var h=e.getLine(d);if(h){var p=r>0?0:h.length-1,m=r>0?h.length:-1;if(!(h.length>o))for(d==t.line&&(p=t.ch-(r<0?1:0));p!=m;p+=r){var g=h.charAt(p);if(u.test(g)&&(void 0===n||e.getTokenTypeAt(a(d,p+1))==n)){var v=l[g];if(">"==v.charAt(1)==r>0)c.push(g);else{if(!c.length)return{pos:a(d,p),ch:g};c.pop()}}}}}return d-r!=(r>0?e.lastLine():e.firstLine())&&null}function n(e,r,n){for(var i=e.state.matchBrackets.maxHighlightLineLength||1e3,l=[],s=e.listSelections(),c=0;c<s.length;c++){var u=s[c].empty()&&t(e,s[c].head,!1,n);if(u&&e.getLine(u.from.line).length<=i){var f=u.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";l.push(e.markText(u.from,a(u.from.line,u.from.ch+1),{className:f})),u.to&&e.getLine(u.to.line).length<=i&&l.push(e.markText(u.to,a(u.to.line,u.to.ch+1),{className:f}))}}if(l.length){o&&e.state.focused&&e.focus();var d=function(){e.operation(function(){for(var e=0;e<l.length;e++)l[e].clear()})};if(!r)return d;setTimeout(d,800)}}function i(e){e.operation(function(){s&&(s(),s=null),s=n(e,!1,e.state.matchBrackets)})}var o=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),a=e.Pos,l={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},s=null;e.defineOption("matchBrackets",!1,function(t,r,n){n&&n!=e.Init&&(t.off("cursorActivity",i),s&&(s(),s=null)),r&&(t.state.matchBrackets="object"==typeof r?r:{},t.on("cursorActivity",i))}),e.defineExtension("matchBrackets",function(){n(this,!0)}),e.defineExtension("findMatchingBracket",function(e,r,n){return t(this,e,r,n)}),e.defineExtension("scanForBracket",function(e,t,n,i){return r(this,e,t,n,i)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],e):e(CodeMirror)}(function(e){"use strict";function t(e){e.state.tagHit&&e.state.tagHit.clear(),e.state.tagOther&&e.state.tagOther.clear(),e.state.tagHit=e.state.tagOther=null}function r(r){r.state.failedTagMatch=!1,r.operation(function(){if(t(r),!r.somethingSelected()){var n=r.getCursor(),i=r.getViewport();i.from=Math.min(i.from,n.line),i.to=Math.max(n.line+1,i.to);var o=e.findMatchingTag(r,n,i);if(o){if(r.state.matchBothTags){var a="open"==o.at?o.open:o.close;a&&(r.state.tagHit=r.markText(a.from,a.to,{className:"CodeMirror-matchingtag"}))}var l="close"==o.at?o.open:o.close;l?r.state.tagOther=r.markText(l.from,l.to,{className:"CodeMirror-matchingtag"}):r.state.failedTagMatch=!0}}})}function n(e){e.state.failedTagMatch&&r(e)}e.defineOption("matchTags",!1,function(i,o,a){a&&a!=e.Init&&(i.off("cursorActivity",r),i.off("viewportChange",n),t(i)),o&&(i.state.matchBothTags="object"==typeof o&&o.bothTags,i.on("cursorActivity",r),i.on("viewportChange",n),r(i))}),e.commands.toMatchingTag=function(t){var r=e.findMatchingTag(t,t.getCursor());if(r){var n="close"==r.at?r.open:r.close;n&&t.extendSelection(n.to,n.from)}}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./matchesonscrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./matchesonscrollbar"],e):e(CodeMirror)}(function(e){"use strict";function t(e){this.options={};for(var t in f)this.options[t]=(e&&e.hasOwnProperty(t)?e:f)[t];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}function r(e){var t=e.state.matchHighlighter;(t.active||e.hasFocus())&&i(e,t)}function n(e){var t=e.state.matchHighlighter;t.active||(t.active=!0,i(e,t))}function i(e,t){clearTimeout(t.timeout),t.timeout=setTimeout(function(){l(e)},t.options.delay)}function o(e,t,r,n){var i=e.state.matchHighlighter;if(e.addOverlay(i.overlay=u(t,r,n)),i.options.annotateScrollbar&&e.showMatchesOnScrollbar){var o=r?new RegExp("\\b"+t+"\\b"):t;i.matchesonscroll=e.showMatchesOnScrollbar(o,!1,{className:"CodeMirror-selection-highlight-scrollbar"})}}function a(e){var t=e.state.matchHighlighter;t.overlay&&(e.removeOverlay(t.overlay),t.overlay=null,t.matchesonscroll&&(t.matchesonscroll.clear(),t.matchesonscroll=null))}function l(e){e.operation(function(){var t=e.state.matchHighlighter;if(a(e),!e.somethingSelected()&&t.options.showToken){for(var r=t.options.showToken===!0?/[\w$]/:t.options.showToken,n=e.getCursor(),i=e.getLine(n.line),l=n.ch,c=l;l&&r.test(i.charAt(l-1));)--l;for(;c<i.length&&r.test(i.charAt(c));)++c;return void(l<c&&o(e,i.slice(l,c),r,t.options.style))}var u=e.getCursor("from"),f=e.getCursor("to");if(u.line==f.line&&(!t.options.wordsOnly||s(e,u,f))){var d=e.getRange(u,f);t.options.trim&&(d=d.replace(/^\s+|\s+$/g,"")),d.length>=t.options.minChars&&o(e,d,!1,t.options.style)}})}function s(e,t,r){if(null!==e.getRange(t,r).match(/^\w+$/)){if(t.ch>0){var n={line:t.line,ch:t.ch-1},i=e.getRange(n,t);if(null===i.match(/\W/))return!1}if(r.ch<e.getLine(t.line).length){var n={line:r.line,ch:r.ch+1},i=e.getRange(r,n);if(null===i.match(/\W/))return!1}return!0}return!1}function c(e,t){return!(e.start&&t.test(e.string.charAt(e.start-1))||e.pos!=e.string.length&&t.test(e.string.charAt(e.pos)))}function u(e,t,r){return{token:function(n){if(n.match(e)&&(!t||c(n,t)))return r;n.next(),n.skipTo(e.charAt(0))||n.skipToEnd()}}}var f={style:"matchhighlight",minChars:2,delay:100,wordsOnly:!1,annotateScrollbar:!1,showToken:!1,trim:!0};e.defineOption("highlightSelectionMatches",!1,function(i,o,s){if(s&&s!=e.Init&&(a(i),clearTimeout(i.state.matchHighlighter.timeout),i.state.matchHighlighter=null,i.off("cursorActivity",r),i.off("focus",n)),o){var c=i.state.matchHighlighter=new t(o);i.hasFocus()?(c.active=!0,l(i)):i.on("focus",n),i.on("cursorActivity",r)}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],e):e(CodeMirror)}(function(e){function t(t){if(t.getOption("disableInput"))return e.Pass;for(var r=t.listSelections(),n=[],s=0;s<r.length;s++){if(!r[s].empty())return e.Pass;var c=r[s].head,u=t.getTokenAt(c),f=e.innerMode(t.getMode(),u.state),d=f.state;if("xml"!=f.mode.name||!d.tagName)return e.Pass;var h=t.getOption("autoCloseTags"),p="html"==f.mode.configuration,m="object"==typeof h&&h.dontCloseTags||p&&a,g="object"==typeof h&&h.indentTags||p&&l,v=d.tagName;u.end>c.ch&&(v=v.slice(0,v.length-u.end+c.ch));var y=v.toLowerCase();if(!v||"string"==u.type&&(u.end!=c.ch||!/[\"\']/.test(u.string.charAt(u.string.length-1))||1==u.string.length)||"tag"==u.type&&"closeTag"==d.type||u.string.indexOf("/")==u.string.length-1||m&&i(m,y)>-1||o(t,v,c,d,!0))return e.Pass;var b=g&&i(g,y)>-1;n[s]={indent:b,text:">"+(b?"\n\n":"")+"</"+v+">",newPos:b?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(var s=r.length-1;s>=0;s--){var x=n[s];t.replaceRange(x.text,r[s].head,r[s].anchor,"+insert");var w=t.listSelections().slice(0);w[s]={head:x.newPos,anchor:x.newPos},t.setSelections(w),x.indent&&(t.indentLine(x.newPos.line,null,!0),t.indentLine(x.newPos.line+1,null,!0))}}function r(t,r){for(var n=t.listSelections(),i=[],a=r?"/":"</",l=0;l<n.length;l++){if(!n[l].empty())return e.Pass;var s=n[l].head,c=t.getTokenAt(s),u=e.innerMode(t.getMode(),c.state),f=u.state;if(r&&("string"==c.type||"<"!=c.string.charAt(0)||c.start!=s.ch-1))return e.Pass;var d;if("xml"!=u.mode.name)if("htmlmixed"==t.getMode().name&&"javascript"==u.mode.name)d=a+"script";else{if("htmlmixed"!=t.getMode().name||"css"!=u.mode.name)return e.Pass;d=a+"style"}else{if(!f.context||!f.context.tagName||o(t,f.context.tagName,s,f))return e.Pass;d=a+f.context.tagName}">"!=t.getLine(s.line).charAt(c.end)&&(d+=">"),i[l]=d}t.replaceSelections(i),n=t.listSelections();for(var l=0;l<n.length;l++)(l==n.length-1||n[l].head.line<n[l+1].head.line)&&t.indentLine(n[l].head.line)}function n(t){return t.getOption("disableInput")?e.Pass:r(t,!0)}function i(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;++r)if(e[r]==t)return r;return-1}function o(t,r,n,i,o){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,n.line+500),l=e.scanForClosingTag(t,n,null,a);if(!l||l.tag!=r)return!1;for(var s=i.context,c=o?1:0;s&&s.tagName==r;s=s.prev)++c;n=l.to;for(var u=1;u<c;u++){var f=e.scanForClosingTag(t,n,null,a);if(!f||f.tag!=r)return!1;n=f.to}return!0}e.defineOption("autoCloseTags",!1,function(r,i,o){if(o!=e.Init&&o&&r.removeKeyMap("autoCloseTags"),i){var a={name:"autoCloseTags"};("object"!=typeof i||i.whenClosing)&&(a["'/'"]=function(e){return n(e)}),("object"!=typeof i||i.whenOpening)&&(a["'>'"]=function(e){return t(e)}),r.addKeyMap(a)}})
10
- ;var a=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],l=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return r(e)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t){return"pairs"==t&&"string"==typeof e?e:"object"==typeof e&&null!=e[t]?e[t]:f[t]}function r(e){var t=e.state.closeBrackets;return!t||t.override?t:e.getModeAt(e.getCursor()).closeBrackets||t}function n(n){var i=r(n);if(!i||n.getOption("disableInput"))return e.Pass;for(var o=t(i,"pairs"),a=n.listSelections(),l=0;l<a.length;l++){if(!a[l].empty())return e.Pass;var c=s(n,a[l].head);if(!c||o.indexOf(c)%2!=0)return e.Pass}for(var l=a.length-1;l>=0;l--){var u=a[l].head;n.replaceRange("",d(u.line,u.ch-1),d(u.line,u.ch+1),"+delete")}}function i(n){var i=r(n),o=i&&t(i,"explode");if(!o||n.getOption("disableInput"))return e.Pass;for(var a=n.listSelections(),l=0;l<a.length;l++){if(!a[l].empty())return e.Pass;var c=s(n,a[l].head);if(!c||o.indexOf(c)%2!=0)return e.Pass}n.operation(function(){n.replaceSelection("\n\n",null),n.execCommand("goCharLeft"),a=n.listSelections();for(var e=0;e<a.length;e++){var t=a[e].head.line;n.indentLine(t,null,!0),n.indentLine(t+1,null,!0)}})}function o(t){var r=e.cmpPos(t.anchor,t.head)>0;return{anchor:new d(t.anchor.line,t.anchor.ch+(r?-1:1)),head:new d(t.head.line,t.head.ch+(r?1:-1))}}function a(n,i){var a=r(n);if(!a||n.getOption("disableInput"))return e.Pass;var s=t(a,"pairs"),f=s.indexOf(i);if(f==-1)return e.Pass;for(var h,p=t(a,"triples"),m=s.charAt(f+1)==i,g=n.listSelections(),v=f%2==0,y=0;y<g.length;y++){var b,x=g[y],w=x.head,k=n.getRange(w,d(w.line,w.ch+1));if(v&&!x.empty())b="surround";else if(!m&&v||k!=i)if(m&&w.ch>1&&p.indexOf(i)>=0&&n.getRange(d(w.line,w.ch-2),w)==i+i&&(w.ch<=2||n.getRange(d(w.line,w.ch-3),d(w.line,w.ch-2))!=i))b="addFour";else if(m){if(e.isWordChar(k)||!c(n,w,i))return e.Pass;b="both"}else{if(!v||n.getLine(w.line).length!=w.ch&&!l(k,s)&&!/\s/.test(k))return e.Pass;b="both"}else b=m&&u(n,w)?"both":p.indexOf(i)>=0&&n.getRange(w,d(w.line,w.ch+3))==i+i+i?"skipThree":"skip";if(h){if(h!=b)return e.Pass}else h=b}var C=f%2?s.charAt(f-1):i,S=f%2?i:s.charAt(f+1);n.operation(function(){if("skip"==h)n.execCommand("goCharRight");else if("skipThree"==h)for(var e=0;e<3;e++)n.execCommand("goCharRight");else if("surround"==h){for(var t=n.getSelections(),e=0;e<t.length;e++)t[e]=C+t[e]+S;n.replaceSelections(t,"around"),t=n.listSelections().slice();for(var e=0;e<t.length;e++)t[e]=o(t[e]);n.setSelections(t)}else"both"==h?(n.replaceSelection(C+S,null),n.triggerElectric(C+S),n.execCommand("goCharLeft")):"addFour"==h&&(n.replaceSelection(C+C+C+C,"before"),n.execCommand("goCharRight"))})}function l(e,t){var r=t.lastIndexOf(e);return r>-1&&r%2==1}function s(e,t){var r=e.getRange(d(t.line,t.ch-1),d(t.line,t.ch+1));return 2==r.length?r:null}function c(t,r,n){var i=t.getLine(r.line),o=t.getTokenAt(r);if(/\bstring2?\b/.test(o.type)||u(t,r))return!1;var a=new e.StringStream(i.slice(0,r.ch)+n+i.slice(r.ch),4);for(a.pos=a.start=o.start;;){var l=t.getMode().token(a,o.state);if(a.pos>=r.ch+1)return/\bstring2?\b/.test(l);a.start=a.pos}}function u(e,t){var r=e.getTokenAt(d(t.line,t.ch+1));return/\bstring/.test(r.type)&&r.start==t.ch}var f={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},d=e.Pos;e.defineOption("autoCloseBrackets",!1,function(t,r,n){n&&n!=e.Init&&(t.removeKeyMap(p),t.state.closeBrackets=null),r&&(t.state.closeBrackets=r,t.addKeyMap(p))});for(var h=f.pairs+"`",p={Backspace:n,Enter:i},m=0;m<h.length;m++)p["'"+h.charAt(m)+"'"]=function(e){return function(t){return a(t,e)}}(h.charAt(m))}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/edit/matchbrackets")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/edit/matchbrackets"],e):e(CodeMirror)}(function(e){"use strict";function t(t,r,n){if(n<0&&0==r.ch)return t.clipPos(h(r.line-1));var i=t.getLine(r.line);if(n>0&&r.ch>=i.length)return t.clipPos(h(r.line+1,0));for(var o,a="start",l=r.ch,s=n<0?0:i.length,c=0;l!=s;l+=n,c++){var u=i.charAt(n<0?l-1:l),f="_"!=u&&e.isWordChar(u)?"w":"o";if("w"==f&&u.toUpperCase()==u&&(f="W"),"start"==a)"o"!=f&&(a="in",o=f);else if("in"==a&&o!=f){if("w"==o&&"W"==f&&n<0&&l--,"W"==o&&"w"==f&&n>0){o="w";continue}break}}return h(r.line,l)}function r(e,r){e.extendSelectionsBy(function(n){return e.display.shift||e.doc.extend||n.empty()?t(e.doc,n.head,r):r<0?n.from():n.to()})}function n(t,r){if(t.isReadOnly())return e.Pass;t.operation(function(){for(var e=t.listSelections().length,n=[],i=-1,o=0;o<e;o++){var a=t.listSelections()[o].head;if(!(a.line<=i)){var l=h(a.line+(r?0:1),0);t.replaceRange("\n",l,null,"+insertLine"),t.indentLine(l.line,null,!0),n.push({head:l,anchor:l}),i=a.line+1}}t.setSelections(n)}),t.execCommand("indentAuto")}function i(t,r){for(var n=r.ch,i=n,o=t.getLine(r.line);n&&e.isWordChar(o.charAt(n-1));)--n;for(;i<o.length&&e.isWordChar(o.charAt(i));)++i;return{from:h(r.line,n),to:h(r.line,i),word:o.slice(n,i)}}function o(e,t,r){for(var n=0;n<e.length;n++)if(e[n].from()==t&&e[n].to()==r)return!0;return!1}function a(e){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++){var i=t[n],o=i.head,a=e.scanForBracket(o,-1);if(!a)return!1;for(;;){var l=e.scanForBracket(o,1);if(!l)return!1;if(l.ch==y.charAt(y.indexOf(a.ch)+1)){r.push({anchor:h(a.pos.line,a.pos.ch+1),head:l.pos});break}o=h(l.pos.line,l.pos.ch+1)}}return e.setSelections(r),!0}function l(t,r){if(t.isReadOnly())return e.Pass;for(var n,i=t.listSelections(),o=[],a=0;a<i.length;a++){var l=i[a];if(!l.empty()){for(var s=l.from().line,c=l.to().line;a<i.length-1&&i[a+1].from().line==c;)c=i[++a].to().line;i[a].to().ch||c--,o.push(s,c)}}o.length?n=!0:o.push(t.firstLine(),t.lastLine()),t.operation(function(){for(var e=[],i=0;i<o.length;i+=2){var a=o[i],l=o[i+1],s=h(a,0),c=h(l),u=t.getRange(s,c,!1);r?u.sort():u.sort(function(e,t){var r=e.toUpperCase(),n=t.toUpperCase();return r!=n&&(e=r,t=n),e<t?-1:e==t?0:1}),t.replaceRange(u,s,c),n&&e.push({anchor:s,head:h(l+1,0)})}n&&t.setSelections(e,0)})}function s(t,r){t.operation(function(){for(var n=t.listSelections(),o=[],a=[],l=0;l<n.length;l++){var s=n[l];s.empty()?(o.push(l),a.push("")):a.push(r(t.getRange(s.from(),s.to())))}t.replaceSelections(a,"around","case");for(var c,l=o.length-1;l>=0;l--){var s=n[o[l]];if(!(c&&e.cmpPos(s.head,c)>0)){var u=i(t,s.head);c=u.from,t.replaceRange(r(u.word),u.from,u.to)}}})}function c(t){var r=t.getCursor("from"),n=t.getCursor("to");if(0==e.cmpPos(r,n)){var o=i(t,r);if(!o.word)return;r=o.from,n=o.to}return{from:r,to:n,query:t.getRange(r,n),word:o}}function u(e,t){var r=c(e);if(r){var n=r.query,i=e.getSearchCursor(n,t?r.to:r.from);(t?i.findNext():i.findPrevious())?e.setSelection(i.from(),i.to()):(i=e.getSearchCursor(n,t?h(e.firstLine(),0):e.clipPos(h(e.lastLine()))),(t?i.findNext():i.findPrevious())?e.setSelection(i.from(),i.to()):r.word&&e.setSelection(r.from,r.to))}}var f=e.keyMap.sublime={fallthrough:"default"},d=e.commands,h=e.Pos,p=e.keyMap.default==e.keyMap.macDefault,m=p?"Cmd-":"Ctrl-",g=p?"Ctrl-":"Alt-";d[f[g+"Left"]="goSubwordLeft"]=function(e){r(e,-1)},d[f[g+"Right"]="goSubwordRight"]=function(e){r(e,1)},p&&(f["Cmd-Left"]="goLineStartSmart");var v=p?"Ctrl-Alt-":"Ctrl-";d[f[v+"Up"]="scrollLineUp"]=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var r=e.lineAtHeight(t.top+t.clientHeight,"local");e.getCursor().line>=r&&e.execCommand("goLineUp")}e.scrollTo(null,t.top-e.defaultTextHeight())},d[f[v+"Down"]="scrollLineDown"]=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var r=e.lineAtHeight(t.top,"local")+1;e.getCursor().line<=r&&e.execCommand("goLineDown")}e.scrollTo(null,t.top+e.defaultTextHeight())},d[f["Shift-"+m+"L"]="splitSelectionByLine"]=function(e){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)for(var i=t[n].from(),o=t[n].to(),a=i.line;a<=o.line;++a)o.line>i.line&&a==o.line&&0==o.ch||r.push({anchor:a==i.line?i:h(a,0),head:a==o.line?o:h(a)});e.setSelections(r,0)},f["Shift-Tab"]="indentLess",d[f.Esc="singleSelectionTop"]=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},d[f[m+"L"]="selectLine"]=function(e){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++){var i=t[n];r.push({anchor:h(i.from().line,0),head:h(i.to().line+1,0)})}e.setSelections(r)},f["Shift-Ctrl-K"]="deleteLine",d[f[m+"Enter"]="insertLineAfter"]=function(e){return n(e,!1)},d[f["Shift-"+m+"Enter"]="insertLineBefore"]=function(e){return n(e,!0)},d[f[m+"D"]="selectNextOccurrence"]=function(t){var r=t.getCursor("from"),n=t.getCursor("to"),a=t.state.sublimeFindFullWord==t.doc.sel;if(0==e.cmpPos(r,n)){var l=i(t,r);if(!l.word)return;t.setSelection(l.from,l.to),a=!0}else{var s=t.getRange(r,n),c=a?new RegExp("\\b"+s+"\\b"):s,u=t.getSearchCursor(c,n),f=u.findNext();if(f||(u=t.getSearchCursor(c,h(t.firstLine(),0)),f=u.findNext()),!f||o(t.listSelections(),u.from(),u.to()))return e.Pass;t.addSelection(u.from(),u.to())}a&&(t.state.sublimeFindFullWord=t.doc.sel)};var y="(){}[]";d[f["Shift-"+m+"Space"]="selectScope"]=function(e){a(e)||e.execCommand("selectAll")},d[f["Shift-"+m+"M"]="selectBetweenBrackets"]=function(t){if(!a(t))return e.Pass},d[f[m+"M"]="goToBracket"]=function(t){t.extendSelectionsBy(function(r){var n=t.scanForBracket(r.head,1);if(n&&0!=e.cmpPos(n.pos,r.head))return n.pos;var i=t.scanForBracket(r.head,-1);return i&&h(i.pos.line,i.pos.ch+1)||r.head})};var b=p?"Cmd-Ctrl-":"Shift-Ctrl-";d[f[b+"Up"]="swapLineUp"]=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),n=[],i=t.firstLine()-1,o=[],a=0;a<r.length;a++){var l=r[a],s=l.from().line-1,c=l.to().line;o.push({anchor:h(l.anchor.line-1,l.anchor.ch),head:h(l.head.line-1,l.head.ch)}),0!=l.to().ch||l.empty()||--c,s>i?n.push(s,c):n.length&&(n[n.length-1]=c),i=c}t.operation(function(){for(var e=0;e<n.length;e+=2){var r=n[e],i=n[e+1],a=t.getLine(r);t.replaceRange("",h(r,0),h(r+1,0),"+swapLine"),i>t.lastLine()?t.replaceRange("\n"+a,h(t.lastLine()),null,"+swapLine"):t.replaceRange(a+"\n",h(i,0),null,"+swapLine")}t.setSelections(o),t.scrollIntoView()})},d[f[b+"Down"]="swapLineDown"]=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),n=[],i=t.lastLine()+1,o=r.length-1;o>=0;o--){var a=r[o],l=a.to().line+1,s=a.from().line;0!=a.to().ch||a.empty()||l--,l<i?n.push(l,s):n.length&&(n[n.length-1]=s),i=s}t.operation(function(){for(var e=n.length-2;e>=0;e-=2){var r=n[e],i=n[e+1],o=t.getLine(r);r==t.lastLine()?t.replaceRange("",h(r-1),h(r),"+swapLine"):t.replaceRange("",h(r,0),h(r+1,0),"+swapLine"),t.replaceRange(o+"\n",h(i,0),null,"+swapLine")}t.scrollIntoView()})},d[f[m+"/"]="toggleCommentIndented"]=function(e){e.toggleComment({indent:!0})},d[f[m+"J"]="joinLines"]=function(e){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++){for(var i=t[n],o=i.from(),a=o.line,l=i.to().line;n<t.length-1&&t[n+1].from().line==l;)l=t[++n].to().line;r.push({start:a,end:l,anchor:!i.empty()&&o})}e.operation(function(){for(var t=0,n=[],i=0;i<r.length;i++){for(var o,a=r[i],l=a.anchor&&h(a.anchor.line-t,a.anchor.ch),s=a.start;s<=a.end;s++){var c=s-t;s==a.end&&(o=h(c,e.getLine(c).length+1)),c<e.lastLine()&&(e.replaceRange(" ",h(c),h(c+1,/^\s*/.exec(e.getLine(c+1))[0].length)),++t)}n.push({anchor:l||o,head:o})}e.setSelections(n,0)})},d[f["Shift-"+m+"D"]="duplicateLine"]=function(e){e.operation(function(){for(var t=e.listSelections().length,r=0;r<t;r++){var n=e.listSelections()[r];n.empty()?e.replaceRange(e.getLine(n.head.line)+"\n",h(n.head.line,0)):e.replaceRange(e.getRange(n.from(),n.to()),n.from())}e.scrollIntoView()})},p||(f[m+"T"]="transposeChars"),d[f.F9="sortLines"]=function(e){l(e,!0)},d[f[m+"F9"]="sortLinesInsensitive"]=function(e){l(e,!1)},d[f.F2="nextBookmark"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){var r=t.shift(),n=r.find();if(n)return t.push(r),e.setSelection(n.from,n.to)}},d[f["Shift-F2"]="prevBookmark"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){t.unshift(t.pop());var r=t[t.length-1].find();if(r)return e.setSelection(r.from,r.to);t.pop()}},d[f[m+"F2"]="toggleBookmark"]=function(e){for(var t=e.listSelections(),r=e.state.sublimeBookmarks||(e.state.sublimeBookmarks=[]),n=0;n<t.length;n++){for(var i=t[n].from(),o=t[n].to(),a=e.findMarks(i,o),l=0;l<a.length;l++)if(a[l].sublimeBookmark){a[l].clear();for(var s=0;s<r.length;s++)r[s]==a[l]&&r.splice(s--,1);break}l==a.length&&r.push(e.markText(i,o,{sublimeBookmark:!0,clearWhenEmpty:!1}))}},d[f["Shift-"+m+"F2"]="clearBookmarks"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(var r=0;r<t.length;r++)t[r].clear();t.length=0},d[f["Alt-F2"]="selectBookmarks"]=function(e){var t=e.state.sublimeBookmarks,r=[];if(t)for(var n=0;n<t.length;n++){var i=t[n].find();i?r.push({anchor:i.from,head:i.to}):t.splice(n--,0)}r.length&&e.setSelections(r,0)},f["Alt-Q"]="wrapLines";var x=m+"K ";f[x+m+"Backspace"]="delLineLeft",d[f.Backspace="smartBackspace"]=function(t){if(t.somethingSelected())return e.Pass;t.operation(function(){for(var r=t.listSelections(),n=t.getOption("indentUnit"),i=r.length-1;i>=0;i--){var o=r[i].head,a=t.getRange({line:o.line,ch:0},o),l=e.countColumn(a,null,t.getOption("tabSize")),s=t.findPosH(o,-1,"char",!1);if(a&&!/\S/.test(a)&&l%n==0){var c=new h(o.line,e.findColumn(a,l-n,n));c.ch!=o.ch&&(s=c)}t.replaceRange("",s,o,"+delete")}})},d[f[x+m+"K"]="delLineRight"]=function(e){e.operation(function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange("",t[r].anchor,h(t[r].to().line),"+delete");e.scrollIntoView()})},d[f[x+m+"U"]="upcaseAtCursor"]=function(e){s(e,function(e){return e.toUpperCase()})},d[f[x+m+"L"]="downcaseAtCursor"]=function(e){s(e,function(e){return e.toLowerCase()})},d[f[x+m+"Space"]="setSublimeMark"]=function(e){e.state.sublimeMark&&e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor())},d[f[x+m+"A"]="selectToSublimeMark"]=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&e.setSelection(e.getCursor(),t)},d[f[x+m+"W"]="deleteToSublimeMark"]=function(t){var r=t.state.sublimeMark&&t.state.sublimeMark.find();if(r){var n=t.getCursor(),i=r;if(e.cmpPos(n,i)>0){var o=i;i=n,n=o}t.state.sublimeKilled=t.getRange(n,i),t.replaceRange("",n,i)}},d[f[x+m+"X"]="swapWithSublimeMark"]=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&(e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor()),e.setCursor(t))},d[f[x+m+"Y"]="sublimeYank"]=function(e){null!=e.state.sublimeKilled&&e.replaceSelection(e.state.sublimeKilled,null,"paste")},f[x+m+"G"]="clearBookmarks",d[f[x+m+"C"]="showInCenter"]=function(e){var t=e.cursorCoords(null,"local");e.scrollTo(null,(t.top+t.bottom)/2-e.getScrollInfo().clientHeight/2)};var w=p?"Ctrl-Shift-":"Ctrl-Alt-";d[f[w+"Up"]="selectLinesUpward"]=function(e){e.operation(function(){for(var t=e.listSelections(),r=0;r<t.length;r++){var n=t[r];n.head.line>e.firstLine()&&e.addSelection(h(n.head.line-1,n.head.ch))}})},d[f[w+"Down"]="selectLinesDownward"]=function(e){e.operation(function(){for(var t=e.listSelections(),r=0;r<t.length;r++){var n=t[r];n.head.line<e.lastLine()&&e.addSelection(h(n.head.line+1,n.head.ch))}})},d[f[m+"F3"]="findUnder"]=function(e){u(e,!0)},d[f["Shift-"+m+"F3"]="findUnderPrevious"]=function(e){u(e,!1)},d[f["Alt-F3"]="findAllUnder"]=function(e){var t=c(e);if(t){for(var r=e.getSearchCursor(t.query),n=[],i=-1;r.findNext();)n.push({anchor:r.from(),head:r.to()}),r.from().line<=t.from.line&&r.from().ch<=t.from.ch&&i++;e.setSelections(n,i)}},f["Shift-"+m+"["]="fold",f["Shift-"+m+"]"]="unfold",f[x+m+"0"]=f[x+m+"J"]="unfoldAll",f[m+"I"]="findIncremental",f["Shift-"+m+"I"]="findIncrementalReverse",f[m+"H"]="replace",f.F3="findNext",f["Shift-F3"]="findPrev",e.normalizeKeyMap(f)}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line==t.line&&e.ch==t.ch}function r(e){P.push(e),P.length>50&&P.shift()}function n(e){if(!P.length)return r(e);P[P.length-1]+=e}function i(e){return P[P.length-(e?Math.min(e,1):1)]||""}function o(){return P.length>1&&P.pop(),i()}function a(e,i,o,a,l){null==l&&(l=e.getRange(i,o)),a&&R&&R.cm==e&&t(i,R.pos)&&e.isClean(R.gen)?n(l):r(l),e.replaceRange("",i,o,"+delete"),R=a?{cm:e,pos:i,gen:e.changeGeneration()}:null}function l(e,t,r){return e.findPosH(t,r,"char",!0)}function s(e,t,r){return e.findPosH(t,r,"word",!0)}function c(e,t,r){return e.findPosV(t,r,"line",e.doc.sel.goalColumn)}function u(e,t,r){return e.findPosV(t,r,"page",e.doc.sel.goalColumn)}function f(e,t,r){for(var n=t.line,i=e.getLine(n),o=/\S/.test(r<0?i.slice(0,t.ch):i.slice(t.ch)),a=e.firstLine(),l=e.lastLine();;){if((n+=r)<a||n>l)return e.clipPos(N(n-r,r<0?0:null));i=e.getLine(n);if(/\S/.test(i))o=!0;else if(o)return N(n,0)}}function d(e,t,r){for(var n=t.line,i=t.ch,o=e.getLine(t.line),a=!1;;){var l=o.charAt(i+(r<0?-1:0));if(l){if(a&&/[!?.]/.test(l))return N(n,i+(r>0?1:0));a||(a=/\w/.test(l)),i+=r}else{if(n==(r<0?e.firstLine():e.lastLine()))return N(n,i);if(o=e.getLine(n+r),!/\S/.test(o))return N(n,i);n+=r,i=r<0?o.length:0}}}function h(e,r,n){var i;if(e.findMatchingBracket&&(i=e.findMatchingBracket(r,!0))&&i.match&&(i.forward?1:-1)==n)return n>0?N(i.to.line,i.to.ch+1):i.to;for(var o=!0;;o=!1){var a=e.getTokenAt(r),l=N(r.line,n<0?a.start:a.end);if(!(o&&n>0&&a.end==r.ch)&&/\w/.test(a.string))return l;var s=e.findPosH(l,n,"char");if(t(l,s))return r;r=s}}function p(e,t){var r=e.state.emacsPrefix;return r?(k(e),"-"==r?-1:Number(r)):t?null:1}function m(e){var t="string"==typeof e?function(t){t.execCommand(e)}:e;return function(e){var r=p(e);t(e);for(var n=1;n<r;++n)t(e)}}function g(e,r,n,i){var o=p(e);o<0&&(i=-i,o=-o);for(var a=0;a<o;++a){var l=n(e,r,i);if(t(l,r))break;r=l}return r}function v(e,t){var r=function(r){r.extendSelection(g(r,r.getCursor(),e,t))};return r.motion=!0,r}function y(e,t,r){for(var n,i=e.listSelections(),o=i.length;o--;)n=i[o].head,a(e,n,g(e,n,t,r),!0)}function b(e){if(e.somethingSelected()){for(var t,r=e.listSelections(),n=r.length;n--;)t=r[n],a(e,t.anchor,t.head);return!0}}function x(e,t){if(e.state.emacsPrefix)return void("-"!=t&&(e.state.emacsPrefix+=t));e.state.emacsPrefix=t,e.on("keyHandled",w),e.on("inputRead",C)}function w(e,t){e.state.emacsPrefixMap||B.hasOwnProperty(t)||k(e)}function k(e){e.state.emacsPrefix=null,e.off("keyHandled",w),e.off("inputRead",C)}function C(e,t){var r=p(e);if(r>1&&"+input"==t.origin){for(var n=t.text.join("\n"),i="",o=1;o<r;++o)i+=n;e.replaceSelection(i)}}function S(e){e.state.emacsPrefixMap=!0,e.addKeyMap(D),e.on("keyHandled",_),e.on("inputRead",_)}function _(e,t){("string"!=typeof t||!/^\d$/.test(t)&&"Ctrl-U"!=t)&&(e.removeKeyMap(D),e.state.emacsPrefixMap=!1,e.off("keyHandled",_),e.off("inputRead",_))}function M(e){e.setCursor(e.getCursor()),e.setExtending(!e.getExtending()),e.on("change",function(){e.setExtending(!1)})}function L(e){e.setExtending(!1),e.setCursor(e.getCursor())}function T(e,t,r){e.openDialog?e.openDialog(t+': <input type="text" style="width: 10em"/>',r,{bottom:!0}):r(prompt(t,""))}function A(e,t){var r=e.getCursor(),n=e.findPosH(r,1,"word");e.replaceRange(t(e.getRange(r,n)),r,n),e.setCursor(n)}function O(e){for(var t=e.getCursor(),r=t.line,n=t.ch,i=[];r>=e.firstLine();){for(var o=e.getLine(r),a=null==n?o.length:n;a>0;){var n=o.charAt(--a);if(")"==n)i.push("(");else if("]"==n)i.push("[");else if("}"==n)i.push("{");else if(/[\(\{\[]/.test(n)&&(!i.length||i.pop()!=n))return e.extendSelection(N(r,a))}--r,n=null}}function E(e){e.execCommand("clearSearch"),L(e)}function I(e){D[e]=function(t){x(t,e)},z["Ctrl-"+e]=function(t){x(t,e)},B["Ctrl-"+e]=!0}var N=e.Pos,P=[],R=null,B={"Alt-G":!0,"Ctrl-X":!0,"Ctrl-Q":!0,"Ctrl-U":!0};e.emacs={kill:a,killRegion:b,repeated:m};for(var z=e.keyMap.emacs=e.normalizeKeyMap({"Ctrl-W":function(e){a(e,e.getCursor("start"),e.getCursor("end"))},"Ctrl-K":m(function(e){var t=e.getCursor(),r=e.clipPos(N(t.line)),n=e.getRange(t,r);/\S/.test(n)||(n+="\n",r=N(t.line+1,0)),a(e,t,r,!0,n)}),"Alt-W":function(e){r(e.getSelection()),L(e)},"Ctrl-Y":function(e){var t=e.getCursor();e.replaceRange(i(p(e)),t,t,"paste"),e.setSelection(t,e.getCursor())},"Alt-Y":function(e){e.replaceSelection(o(),"around","paste")},"Ctrl-Space":M,"Ctrl-Shift-2":M,"Ctrl-F":v(l,1),"Ctrl-B":v(l,-1),Right:v(l,1),Left:v(l,-1),"Ctrl-D":function(e){y(e,l,1)},Delete:function(e){b(e)||y(e,l,1)},"Ctrl-H":function(e){y(e,l,-1)},Backspace:function(e){b(e)||y(e,l,-1)},"Alt-F":v(s,1),"Alt-B":v(s,-1),"Alt-D":function(e){y(e,s,1)},"Alt-Backspace":function(e){y(e,s,-1)},"Ctrl-N":v(c,1),"Ctrl-P":v(c,-1),Down:v(c,1),Up:v(c,-1),"Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd",End:"goLineEnd",Home:"goLineStart","Alt-V":v(u,-1),"Ctrl-V":v(u,1),PageUp:v(u,-1),PageDown:v(u,1),"Ctrl-Up":v(f,-1),"Ctrl-Down":v(f,1),"Alt-A":v(d,-1),"Alt-E":v(d,1),"Alt-K":function(e){y(e,d,1)},"Ctrl-Alt-K":function(e){y(e,h,1)},"Ctrl-Alt-Backspace":function(e){y(e,h,-1)},"Ctrl-Alt-F":v(h,1),"Ctrl-Alt-B":v(h,-1),"Shift-Ctrl-Alt-2":function(e){var t=e.getCursor();e.setSelection(g(e,t,h,1),t)},"Ctrl-Alt-T":function(e){var t=h(e,e.getCursor(),-1),r=h(e,t,1),n=h(e,r,1),i=h(e,n,-1);e.replaceRange(e.getRange(i,n)+e.getRange(r,i)+e.getRange(t,r),t,n)},"Ctrl-Alt-U":m(O),"Alt-Space":function(e){for(var t=e.getCursor(),r=t.ch,n=t.ch,i=e.getLine(t.line);r&&/\s/.test(i.charAt(r-1));)--r;for(;n<i.length&&/\s/.test(i.charAt(n));)++n;e.replaceRange(" ",N(t.line,r),N(t.line,n))},"Ctrl-O":m(function(e){e.replaceSelection("\n","start")}),"Ctrl-T":m(function(e){e.execCommand("transposeChars")}),"Alt-C":m(function(e){A(e,function(e){var t=e.search(/\w/);return t==-1?e:e.slice(0,t)+e.charAt(t).toUpperCase()+e.slice(t+1).toLowerCase()})}),"Alt-U":m(function(e){A(e,function(e){return e.toUpperCase()})}),"Alt-L":m(function(e){A(e,function(e){return e.toLowerCase()})}),"Alt-;":"toggleComment","Ctrl-/":m("undo"),"Shift-Ctrl--":m("undo"),"Ctrl-Z":m("undo"),"Cmd-Z":m("undo"),"Shift-Alt-,":"goDocStart","Shift-Alt-.":"goDocEnd","Ctrl-S":"findNext","Ctrl-R":"findPrev","Ctrl-G":E,"Shift-Alt-5":"replace","Alt-/":"autocomplete",Enter:"newlineAndIndent","Ctrl-J":m(function(e){e.replaceSelection("\n","end")}),Tab:"indentAuto","Alt-G G":function(e){var t=p(e,!0);if(null!=t&&t>0)return e.setCursor(t-1);T(e,"Goto line",function(t){var r;t&&!isNaN(r=Number(t))&&r==(0|r)&&r>0&&e.setCursor(r-1)})},"Ctrl-X Tab":function(e){e.indentSelection(p(e,!0)||e.getOption("indentUnit"))},"Ctrl-X Ctrl-X":function(e){e.setSelection(e.getCursor("head"),e.getCursor("anchor"))},"Ctrl-X Ctrl-S":"save","Ctrl-X Ctrl-W":"save","Ctrl-X S":"saveAll","Ctrl-X F":"open","Ctrl-X U":m("undo"),"Ctrl-X K":"close","Ctrl-X Delete":function(e){a(e,e.getCursor(),d(e,e.getCursor(),1),!0)},"Ctrl-X H":"selectAll","Ctrl-Q Tab":m("insertTab"),"Ctrl-U":S}),D={"Ctrl-G":k},W=0;W<10;++W)I(String(W));I("-")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/dialog/dialog"),require("../addon/edit/matchbrackets.js")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/dialog/dialog","../addon/edit/matchbrackets"],e):e(CodeMirror)}(function(e){"use strict";var t=[{keys:"<Left>",type:"keyToKey",toKeys:"h"},{keys:"<Right>",type:"keyToKey",toKeys:"l"},{keys:"<Up>",type:"keyToKey",toKeys:"k"},{keys:"<Down>",type:"keyToKey",toKeys:"j"},{keys:"<Space>",type:"keyToKey",toKeys:"l"},{keys:"<BS>",type:"keyToKey",toKeys:"h",context:"normal"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b",context:"normal"},{keys:"<C-n>",type:"keyToKey",toKeys:"j"},{keys:"<C-p>",type:"keyToKey",toKeys:"k"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"c",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"VdO",context:"visual"},{keys:"<Home>",type:"keyToKey",toKeys:"0"},{keys:"<End>",type:"keyToKey",toKeys:"$"},{keys:"<PageUp>",type:"keyToKey",toKeys:"<C-b>"},{keys:"<PageDown>",type:"keyToKey",toKeys:"<C-f>"},{keys:"<CR>",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"<Ins>",type:"action",action:"toggleOverwrite",context:"insert"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"<C-f>",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"<C-b>",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"<C-d>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"<C-u>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"expandToLine",motionArgs:{linewise:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"<C-w>",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"<C-i>",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"<C-o>",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"<C-e>",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"<C-y>",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},
11
- context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"<C-v>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"<C-q>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r<character>",type:"action",action:"replace",isEdit:!0},{keys:"@<character>",type:"action",action:"replayMacro"},{keys:"q<character>",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0}},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"<C-r>",type:"action",action:"redo"},{keys:"m<character>",type:"action",action:"setMark"},{keys:'"<character>',type:"action",action:"setRegister"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z<CR>",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"<C-a>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"<C-x>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"<C-t>",type:"action",action:"indent",actionArgs:{indentRight:!0},context:"insert"},{keys:"<C-d>",type:"action",action:"indent",actionArgs:{indentRight:!1},context:"insert"},{keys:"a<character>",type:"motion",motion:"textObjectManipulation"},{keys:"i<character>",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],r=[{name:"colorscheme",shortName:"colo"},{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"unmap"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"se"},{name:"set",shortName:"se"},{name:"setlocal",shortName:"setl"},{name:"setglobal",shortName:"setg"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"nohlsearch",shortName:"noh"},{name:"yank",shortName:"y"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"global",shortName:"g"}],n=e.Pos;e.Vim=function(){function i(t){t.setOption("disableInput",!0),t.setOption("showCursorWhenSelecting",!1),e.signal(t,"vim-mode-change",{mode:"normal"}),t.on("cursorActivity",tt),C(t),e.on(t.getInputField(),"paste",u(t))}function o(t){t.setOption("disableInput",!1),t.off("cursorActivity",tt),e.off(t.getInputField(),"paste",u(t)),t.state.vim=null}function a(t,r){this==e.keyMap.vim&&e.rmClass(t.getWrapperElement(),"cm-fat-cursor"),r&&r.attach==l||o(t,!1)}function l(t,r){this==e.keyMap.vim&&e.addClass(t.getWrapperElement(),"cm-fat-cursor"),r&&r.attach==l||i(t)}function s(t,r){if(r){if(this[t])return this[t];var n=c(t);if(!n)return!1;var i=e.Vim.findKey(r,n);return"function"==typeof i&&e.signal(r,"vim-keypress",n),i}}function c(e){if("'"==e.charAt(0))return e.charAt(1);var t=e.split(/-(?!$)/),r=t[t.length-1];if(1==t.length&&1==t[0].length)return!1;if(2==t.length&&"Shift"==t[0]&&1==r.length)return!1;for(var n=!1,i=0;i<t.length;i++){var o=t[i];o in st?t[i]=st[o]:n=!0,o in ct&&(t[i]=ct[o])}return!!n&&(g(r)&&(t[t.length-1]=r.toLowerCase()),"<"+t.join("-")+">")}function u(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(z(e.getCursor(),0,1)),Lt.enterInsertMode(e,{},t))}),t.onPasteFn}function f(e,t){for(var r=[],n=e;n<e+t;n++)r.push(String.fromCharCode(n));return r}function d(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function h(e){return/^[a-z]$/.test(e)}function p(e){return"()[]{}".indexOf(e)!=-1}function m(e){return ut.test(e)}function g(e){return/^[A-Z]$/.test(e)}function v(e){return/^\s*$/.test(e)}function y(e,t){for(var r=0;r<t.length;r++)if(t[r]==e)return!0;return!1}function b(e,t,r,n,i){if(void 0===t&&!i)throw Error("defaultValue is required unless callback is provided");if(r||(r="string"),yt[e]={type:r,defaultValue:t,callback:i},n)for(var o=0;o<n.length;o++)yt[n[o]]=yt[e];t&&x(e,t)}function x(e,t,r,n){var i=yt[e];n=n||{};var o=n.scope;if(!i)throw Error("Unknown option: "+e);if("boolean"==i.type){if(t&&t!==!0)throw Error("Invalid argument: "+e+"="+t);t!==!1&&(t=!0)}i.callback?("local"!==o&&i.callback(t,void 0),"global"!==o&&r&&i.callback(t,r)):("local"!==o&&(i.value="boolean"==i.type?!!t:t),"global"!==o&&r&&(r.state.vim.options[e]={value:t}))}function w(e,t,r){var n=yt[e];r=r||{};var i=r.scope;if(!n)throw Error("Unknown option: "+e);{if(!n.callback){var o="global"!==i&&t&&t.state.vim.options[e];return(o||"local"!==i&&n||{}).value}var o=t&&n.callback(void 0,t);if("global"!==i&&void 0!==o)return o;if("local"!==i)return n.callback()}}function k(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=xt()}function C(e){return e.state.vim||(e.state.vim={inputState:new _,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),e.state.vim}function S(){wt={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:bt(),macroModeState:new k,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new A({}),searchHistoryController:new O({}),exCommandHistoryController:new O({})};for(var e in yt){var t=yt[e];t.value=t.defaultValue}}function _(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function M(t,r){t.state.vim.inputState=new _,e.signal(t,"vim-command-done",r)}function L(e,t,r){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!r}function T(e,t){var r=wt.registerController.registers[e];if(!e||1!=e.length)throw Error("Register name must be 1 character");if(r[e])throw Error("Register already defined "+e);r[e]=t,vt.push(e)}function A(e){this.registers=e,this.unnamedRegister=e['"']=new L,e["."]=new L,e[":"]=new L,e["/"]=new L}function O(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}function E(e,t){_t[e]=t}function I(e,t){for(var r=[],n=0;n<t;n++)r.push(e);return r}function N(e,t){Mt[e]=t}function P(e,t){Lt[e]=t}function R(e,t,r){var i=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),o=X(e,i)-1;o=r?o+1:o;var a=Math.min(Math.max(0,t.ch),o);return n(i,a)}function B(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}function z(e,t,r){return"object"==typeof t&&(r=t.ch,t=t.line),n(e.line+t,e.ch+r)}function D(e,t){return{line:t.line-e.line,ch:t.line-e.line}}function W(e,t,r,n){for(var i,o=[],a=[],l=0;l<t.length;l++){var s=t[l];"insert"==r&&"insert"!=s.context||s.context&&s.context!=r||n.operator&&"action"==s.type||!(i=q(e,s.keys))||("partial"==i&&o.push(s),"full"==i&&a.push(s))}return{partial:o.length&&o,full:a.length&&a}}function q(e,t){if("<character>"==t.slice(-11)){var r=t.length-11,n=e.slice(0,r),i=t.slice(0,r);return n==i&&e.length>r?"full":0==i.indexOf(n)&&"partial"}return e==t?"full":0==t.indexOf(e)&&"partial"}function F(e){var t=/^.*(<[\w\-]+>)$/.exec(e),r=t?t[1]:e.slice(-1);if(r.length>1)switch(r){case"<CR>":r="\n";break;case"<Space>":r=" "}return r}function H(e,t,r){return function(){for(var n=0;n<r;n++)t(e)}}function j(e){return n(e.line,e.ch)}function K(e,t){return e.ch==t.ch&&e.line==t.line}function U(e,t){return e.line<t.line||e.line==t.line&&e.ch<t.ch}function V(e,t){return arguments.length>2&&(t=V.apply(void 0,Array.prototype.slice.call(arguments,1))),U(e,t)?e:t}function $(e,t){return arguments.length>2&&(t=$.apply(void 0,Array.prototype.slice.call(arguments,1))),U(e,t)?t:e}function G(e,t,r){var n=U(e,t),i=U(t,r);return n&&i}function X(e,t){return e.getLine(t).length}function Y(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Q(e){return e.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}function J(e,t,r){var i=X(e,t),o=new Array(r-i+1).join(" ");e.setCursor(n(t,i)),e.replaceRange(o,e.getCursor())}function Z(e,t){var r=[],i=e.listSelections(),o=j(e.clipPos(t)),a=!K(t,o),l=e.getCursor("head"),s=te(i,l),c=K(i[s].head,i[s].anchor),u=i.length-1,f=u-s>s?u:0,d=i[f].anchor,h=Math.min(d.line,o.line),p=Math.max(d.line,o.line),m=d.ch,g=o.ch,v=i[f].head.ch-m,y=g-m;v>0&&y<=0?(m++,a||g--):v<0&&y>=0?(m--,c||g++):v<0&&y==-1&&(m--,g++);for(var b=h;b<=p;b++){var x={anchor:new n(b,m),head:new n(b,g)};r.push(x)}return s=o.line==p?r.length-1:0,e.setSelections(r),t.ch=g,d.ch=m,d}function ee(e,t,r){for(var n=[],i=0;i<r;i++){var o=z(t,i,0);n.push({anchor:o,head:o})}e.setSelections(n,0)}function te(e,t,r){for(var n=0;n<e.length;n++){var i="head"!=r&&K(e[n].anchor,t),o="anchor"!=r&&K(e[n].head,t);if(i||o)return n}return-1}function re(e,t){var r=t.lastSelection;return t.visualMode?function(){var t=e.listSelections(),r=t[0],n=t[t.length-1];return[U(r.anchor,r.head)?r.anchor:r.head,U(n.anchor,n.head)?n.head:n.anchor]}():function(){var t=e.getCursor(),i=e.getCursor(),o=r.visualBlock;if(o){var a=o.width,l=o.height;i=n(t.line+l,t.ch+a);for(var s=[],c=t.line;c<i.line;c++){var u=n(c,t.ch),f=n(c,i.ch),d={anchor:u,head:f};s.push(d)}e.setSelections(s)}else{var h=r.anchorMark.find(),p=r.headMark.find(),m=p.line-h.line,g=p.ch-h.ch;i={line:i.line+m,ch:m?i.ch:g+i.ch},r.visualLine&&(t=n(t.line,0),i=n(i.line,X(e,i.line))),e.setSelection(t,i)}return[t,i]}()}function ne(e,t){var r=t.sel.anchor,n=t.sel.head;t.lastPastedText&&(n=e.posFromIndex(e.indexFromPos(r)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(r),headMark:e.setBookmark(n),anchor:j(r),head:j(n),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function ie(e,t,r){var i,o=e.state.vim.sel,a=o.head,l=o.anchor;return U(r,t)&&(i=r,r=t,t=i),U(a,l)?(a=V(t,a),l=$(l,r)):(l=V(t,l),a=$(a,r),a=z(a,0,-1),a.ch==-1&&a.line!=e.firstLine()&&(a=n(a.line-1,X(e,a.line-1)))),[l,a]}function oe(e,t,r){var n=e.state.vim;t=t||n.sel;var r=r||n.visualLine?"line":n.visualBlock?"block":"char",i=ae(e,t,r);e.setSelections(i.ranges,i.primary),rt(e)}function ae(e,t,r,i){var o=j(t.head),a=j(t.anchor);if("char"==r){var l=i||U(t.head,t.anchor)?0:1,s=U(t.head,t.anchor)?1:0;return o=z(t.head,0,l),a=z(t.anchor,0,s),{ranges:[{anchor:a,head:o}],primary:0}}if("line"==r){if(U(t.head,t.anchor))o.ch=0,a.ch=X(e,a.line);else{a.ch=0;var c=e.lastLine();o.line>c&&(o.line=c),o.ch=X(e,o.line)}return{ranges:[{anchor:a,head:o}],primary:0}}if("block"==r){for(var u=Math.min(a.line,o.line),f=Math.min(a.ch,o.ch),d=Math.max(a.line,o.line),h=Math.max(a.ch,o.ch)+1,p=d-u+1,m=o.line==u?0:p-1,g=[],v=0;v<p;v++)g.push({anchor:n(u+v,f),head:n(u+v,h)});return{ranges:g,primary:m}}}function le(e){var t=e.getCursor("head");return 1==e.getSelection().length&&(t=V(t,e.getCursor("anchor"))),t}function se(t,r){var n=t.state.vim;r!==!1&&t.setCursor(R(t,n.sel.head)),ne(t,n),n.visualMode=!1,n.visualLine=!1,n.visualBlock=!1,e.signal(t,"vim-mode-change",{mode:"normal"}),n.fakeCursor&&n.fakeCursor.clear()}function ce(e,t,r){var n=e.getRange(t,r);if(/\n\s*$/.test(n)){var i=n.split("\n");i.pop();for(var o,o=i.pop();i.length>0&&o&&v(o);o=i.pop())r.line--,r.ch=0;o?(r.line--,r.ch=X(e,r.line)):r.ch=0}}function ue(e,t,r){t.ch=0,r.ch=0,r.line++}function fe(e){if(!e)return 0;var t=e.search(/\S/);return t==-1?e.length:t}function de(e,t,r,i,o){for(var a=le(e),l=e.getLine(a.line),s=a.ch,c=o?ft[0]:dt[0];!c(l.charAt(s));)if(++s>=l.length)return null;i?c=dt[0]:(c=ft[0])(l.charAt(s))||(c=ft[1]);for(var u=s,f=s;c(l.charAt(u))&&u<l.length;)u++;for(;c(l.charAt(f))&&f>=0;)f--;if(f++,t){for(var d=u;/\s/.test(l.charAt(u))&&u<l.length;)u++;if(d==u){for(var h=f;/\s/.test(l.charAt(f-1))&&f>0;)f--;f||(f=h)}}return{start:n(a.line,f),end:n(a.line,u)}}function he(e,t,r){K(t,r)||wt.jumpList.add(e,t,r)}function pe(e,t){wt.lastCharacterSearch.increment=e,wt.lastCharacterSearch.forward=t.forward,wt.lastCharacterSearch.selectedCharacter=t.selectedCharacter}function me(e,t,r,i){var o=j(e.getCursor()),a=r?1:-1,l=r?e.lineCount():-1,s=o.ch,c=o.line,u=e.getLine(c),f={lineText:u,nextCh:u.charAt(s),lastCh:null,index:s,symb:i,reverseSymb:(r?{")":"(","}":"{"}:{"(":")","{":"}"})[i],forward:r,depth:0,curMoveThrough:!1},d=Tt[i];if(!d)return o;var h=At[d].init,p=At[d].isComplete;for(h&&h(f);c!==l&&t;){if(f.index+=a,f.nextCh=f.lineText.charAt(f.index),!f.nextCh){if(c+=a,f.lineText=e.getLine(c)||"",a>0)f.index=0;else{var m=f.lineText.length;f.index=m>0?m-1:0}f.nextCh=f.lineText.charAt(f.index)}p(f)&&(o.line=c,o.ch=f.index,t--)}return f.nextCh||f.curMoveThrough?n(c,f.index):o}function ge(e,t,r,n,i){var o=t.line,a=t.ch,l=e.getLine(o),s=r?1:-1,c=n?dt:ft;if(i&&""==l){if(o+=s,l=e.getLine(o),!d(e,o))return null;a=r?0:l.length}for(;;){if(i&&""==l)return{from:0,to:0,line:o};for(var u=s>0?l.length:-1,f=u,h=u;a!=u;){for(var p=!1,m=0;m<c.length&&!p;++m)if(c[m](l.charAt(a))){for(f=a;a!=u&&c[m](l.charAt(a));)a+=s;if(h=a,p=f!=h,f==t.ch&&o==t.line&&h==f+s)continue;return{from:Math.min(f,h+1),to:Math.max(f,h),line:o}}p||(a+=s)}if(o+=s,!d(e,o))return null;l=e.getLine(o),a=s>0?0:l.length}}function ve(e,t,r,i,o,a){var l=j(t),s=[];(i&&!o||!i&&o)&&r++;for(var c=!(i&&o),u=0;u<r;u++){var f=ge(e,t,i,a,c);if(!f){var d=X(e,e.lastLine());s.push(i?{line:e.lastLine(),from:d,to:d}:{line:0,from:0,to:0});break}s.push(f),t=n(f.line,i?f.to-1:f.from)}var h=s.length!=r,p=s[0],m=s.pop();return i&&!o?(h||p.from==l.ch&&p.line==l.line||(m=s.pop()),n(m.line,m.from)):i&&o?n(m.line,m.to-1):!i&&o?(h||p.to==l.ch&&p.line==l.line||(m=s.pop()),n(m.line,m.to)):n(m.line,m.from)}function ye(e,t,r,i){for(var o,a=e.getCursor(),l=a.ch,s=0;s<t;s++){if((o=we(l,e.getLine(a.line),i,r,!0))==-1)return null;l=o}return n(e.getCursor().line,o)}function be(e,t){var r=e.getCursor().line;return R(e,n(r,t-1))}function xe(e,t,r,n){y(r,gt)&&(t.marks[r]&&t.marks[r].clear(),t.marks[r]=e.setBookmark(n))}function we(e,t,r,n,i){var o;return n?(o=t.indexOf(r,e+1))==-1||i||(o-=1):(o=t.lastIndexOf(r,e-1))==-1||i||(o+=1),o}function ke(e,t,r,i,o){function a(t){return!e.getLine(t)}function l(e,t,r){return r?a(e)!=a(e+t):!a(e)&&a(e+t)}var s,c,u=t.line,f=e.firstLine(),d=e.lastLine(),h=u;if(i){for(;f<=h&&h<=d&&r>0;)l(h,i)&&r--,h+=i;return new n(h,0)}var p=e.state.vim;if(p.visualLine&&l(u,1,!0)){var m=p.sel.anchor;l(m.line,-1,!0)&&(o&&m.line==u||(u+=1))}var g=a(u);for(h=u;h<=d&&r;h++)l(h,1,!0)&&(o&&a(h)==g||r--);for(c=new n(h,0),h>d&&!g?g=!0:o=!1,h=u;h>f&&(o&&a(h)!=g&&h!=u||!l(h,-1,!0));h--);return s=new n(h,0),{start:s,end:c}}function Ce(e,t,r,i){var o,a,l=t,s={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[r],c={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{"}[r],u=e.getLine(l.line).charAt(l.ch),f=u===c?1:0;if(o=e.scanForBracket(n(l.line,l.ch+f),-1,null,{bracketRegex:s}),a=e.scanForBracket(n(l.line,l.ch+f),1,null,{bracketRegex:s}),!o||!a)return{start:l,end:l};if(o=o.pos,a=a.pos,o.line==a.line&&o.ch>a.ch||o.line>a.line){var d=o;o=a,a=d}return i?a.ch+=1:o.ch+=1,{start:o,end:a}}function Se(e,t,r,i){var o,a,l,s,c=j(t),u=e.getLine(c.line),f=u.split(""),d=f.indexOf(r);if(c.ch<d?c.ch=d:d<c.ch&&f[c.ch]==r&&(a=c.ch,--c.ch),f[c.ch]!=r||a)for(l=c.ch;l>-1&&!o;l--)f[l]==r&&(o=l+1);else o=c.ch+1;if(o&&!a)for(l=o,s=f.length;l<s&&!a;l++)f[l]==r&&(a=l);return o&&a?(i&&(--o,++a),{start:n(c.line,o),end:n(c.line,a)}):{start:c,end:c}}function _e(){}function Me(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new _e)}function Le(e,t,r,n,i){e.openDialog?e.openDialog(t,n,{bottom:!0,value:i.value,onKeyDown:i.onKeyDown,onKeyUp:i.onKeyUp,selectValueOnOpen:!1}):n(prompt(r,""))}function Te(e){var t=Ae(e)||[];if(!t.length)return[];var r=[];if(0===t[0]){for(var n=0;n<t.length;n++)"number"==typeof t[n]&&r.push(e.substring(t[n]+1,t[n+1]));return r}}function Ae(e){for(var t=!1,r=[],n=0;n<e.length;n++){var i=e.charAt(n);t||"/"!=i||r.push(n),t=!t&&"\\"==i}return r}function Oe(e){for(var t="|(){",r="}",n=!1,i=[],o=-1;o<e.length;o++){var a=e.charAt(o)||"",l=e.charAt(o+1)||"",s=l&&t.indexOf(l)!=-1;n?("\\"===a&&s||i.push(a),n=!1):"\\"===a?(n=!0,l&&r.indexOf(l)!=-1&&(s=!0),s&&"\\"!==l||i.push(a)):(i.push(a),s&&"\\"!==l&&i.push("\\"))}return i.join("")}function Ee(e){for(var t=!1,r=[],n=-1;n<e.length;n++){var i=e.charAt(n)||"",o=e.charAt(n+1)||"";Ot[i+o]?(r.push(Ot[i+o]),n++):t?(r.push(i),t=!1):"\\"===i?(t=!0,m(o)||"$"===o?r.push("$"):"/"!==o&&"\\"!==o&&r.push("\\")):("$"===i&&r.push("$"),r.push(i),"/"===o&&r.push("\\"))}return r.join("")}function Ie(t){for(var r=new e.StringStream(t),n=[];!r.eol();){for(;r.peek()&&"\\"!=r.peek();)n.push(r.next());var i=!1;for(var o in Et)if(r.match(o,!0)){i=!0,n.push(Et[o]);break}i||n.push(r.next())}return n.join("")}function Ne(e,t,r){if(wt.registerController.getRegister("/").setText(e),e instanceof RegExp)return e;var n,i,o=Ae(e);if(o.length){n=e.substring(0,o[0]);i=e.substring(o[0]).indexOf("i")!=-1}else n=e;return n?(w("pcre")||(n=Oe(n)),r&&(t=/^[^A-Z]*$/.test(n)),new RegExp(n,t||i?"i":void 0)):null}function Pe(e,t){e.openNotification?e.openNotification('<span style="color: red">'+t+"</span>",{bottom:!0,duration:5e3}):alert(t)}function Re(e,t){var r='<span style="font-family: monospace; white-space: pre">'+(e||"")+'<input type="text"></span>';return t&&(r+=' <span style="color: #888">'+t+"</span>"),r}function Be(e,t){var r=(t.prefix||"")+" "+(t.desc||"");Le(e,Re(t.prefix,t.desc),r,t.onClose,t)}function ze(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var r=["global","multiline","ignoreCase","source"],n=0;n<r.length;n++){var i=r[n];if(e[i]!==t[i])return!1}return!0}return!1}function De(e,t,r,n){if(t){var i=Me(e),o=Ne(t,!!r,!!n);if(o)return qe(e,o),ze(o,i.getQuery())?o:(i.setQuery(o),o)}}function We(e){if("^"==e.source.charAt(0))var t=!0;return{token:function(r){if(t&&!r.sol())return void r.skipToEnd();var n=r.match(e,!1);if(n)return 0==n[0].length?(r.next(),"searching"):r.sol()||(r.backUp(1),e.exec(r.next()+n[0]))?(r.match(e),"searching"):(r.next(),null);for(;!r.eol()&&(r.next(),!r.match(e,!1)););},query:e}}function qe(e,t){var r=Me(e),n=r.getOverlay();n&&t==n.query||(n&&e.removeOverlay(n),n=We(t),e.addOverlay(n),e.showMatchesOnScrollbar&&(r.getScrollbarAnnotate()&&r.getScrollbarAnnotate().clear(),r.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),r.setOverlay(n))}function Fe(e,t,r,i){return void 0===i&&(i=1),e.operation(function(){for(var o=e.getCursor(),a=e.getSearchCursor(r,o),l=0;l<i;l++){var s=a.find(t);if(0==l&&s&&K(a.from(),o)&&(s=a.find(t)),!s&&(a=e.getSearchCursor(r,t?n(e.lastLine()):n(e.firstLine(),0)),!a.find(t)))return}return a.from()})}function He(e){var t=Me(e);e.removeOverlay(Me(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function je(e,t,r){return"number"!=typeof e&&(e=e.line),t instanceof Array?y(e,t):r?e>=t&&e<=r:e==t}function Ke(e){var t=e.getScrollInfo(),r=e.coordsChar({left:0,top:6+t.top},"local"),n=t.clientHeight-10+t.top,i=e.coordsChar({left:0,top:n},"local");return{top:r.line,bottom:i.line}}function Ue(e,t,r){if("'"==r){var n=e.doc.history.done,i=n[n.length-2];return i&&i.ranges&&i.ranges[0].head}var o=t.marks[r];return o&&o.find()}function Ve(t,r,n,i,o,a,l,s,c){function u(){t.operation(function(){for(;!m;)f(),d();h()})}function f(){var e=t.getRange(a.from(),a.to()),r=e.replace(l,s);a.replace(r)}function d(){for(;a.findNext()&&je(a.from(),i,o);)if(n||!g||a.from().line!=g.line)return t.scrollIntoView(a.from(),30),t.setSelection(a.from(),a.to()),g=a.from(),void(m=!1);m=!0}function h(e){if(e&&e(),t.focus(),g){t.setCursor(g);var r=t.state.vim;r.exMode=!1,r.lastHPos=r.lastHSPos=g.ch}c&&c()}function p(r,n,i){switch(e.e_stop(r),e.keyName(r)){case"Y":f(),d();break;case"N":d();break;case"A":var o=c;c=void 0,t.operation(u),c=o;break;case"L":f();case"Q":case"Esc":case"Ctrl-C":case"Ctrl-[":h(i)}return m&&h(i),!0}t.state.vim.exMode=!0;var m=!1,g=a.from();return d(),m?void Pe(t,"No matches for "+l.source):r?void Be(t,{prefix:"replace with <strong>"+s+"</strong> (y/n/a/q/l)",onKeyDown:p}):(u(),void(c&&c()))}function $e(t){var r=t.state.vim,n=wt.macroModeState,i=wt.registerController.getRegister("."),o=n.isPlaying,a=n.lastInsertModeChanges,l=[];if(!o){for(var s=a.inVisualBlock?r.lastSelection.visualBlock.height:1,c=a.changes,l=[],u=0;u<c.length;)l.push(c[u]),c[u]instanceof it?u++:u+=s;a.changes=l,t.off("change",et),e.off(t.getInputField(),"keydown",ot)}!o&&r.insertModeRepeat>1&&(at(t,r,r.insertModeRepeat-1,!0),r.lastEditInputState.repeatOverride=r.insertModeRepeat),delete r.insertModeRepeat,r.insertMode=!1,t.setCursor(t.getCursor().line,t.getCursor().ch-1),t.setOption("keyMap","vim"),t.setOption("disableInput",!0),t.toggleOverwrite(!1),i.setText(a.changes.join("")),e.signal(t,"vim-mode-change",{mode:"normal"}),n.isRecording&&Je(n)}function Ge(e){t.unshift(e)}function Xe(e,t,r,n,i){var o={keys:e,type:t};o[t]=r,o[t+"Args"]=n;for(var a in i)o[a]=i[a];Ge(o)}function Ye(t,r,n,i){var o=wt.registerController.getRegister(i);if(":"==i)return o.keyBuffer[0]&&Rt.processCommand(t,o.keyBuffer[0]),void(n.isPlaying=!1);var a=o.keyBuffer,l=0;n.isPlaying=!0,n.replaySearchQueries=o.searchQueries.slice(0);for(var s=0;s<a.length;s++)for(var c,u,f=a[s];f;)if(c=/<\w+-.+?>|<\w+>|./.exec(f),u=c[0],f=f.substring(c.index+u.length),e.Vim.handleKey(t,u,"macro"),r.insertMode){var d=o.insertModeChanges[l++].changes;wt.macroModeState.lastInsertModeChanges.changes=d,lt(t,d,1),$e(t)}n.isPlaying=!1}function Qe(e,t){if(!e.isPlaying){var r=e.latestRegister,n=wt.registerController.getRegister(r);n&&n.pushText(t)}}function Je(e){if(!e.isPlaying){var t=e.latestRegister,r=wt.registerController.getRegister(t);r&&r.pushInsertModeChanges&&r.pushInsertModeChanges(e.lastInsertModeChanges)}}function Ze(e,t){if(!e.isPlaying){var r=e.latestRegister,n=wt.registerController.getRegister(r);n&&n.pushSearchQuery&&n.pushSearchQuery(t)}}function et(e,t){var r=wt.macroModeState,n=r.lastInsertModeChanges;if(!r.isPlaying)for(;t;){if(n.expectCursorActivityForChange=!0,"+input"==t.origin||"paste"==t.origin||void 0===t.origin){var i=t.text.join("\n");n.maybeReset&&(n.changes=[],n.maybeReset=!1),n.changes.push(i)}t=t.next}}function tt(e){var t=e.state.vim;if(t.insertMode){var r=wt.macroModeState;if(r.isPlaying)return;var n=r.lastInsertModeChanges;n.expectCursorActivityForChange?n.expectCursorActivityForChange=!1:n.maybeReset=!0}else e.curOp.isVimOp||nt(e,t);t.visualMode&&rt(e)}function rt(e){var t=e.state.vim,r=R(e,j(t.sel.head)),n=z(r,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(r,n,{className:"cm-animate-fat-cursor"})}function nt(t,r){var n=t.getCursor("anchor"),i=t.getCursor("head");if(r.visualMode&&!t.somethingSelected()?se(t,!1):r.visualMode||r.insertMode||!t.somethingSelected()||(r.visualMode=!0,r.visualLine=!1,e.signal(t,"vim-mode-change",{mode:"visual"})),r.visualMode){var o=U(i,n)?0:-1,a=U(i,n)?-1:0;i=z(i,0,o),n=z(n,0,a),r.sel={anchor:n,head:i},xe(t,r,"<",V(i,n)),xe(t,r,">",$(i,n))}else r.insertMode||(r.lastHPos=t.getCursor().ch)}function it(e){this.keyName=e}function ot(t){function r(){return i.maybeReset&&(i.changes=[],i.maybeReset=!1),i.changes.push(new it(o)),!0}var n=wt.macroModeState,i=n.lastInsertModeChanges,o=e.keyName(t);o&&(o.indexOf("Delete")==-1&&o.indexOf("Backspace")==-1||e.lookupKey(o,"vim-insert",r))}function at(e,t,r,n){function i(){l?St.processAction(e,t,t.lastEditActionCommand):St.evalInput(e,t)}function o(r){if(a.lastInsertModeChanges.changes.length>0){r=t.lastEditActionCommand?r:1;var n=a.lastInsertModeChanges;lt(e,n.changes,r)}}var a=wt.macroModeState;a.isPlaying=!0;var l=!!t.lastEditActionCommand,s=t.inputState;if(t.inputState=t.lastEditInputState,l&&t.lastEditActionCommand.interlaceInsertRepeat)for(var c=0;c<r;c++)i(),o(1);else n||i(),o(r);t.inputState=s,t.insertMode&&!n&&$e(e),a.isPlaying=!1}function lt(t,r,n){function i(r){return"string"==typeof r?e.commands[r](t):r(t),!0}var o=t.getCursor("head"),a=wt.macroModeState.lastInsertModeChanges.inVisualBlock;if(a){var l=t.state.vim,s=l.lastSelection,c=D(s.anchor,s.head);ee(t,o,c.line+1),n=t.listSelections().length,t.setCursor(o)}for(var u=0;u<n;u++){a&&t.setCursor(z(o,u,0));for(var f=0;f<r.length;f++){var d=r[f];if(d instanceof it)e.lookupKey(d.keyName,"vim-insert",i);else{var h=t.getCursor();t.replaceRange(d,h,h)}}}a&&t.setCursor(z(o,0,1))}e.defineOption("vimMode",!1,function(t,r,n){r&&"vim"!=t.getOption("keyMap")?t.setOption("keyMap","vim"):!r&&n!=e.Init&&/^vim/.test(t.getOption("keyMap"))&&t.setOption("keyMap","default")});var st={Shift:"S",Ctrl:"C",Alt:"A",Cmd:"D",Mod:"A"},ct={Enter:"CR",Backspace:"BS",Delete:"Del",Insert:"Ins"},ut=/[\d]/,ft=[e.isWordChar,function(t){return t&&!e.isWordChar(t)&&!/\s/.test(t)}],dt=[function(e){return/\S/.test(e)}],ht=f(65,26),pt=f(97,26),mt=f(48,10),gt=[].concat(ht,pt,mt,["<",">"]),vt=[].concat(ht,pt,mt,["-",'"',".",":","/"]),yt={};b("filetype",void 0,"string",["ft"],function(e,t){if(void 0!==t){if(void 0===e){var r=t.getOption("mode");return"null"==r?"":r}var r=""==e?"null":e;t.setOption("mode",r)}});var bt=function(){function e(e,t,l){function s(t){var i=++n%r,o=a[i];o&&o.clear(),a[i]=e.setBookmark(t)}var c=n%r,u=a[c];if(u){var f=u.find();f&&!K(f,t)&&s(t)}else s(t);s(l),i=n,(o=n-r+1)<0&&(o=0)}function t(e,t){n+=t,n>i?n=i:n<o&&(n=o);var l=a[(r+n)%r];if(l&&!l.find()){var s,c=t>0?1:-1,u=e.getCursor();do{if(n+=c,(l=a[(r+n)%r])&&(s=l.find())&&!K(u,s))break}while(n<i&&n>o)}return l}var r=100,n=-1,i=0,o=0,a=new Array(r);return{cachedCursor:void 0,add:e,move:t}},xt=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};k.prototype={exitMacroRecordMode:function(){var e=wt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var r=wt.registerController.getRegister(t);r&&(r.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog("(recording)["+t+"]",null,{bottom:!0})),this.isRecording=!0)}};var wt,kt,Ct={buildKeyMap:function(){},getRegisterController:function(){return wt.registerController},resetVimGlobalState_:S,getVimGlobalState_:function(){return wt},maybeInitVimState_:C,suppressErrorLogging:!1,InsertModeKey:it,map:function(e,t,r){Rt.map(e,t,r)},unmap:function(e,t){Rt.unmap(e,t)},setOption:x,getOption:w,defineOption:b,defineEx:function(e,t,r){if(t){if(0!==e.indexOf(t))throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered')}else t=e;Pt[e]=r,Rt.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,r){var n=this.findKey(e,t,r);if("function"==typeof n)return n()},findKey:function(r,n,i){function o(){var e=wt.macroModeState;if(e.isRecording){if("q"==n)return e.exitMacroRecordMode(),M(r),!0;"mapping"!=i&&Qe(e,n)}}function a(){if("<Esc>"==n)return M(r),c.visualMode?se(r):c.insertMode&&$e(r),!0}function l(t){for(var i;t;)i=/<\w+-.+?>|<\w+>|./.exec(t),n=i[0],t=t.substring(i.index+n.length),e.Vim.handleKey(r,n,"mapping")}var s,c=C(r);return s=c.insertMode?function(){if(a())return!0;for(var e=c.inputState.keyBuffer=c.inputState.keyBuffer+n,i=1==n.length,o=St.matchCommand(e,t,c.inputState,"insert");e.length>1&&"full"!=o.type;){var e=c.inputState.keyBuffer=e.slice(1),l=St.matchCommand(e,t,c.inputState,"insert");"none"!=l.type&&(o=l)}if("none"==o.type)return M(r),!1;if("partial"==o.type)return kt&&window.clearTimeout(kt),kt=window.setTimeout(function(){c.insertMode&&c.inputState.keyBuffer&&M(r)},w("insertModeEscKeysTimeout")),!i;if(kt&&window.clearTimeout(kt),i){for(var s=r.listSelections(),u=0;u<s.length;u++){var f=s[u].head;r.replaceRange("",z(f,0,-(e.length-1)),f,"+input")}wt.macroModeState.lastInsertModeChanges.changes.pop()}return M(r),o.command}():function(){if(o()||a())return!0;var e=c.inputState.keyBuffer=c.inputState.keyBuffer+n;if(/^[1-9]\d*$/.test(e))return!0;var i=/^(\d*)(.*)$/.exec(e);if(!i)return M(r),!1;var l=c.visualMode?"visual":"normal",s=St.matchCommand(i[2]||i[1],t,c.inputState,l);if("none"==s.type)return M(r),!1;if("partial"==s.type)return!0;c.inputState.keyBuffer="";var i=/^(\d*)(.*)$/.exec(e);return i[1]&&"0"!=i[1]&&c.inputState.pushRepeatDigit(i[1]),s.command}(),s===!1?void 0:s===!0?function(){return!0}:function(){return r.operation(function(){r.curOp.isVimOp=!0;try{"keyToKey"==s.type?l(s.toKeys):St.processCommand(r,c,s)}catch(t){throw r.state.vim=void 0,C(r),e.Vim.suppressErrorLogging||console.log(t),t}return!0})}},handleEx:function(e,t){Rt.processCommand(e,t)},defineMotion:E,defineAction:P,defineOperator:N,mapCommand:Xe,_mapCommand:Ge,defineRegister:T,exitVisualMode:se,exitInsertMode:$e};_.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},_.prototype.getRepeat=function(){var e=0;return(this.prefixRepeat.length>0||this.motionRepeat.length>0)&&(e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(""),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(""),10))),e},L.prototype={setText:function(e,t,r){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!r},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push("\n"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(xt(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}},A.prototype={pushText:function(e,t,r,n,i){n&&"\n"==r.charAt(0)&&(r=r.slice(1)+"\n"),n&&"\n"!==r.charAt(r.length-1)&&(r+="\n");var o=this.isValidRegister(e)?this.getRegister(e):null;if(!o){switch(t){case"yank":
12
- this.registers[0]=new L(r,n,i);break;case"delete":case"change":r.indexOf("\n")==-1?this.registers["-"]=new L(r,n):(this.shiftNumericRegisters_(),this.registers[1]=new L(r,n))}return void this.unnamedRegister.setText(r,n,i)}g(e)?o.pushText(r,n):o.setText(r,n,i),this.unnamedRegister.setText(o.toString(),n)},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new L),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&y(e,vt)},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(""+(e-1))}},O.prototype={nextMatch:function(e,t){var r=this.historyBuffer,n=t?-1:1;null===this.initialPrefix&&(this.initialPrefix=e);for(var i=this.iterator+n;t?i>=0:i<r.length;i+=n)for(var o=r[i],a=0;a<=o.length;a++)if(this.initialPrefix==o.substring(0,a))return this.iterator=i,o;return i>=r.length?(this.iterator=r.length,this.initialPrefix):i<0?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var St={matchCommand:function(e,t,r,n){var i=W(e,t,n,r);if(!i.full&&!i.partial)return{type:"none"};if(!i.full&&i.partial)return{type:"partial"};for(var o,a=0;a<i.full.length;a++){var l=i.full[a];o||(o=l)}return"<character>"==o.keys.slice(-11)&&(r.selectedCharacter=F(e)),{type:"full",command:o}},processCommand:function(e,t,r){switch(t.inputState.repeatOverride=r.repeatOverride,r.type){case"motion":this.processMotion(e,t,r);break;case"operator":this.processOperator(e,t,r);break;case"operatorMotion":this.processOperatorMotion(e,t,r);break;case"action":this.processAction(e,t,r);break;case"search":this.processSearch(e,t,r);break;case"ex":case"keyToEx":this.processEx(e,t,r)}},processMotion:function(e,t,r){t.inputState.motion=r.motion,t.inputState.motionArgs=B(r.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,r){var n=t.inputState;if(n.operator){if(n.operator==r.operator)return n.motion="expandToLine",n.motionArgs={linewise:!0},void this.evalInput(e,t);M(e)}n.operator=r.operator,n.operatorArgs=B(r.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,r){var n=t.visualMode,i=B(r.operatorMotionArgs);i&&n&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,r),n||this.processMotion(e,t,r)},processAction:function(e,t,r){var n=t.inputState,i=n.getRepeat(),o=!!i,a=B(r.actionArgs)||{};n.selectedCharacter&&(a.selectedCharacter=n.selectedCharacter),r.operator&&this.processOperator(e,t,r),r.motion&&this.processMotion(e,t,r),(r.motion||r.operator)&&this.evalInput(e,t),a.repeat=i||1,a.repeatIsExplicit=o,a.registerName=n.registerName,M(e),t.lastMotion=null,r.isEdit&&this.recordLastEdit(t,n,r),Lt[r.action](e,a,t)},processSearch:function(t,r,n){function i(e,i,o){wt.searchHistoryController.pushInput(e),wt.searchHistoryController.reset();try{De(t,e,i,o)}catch(r){return Pe(t,"Invalid regex: "+e),void M(t)}St.processMotion(t,r,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}function o(e){t.scrollTo(d.left,d.top),i(e,!0,!0);var r=wt.macroModeState;r.isRecording&&Ze(r,e)}function a(r,n,i){var o,a,l=e.keyName(r);"Up"==l||"Down"==l?(o="Up"==l,a=r.target?r.target.selectionEnd:0,n=wt.searchHistoryController.nextMatch(n,o)||"",i(n),a&&r.target&&(r.target.selectionEnd=r.target.selectionStart=Math.min(a,r.target.value.length))):"Left"!=l&&"Right"!=l&&"Ctrl"!=l&&"Alt"!=l&&"Shift"!=l&&wt.searchHistoryController.reset();var c;try{c=De(t,n,!0,!0)}catch(e){}c?t.scrollIntoView(Fe(t,!s,c),30):(He(t),t.scrollTo(d.left,d.top))}function l(r,n,i){var o=e.keyName(r);"Esc"==o||"Ctrl-C"==o||"Ctrl-["==o||"Backspace"==o&&""==n?(wt.searchHistoryController.pushInput(n),wt.searchHistoryController.reset(),De(t,f),He(t),t.scrollTo(d.left,d.top),e.e_stop(r),M(t),i(),t.focus()):"Up"==o||"Down"==o?e.e_stop(r):"Ctrl-U"==o&&(e.e_stop(r),i(""))}if(t.getSearchCursor){var s=n.searchArgs.forward,c=n.searchArgs.wholeWordOnly;Me(t).setReversed(!s);var u=s?"/":"?",f=Me(t).getQuery(),d=t.getScrollInfo();switch(n.searchArgs.querySrc){case"prompt":var h=wt.macroModeState;if(h.isPlaying){var p=h.replaySearchQueries.shift();i(p,!0,!1)}else Be(t,{onClose:o,prefix:u,desc:It,onKeyUp:a,onKeyDown:l});break;case"wordUnderCursor":var m=de(t,!1,!0,!1,!0),g=!0;if(m||(m=de(t,!1,!0,!1,!1),g=!1),!m)return;var p=t.getLine(m.start.line).substring(m.start.ch,m.end.ch);p=g&&c?"\\b"+p+"\\b":Q(p),wt.jumpList.cachedCursor=t.getCursor(),t.setCursor(m.start),i(p,!0,!1)}}},processEx:function(t,r,n){function i(e){wt.exCommandHistoryController.pushInput(e),wt.exCommandHistoryController.reset(),Rt.processCommand(t,e)}function o(r,n,i){var o,a,l=e.keyName(r);("Esc"==l||"Ctrl-C"==l||"Ctrl-["==l||"Backspace"==l&&""==n)&&(wt.exCommandHistoryController.pushInput(n),wt.exCommandHistoryController.reset(),e.e_stop(r),M(t),i(),t.focus()),"Up"==l||"Down"==l?(e.e_stop(r),o="Up"==l,a=r.target?r.target.selectionEnd:0,n=wt.exCommandHistoryController.nextMatch(n,o)||"",i(n),a&&r.target&&(r.target.selectionEnd=r.target.selectionStart=Math.min(a,r.target.value.length))):"Ctrl-U"==l?(e.e_stop(r),i("")):"Left"!=l&&"Right"!=l&&"Ctrl"!=l&&"Alt"!=l&&"Shift"!=l&&wt.exCommandHistoryController.reset()}"keyToEx"==n.type?Rt.processCommand(t,n.exArgs.input):r.visualMode?Be(t,{onClose:i,prefix:":",value:"'<,'>",onKeyDown:o}):Be(t,{onClose:i,prefix:":",onKeyDown:o})},evalInput:function(e,t){var r,i,o,a=t.inputState,l=a.motion,s=a.motionArgs||{},c=a.operator,u=a.operatorArgs||{},f=a.registerName,d=t.sel,h=j(t.visualMode?R(e,d.head):e.getCursor("head")),p=j(t.visualMode?R(e,d.anchor):e.getCursor("anchor")),m=j(h),g=j(p);if(c&&this.recordLastEdit(t,a),o=void 0!==a.repeatOverride?a.repeatOverride:a.getRepeat(),o>0&&s.explicitRepeat?s.repeatIsExplicit=!0:(s.noRepeat||!s.explicitRepeat&&0===o)&&(o=1,s.repeatIsExplicit=!1),a.selectedCharacter&&(s.selectedCharacter=u.selectedCharacter=a.selectedCharacter),s.repeat=o,M(e),l){var v=_t[l](e,h,s,t);if(t.lastMotion=_t[l],!v)return;if(s.toJumplist){var y=wt.jumpList,b=y.cachedCursor;b?(he(e,b,v),delete y.cachedCursor):he(e,h,v)}v instanceof Array?(i=v[0],r=v[1]):r=v,r||(r=j(h)),t.visualMode?(t.visualBlock&&r.ch===1/0||(r=R(e,r,t.visualBlock)),i&&(i=R(e,i,!0)),i=i||g,d.anchor=i,d.head=r,oe(e),xe(e,t,"<",U(i,r)?i:r),xe(e,t,">",U(i,r)?r:i)):c||(r=R(e,r),e.setCursor(r.line,r.ch))}if(c){if(u.lastSel){i=g;var x=u.lastSel,w=Math.abs(x.head.line-x.anchor.line),k=Math.abs(x.head.ch-x.anchor.ch);r=x.visualLine?n(g.line+w,g.ch):x.visualBlock?n(g.line+w,g.ch+k):x.head.line==x.anchor.line?n(g.line,g.ch+k):n(g.line+w,g.ch),t.visualMode=!0,t.visualLine=x.visualLine,t.visualBlock=x.visualBlock,d=t.sel={anchor:i,head:r},oe(e)}else t.visualMode&&(u.lastSel={anchor:j(d.anchor),head:j(d.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var C,S,_,L,T;if(t.visualMode){if(C=V(d.head,d.anchor),S=$(d.head,d.anchor),_=t.visualLine||u.linewise,L=t.visualBlock?"block":_?"line":"char",T=ae(e,{anchor:C,head:S},L),_){var A=T.ranges;if("block"==L)for(var O=0;O<A.length;O++)A[O].head.ch=X(e,A[O].head.line);else"line"==L&&(A[0].head=n(A[0].head.line+1,0))}}else{if(C=j(i||g),S=j(r||m),U(S,C)){var E=C;C=S,S=E}_=s.linewise||u.linewise,_?ue(e,C,S):s.forward&&ce(e,C,S),L="char";T=ae(e,{anchor:C,head:S},L,!s.inclusive||_)}e.setSelections(T.ranges,T.primary),t.lastMotion=null,u.repeat=o,u.registerName=f,u.linewise=_;var I=Mt[c](e,u,T.ranges,g,r);t.visualMode&&se(e,null!=I),I&&e.setCursor(I)}},recordLastEdit:function(e,t,r){var n=wt.macroModeState;n.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=r,n.lastInsertModeChanges.changes=[],n.lastInsertModeChanges.expectCursorActivityForChange=!1)}},_t={moveToTopLine:function(e,t,r){var i=Ke(e).top+r.repeat-1;return n(i,fe(e.getLine(i)))},moveToMiddleLine:function(e){var t=Ke(e),r=Math.floor(.5*(t.top+t.bottom));return n(r,fe(e.getLine(r)))},moveToBottomLine:function(e,t,r){var i=Ke(e).bottom-r.repeat+1;return n(i,fe(e.getLine(i)))},expandToLine:function(e,t,r){return n(t.line+r.repeat-1,1/0)},findNext:function(e,t,r){var n=Me(e),i=n.getQuery();if(i){var o=!r.forward;return o=n.isReversed()?!o:o,qe(e,i),Fe(e,o,i,r.repeat)}},goToMark:function(e,t,r,n){var i=Ue(e,n,r.selectedCharacter);return i?r.linewise?{line:i.line,ch:fe(e.getLine(i.line))}:i:null},moveToOtherHighlightedEnd:function(e,t,r,i){if(i.visualBlock&&r.sameLine){var o=i.sel;return[R(e,n(o.anchor.line,o.head.ch)),R(e,n(o.head.line,o.anchor.ch))]}return[i.sel.head,i.sel.anchor]},jumpToMark:function(e,t,r,i){for(var o=t,a=0;a<r.repeat;a++){var l=o;for(var s in i.marks)if(h(s)){var c=i.marks[s].find(),u=r.forward?U(c,l):U(l,c);if(!(u||r.linewise&&c.line==l.line)){var f=K(l,o),d=r.forward?G(l,c,o):G(o,c,l);(f||d)&&(o=c)}}}return r.linewise&&(o=n(o.line,fe(e.getLine(o.line)))),o},moveByCharacters:function(e,t,r){var i=t,o=r.repeat,a=r.forward?i.ch+o:i.ch-o;return n(i.line,a)},moveByLines:function(e,t,r,i){var o=t,a=o.ch;switch(i.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:a=i.lastHPos;break;default:i.lastHPos=a}var l=r.repeat+(r.repeatOffset||0),s=r.forward?o.line+l:o.line-l,c=e.firstLine(),u=e.lastLine();return s<c&&o.line==c?this.moveToStartOfLine(e,t,r,i):s>u&&o.line==u?this.moveToEol(e,t,r,i):(r.toFirstChar&&(a=fe(e.getLine(s)),i.lastHPos=a),i.lastHSPos=e.charCoords(n(s,a),"div").left,n(s,a))},moveByDisplayLines:function(e,t,r,i){var o=t;switch(i.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:i.lastHSPos=e.charCoords(o,"div").left}var a=r.repeat,l=e.findPosV(o,r.forward?a:-a,"line",i.lastHSPos);if(l.hitSide)if(r.forward)var s=e.charCoords(l,"div"),c={top:s.top+8,left:i.lastHSPos},l=e.coordsChar(c,"div");else{var u=e.charCoords(n(e.firstLine(),0),"div");u.left=i.lastHSPos,l=e.coordsChar(u,"div")}return i.lastHPos=l.ch,l},moveByPage:function(e,t,r){var n=t,i=r.repeat;return e.findPosV(n,r.forward?i:-i,"page")},moveByParagraph:function(e,t,r){var n=r.forward?1:-1;return ke(e,t,r.repeat,n)},moveByScroll:function(e,t,r,n){var i=e.getScrollInfo(),o=null,a=r.repeat;a||(a=i.clientHeight/(2*e.defaultTextHeight()));var l=e.charCoords(t,"local");r.repeat=a;var o=_t.moveByDisplayLines(e,t,r,n);if(!o)return null;var s=e.charCoords(o,"local");return e.scrollTo(null,i.top+s.top-l.top),o},moveByWords:function(e,t,r){return ve(e,t,r.repeat,!!r.forward,!!r.wordEnd,!!r.bigWord)},moveTillCharacter:function(e,t,r){var n=r.repeat,i=ye(e,n,r.forward,r.selectedCharacter),o=r.forward?-1:1;return pe(o,r),i?(i.ch+=o,i):null},moveToCharacter:function(e,t,r){var n=r.repeat;return pe(0,r),ye(e,n,r.forward,r.selectedCharacter)||t},moveToSymbol:function(e,t,r){return me(e,r.repeat,r.forward,r.selectedCharacter)||t},moveToColumn:function(e,t,r,n){var i=r.repeat;return n.lastHPos=i-1,n.lastHSPos=e.charCoords(t,"div").left,be(e,i)},moveToEol:function(e,t,r,i){var o=t;i.lastHPos=1/0;var a=n(o.line+r.repeat-1,1/0),l=e.clipPos(a);return l.ch--,i.lastHSPos=e.charCoords(l,"div").left,a},moveToFirstNonWhiteSpaceCharacter:function(e,t){var r=t;return n(r.line,fe(e.getLine(r.line)))},moveToMatchedSymbol:function(e,t){var r,i=t,o=i.line,a=i.ch,l=e.getLine(o);do{if((r=l.charAt(a++))&&p(r)){var s=e.getTokenTypeAt(n(o,a));if("string"!==s&&"comment"!==s)break}}while(r);if(r){return e.findMatchingBracket(n(o,a)).to}return i},moveToStartOfLine:function(e,t){return n(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,r){var i=r.forward?e.lastLine():e.firstLine();return r.repeatIsExplicit&&(i=r.repeat-e.getOption("firstLineNumber")),n(i,fe(e.getLine(i)))},textObjectManipulation:function(e,t,r,n){var i={"(":")",")":"(","{":"}","}":"{","[":"]","]":"["},o={"'":!0,'"':!0},a=r.selectedCharacter;"b"==a?a="(":"B"==a&&(a="{");var l,s=!r.textObjectInner;if(i[a])l=Ce(e,t,a,s);else if(o[a])l=Se(e,t,a,s);else if("W"===a)l=de(e,s,!0,!0);else if("w"===a)l=de(e,s,!0,!1);else{if("p"!==a)return null;if(l=ke(e,t,r.repeat,0,s),r.linewise=!0,n.visualMode)n.visualLine||(n.visualLine=!0);else{var c=n.inputState.operatorArgs;c&&(c.linewise=!0),l.end.line--}}return e.state.vim.visualMode?ie(e,l.start,l.end):[l.start,l.end]},repeatLastCharacterSearch:function(e,t,r){var n=wt.lastCharacterSearch,i=r.repeat,o=r.forward===n.forward,a=(n.increment?1:0)*(o?-1:1);e.moveH(-a,"char"),r.inclusive=!!o;var l=ye(e,i,o,n.selectedCharacter);return l?(l.ch+=a,l):(e.moveH(a,"char"),t)}},Mt={change:function(t,r,i){var o,a,l=t.state.vim;if(wt.macroModeState.lastInsertModeChanges.inVisualBlock=l.visualBlock,l.visualMode){a=t.getSelection();var s=I("",i.length);t.replaceSelections(s),o=V(i[0].head,i[0].anchor)}else{var c=i[0].anchor,u=i[0].head;a=t.getRange(c,u);var f=l.lastEditInputState||{};if("moveByWords"==f.motion&&!v(a)){var d=/\s+$/.exec(a);d&&f.motionArgs&&f.motionArgs.forward&&(u=z(u,0,-d[0].length),a=a.slice(0,-d[0].length))}var h=new n(c.line-1,Number.MAX_VALUE),p=t.firstLine()==t.lastLine();u.line>t.lastLine()&&r.linewise&&!p?t.replaceRange("",h,u):t.replaceRange("",c,u),r.linewise&&(p||(t.setCursor(h),e.commands.newlineAndIndent(t)),c.ch=Number.MAX_VALUE),o=c}wt.registerController.pushText(r.registerName,"change",a,r.linewise,i.length>1),Lt.enterInsertMode(t,{head:o},t.state.vim)},delete:function(e,t,r){var i,o,a=e.state.vim;if(a.visualBlock){o=e.getSelection();var l=I("",r.length);e.replaceSelections(l),i=r[0].anchor}else{var s=r[0].anchor,c=r[0].head;t.linewise&&c.line!=e.firstLine()&&s.line==e.lastLine()&&s.line==c.line-1&&(s.line==e.firstLine()?s.ch=0:s=n(s.line-1,X(e,s.line-1))),o=e.getRange(s,c),e.replaceRange("",s,c),i=s,t.linewise&&(i=_t.moveToFirstNonWhiteSpaceCharacter(e,s))}return wt.registerController.pushText(t.registerName,"delete",o,t.linewise,a.visualBlock),R(e,i)},indent:function(e,t,r){var n=e.state.vim,i=r[0].anchor.line,o=n.visualBlock?r[r.length-1].anchor.line:r[0].head.line,a=n.visualMode?t.repeat:1;t.linewise&&o--;for(var l=i;l<=o;l++)for(var s=0;s<a;s++)e.indentLine(l,t.indentRight);return _t.moveToFirstNonWhiteSpaceCharacter(e,r[0].anchor)},changeCase:function(e,t,r,n,i){for(var o=e.getSelections(),a=[],l=t.toLower,s=0;s<o.length;s++){var c=o[s],u="";if(l===!0)u=c.toLowerCase();else if(l===!1)u=c.toUpperCase();else for(var f=0;f<c.length;f++){var d=c.charAt(f);u+=g(d)?d.toLowerCase():d.toUpperCase()}a.push(u)}return e.replaceSelections(a),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&r[0].anchor.line+1==r[0].head.line?_t.moveToFirstNonWhiteSpaceCharacter(e,n):t.linewise?n:V(r[0].anchor,r[0].head)},yank:function(e,t,r,n){var i=e.state.vim,o=e.getSelection(),a=i.visualMode?V(i.sel.anchor,i.sel.head,r[0].head,r[0].anchor):n;return wt.registerController.pushText(t.registerName,"yank",o,t.linewise,i.visualBlock),a}},Lt={jumpListWalk:function(e,t,r){if(!r.visualMode){var n=t.repeat,i=t.forward,o=wt.jumpList,a=o.move(e,i?n:-n),l=a?a.find():void 0;l=l?l:e.getCursor(),e.setCursor(l)}},scroll:function(e,t,r){if(!r.visualMode){var n=t.repeat||1,i=e.defaultTextHeight(),o=e.getScrollInfo().top,a=i*n,l=t.forward?o+a:o-a,s=j(e.getCursor()),c=e.charCoords(s,"local");if(t.forward)l>c.top?(s.line+=(l-c.top)/i,s.line=Math.ceil(s.line),e.setCursor(s),c=e.charCoords(s,"local"),e.scrollTo(null,c.top)):e.scrollTo(null,l);else{var u=l+e.getScrollInfo().clientHeight;u<c.bottom?(s.line-=(c.bottom-u)/i,s.line=Math.floor(s.line),e.setCursor(s),c=e.charCoords(s,"local"),e.scrollTo(null,c.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,l)}}},scrollToCursor:function(e,t){var r=e.getCursor().line,i=e.charCoords(n(r,0),"local"),o=e.getScrollInfo().clientHeight,a=i.top,l=i.bottom-a;switch(t.position){case"center":a=a-o/2+l;break;case"bottom":a=a-o+l}e.scrollTo(null,a)},replayMacro:function(e,t,r){var n=t.selectedCharacter,i=t.repeat,o=wt.macroModeState;for("@"==n&&(n=o.latestRegister);i--;)Ye(e,r,o,n)},enterMacroRecordMode:function(e,t){var r=wt.macroModeState,n=t.selectedCharacter;r.enterMacroRecordMode(e,n)},toggleOverwrite:function(t){t.state.overwrite?(t.toggleOverwrite(!1),t.setOption("keyMap","vim-insert"),e.signal(t,"vim-mode-change",{mode:"insert"})):(t.toggleOverwrite(!0),t.setOption("keyMap","vim-replace"),e.signal(t,"vim-mode-change",{mode:"replace"}))},enterInsertMode:function(t,r,i){if(!t.getOption("readOnly")){i.insertMode=!0,i.insertModeRepeat=r&&r.repeat||1;var o=r?r.insertAt:null,a=i.sel,l=r.head||t.getCursor("head"),s=t.listSelections().length;if("eol"==o)l=n(l.line,X(t,l.line));else if("charAfter"==o)l=z(l,0,1);else if("firstNonBlank"==o)l=_t.moveToFirstNonWhiteSpaceCharacter(t,l);else if("startOfSelectedArea"==o)i.visualBlock?(l=n(Math.min(a.head.line,a.anchor.line),Math.min(a.head.ch,a.anchor.ch)),s=Math.abs(a.head.line-a.anchor.line)+1):l=a.head.line<a.anchor.line?a.head:n(a.anchor.line,0);else if("endOfSelectedArea"==o)i.visualBlock?(l=n(Math.min(a.head.line,a.anchor.line),Math.max(a.head.ch+1,a.anchor.ch)),s=Math.abs(a.head.line-a.anchor.line)+1):l=a.head.line>=a.anchor.line?z(a.head,0,1):n(a.anchor.line,0);else if("inplace"==o&&i.visualMode)return;t.setOption("disableInput",!1),r&&r.replace?(t.toggleOverwrite(!0),t.setOption("keyMap","vim-replace"),e.signal(t,"vim-mode-change",{mode:"replace"})):(t.toggleOverwrite(!1),t.setOption("keyMap","vim-insert"),e.signal(t,"vim-mode-change",{mode:"insert"})),wt.macroModeState.isPlaying||(t.on("change",et),e.on(t.getInputField(),"keydown",ot)),i.visualMode&&se(t),ee(t,l,s)}},toggleVisualMode:function(t,r,i){var o,a=r.repeat,l=t.getCursor();i.visualMode?i.visualLine^r.linewise||i.visualBlock^r.blockwise?(i.visualLine=!!r.linewise,i.visualBlock=!!r.blockwise,e.signal(t,"vim-mode-change",{mode:"visual",subMode:i.visualLine?"linewise":i.visualBlock?"blockwise":""}),oe(t)):se(t):(i.visualMode=!0,i.visualLine=!!r.linewise,i.visualBlock=!!r.blockwise,o=R(t,n(l.line,l.ch+a-1),!0),i.sel={anchor:l,head:o},e.signal(t,"vim-mode-change",{mode:"visual",subMode:i.visualLine?"linewise":i.visualBlock?"blockwise":""}),oe(t),xe(t,i,"<",V(l,o)),xe(t,i,">",$(l,o)))},reselectLastSelection:function(t,r,n){var i=n.lastSelection;if(n.visualMode&&ne(t,n),i){var o=i.anchorMark.find(),a=i.headMark.find();if(!o||!a)return;n.sel={anchor:o,head:a},n.visualMode=!0,n.visualLine=i.visualLine,n.visualBlock=i.visualBlock,oe(t),xe(t,n,"<",V(o,a)),xe(t,n,">",$(o,a)),e.signal(t,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""})}},joinLines:function(e,t,r){var i,o;if(r.visualMode){if(i=e.getCursor("anchor"),o=e.getCursor("head"),U(o,i)){var a=o;o=i,i=a}o.ch=X(e,o.line)-1}else{var l=Math.max(t.repeat,2);i=e.getCursor(),o=R(e,n(i.line+l-1,1/0))}for(var s=0,c=i.line;c<o.line;c++){s=X(e,i.line);var a=n(i.line+1,X(e,i.line+1)),u=e.getRange(i,a);u=u.replace(/\n\s*/g," "),e.replaceRange(u,i,a)}var f=n(i.line,s);r.visualMode&&se(e,!1),e.setCursor(f)},newLineAndEnterInsertMode:function(t,r,i){i.insertMode=!0;var o=j(t.getCursor());if(o.line!==t.firstLine()||r.after){o.line=r.after?o.line:o.line-1,o.ch=X(t,o.line),t.setCursor(o);(e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent)(t)}else t.replaceRange("\n",n(t.firstLine(),0)),t.setCursor(t.firstLine(),0);this.enterInsertMode(t,{repeat:r.repeat},i)},paste:function(e,t,r){var i=j(e.getCursor()),o=wt.registerController.getRegister(t.registerName),a=o.toString();if(a){if(t.matchIndent){var l=e.getOption("tabSize"),s=function(e){var t=e.split("\t").length-1,r=e.split(" ").length-1;return t*l+1*r},c=e.getLine(e.getCursor().line),u=s(c.match(/^\s*/)[0]),f=a.replace(/\n$/,""),d=a!==f,h=s(a.match(/^\s*/)[0]),a=f.replace(/^\s*/gm,function(t){var r=u+(s(t)-h);if(r<0)return"";if(e.getOption("indentWithTabs")){var n=Math.floor(r/l);return Array(n+1).join("\t")}return Array(r+1).join(" ")});a+=d?"\n":""}if(t.repeat>1)var a=Array(t.repeat+1).join(a);var p=o.linewise,m=o.blockwise;if(p)r.visualMode?a=r.visualLine?a.slice(0,-1):"\n"+a.slice(0,a.length-1)+"\n":t.after?(a="\n"+a.slice(0,a.length-1),i.ch=X(e,i.line)):i.ch=0;else{if(m){a=a.split("\n");for(var g=0;g<a.length;g++)a[g]=""==a[g]?" ":a[g]}i.ch+=t.after?1:0}var v,y;if(r.visualMode){r.lastPastedText=a;var b,x=re(e,r),w=x[0],k=x[1],C=e.getSelection(),S=e.listSelections(),_=new Array(S.length).join("1").split("1");r.lastSelection&&(b=r.lastSelection.headMark.find()),wt.registerController.unnamedRegister.setText(C),m?(e.replaceSelections(_),k=n(w.line+a.length-1,w.ch),e.setCursor(w),Z(e,k),e.replaceSelections(a),v=w):r.visualBlock?(e.replaceSelections(_),e.setCursor(w),e.replaceRange(a,w,w),v=w):(e.replaceRange(a,w,k),v=e.posFromIndex(e.indexFromPos(w)+a.length-1)),b&&(r.lastSelection.headMark=e.setBookmark(b)),p&&(v.ch=0)}else if(m){e.setCursor(i);for(var g=0;g<a.length;g++){var M=i.line+g;M>e.lastLine()&&e.replaceRange("\n",n(M,0));var L=X(e,M);L<i.ch&&J(e,M,i.ch)}e.setCursor(i),Z(e,n(i.line+a.length-1,i.ch)),e.replaceSelections(a),v=i}else e.replaceRange(a,i),p&&t.after?v=n(i.line+1,fe(e.getLine(i.line+1))):p&&!t.after?v=n(i.line,fe(e.getLine(i.line))):!p&&t.after?(y=e.indexFromPos(i),v=e.posFromIndex(y+a.length-1)):(y=e.indexFromPos(i),v=e.posFromIndex(y+a.length));r.visualMode&&se(e,!1),e.setCursor(v)}},undo:function(t,r){t.operation(function(){H(t,e.commands.undo,r.repeat)(),t.setCursor(t.getCursor("anchor"))})},redo:function(t,r){H(t,e.commands.redo,r.repeat)()},setRegister:function(e,t,r){r.inputState.registerName=t.selectedCharacter},setMark:function(e,t,r){xe(e,r,t.selectedCharacter,e.getCursor())},replace:function(t,r,i){var o,a,l=r.selectedCharacter,s=t.getCursor(),c=t.listSelections();if(i.visualMode)s=t.getCursor("start"),a=t.getCursor("end");else{var u=t.getLine(s.line);o=s.ch+r.repeat,o>u.length&&(o=u.length),a=n(s.line,o)}if("\n"==l)i.visualMode||t.replaceRange("",s,a),(e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent)(t);else{var f=t.getRange(s,a);if(f=f.replace(/[^\n]/g,l),i.visualBlock){var d=new Array(t.getOption("tabSize")+1).join(" ");f=t.getSelection(),f=f.replace(/\t/g,d).replace(/[^\n]/g,l).split("\n"),t.replaceSelections(f)}else t.replaceRange(f,s,a);i.visualMode?(s=U(c[0].anchor,c[0].head)?c[0].anchor:c[0].head,t.setCursor(s),se(t,!1)):t.setCursor(z(a,0,-1))}},incrementNumberToken:function(e,t){for(var r,i,o,a,l,s=e.getCursor(),c=e.getLine(s.line),u=/-?\d+/g;null!==(r=u.exec(c))&&(l=r[0],i=r.index,o=i+l.length,!(s.ch<o)););if((t.backtrack||!(o<=s.ch))&&l){var f=t.increase?1:-1,d=parseInt(l)+f*t.repeat,h=n(s.line,i),p=n(s.line,o);a=d.toString(),e.replaceRange(a,h,p),e.setCursor(n(s.line,i+a.length-1))}},repeatLastEdit:function(e,t,r){if(r.lastEditInputState){var n=t.repeat;n&&t.repeatIsExplicit?r.lastEditInputState.repeatOverride=n:n=r.lastEditInputState.repeatOverride||n,at(e,r,n,!1)}},indent:function(e,t){e.indentLine(e.getCursor().line,t.indentRight)},exitInsertMode:$e},Tt={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},At={bracket:{isComplete:function(e){if(e.nextCh===e.symb){if(++e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?"]":"[")===e.symb?"{":"}"},isComplete:function(e){return 0===e.index&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t="*"===e.lastCh&&"/"===e.nextCh;return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb="m"===e.symb?"{":"}",e.reverseSymb="{"===e.symb?"}":"{"},isComplete:function(e){return e.nextCh===e.symb}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if("#"===e.nextCh){var t=e.lineText.match(/#(\w+)/)[1];if("endif"===t){if(e.forward&&0===e.depth)return!0;e.depth++}else if("if"===t){if(!e.forward&&0===e.depth)return!0;e.depth--}if("else"===t&&0===e.depth)return!0}return!1}}};b("pcre",!0,"boolean"),_e.prototype={getQuery:function(){return wt.query},setQuery:function(e){wt.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return wt.isReversed},setReversed:function(e){wt.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var Ot={"\\n":"\n","\\r":"\r","\\t":"\t"},Et={"\\/":"/","\\\\":"\\","\\n":"\n","\\r":"\r","\\t":"\t"},It="(Javascript regexp)",Nt=function(){this.buildCommandMap_()};Nt.prototype={processCommand:function(e,t,r){var n=this;e.operation(function(){e.curOp.isVimOp=!0,n._processCommand(e,t,r)})},_processCommand:function(t,r,n){var i=t.state.vim,o=wt.registerController.getRegister(":"),a=o.toString();i.visualMode&&se(t);var l=new e.StringStream(r);o.setText(r);var s=n||{};s.input=r;try{this.parseInput_(t,l,s)}catch(e){throw Pe(t,e),e}var c,u;if(s.commandName){if(c=this.matchCommand_(s.commandName)){if(u=c.name,c.excludeFromCommandHistory&&o.setText(a),this.parseCommandArgs_(l,s,c),"exToKey"==c.type){for(var f=0;f<c.toKeys.length;f++)e.Vim.handleKey(t,c.toKeys[f],"mapping");return}if("exToEx"==c.type)return void this.processCommand(t,c.toInput)}}else void 0!==s.line&&(u="move");if(!u)return void Pe(t,'Not an editor command ":'+r+'"');try{Pt[u](t,s),c&&c.possiblyAsync||!s.callback||s.callback()}catch(e){throw Pe(t,e),e}},parseInput_:function(e,t,r){t.eatWhile(":"),t.eat("%")?(r.line=e.firstLine(),r.lineEnd=e.lastLine()):(r.line=this.parseLineSpec_(e,t),void 0!==r.line&&t.eat(",")&&(r.lineEnd=this.parseLineSpec_(e,t)));var n=t.match(/^(\w+)/);return r.commandName=n?n[1]:t.match(/.*/)[0],r},parseLineSpec_:function(e,t){var r=t.match(/^(\d+)/);if(r)return parseInt(r[1],10)-1;switch(t.next()){case".":return e.getCursor().line;case"$":return e.lastLine();case"'":var n=t.next(),i=Ue(e,e.state.vim,n);if(!i)throw new Error("Mark not set");return i.line;default:return void t.backUp(1)}},parseCommandArgs_:function(e,t,r){if(!e.eol()){t.argString=e.match(/.*/)[0];var n=r.argDelimiter||/\s+/,i=Y(t.argString).split(n);i.length&&i[0]&&(t.args=i)}},matchCommand_:function(e){for(var t=e.length;t>0;t--){var r=e.substring(0,t);if(this.commandMap_[r]){var n=this.commandMap_[r];if(0===n.name.indexOf(e))return n}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<r.length;e++){var t=r[e],n=t.shortName||t.name;this.commandMap_[n]=t}},map:function(e,r,n){if(":"!=e&&":"==e.charAt(0)){if(n)throw Error("Mode not supported for ex mappings");var i=e.substring(1);":"!=r&&":"==r.charAt(0)?this.commandMap_[i]={name:i,type:"exToEx",toInput:r.substring(1),user:!0}:this.commandMap_[i]={name:i,type:"exToKey",toKeys:r,user:!0}}else if(":"!=r&&":"==r.charAt(0)){var o={keys:e,type:"keyToEx",exArgs:{input:r.substring(1)}};n&&(o.context=n),t.unshift(o)}else{var o={keys:e,type:"keyToKey",toKeys:r};n&&(o.context=n),t.unshift(o)}},unmap:function(e,r){if(":"!=e&&":"==e.charAt(0)){if(r)throw Error("Mode not supported for ex mappings");var n=e.substring(1);if(this.commandMap_[n]&&this.commandMap_[n].user)return void delete this.commandMap_[n]}else for(var i=e,o=0;o<t.length;o++)if(i==t[o].keys&&t[o].context===r)return void t.splice(o,1);throw Error("No such mapping.")}};var Pt={colorscheme:function(e,t){if(!t.args||t.args.length<1)return void Pe(e,e.getOption("theme"));e.setOption("theme",t.args[0])},map:function(e,t,r){var n=t.args;if(!n||n.length<2)return void(e&&Pe(e,"Invalid mapping: "+t.input));Rt.map(n[0],n[1],r)},imap:function(e,t){this.map(e,t,"insert")},nmap:function(e,t){this.map(e,t,"normal")},vmap:function(e,t){this.map(e,t,"visual")},unmap:function(e,t,r){var n=t.args;if(!n||n.length<1)return void(e&&Pe(e,"No such mapping: "+t.input));Rt.unmap(n[0],r)},move:function(e,t){St.processCommand(e,e.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var r=t.args,n=t.setCfg||{};if(!r||r.length<1)return void(e&&Pe(e,"Invalid mapping: "+t.input));var i=r[0].split("="),o=i[0],a=i[1],l=!1;if("?"==o.charAt(o.length-1)){if(a)throw Error("Trailing characters: "+t.argString);o=o.substring(0,o.length-1),l=!0}void 0===a&&"no"==o.substring(0,2)&&(o=o.substring(2),a=!1);var s=yt[o]&&"boolean"==yt[o].type;if(s&&void 0==a&&(a=!0),!s&&void 0===a||l){var c=w(o,e,n);c===!0||c===!1?Pe(e," "+(c?"":"no")+o):Pe(e," "+o+"="+c)}else x(o,a,e,n)},setlocal:function(e,t){t.setCfg={scope:"local"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:"global"},this.set(e,t)},registers:function(e,t){var r=t.args,n=wt.registerController.registers,i="----------Registers----------<br><br>";if(r){var o;r=r.join("");for(var a=0;a<r.length;a++)if(o=r.charAt(a),wt.registerController.isValidRegister(o)){var l=n[o]||new L;i+='"'+o+" "+l.toString()+"<br>"}}else for(var o in n){var s=n[o].toString();s.length&&(i+='"'+o+" "+s+"<br>")}Pe(e,i)},sort:function(t,r){function i(e,t){if(a){var r;r=e,e=t,t=r}l&&(e=e.toLowerCase(),t=t.toLowerCase());var n=c&&v.exec(e),i=c&&v.exec(t);return n?(n=parseInt((n[1]+n[2]).toLowerCase(),y),i=parseInt((i[1]+i[2]).toLowerCase(),y),n-i):e<t?-1:1}function o(e,t){if(a){var r;r=e,e=t,t=r}return l&&(e[0]=e[0].toLowerCase(),t[0]=t[0].toLowerCase()),e[0]<t[0]?-1:1}var a,l,s,c,u,f=function(){if(r.argString){var t=new e.StringStream(r.argString);if(t.eat("!")&&(a=!0),t.eol())return;if(!t.eatSpace())return"Invalid arguments";var n=t.match(/([dinuox]+)?\s*(\/.+\/)?\s*/);if(!n&&!t.eol())return"Invalid arguments";if(n[1]){l=n[1].indexOf("i")!=-1,s=n[1].indexOf("u")!=-1;var i=n[1].indexOf("d")!=-1||n[1].indexOf("n")!=-1&&1,o=n[1].indexOf("x")!=-1&&1,f=n[1].indexOf("o")!=-1&&1;if(i+o+f>1)return"Invalid arguments";c=i&&"decimal"||o&&"hex"||f&&"octal"}n[2]&&(u=new RegExp(n[2].substr(1,n[2].length-2),l?"i":""))}}();if(f)return void Pe(t,f+": "+r.argString);var d=r.line||t.firstLine(),h=r.lineEnd||r.line||t.lastLine();if(d!=h){var p=n(d,0),m=n(h,X(t,h)),g=t.getRange(p,m).split("\n"),v=u?u:"decimal"==c?/(-?)([\d]+)/:"hex"==c?/(-?)(?:0x)?([0-9a-f]+)/i:"octal"==c?/([0-7]+)/:null,y="decimal"==c?10:"hex"==c?16:"octal"==c?8:null,b=[],x=[];if(c||u)for(var w=0;w<g.length;w++){var k=u?g[w].match(u):null;k&&""!=k[0]?b.push(k):!u&&v.exec(g[w])?b.push(g[w]):x.push(g[w])}else x=g;if(b.sort(u?o:i),u)for(var w=0;w<b.length;w++)b[w]=b[w].input;else c||x.sort(i);if(g=a?b.concat(x):x.concat(b),s){var C,S=g;g=[];for(var w=0;w<S.length;w++)S[w]!=C&&g.push(S[w]),C=S[w]}t.replaceRange(g.join("\n"),p,m)}},global:function(e,t){var r=t.argString;if(!r)return void Pe(e,"Regular Expression missing from global");var n,i=void 0!==t.line?t.line:e.firstLine(),o=t.lineEnd||t.line||e.lastLine(),a=Te(r),l=r;if(a.length&&(l=a[0],n=a.slice(1,a.length).join("/")),l)try{De(e,l,!0,!0)}catch(t){return void Pe(e,"Invalid regex: "+l)}for(var s=Me(e).getQuery(),c=[],u="",f=i;f<=o;f++){s.test(e.getLine(f))&&(c.push(f+1),u+=e.getLine(f)+"<br>")}if(!n)return void Pe(e,u);var d=0,h=function(){if(d<c.length){var t=c[d]+n;Rt.processCommand(e,t,{callback:h})}d++};h()},substitute:function(e,t){if(!e.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var r,i,o,a,l=t.argString,s=l?Te(l):[],c="",u=!1,f=!1;if(s.length)r=s[0],c=s[1],void 0!==c&&(c=w("pcre")?Ie(c):Ee(c),wt.lastSubstituteReplacePart=c),i=s[2]?s[2].split(" "):[];else if(l&&l.length)return void Pe(e,"Substitutions should be of the form :s/pattern/replace/");if(i&&(o=i[0],a=parseInt(i[1]),o&&(o.indexOf("c")!=-1&&(u=!0,o.replace("c","")),o.indexOf("g")!=-1&&(f=!0,o.replace("g","")),r=r+"/"+o)),r)try{De(e,r,!0,!0)}catch(t){return void Pe(e,"Invalid regex: "+r)}if(void 0===(c=c||wt.lastSubstituteReplacePart))return void Pe(e,"No previous substitute regular expression");var d=Me(e),h=d.getQuery(),p=void 0!==t.line?t.line:e.getCursor().line,m=t.lineEnd||p;p==e.firstLine()&&m==e.lastLine()&&(m=1/0),a&&(p=m,m=p+a-1);var g=R(e,n(p,0)),v=e.getSearchCursor(h,g);Ve(e,u,f,p,m,v,h,c,t.callback)},redo:e.commands.redo,undo:e.commands.undo,write:function(t){
13
- e.commands.save?e.commands.save(t):t.save&&t.save()},nohlsearch:function(e){He(e)},yank:function(e){var t=j(e.getCursor()),r=t.line,n=e.getLine(r);wt.registerController.pushText("0","yank",n,!0,!0)},delmarks:function(t,r){if(!r.argString||!Y(r.argString))return void Pe(t,"Argument required");for(var n=t.state.vim,i=new e.StringStream(Y(r.argString));!i.eol();){i.eatSpace();var o=i.pos;if(!i.match(/[a-zA-Z]/,!1))return void Pe(t,"Invalid argument: "+r.argString.substring(o));var a=i.next();if(i.match("-",!0)){if(!i.match(/[a-zA-Z]/,!1))return void Pe(t,"Invalid argument: "+r.argString.substring(o));var l=a,s=i.next();if(!(h(l)&&h(s)||g(l)&&g(s)))return void Pe(t,"Invalid argument: "+l+"-");var c=l.charCodeAt(0),u=s.charCodeAt(0);if(c>=u)return void Pe(t,"Invalid argument: "+r.argString.substring(o));for(var f=0;f<=u-c;f++){var d=String.fromCharCode(c+f);delete n.marks[d]}}else delete n.marks[a]}}},Rt=new Nt;return e.keyMap.vim={attach:l,detach:a,call:s},b("insertModeEscKeysTimeout",200,"number"),e.keyMap["vim-insert"]={fallthrough:["default"],attach:l,detach:a,call:s},e.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:l,detach:a,call:s},S(),Ct}()}),console.log(window.heshOptions),function(e,t,r,n,i){"use strict";function o(){te.theme=i.theme,te.lineNumbers=!!i.lineNumbers,te.foldGutter=!!i.foldGutter,te.gutters=te.foldGutter?["CodeMirror-linenumbers","CodeMirror-foldgutter"]:[],te.tabSize=te.indentUnit=+i.tabSize,te.lineWrapping=!!i.lineWrapping,te.matchBrackets=!!i.matchBrackets,te.autoCloseTags=!!i.autoCloseTags,te.autoCloseBrackets=!!i.autoCloseBrackets,te.highlightSelectionMatches=!!i.highlightSelectionMatches,te.matchTags=!!i.matchTags&&{bothTags:!0},te.scrollbarStyle=i.scrollbarStyle?"overlay":null,te.keyMap=i.keyMap,te.autofocus=e.getElementById("title")&&!!e.getElementById("title").value&&e.getElementById("title").value.length>0}function a(e){var r=!1;return function(){var n=this,i=arguments;r||(e.apply(n,i),r=!0,t.requestAnimationFrame(function(){t.requestAnimationFrame(function(){r=!1})}))}}function l(){for(var e=-1;e<U.children.length;e++){var t=e<0?K:U.children[e];null!=t&&(t.style.position="",t.style.top="",t.style.left="",t.style.right="",t.style.width="")}}function s(){for(var t=$.getBoundingClientRect(),r=-1;r<U.children.length;r++){var n=r<0?K:U.children[r];null!=n&&(n.style.position="fixed",n.style.top=t.bottom+"px",n.style.right=e.documentElement.getBoundingClientRect().width-t.right+"px",n.id.match(/toggle/gi)||(n.style.left=t.left+"px",n.style.width="auto"))}}function c(){for(var e=$.getBoundingClientRect(),t=H.getWrapperElement().getBoundingClientRect(),r=-1;r<U.children.length;r++){var n=r<0?K:U.children[r];null!=n&&(n.style.position="absolute",n.style.top=(t.top-e.bottom)*-1+"px",n.style.left="",n.style.right="",n.style.width="")}}function u(e){f();var t=ee.settingsPosition();if(t!==ee.previousSettingsPosition||e&&"resize"===e.type)switch(_(),t){case"top":l();break;case"middle":s();break;case"bottom":c();break;case"normal":case"none":}}function f(){if(V){var r=V.getBoundingClientRect().top,n=e.getElementById("post-status-info").getBoundingClientRect().top,i=n-r,o=t.innerHeight-r;V.style.maxHeight=Math.min(i,o)-6+"px",ne&&(V.style.height=V.style.maxHeight)}}function d(){V.style.maxHeight="",ne&&(V.style.height="")}function h(){Z&&(Z.addEventListener("change",p),p())}function p(){ee.isFullHeight()?(H.setOption("viewportMargin",1/0),H.on("change",_),t.addEventListener("scroll",re),t.addEventListener("resize",re),t.addEventListener("resize",ae),H.getWrapperElement().style.height="auto",u(),L(),t.setTimeout(function(){f(),_()},100)):(H.setOption("viewportMargin",te.viewportMargin),H.off("change",_),t.removeEventListener("scroll",re),t.removeEventListener("resize",re),t.removeEventListener("resize",ae),H.getWrapperElement().style.marginTop="",d(),l(),M())}function m(e){for(var t=0;t<e.length;t++){var r=e[t];if(r.addedNodes[0]&&r.addedNodes[0].classList.contains("CodeMirror-dialog")){K=r.addedNodes[0];for(var n=K.getElementsByTagName("button"),i=0;i<n.length;i++){n[i].classList="button button-small"}}else K=void 0}}function g(){H.getWrapperElement().appendChild(U),U.style.display="block",U.querySelector(".CodeMirror-settings__toggle").addEventListener("click",v),U.querySelector(".CodeMirror-settings__toggle-advanced").addEventListener("click",v),new MutationObserver(m).observe(H.getWrapperElement(),{childList:!0});for(var e=U.querySelectorAll(".CodeMirror-settings__option"),t=0;t<e.length;t++){var r=e[t];r.addEventListener("change",k),r.addEventListener("change",x)}}function v(e){y(e.target.id.match(/advanced/gi)?U.classList.contains("open-advanced")?"open":"advanced":U.classList.contains("open")?"closed":"open")}function y(e){switch(e){case"open":U.classList.add("open"),U.classList.remove("open-advanced"),U.classList.remove("closed");break;case"advanced":U.classList.add("open"),U.classList.add("open-advanced"),U.classList.remove("closed");break;default:U.classList.remove("open"),U.classList.remove("open-advanced"),U.classList.add("closed")}}function b(){ee.charWidth=H.defaultCharWidth()*(i.fontSize/13)}function x(e){var t=+e.target.value;switch(t=isNaN(t)?e.target.value:t,"checkbox"===e.target.type&&(t=e.target.checked),e.target.id){case"fontSize":i.fontSize=t,j.style.fontSize=t+"px",b(),H.refresh();break;case"lineHeight":i.lineHeight=t,j.style.lineHeight=t+"em",H.refresh();break;case"matchTags":i.matchTags=t,H.setOption("matchTags",t?{bothTags:!0}:null);break;case"scrollbarStyle":i.scrollbarStyle=t,H.setOption("scrollbarStyle",t?"overlay":null);break;case"foldGutter":H.setOption("gutters",t?["CodeMirror-linenumbers","CodeMirror-foldgutter"]:[]);case"tabSize":H.setOption("indentUnit",t);default:i[e.target.id]=t,H.setOption(e.target.id,t)}switch(e.target.id){case"lineNumbers":t&&i.foldGutter&&H.setOption("gutters",["CodeMirror-linenumbers","CodeMirror-foldgutter"])}}function w(e,t){j.style.fontSize=e+"px",i.fontSize=e,j.style.lineHeight=t+"em",i.lineHeight=t,b(),H.refresh()}function k(){var e=n("#CodeMirror-settings__form").serializeArray();n.post(i.ajaxUrl,e,function(e){})}function C(){$.insertAdjacentHTML("afterbegin",'<button type="button" id="cm_content_fullscreen" class="ed_button qt-dfw" title="Full Screen"></button>'),e.getElementById("cm_content_fullscreen").onclick=S}function S(e){e=e===!0,ee.isFullHeight()?ie.classList.remove(oe):(ie.classList.contains(oe)||e?ie.classList.remove(oe):ie.classList.add(oe),H.focus())}function _(){H.save(),H.getTextArea().style.height=H.getWrapperElement().getBoundingClientRect().height+"px"}function M(){H.getWrapperElement().style.height=H.getTextArea().style.height}function L(){H.getWrapperElement().style.marginTop=$.offsetHeight+"px"}function T(){e.getElementById("content-resize-handle").addEventListener("mousedown",function(){e.addEventListener("mousemove",M)}),e.addEventListener("mouseup",function(){e.removeEventListener("mousemove",M)})}function A(){function t(e){l=r+(e.pageY-o),H.getWrapperElement().style.height=Math.max(n,l)+"px"}var r=500,n=200;H.getWrapperElement().style.height=r+"px";var i=e.createElement("div");i.className="hesh-content-resize-handle",i.id="content-resize-handle",H.getWrapperElement().appendChild(i);var o,a=!1,l=r;e.getElementById("content-resize-handle").addEventListener("mousedown",function(r){o=r.pageY,a=!0,e.addEventListener("mousemove",t),r.preventDefault()}),e.addEventListener("mouseup",function(){a=!1,r=Math.max(n,l),e.removeEventListener("mousemove",t),H.refresh()})}function O(){var t=e.querySelector(".fileedit-sub .alignleft"),r=t.textContent.match(/\.[a-z\d]{2,}/gi),n=r[r.length-1].match(/[a-z]*/gi)[1],i={php:"php",css:"css",xml:"xml",html:"htmlmixed",js:"javascript",json:"javascript"};te.mode=i[n]}function E(t){var r="; "+e.cookie,n=r.split("; "+t+"=");if(2===n.length)return n.pop().split(";").shift()}function I(){var e=(E("hesh_plugin_selection_state")||"0,0,0,0,0,0,0").split(",");J===e[0]&&(H.doc.setSelection({line:+e[1],ch:+e[2]},{line:+e[3],ch:+e[4]},{scroll:!1}),H.scrollTo(+e[5],+e[6]))}function N(){var t=H.doc.listSelections()[0],r=H.getScrollInfo();e.cookie="hesh_plugin_selection_state="+J+","+t.anchor.line+","+t.anchor.ch+","+t.head.line+","+t.head.ch+","+r.left+","+r.top}function P(){var t=".CodeMirror pre > * { text-indent: 0px; }",n=e.head||e.getElementsByTagName("head")[0],i=e.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=t:i.appendChild(e.createTextNode(t)),n.appendChild(i);H.on("renderLine",function(e,t,n){var i=r.countColumn(t.text,null,e.getOption("tabSize"))*ee.charWidth;n.style.textIndent="-"+i+"px",n.style.paddingLeft=4+i+"px"}),H.refresh()}function R(){var e,t,r,n=H.doc.listSelections()[0];e=t=r=0,H.doc.eachLine(function(i){r<=n.head.line-1&&(e+=i.text.length+1),r<=n.anchor.line-1&&(t+=i.text.length+1),r++}),e+=n.head.ch,t+=n.anchor.ch,H.getTextArea().setSelectionRange(Math.min(t,e),Math.max(t,e)),H.getTextArea().focus(),B()}function B(){var e=H.getTextArea().value.length,r=t.setInterval(function(){e!==H.getTextArea().value.length&&(t.clearInterval(r),z())},10),n=function(){t.clearInterval(r),H.off("focus",n)};H.on("focus",n)}function z(){var e=H.getTextArea().selectionStart,r=H.getTextArea().selectionEnd,n=H.getScrollInfo(),i={top:t.pageYOffset,left:t.pageXOffset};H.doc.setValue(H.getTextArea().value),H.focus();for(var o=0,a=0,l=0,s=e,c=r,u=H.getLineHandle(l).text.length+1;u<=s&&u<=c;)l++,u<=s&&(s-=u,o=l),u<=c&&(c-=u,a=l),u=H.getLineHandle(l).text.length+1;H.doc.setSelection({line:o,ch:s},{line:a,ch:c},{scroll:!1}),t.scrollTo(i.left,i.top),H.scrollTo(n.left,n.top),H.save()}function D(){var e=t.send_to_editor,r=function(r){ee.isActive()&&"content"===t.wpActiveEditor?(H.replaceSelection(r),H.save()):e(r)};t.send_to_editor=r}function W(){ee.isActive()||(o(),ee.isThemeOrPlugin&&O(),H=r.fromTextArea(G,te),j=H.getWrapperElement().querySelector(".CodeMirror-code"),G.classList.add("CodeMirror-mirrored"),H.on("change",function(){H.save()}),I(),H.on("cursorActivity",le),H.on("scroll",le),ee.isThemeOrPlugin?(A(),Q=e.getElementById("submit")):($.addEventListener("mousedown",R),D(),T(),h(),C()),g(),w(+i.fontSize,+i.lineHeight),P())}function q(){ee.isActive()&&(y("closed"),H.toTextArea())}function F(){ee.isThemeOrPlugin?W():ee.isVisualEnabled?(X.addEventListener("click",function(){t.setTimeout(W,0)}),Y.addEventListener("click",q),ee.isVisualActive()||W()):(W(),e.body.className+=" visual-editor-is-disabled")}var H,j,K,U=e.getElementById("CodeMirror-settings"),V=e.getElementById("CodeMirror-settings__form"),$=e.getElementById("ed_toolbar"),G=e.getElementById("content")||e.getElementById("newcontent"),X=e.getElementById("content-html"),Y=e.getElementById("content-tmce"),Q=e.getElementById("save-post")||e.getElementById("publish"),J=null!=e.getElementById("post_ID")?e.getElementById("post_ID").value:0,Z=e.getElementById("editor-expand-toggle"),ee={isVisualEnabled:null!=e.getElementById("content-tmce"),isThemeOrPlugin:null!=e.getElementById("newcontent"),isActive:function(){return null!=e.getElementsByClassName("CodeMirror")[0]},isVisualActive:function(){return null!=e.getElementsByClassName("tmce-active")[0]},isFullHeight:function(){return!!Z&&Z.checked},previousSettingsPosition:"none",settingsPosition:function(){var e,r=this;return e=$?"absolute"===$.style.position?"0px"===$.style.top?"top":"bottom":"fixed"===$.style.position?"middle":"normal":"none",t.setTimeout(function(){r.previousSettingsPosition=e},0),e},charWidth:0},te={mode:"wordpresspost",tabMode:"indent",indentWithTabs:!0,enterMode:"keep",styleActiveLine:!0,electricChars:!1,showCursorWhenSelecting:!0,viewportMargin:10,extraKeys:{F11:function(){S()},Esc:function(){S(!0)},"Ctrl-S":function(){Q.click()},"Cmd-S":function(){Q.click()}}},re=a(u),ne=!!navigator.userAgent.match(/Trident/gi),ie=e.getElementById("wp-content-editor-container"),oe="heshFullscreen",ae=a(L),le=a(N);"complete"!==e.readyState?t.addEventListener?t.addEventListener("load",F,!1):t.attachEvent&&t.attachEvent("onload",F):F()}(document,window,window.CodeMirror,window.jQuery,window.heshOptions);
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function n(e,n){return t(e).appendChild(n)}function r(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,n,i){var o=r(e,t,n,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function a(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function s(t,n){var r=t.className;e(n).test(r)||(t.className+=(r?" ":"")+n)}function l(t,n){for(var r=t.split(" "),i=0;i<r.length;i++)r[i]&&!e(r[i]).test(n)&&(n+=" "+r[i]);return n}function c(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function u(e,t,n){t||(t={});for(var r in e)!e.hasOwnProperty(r)||n===!1&&t.hasOwnProperty(r)||(t[r]=e[r]);return t}function f(e,t,n,r,i){null==t&&(t=e.search(/[^\s\u00a0]/))==-1&&(t=e.length);for(var o=r||0,a=i||0;;){var s=e.indexOf("\t",o);if(s<0||s>=t)return a+(t-o);a+=s-o,a+=n-a%n,o=s+1}}function d(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}function h(e,t,n){for(var r=0,i=0;;){var o=e.indexOf("\t",r);o==-1&&(o=e.length);var a=o-r;if(o==e.length||i+a>=t)return r+Math.min(a,t-i);if(i+=o-r,i+=n-i%n,r=o+1,i>=t)return r}}function p(e){for(;Wa.length<=e;)Wa.push(m(Wa)+" ");return Wa[e]}function m(e){return e[e.length-1]}function g(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}function v(e,t,n){for(var r=0,i=n(t);r<e.length&&n(e[r])<=i;)r++;e.splice(r,0,t)}function y(){}function b(e,t){var n;return Object.create?n=Object.create(e):(y.prototype=e,n=new y),t&&u(t,n),n}function x(e){return/\w/.test(e)||e>"€"&&(e.toUpperCase()!=e.toLowerCase()||qa.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&x(e))||t.test(e):x(e)}function k(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function C(e){return e.charCodeAt(0)>=768&&Ha.test(e)}function S(e,t,n){for(;(n<0?t>0:t<e.length)&&C(e.charAt(t));)t+=n;return t}function _(e,t,n){for(;;){if(Math.abs(t-n)<=1)return e(t)?t:n;var r=Math.floor((t+n)/2);e(r)?n=r:t=r}}function M(e,t,n){var o=this;this.input=n,o.scrollbarFiller=r("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=r("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=i("div",null,"CodeMirror-code"),o.selectionDiv=r("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=r("div",null,"CodeMirror-cursors"),o.measure=r("div",null,"CodeMirror-measure"),o.lineMeasure=r("div",null,"CodeMirror-measure"),o.lineSpace=i("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var a=i("div",[o.lineSpace],"CodeMirror-lines");o.mover=r("div",[a],null,"position: relative"),o.sizer=r("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=r("div",null,null,"position: absolute; height: "+Ra+"px; width: 1px;"),o.gutters=r("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=r("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=r("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),fa&&da<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),ha||sa&&ka||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,n.init(o)}function L(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t<o){n=i;break}t-=o}return n.lines[t]}function T(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i}),r}function A(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function O(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height+=n}function E(e){if(null==e.parent)return null;for(var t=e.parent,n=d(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function N(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r){var i=e.children[r],o=i.height;if(t<o){e=i;continue e}t-=o,n+=i.chunkSize()}return n}while(!e.lines);for(var a=0;a<e.lines.length;++a){var s=e.lines[a],l=s.height;if(t<l)break;t-=l}return n+a}function I(e,t){return t>=e.first&&t<e.first+e.size}function P(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function R(e,t,n){if(void 0===n&&(n=null),!(this instanceof R))return new R(e,t,n);this.line=e,this.ch=t,this.sticky=n}function B(e,t){return e.line-t.line||e.ch-t.ch}function z(e,t){return e.sticky==t.sticky&&0==B(e,t)}function D(e){return R(e.line,e.ch)}function F(e,t){return B(e,t)<0?t:e}function W(e,t){return B(e,t)<0?e:t}function q(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function H(e,t){if(t.line<e.first)return R(e.first,0);var n=e.first+e.size-1;return t.line>n?R(n,L(e,n).text.length):j(t,L(e,t.line).text.length)}function j(e,t){var n=e.ch;return null==n||n>t?R(e.line,t):n<0?R(e.line,0):e}function K(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=H(e,t[r]);return n}function U(){ja=!0}function V(){Ka=!0}function $(e,t,n){this.marker=e,this.from=t,this.to=n}function G(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function X(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n||(n=[])).push(e[r]);return n}function Y(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function Q(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);if(s||o.from==t&&"bookmark"==a.type&&(!n||!o.marker.insertLeft)){var l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(r||(r=[])).push(new $(a,o.from,l?null:o.to))}}return r}function J(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);if(s||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(r||(r=[])).push(new $(a,l?null:o.from-t,null==o.to?null:o.to-t))}}return r}function Z(e,t){if(t.full)return null;var n=I(e,t.from.line)&&L(e,t.from.line).markedSpans,r=I(e,t.to.line)&&L(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,a=0==B(t.from,t.to),s=Q(n,i,a),l=J(r,o,a),c=1==t.text.length,u=m(t.text).length+(c?i:0);if(s)for(var f=0;f<s.length;++f){var d=s[f];if(null==d.to){var h=G(l,d.marker);h?c&&(d.to=null==h.to?null:h.to+u):d.to=i}}if(l)for(var p=0;p<l.length;++p){var g=l[p];if(null!=g.to&&(g.to+=u),null==g.from){var v=G(s,g.marker);v||(g.from=u,c&&(s||(s=[])).push(g))}else g.from+=u,c&&(s||(s=[])).push(g)}s&&(s=ee(s)),l&&l!=s&&(l=ee(l));var y=[s];if(!c){var b,x=t.text.length-2;if(x>0&&s)for(var w=0;w<s.length;++w)null==s[w].to&&(b||(b=[])).push(new $(s[w].marker,null,null));for(var k=0;k<x;++k)y.push(b);y.push(l)}return y}function ee(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.from==n.to&&n.marker.clearWhenEmpty!==!1&&e.splice(t--,1)}return e.length?e:null}function te(e,t,n){var r=null;if(e.iter(t.line,n.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&d(r,n)!=-1||(r||(r=[])).push(n)}}),!r)return null;for(var i=[{from:t,to:n}],o=0;o<r.length;++o)for(var a=r[o],s=a.find(0),l=0;l<i.length;++l){var c=i[l];if(!(B(c.to,s.from)<0||B(c.from,s.to)>0)){var u=[l,1],f=B(c.from,s.from),h=B(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:s.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function ne(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function re(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function ie(e){return e.inclusiveLeft?-1:0}function oe(e){return e.inclusiveRight?1:0}function ae(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;var r=e.find(),i=t.find(),o=B(r.from,i.from)||ie(e)-ie(t);if(o)return-o;var a=B(r.to,i.to)||oe(e)-oe(t);return a?a:t.id-e.id}function se(e,t){var n,r=Ka&&e.markedSpans;if(r)for(var i=void 0,o=0;o<r.length;++o)i=r[o],i.marker.collapsed&&null==(t?i.from:i.to)&&(!n||ae(n,i.marker)<0)&&(n=i.marker);return n}function le(e){return se(e,!0)}function ce(e){return se(e,!1)}function ue(e,t,n,r,i){var o=L(e,t),a=Ka&&o.markedSpans;if(a)for(var s=0;s<a.length;++s){var l=a[s];if(l.marker.collapsed){var c=l.marker.find(0),u=B(c.from,n)||ie(l.marker)-ie(i),f=B(c.to,r)||oe(l.marker)-oe(i);if(!(u>=0&&f<=0||u<=0&&f>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?B(c.to,n)>=0:B(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?B(c.from,r)<=0:B(c.from,r)<0)))return!0}}}function fe(e){for(var t;t=le(e);)e=t.find(-1,!0).line;return e}function de(e){for(var t;t=ce(e);)e=t.find(1,!0).line;return e}function he(e){for(var t,n;t=ce(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function pe(e,t){var n=L(e,t),r=fe(n);return n==r?t:E(r)}function me(e,t){if(t>e.lastLine())return t;var n,r=L(e,t);if(!ge(e,r))return t;for(;n=ce(r);)r=n.find(1,!0).line;return E(r)+1}function ge(e,t){var n=Ka&&t.markedSpans;if(n)for(var r=void 0,i=0;i<n.length;++i)if(r=n[i],r.marker.collapsed){if(null==r.from)return!0;if(!r.marker.widgetNode&&0==r.from&&r.marker.inclusiveLeft&&ve(e,t,r))return!0}}function ve(e,t,n){if(null==n.to){var r=n.marker.find(1,!0);return ve(e,r.line,G(r.line.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if(i=t.markedSpans[o],i.marker.collapsed&&!i.marker.widgetNode&&i.from==n.to&&(null==i.to||i.to!=n.from)&&(i.marker.inclusiveLeft||n.marker.inclusiveRight)&&ve(e,t,i))return!0}function ye(e){e=fe(e);for(var t=0,n=e.parent,r=0;r<n.lines.length;++r){var i=n.lines[r];if(i==e)break;t+=i.height}for(var o=n.parent;o;n=o,o=n.parent)for(var a=0;a<o.children.length;++a){var s=o.children[a];if(s==n)break;t+=s.height}return t}function be(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=le(r);){var i=t.find(0,!0);r=i.from.line,n+=i.from.ch-i.to.ch}for(r=e;t=ce(r);){var o=t.find(0,!0);n-=r.text.length-o.from.ch,r=o.to.line,n+=r.text.length-o.to.ch}return n}function xe(e){var t=e.display,n=e.doc;t.maxLine=L(n,n.first),t.maxLineLength=be(t.maxLine),t.maxLineChanged=!0,n.iter(function(e){var n=be(e);n>t.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function we(e,t,n,r){if(!e)return r(t,n,"ltr");for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<n&&a.to>t||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr"),i=!0)}i||r(t,n,"ltr")}function ke(e,t,n){var r;Ua=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:Ua=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:Ua=i)}return null!=r?r:Ua}function Ce(e,t){var n=e.order;return null==n&&(n=e.order=Va(e.text,t)),n}function Se(e,t,n){var r=S(e.text,t+n,n);return r<0||r>e.text.length?null:r}function _e(e,t,n){var r=Se(e,t.ch,n);return null==r?null:new R(t.line,r,n<0?"after":"before")}function Me(e,t,n,r,i){if(e){var o=Ce(n,t.doc.direction);if(o){var a,s=i<0?m(o):o[0],l=i<0==(1==s.level),c=l?"after":"before";if(s.level>0){var u=Qt(t,n);a=i<0?n.text.length-1:0;var f=Jt(t,u,a).top;a=_(function(e){return Jt(t,u,e).top==f},i<0==(1==s.level)?s.from:s.to-1,a),"before"==c&&(a=Se(n,a,1))}else a=i<0?s.to:s.from;return new R(r,a,c)}}return new R(r,i<0?n.text.length:0,i<0?"before":"after")}function Le(e,t,n,r){var i=Ce(t,e.doc.direction);if(!i)return _e(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ke(i,n.ch,n.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from<n.ch))return _e(t,n,r);var s,l=function(e,n){return Se(t,e instanceof R?e.ch:e,n)},c=function(n){return e.options.lineWrapping?(s=s||Qt(e,t),vn(e,t,s,n)):{begin:0,end:t.text.length}},u=c("before"==n.sticky?l(n,-1):n.ch);if("rtl"==e.doc.direction||1==a.level){var f=1==a.level==r<0,d=l(n,f?1:-1);if(null!=d&&(f?d<=a.to&&d<=u.end:d>=a.from&&d>=u.begin)){var h=f?"before":"after";return new R(n.line,d,h)}}var p=function(e,t,r){for(var o=function(e,t){return t?new R(n.line,l(e,1),"before"):new R(n.line,e,"after")};e>=0&&e<i.length;e+=t){var a=i[e],s=t>0==(1!=a.level),c=s?r.begin:l(r.end,-1);if(a.from<=c&&c<a.to)return o(c,s);if(c=s?a.from:l(a.to,-1),r.begin<=c&&c<r.end)return o(c,s)}},m=p(o+r,r,u);if(m)return m;var g=r>0?u.end:l(u.begin,-1);return null==g||r>0&&g==t.text.length||!(m=p(r>0?0:i.length-1,r,c(g)))?null:m}function Te(e,t){return e._handlers&&e._handlers[t]||$a}function Ae(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var r=e._handlers,i=r&&r[t];if(i){var o=d(i,n);o>-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function Oe(e,t){var n=Te(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)}function Ee(e,t,n){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Oe(e,n||t.type,e,t),ze(t)||t.codemirrorIgnore}function Ne(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var n=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),r=0;r<t.length;++r)d(n,t[r])==-1&&n.push(t[r])}function Ie(e,t){return Te(e,t).length>0}function Pe(e){e.prototype.on=function(e,t){Ga(this,e,t)},e.prototype.off=function(e,t){Ae(this,e,t)}}function Re(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Be(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ze(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function De(e){Re(e),Be(e)}function Fe(e){return e.target||e.srcElement}function We(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Ca&&e.ctrlKey&&1==t&&(t=3),t}function qe(e){if(null==Ia){var t=r("span","​");n(e,r("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Ia=t.offsetWidth<=1&&t.offsetHeight>2&&!(fa&&da<8))}var i=Ia?r("span","​"):r("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function He(e){if(null!=Pa)return Pa;var r=n(e,document.createTextNode("AخA")),i=La(r,0,1).getBoundingClientRect(),o=La(r,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(Pa=o.right-i.right<3)}function je(e){if(null!=Za)return Za;var t=n(e,r("span","x")),i=t.getBoundingClientRect(),o=La(t,0,1).getBoundingClientRect();return Za=Math.abs(i.left-o.left)>1}function Ke(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),es[e]=t}function Ue(e,t){ts[e]=t}function Ve(e){if("string"==typeof e&&ts.hasOwnProperty(e))e=ts[e];else if(e&&"string"==typeof e.name&&ts.hasOwnProperty(e.name)){var t=ts[e.name];"string"==typeof t&&(t={name:t}),e=b(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ve("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ve("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function $e(e,t){t=Ve(t);var n=es[t.name];if(!n)return $e(e,"text/plain");var r=n(e,t);if(ns.hasOwnProperty(t.name)){var i=ns[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}function Ge(e,t){u(t,ns.hasOwnProperty(e)?ns[e]:ns[e]={})}function Xe(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Ye(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Qe(e,t,n){return!e.startState||e.startState(t,n)}function Je(e,t,n,r){var i=[e.state.modeGen],o={};at(e,t.text,e.doc.mode,n,function(e,t){return i.push(e,t)},o,r);for(var a=n.state,s=0;s<e.state.overlays.length;++s)!function(r){var a=e.state.overlays[r],s=1,l=0;n.state=!0,at(e,t.text,a.mode,n,function(e,t){for(var n=s;l<e;){var r=i[s];r>e&&i.splice(s,1,e,i[s+1],r),s+=2,l=Math.min(e,r)}if(t)if(a.opaque)i.splice(n,s-n,e,"overlay "+t),s=n+2;else for(;n<s;n+=2){var o=i[n+1];i[n+1]=(o?o+" ":"")+"overlay "+t}},o)}(s);return n.state=a,{styles:i,classes:o.bgClass||o.textClass?o:null}}function Ze(e,t,n){if(!t.styles||t.styles[0]!=e.state.modeGen){var r=et(e,E(t)),i=t.text.length>e.options.maxHighlightLength&&Xe(e.doc.mode,r.state),o=Je(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function et(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new os(r,!0,t);var o=st(e,t,n),a=o>r.first&&L(r,o-1).stateAfter,s=a?os.fromSaved(r,a,o):new os(r,Qe(r.mode),o);return r.iter(o,t,function(n){tt(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&r<i.viewTo?s.save():null,s.nextLine()}),n&&(r.modeFrontier=s.line),s}function tt(e,t,n,r){var i=e.doc.mode,o=new rs(t,e.options.tabSize,n);for(o.start=o.pos=r||0,""==t&&nt(i,n.state);!o.eol();)rt(i,o,n.state),o.start=o.pos}function nt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var n=Ye(e,t);return n.mode.blankLine?n.mode.blankLine(n.state):void 0}}function rt(e,t,n,r){for(var i=0;i<10;i++){r&&(r[0]=Ye(e,n).mode);var o=e.token(t,n);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function it(e,t,n,r){var i,o=e.doc,a=o.mode;t=H(o,t);var s,l=L(o,t.line),c=et(e,t.line,n),u=new rs(l.text,e.options.tabSize,c);for(r&&(s=[]);(r||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=rt(a,u,c.state),r&&s.push(new as(u,i,Xe(o.mode,c.state)));return r?s:new as(u,i,c.state)}function ot(e,t){if(e)for(;;){var n=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!n)break;e=e.slice(0,n.index)+e.slice(n.index+n[0].length);var r=n[1]?"bgClass":"textClass";null==t[r]?t[r]=n[2]:new RegExp("(?:^|s)"+n[2]+"(?:$|s)").test(t[r])||(t[r]+=" "+n[2])}return e}function at(e,t,n,r,i,o,a){var s=n.flattenSpans;null==s&&(s=e.options.flattenSpans);var l,c=0,u=null,f=new rs(t,e.options.tabSize,r),d=e.options.addModeClass&&[null];for(""==t&&ot(nt(n,r.state),o);!f.eol();){if(f.pos>e.options.maxHighlightLength?(s=!1,a&&tt(e,t,r,f.pos),f.pos=t.length,l=null):l=ot(rt(n,f,r.state,d),o),d){var h=d[0].name;h&&(l="m-"+(l?h+" "+l:h))}if(!s||u!=l){for(;c<f.start;)c=Math.min(f.start,c+5e3),i(c,u);u=l}f.start=f.pos}for(;c<f.pos;){var p=Math.min(f.pos,c+5e3);i(p,u),c=p}}function st(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>a;--s){if(s<=o.first)return o.first;var l=L(o,s-1),c=l.stateAfter;if(c&&(!n||s+(c instanceof is?c.lookAhead:0)<=o.modeFrontier))return s;var u=f(l.text,null,e.options.tabSize);(null==i||r>u)&&(i=s-1,r=u)}return i}function lt(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var n=e.first,r=t-1;r>n;r--){var i=L(e,r).stateAfter;if(i&&(!(i instanceof is)||r+i.lookAhead<t)){n=r+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,n)}}function ct(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),ne(e),re(e,n);var i=r?r(e):1;i!=e.height&&O(e,i)}function ut(e){e.parent=null,ne(e)}function ft(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?us:cs;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function dt(e,t){var n=i("span",null,null,ha?"padding-right: .1px":null),r={pre:i("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(fa||ha)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var a=o?t.rest[o-1]:t.line,s=void 0;r.pos=0,r.addToken=pt,He(e.display.measure)&&(s=Ce(a,e.doc.direction))&&(r.addToken=gt(r.addToken,s)),r.map=[];yt(a,r,Ze(e,a,t!=e.display.externalMeasured&&E(a))),a.styleClasses&&(a.styleClasses.bgClass&&(r.bgClass=l(a.styleClasses.bgClass,r.bgClass||"")),a.styleClasses.textClass&&(r.textClass=l(a.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(qe(e.display.measure))),0==o?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(ha){var c=r.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return Oe(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=l(r.pre.className,r.textClass||"")),r}function ht(e){var t=r("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function pt(e,t,n,i,o,a,s){if(t){var l,c=e.splitSpaces?mt(t,e.trailingSpace):t,u=e.cm.state.specialChars,f=!1;if(u.test(t)){l=document.createDocumentFragment();for(var d=0;;){u.lastIndex=d;var h=u.exec(t),m=h?h.index-d:t.length-d;if(m){var g=document.createTextNode(c.slice(d,d+m));fa&&da<9?l.appendChild(r("span",[g])):l.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!h)break;d+=m+1;var v=void 0;if("\t"==h[0]){var y=e.cm.options.tabSize,b=y-e.col%y;v=l.appendChild(r("span",p(b),"cm-tab")),v.setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==h[0]||"\n"==h[0]?(v=l.appendChild(r("span","\r"==h[0]?"␍":"␤","cm-invalidchar")),v.setAttribute("cm-text",h[0]),e.col+=1):(v=e.cm.options.specialCharPlaceholder(h[0]),v.setAttribute("cm-text",h[0]),fa&&da<9?l.appendChild(r("span",[v])):l.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,l=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,l),fa&&da<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),n||i||o||f||s){var x=n||"";i&&(x+=i),o&&(x+=o);var w=r("span",[l],x,s);return a&&(w.title=a),e.content.appendChild(w)}e.content.appendChild(l)}}function mt(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!n||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),r+=o,n=" "==o}return r}function gt(e,t){return function(n,r,i,o,a,s,l){i=i?i+" cm-force-border":"cm-force-border";for(var c=n.pos,u=c+r.length;;){for(var f=void 0,d=0;d<t.length&&(f=t[d],!(f.to>c&&f.from<=c));d++);if(f.to>=u)return e(n,r,i,o,a,s,l);e(n,r.slice(0,f.to-c),i,o,null,s,l),o=null,r=r.slice(f.to-c),c=f.to}}}function vt(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function yt(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,s,l,c,u,f,d,h=i.length,p=0,m=1,g="",v=0;;){if(v==p){l=c=u=f=s="",d=null,v=1/0;for(var y=[],b=void 0,x=0;x<r.length;++x){var w=r[x],k=w.marker;"bookmark"==k.type&&w.from==p&&k.widgetNode?y.push(k):w.from<=p&&(null==w.to||w.to>p||k.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),k.className&&(l+=" "+k.className),k.css&&(s=(s?s+";":"")+k.css),k.startStyle&&w.from==p&&(u+=" "+k.startStyle),k.endStyle&&w.to==v&&(b||(b=[])).push(k.endStyle,w.to),k.title&&!f&&(f=k.title),k.collapsed&&(!d||ae(d.marker,k)<0)&&(d=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var C=0;C<b.length;C+=2)b[C+1]==v&&(c+=" "+b[C]);if(!d||d.from==p)for(var S=0;S<y.length;++S)vt(t,0,y[S]);if(d&&(d.from||0)==p){if(vt(t,(null==d.to?h+1:d.to)-p,d.marker,null==d.from),null==d.to)return;d.to==p&&(d=!1)}}if(p>=h)break;for(var _=Math.min(h,v);;){if(g){var M=p+g.length;if(!d){var L=M>_?g.slice(0,_-p):g;t.addToken(t,L,a?a+l:l,u,p+L.length==v?c:"",f,s)}if(M>=_){g=g.slice(_-p),p=_;break}p=M,u=""}g=i.slice(o,o=n[m++]),a=ft(n[m++],t.cm.options)}}else for(var T=1;T<n.length;T+=2)t.addToken(t,i.slice(o,o=n[T]),ft(n[T+1],t.cm.options))}function bt(e,t,n){this.line=t,this.rest=he(t),this.size=this.rest?E(m(this.rest))-n+1:1,this.node=this.text=null,this.hidden=ge(e,t)}function xt(e,t,n){for(var r,i=[],o=t;o<n;o=r){var a=new bt(e.doc,L(e.doc,o),o);r=o+a.size,i.push(a)}return i}function wt(e){fs?fs.ops.push(e):e.ownsGroup=fs={ops:[e],delayedCallbacks:[]}}function kt(e){var t=e.delayedCallbacks,n=0;do{for(;n<t.length;n++)t[n].call(null);for(var r=0;r<e.ops.length;r++){var i=e.ops[r];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(n<t.length)}function Ct(e,t){var n=e.ownsGroup;if(n)try{kt(n)}finally{fs=null,t(n)}}function St(e,t){var n=Te(e,t);if(n.length){var r,i=Array.prototype.slice.call(arguments,2);fs?r=fs.delayedCallbacks:ds?r=ds:(r=ds=[],setTimeout(_t,0));for(var o=0;o<n.length;++o)!function(e){r.push(function(){return n[e].apply(null,i)})}(o)}}function _t(){var e=ds;ds=null;for(var t=0;t<e.length;++t)e[t]()}function Mt(e,t,n,r){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?Ot(e,t):"gutter"==o?Nt(e,t,n,r):"class"==o?Et(e,t):"widget"==o&&It(e,t,r)}t.changes=null}function Lt(e){return e.node==e.text&&(e.node=r("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),fa&&da<8&&(e.node.style.zIndex=2)),e.node}function Tt(e,t){var n=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(n&&(n+=" CodeMirror-linebackground"),t.background)n?t.background.className=n:(t.background.parentNode.removeChild(t.background),t.background=null);else if(n){var i=Lt(t);t.background=i.insertBefore(r("div",null,n),i.firstChild),e.display.input.setUneditable(t.background)}}function At(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):dt(e,t)}function Ot(e,t){var n=t.text.className,r=At(e,t);t.text==t.node&&(t.node=r.pre),t.text.parentNode.replaceChild(r.pre,t.text),t.text=r.pre,r.bgClass!=t.bgClass||r.textClass!=t.textClass?(t.bgClass=r.bgClass,t.textClass=r.textClass,Et(e,t)):n&&(t.text.className=n)}function Et(e,t){Tt(e,t),t.line.wrapClass?Lt(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var n=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=n||""}function Nt(e,t,n,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Lt(t);t.gutterBackground=r("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var a=t.line.gutterMarkers;if(e.options.lineNumbers||a){var s=Lt(t),l=t.gutter=r("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(l),s.insertBefore(l,t.text),t.line.gutterClass&&(l.className+=" "+t.line.gutterClass),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(t.lineNumber=l.appendChild(r("div",P(e.options,n),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),a)for(var c=0;c<e.options.gutters.length;++c){var u=e.options.gutters[c],f=a.hasOwnProperty(u)&&a[u];f&&l.appendChild(r("div",[f],"CodeMirror-gutter-elt","left: "+i.gutterLeft[u]+"px; width: "+i.gutterWidth[u]+"px"))}}}function It(e,t,n){t.alignable&&(t.alignable=null);for(var r=t.node.firstChild,i=void 0;r;r=i)i=r.nextSibling,"CodeMirror-linewidget"==r.className&&t.node.removeChild(r);Rt(e,t,n)}function Pt(e,t,n,r){var i=At(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),Et(e,t),Nt(e,t,n,r),Rt(e,t,r),t.node}function Rt(e,t,n){if(Bt(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.length;r++)Bt(e,t.rest[r],t,n,!1)}function Bt(e,t,n,i,o){if(t.widgets)for(var a=Lt(n),s=0,l=t.widgets;s<l.length;++s){var c=l[s],u=r("div",[c.node],"CodeMirror-linewidget");c.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),zt(c,u,n,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,n.gutter||n.text):a.appendChild(u),St(c,"redraw")}}function zt(e,t,n,r){if(e.noHScroll){(n.alignable||(n.alignable=[])).push(t);var i=r.wrapperWidth;t.style.left=r.fixedPos+"px",e.coverGutter||(i-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+"px"))}function Dt(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),n(t.display.measure,r("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function Ft(e,t){for(var n=Fe(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n.nodeType&&"true"==n.getAttribute("cm-ignore-events")||n.parentNode==e.sizer&&n!=e.mover)return!0}function Wt(e){return e.lineSpace.offsetTop}function qt(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Ht(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=n(e.measure,r("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function jt(e){return Ra-e.display.nativeBarWidth}function Kt(e){return e.display.scroller.clientWidth-jt(e)-e.display.barWidth}function Ut(e){return e.display.scroller.clientHeight-jt(e)-e.display.barHeight}function Vt(e,t,n){var r=e.options.lineWrapping,i=r&&Kt(e);if(!t.measure.heights||r&&t.measure.width!=i){var o=t.measure.heights=[];if(r){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),s=0;s<a.length-1;s++){var l=a[s],c=a[s+1];Math.abs(l.bottom-c.bottom)>2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function $t(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var r=0;r<e.rest.length;r++)if(e.rest[r]==t)return{map:e.measure.maps[r],cache:e.measure.caches[r]};for(var i=0;i<e.rest.length;i++)if(E(e.rest[i])>n)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Gt(e,t){t=fe(t);var r=E(t),i=e.display.externalMeasured=new bt(e.doc,t,r);i.lineN=r;var o=i.built=dt(e,i);return i.text=o.pre,
2
+ n(e.display.lineMeasure,o.pre),i}function Xt(e,t,n,r){return Jt(e,Qt(e,t),n,r)}function Yt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Mn(e,t)];var n=e.display.externalMeasured;return n&&t>=n.lineN&&t<n.lineN+n.size?n:void 0}function Qt(e,t){var n=E(t),r=Yt(e,n);r&&!r.text?r=null:r&&r.changes&&(Mt(e,r,n,wn(e)),e.curOp.forceUpdate=!0),r||(r=Gt(e,t));var i=$t(r,t,n);return{line:t,view:r,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Jt(e,t,n,r,i){t.before&&(n=-1);var o,a=n+(r||"");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(Vt(e,t.view,t.rect),t.hasHeights=!0),o=tn(e,t,n,r),o.bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}function Zt(e,t,n){for(var r,i,o,a,s,l,c=0;c<e.length;c+=3)if(s=e[c],l=e[c+1],t<s?(i=0,o=1,a="left"):t<l?(i=t-s,o=i+1):(c==e.length-3||t==l&&e[c+3]>t)&&(o=l-s,i=o-1,t>=l&&(a="right")),null!=i){if(r=e[c+2],s==l&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)r=e[2+(c-=3)],a="left";if("right"==n&&i==l-s)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)r=e[2+(c+=3)],a="right";break}return{node:r,start:i,end:o,collapse:a,coverStart:s,coverEnd:l}}function en(e,t){var n=hs;if("left"==t)for(var r=0;r<e.length&&(n=e[r]).left==n.right;r++);else for(var i=e.length-1;i>=0&&(n=e[i]).left==n.right;i--);return n}function tn(e,t,n,r){var i,o=Zt(t.map,n,r),a=o.node,s=o.start,l=o.end,c=o.collapse;if(3==a.nodeType){for(var u=0;u<4;u++){for(;s&&C(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+l<o.coverEnd&&C(t.line.text.charAt(o.coverStart+l));)++l;if(i=fa&&da<9&&0==s&&l==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():en(La(a,s,l).getClientRects(),r),i.left||i.right||0==s)break;l=s,s-=1,c="right"}fa&&da<11&&(i=nn(e.display.measure,i))}else{s>0&&(c=r="right");var f;i=e.options.lineWrapping&&(f=a.getClientRects()).length>1?f["right"==r?f.length-1:0]:a.getBoundingClientRect()}if(fa&&da<9&&!s&&(!i||!i.left&&!i.right)){var d=a.parentNode.getClientRects()[0];i=d?{left:d.left,right:d.left+xn(e.display),top:d.top,bottom:d.bottom}:hs}for(var h=i.top-t.rect.top,p=i.bottom-t.rect.top,m=(h+p)/2,g=t.view.measure.heights,v=0;v<g.length-1&&!(m<g[v]);v++);var y=v?g[v-1]:0,b=g[v],x={left:("right"==c?i.right:i.left)-t.rect.left,right:("left"==c?i.left:i.right)-t.rect.left,top:y,bottom:b};return i.left||i.right||(x.bogus=!0),e.options.singleCursorHeightPerLine||(x.rtop=h,x.rbottom=p),x}function nn(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!je(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}function rn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function on(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var n=0;n<e.display.view.length;n++)rn(e.display.view[n])}function an(e){on(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function sn(){return ma&&wa?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function ln(){return ma&&wa?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function cn(e,t,n,r,i){if(!i&&t.widgets)for(var o=0;o<t.widgets.length;++o)if(t.widgets[o].above){var a=Dt(t.widgets[o]);n.top+=a,n.bottom+=a}if("line"==r)return n;r||(r="local");var s=ye(t);if("local"==r?s+=Wt(e.display):s-=e.display.viewOffset,"page"==r||"window"==r){var l=e.display.lineSpace.getBoundingClientRect();s+=l.top+("window"==r?0:ln());var c=l.left+("window"==r?0:sn());n.left+=c,n.right+=c}return n.top+=s,n.bottom+=s,n}function un(e,t,n){if("div"==n)return t;var r=t.left,i=t.top;if("page"==n)r-=sn(),i-=ln();else if("local"==n||!n){var o=e.display.sizer.getBoundingClientRect();r+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:r-a.left,top:i-a.top}}function fn(e,t,n,r,i){return r||(r=L(e.doc,t.line)),cn(e,r,Xt(e,r,t.ch,i),n)}function dn(e,t,n,r,i,o){function a(t,a){var s=Jt(e,i,t,a?"right":"left",o);return a?s.left=s.right:s.right=s.left,cn(e,r,s,n)}function s(e,t,n){var r=l[t],i=r.level%2!=0;return a(n?e-1:e,i!=n)}r=r||L(e.doc,t.line),i||(i=Qt(e,r));var l=Ce(r,e.doc.direction),c=t.ch,u=t.sticky;if(c>=r.text.length?(c=r.text.length,u="before"):c<=0&&(c=0,u="after"),!l)return a("before"==u?c-1:c,"before"==u);var f=ke(l,c,u),d=Ua,h=s(c,f,"before"==u);return null!=d&&(h.other=s(c,d,"before"!=u)),h}function hn(e,t){var n=0;t=H(e.doc,t),e.options.lineWrapping||(n=xn(e.display)*t.ch);var r=L(e.doc,t.line),i=ye(r)+Wt(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function pn(e,t,n,r,i){var o=R(e,t,n);return o.xRel=i,r&&(o.outside=!0),o}function mn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return pn(r.first,0,null,!0,-1);var i=N(r,n),o=r.first+r.size-1;if(i>o)return pn(r.first+r.size-1,L(r,o).text.length,null,!0,1);t<0&&(t=0);for(var a=L(r,i);;){var s=yn(e,a,i,t,n),l=ce(a),c=l&&l.find(0,!0);if(!l||!(s.ch>c.from.ch||s.ch==c.from.ch&&s.xRel>0))return s;i=E(a=c.to.line)}}function gn(e,t,n,r){var i=function(r){return cn(e,t,Jt(e,n,r),"line")},o=t.text.length,a=_(function(e){return i(e-1).bottom<=r},o,0);return o=_(function(e){return i(e).top>r},a,o),{begin:a,end:o}}function vn(e,t,n,r){return gn(e,t,n,cn(e,t,Jt(e,n,r),"line").top)}function yn(e,t,n,r,i){i-=ye(t);var o,a=0,s=t.text.length,l=Qt(e,t);if(Ce(t,e.doc.direction)){if(e.options.lineWrapping){var c;c=gn(e,t,l,i),a=c.begin,s=c.end}o=new R(n,Math.floor(a+(s-a)/2));var u,f,d=dn(e,o,"line",t,l).left,h=d<r?1:-1,p=d-r,m=Math.ceil((s-a)/4);e:do{u=p,f=o;for(var g=0;g<m;++g){var v=o;if(null==(o=Le(e,t,o,h))||o.ch<a||s<=("before"==o.sticky?o.ch-1:o.ch)){o=v;break e}}if(p=dn(e,o,"line",t,l).left-r,m>1){var y=Math.abs(p-u)/m;m=Math.min(m,Math.ceil(Math.abs(p)/y)),h=p<0?1:-1}}while(0!=p&&(m>1||h<0!=p<0&&Math.abs(p)<=Math.abs(u)));if(Math.abs(p)>Math.abs(u)){if(p<0==u<0)throw new Error("Broke out of infinite loop in coordsCharInner");o=f}}else{var b=_(function(n){var o=cn(e,t,Jt(e,l,n),"line");return o.top>i?(s=Math.min(n,s),!0):!(o.bottom<=i)&&(o.left>r||!(o.right<r)&&r-o.left<o.right-r)},a,s);b=S(t.text,b,1),o=new R(n,b,b==s?"before":"after")}var x=dn(e,o,"line",t,l);return(i<x.top||x.bottom<i)&&(o.outside=!0),o.xRel=r<x.left?-1:r>x.right?1:0,o}function bn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==ls){ls=r("pre");for(var i=0;i<49;++i)ls.appendChild(document.createTextNode("x")),ls.appendChild(r("br"));ls.appendChild(document.createTextNode("x"))}n(e.measure,ls);var o=ls.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function xn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=r("span","xxxxxxxxxx"),i=r("pre",[t]);n(e.measure,i);var o=t.getBoundingClientRect(),a=(o.right-o.left)/10;return a>2&&(e.cachedCharWidth=a),a||10}function wn(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)n[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,r[e.options.gutters[a]]=o.clientWidth;return{fixedPos:kn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function kn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Cn(e){var t=bn(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/xn(e.display)-3);return function(i){if(ge(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return n?o+(Math.ceil(i.text.length/r)||1)*t:o+t}}function Sn(e){var t=e.doc,n=Cn(e);t.iter(function(e){var t=n(e);t!=e.height&&O(e,t)})}function _n(e,t,n,r){var i=e.display;if(!n&&"true"==Fe(t).getAttribute("cm-not-content"))return null;var o,a,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,a=t.clientY-s.top}catch(e){return null}var l,c=mn(e,o,a);if(r&&1==c.xRel&&(l=L(e.doc,c.line).text).length==c.ch){var u=f(l,l.length,e.options.tabSize)-l.length;c=R(c.line,Math.max(0,Math.round((o-Ht(e.display).left)/xn(e.display))-u))}return c}function Mn(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;r<n.length;r++)if((t-=n[r].size)<0)return r}function Ln(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Tn(e,t){for(var n=e.doc,r={},i=r.cursors=document.createDocumentFragment(),o=r.selection=document.createDocumentFragment(),a=0;a<n.sel.ranges.length;a++)if(t!==!1||a!=n.sel.primIndex){var s=n.sel.ranges[a];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var l=s.empty();(l||e.options.showCursorWhenSelecting)&&An(e,s.head,i),l||On(e,s,o)}}return r}function An(e,t,n){var i=dn(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=n.appendChild(r("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var a=n.appendChild(r("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=i.other.left+"px",a.style.top=i.other.top+"px",a.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function On(e,t,n){function i(e,t,n,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),l.appendChild(r("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==n?f-e:n)+"px;\n height: "+(i-t)+"px"))}function o(t,n,r){function o(n,r){return fn(e,R(t,n),"div",c,r)}var a,l,c=L(s,t),d=c.text.length;return we(Ce(c,s.direction),n||0,null==r?d:r,function(e,t,s){var c,h,p,m=o(e,"left");if(e==t)c=m,h=p=m.left;else{if(c=o(t-1,"right"),"rtl"==s){var g=m;m=c,c=g}h=m.left,p=c.right}null==n&&0==e&&(h=u),c.top-m.top>3&&(i(h,m.top,null,m.bottom),h=u,m.bottom<c.top&&i(h,m.bottom,null,c.top)),null==r&&t==d&&(p=f),(!a||m.top<a.top||m.top==a.top&&m.left<a.left)&&(a=m),(!l||c.bottom>l.bottom||c.bottom==l.bottom&&c.right>l.right)&&(l=c),h<u+1&&(h=u),i(h,c.top,p-h,c.bottom)}),{start:a,end:l}}var a=e.display,s=e.doc,l=document.createDocumentFragment(),c=Ht(e.display),u=c.left,f=Math.max(a.sizerWidth,Kt(e)-a.sizer.offsetLeft)-c.right,d=t.from(),h=t.to();if(d.line==h.line)o(d.line,d.ch,h.ch);else{var p=L(s,d.line),m=L(s,h.line),g=fe(p)==fe(m),v=o(d.line,d.ch,g?p.text.length+1:null).end,y=o(h.line,g?0:null,h.ch).start;g&&(v.top<y.top-2?(i(v.right,v.top,null,v.bottom),i(u,y.top,y.left,y.bottom)):i(v.right,v.top,y.left-v.right,v.bottom)),v.bottom<y.top&&i(u,v.bottom,null,y.top)}n.appendChild(l)}function En(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var n=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Nn(e){e.state.focused||(e.display.input.focus(),Pn(e))}function In(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Rn(e))},100)}function Pn(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Oe(e,"focus",e,t),e.state.focused=!0,s(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),ha&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),En(e))}function Rn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Oe(e,"blur",e,t),e.state.focused=!1,Oa(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Bn(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r<t.view.length;r++){var i=t.view[r],o=void 0;if(!i.hidden){if(fa&&da<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-n,n=a}else{var s=i.node.getBoundingClientRect();o=s.bottom-s.top}var l=i.line.height-o;if(o<2&&(o=bn(t)),(l>.005||l<-.005)&&(O(i.line,o),zn(i.line),i.rest))for(var c=0;c<i.rest.length;c++)zn(i.rest[c])}}}function zn(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function Dn(e,t,n){var r=n&&null!=n.top?Math.max(0,n.top):e.scroller.scrollTop;r=Math.floor(r-Wt(e));var i=n&&null!=n.bottom?n.bottom:r+e.wrapper.clientHeight,o=N(t,r),a=N(t,i);if(n&&n.ensure){var s=n.ensure.from.line,l=n.ensure.to.line;s<o?(o=s,a=N(t,ye(L(t,s))+e.wrapper.clientHeight)):Math.min(l,t.lastLine())>=a&&(o=N(t,ye(L(t,l))-e.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function Fn(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=kn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;a<n.length;a++)if(!n[a].hidden){e.options.fixedGutter&&(n[a].gutter&&(n[a].gutter.style.left=o),n[a].gutterBackground&&(n[a].gutterBackground.style.left=o));var s=n[a].alignable;if(s)for(var l=0;l<s.length;l++)s[l].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=r+i+"px")}}function Wn(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=P(e.options,t.first+t.size-1),i=e.display;if(n.length!=i.lineNumChars){var o=i.measure.appendChild(r("div",[r("div",n)],"CodeMirror-linenumber CodeMirror-gutter-elt")),a=o.firstChild.offsetWidth,s=o.offsetWidth-a;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(a,i.lineGutter.offsetWidth-s)+1,i.lineNumWidth=i.lineNumInnerWidth+s,i.lineNumChars=i.lineNumInnerWidth?n.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Er(e),!0}return!1}function qn(e,t){if(!Ee(e,"scrollCursorIntoView")){var n=e.display,i=n.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!ba){var a=r("div","​",null,"position: absolute;\n top: "+(t.top-n.viewOffset-Wt(e.display))+"px;\n height: "+(t.bottom-t.top+jt(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}function Hn(e,t,n,r){null==r&&(r=0);var i;e.options.lineWrapping||t!=n||(t=t.ch?R(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t,n="before"==t.sticky?R(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,s=dn(e,t),l=n&&n!=t?dn(e,n):s;i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r};var c=Kn(e,i),u=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=c.scrollTop&&(Qn(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(Zn(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-f)>1&&(a=!0)),!a)break}return i}function jn(e,t){var n=Kn(e,t);null!=n.scrollTop&&Qn(e,n.scrollTop),null!=n.scrollLeft&&Zn(e,n.scrollLeft)}function Kn(e,t){var n=e.display,r=bn(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=Ut(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+qt(n),l=t.top<r,c=t.bottom>s-r;if(t.top<i)a.scrollTop=l?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?s:t.bottom)-o);u!=i&&(a.scrollTop=u)}var f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft,d=Kt(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),h=t.right-t.left>d;return h&&(t.right=t.left+d),t.left<10?a.scrollLeft=0:t.left<f?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>d+f-3&&(a.scrollLeft=t.right+(h?0:10)-d),a}function Un(e,t){null!=t&&(Xn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Vn(e){Xn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function $n(e,t,n){null==t&&null==n||Xn(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Gn(e,t){Xn(e),e.curOp.scrollToPos=t}function Xn(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;Yn(e,hn(e,t.from),hn(e,t.to),t.margin)}}function Yn(e,t,n,r){var i=Kn(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});$n(e,i.scrollLeft,i.scrollTop)}function Qn(e,t){Math.abs(e.doc.scrollTop-t)<2||(sa||Ar(e,{top:t}),Jn(e,t,!0),sa&&Ar(e),kr(e,100))}function Jn(e,t,n){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Zn(e,t,n,r){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,Fn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function er(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+qt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+jt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}function tr(e,t){t||(t=er(e));var n=e.display.barWidth,r=e.display.barHeight;nr(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&Bn(e),nr(e,er(e)),n=e.display.barWidth,r=e.display.barHeight}function nr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}function rr(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&Oa(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new gs[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Ga(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,n){"horizontal"==n?Zn(e,t):Qn(e,t)},e),e.display.scrollbars.addClass&&s(e.display.wrapper,e.display.scrollbars.addClass)}function ir(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++vs},wt(e.curOp)}function or(e){Ct(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;ar(e)})}function ar(e){for(var t=e.ops,n=0;n<t.length;n++)sr(t[n]);for(var r=0;r<t.length;r++)lr(t[r]);for(var i=0;i<t.length;i++)cr(t[i]);for(var o=0;o<t.length;o++)ur(t[o]);for(var a=0;a<t.length;a++)fr(t[a])}function sr(e){var t=e.cm,n=t.display;Sr(t),e.updateMaxLine&&xe(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<n.viewFrom||e.scrollToPos.to.line>=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new ys(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function lr(e){e.updatedDisplay=e.mustUpdate&&Lr(e.cm,e.update)}function cr(e){var t=e.cm,n=t.display;e.updatedDisplay&&Bn(t),e.barMeasure=er(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Xt(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+jt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Kt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection(e.focus))}function ur(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&Zn(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var n=e.focus&&e.focus==a()&&(!document.hasFocus||document.hasFocus());e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,n),(e.updatedDisplay||e.startHeight!=t.doc.height)&&tr(t,e.barMeasure),e.updatedDisplay&&Nr(t,e.barMeasure),e.selectionChanged&&En(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),n&&Nn(e.cm)}function fr(e){var t=e.cm,n=t.display,r=t.doc;if(e.updatedDisplay&&Tr(t,e.update),null==n.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(n.wheelStartX=n.wheelStartY=null),null!=e.scrollTop&&Jn(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&Zn(t,e.scrollLeft,!0,!0),e.scrollToPos){qn(t,Hn(t,H(r,e.scrollToPos.from),H(r,e.scrollToPos.to),e.scrollToPos.margin))}var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a<i.length;++a)i[a].lines.length||Oe(i[a],"hide");if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&Oe(o[s],"unhide");n.wrapper.offsetHeight&&(r.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Oe(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function dr(e,t){if(e.curOp)return t();ir(e);try{return t()}finally{or(e)}}function hr(e,t){return function(){if(e.curOp)return t.apply(e,arguments);ir(e);try{return t.apply(e,arguments)}finally{or(e)}}}function pr(e){return function(){if(this.curOp)return e.apply(this,arguments);ir(this);try{return e.apply(this,arguments)}finally{or(this)}}}function mr(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);ir(t);try{return e.apply(this,arguments)}finally{or(t)}}}function gr(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),r||(r=0);var i=e.display;if(r&&n<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ka&&pe(e.doc,t)<i.viewTo&&yr(e);else if(n<=i.viewFrom)Ka&&me(e.doc,n+r)>i.viewFrom?yr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)yr(e);else if(t<=i.viewFrom){var o=br(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):yr(e)}else if(n>=i.viewTo){var a=br(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):yr(e)}else{var s=br(e,t,t,-1),l=br(e,n,n+r,1);s&&l?(i.view=i.view.slice(0,s.index).concat(xt(e,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):yr(e)}var c=i.externalMeasured;c&&(n<c.lineN?c.lineN+=r:t<c.lineN+c.size&&(i.externalMeasured=null))}function vr(e,t,n){e.curOp.viewChanged=!0;var r=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(r.externalMeasured=null),!(t<r.viewFrom||t>=r.viewTo)){var o=r.view[Mn(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);d(a,n)==-1&&a.push(n)}}}function yr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function br(e,t,n,r){var i,o=Mn(e,t),a=e.display.view;if(!Ka||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,l=0;l<o;l++)s+=a[l].size;if(s!=t){if(r>0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;pe(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function xr(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=xt(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=xt(e,t,r.viewFrom).concat(r.view):r.viewFrom<t&&(r.view=r.view.slice(Mn(e,t))),r.viewFrom=t,r.viewTo<n?r.view=r.view.concat(xt(e,r.viewTo,n)):r.viewTo>n&&(r.view=r.view.slice(0,Mn(e,n)))),r.viewTo=n}function wr(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[r];i.hidden||i.node&&!i.changes||++n}return n}function kr(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,c(Cr,e))}function Cr(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var n=+new Date+e.options.workTime,r=et(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(r.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?Xe(t.mode,r.state):null,l=Je(e,o,r,!0);s&&(r.state=s),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!f&&d<a.length;++d)f=a[d]!=o.styles[d];f&&i.push(r.line),o.stateAfter=r.save(),r.nextLine()}else o.text.length<=e.options.maxHighlightLength&&tt(e,o.text,r),o.stateAfter=r.line%5==0?r.save():null,r.nextLine();if(+new Date>n)return kr(e,e.options.workDelay),!0}),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&dr(e,function(){for(var t=0;t<i.length;t++)vr(e,i[t],"text")})}}function Sr(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=jt(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=jt(e)+"px",t.scrollbarsClipped=!0)}function _r(e){if(e.hasFocus())return null;var t=a();if(!t||!o(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&o(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}function Mr(e){if(e&&e.activeElt&&e.activeElt!=a()&&(e.activeElt.focus(),e.anchorNode&&o(document.body,e.anchorNode)&&o(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}function Lr(e,n){var r=e.display,i=e.doc;if(n.editorIsHidden)return yr(e),!1;if(!n.force&&n.visible.from>=r.viewFrom&&n.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==wr(e))return!1;Wn(e)&&(yr(e),n.dims=wn(e));var o=i.first+i.size,a=Math.max(n.visible.from-e.options.viewportMargin,i.first),s=Math.min(o,n.visible.to+e.options.viewportMargin);r.viewFrom<a&&a-r.viewFrom<20&&(a=Math.max(i.first,r.viewFrom)),r.viewTo>s&&r.viewTo-s<20&&(s=Math.min(o,r.viewTo)),Ka&&(a=pe(e.doc,a),s=me(e.doc,s));var l=a!=r.viewFrom||s!=r.viewTo||r.lastWrapHeight!=n.wrapperHeight||r.lastWrapWidth!=n.wrapperWidth;xr(e,a,s),r.viewOffset=ye(L(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var c=wr(e);if(!l&&0==c&&!n.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var u=_r(e);return c>4&&(r.lineDiv.style.display="none"),Or(e,r.updateLineNumbers,n.dims),c>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,Mr(u),t(r.cursorDiv),t(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,l&&(r.lastWrapHeight=n.wrapperHeight,r.lastWrapWidth=n.wrapperWidth,kr(e,400)),r.updateLineNumbers=null,!0}function Tr(e,t){for(var n=t.viewport,r=!0;(r&&e.options.lineWrapping&&t.oldDisplayWidth!=Kt(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+qt(e.display)-Ut(e),n.top)}),t.visible=Dn(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&Lr(e,t);r=!1){Bn(e);var i=er(e);Ln(e),tr(e,i),Nr(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Ar(e,t){var n=new ys(e,t);if(Lr(e,n)){Bn(e),Tr(e,n);var r=er(e);Ln(e),tr(e,r),Nr(e,r),n.finish()}}function Or(e,n,r){function i(t){var n=t.nextSibling;return ha&&Ca&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var o=e.display,a=e.options.lineNumbers,s=o.lineDiv,l=s.firstChild,c=o.view,u=o.viewFrom,f=0;f<c.length;f++){var h=c[f];if(h.hidden);else if(h.node&&h.node.parentNode==s){for(;l!=h.node;)l=i(l);var p=a&&null!=n&&n<=u&&h.lineNumber;h.changes&&(d(h.changes,"gutter")>-1&&(p=!1),Mt(e,h,u,r)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(P(e.options,u)))),l=h.node.nextSibling}else{var m=Pt(e,h,u,r);s.insertBefore(m,l)}u+=h.size}for(;l;)l=i(l)}function Er(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Nr(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+jt(e)+"px"}function Ir(e){var n=e.display.gutters,i=e.options.gutters;t(n);for(var o=0;o<i.length;++o){var a=i[o],s=n.appendChild(r("div",null,"CodeMirror-gutter "+a));"CodeMirror-linenumbers"==a&&(e.display.lineGutter=s,s.style.width=(e.display.lineNumWidth||1)+"px")}n.style.display=o?"":"none",Er(e)}function Pr(e){var t=d(e.gutters,"CodeMirror-linenumbers");t==-1&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function Rr(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}}function Br(e){var t=Rr(e);return t.x*=xs,t.y*=xs,t}function zr(e,t){var n=Rr(t),r=n.x,i=n.y,o=e.display,a=o.scroller,s=a.scrollWidth>a.clientWidth,l=a.scrollHeight>a.clientHeight;if(r&&s||i&&l){if(i&&Ca&&ha)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var f=0;f<u.length;f++)if(u[f].node==c){e.display.currentWheelTarget=c;break e}if(r&&!sa&&!ga&&null!=xs)return i&&l&&Qn(e,Math.max(0,a.scrollTop+i*xs)),Zn(e,Math.max(0,a.scrollLeft+r*xs)),(!i||i&&l)&&Re(t),void(o.wheelStartX=null);if(i&&null!=xs){var d=i*xs,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;d<0?h=Math.max(0,h+d-50):p=Math.min(e.doc.height,p+d+50),Ar(e,{top:h,bottom:p})}bs<20&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=r,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,n=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,n&&(xs=(xs*bs+n)/(bs+1),++bs)}},200)):(o.wheelDX+=r,o.wheelDY+=i))}}function Dr(e,t){var n=e[t];e.sort(function(e,t){return B(e.from(),t.from())}),t=d(e,n);for(var r=1;r<e.length;r++){var i=e[r],o=e[r-1];if(B(o.to(),i.from())>=0){var a=W(o.from(),i.from()),s=F(o.to(),i.to()),l=o.empty()?i.from()==i.head:o.from()==o.head;r<=t&&--t,e.splice(--r,2,new ks(l?s:a,l?a:s))}}return new ws(e,t)}function Fr(e,t){return new ws([new ks(e,t||e)],0)}function Wr(e){return e.text?R(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function qr(e,t){if(B(e,t.from)<0)return e;if(B(e,t.to)<=0)return Wr(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Wr(t).ch-t.to.ch),R(n,r)}function Hr(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel.ranges[r]
3
+ ;n.push(new ks(qr(i.anchor,t),qr(i.head,t)))}return Dr(n,e.sel.primIndex)}function jr(e,t,n){return e.line==t.line?R(n.line,e.ch-t.ch+n.ch):R(n.line+(e.line-t.line),e.ch)}function Kr(e,t,n){for(var r=[],i=R(e.first,0),o=i,a=0;a<t.length;a++){var s=t[a],l=jr(s.from,i,o),c=jr(Wr(s),i,o);if(i=s.to,o=c,"around"==n){var u=e.sel.ranges[a],f=B(u.head,u.anchor)<0;r[a]=new ks(f?c:l,f?l:c)}else r[a]=new ks(l,l)}return new ws(r,e.sel.primIndex)}function Ur(e){e.doc.mode=$e(e.options,e.doc.modeOption),Vr(e)}function Vr(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,kr(e,100),e.state.modeGen++,e.curOp&&gr(e)}function $r(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Gr(e,t,n,r){function i(e){return n?n[e]:null}function o(e,n,i){ct(e,n,i,r),St(e,"change",e,t)}function a(e,t){for(var n=[],o=e;o<t;++o)n.push(new ss(c[o],i(o),r));return n}var s=t.from,l=t.to,c=t.text,u=L(e,s.line),f=L(e,l.line),d=m(c),h=i(c.length-1),p=l.line-s.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if($r(e,t)){var g=a(0,c.length-1);o(f,f.text,h),p&&e.remove(s.line,p),g.length&&e.insert(s.line,g)}else if(u==f)if(1==c.length)o(u,u.text.slice(0,s.ch)+d+u.text.slice(l.ch),h);else{var v=a(1,c.length-1);v.push(new ss(d+u.text.slice(l.ch),h,r)),o(u,u.text.slice(0,s.ch)+c[0],i(0)),e.insert(s.line+1,v)}else if(1==c.length)o(u,u.text.slice(0,s.ch)+c[0]+f.text.slice(l.ch),i(0)),e.remove(s.line+1,p);else{o(u,u.text.slice(0,s.ch)+c[0],i(0)),o(f,d+f.text.slice(l.ch),h);var y=a(1,c.length-1);p>1&&e.remove(s.line+1,p-1),e.insert(s.line+1,y)}St(e,"change",e,t)}function Xr(e,t,n){function r(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var s=e.linked[a];if(s.doc!=i){var l=o&&s.sharedHist;n&&!l||(t(s.doc,l),r(s.doc,e,l))}}}r(e,null,!0)}function Yr(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Sn(e),Ur(e),Qr(e),e.options.lineWrapping||xe(e),e.options.mode=t.modeOption,gr(e)}function Qr(e){("rtl"==e.doc.direction?s:Oa)(e.display.lineDiv,"CodeMirror-rtl")}function Jr(e){dr(e,function(){Qr(e),gr(e)})}function Zr(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function ei(e,t){var n={from:D(t.from),to:Wr(t),text:T(e,t.from,t.to)};return si(e,n,t.from.line,t.to.line+1),Xr(e,function(e){return si(e,n,t.from.line,t.to.line+1)},!0),n}function ti(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function ni(e,t){return t?(ti(e.done),m(e.done)):e.done.length&&!m(e.done).ranges?m(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),m(e.done)):void 0}function ri(e,t,n,r){var i=e.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>s-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=ni(i,i.lastOp==r)))a=m(o.changes),0==B(t.from,t.to)&&0==B(t.from,a.to)?a.to=Wr(t):o.changes.push(ei(e,t));else{var l=m(i.done);for(l&&l.ranges||ai(e.sel,i.done),o={changes:[ei(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||Oe(e,"historyAdded")}function ii(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function oi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||ii(e,o,m(i.done),t))?i.done[i.done.length-1]=t:ai(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&r.clearRedo!==!1&&ti(i.undone)}function ai(e,t){var n=m(t);n&&n.ranges&&n.equals(e)||t.push(e)}function si(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function li(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function ci(e,t){var n=t["spans_"+e.id];if(!n)return null;for(var r=[],i=0;i<t.text.length;++i)r.push(li(n[i]));return r}function ui(e,t){var n=ci(e,t),r=Z(e,t);if(!n)return r;if(!r)return n;for(var i=0;i<n.length;++i){var o=n[i],a=r[i];if(o&&a)e:for(var s=0;s<a.length;++s){for(var l=a[s],c=0;c<o.length;++c)if(o[c].marker==l.marker)continue e;o.push(l)}else a&&(n[i]=a)}return n}function fi(e,t,n){for(var r=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)r.push(n?ws.prototype.deepCopy.call(o):o);else{var a=o.changes,s=[];r.push({changes:s});for(var l=0;l<a.length;++l){var c=a[l],u=void 0;if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var f in c)(u=f.match(/^spans_(\d+)$/))&&d(t,Number(u[1]))>-1&&(m(s)[f]=c[f],delete c[f])}}}return r}function di(e,t,n,r){if(r){var i=e.anchor;if(n){var o=B(t,i)<0;o!=B(n,i)<0?(i=t,t=n):o!=B(t,n)<0&&(t=n)}return new ks(i,t)}return new ks(n||t,t)}function hi(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),bi(e,new ws([di(e.sel.primary(),t,n,i)],0),r)}function pi(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)r[o]=di(e.sel.ranges[o],t[o],null,i);bi(e,Dr(r,e.sel.primIndex),n)}function mi(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,bi(e,Dr(i,e.sel.primIndex),r)}function gi(e,t,n,r){bi(e,Fr(t,n),r)}function vi(e,t,n){var r={ranges:t.ranges,update:function(t){var n=this;this.ranges=[];for(var r=0;r<t.length;r++)n.ranges[r]=new ks(H(e,t[r].anchor),H(e,t[r].head))},origin:n&&n.origin};return Oe(e,"beforeSelectionChange",e,r),e.cm&&Oe(e.cm,"beforeSelectionChange",e.cm,r),r.ranges!=t.ranges?Dr(r.ranges,r.ranges.length-1):t}function yi(e,t,n){var r=e.history.done,i=m(r);i&&i.ranges?(r[r.length-1]=t,xi(e,t,n)):bi(e,t,n)}function bi(e,t,n){xi(e,t,n),oi(e,e.sel,e.cm?e.cm.curOp.id:NaN,n)}function xi(e,t,n){(Ie(e,"beforeSelectionChange")||e.cm&&Ie(e.cm,"beforeSelectionChange"))&&(t=vi(e,t,n)),wi(e,Ci(e,t,n&&n.bias||(B(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),n&&n.scroll===!1||!e.cm||Vn(e.cm)}function wi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Ne(e.cm)),St(e,"cursorActivity",e))}function ki(e){wi(e,Ci(e,e.sel,null,!1))}function Ci(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],l=_i(e,a.anchor,s&&s.anchor,n,r),c=_i(e,a.head,s&&s.head,n,r);(i||l!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new ks(l,c))}return i?Dr(i,t.primIndex):t}function Si(e,t,n,r,i){var o=L(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var s=o.markedSpans[a],l=s.marker;if((null==s.from||(l.inclusiveLeft?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(l.inclusiveRight?s.to>=t.ch:s.to>t.ch))){if(i&&(Oe(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(n){var c=l.find(r<0?1:-1),u=void 0;if((r<0?l.inclusiveRight:l.inclusiveLeft)&&(c=Mi(e,c,-r,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=B(c,n))&&(r<0?u<0:u>0))return Si(e,c,t,r,i)}var f=l.find(r<0?-1:1);return(r<0?l.inclusiveLeft:l.inclusiveRight)&&(f=Mi(e,f,r,f.line==t.line?o:null)),f?Si(e,f,t,r,i):null}}return t}function _i(e,t,n,r,i){var o=r||1,a=Si(e,t,n,o,i)||!i&&Si(e,t,n,o,!0)||Si(e,t,n,-o,i)||!i&&Si(e,t,n,-o,!0);return a?a:(e.cantEdit=!0,R(e.first,0))}function Mi(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?H(e,R(t.line-1)):null:n>0&&t.ch==(r||L(e,t.line)).text.length?t.line<e.first+e.size-1?R(t.line+1,0):null:new R(t.line,t.ch+n)}function Li(e){e.setSelection(R(e.firstLine(),0),R(e.lastLine()),za)}function Ti(e,t,n){var r={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return r.canceled=!0}};return n&&(r.update=function(t,n,i,o){t&&(r.from=H(e,t)),n&&(r.to=H(e,n)),i&&(r.text=i),void 0!==o&&(r.origin=o)}),Oe(e,"beforeChange",e,r),e.cm&&Oe(e.cm,"beforeChange",e.cm,r),r.canceled?null:{from:r.from,to:r.to,text:r.text,origin:r.origin}}function Ai(e,t,n){if(e.cm){if(!e.cm.curOp)return hr(e.cm,Ai)(e,t,n);if(e.cm.state.suppressEdits)return}if(!(Ie(e,"beforeChange")||e.cm&&Ie(e.cm,"beforeChange"))||(t=Ti(e,t,!0))){var r=ja&&!n&&te(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)Oi(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else Oi(e,t)}}function Oi(e,t){if(1!=t.text.length||""!=t.text[0]||0!=B(t.from,t.to)){var n=Hr(e,t);ri(e,t,n,e.cm?e.cm.curOp.id:NaN),Ii(e,t,n,Z(e,t));var r=[];Xr(e,function(e,n){n||d(r,e.history)!=-1||(Di(e.history,t),r.push(e.history)),Ii(e,t,null,Z(e,t))})}}function Ei(e,t,n){if(!e.cm||!e.cm.state.suppressEdits||n){for(var r,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,s="undo"==t?i.undone:i.done,l=0;l<a.length&&(r=a[l],n?!r.ranges||r.equals(e.sel):r.ranges);l++);if(l!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;r=a.pop(),r.ranges;){if(ai(r,s),n&&!r.equals(e.sel))return void bi(e,r,{clearRedo:!1});o=r}var c=[];ai(o,s),s.push({changes:c,generation:i.generation}),i.generation=r.generation||++i.maxGeneration;for(var u=Ie(e,"beforeChange")||e.cm&&Ie(e.cm,"beforeChange"),f=r.changes.length-1;f>=0;--f){var h=function(n){var i=r.changes[n];if(i.origin=t,u&&!Ti(e,i,!1))return a.length=0,{};c.push(ei(e,i));var o=n?Hr(e,i):m(a);Ii(e,i,o,ui(e,i)),!n&&e.cm&&e.cm.scrollIntoView({from:i.from,to:Wr(i)});var s=[];Xr(e,function(e,t){t||d(s,e.history)!=-1||(Di(e.history,i),s.push(e.history)),Ii(e,i,null,ui(e,i))})}(f);if(h)return h.v}}}}function Ni(e,t){if(0!=t&&(e.first+=t,e.sel=new ws(g(e.sel.ranges,function(e){return new ks(R(e.anchor.line+t,e.anchor.ch),R(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){gr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;r<n.viewTo;r++)vr(e.cm,r,"gutter")}}function Ii(e,t,n,r){if(e.cm&&!e.cm.curOp)return hr(e.cm,Ii)(e,t,n,r);if(t.to.line<e.first)return void Ni(e,t.text.length-1-(t.to.line-t.from.line));if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);Ni(e,i),t={from:R(e.first,0),to:R(t.to.line+i,t.to.ch),text:[m(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:R(o,L(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=T(e,t.from,t.to),n||(n=Hr(e,t)),e.cm?Pi(e.cm,t,r):Gr(e,t,r),xi(e,n,za)}}function Pi(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,s=!1,l=o.line;e.options.lineWrapping||(l=E(fe(L(r,o.line))),r.iter(l,a.line+1,function(e){if(e==i.maxLine)return s=!0,!0})),r.sel.contains(t.from,t.to)>-1&&Ne(e),Gr(r,t,n,Cn(e)),e.options.lineWrapping||(r.iter(l,o.line+t.text.length,function(e){var t=be(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),lt(r,o.line),kr(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?gr(e):o.line!=a.line||1!=t.text.length||$r(e.doc,t)?gr(e,o.line,a.line+1,c):vr(e,o.line,"text");var u=Ie(e,"changes"),f=Ie(e,"change");if(f||u){var d={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};f&&St(e,"change",e,d),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(d)}e.display.selForContextMenu=null}function Ri(e,t,n,r,i){if(r||(r=n),B(r,n)<0){var o=r;r=n,n=o}"string"==typeof t&&(t=e.splitLines(t)),Ai(e,{from:n,to:r,text:t,origin:i})}function Bi(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function zi(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||(o=e[i]=o.deepCopy(),o.copied=!0);for(var s=0;s<o.ranges.length;s++)Bi(o.ranges[s].anchor,t,n,r),Bi(o.ranges[s].head,t,n,r)}else{for(var l=0;l<o.changes.length;++l){var c=o.changes[l];if(n<c.from.line)c.from=R(c.from.line+r,c.from.ch),c.to=R(c.to.line+r,c.to.ch);else if(t<=c.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function Di(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;zi(e.done,n,r,i),zi(e.undone,n,r,i)}function Fi(e,t,n,r){var i=t,o=t;return"number"==typeof t?o=L(e,q(e,t)):i=E(t),null==i?null:(r(o,i)&&e.cm&&vr(e.cm,i,n),o)}function Wi(e){var t=this;this.lines=e,this.parent=null;for(var n=0,r=0;r<e.length;++r)e[r].parent=t,n+=e[r].height;this.height=n}function qi(e){var t=this;this.children=e;for(var n=0,r=0,i=0;i<e.length;++i){var o=e[i];n+=o.chunkSize(),r+=o.height,o.parent=t}this.size=n,this.height=r,this.parent=null}function Hi(e,t,n){ye(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Un(e,n)}function ji(e,t,n,r){var i=new Cs(e,n,r),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),Fi(e,t,"widget",function(t){var n=t.widgets||(t.widgets=[]);if(null==i.insertAt?n.push(i):n.splice(Math.min(n.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!ge(e,t)){var r=ye(t)<e.scrollTop;O(t,t.height+Dt(i)),r&&Un(o,i.height),o.curOp.forceUpdate=!0}return!0}),St(o,"lineWidgetAdded",o,i,"number"==typeof t?t:E(t)),i}function Ki(e,t,n,r,o){if(r&&r.shared)return Ui(e,t,n,r,o);if(e.cm&&!e.cm.curOp)return hr(e.cm,Ki)(e,t,n,r,o);var a=new _s(e,o),s=B(t,n);if(r&&u(r,a,!1),s>0||0==s&&a.clearWhenEmpty!==!1)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=i("span",[a.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(ue(e,t.line,t,n,a)||t.line!=n.line&&ue(e,n.line,t,n,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");V()}a.addToHistory&&ri(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var l,c=t.line,f=e.cm;if(e.iter(c,n.line+1,function(e){f&&a.collapsed&&!f.options.lineWrapping&&fe(e)==f.display.maxLine&&(l=!0),a.collapsed&&c!=t.line&&O(e,0),Y(e,new $(a,c==t.line?t.ch:null,c==n.line?n.ch:null)),++c}),a.collapsed&&e.iter(t.line,n.line+1,function(t){ge(e,t)&&O(t,0)}),a.clearOnEnter&&Ga(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(U(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++Ss,a.atomic=!0),f){if(l&&(f.curOp.updateMaxLine=!0),a.collapsed)gr(f,t.line,n.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var d=t.line;d<=n.line;d++)vr(f,d,"text");a.atomic&&ki(f.doc),St(f,"markerAdded",f,a)}return a}function Ui(e,t,n,r,i){r=u(r),r.shared=!1;var o=[Ki(e,t,n,r,i)],a=o[0],s=r.widgetNode;return Xr(e,function(e){s&&(r.widgetNode=s.cloneNode(!0)),o.push(Ki(e,H(e,t),H(e,n),r,i));for(var l=0;l<e.linked.length;++l)if(e.linked[l].isParent)return;a=m(o)}),new Ms(o,a)}function Vi(e){return e.findMarks(R(e.first,0),e.clipPos(R(e.lastLine())),function(e){return e.parent})}function $i(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(B(o,a)){var s=Ki(e,o,a,r.primary,r.primary.type);r.markers.push(s),s.parent=r}}}function Gi(e){for(var t=0;t<e.length;t++)!function(t){var n=e[t],r=[n.primary.doc];Xr(n.primary.doc,function(e){return r.push(e)});for(var i=0;i<n.markers.length;i++){var o=n.markers[i];d(r,o.doc)==-1&&(o.parent=null,n.markers.splice(i--,1))}}(t)}function Xi(e){var t=this;if(Ji(t),!Ee(t,e)&&!Ft(t.display,e)){Re(e),fa&&(As=+new Date);var n=_n(t,e,!0),r=e.dataTransfer.files;if(n&&!t.isReadOnly())if(r&&r.length&&window.FileReader&&window.File)for(var i=r.length,o=Array(i),a=0,s=0;s<i;++s)!function(e,r){if(!t.options.allowDropFileTypes||d(t.options.allowDropFileTypes,e.type)!=-1){var s=new FileReader;s.onload=hr(t,function(){var e=s.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[r]=e,++a==i){n=H(t.doc,n);var l={from:n,to:n,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Ai(t.doc,l),yi(t.doc,Fr(n,Wr(l)))}}),s.readAsText(e)}}(r[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(n)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var l=e.dataTransfer.getData("Text");if(l){var c;if(t.state.draggingText&&!t.state.draggingText.copy&&(c=t.listSelections()),xi(t.doc,Fr(n,n)),c)for(var u=0;u<c.length;++u)Ri(t.doc,"",c[u].anchor,c[u].head,"drag");t.replaceSelection(l,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Yi(e,t){if(fa&&(!e.state.draggingText||+new Date-As<100))return void De(t);if(!Ee(e,t)&&!Ft(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!va)){var n=r("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",ga&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),ga&&n.parentNode.removeChild(n)}}function Qi(e,t){var i=_n(e,t);if(i){var o=document.createDocumentFragment();An(e,i,o),e.display.dragCursor||(e.display.dragCursor=r("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),n(e.display.dragCursor,o)}}function Ji(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Zi(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),n=0;n<t.length;n++){var r=t[n].CodeMirror;r&&e(r)}}function eo(){Os||(to(),Os=!0)}function to(){var e;Ga(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Zi(no)},100))}),Ga(window,"blur",function(){return Zi(Rn)})}function no(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function ro(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var n,r,i,o,a=0;a<t.length-1;a++){var s=t[a];if(/^(cmd|meta|m)$/i.test(s))o=!0;else if(/^a(lt)?$/i.test(s))n=!0;else if(/^(c|ctrl|control)$/i.test(s))r=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error("Unrecognized modifier name: "+s);i=!0}}return n&&(e="Alt-"+e),r&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function io(e){var t={};for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if(/^(name|fallthrough|(de|at)tach)$/.test(n))continue;if("..."==r){delete e[n];continue}for(var i=g(n.split(" "),ro),o=0;o<i.length;o++){var a=void 0,s=void 0;o==i.length-1?(s=i.join(" "),a=r):(s=i.slice(0,o+1).join(" "),a="...");var l=t[s];if(l){if(l!=a)throw new Error("Inconsistent bindings for "+s)}else t[s]=a}delete e[n]}for(var c in t)e[c]=t[c];return e}function oo(e,t,n,r){t=co(t);var i=t.call?t.call(e,r):t[e];if(i===!1)return"nothing";if("..."===i)return"multi";if(null!=i&&n(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return oo(e,t.fallthrough,n,r);for(var o=0;o<t.fallthrough.length;o++){var a=oo(e,t.fallthrough[o],n,r);if(a)return a}}}function ao(e){var t="string"==typeof e?e:Es[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function so(e,t,n){var r=e;return t.altKey&&"Alt"!=r&&(e="Alt-"+e),(Ta?t.metaKey:t.ctrlKey)&&"Ctrl"!=r&&(e="Ctrl-"+e),(Ta?t.ctrlKey:t.metaKey)&&"Cmd"!=r&&(e="Cmd-"+e),!n&&t.shiftKey&&"Shift"!=r&&(e="Shift-"+e),e}function lo(e,t){if(ga&&34==e.keyCode&&e.char)return!1;var n=Es[e.keyCode];return null!=n&&!e.altGraphKey&&so(n,e,t)}function co(e){return"string"==typeof e?Rs[e]:e}function uo(e,t){for(var n=e.doc.sel.ranges,r=[],i=0;i<n.length;i++){for(var o=t(n[i]);r.length&&B(o.from,m(r).to)<=0;){var a=r.pop();if(B(a.from,o.from)<0){o.from=a.from;break}}r.push(o)}dr(e,function(){for(var t=r.length-1;t>=0;t--)Ri(e.doc,"",r[t].from,r[t].to,"+delete");Vn(e)})}function fo(e,t){var n=L(e.doc,t),r=fe(n);return r!=n&&(t=E(r)),Me(!0,e,r,t,1)}function ho(e,t){var n=L(e.doc,t),r=de(n);return r!=n&&(t=E(r)),Me(!0,e,n,t,-1)}function po(e,t){var n=fo(e,t.line),r=L(e.doc,n.line),i=Ce(r,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,r.text.search(/\S/)),a=t.line==n.line&&t.ch<=o&&t.ch;return R(n.line,a?0:o,n.sticky)}return n}function mo(e,t,n){if("string"==typeof t&&!(t=Bs[t]))return!1;e.display.input.ensurePolled();var r=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),i=t(e)!=Ba}finally{e.display.shift=r,e.state.suppressEdits=!1}return i}function go(e,t,n){for(var r=0;r<e.state.keyMaps.length;r++){var i=oo(t,e.state.keyMaps[r],n,e);if(i)return i}return e.options.extraKeys&&oo(t,e.options.extraKeys,n,e)||oo(t,e.options.keyMap,n,e)}function vo(e,t,n,r){var i=e.state.keySeq;if(i){if(ao(t))return"handled";zs.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=go(e,t,r);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&St(e,"keyHandled",e,t,n),"handled"!=o&&"multi"!=o||(Re(n),En(e)),i&&!o&&/\'$/.test(t)?(Re(n),!0):!!o}function yo(e,t){var n=lo(t,!0);return!!n&&(t.shiftKey&&!e.state.keySeq?vo(e,"Shift-"+n,t,function(t){return mo(e,t,!0)})||vo(e,n,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return mo(e,t)}):vo(e,n,t,function(t){return mo(e,t)}))}function bo(e,t,n){return vo(e,"'"+n+"'",t,function(t){return mo(e,t,!0)})}function xo(e){var t=this;if(t.curOp.focus=a(),!Ee(t,e)){fa&&da<11&&27==e.keyCode&&(e.returnValue=!1);var n=e.keyCode;t.display.shift=16==n||e.shiftKey;var r=yo(t,e);ga&&(Ds=r?n:null,!r&&88==n&&!Ja&&(Ca?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=n||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||wo(t)}}function wo(e){function t(e){18!=e.keyCode&&e.altKey||(Oa(n,"CodeMirror-crosshair"),Ae(document,"keyup",t),Ae(document,"mouseover",t))}var n=e.display.lineDiv;s(n,"CodeMirror-crosshair"),Ga(document,"keyup",t),Ga(document,"mouseover",t)}function ko(e){16==e.keyCode&&(this.doc.sel.shift=!1),Ee(this,e)}function Co(e){var t=this;if(!(Ft(t.display,e)||Ee(t,e)||e.ctrlKey&&!e.altKey||Ca&&e.metaKey)){var n=e.keyCode,r=e.charCode;if(ga&&n==Ds)return Ds=null,void Re(e);if(!ga||e.which&&!(e.which<10)||!yo(t,e)){var i=String.fromCharCode(null==r?n:r);"\b"!=i&&(bo(t,e,i)||t.display.input.onKeyPress(e))}}}function So(e,t){var n=+new Date;return qs&&qs.compare(n,e,t)?(Ws=qs=null,"triple"):Ws&&Ws.compare(n,e,t)?(qs=new Fs(n,e,t),Ws=null,"double"):(Ws=new Fs(n,e,t),qs=null,"single")}function _o(e){var t=this,n=t.display;if(!(Ee(t,e)||n.activeTouch&&n.input.supportsTouch())){if(n.input.ensurePolled(),n.shift=e.shiftKey,Ft(n,e))return void(ha||(n.scroller.draggable=!1,setTimeout(function(){return n.scroller.draggable=!0},100)));if(!Io(t,e)){var r=_n(t,e),i=We(e),o=r?So(r,i):"single";window.focus(),1==i&&t.state.selectingText&&t.state.selectingText(e),r&&Mo(t,i,r,o,e)||(1==i?r?To(t,r,o,e):Fe(e)==n.scroller&&Re(e):2==i?(r&&hi(t.doc,r),setTimeout(function(){return n.input.focus()},20)):3==i&&(Aa?Po(t,e):In(t)))}}}function Mo(e,t,n,r,i){var o="Click";return"double"==r?o="Double"+o:"triple"==r&&(o="Triple"+o),o=(1==t?"Left":2==t?"Middle":"Right")+o,vo(e,so(o,i),i,function(t){if("string"==typeof t&&(t=Bs[t]),!t)return!1;var r=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r=t(e,n)!=Ba}finally{e.state.suppressEdits=!1}return r})}function Lo(e,t,n){var r=e.getOption("configureMouse"),i=r?r(e,t,n):{};if(null==i.unit){var o=Sa?n.shiftKey&&n.metaKey:n.altKey;i.unit=o?"rectangle":"single"==t?"char":"double"==t?"word":"line"}return(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||n.shiftKey),null==i.addNew&&(i.addNew=Ca?n.metaKey:n.ctrlKey),null==i.moveOnDrag&&(i.moveOnDrag=!(Ca?n.altKey:n.ctrlKey)),i}function To(e,t,n,r){fa?setTimeout(c(Nn,e),0):e.curOp.focus=a();var i,o=Lo(e,n,r),s=e.doc.sel;e.options.dragDrop&&Xa&&!e.isReadOnly()&&"single"==n&&(i=s.contains(t))>-1&&(B((i=s.ranges[i]).from(),t)<0||t.xRel>0)&&(B(i.to(),t)>0||t.xRel<0)?Ao(e,r,t,o):Eo(e,r,t,o)}function Ao(e,t,n,r){var i=e.display,o=!1,a=hr(e,function(t){ha&&(i.scroller.draggable=!1),e.state.draggingText=!1,Ae(document,"mouseup",a),Ae(document,"mousemove",s),Ae(i.scroller,"dragstart",l),Ae(i.scroller,"drop",a),o||(Re(t),r.addNew||hi(e.doc,n,null,null,r.extend),ha||fa&&9==da?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())}),s=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},l=function(){return o=!0};ha&&(i.scroller.draggable=!0),e.state.draggingText=a,a.copy=!r.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),Ga(document,"mouseup",a),Ga(document,"mousemove",s),Ga(i.scroller,"dragstart",l),Ga(i.scroller,"drop",a),In(e),setTimeout(function(){return i.input.focus()},20)}function Oo(e,t,n){if("char"==n)return new ks(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new ks(R(t.line,0),H(e.doc,R(t.line+1,0)));var r=n(e,t);return new ks(r.from,r.to)}function Eo(e,t,n,r){function i(t){if(0!=B(v,t))if(v=t,"rectangle"==r.unit){for(var i=[],o=e.options.tabSize,a=f(L(c,n.line).text,n.ch,o),s=f(L(c,t.line).text,t.ch,o),l=Math.min(a,s),m=Math.max(a,s),g=Math.min(n.line,t.line),y=Math.min(e.lastLine(),Math.max(n.line,t.line));g<=y;g++){var b=L(c,g).text,x=h(b,l,o);l==m?i.push(new ks(R(g,x),R(g,x))):b.length>x&&i.push(new ks(R(g,x),R(g,h(b,m,o))))}i.length||i.push(new ks(n,n)),bi(c,Dr(p.ranges.slice(0,d).concat(i),d),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var w,k=u,C=Oo(e,t,r.unit),S=k.anchor;B(C.anchor,S)>0?(w=C.head,S=W(k.from(),C.anchor)):(w=C.anchor,S=F(k.to(),C.head));var _=p.ranges.slice(0);_[d]=new ks(H(c,S),w),bi(c,Dr(_,d),Da)}}function o(t){var n=++b,s=_n(e,t,!0,"rectangle"==r.unit);if(s)if(0!=B(s,v)){e.curOp.focus=a(),i(s);var u=Dn(l,c);(s.line>=u.to||s.line<u.from)&&setTimeout(hr(e,function(){b==n&&o(t)}),150)}else{var f=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;f&&setTimeout(hr(e,function(){b==n&&(l.scroller.scrollTop+=f,o(t))}),50)}}function s(t){e.state.selectingText=!1,b=1/0,Re(t),l.input.focus(),Ae(document,"mousemove",x),Ae(document,"mouseup",w),c.history.lastSelOrigin=null}var l=e.display,c=e.doc;Re(t);var u,d,p=c.sel,m=p.ranges;if(r.addNew&&!r.extend?(d=c.sel.contains(n),u=d>-1?m[d]:new ks(n,n)):(u=c.sel.primary(),d=c.sel.primIndex),"rectangle"==r.unit)r.addNew||(u=new ks(n,n)),n=_n(e,t,!0,!0),d=-1;else{var g=Oo(e,n,r.unit);u=r.extend?di(u,g.anchor,g.head,r.extend):g}r.addNew?d==-1?(d=m.length,bi(c,Dr(m.concat([u]),d),{scroll:!1,origin:"*mouse"})):m.length>1&&m[d].empty()&&"char"==r.unit&&!r.extend?(bi(c,Dr(m.slice(0,d).concat(m.slice(d+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):mi(c,d,u,Da):(d=0,bi(c,new ws([u],0),Da),p=c.sel);var v=n,y=l.wrapper.getBoundingClientRect(),b=0,x=hr(e,function(e){We(e)?o(e):s(e)}),w=hr(e,s);e.state.selectingText=w,Ga(document,"mousemove",x),Ga(document,"mouseup",w)}function No(e,t,n,r){var i,o;try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&Re(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!Ie(e,n))return ze(t);o-=s.top-a.viewOffset;for(var l=0;l<e.options.gutters.length;++l){var c=a.gutters.childNodes[l];if(c&&c.getBoundingClientRect().right>=i){return Oe(e,n,e,N(e.doc,o),e.options.gutters[l],t),ze(t)}}}function Io(e,t){return No(e,t,"gutterClick",!0)}function Po(e,t){Ft(e.display,t)||Ro(e,t)||Ee(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function Ro(e,t){return!!Ie(e,"gutterContextMenu")&&No(e,t,"gutterContextMenu",!1)}function Bo(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),an(e)}function zo(e){Ir(e),gr(e),Fn(e)}function Do(e,t,n){if(!t!=!(n&&n!=Hs)){var r=e.display.dragFunctions,i=t?Ga:Ae;i(e.display.scroller,"dragstart",r.start),i(e.display.scroller,"dragenter",r.enter),i(e.display.scroller,"dragover",r.over),i(e.display.scroller,"dragleave",r.leave),i(e.display.scroller,"drop",r.drop)}}function Fo(e){e.options.lineWrapping?(s(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Oa(e.display.wrapper,"CodeMirror-wrap"),xe(e)),Sn(e),gr(e),an(e),setTimeout(function(){return tr(e)},100)}function Wo(e,t){var n=this;if(!(this instanceof Wo))return new Wo(e,t);this.options=t=t?u(t):{},u(js,t,!1),Pr(t);var r=t.value;"string"==typeof r&&(r=new Ts(r,t.mode,null,t.lineSeparator,t.direction)),this.doc=r;var i=new Wo.inputStyles[t.inputStyle](this),o=this.display=new M(e,r,i);o.wrapper.CodeMirror=this,Ir(this),Bo(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),rr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Na,keySeq:null,specialChars:null},t.autofocus&&!ka&&o.input.focus(),fa&&da<11&&setTimeout(function(){return n.display.input.reset(!0)},20),qo(this),eo(),ir(this),this.curOp.forceUpdate=!0,Yr(this,r),t.autofocus&&!ka||this.hasFocus()?setTimeout(c(Pn,this),20):Rn(this);for(var a in Ks)Ks.hasOwnProperty(a)&&Ks[a](n,t[a],Hs);Wn(this),t.finishInit&&t.finishInit(this);for(var s=0;s<Us.length;++s)Us[s](n);or(this),ha&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}function qo(e){function t(){i.activeTouch&&(o=setTimeout(function(){return i.activeTouch=null},1e3),a=i.activeTouch,a.end=+new Date)}function n(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function r(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}var i=e.display;Ga(i.scroller,"mousedown",hr(e,_o)),fa&&da<11?Ga(i.scroller,"dblclick",hr(e,function(t){if(!Ee(e,t)){var n=_n(e,t);if(n&&!Io(e,t)&&!Ft(e.display,t)){Re(t);var r=e.findWordAt(n);hi(e.doc,r.anchor,r.head)}}})):Ga(i.scroller,"dblclick",function(t){return Ee(e,t)||Re(t)}),Aa||Ga(i.scroller,"contextmenu",function(t){return Po(e,t)});var o,a={end:0};Ga(i.scroller,"touchstart",function(t){if(!Ee(e,t)&&!n(t)){i.input.ensurePolled(),clearTimeout(o);var r=+new Date;i.activeTouch={start:r,moved:!1,prev:r-a.end<=300?a:null},1==t.touches.length&&(i.activeTouch.left=t.touches[0].pageX,i.activeTouch.top=t.touches[0].pageY)}}),Ga(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),Ga(i.scroller,"touchend",function(n){var o=i.activeTouch;if(o&&!Ft(i,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var a,s=e.coordsChar(i.activeTouch,"page");a=!o.prev||r(o,o.prev)?new ks(s,s):!o.prev.prev||r(o,o.prev.prev)?e.findWordAt(s):new ks(R(s.line,0),H(e.doc,R(s.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),Re(n)}t()}),Ga(i.scroller,"touchcancel",t),Ga(i.scroller,"scroll",function(){i.scroller.clientHeight&&(Qn(e,i.scroller.scrollTop),Zn(e,i.scroller.scrollLeft,!0),Oe(e,"scroll",e))}),Ga(i.scroller,"mousewheel",function(t){return zr(e,t)}),Ga(i.scroller,"DOMMouseScroll",function(t){return zr(e,t)}),Ga(i.wrapper,"scroll",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){Ee(e,t)||De(t)},over:function(t){Ee(e,t)||(Qi(e,t),De(t))},start:function(t){return Yi(e,t)},drop:hr(e,Xi),leave:function(t){Ee(e,t)||Ji(e)}};var s=i.input.getField();Ga(s,"keyup",function(t){return ko.call(e,t)}),Ga(s,"keydown",hr(e,xo)),Ga(s,"keypress",hr(e,Co)),Ga(s,"focus",function(t){return Pn(e,t)}),Ga(s,"blur",function(t){return Rn(e,t)})}function Ho(e,t,n,r){var i,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=et(e,t).state:n="prev");var a=e.options.tabSize,s=L(o,t),l=f(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(r||/\S/.test(s.text)){if("smart"==n&&((c=o.mode.indent(i,s.text.slice(u.length),s.text))==Ba||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?f(L(o,t-1).text,null,a):0:"add"==n?c=l+e.options.indentUnit:"subtract"==n?c=l-e.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var d="",h=0;if(e.options.indentWithTabs)for(var m=Math.floor(c/a);m;--m)h+=a,d+="\t";if(h<c&&(d+=p(c-h)),
4
+ d!=u)return Ri(o,d,R(t,0),R(t,u.length),"+input"),s.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var v=o.sel.ranges[g];if(v.head.line==t&&v.head.ch<u.length){var y=R(t,u.length);mi(o,g,new ks(y,y));break}}}function jo(e){Vs=e}function Ko(e,t,n,r,i){var o=e.doc;e.display.shift=!1,r||(r=o.sel);var a=e.state.pasteIncoming||"paste"==i,s=Ya(t),l=null;if(a&&r.ranges.length>1)if(Vs&&Vs.text.join("\n")==t){if(r.ranges.length%Vs.text.length==0){l=[];for(var c=0;c<Vs.text.length;c++)l.push(o.splitLines(Vs.text[c]))}}else s.length==r.ranges.length&&e.options.pasteLinesPerSelection&&(l=g(s,function(e){return[e]}));for(var u,f=r.ranges.length-1;f>=0;f--){var d=r.ranges[f],h=d.from(),p=d.to();d.empty()&&(n&&n>0?h=R(h.line,h.ch-n):e.state.overwrite&&!a?p=R(p.line,Math.min(L(o,p.line).text.length,p.ch+m(s).length)):Vs&&Vs.lineWise&&Vs.text.join("\n")==t&&(h=p=R(h.line,0))),u=e.curOp.updateInput;var v={from:h,to:p,text:l?l[f%l.length]:s,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};Ai(e.doc,v),St(e,"inputRead",e,v)}t&&!a&&Vo(e,t),Vn(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Uo(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||dr(t,function(){return Ko(t,n,0,null,"paste")}),!0}function Vo(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(t.indexOf(o.electricChars.charAt(s))>-1){a=Ho(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(L(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ho(e,i.head.line,"smart"));a&&St(e,"electricInput",e,i.head.line)}}}function $o(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var i=e.doc.sel.ranges[r].head.line,o={anchor:R(i,0),head:R(i+1,0)};n.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:n}}function Go(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Xo(){var e=r("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=r("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return ha?e.style.width="1000px":e.setAttribute("wrap","off"),xa&&(e.style.border="1px solid black"),Go(e),t}function Yo(e,t,n,r,i){function o(){var r=t.line+n;return!(r<e.first||r>=e.first+e.size)&&(t=new R(r,t.ch,t.sticky),c=L(e,r))}function a(r){var a;if(null==(a=i?Le(e.cm,c,t,n):_e(c,t,n))){if(r||!o())return!1;t=Me(i,e.cm,c,t.line,n)}else t=a;return!0}var s=t,l=n,c=L(e,t.line);if("char"==r)a();else if("column"==r)a(!0);else if("word"==r||"group"==r)for(var u=null,f="group"==r,d=e.cm&&e.cm.getHelper(t,"wordChars"),h=!0;!(n<0)||a(!h);h=!1){var p=c.text.charAt(t.ch)||"\n",m=w(p,d)?"w":f&&"\n"==p?"n":!f||/\s/.test(p)?null:"p";if(!f||h||m||(m="s"),u&&u!=m){n<0&&(n=1,a(),t.sticky="after");break}if(m&&(u=m),n>0&&!a(!h))break}var g=_i(e,t,s,l,!0);return z(s,g)&&(g.hitSide=!0),g}function Qo(e,t,n,r){var i,o=e.doc,a=t.left;if("page"==r){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),l=Math.max(s-.5*bn(e.display),3);i=(n>0?t.bottom:t.top)+n*l}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(var c;c=mn(e,a,i),c.outside;){if(n<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*n}return c}function Jo(e,t){var n=Yt(e,t.line);if(!n||n.hidden)return null;var r=L(e.doc,t.line),i=$t(n,r,t.line),o=Ce(r,e.doc.direction),a="left";if(o){a=ke(o,t.ch)%2?"right":"left"}var s=Zt(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function Zo(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function ea(e,t){return t&&(e.bad=!0),e}function ta(e,t,n,r,i){function o(e){return function(t){return t.id==e}}function a(){u&&(c+=f,u=!1)}function s(e){e&&(a(),c+=e)}function l(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(null!=n)return void s(n||t.textContent.replace(/\u200b/g,""));var c,d=t.getAttribute("cm-marker");if(d){var h=e.findMarks(R(r,0),R(i+1,0),o(+d));return void(h.length&&(c=h[0].find(0))&&s(T(e.doc,c.from,c.to).join(f)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(t.nodeName);p&&a();for(var m=0;m<t.childNodes.length;m++)l(t.childNodes[m]);p&&(u=!0)}else 3==t.nodeType&&s(t.nodeValue)}for(var c="",u=!1,f=e.doc.lineSeparator();l(t),t!=n;)t=t.nextSibling;return c}function na(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return ea(e.clipPos(R(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==r)return ra(o,t,n)}}function ra(e,t,n){function r(t,n,r){for(var i=-1;i<(f?f.length:0);i++)for(var o=i<0?u.map:f[i],a=0;a<o.length;a+=3){var s=o[a+2];if(s==t||s==n){var l=E(i<0?e.line:e.rest[i]),c=o[a]+r;return(r<0||s!=t)&&(c=o[a+(r?1:0)]),R(l,c)}}}var i=e.text.firstChild,a=!1;if(!t||!o(i,t))return ea(R(E(e.line),0),!0);if(t==i&&(a=!0,t=i.childNodes[n],n=0,!t)){var s=e.rest?m(e.rest):e.line;return ea(R(E(s),s.text.length),a)}var l=3==t.nodeType?t:null,c=t;for(l||1!=t.childNodes.length||3!=t.firstChild.nodeType||(l=t.firstChild,n&&(n=l.nodeValue.length));c.parentNode!=i;)c=c.parentNode;var u=e.measure,f=u.maps,d=r(l,c,n);if(d)return ea(d,a);for(var h=c.nextSibling,p=l?l.nodeValue.length-n:0;h;h=h.nextSibling){if(d=r(h,h.firstChild,0))return ea(R(d.line,d.ch-p),a);p+=h.textContent.length}for(var g=c.previousSibling,v=n;g;g=g.previousSibling){if(d=r(g,g.firstChild,-1))return ea(R(d.line,d.ch+v),a);v+=g.textContent.length}}function ia(e,t){function n(){e.value=l.getValue()}if(t=t?u(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=a();t.autofocus=r==e||null!=e.getAttribute("autofocus")&&r==document.body}var i;if(e.form&&(Ga(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var s=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=s}}catch(e){}}t.finishInit=function(t){t.save=n,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,n(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(Ae(e.form,"submit",n),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var l=Wo(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return l}var oa=navigator.userAgent,aa=navigator.platform,sa=/gecko\/\d/i.test(oa),la=/MSIE \d/.test(oa),ca=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(oa),ua=/Edge\/(\d+)/.exec(oa),fa=la||ca||ua,da=fa&&(la?document.documentMode||6:+(ua||ca)[1]),ha=!ua&&/WebKit\//.test(oa),pa=ha&&/Qt\/\d+\.\d+/.test(oa),ma=!ua&&/Chrome\//.test(oa),ga=/Opera\//.test(oa),va=/Apple Computer/.test(navigator.vendor),ya=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(oa),ba=/PhantomJS/.test(oa),xa=!ua&&/AppleWebKit/.test(oa)&&/Mobile\/\w+/.test(oa),wa=/Android/.test(oa),ka=xa||wa||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(oa),Ca=xa||/Mac/.test(aa),Sa=/\bCrOS\b/.test(oa),_a=/win/i.test(aa),Ma=ga&&oa.match(/Version\/(\d*\.\d*)/);Ma&&(Ma=Number(Ma[1])),Ma&&Ma>=15&&(ga=!1,ha=!0);var La,Ta=Ca&&(pa||ga&&(null==Ma||Ma<12.11)),Aa=sa||fa&&da>=9,Oa=function(t,n){var r=t.className,i=e(n).exec(r);if(i){var o=r.slice(i.index+i[0].length);t.className=r.slice(0,i.index)+(o?i[1]+o:"")}};La=document.createRange?function(e,t,n,r){var i=document.createRange();return i.setEnd(r||e,n),i.setStart(e,t),i}:function(e,t,n){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(e){return r}return r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",t),r};var Ea=function(e){e.select()};xa?Ea=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:fa&&(Ea=function(e){try{e.select()}catch(e){}});var Na=function(){this.id=null};Na.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Ia,Pa,Ra=30,Ba={toString:function(){return"CodeMirror.Pass"}},za={scroll:!1},Da={origin:"*mouse"},Fa={origin:"+move"},Wa=[""],qa=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ha=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\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\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\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\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,ja=!1,Ka=!1,Ua=null,Va=function(){function e(e){return e<=247?n.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?r.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,s=/[Lb1n]/,l=/[1n]/;return function(n,r){var c="ltr"==r?"L":"R";if(0==n.length||"ltr"==r&&!i.test(n))return!1;for(var u=n.length,f=[],d=0;d<u;++d)f.push(e(n.charCodeAt(d)));for(var h=0,p=c;h<u;++h){var g=f[h];"m"==g?f[h]=p:p=g}for(var v=0,y=c;v<u;++v){var b=f[v];"1"==b&&"r"==y?f[v]="n":a.test(b)&&(y=b,"r"==b&&(f[v]="R"))}for(var x=1,w=f[0];x<u-1;++x){var k=f[x];"+"==k&&"1"==w&&"1"==f[x+1]?f[x]="1":","!=k||w!=f[x+1]||"1"!=w&&"n"!=w||(f[x]=w),w=k}for(var C=0;C<u;++C){var S=f[C];if(","==S)f[C]="N";else if("%"==S){var _=void 0;for(_=C+1;_<u&&"%"==f[_];++_);for(var M=C&&"!"==f[C-1]||_<u&&"1"==f[_]?"1":"N",L=C;L<_;++L)f[L]=M;C=_-1}}for(var T=0,A=c;T<u;++T){var O=f[T];"L"==A&&"1"==O?f[T]="L":a.test(O)&&(A=O)}for(var E=0;E<u;++E)if(o.test(f[E])){var N=void 0;for(N=E+1;N<u&&o.test(f[N]);++N);for(var I="L"==(E?f[E-1]:c),P="L"==(N<u?f[N]:c),R=I==P?I?"L":"R":c,B=E;B<N;++B)f[B]=R;E=N-1}for(var z,D=[],F=0;F<u;)if(s.test(f[F])){var W=F;for(++F;F<u&&s.test(f[F]);++F);D.push(new t(0,W,F))}else{var q=F,H=D.length;for(++F;F<u&&"L"!=f[F];++F);for(var j=q;j<F;)if(l.test(f[j])){q<j&&D.splice(H,0,new t(1,q,j));var K=j;for(++j;j<F&&l.test(f[j]);++j);D.splice(H,0,new t(2,K,j)),q=j}else++j;q<F&&D.splice(H,0,new t(1,q,F))}return 1==D[0].level&&(z=n.match(/^\s+/))&&(D[0].from=z[0].length,D.unshift(new t(0,0,z[0].length))),1==m(D).level&&(z=n.match(/\s+$/))&&(m(D).to-=z[0].length,D.push(new t(0,u-z[0].length,u))),"rtl"==r?D.reverse():D}}(),$a=[],Ga=function(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent("on"+t,n);else{var r=e._handlers||(e._handlers={});r[t]=(r[t]||$a).concat(n)}},Xa=function(){if(fa&&da<9)return!1;var e=r("div");return"draggable"in e||"dragDrop"in e}(),Ya=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf("\n",t);i==-1&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");a!=-1?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},Qa=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Ja=function(){var e=r("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Za=null,es={},ts={},ns={},rs=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};rs.prototype.eol=function(){return this.pos>=this.string.length},rs.prototype.sol=function(){return this.pos==this.lineStart},rs.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},rs.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},rs.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},rs.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},rs.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},rs.prototype.skipToEnd=function(){this.pos=this.string.length},rs.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},rs.prototype.backUp=function(e){this.pos-=e},rs.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=f(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},rs.prototype.indentation=function(){return f(this.string,null,this.tabSize)-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},rs.prototype.match=function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return t!==!1&&(this.pos+=e.length),!0},rs.prototype.current=function(){return this.string.slice(this.start,this.pos)},rs.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},rs.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)};var is=function(e,t){this.state=e,this.lookAhead=t},os=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0};os.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},os.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},os.fromSaved=function(e,t,n){return t instanceof is?new os(e,Xe(e.mode,t.state),n,t.lookAhead):new os(e,Xe(e.mode,t),n)},os.prototype.save=function(e){var t=e!==!1?Xe(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new is(t,this.maxLookAhead):t};var as=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n},ss=function(e,t,n){this.text=e,re(this,t),this.height=n?n(this):1};ss.prototype.lineNo=function(){return E(this)},Pe(ss);var ls,cs={},us={},fs=null,ds=null,hs={left:0,right:0,top:0,bottom:0},ps=function(e,t,n){this.cm=n;var i=this.vert=r("div",[r("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=r("div",[r("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),Ga(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),Ga(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,fa&&da<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};ps.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},ps.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},ps.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},ps.prototype.zeroWidthHack=function(){var e=Ca&&!ya?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Na,this.disableVert=new Na},ps.prototype.enableZeroWidthBar=function(e,t,n){function r(){var i=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)}e.style.pointerEvents="auto",t.set(1e3,r)},ps.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var ms=function(){};ms.prototype.update=function(){return{bottom:0,right:0}},ms.prototype.setScrollLeft=function(){},ms.prototype.setScrollTop=function(){},ms.prototype.clear=function(){};var gs={native:ps,null:ms},vs=0,ys=function(e,t,n){var r=e.display;this.viewport=t,this.visible=Dn(r,e.doc,t),this.editorIsHidden=!r.wrapper.offsetWidth,this.wrapperHeight=r.wrapper.clientHeight,this.wrapperWidth=r.wrapper.clientWidth,this.oldDisplayWidth=Kt(e),this.force=n,this.dims=wn(e),this.events=[]};ys.prototype.signal=function(e,t){Ie(e,t)&&this.events.push(arguments)},ys.prototype.finish=function(){for(var e=this,t=0;t<this.events.length;t++)Oe.apply(null,e.events[t])};var bs=0,xs=null;fa?xs=-.53:sa?xs=15:ma?xs=-.7:va&&(xs=-1/3);var ws=function(e,t){this.ranges=e,this.primIndex=t};ws.prototype.primary=function(){return this.ranges[this.primIndex]},ws.prototype.equals=function(e){var t=this;if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var n=0;n<this.ranges.length;n++){var r=t.ranges[n],i=e.ranges[n];if(!z(r.anchor,i.anchor)||!z(r.head,i.head))return!1}return!0},ws.prototype.deepCopy=function(){for(var e=this,t=[],n=0;n<this.ranges.length;n++)t[n]=new ks(D(e.ranges[n].anchor),D(e.ranges[n].head));return new ws(t,this.primIndex)},ws.prototype.somethingSelected=function(){for(var e=this,t=0;t<this.ranges.length;t++)if(!e.ranges[t].empty())return!0;return!1},ws.prototype.contains=function(e,t){var n=this;t||(t=e);for(var r=0;r<this.ranges.length;r++){var i=n.ranges[r];if(B(t,i.from())>=0&&B(e,i.to())<=0)return r}return-1};var ks=function(e,t){this.anchor=e,this.head=t};ks.prototype.from=function(){return W(this.anchor,this.head)},ks.prototype.to=function(){return F(this.anchor,this.head)},ks.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Wi.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=this,r=e,i=e+t;r<i;++r){var o=n.lines[r];n.height-=o.height,ut(o),St(o,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,n){var r=this;this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var i=0;i<t.length;++i)t[i].parent=r},iterN:function(e,t,n){for(var r=this,i=e+t;e<i;++e)if(n(r.lines[e]))return!0}},qi.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){var n=this;this.size-=t;for(var r=0;r<this.children.length;++r){var i=n.children[r],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e),s=i.height;if(i.removeInner(e,a),n.height-=s-i.height,o==a&&(n.children.splice(r--,1),i.parent=null),0==(t-=a))break;e=0}else e-=o}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof Wi))){var l=[];this.collapse(l),this.children=[new Wi(l)],this.children[0].parent=this}},collapse:function(e){for(var t=this,n=0;n<this.children.length;++n)t.children[n].collapse(e)},insertInner:function(e,t,n){var r=this;this.size+=t.length,this.height+=n;for(var i=0;i<this.children.length;++i){var o=r.children[i],a=o.chunkSize();if(e<=a){if(o.insertInner(e,t,n),o.lines&&o.lines.length>50){for(var s=o.lines.length%25+25,l=s;l<o.lines.length;){var c=new Wi(o.lines.slice(l,l+=25));o.height-=c.height,r.children.splice(++i,0,c),c.parent=r}o.lines=o.lines.slice(0,s),r.maybeSpill()}break}e-=a}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new qi(t);if(e.parent){e.size-=n.size,e.height-=n.height;var r=d(e.parent.children,e);e.parent.children.splice(r+1,0,n)}else{var i=new qi(e.children);i.parent=e,e.children=[i,n],e=i}n.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=this,i=0;i<this.children.length;++i){var o=r.children[i],a=o.chunkSize();if(e<a){var s=Math.min(t,a-e);if(o.iterN(e,s,n))return!0;if(0==(t-=s))break;e=0}else e-=a}}};var Cs=function(e,t,n){var r=this;if(n)for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i]);this.doc=e,this.node=t};Cs.prototype.clear=function(){var e=this,t=this.doc.cm,n=this.line.widgets,r=this.line,i=E(r);if(null!=i&&n){for(var o=0;o<n.length;++o)n[o]==e&&n.splice(o--,1);n.length||(r.widgets=null);var a=Dt(this);O(r,Math.max(0,r.height-a)),t&&(dr(t,function(){Hi(t,r,-a),vr(t,i,"widget")}),St(t,"lineWidgetCleared",t,this,i))}},Cs.prototype.changed=function(){var e=this,t=this.height,n=this.doc.cm,r=this.line;this.height=null;var i=Dt(this)-t;i&&(O(r,r.height+i),n&&dr(n,function(){n.curOp.forceUpdate=!0,Hi(n,r,i),St(n,"lineWidgetChanged",n,e,E(r))}))},Pe(Cs);var Ss=0,_s=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++Ss};_s.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,n=t&&!t.curOp;if(n&&ir(t),Ie(this,"clear")){var r=this.find();r&&St(this,"clear",r.from,r.to)}for(var i=null,o=null,a=0;a<this.lines.length;++a){var s=e.lines[a],l=G(s.markedSpans,e);t&&!e.collapsed?vr(t,E(s),"text"):t&&(null!=l.to&&(o=E(s)),null!=l.from&&(i=E(s))),s.markedSpans=X(s.markedSpans,l),null==l.from&&e.collapsed&&!ge(e.doc,s)&&t&&O(s,bn(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var c=0;c<this.lines.length;++c){var u=fe(e.lines[c]),f=be(u);f>t.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=f,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&gr(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&ki(t.doc)),t&&St(t,"markerCleared",t,this,i,o),n&&or(t),this.parent&&this.parent.clear()}},_s.prototype.find=function(e,t){var n=this;null==e&&"bookmark"==this.type&&(e=1);for(var r,i,o=0;o<this.lines.length;++o){var a=n.lines[o],s=G(a.markedSpans,n);if(null!=s.from&&(r=R(t?a:E(a),s.from),e==-1))return r;if(null!=s.to&&(i=R(t?a:E(a),s.to),1==e))return i}return r&&{from:r,to:i}},_s.prototype.changed=function(){var e=this,t=this.find(-1,!0),n=this,r=this.doc.cm;t&&r&&dr(r,function(){var i=t.line,o=E(t.line),a=Yt(r,o);if(a&&(rn(a),r.curOp.selectionChanged=r.curOp.forceUpdate=!0),r.curOp.updateMaxLine=!0,!ge(n.doc,i)&&null!=n.height){var s=n.height;n.height=null;var l=Dt(n)-s;l&&O(i,i.height+l)}St(r,"markerChanged",r,e)})},_s.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&d(t.maybeHiddenMarkers,this)!=-1||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},_s.prototype.detachLine=function(e){if(this.lines.splice(d(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},Pe(_s);var Ms=function(e,t){var n=this;this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=n};Ms.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var t=0;t<this.markers.length;++t)e.markers[t].clear();St(this,"clear")}},Ms.prototype.find=function(e,t){return this.primary.find(e,t)},Pe(Ms);var Ls=0,Ts=function(e,t,n,r,i){if(!(this instanceof Ts))return new Ts(e,t,n,r,i);null==n&&(n=0),qi.call(this,[new Wi([new ss("",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=n;var o=R(n,0);this.sel=Fr(o),this.history=new Zr(null),this.id=++Ls,this.modeOption=t,this.lineSep=r,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Gr(this,{from:o,to:o,text:e}),bi(this,Fr(o),za)};Ts.prototype=b(qi.prototype,{constructor:Ts,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0;r<t.length;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=A(this,this.first,this.first+this.size);return e===!1?t:t.join(e||this.lineSeparator())},setValue:mr(function(e){var t=R(this.first,0),n=this.first+this.size-1;Ai(this,{from:t,to:R(n,L(this,n).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&$n(this.cm,0,0),bi(this,Fr(t),za)}),replaceRange:function(e,t,n,r){t=H(this,t),n=n?H(this,n):t,Ri(this,e,t,n,r)},getRange:function(e,t,n){var r=T(this,H(this,e),H(this,t));return n===!1?r:r.join(n||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(I(this,e))return L(this,e)},getLineNumber:function(e){return E(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=L(this,e)),fe(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return H(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||e===!1?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:mr(function(e,t,n){gi(this,H(this,"number"==typeof e?R(e,t||0):e),null,n)}),setSelection:mr(function(e,t,n){gi(this,H(this,e),H(this,t||e),n)}),extendSelection:mr(function(e,t,n){hi(this,H(this,e),t&&H(this,t),n)}),extendSelections:mr(function(e,t){pi(this,K(this,e),t)}),extendSelectionsBy:mr(function(e,t){pi(this,K(this,g(this.sel.ranges,e)),t)}),setSelections:mr(function(e,t,n){var r=this;if(e.length){for(var i=[],o=0;o<e.length;o++)i[o]=new ks(H(r,e[o].anchor),H(r,e[o].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),bi(this,Dr(i,t),n)}}),addSelection:mr(function(e,t,n){var r=this.sel.ranges.slice(0);r.push(new ks(H(this,e),H(this,t||e))),bi(this,Dr(r,r.length-1),n)}),getSelection:function(e){for(var t,n=this,r=this.sel.ranges,i=0;i<r.length;i++){var o=T(n,r[i].from(),r[i].to());t=t?t.concat(o):o}return e===!1?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=this,n=[],r=this.sel.ranges,i=0;i<r.length;i++){var o=T(t,r[i].from(),r[i].to());e!==!1&&(o=o.join(e||t.lineSeparator())),n[i]=o}return n},replaceSelection:function(e,t,n){for(var r=[],i=0;i<this.sel.ranges.length;i++)r[i]=e;this.replaceSelections(r,t,n||"+input")},replaceSelections:mr(function(e,t,n){for(var r=this,i=[],o=this.sel,a=0;a<o.ranges.length;a++){var s=o.ranges[a];i[a]={from:s.from(),to:s.to(),text:r.splitLines(e[a]),origin:n}}for(var l=t&&"end"!=t&&Kr(this,i,t),c=i.length-1;c>=0;c--)Ai(r,i[c]);l?yi(this,l):this.cm&&Vn(this.cm)}),undo:mr(function(){Ei(this,"undo")}),redo:mr(function(){Ei(this,"redo")}),undoSelection:mr(function(){Ei(this,"undo",!0)}),redoSelection:mr(function(){Ei(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r<e.done.length;r++)e.done[r].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++n;return{undo:t,redo:n}},clearHistory:function(){this.history=new Zr(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:fi(this.history.done),undone:fi(this.history.undone)}},setHistory:function(e){var t=this.history=new Zr(this.history.maxGeneration);t.done=fi(e.done.slice(0),null,!0),t.undone=fi(e.undone.slice(0),null,!0)},setGutterMarker:mr(function(e,t,n){return Fi(this,e,"gutter",function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&k(r)&&(e.gutterMarkers=null),!0})}),clearGutter:mr(function(e){var t=this;this.iter(function(n){n.gutterMarkers&&n.gutterMarkers[e]&&Fi(t,n,"gutter",function(){return n.gutterMarkers[e]=null,k(n.gutterMarkers)&&(n.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!I(this,e))return null;if(t=e,!(e=L(this,e)))return null}else if(null==(t=E(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:mr(function(t,n,r){return Fi(this,t,"gutter"==n?"gutter":"class",function(t){var i="text"==n?"textClass":"background"==n?"bgClass":"gutter"==n?"gutterClass":"wrapClass";if(t[i]){if(e(r).test(t[i]))return!1;t[i]+=" "+r}else t[i]=r;return!0})}),removeLineClass:mr(function(t,n,r){return Fi(this,t,"gutter"==n?"gutter":"class",function(t){var i="text"==n?"textClass":"background"==n?"bgClass":"gutter"==n?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==r)t[i]=null;else{var a=o.match(e(r));if(!a)return!1;var s=a.index+a[0].length;t[i]=o.slice(0,a.index)+(a.index&&s!=o.length?" ":"")+o.slice(s)||null}return!0})}),addLineWidget:mr(function(e,t,n){return ji(this,e,t,n)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,n){return Ki(this,H(this,e),H(this,t),n,n&&n.type||"range")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,
5
+ handleMouseEvents:t&&t.handleMouseEvents};return e=H(this,e),Ki(this,e,e,n,"bookmark")},findMarksAt:function(e){e=H(this,e);var t=[],n=L(this,e.line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=H(this,e),t=H(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var s=0;s<a.length;s++){var l=a[s];null!=l.to&&i==e.line&&e.ch>=l.to||null==l.from&&i!=e.line||null!=l.from&&i==t.line&&l.from>=t.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;r<n.length;++r)null!=n[r].from&&e.push(n[r].marker)}),e},posFromIndex:function(e){var t,n=this.first,r=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+r;if(o>e)return t=e,!0;e-=o,++n}),H(this,R(n,t))},indexFromPos:function(e){e=H(this,e);var t=e.ch;if(e.line<this.first||e.ch<0)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new Ts(A(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);var r=new Ts(A(this,t,n),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],$i(r,Vi(this)),r},unlinkDoc:function(e){var t=this;if(e instanceof Wo&&(e=e.doc),this.linked)for(var n=0;n<this.linked.length;++n){var r=t.linked[n];if(r.doc==e){t.linked.splice(n,1),e.unlinkDoc(t),Gi(Vi(t));break}}if(e.history==this.history){var i=[e.id];Xr(e,function(e){return i.push(e.id)},!0),e.history=new Zr(null),e.history.done=fi(this.history.done,i),e.history.undone=fi(this.history.undone,i)}},iterLinkedDocs:function(e){Xr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):Ya(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:mr(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Jr(this.cm))})}),Ts.prototype.eachLine=Ts.prototype.iter;for(var As=0,Os=!1,Es={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},Ns=0;Ns<10;Ns++)Es[Ns+48]=Es[Ns+96]=String(Ns);for(var Is=65;Is<=90;Is++)Es[Is]=String.fromCharCode(Is);for(var Ps=1;Ps<=12;Ps++)Es[Ps+111]=Es[Ps+63235]="F"+Ps;var Rs={};Rs.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Rs.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Rs.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Rs.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Rs.default=Ca?Rs.macDefault:Rs.pcDefault;var Bs={selectAll:Li,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),za)},killLine:function(e){return uo(e,function(t){if(t.empty()){var n=L(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line<e.lastLine()?{from:t.head,to:R(t.head.line+1,0)}:{from:t.head,to:R(t.head.line,n)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return uo(e,function(t){return{from:R(t.from().line,0),to:H(e.doc,R(t.to().line+1,0))}})},delLineLeft:function(e){return uo(e,function(e){return{from:R(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return uo(e,function(t){var n=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:n},"div"),to:t.from()}})},delWrappedLineRight:function(e){return uo(e,function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div");return{from:t.from(),to:r}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(R(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(R(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return fo(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return po(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return ho(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div")},Fa)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:n},"div")},Fa)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5,r=e.coordsChar({left:0,top:n},"div");return r.ch<e.getLine(r.line).search(/\S/)?po(e,t.head):r},Fa)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],n=e.listSelections(),r=e.options.tabSize,i=0;i<n.length;i++){var o=n[i].from(),a=f(e.getLine(o.line),o.ch,r);t.push(p(r-a%r))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return dr(e,function(){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++)if(t[r].empty()){var i=t[r].head,o=L(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new R(i.line,i.ch-1)),i.ch>0)i=new R(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),R(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=L(e.doc,i.line-1).text;a&&(i=new R(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),R(i.line-1,a.length-1),i,"+transpose"))}n.push(new ks(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){return dr(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r<t.length;r++)e.indentLine(t[r].from().line,null,!0);Vn(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},zs=new Na,Ds=null,Fs=function(e,t,n){this.time=e,this.pos=t,this.button=n};Fs.prototype.compare=function(e,t,n){return this.time+400>e&&0==B(t,this.pos)&&n==this.button};var Ws,qs,Hs={toString:function(){return"CodeMirror.Init"}},js={},Ks={};Wo.defaults=js,Wo.optionHandlers=Ks;var Us=[];Wo.defineInitHook=function(e){return Us.push(e)};var Vs=null,$s=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Na,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};$s.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())jo({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=$o(i);jo({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,za),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var n=Vs.text.join("\n");if(e.clipboardData.setData("Text",n),e.clipboardData.getData("Text")==n)return void e.preventDefault()}var a=Xo(),s=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),s.value=Vs.text.join("\n");var l=document.activeElement;Ea(s),setTimeout(function(){i.display.lineSpace.removeChild(a),l.focus(),l==o&&r.showPrimarySelection()},50)}}var n=this,r=this,i=r.cm,o=r.div=e.lineDiv;Go(o,i.options.spellcheck),Ga(o,"paste",function(e){Ee(i,e)||Uo(e,i)||da<=11&&setTimeout(hr(i,function(){return n.updateFromDOM()}),20)}),Ga(o,"compositionstart",function(e){n.composing={data:e.data,done:!1}}),Ga(o,"compositionupdate",function(e){n.composing||(n.composing={data:e.data,done:!1})}),Ga(o,"compositionend",function(e){n.composing&&(e.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),Ga(o,"touchstart",function(){return r.forceCompositionEnd()}),Ga(o,"input",function(){n.composing||n.readFromDOMSoon()}),Ga(o,"copy",t),Ga(o,"cut",t)},$s.prototype.prepareSelection=function(){var e=Tn(this.cm,!1);return e.focus=this.cm.state.focused,e},$s.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},$s.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,n=t.doc.sel.primary(),r=n.from(),i=n.to();if(t.display.viewTo==t.display.viewFrom||r.line>=t.display.viewTo||i.line<t.display.viewFrom)return void e.removeAllRanges();var o=na(t,e.anchorNode,e.anchorOffset),a=na(t,e.focusNode,e.focusOffset);if(!o||o.bad||!a||a.bad||0!=B(W(o,a),r)||0!=B(F(o,a),i)){var s=t.display.view,l=r.line>=t.display.viewFrom&&Jo(t,r)||{node:s[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&Jo(t,i);if(!c){var u=s[s.length-1].measure,f=u.maps?u.maps[u.maps.length-1]:u.map;c={node:f[f.length-1],offset:f[f.length-2]-f[f.length-3]}}if(!l||!c)return void e.removeAllRanges();var d,h=e.rangeCount&&e.getRangeAt(0);try{d=La(l.node,l.offset,c.offset,c.node)}catch(e){}d&&(!sa&&t.state.focused?(e.collapse(l.node,l.offset),d.collapsed||(e.removeAllRanges(),e.addRange(d))):(e.removeAllRanges(),e.addRange(d)),h&&null==e.anchorNode?e.addRange(h):sa&&this.startGracePeriod()),this.rememberSelection()}},$s.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},$s.prototype.showMultipleSelections=function(e){n(this.cm.display.cursorDiv,e.cursors),n(this.cm.display.selectionDiv,e.selection)},$s.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},$s.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},$s.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},$s.prototype.blur=function(){this.div.blur()},$s.prototype.getField=function(){return this.div},$s.prototype.supportsTouch=function(){return!0},$s.prototype.receivedFocus=function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():dr(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},$s.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},$s.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(wa&&ma&&this.cm.options.gutters.length&&Zo(e.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var n=na(t,e.anchorNode,e.anchorOffset),r=na(t,e.focusNode,e.focusOffset);n&&r&&dr(t,function(){bi(t.doc,Fr(n,r),za),(n.bad||r.bad)&&(t.curOp.selectionChanged=!0)})}}},$s.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,n=e.doc.sel.primary(),r=n.from(),i=n.to();if(0==r.ch&&r.line>e.firstLine()&&(r=R(r.line-1,L(e.doc,r.line-1).length)),i.ch==L(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=R(i.line+1,0)),r.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,a,s;r.line==t.viewFrom||0==(o=Mn(e,r.line))?(a=E(t.view[0].line),s=t.view[0].node):(a=E(t.view[o].line),s=t.view[o-1].node.nextSibling);var l,c,u=Mn(e,i.line);if(u==t.view.length-1?(l=t.viewTo-1,c=t.lineDiv.lastChild):(l=E(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!s)return!1;for(var f=e.doc.splitLines(ta(e,s,c,a,l)),d=T(e.doc,R(a,0),R(l,L(e.doc,l).text.length));f.length>1&&d.length>1;)if(m(f)==m(d))f.pop(),d.pop(),l--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),a++}for(var h=0,p=0,g=f[0],v=d[0],y=Math.min(g.length,v.length);h<y&&g.charCodeAt(h)==v.charCodeAt(h);)++h;for(var b=m(f),x=m(d),w=Math.min(b.length-(1==f.length?h:0),x.length-(1==d.length?h:0));p<w&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)++p;if(1==f.length&&1==d.length&&a==r.line)for(;h&&h>r.ch&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)h--,p++;f[f.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(h).replace(/\u200b+$/,"");var k=R(a,h),C=R(l,d.length?m(d).length-p:0);return f.length>1||f[0]||B(k,C)?(Ri(e.doc,f,k,C,"+input"),!0):void 0},$s.prototype.ensurePolled=function(){this.forceCompositionEnd()},$s.prototype.reset=function(){this.forceCompositionEnd()},$s.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},$s.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},$s.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||dr(this.cm,function(){return gr(e.cm)})},$s.prototype.setUneditable=function(e){e.contentEditable="false"},$s.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||hr(this.cm,Ko)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},$s.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},$s.prototype.onContextMenu=function(){},$s.prototype.resetPosition=function(){},$s.prototype.needsContentAttribute=!0;var Gs=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new Na,this.hasSelection=!1,this.composing=null};Gs.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())jo({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=$o(i);jo({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,za):(r.prevInput="",a.value=t.text.join("\n"),Ea(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var n=this,r=this,i=this.cm,o=this.wrapper=Xo(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),xa&&(a.style.width="0px"),Ga(a,"input",function(){fa&&da>=9&&n.hasSelection&&(n.hasSelection=null),r.poll()}),Ga(a,"paste",function(e){Ee(i,e)||Uo(e,i)||(i.state.pasteIncoming=!0,r.fastPoll())}),Ga(a,"cut",t),Ga(a,"copy",t),Ga(e.scroller,"paste",function(t){Ft(e,t)||Ee(i,t)||(i.state.pasteIncoming=!0,r.focus())}),Ga(e.lineSpace,"selectstart",function(t){Ft(e,t)||Re(t)}),Ga(a,"compositionstart",function(){var e=i.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),Ga(a,"compositionend",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},Gs.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Tn(e);if(e.options.moveInputWithCursor){var i=dn(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},Gs.prototype.showSelection=function(e){var t=this.cm,r=t.display;n(r.cursorDiv,e.cursors),n(r.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Gs.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&Ea(this.textarea),fa&&da>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",fa&&da>=9&&(this.hasSelection=null))}},Gs.prototype.getField=function(){return this.textarea},Gs.prototype.supportsTouch=function(){return!1},Gs.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!ka||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},Gs.prototype.blur=function(){this.textarea.blur()},Gs.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Gs.prototype.receivedFocus=function(){this.slowPoll()},Gs.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Gs.prototype.fastPoll=function(){function e(){n.poll()||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))}var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,e)},Gs.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Qa(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(fa&&da>=9&&this.hasSelection===i||Ca&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,s=Math.min(r.length,i.length);a<s&&r.charCodeAt(a)==i.charCodeAt(a);)++a;return dr(t,function(){Ko(t,i.slice(a),r.length-a,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Gs.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Gs.prototype.onKeyPress=function(){fa&&da>=9&&(this.hasSelection=null),this.fastPoll()},Gs.prototype.onContextMenu=function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t="​"+(e?a.value:"");a.value="⇚",a.value=t,r.prevInput=e?"":"​",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function n(){if(r.contextMenuPending=!1,r.wrapper.style.cssText=u,a.style.cssText=c,fa&&da<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=l),null!=a.selectionStart){(!fa||fa&&da<9)&&t();var e=0,n=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==r.prevInput?hr(i,Li)(i):e++<10?o.detectingSelectAll=setTimeout(n,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(n,200)}}var r=this,i=r.cm,o=i.display,a=r.textarea,s=_n(i,e),l=o.scroller.scrollTop;if(s&&!ga){i.options.resetSelectionOnContextMenu&&i.doc.sel.contains(s)==-1&&hr(i,bi)(i.doc,Fr(s),za);var c=a.style.cssText,u=r.wrapper.style.cssText;r.wrapper.style.cssText="position: absolute";var f=r.wrapper.getBoundingClientRect();a.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-f.top-5)+"px; left: "+(e.clientX-f.left-5)+"px;\n z-index: 1000; background: "+(fa?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var d;if(ha&&(d=window.scrollY),o.input.focus(),ha&&window.scrollTo(null,d),o.input.reset(),i.somethingSelected()||(a.value=r.prevInput=" "),r.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),fa&&da>=9&&t(),Aa){De(e);var h=function(){Ae(window,"mouseup",h),setTimeout(n,20)};Ga(window,"mouseup",h)}else setTimeout(n,50)}},Gs.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},Gs.prototype.setUneditable=function(){},Gs.prototype.needsContentAttribute=!1,function(e){function t(t,r,i,o){e.defaults[t]=r,i&&(n[t]=o?function(e,t,n){n!=Hs&&i(e,t,n)}:i)}var n=e.optionHandlers;e.defineOption=t,e.Init=Hs,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Ur(e)},!0),t("indentUnit",2,Ur,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Vr(e),an(e),gr(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(o==-1)break;i=o+t.length,n.push(R(r,o))}r++});for(var i=n.length-1;i>=0;i--)Ri(e.doc,t,n[i],R(n[i].line,n[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=Hs&&e.refresh()}),t("specialCharPlaceholder",ht,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",ka?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!_a),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){Bo(e),zo(e)},!0),t("keyMap","default",function(e,t,n){var r=co(t),i=n!=Hs&&co(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,Fo,!0),t("gutters",[],function(e){Pr(e.options),zo(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?kn(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return tr(e)},!0),t("scrollbarStyle","native",function(e){rr(e),tr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Pr(e.options),zo(e)},!0),t("firstLineNumber",1,zo,!0),t("lineNumberFormatter",function(e){return e},zo,!0),t("showCursorWhenSelecting",!1,Ln,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Rn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,Do),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Ln,!0),t("singleCursorHeightPerLine",!0,Ln,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,Vr,!0),t("addModeClass",!1,Vr,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,Vr,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(Wo),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&"mode"!=e||(r[e]=n,t.hasOwnProperty(e)&&hr(this,t[e])(this,n,i),Oe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](co(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(t[n]==e||t[n].name==e)return t.splice(n,1),!0},addOverlay:pr(function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");v(this.state.overlays,{mode:r,modeSpec:t,opaque:n&&n.opaque,priority:n&&n.priority||0},function(e){return e.priority}),this.state.modeGen++,gr(this)}),removeOverlay:pr(function(e){for(var t=this,n=this.state.overlays,r=0;r<n.length;++r){var i=n[r].modeSpec;if(i==e||"string"==typeof e&&i.name==e)return n.splice(r,1),t.state.modeGen++,void gr(t)}}),indentLine:pr(function(e,t,n){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),I(this.doc,e)&&Ho(this,e,t,n)}),indentSelection:pr(function(e){for(var t=this,n=this.doc.sel.ranges,r=-1,i=0;i<n.length;i++){var o=n[i];if(o.empty())o.head.line>r&&(Ho(t,o.head.line,e,!0),r=o.head.line,i==t.doc.sel.primIndex&&Vn(t));else{var a=o.from(),s=o.to(),l=Math.max(r,a.line);r=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1;for(var c=l;c<r;++c)Ho(t,c,e);var u=t.doc.sel.ranges;0==a.ch&&n.length==u.length&&u[i].from().ch>0&&mi(t.doc,i,new ks(a,u[i].to()),za)}}}),getTokenAt:function(e,t){return it(this,e,t)},getLineTokens:function(e,t){return it(this,R(e),t,!0)},getTokenTypeAt:function(e){e=H(this.doc,e);var t,n=Ze(this,L(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]<o)){t=n[2*a+2];break}r=a+1}}var s=t?t.indexOf("overlay "):-1;return s<0?t:0==s?null:t.slice(0,s-1)},getModeAt:function(t){var n=this.doc.mode;return n.innerMode?e.innerMode(n,this.getTokenAt(t).state).mode:n},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var r=this,i=[];if(!n.hasOwnProperty(t))return i;var o=n[t],a=this.getModeAt(e);if("string"==typeof a[t])o[a[t]]&&i.push(o[a[t]]);else if(a[t])for(var s=0;s<a[t].length;s++){var l=o[a[t][s]];l&&i.push(l)}else a.helperType&&o[a.helperType]?i.push(o[a.helperType]):o[a.name]&&i.push(o[a.name]);for(var c=0;c<o._global.length;c++){var u=o._global[c];