Version Description
- fixed bug: Allow Multiple Instances of CodeMirror on a page #71
- fixed bug: js error when custom post type does not support 'editor' feature #62
Download this release
Release Info
Developer | arniebradfo |
Plugin | HTML Editor Syntax Highlighter |
Version | 2.2.4 |
Comparing to | |
See all releases |
Code changes from version 2.2.3 to 2.2.4
- dist/hesh.css +62 -17
- dist/hesh.js +1345 -673
- dist/hesh.min.css +1 -1
- dist/hesh.min.js +1 -13
dist/hesh.css
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Author URI: http://arniebradfo.com/
|
5 |
* Author: Peter Mukhortov
|
6 |
* Author URI: http://mukhortov.com/
|
7 |
-
* Version: 2.2.
|
8 |
**//* BASICS */.CodeMirror {
|
9 |
/* Set height, width, borders, and global font properties here */
|
10 |
font-family: monospace;
|
@@ -62,9 +62,16 @@
|
|
62 |
z-index: 1;
|
63 |
}
|
64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
.cm-animate-fat-cursor {
|
66 |
width: auto;
|
67 |
border: 0;
|
|
|
68 |
animation: blink 1.06s steps(1) infinite;
|
69 |
background-color: #7e7;
|
70 |
}/* Can style cursor different in overwrite (non-insert) mode */.cm-tab {
|
@@ -197,11 +204,11 @@
|
|
197 |
.CodeMirror-composing {
|
198 |
border-bottom: 2px solid;
|
199 |
}/* Default styles for common addons */div.CodeMirror span.CodeMirror-matchingbracket {
|
200 |
-
color: #
|
201 |
}
|
202 |
|
203 |
div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
204 |
-
color: #
|
205 |
}
|
206 |
|
207 |
.CodeMirror-matchingtag {
|
@@ -319,6 +326,7 @@ z-index: 2;
|
|
319 |
position: relative;
|
320 |
overflow: visible;
|
321 |
-webkit-tap-highlight-color: transparent;
|
|
|
322 |
font-variant-ligatures: contextual;
|
323 |
}
|
324 |
|
@@ -340,7 +348,8 @@ z-index: 0;
|
|
340 |
.CodeMirror-linewidget {
|
341 |
position: relative;
|
342 |
z-index: 2;
|
343 |
-
|
|
|
344 |
}
|
345 |
|
346 |
.CodeMirror-rtl pre {
|
@@ -350,6 +359,7 @@ direction: rtl;
|
|
350 |
.CodeMirror-code {
|
351 |
outline: none;
|
352 |
}/* Force content-box sizing for the elements where we expect it */.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber {
|
|
|
353 |
box-sizing: content-box;
|
354 |
}
|
355 |
|
@@ -412,7 +422,7 @@ background: #d7d4f0;
|
|
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 {
|
417 |
content: '';
|
418 |
}/* Help users use markselection to safely style text background */span.CodeMirror-selectedtext {
|
@@ -773,6 +783,7 @@ background: #314151;
|
|
773 |
}
|
774 |
|
775 |
.cm-s-ambiance.CodeMirror {
|
|
|
776 |
box-shadow: none;
|
777 |
}/* ambiance theme for codemirror *//* Color scheme */.cm-s-ambiance .cm-header {
|
778 |
color: blue;
|
@@ -898,15 +909,17 @@ background: rgba(255, 255, 255, 0.1);
|
|
898 |
.cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line > span::-moz-selection,.cm-s-ambiance .CodeMirror-line > span > span::-moz-selection {
|
899 |
background: rgba(255, 255, 255, 0.1);
|
900 |
}/* Editor styling */.cm-s-ambiance.CodeMirror {
|
901 |
-
line-height: 1.
|
902 |
color: #E6E1DC;
|
903 |
background-color: #202020;
|
|
|
904 |
box-shadow: inset 0 0 10px black;
|
905 |
}
|
906 |
|
907 |
.cm-s-ambiance .CodeMirror-gutters {
|
908 |
background: #3D3D3D;
|
909 |
border-right: 1px solid #4D4D4D;
|
|
|
910 |
box-shadow: 0 10px 20px black;
|
911 |
}
|
912 |
|
@@ -1244,7 +1257,10 @@ color: white !important;
|
|
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)
|
@@ -1256,7 +1272,7 @@ 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 |
|
@@ -1291,21 +1307,21 @@ color: #cdc4b1;
|
|
1291 |
}/* begin cursor */.cm-s-duotone-light .CodeMirror-cursor {
|
1292 |
border-left: 1px solid #93abdc;
|
1293 |
/* border-left: 1px solid #93abdc80; */
|
1294 |
-
border-right: .5em solid #93abdc;
|
1295 |
/* border-right: .5em solid #93abdc80; */
|
1296 |
-
opacity: .5;
|
1297 |
}
|
1298 |
|
1299 |
.cm-s-duotone-light .CodeMirror-activeline-background {
|
1300 |
background: #e3dcce;
|
1301 |
/* background: #e3dcce80; */
|
1302 |
-
opacity: .5;
|
1303 |
}
|
1304 |
|
1305 |
.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor {
|
1306 |
background: #93abdc;
|
1307 |
/* #93abdc80; */
|
1308 |
-
opacity: .5;
|
1309 |
}/* end cursor */.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-variable,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link {
|
1310 |
color: #063289;
|
1311 |
}
|
@@ -1338,6 +1354,13 @@ color: #2d2006;
|
|
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
|
1343 |
|
@@ -1346,7 +1369,10 @@ color: #b6ad9a;
|
|
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,7 +1383,12 @@ ICEcoder default theme by Matt Pass, used in code editor available at https://ic
|
|
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: #
|
|
|
|
|
|
|
|
|
|
|
1361 |
|
1362 |
Name: material
|
1363 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
@@ -1721,7 +1752,14 @@ color: #F8F8F0;
|
|
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)
|
@@ -1764,12 +1802,19 @@ color: white !important;
|
|
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-
|
1773 |
|
1774 |
Name: Tomorrow Night - Bright
|
1775 |
Author: Chris Kempson
|
@@ -1841,4 +1886,4 @@ THE SOFTWARE.
|
|
1841 |
* Also using parts of https://github.com/xavi/coderay-lighttable-theme
|
1842 |
* "
|
1843 |
* From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
|
1844 |
-
*/.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 white;}.cm-s-zenburn {background-color: #3f3f3f;color: #dcdccc;}.cm-s-zenburn span.cm-builtin {color: #dcdccc;font-weight: bold;}.cm-s-zenburn span.cm-comment {color: #7f9f7f;}.cm-s-zenburn span.cm-keyword {color: #f0dfaf;font-weight: bold;}.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 {color: #cc9393;}.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-property {color: #dfaf8f;}.cm-s-zenburn span.cm-attribute {color: #dfaf8f;}.cm-s-zenburn span.cm-qualifier {color: #7cb8bb;}.cm-s-zenburn span.cm-meta {color: #f0dfaf;}.cm-s-zenburn span.cm-header {color: #f0efd0;}.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 {background: #000000;}.cm-s-zenburn .CodeMirror-activeline-background {background: #000000;}.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-open,.CodeMirror-foldgutter-folded {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: white;transition: 250ms 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__docked,.CodeMirror-settings__body {pointer-events: initial;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: white;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: rgba(255, 255, 255, 0.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: 0.6;}td.CodeMirror-settings__heading {padding: 0;padding-bottom: 12px;}.CodeMirror-settings__foot-content {margin: 0;}.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__header,.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__wrapper {transition: 250ms 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:hover {opacity: 1;}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before {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: translate(0, -20px);transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms;}.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: translate(0, -20px);transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms;}.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, 0);transition: visibility 1ms ease, opacity 250ms ease 1ms, transform 250ms ease 1ms;}.CodeMirror-settings__button {position: relative;}.CodeMirror-settings__button:active {transform: none !important;}.CodeMirror-settings__button select,.CodeMirror-settings__button input {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: white;}.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, 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-scrollbar-filler,.CodeMirror-overlayscroll .CodeMirror-gutter-filler {display: none !important;}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical {position: absolute;z-index: 6;transition: opacity 100ms linear;opacity: 0.5;}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover {opacity: 1;}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active {opacity: 0.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: initial;}#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, 0.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;}.CodeMirror-settings__toggle {width: 35px;}.CodeMirror-settings__toggle:after {font-size: 20px;}.CodeMirror-settings__toggle:after {margin: 7px;}.CodeMirror-settings__docked {min-height: 35px;}.CodeMirror-settings__header {padding-right: 35px;}.CodeMirror-settings__button--select:after {font-size: 16px;}.CodeMirror-settings__button--select:after {margin-top: 0;}.CodeMirror-dialog {height: 35px;}.CodeMirror-dialog {padding-right: 35px;}.CodeMirror-dialog:after {font-size: 20px;}.CodeMirror-dialog:after {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;}.CodeMirror-settings__toggle {width: 44px;}.CodeMirror-settings__toggle:after {font-size: 28px;}.CodeMirror-settings__toggle:after {margin: 8px;}.CodeMirror-settings__docked {min-height: 44px;}.CodeMirror-settings__header {padding-right: 44px;}.CodeMirror-settings__button--select:after {font-size: 20px;}.CodeMirror-settings__button--select:after {margin-top: -2px;}.CodeMirror-dialog {height: 44px;}.CodeMirror-dialog {padding-right: 44px;}.CodeMirror-dialog:after {font-size: 28px;}.CodeMirror-dialog:after {margin: 8px;}.CodeMirror-overlayscroll-vertical div:after {top: 56px;}#template .CodeMirror {margin-right: initial;}}@media screen and (max-height: 550px) {.heshFullscreen .CodeMirror {height: 75% !important;}}@media print {/* Hide the cursor when printing */.CodeMirror div.CodeMirror-cursors {visibility: hidden;}}@keyframes blink {50% {background-color: transparent;}}
|
4 |
* Author URI: http://arniebradfo.com/
|
5 |
* Author: Peter Mukhortov
|
6 |
* Author URI: http://mukhortov.com/
|
7 |
+
* Version: 2.2.4
|
8 |
**//* BASICS */.CodeMirror {
|
9 |
/* Set height, width, borders, and global font properties here */
|
10 |
font-family: monospace;
|
62 |
z-index: 1;
|
63 |
}
|
64 |
|
65 |
+
.cm-fat-cursor-mark {
|
66 |
+
background-color: rgba(20, 255, 20, 0.5);
|
67 |
+
-webkit-animation: blink 1.06s steps(1) infinite;
|
68 |
+
animation: blink 1.06s steps(1) infinite;
|
69 |
+
}
|
70 |
+
|
71 |
.cm-animate-fat-cursor {
|
72 |
width: auto;
|
73 |
border: 0;
|
74 |
+
-webkit-animation: blink 1.06s steps(1) infinite;
|
75 |
animation: blink 1.06s steps(1) infinite;
|
76 |
background-color: #7e7;
|
77 |
}/* Can style cursor different in overwrite (non-insert) mode */.cm-tab {
|
204 |
.CodeMirror-composing {
|
205 |
border-bottom: 2px solid;
|
206 |
}/* Default styles for common addons */div.CodeMirror span.CodeMirror-matchingbracket {
|
207 |
+
color: #0b0;
|
208 |
}
|
209 |
|
210 |
div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
211 |
+
color: #a22;
|
212 |
}
|
213 |
|
214 |
.CodeMirror-matchingtag {
|
326 |
position: relative;
|
327 |
overflow: visible;
|
328 |
-webkit-tap-highlight-color: transparent;
|
329 |
+
-webkit-font-variant-ligatures: contextual;
|
330 |
font-variant-ligatures: contextual;
|
331 |
}
|
332 |
|
348 |
.CodeMirror-linewidget {
|
349 |
position: relative;
|
350 |
z-index: 2;
|
351 |
+
padding: 0.1px;
|
352 |
+
/* Force widget margins to stay inside of the container */;
|
353 |
}
|
354 |
|
355 |
.CodeMirror-rtl pre {
|
359 |
.CodeMirror-code {
|
360 |
outline: none;
|
361 |
}/* Force content-box sizing for the elements where we expect it */.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber {
|
362 |
+
-webkit-box-sizing: content-box;
|
363 |
box-sizing: content-box;
|
364 |
}
|
365 |
|
422 |
background-color: #ffa;
|
423 |
background-color: rgba(255, 255, 0, 0.4);
|
424 |
}/* Used to force a border model for a node */.cm-force-border {
|
425 |
+
padding-right: 0.1px;
|
426 |
}/* See issue #2901 */.cm-tab-wrap-hack:after {
|
427 |
content: '';
|
428 |
}/* Help users use markselection to safely style text background */span.CodeMirror-selectedtext {
|
783 |
}
|
784 |
|
785 |
.cm-s-ambiance.CodeMirror {
|
786 |
+
-webkit-box-shadow: none;
|
787 |
box-shadow: none;
|
788 |
}/* ambiance theme for codemirror *//* Color scheme */.cm-s-ambiance .cm-header {
|
789 |
color: blue;
|
909 |
.cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line > span::-moz-selection,.cm-s-ambiance .CodeMirror-line > span > span::-moz-selection {
|
910 |
background: rgba(255, 255, 255, 0.1);
|
911 |
}/* Editor styling */.cm-s-ambiance.CodeMirror {
|
912 |
+
line-height: 1.4em;
|
913 |
color: #E6E1DC;
|
914 |
background-color: #202020;
|
915 |
+
-webkit-box-shadow: inset 0 0 10px black;
|
916 |
box-shadow: inset 0 0 10px black;
|
917 |
}
|
918 |
|
919 |
.cm-s-ambiance .CodeMirror-gutters {
|
920 |
background: #3D3D3D;
|
921 |
border-right: 1px solid #4D4D4D;
|
922 |
+
-webkit-box-shadow: 0 10px 20px black;
|
923 |
box-shadow: 0 10px 20px black;
|
924 |
}
|
925 |
|
1257 |
|
1258 |
.cm-s-bespin .CodeMirror-activeline-background {
|
1259 |
background: #404040;
|
1260 |
+
}/* 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;}/**
|
1261 |
+
Name: IntelliJ IDEA darcula theme
|
1262 |
+
From IntelliJ IDEA by JetBrains
|
1263 |
+
*/.cm-s-darcula span.cm-meta {color: #BBB529;}.cm-s-darcula span.cm-number {color: #6897BB;}.cm-s-darcula span.cm-keyword {line-height: 1em;font-weight: bold;color: #CC7832;}.cm-s-darcula span.cm-def {color: #FFC66D;}.cm-s-darcula span.cm-variable {color: #A9B7C6;}.cm-s-darcula span.cm-variable-2 {color: #A9B7C6;}.cm-s-darcula span.cm-variable-3,.cm-s-darcula span.cm-type {color: #A9B7C6;}.cm-s-darcula span.cm-property {color: #A9B7C6;}.cm-s-darcula span.cm-operator {color: #A9B7C6;}.cm-s-darcula span.cm-string {color: #6A8759;}.cm-s-darcula span.cm-string-2 {color: #6A8759;}.cm-s-darcula span.cm-comment {color: #808080;}.cm-s-darcula span.cm-link {color: #287BDE;}.cm-s-darcula span.cm-atom {font-weight: bold;color: #CC7832;}.cm-s-darcula span.cm-error {color: #BC3F3C;}.cm-s-darcula span.cm-tag {color: #CC7832;}.cm-s-darcula span.cm-attribute {color: #6A8759;}.cm-s-darcula span.cm-qualifier {color: #6A8759;}.cm-s-darcula span.cm-bracket {color: #A9B7C6;}.cm-s-darcula.CodeMirror {background: #2B2B2B;color: #A9B7C6;}.cm-s-darcula .CodeMirror-cursor {border-left: 1px solid #dddddd;}.cm-s-darcula .CodeMirror-activeline-background {background: #3A3A3A;}.cm-s-darcula div.CodeMirror-selected {background: #085a9c;}.cm-s-darcula .CodeMirror-gutters {background: #484848;border-right: 1px solid grey;color: #606366;}.cm-s-darcula span.cm-builtin {color: #A9B7C6;}.cm-s-darcula {font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}.cm-s-darcula .CodeMirror-matchingbracket {background-color: #3b514d;color: yellow !important;}.CodeMirror-hints.darcula {font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;color: #9c9e9e;background-color: #3b3e3f !important;}.CodeMirror-hints.darcula .CodeMirror-hint-active {background-color: #494d4e !important;color: #9c9e9e !important;}/*
|
1264 |
|
1265 |
Name: dracula
|
1266 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1272 |
Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
|
1273 |
|
1274 |
CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
|
1275 |
+
*/.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: 0.5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */opacity: 0.5;}.cm-s-duotone-dark .CodeMirror-activeline-background {background: #363342; /* background: #36334280; */opacity: 0.5;}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor {background: #ffad5c; /* background: #ffad5c80; */opacity: 0.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 {
|
1276 |
color: #f00;
|
1277 |
}
|
1278 |
|
1307 |
}/* begin cursor */.cm-s-duotone-light .CodeMirror-cursor {
|
1308 |
border-left: 1px solid #93abdc;
|
1309 |
/* border-left: 1px solid #93abdc80; */
|
1310 |
+
border-right: 0.5em solid #93abdc;
|
1311 |
/* border-right: .5em solid #93abdc80; */
|
1312 |
+
opacity: 0.5;
|
1313 |
}
|
1314 |
|
1315 |
.cm-s-duotone-light .CodeMirror-activeline-background {
|
1316 |
background: #e3dcce;
|
1317 |
/* background: #e3dcce80; */
|
1318 |
+
opacity: 0.5;
|
1319 |
}
|
1320 |
|
1321 |
.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor {
|
1322 |
background: #93abdc;
|
1323 |
/* #93abdc80; */
|
1324 |
+
opacity: 0.5;
|
1325 |
}/* end cursor */.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-variable,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link {
|
1326 |
color: #063289;
|
1327 |
}
|
1354 |
color: #b6ad9a;
|
1355 |
}/* 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;}/*
|
1356 |
|
1357 |
+
Name: gruvbox-dark
|
1358 |
+
Author: kRkk (https://github.com/krkk)
|
1359 |
+
|
1360 |
+
Original gruvbox color scheme by Pavel Pertsev (https://github.com/morhetz/gruvbox)
|
1361 |
+
|
1362 |
+
*/.cm-s-gruvbox-dark.CodeMirror,.cm-s-gruvbox-dark .CodeMirror-gutters {background-color: #282828;color: #bdae93;}.cm-s-gruvbox-dark .CodeMirror-gutters {background: #282828;border-right: 0px;}.cm-s-gruvbox-dark .CodeMirror-linenumber {color: #7c6f64;}.cm-s-gruvbox-dark .CodeMirror-cursor {border-left: 1px solid #ebdbb2;}.cm-s-gruvbox-dark div.CodeMirror-selected {background: #928374;}.cm-s-gruvbox-dark span.cm-meta {color: #808000;}.cm-s-gruvbox-dark span.cm-comment {color: #928374;}.cm-s-gruvbox-dark span.cm-number,span.cm-atom {color: #d3869b;}.cm-s-gruvbox-dark span.cm-keyword {color: #f84934;}.cm-s-gruvbox-dark span.cm-variable {color: #ebdbb2;}.cm-s-gruvbox-dark span.cm-variable-2 {color: #ebdbb2;}.cm-s-gruvbox-dark span.cm-variable-3,.cm-s-gruvbox-dark span.cm-type {color: black;}.cm-s-gruvbox-dark span.cm-operator {color: #ebdbb2;}.cm-s-gruvbox-dark span.cm-def {color: #ebdbb2;}.cm-s-gruvbox-dark span.cm-string {color: #b8bb26;}.cm-s-gruvbox-dark span.cm-string-2 {color: #8ec07c;}.cm-s-gruvbox-dark span.cm-qualifier {color: #555;}.cm-s-gruvbox-dark span.cm-attribute {color: #8ec07c;}.cm-s-gruvbox-dark .CodeMirror-activeline-background {background: #3c3836;}.cm-s-gruvbox-dark .CodeMirror-matchingbracket {background: #928374;color: #282828 !important;}.cm-s-gruvbox-dark span.cm-builtin {color: #fe8019;}/*
|
1363 |
+
|
1364 |
Name: Hopscotch
|
1365 |
Author: Jan T. Sott
|
1366 |
|
1369 |
|
1370 |
*/.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;}/*
|
1371 |
ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
|
1372 |
+
*/.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;}/**
|
1373 |
+
Name: IDEA default theme
|
1374 |
+
From IntelliJ IDEA by JetBrains
|
1375 |
+
*/.cm-s-idea span.cm-meta {color: #808000;}.cm-s-idea span.cm-number {color: #0000FF;}.cm-s-idea span.cm-keyword {line-height: 1em;font-weight: bold;color: #000080;}.cm-s-idea span.cm-atom {font-weight: bold;color: #000080;}.cm-s-idea span.cm-def {color: #000000;}.cm-s-idea span.cm-variable {color: black;}.cm-s-idea span.cm-variable-2 {color: black;}.cm-s-idea span.cm-variable-3,.cm-s-idea span.cm-type {color: black;}.cm-s-idea span.cm-property {color: black;}.cm-s-idea span.cm-operator {color: black;}.cm-s-idea span.cm-comment {color: #808080;}.cm-s-idea span.cm-string {color: #008000;}.cm-s-idea span.cm-string-2 {color: #008000;}.cm-s-idea span.cm-qualifier {color: #555;}.cm-s-idea span.cm-error {color: #FF0000;}.cm-s-idea span.cm-attribute {color: #0000FF;}.cm-s-idea span.cm-tag {color: #000080;}.cm-s-idea span.cm-link {color: #0000FF;}.cm-s-idea .CodeMirror-activeline-background {background: #FFFAE3;}.cm-s-idea span.cm-builtin {color: #30a;}.cm-s-idea span.cm-bracket {color: #cc7;}.cm-s-idea {font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}.cm-s-idea .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.CodeMirror-hints.idea {font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;color: #616569;background-color: #ebf3fd !important;}.CodeMirror-hints.idea .CodeMirror-hint-active {background-color: #a2b8c9 !important;color: #5c6065 !important;}/*
|
1376 |
|
1377 |
Name: Isotope
|
1378 |
Author: David Desandro / Jan T. Sott
|
1383 |
*/.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;}/*
|
1384 |
http://lesscss.org/ dark theme
|
1385 |
Ported to CodeMirror by Peter Kroon
|
1386 |
+
*/.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: #81a4d5;}.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;}/*
|
1387 |
+
Name: lucario
|
1388 |
+
Author: Raphael Amorim
|
1389 |
+
|
1390 |
+
Original Lucario color scheme (https://github.com/raphamorim/lucario)
|
1391 |
+
*/.cm-s-lucario.CodeMirror,.cm-s-lucario .CodeMirror-gutters {background-color: #2b3e50 !important;color: #f8f8f2 !important;border: none;}.cm-s-lucario .CodeMirror-gutters {color: #2b3e50;}.cm-s-lucario .CodeMirror-cursor {border-left: solid thin #E6C845;}.cm-s-lucario .CodeMirror-linenumber {color: #f8f8f2;}.cm-s-lucario .CodeMirror-selected {background: #243443;}.cm-s-lucario .CodeMirror-line::-moz-selection,.cm-s-lucario .CodeMirror-line > span::-moz-selection,.cm-s-lucario .CodeMirror-line > span > span::-moz-selection {background: #243443;}.cm-s-lucario .CodeMirror-line::selection,.cm-s-lucario .CodeMirror-line > span::selection,.cm-s-lucario .CodeMirror-line > span > span::selection {background: #243443;}.cm-s-lucario .CodeMirror-line::-moz-selection,.cm-s-lucario .CodeMirror-line > span::-moz-selection,.cm-s-lucario .CodeMirror-line > span > span::-moz-selection {background: #243443;}.cm-s-lucario span.cm-comment {color: #5c98cd;}.cm-s-lucario span.cm-string,.cm-s-lucario span.cm-string-2 {color: #E6DB74;}.cm-s-lucario span.cm-number {color: #ca94ff;}.cm-s-lucario span.cm-variable {color: #f8f8f2;}.cm-s-lucario span.cm-variable-2 {color: #f8f8f2;}.cm-s-lucario span.cm-def {color: #72C05D;}.cm-s-lucario span.cm-operator {color: #66D9EF;}.cm-s-lucario span.cm-keyword {color: #ff6541;}.cm-s-lucario span.cm-atom {color: #bd93f9;}.cm-s-lucario span.cm-meta {color: #f8f8f2;}.cm-s-lucario span.cm-tag {color: #ff6541;}.cm-s-lucario span.cm-attribute {color: #66D9EF;}.cm-s-lucario span.cm-qualifier {color: #72C05D;}.cm-s-lucario span.cm-property {color: #f8f8f2;}.cm-s-lucario span.cm-builtin {color: #72C05D;}.cm-s-lucario span.cm-variable-3,.cm-s-lucario span.cm-type {color: #ffb86c;}.cm-s-lucario .CodeMirror-activeline-background {background: #243443;}.cm-s-lucario .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
|
1392 |
|
1393 |
Name: material
|
1394 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1752 |
.cm-s-midnight .CodeMirror-matchingbracket {
|
1753 |
text-decoration: underline;
|
1754 |
color: white !important;
|
1755 |
+
}/* 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-comment.cm-attribute {color: #97b757;}.cm-s-monokai span.cm-comment.cm-def {color: #bc9262;}.cm-s-monokai span.cm-comment.cm-tag {color: #bc6283;}.cm-s-monokai span.cm-comment.cm-type {color: #5998a6;}.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;}/*
|
1756 |
+
|
1757 |
+
Name: oceanic-next
|
1758 |
+
Author: Filype Pereira (https://github.com/fpereira1)
|
1759 |
+
|
1760 |
+
Original oceanic-next color scheme by Dmitri Voronianski (https://github.com/voronianski/oceanic-next-color-scheme)
|
1761 |
+
|
1762 |
+
*/.cm-s-oceanic-next.CodeMirror {background: #304148;color: #f8f8f2;}.cm-s-oceanic-next div.CodeMirror-selected {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-line::-moz-selection,.cm-s-oceanic-next .CodeMirror-line > span::-moz-selection,.cm-s-oceanic-next .CodeMirror-line > span > span::-moz-selection {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-line::selection,.cm-s-oceanic-next .CodeMirror-line > span::selection,.cm-s-oceanic-next .CodeMirror-line > span > span::selection {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-line::-moz-selection,.cm-s-oceanic-next .CodeMirror-line > span::-moz-selection,.cm-s-oceanic-next .CodeMirror-line > span > span::-moz-selection {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-gutters {background: #304148;border-right: 10px;}.cm-s-oceanic-next .CodeMirror-guttermarker {color: white;}.cm-s-oceanic-next .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-oceanic-next .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-oceanic-next .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-oceanic-next span.cm-comment {color: #65737E;}.cm-s-oceanic-next span.cm-atom {color: #C594C5;}.cm-s-oceanic-next span.cm-number {color: #F99157;}.cm-s-oceanic-next span.cm-property {color: #99C794;}.cm-s-oceanic-next span.cm-attribute,.cm-s-oceanic-next span.cm-keyword {color: #C594C5;}.cm-s-oceanic-next span.cm-builtin {color: #66d9ef;}.cm-s-oceanic-next span.cm-string {color: #99C794;}.cm-s-oceanic-next span.cm-variable,.cm-s-oceanic-next span.cm-variable-2,.cm-s-oceanic-next span.cm-variable-3 {color: #f8f8f2;}.cm-s-oceanic-next span.cm-def {color: #6699CC;}.cm-s-oceanic-next span.cm-bracket {color: #5FB3B3;}.cm-s-oceanic-next span.cm-tag {color: #C594C5;}.cm-s-oceanic-next span.cm-header {color: #C594C5;}.cm-s-oceanic-next span.cm-link {color: #C594C5;}.cm-s-oceanic-next span.cm-error {background: #C594C5;color: #f8f8f0;}.cm-s-oceanic-next .CodeMirror-activeline-background {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
|
1763 |
Name: Panda Syntax
|
1764 |
Author: Siamak Mokhtari (http://github.com/siamak/)
|
1765 |
CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
|
1802 |
Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
|
1803 |
|
1804 |
*/.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;}/*
|
1805 |
+
|
1806 |
+
Name: shadowfox
|
1807 |
+
Author: overdodactyl (http://github.com/overdodactyl)
|
1808 |
+
|
1809 |
+
Original shadowfox color scheme by Firefox
|
1810 |
+
|
1811 |
+
*/.cm-s-shadowfox.CodeMirror {background: #2a2a2e;color: #b1b1b3;}.cm-s-shadowfox div.CodeMirror-selected {background: #353B48;}.cm-s-shadowfox .CodeMirror-line::-moz-selection,.cm-s-shadowfox .CodeMirror-line > span::-moz-selection,.cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection {background: #353B48;}.cm-s-shadowfox .CodeMirror-line::selection,.cm-s-shadowfox .CodeMirror-line > span::selection,.cm-s-shadowfox .CodeMirror-line > span > span::selection {background: #353B48;}.cm-s-shadowfox .CodeMirror-line::-moz-selection,.cm-s-shadowfox .CodeMirror-line > span::-moz-selection,.cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection {background: #353B48;}.cm-s-shadowfox .CodeMirror-gutters {background: #0c0c0d;border-right: 1px solid #0c0c0d;}.cm-s-shadowfox .CodeMirror-guttermarker {color: #555;}.cm-s-shadowfox .CodeMirror-linenumber {color: #939393;}.cm-s-shadowfox .CodeMirror-cursor {border-left: 1px solid #fff;}.cm-s-shadowfox span.cm-comment {color: #939393;}.cm-s-shadowfox span.cm-atom {color: #FF7DE9;}.cm-s-shadowfox span.cm-quote {color: #FF7DE9;}.cm-s-shadowfox span.cm-builtin {color: #FF7DE9;}.cm-s-shadowfox span.cm-attribute {color: #FF7DE9;}.cm-s-shadowfox span.cm-keyword {color: #FF7DE9;}.cm-s-shadowfox span.cm-error {color: #FF7DE9;}.cm-s-shadowfox span.cm-number {color: #6B89FF;}.cm-s-shadowfox span.cm-string {color: #6B89FF;}.cm-s-shadowfox span.cm-string-2 {color: #6B89FF;}.cm-s-shadowfox span.cm-meta {color: #939393;}.cm-s-shadowfox span.cm-hr {color: #939393;}.cm-s-shadowfox span.cm-header {color: #75BFFF;}.cm-s-shadowfox span.cm-qualifier {color: #75BFFF;}.cm-s-shadowfox span.cm-variable-2 {color: #75BFFF;}.cm-s-shadowfox span.cm-property {color: #86DE74;}.cm-s-shadowfox span.cm-def {color: #75BFFF;}.cm-s-shadowfox span.cm-bracket {color: #75BFFF;}.cm-s-shadowfox span.cm-tag {color: #75BFFF;}.cm-s-shadowfox span.cm-link:visited {color: #75BFFF;}.cm-s-shadowfox span.cm-variable {color: #B98EFF;}.cm-s-shadowfox span.cm-variable-3 {color: #d7d7db;}.cm-s-shadowfox span.cm-link {color: #737373;}.cm-s-shadowfox span.cm-operator {color: #b1b1b3;}.cm-s-shadowfox span.cm-special {color: #d7d7db;}.cm-s-shadowfox .CodeMirror-activeline-background {background: rgba(185, 215, 253, 0.15);}.cm-s-shadowfox .CodeMirror-matchingbracket {outline: solid 1px rgba(255, 255, 255, 0.25);color: white !important;}/*
|
1812 |
Solarized theme for code-mirror
|
1813 |
http://ethanschoonover.com/solarized
|
1814 |
*//*
|
1815 |
Solarized color palette
|
1816 |
http://ethanschoonover.com/solarized/img/solarized-palette.png
|
1817 |
+
*/.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-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 {-webkit-box-shadow: inset 7px 0 12px -6px #000;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-ssms span.cm-keyword {color: blue;}.cm-s-ssms span.cm-comment {color: darkgreen;}.cm-s-ssms span.cm-string {color: red;}.cm-s-ssms span.cm-def {color: black;}.cm-s-ssms span.cm-variable {color: black;}.cm-s-ssms span.cm-variable-2 {color: black;}.cm-s-ssms span.cm-atom {color: darkgray;}.cm-s-ssms .CodeMirror-linenumber {color: teal;}.cm-s-ssms .CodeMirror-activeline-background {background: #ffffff;}.cm-s-ssms span.cm-string-2 {color: #FF00FF;}.cm-s-ssms span.cm-operator,.cm-s-ssms span.cm-bracket,.cm-s-ssms span.cm-punctuation {color: darkgray;}.cm-s-ssms .CodeMirror-gutters {border-right: 3px solid #ffee62;background-color: #ffffff;}.cm-s-ssms div.CodeMirror-selected {background: #ADD6FF;}.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;}/*
|
1818 |
|
1819 |
Name: Tomorrow Night - Bright
|
1820 |
Author: Chris Kempson
|
1886 |
* Also using parts of https://github.com/xavi/coderay-lighttable-theme
|
1887 |
* "
|
1888 |
* From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
|
1889 |
+
*/.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 white;}.cm-s-zenburn {background-color: #3f3f3f;color: #dcdccc;}.cm-s-zenburn span.cm-builtin {color: #dcdccc;font-weight: bold;}.cm-s-zenburn span.cm-comment {color: #7f9f7f;}.cm-s-zenburn span.cm-keyword {color: #f0dfaf;font-weight: bold;}.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 {color: #cc9393;}.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-property {color: #dfaf8f;}.cm-s-zenburn span.cm-attribute {color: #dfaf8f;}.cm-s-zenburn span.cm-qualifier {color: #7cb8bb;}.cm-s-zenburn span.cm-meta {color: #f0dfaf;}.cm-s-zenburn span.cm-header {color: #f0efd0;}.cm-s-zenburn span.cm-operator {color: #f0efd0;}.cm-s-zenburn span.CodeMirror-matchingbracket {-webkit-box-sizing: border-box;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 {background: #000000;}.cm-s-zenburn .CodeMirror-activeline-background {background: #000000;}.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: 0.3;cursor: pointer;}.CodeMirror-foldgutter {width: 0.7em;}.CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded {cursor: pointer;}.CodeMirror-foldgutter-open:after {content: "\25BE";}.CodeMirror-foldgutter-folded:after {content: "\25B8";}.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;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;}.CodeMirror-settings__toggle {border-radius: 3px;z-index: 11;-webkit-box-sizing: border-box;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: white;-webkit-transition: 250ms ease;transition: 250ms ease;-webkit-transition-property: -webkit-transform opacity;transition-property: -webkit-transform opacity;transition-property: transform opacity;transition-property: transform opacity, -webkit-transform opacity;position: absolute;top: 0;right: 0;bottom: 0;left: 0;}.CodeMirror-settings__wrapper {pointer-events: none;visibility: hidden;}.CodeMirror-settings__docked,.CodeMirror-settings__body {pointer-events: initial;visibility: visible;}.CodeMirror-settings__wrapper {position: absolute;width: calc(100% - 12px );max-height: calc(100% - 12px );top: 0;margin: 6px;-webkit-box-sizing: border-box;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: white;-webkit-box-sizing: border-box;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;-webkit-box-sizing: border-box;box-sizing: border-box;padding: 1px 12px;overflow-y: auto;background-color: rgba(255, 255, 255, 0.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: 0.6;}td.CodeMirror-settings__heading {padding: 0;padding-bottom: 12px;}.CodeMirror-settings__foot-content {margin: 0;}.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__header,.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__wrapper {-webkit-transition: 250ms ease;transition: 250ms ease;-webkit-transition-property: opacity, -webkit-transform;transition-property: opacity, -webkit-transform;transition-property: opacity, transform;transition-property: opacity, transform, -webkit-transform;-webkit-transform-origin: top right;transform-origin: top right;}.CodeMirror-settings.closed .CodeMirror-settings__toggle-advanced:before {content: 'more...';}.CodeMirror-settings.closed .CodeMirror-settings__toggle {opacity: 0.5;}.CodeMirror-settings.closed .CodeMirror-settings__toggle:hover {opacity: 1;}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before {opacity: 1;}.CodeMirror-settings.closed .CodeMirror-settings__wrapper {opacity: 0;-webkit-transform: scaleX(0);transform: scaleX(0);}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer {visibility: hidden;opacity: 0;-webkit-transform: translate(0, -20px);transform: translate(0, -20px);-webkit-transition: opacity 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;transition: opacity 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms;transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;}.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;-webkit-transform: scaleX(1);transform: scaleX(1);}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer {visibility: hidden;opacity: 0;-webkit-transform: translate(0, -20px);transform: translate(0, -20px);-webkit-transition: opacity 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;transition: opacity 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms;transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;}.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;-webkit-transform: translate(0, 0);transform: translate(0, 0);-webkit-transition: visibility 1ms ease, opacity 250ms ease 1ms, -webkit-transform 250ms ease 1ms;transition: visibility 1ms ease, opacity 250ms ease 1ms, -webkit-transform 250ms ease 1ms;transition: visibility 1ms ease, opacity 250ms ease 1ms, transform 250ms ease 1ms;transition: visibility 1ms ease, opacity 250ms ease 1ms, transform 250ms ease 1ms, -webkit-transform 250ms ease 1ms;}.CodeMirror-settings__button {position: relative;}.CodeMirror-settings__button:active {-webkit-transform: none !important;transform: none !important;}.CodeMirror-settings__button select,.CodeMirror-settings__button input {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;-webkit-box-sizing: border-box;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: white;}.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, 0.05);color: inherit;font-family: monospace;margin: -1px 12px;padding: 0 12px;-ms-flex-item-align: stretch;align-self: stretch;-ms-flex: 1 1 auto;flex: 1 1 auto;}.CodeMirror-dialog input,.CodeMirror-dialog input:focus {-webkit-box-shadow: none;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-scrollbar-filler,.CodeMirror-overlayscroll .CodeMirror-gutter-filler {display: none !important;}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical {position: absolute;z-index: 6;-webkit-transition: opacity 100ms linear;transition: opacity 100ms linear;opacity: 0.5;}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover {opacity: 1;}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active {opacity: 0.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: initial;}#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, 0.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;}.CodeMirror-settings__toggle {width: 35px;}.CodeMirror-settings__toggle:after {font-size: 20px;}.CodeMirror-settings__toggle:after {margin: 7px;}.CodeMirror-settings__docked {min-height: 35px;}.CodeMirror-settings__header {padding-right: 35px;}.CodeMirror-settings__button--select:after {font-size: 16px;}.CodeMirror-settings__button--select:after {margin-top: 0;}.CodeMirror-dialog {height: 35px;}.CodeMirror-dialog {padding-right: 35px;}.CodeMirror-dialog:after {font-size: 20px;}.CodeMirror-dialog:after {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;}.CodeMirror-settings__toggle {width: 44px;}.CodeMirror-settings__toggle:after {font-size: 28px;}.CodeMirror-settings__toggle:after {margin: 8px;}.CodeMirror-settings__docked {min-height: 44px;}.CodeMirror-settings__header {padding-right: 44px;}.CodeMirror-settings__button--select:after {font-size: 20px;}.CodeMirror-settings__button--select:after {margin-top: -2px;}.CodeMirror-dialog {height: 44px;}.CodeMirror-dialog {padding-right: 44px;}.CodeMirror-dialog:after {font-size: 28px;}.CodeMirror-dialog:after {margin: 8px;}.CodeMirror-overlayscroll-vertical div:after {top: 56px;}#template .CodeMirror {margin-right: initial;}}@media screen and (max-height: 550px) {.heshFullscreen .CodeMirror {height: 75% !important;}}@media print {/* Hide the cursor when printing */.CodeMirror div.CodeMirror-cursors {visibility: hidden;}}@-webkit-keyframes blink {50% {background-color: transparent;}}@keyframes blink {50% {background-color: transparent;}}
|
dist/hesh.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
2 |
-
// Distributed under an MIT license:
|
3 |
|
4 |
-
// This is CodeMirror (
|
5 |
// implemented in JavaScript on top of the browser's DOM.
|
6 |
//
|
7 |
// You can find some technical background for some of the code below
|
@@ -279,13 +279,18 @@ function skipExtendingChars(str, pos, dir) {
|
|
279 |
}
|
280 |
|
281 |
// Returns the value from the range [`from`; `to`] that satisfies
|
282 |
-
// `pred` and is closest to `from`. Assumes that at least `to`
|
|
|
283 |
function findFirst(pred, from, to) {
|
|
|
|
|
|
|
284 |
for (;;) {
|
285 |
-
if (
|
286 |
-
var
|
|
|
287 |
if (pred(mid)) { to = mid; }
|
288 |
-
else { from = mid; }
|
289 |
}
|
290 |
}
|
291 |
|
@@ -741,6 +746,16 @@ function collapsedSpanAtSide(line, start) {
|
|
741 |
function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }
|
742 |
function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }
|
743 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
744 |
// Test whether there exists a collapsed span that partially
|
745 |
// overlaps (covers the start or end, but not both) of a new span.
|
746 |
// Such overlap is not allowed.
|
@@ -897,12 +912,12 @@ function findMaxLine(cm) {
|
|
897 |
// BIDI HELPERS
|
898 |
|
899 |
function iterateBidiSections(order, from, to, f) {
|
900 |
-
if (!order) { return f(from, to, "ltr") }
|
901 |
var found = false;
|
902 |
for (var i = 0; i < order.length; ++i) {
|
903 |
var part = order[i];
|
904 |
if (part.from < to && part.to > from || from == to && part.to == from) {
|
905 |
-
f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr");
|
906 |
found = true;
|
907 |
}
|
908 |
}
|
@@ -1083,13 +1098,15 @@ var bidiOrdering = (function() {
|
|
1083 |
if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }
|
1084 |
}
|
1085 |
}
|
1086 |
-
if (
|
1087 |
-
order[0].
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
lst(order).
|
1092 |
-
|
|
|
|
|
1093 |
}
|
1094 |
|
1095 |
return direction == "rtl" ? order.reverse() : order
|
@@ -1105,112 +1122,6 @@ function getOrder(line, direction) {
|
|
1105 |
return order
|
1106 |
}
|
1107 |
|
1108 |
-
function moveCharLogically(line, ch, dir) {
|
1109 |
-
var target = skipExtendingChars(line.text, ch + dir, dir);
|
1110 |
-
return target < 0 || target > line.text.length ? null : target
|
1111 |
-
}
|
1112 |
-
|
1113 |
-
function moveLogically(line, start, dir) {
|
1114 |
-
var ch = moveCharLogically(line, start.ch, dir);
|
1115 |
-
return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before")
|
1116 |
-
}
|
1117 |
-
|
1118 |
-
function endOfLine(visually, cm, lineObj, lineNo, dir) {
|
1119 |
-
if (visually) {
|
1120 |
-
var order = getOrder(lineObj, cm.doc.direction);
|
1121 |
-
if (order) {
|
1122 |
-
var part = dir < 0 ? lst(order) : order[0];
|
1123 |
-
var moveInStorageOrder = (dir < 0) == (part.level == 1);
|
1124 |
-
var sticky = moveInStorageOrder ? "after" : "before";
|
1125 |
-
var ch;
|
1126 |
-
// With a wrapped rtl chunk (possibly spanning multiple bidi parts),
|
1127 |
-
// it could be that the last bidi part is not on the last visual line,
|
1128 |
-
// since visual lines contain content order-consecutive chunks.
|
1129 |
-
// Thus, in rtl, we are looking for the first (content-order) character
|
1130 |
-
// in the rtl chunk that is on the last line (that is, the same line
|
1131 |
-
// as the last (content-order) character).
|
1132 |
-
if (part.level > 0) {
|
1133 |
-
var prep = prepareMeasureForLine(cm, lineObj);
|
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 |
-
}
|
1141 |
-
}
|
1142 |
-
return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after")
|
1143 |
-
}
|
1144 |
-
|
1145 |
-
function moveVisually(cm, line, start, dir) {
|
1146 |
-
var bidi = getOrder(line, cm.doc.direction);
|
1147 |
-
if (!bidi) { return moveLogically(line, start, dir) }
|
1148 |
-
if (start.ch >= line.text.length) {
|
1149 |
-
start.ch = line.text.length;
|
1150 |
-
start.sticky = "before";
|
1151 |
-
} else if (start.ch <= 0) {
|
1152 |
-
start.ch = 0;
|
1153 |
-
start.sticky = "after";
|
1154 |
-
}
|
1155 |
-
var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];
|
1156 |
-
if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {
|
1157 |
-
// Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,
|
1158 |
-
// nothing interesting happens.
|
1159 |
-
return moveLogically(line, start, dir)
|
1160 |
-
}
|
1161 |
-
|
1162 |
-
var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };
|
1163 |
-
var prep;
|
1164 |
-
var getWrappedLineExtent = function (ch) {
|
1165 |
-
if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }
|
1166 |
-
prep = prep || prepareMeasureForLine(cm, line);
|
1167 |
-
return wrappedLineExtentChar(cm, line, prep, ch)
|
1168 |
-
};
|
1169 |
-
var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch);
|
1170 |
-
|
1171 |
-
if (cm.doc.direction == "rtl" || part.level == 1) {
|
1172 |
-
var moveInStorageOrder = (part.level == 1) == (dir < 0);
|
1173 |
-
var ch = mv(start, moveInStorageOrder ? 1 : -1);
|
1174 |
-
if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {
|
1175 |
-
// Case 2: We move within an rtl part or in an rtl editor on the same visual line
|
1176 |
-
var sticky = moveInStorageOrder ? "before" : "after";
|
1177 |
-
return new Pos(start.line, ch, sticky)
|
1178 |
-
}
|
1179 |
-
}
|
1180 |
-
|
1181 |
-
// Case 3: Could not move within this bidi part in this visual line, so leave
|
1182 |
-
// the current bidi part
|
1183 |
-
|
1184 |
-
var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {
|
1185 |
-
var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder
|
1186 |
-
? new Pos(start.line, mv(ch, 1), "before")
|
1187 |
-
: new Pos(start.line, ch, "after"); };
|
1188 |
-
|
1189 |
-
for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {
|
1190 |
-
var part = bidi[partPos];
|
1191 |
-
var moveInStorageOrder = (dir > 0) == (part.level != 1);
|
1192 |
-
var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);
|
1193 |
-
if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }
|
1194 |
-
ch = moveInStorageOrder ? part.from : mv(part.to, -1);
|
1195 |
-
if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }
|
1196 |
-
}
|
1197 |
-
};
|
1198 |
-
|
1199 |
-
// Case 3a: Look for other bidi parts on the same visual line
|
1200 |
-
var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);
|
1201 |
-
if (res) { return res }
|
1202 |
-
|
1203 |
-
// Case 3b: Look for other bidi parts on the next visual line
|
1204 |
-
var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);
|
1205 |
-
if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {
|
1206 |
-
res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));
|
1207 |
-
if (res) { return res }
|
1208 |
-
}
|
1209 |
-
|
1210 |
-
// Case 4: Nowhere to move
|
1211 |
-
return null
|
1212 |
-
}
|
1213 |
-
|
1214 |
// EVENT HANDLING
|
1215 |
|
1216 |
// Lightweight event framework. on/off also work on DOM nodes,
|
@@ -1572,6 +1483,10 @@ 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;
|
@@ -1583,6 +1498,8 @@ var Context = function(doc, state, line, lookAhead) {
|
|
1583 |
this.doc = doc;
|
1584 |
this.line = line;
|
1585 |
this.maxLookAhead = lookAhead || 0;
|
|
|
|
|
1586 |
};
|
1587 |
|
1588 |
Context.prototype.lookAhead = function (n) {
|
@@ -1591,6 +1508,17 @@ Context.prototype.lookAhead = function (n) {
|
|
1591 |
return line
|
1592 |
};
|
1593 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1594 |
Context.prototype.nextLine = function () {
|
1595 |
this.line++;
|
1596 |
if (this.maxLookAhead > 0) { this.maxLookAhead--; }
|
@@ -1624,6 +1552,7 @@ function highlightLine(cm, line, context, forceToEnd) {
|
|
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) {
|
@@ -1647,10 +1576,12 @@ function highlightLine(cm, line, context, forceToEnd) {
|
|
1647 |
}
|
1648 |
}
|
1649 |
}, lineClasses);
|
|
|
|
|
|
|
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 |
}
|
@@ -2721,15 +2652,22 @@ function pageScrollY() {
|
|
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
|
2726 |
// "line", "div" (display.lineDiv), "local"./null (editor), "window",
|
2727 |
// or "page".
|
2728 |
function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {
|
2729 |
-
if (!includeWidgets
|
2730 |
-
var
|
2731 |
-
rect.top +=
|
2732 |
-
}
|
2733 |
if (context == "line") { return rect }
|
2734 |
if (!context) { context = "local"; }
|
2735 |
var yOff = heightAtLine(lineObj);
|
@@ -2804,7 +2742,7 @@ function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
|
|
2804 |
if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") }
|
2805 |
|
2806 |
function getBidi(ch, partPos, invert) {
|
2807 |
-
var part = order[partPos], right =
|
2808 |
return get(invert ? ch - 1 : ch, right != invert)
|
2809 |
}
|
2810 |
var partPos = getBidiPartAt(order, ch, sticky);
|
@@ -2852,87 +2790,156 @@ function coordsChar(cm, x, y) {
|
|
2852 |
var lineObj = getLine(doc, lineN);
|
2853 |
for (;;) {
|
2854 |
var found = coordsCharInner(cm, lineObj, lineN, x, y);
|
2855 |
-
var
|
2856 |
-
|
2857 |
-
|
2858 |
-
|
2859 |
-
|
2860 |
-
{ return found }
|
2861 |
}
|
2862 |
}
|
2863 |
|
2864 |
function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {
|
2865 |
-
|
2866 |
var end = lineObj.text.length;
|
2867 |
-
var begin = findFirst(function (ch) { return
|
2868 |
-
end = findFirst(function (ch) { return
|
2869 |
return {begin: begin, end: end}
|
2870 |
}
|
2871 |
|
2872 |
function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {
|
|
|
2873 |
var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top;
|
2874 |
return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)
|
2875 |
}
|
2876 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2877 |
function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
|
|
|
2878 |
y -= heightAtLine(lineObj);
|
2879 |
-
var begin = 0, end = lineObj.text.length;
|
2880 |
var preparedMeasure = prepareMeasureForLine(cm, lineObj);
|
2881 |
-
|
|
|
|
|
|
|
|
|
2882 |
var order = getOrder(lineObj, cm.doc.direction);
|
|
|
|
|
2883 |
if (order) {
|
2884 |
-
|
2885 |
-
|
2886 |
-
|
2887 |
-
|
2888 |
-
|
2889 |
-
|
2890 |
-
|
2891 |
-
|
2892 |
-
|
2893 |
-
|
2894 |
-
|
2895 |
-
|
2896 |
-
|
2897 |
-
|
2898 |
-
|
2899 |
-
|
2900 |
-
|
2901 |
-
|
2902 |
-
|
2903 |
-
|
2904 |
-
|
2905 |
-
|
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;
|
2915 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2916 |
} else {
|
2917 |
-
|
2918 |
-
|
2919 |
-
|
2920 |
-
|
2921 |
-
|
2922 |
-
|
2923 |
-
|
2924 |
-
|
2925 |
-
|
2926 |
-
|
2927 |
-
|
2928 |
-
|
2929 |
-
|
2930 |
-
|
2931 |
-
|
2932 |
-
|
2933 |
-
|
2934 |
-
|
2935 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2936 |
}
|
2937 |
|
2938 |
var measureText;
|
@@ -3058,12 +3065,14 @@ function updateSelection(cm) {
|
|
3058 |
}
|
3059 |
|
3060 |
function prepareSelection(cm, primary) {
|
|
|
|
|
3061 |
var doc = cm.doc, result = {};
|
3062 |
var curFragment = result.cursors = document.createDocumentFragment();
|
3063 |
var selFragment = result.selection = document.createDocumentFragment();
|
3064 |
|
3065 |
for (var i = 0; i < doc.sel.ranges.length; i++) {
|
3066 |
-
if (primary
|
3067 |
var range$$1 = doc.sel.ranges[i];
|
3068 |
if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue }
|
3069 |
var collapsed = range$$1.empty();
|
@@ -3094,12 +3103,15 @@ function drawSelectionCursor(cm, head, output) {
|
|
3094 |
}
|
3095 |
}
|
3096 |
|
|
|
|
|
3097 |
// Draws the given range as a highlighted selection
|
3098 |
function drawSelectionRange(cm, range$$1, output) {
|
3099 |
var display = cm.display, doc = cm.doc;
|
3100 |
var fragment = document.createDocumentFragment();
|
3101 |
var padding = paddingH(cm.display), leftSide = padding.left;
|
3102 |
var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
|
|
|
3103 |
|
3104 |
function add(left, top, width, bottom) {
|
3105 |
if (top < 0) { top = 0; }
|
@@ -3116,30 +3128,49 @@ function drawSelectionRange(cm, range$$1, output) {
|
|
3116 |
return charCoords(cm, Pos(line, ch), "div", lineObj, bias)
|
3117 |
}
|
3118 |
|
3119 |
-
|
3120 |
-
var
|
3121 |
-
|
3122 |
-
|
3123 |
-
|
3124 |
-
|
3125 |
-
|
3126 |
-
|
3127 |
-
|
3128 |
-
|
3129 |
-
|
3130 |
-
|
3131 |
-
|
3132 |
-
|
3133 |
-
|
3134 |
-
|
3135 |
-
|
3136 |
-
|
3137 |
-
|
3138 |
-
|
3139 |
-
|
3140 |
-
|
3141 |
-
|
3142 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3143 |
});
|
3144 |
return {start: start, end: end}
|
3145 |
}
|
@@ -3254,8 +3285,10 @@ function updateHeightsInViewport(cm) {
|
|
3254 |
// Read and store the height of line widgets associated with the
|
3255 |
// given line.
|
3256 |
function updateWidgetHeight(line) {
|
3257 |
-
if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i)
|
3258 |
-
|
|
|
|
|
3259 |
}
|
3260 |
|
3261 |
// Compute the lines that are visible in a given viewport (defaults
|
@@ -3521,6 +3554,7 @@ var NativeScrollbars = function(place, scroll, cm) {
|
|
3521 |
this.cm = cm;
|
3522 |
var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
|
3523 |
var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
|
|
|
3524 |
place(vert); place(horiz);
|
3525 |
|
3526 |
on(vert, "scroll", function () {
|
@@ -3769,7 +3803,7 @@ function endOperation_R2(op) {
|
|
3769 |
}
|
3770 |
|
3771 |
if (op.updatedDisplay || op.selectionChanged)
|
3772 |
-
{ op.preparedSelection = display.input.prepareSelection(
|
3773 |
}
|
3774 |
|
3775 |
function endOperation_W2(op) {
|
@@ -3782,7 +3816,7 @@ function endOperation_W2(op) {
|
|
3782 |
cm.display.maxLineChanged = false;
|
3783 |
}
|
3784 |
|
3785 |
-
var takeFocus = op.focus && op.focus == activeElt()
|
3786 |
if (op.preparedSelection)
|
3787 |
{ cm.display.input.showSelection(op.preparedSelection, takeFocus); }
|
3788 |
if (op.updatedDisplay || op.startHeight != cm.doc.height)
|
@@ -4772,7 +4806,7 @@ function addChangeToHistory(doc, change, selAfter, opId) {
|
|
4772 |
|
4773 |
if ((hist.lastOp == opId ||
|
4774 |
hist.lastOrigin == change.origin && change.origin &&
|
4775 |
-
((change.origin.charAt(0) == "+" &&
|
4776 |
change.origin.charAt(0) == "*")) &&
|
4777 |
(cur = lastChangeEvent(hist, hist.lastOp == opId))) {
|
4778 |
// Merge this change into the last event
|
@@ -5201,7 +5235,8 @@ function makeChangeInner(doc, change) {
|
|
5201 |
|
5202 |
// Revert a change stored in a document's history.
|
5203 |
function makeChangeFromHistory(doc, type, allowSelectionOnly) {
|
5204 |
-
|
|
|
5205 |
|
5206 |
var hist = doc.history, event, selAfter = doc.sel;
|
5207 |
var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
|
@@ -5226,8 +5261,10 @@ function makeChangeFromHistory(doc, type, allowSelectionOnly) {
|
|
5226 |
return
|
5227 |
}
|
5228 |
selAfter = event;
|
5229 |
-
}
|
5230 |
-
|
|
|
|
|
5231 |
}
|
5232 |
|
5233 |
// Build up a reverse change object to add to the opposite history
|
@@ -5382,7 +5419,8 @@ function makeChangeSingleDocInEditor(cm, change, spans) {
|
|
5382 |
|
5383 |
function replaceRange(doc, code, from, to, origin) {
|
5384 |
if (!to) { to = from; }
|
5385 |
-
if (cmp(to, from) < 0) { var
|
|
|
5386 |
if (typeof code == "string") { code = doc.splitLines(code); }
|
5387 |
makeChange(doc, {from: from, to: to, text: code, origin: origin});
|
5388 |
}
|
@@ -5478,10 +5516,10 @@ function LeafChunk(lines) {
|
|
5478 |
}
|
5479 |
|
5480 |
LeafChunk.prototype = {
|
5481 |
-
chunkSize: function
|
5482 |
|
5483 |
// Remove the n lines at offset 'at'.
|
5484 |
-
removeInner: function
|
5485 |
var this$1 = this;
|
5486 |
|
5487 |
for (var i = at, e = at + n; i < e; ++i) {
|
@@ -5494,13 +5532,13 @@ LeafChunk.prototype = {
|
|
5494 |
},
|
5495 |
|
5496 |
// Helper used to collapse a small branch into a single leaf.
|
5497 |
-
collapse: function
|
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
|
5504 |
var this$1 = this;
|
5505 |
|
5506 |
this.height += height;
|
@@ -5509,7 +5547,7 @@ LeafChunk.prototype = {
|
|
5509 |
},
|
5510 |
|
5511 |
// Used to iterate over a part of the tree.
|
5512 |
-
iterN: function
|
5513 |
var this$1 = this;
|
5514 |
|
5515 |
for (var e = at + n; at < e; ++at)
|
@@ -5533,9 +5571,9 @@ function BranchChunk(children) {
|
|
5533 |
}
|
5534 |
|
5535 |
BranchChunk.prototype = {
|
5536 |
-
chunkSize: function
|
5537 |
|
5538 |
-
removeInner: function
|
5539 |
var this$1 = this;
|
5540 |
|
5541 |
this.size -= n;
|
@@ -5561,13 +5599,13 @@ BranchChunk.prototype = {
|
|
5561 |
}
|
5562 |
},
|
5563 |
|
5564 |
-
collapse: function
|
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
|
5571 |
var this$1 = this;
|
5572 |
|
5573 |
this.size += lines.length;
|
@@ -5596,7 +5634,7 @@ BranchChunk.prototype = {
|
|
5596 |
},
|
5597 |
|
5598 |
// When a node has grown, check whether it should be split.
|
5599 |
-
maybeSpill: function
|
5600 |
if (this.children.length <= 10) { return }
|
5601 |
var me = this;
|
5602 |
do {
|
@@ -5618,7 +5656,7 @@ BranchChunk.prototype = {
|
|
5618 |
me.parent.maybeSpill();
|
5619 |
},
|
5620 |
|
5621 |
-
iterN: function
|
5622 |
var this$1 = this;
|
5623 |
|
5624 |
for (var i = 0; i < this.children.length; ++i) {
|
@@ -5669,7 +5707,7 @@ LineWidget.prototype.changed = function () {
|
|
5669 |
this.height = null;
|
5670 |
var diff = widgetHeight(this) - oldH;
|
5671 |
if (!diff) { return }
|
5672 |
-
updateLineHeight(line, line.height + diff);
|
5673 |
if (cm) {
|
5674 |
runInOp(cm, function () {
|
5675 |
cm.curOp.forceUpdate = true;
|
@@ -5702,7 +5740,7 @@ function addLineWidget(doc, handle, node, options) {
|
|
5702 |
}
|
5703 |
return true
|
5704 |
});
|
5705 |
-
signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle));
|
5706 |
return widget
|
5707 |
}
|
5708 |
|
@@ -6551,8 +6589,6 @@ function registerGlobalHandlers() {
|
|
6551 |
// Called when the window resizes
|
6552 |
function onResize(cm) {
|
6553 |
var d = cm.display;
|
6554 |
-
if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth)
|
6555 |
-
{ return }
|
6556 |
// Might be a text scaling operation, clear size caches.
|
6557 |
d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
|
6558 |
d.scrollbarsClipped = false;
|
@@ -6560,11 +6596,11 @@ function onResize(cm) {
|
|
6560 |
}
|
6561 |
|
6562 |
var keyNames = {
|
6563 |
-
3: "
|
6564 |
19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
|
6565 |
36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
|
6566 |
46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
|
6567 |
-
106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete",
|
6568 |
173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
|
6569 |
221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
|
6570 |
63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
|
@@ -6598,7 +6634,7 @@ keyMap.pcDefault = {
|
|
6598 |
"Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
|
6599 |
"Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
|
6600 |
"Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
|
6601 |
-
fallthrough: "basic"
|
6602 |
};
|
6603 |
// Very basic readline/emacs-style bindings, which are standard on Mac.
|
6604 |
keyMap.emacsy = {
|
@@ -6616,7 +6652,7 @@ keyMap.macDefault = {
|
|
6616 |
"Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
|
6617 |
"Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
|
6618 |
"Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
|
6619 |
-
fallthrough: ["basic", "emacsy"]
|
6620 |
};
|
6621 |
keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
|
6622 |
|
@@ -6711,6 +6747,9 @@ 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 |
|
@@ -6743,6 +6782,112 @@ function deleteNearSelection(cm, compute) {
|
|
6743 |
});
|
6744 |
}
|
6745 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6746 |
// Commands are parameter-less actions that can be performed on an
|
6747 |
// editor, mostly used for keybindings.
|
6748 |
var commands = {
|
@@ -6944,18 +7089,26 @@ function lookupKeyForEditor(cm, name, handle) {
|
|
6944 |
// for bound mouse clicks.
|
6945 |
|
6946 |
var stopSeq = new Delayed;
|
|
|
6947 |
function dispatchKey(cm, name, e, handle) {
|
6948 |
var seq = cm.state.keySeq;
|
6949 |
if (seq) {
|
6950 |
if (isModifierKey(name)) { return "handled" }
|
6951 |
-
|
6952 |
-
|
6953 |
-
|
6954 |
-
|
6955 |
-
|
6956 |
-
|
6957 |
-
|
|
|
|
|
|
|
6958 |
}
|
|
|
|
|
|
|
|
|
6959 |
var result = lookupKeyForEditor(cm, name, handle);
|
6960 |
|
6961 |
if (result == "multi")
|
@@ -6968,10 +7121,6 @@ function dispatchKey(cm, name, e, handle) {
|
|
6968 |
restartBlink(cm);
|
6969 |
}
|
6970 |
|
6971 |
-
if (seq && !result && /\'$/.test(name)) {
|
6972 |
-
e_preventDefault(e);
|
6973 |
-
return true
|
6974 |
-
}
|
6975 |
return !!result
|
6976 |
}
|
6977 |
|
@@ -7183,8 +7332,8 @@ function leftButtonStartDrag(cm, event, pos, behavior) {
|
|
7183 |
var dragEnd = operation(cm, function (e) {
|
7184 |
if (webkit) { display.scroller.draggable = false; }
|
7185 |
cm.state.draggingText = false;
|
7186 |
-
off(
|
7187 |
-
off(
|
7188 |
off(display.scroller, "dragstart", dragStart);
|
7189 |
off(display.scroller, "drop", dragEnd);
|
7190 |
if (!moved) {
|
@@ -7193,7 +7342,7 @@ function leftButtonStartDrag(cm, event, pos, behavior) {
|
|
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 () {
|
7197 |
else
|
7198 |
{ display.input.focus(); }
|
7199 |
}
|
@@ -7208,8 +7357,8 @@ function leftButtonStartDrag(cm, event, pos, behavior) {
|
|
7208 |
dragEnd.copy = !behavior.moveOnDrag;
|
7209 |
// IE's approach to draggable
|
7210 |
if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
|
7211 |
-
on(
|
7212 |
-
on(
|
7213 |
on(display.scroller, "dragstart", dragStart);
|
7214 |
on(display.scroller, "drop", dragEnd);
|
7215 |
|
@@ -7304,7 +7453,7 @@ function leftButtonSelect(cm, event, start, behavior) {
|
|
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);
|
7308 |
setSelection(doc, normalizeSelection(ranges$1, ourIndex), sel_mouse);
|
7309 |
}
|
7310 |
}
|
@@ -7341,19 +7490,53 @@ function leftButtonSelect(cm, event, start, behavior) {
|
|
7341 |
counter = Infinity;
|
7342 |
e_preventDefault(e);
|
7343 |
display.input.focus();
|
7344 |
-
off(
|
7345 |
-
off(
|
7346 |
doc.history.lastSelOrigin = null;
|
7347 |
}
|
7348 |
|
7349 |
var move = operation(cm, function (e) {
|
7350 |
-
if (!e_button(e)) { done(e); }
|
7351 |
else { extend(e); }
|
7352 |
});
|
7353 |
var up = operation(cm, done);
|
7354 |
cm.state.selectingText = up;
|
7355 |
-
on(
|
7356 |
-
on(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7357 |
}
|
7358 |
|
7359 |
|
@@ -7361,8 +7544,13 @@ function leftButtonSelect(cm, event, start, behavior) {
|
|
7361 |
// handlers for the corresponding event.
|
7362 |
function gutterEvent(cm, e, type, prevent) {
|
7363 |
var mX, mY;
|
7364 |
-
|
7365 |
-
|
|
|
|
|
|
|
|
|
|
|
7366 |
if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }
|
7367 |
if (prevent) { e_preventDefault(e); }
|
7368 |
|
@@ -7444,6 +7632,7 @@ function defineOptions(CodeMirror) {
|
|
7444 |
clearCaches(cm);
|
7445 |
regChange(cm);
|
7446 |
}, true);
|
|
|
7447 |
option("lineSeparator", null, function (cm, val) {
|
7448 |
cm.doc.lineSep = val;
|
7449 |
if (!val) { return }
|
@@ -7545,6 +7734,7 @@ function defineOptions(CodeMirror) {
|
|
7545 |
option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; });
|
7546 |
option("autofocus", null);
|
7547 |
option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true);
|
|
|
7548 |
}
|
7549 |
|
7550 |
function guttersChanged(cm) {
|
@@ -7596,6 +7786,7 @@ function CodeMirror$1(place, options) {
|
|
7596 |
|
7597 |
var doc = options.value;
|
7598 |
if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }
|
|
|
7599 |
this.doc = doc;
|
7600 |
|
7601 |
var input = new CodeMirror$1.inputStyles[options.inputStyle](this);
|
@@ -7700,7 +7891,7 @@ function registerEventHandlers(cm) {
|
|
7700 |
return dx * dx + dy * dy > 20 * 20
|
7701 |
}
|
7702 |
on(d.scroller, "touchstart", function (e) {
|
7703 |
-
if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e)) {
|
7704 |
d.input.ensurePolled();
|
7705 |
clearTimeout(touchFinished);
|
7706 |
var now = +new Date;
|
@@ -7850,7 +8041,7 @@ function applyTextInput(cm, inserted, deleted, sel, origin) {
|
|
7850 |
|
7851 |
var paste = cm.state.pasteIncoming || origin == "paste";
|
7852 |
var textLines = splitLinesAuto(inserted), multiPaste = null;
|
7853 |
-
// When
|
7854 |
if (paste && sel.ranges.length > 1) {
|
7855 |
if (lastCopied && lastCopied.text.join("\n") == inserted) {
|
7856 |
if (sel.ranges.length % lastCopied.text.length == 0) {
|
@@ -8382,6 +8573,11 @@ var addEditorMethods = function(CodeMirror) {
|
|
8382 |
return old
|
8383 |
}),
|
8384 |
|
|
|
|
|
|
|
|
|
|
|
8385 |
getInputField: function(){return this.display.input.getField()},
|
8386 |
getWrapperElement: function(){return this.display.wrapper},
|
8387 |
getScrollerElement: function(){return this.display.scroller},
|
@@ -8586,8 +8782,12 @@ ContentEditableInput.prototype.showSelection = function (info, takeFocus) {
|
|
8586 |
this.showMultipleSelections(info);
|
8587 |
};
|
8588 |
|
|
|
|
|
|
|
|
|
8589 |
ContentEditableInput.prototype.showPrimarySelection = function () {
|
8590 |
-
var sel =
|
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) {
|
@@ -8654,13 +8854,13 @@ ContentEditableInput.prototype.showMultipleSelections = function (info) {
|
|
8654 |
};
|
8655 |
|
8656 |
ContentEditableInput.prototype.rememberSelection = function () {
|
8657 |
-
var sel =
|
8658 |
this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
|
8659 |
this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
|
8660 |
};
|
8661 |
|
8662 |
ContentEditableInput.prototype.selectionInEditor = function () {
|
8663 |
-
var sel =
|
8664 |
if (!sel.rangeCount) { return false }
|
8665 |
var node = sel.getRangeAt(0).commonAncestorContainer;
|
8666 |
return contains(this.div, node)
|
@@ -8695,14 +8895,14 @@ ContentEditableInput.prototype.receivedFocus = function () {
|
|
8695 |
};
|
8696 |
|
8697 |
ContentEditableInput.prototype.selectionChanged = function () {
|
8698 |
-
var sel =
|
8699 |
return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
|
8700 |
sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset
|
8701 |
};
|
8702 |
|
8703 |
ContentEditableInput.prototype.pollSelection = function () {
|
8704 |
if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }
|
8705 |
-
var sel =
|
8706 |
// On Android Chrome (version 56, at least), backspacing into an
|
8707 |
// uneditable block element will put the cursor in that element,
|
8708 |
// and then, because it's not editable, hide the virtual keyboard.
|
@@ -8836,7 +9036,7 @@ ContentEditableInput.prototype.setUneditable = function (node) {
|
|
8836 |
};
|
8837 |
|
8838 |
ContentEditableInput.prototype.onKeyPress = function (e) {
|
8839 |
-
if (e.charCode == 0) { return }
|
8840 |
e.preventDefault();
|
8841 |
if (!this.cm.isReadOnly())
|
8842 |
{ operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }
|
@@ -8876,12 +9076,13 @@ function isInGutter(node) {
|
|
8876 |
function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }
|
8877 |
|
8878 |
function domTextBetween(cm, from, to, fromLine, toLine) {
|
8879 |
-
var text = "", closing = false, lineSep = cm.doc.lineSeparator();
|
8880 |
function recognizeMarker(id) { return function (marker) { return marker.id == id; } }
|
8881 |
function close() {
|
8882 |
if (closing) {
|
8883 |
text += lineSep;
|
8884 |
-
|
|
|
8885 |
}
|
8886 |
}
|
8887 |
function addText(str) {
|
@@ -8893,8 +9094,8 @@ function domTextBetween(cm, from, to, fromLine, toLine) {
|
|
8893 |
function walk(node) {
|
8894 |
if (node.nodeType == 1) {
|
8895 |
var cmText = node.getAttribute("cm-text");
|
8896 |
-
if (cmText
|
8897 |
-
addText(cmText
|
8898 |
return
|
8899 |
}
|
8900 |
var markerID = node.getAttribute("cm-marker"), range$$1;
|
@@ -8905,19 +9106,24 @@ function domTextBetween(cm, from, to, fromLine, toLine) {
|
|
8905 |
return
|
8906 |
}
|
8907 |
if (node.getAttribute("contenteditable") == "false") { return }
|
8908 |
-
var isBlock = /^(pre|div|p)$/i.test(node.nodeName);
|
|
|
|
|
8909 |
if (isBlock) { close(); }
|
8910 |
for (var i = 0; i < node.childNodes.length; i++)
|
8911 |
{ walk(node.childNodes[i]); }
|
|
|
|
|
8912 |
if (isBlock) { closing = true; }
|
8913 |
} else if (node.nodeType == 3) {
|
8914 |
-
addText(node.nodeValue);
|
8915 |
}
|
8916 |
}
|
8917 |
for (;;) {
|
8918 |
walk(from);
|
8919 |
if (from == to) { break }
|
8920 |
from = from.nextSibling;
|
|
|
8921 |
}
|
8922 |
return text
|
8923 |
}
|
@@ -9018,13 +9224,10 @@ TextareaInput.prototype.init = function (display) {
|
|
9018 |
var this$1 = this;
|
9019 |
|
9020 |
var input = this, cm = this.cm;
|
|
|
|
|
9021 |
|
9022 |
-
|
9023 |
-
var div = this.wrapper = hiddenTextarea();
|
9024 |
-
// The semihidden textarea that is focused when the editor is
|
9025 |
-
// focused, and receives input.
|
9026 |
-
var te = this.textarea = div.firstChild;
|
9027 |
-
display.wrapper.insertBefore(div, display.wrapper.firstChild);
|
9028 |
|
9029 |
// Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
|
9030 |
if (ios) { te.style.width = "0px"; }
|
@@ -9091,6 +9294,14 @@ TextareaInput.prototype.init = function (display) {
|
|
9091 |
});
|
9092 |
};
|
9093 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9094 |
TextareaInput.prototype.prepareSelection = function () {
|
9095 |
// Redraw the selection and/or cursor
|
9096 |
var cm = this.cm, display = cm.display, doc = cm.doc;
|
@@ -9484,14 +9695,14 @@ CodeMirror$1.fromTextArea = fromTextArea;
|
|
9484 |
|
9485 |
addLegacyProps(CodeMirror$1);
|
9486 |
|
9487 |
-
CodeMirror$1.version = "5.
|
9488 |
|
9489 |
return CodeMirror$1;
|
9490 |
|
9491 |
})));
|
9492 |
|
9493 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
9494 |
-
// Distributed under an MIT license:
|
9495 |
|
9496 |
(function(mod) {
|
9497 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -9544,6 +9755,7 @@ var xmlConfig = {
|
|
9544 |
doNotIndent: {},
|
9545 |
allowUnquoted: false,
|
9546 |
allowMissing: false,
|
|
|
9547 |
caseFold: false
|
9548 |
}
|
9549 |
|
@@ -9654,8 +9866,9 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
|
|
9654 |
stream.next();
|
9655 |
}
|
9656 |
return style;
|
9657 |
-
}
|
9658 |
}
|
|
|
9659 |
function doctype(depth) {
|
9660 |
return function(stream, state) {
|
9661 |
var ch;
|
@@ -9718,6 +9931,9 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
|
|
9718 |
state.tagName = stream.current();
|
9719 |
setStyle = "tag";
|
9720 |
return attrState;
|
|
|
|
|
|
|
9721 |
} else {
|
9722 |
setStyle = "error";
|
9723 |
return tagNameState;
|
@@ -9736,6 +9952,9 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
|
|
9736 |
setStyle = "tag error";
|
9737 |
return closeStateErr;
|
9738 |
}
|
|
|
|
|
|
|
9739 |
} else {
|
9740 |
setStyle = "error";
|
9741 |
return closeStateErr;
|
@@ -9886,7 +10105,7 @@ if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
|
|
9886 |
});
|
9887 |
|
9888 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
9889 |
-
// Distributed under an MIT license:
|
9890 |
|
9891 |
(function(mod) {
|
9892 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -9910,13 +10129,13 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
9910 |
|
9911 |
var keywords = function(){
|
9912 |
function kw(type) {return {type: type, style: "keyword"};}
|
9913 |
-
var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
|
9914 |
var operator = kw("operator"), atom = {type: "atom", style: "atom"};
|
9915 |
|
9916 |
-
|
9917 |
"if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
|
9918 |
-
"return":
|
9919 |
-
"var": kw("var"), "const": kw("var"), "let": kw("var"),
|
9920 |
"function": kw("function"), "catch": kw("catch"),
|
9921 |
"for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
|
9922 |
"in": operator, "typeof": operator, "instanceof": operator,
|
@@ -9925,35 +10144,6 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
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"),
|
9935 |
-
"implements": C,
|
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
|
9949 |
-
};
|
9950 |
-
|
9951 |
-
for (var attr in tsKeywords) {
|
9952 |
-
jsKeywords[attr] = tsKeywords[attr];
|
9953 |
-
}
|
9954 |
-
}
|
9955 |
-
|
9956 |
-
return jsKeywords;
|
9957 |
}();
|
9958 |
|
9959 |
var isOperatorChar = /[+\-*&%=<>!?|~^@]/;
|
@@ -9991,17 +10181,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
9991 |
return ret(ch);
|
9992 |
} else if (ch == "=" && stream.eat(">")) {
|
9993 |
return ret("=>", "operator");
|
9994 |
-
} else if (ch == "0" && stream.
|
9995 |
-
stream.eatWhile(/[\da-f]/i);
|
9996 |
-
return ret("number", "number");
|
9997 |
-
} else if (ch == "0" && stream.eat(/o/i)) {
|
9998 |
-
stream.eatWhile(/[0-7]/i);
|
9999 |
-
return ret("number", "number");
|
10000 |
-
} else if (ch == "0" && stream.eat(/b/i)) {
|
10001 |
-
stream.eatWhile(/[01]/i);
|
10002 |
return ret("number", "number");
|
10003 |
} else if (/\d/.test(ch)) {
|
10004 |
-
stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);
|
10005 |
return ret("number", "number");
|
10006 |
} else if (ch == "/") {
|
10007 |
if (stream.eat("*")) {
|
@@ -10012,10 +10195,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10012 |
return ret("comment", "comment");
|
10013 |
} else if (expressionAllowed(stream, state, 1)) {
|
10014 |
readRegexp(stream);
|
10015 |
-
stream.match(/^\b(([
|
10016 |
return ret("regexp", "string-2");
|
10017 |
} else {
|
10018 |
-
stream.
|
10019 |
return ret("operator", "operator", stream.current());
|
10020 |
}
|
10021 |
} else if (ch == "`") {
|
@@ -10025,8 +10208,14 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10025 |
stream.skipToEnd();
|
10026 |
return ret("error", "error");
|
10027 |
} else if (isOperatorChar.test(ch)) {
|
10028 |
-
if (ch != ">" || !state.lexical || state.lexical.type != ">")
|
10029 |
-
stream.
|
|
|
|
|
|
|
|
|
|
|
|
|
10030 |
return ret("operator", "operator", stream.current());
|
10031 |
} else if (wordRE.test(ch)) {
|
10032 |
stream.eatWhile(wordRE);
|
@@ -10036,7 +10225,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10036 |
var kw = keywords[word]
|
10037 |
return ret(kw.type, kw.style, word)
|
10038 |
}
|
10039 |
-
if (word == "async" && stream.match(
|
10040 |
return ret("async", "keyword", word)
|
10041 |
}
|
10042 |
return ret("variable", "variable", word)
|
@@ -10175,35 +10364,68 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10175 |
pass.apply(null, arguments);
|
10176 |
return true;
|
10177 |
}
|
|
|
|
|
|
|
|
|
10178 |
function register(varname) {
|
10179 |
-
function inList(list) {
|
10180 |
-
for (var v = list; v; v = v.next)
|
10181 |
-
if (v.name == varname) return true;
|
10182 |
-
return false;
|
10183 |
-
}
|
10184 |
var state = cx.state;
|
10185 |
cx.marked = "def";
|
10186 |
if (state.context) {
|
10187 |
-
if (
|
10188 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10189 |
} else {
|
10190 |
-
|
10191 |
-
if (parserConfig.globalVars)
|
10192 |
-
state.globalVars = {name: varname, next: state.globalVars};
|
10193 |
}
|
10194 |
}
|
10195 |
|
|
|
|
|
|
|
|
|
10196 |
// Combinators
|
10197 |
|
10198 |
-
|
|
|
|
|
|
|
10199 |
function pushcontext() {
|
10200 |
-
cx.state.context =
|
10201 |
-
cx.state.localVars = defaultVars
|
|
|
|
|
|
|
|
|
10202 |
}
|
10203 |
function popcontext() {
|
10204 |
-
cx.state.localVars = cx.state.context.vars
|
10205 |
-
cx.state.context = cx.state.context.prev
|
10206 |
}
|
|
|
10207 |
function pushlex(type, info) {
|
10208 |
var result = function() {
|
10209 |
var state = cx.state, indent = state.indented;
|
@@ -10228,17 +10450,19 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10228 |
function expect(wanted) {
|
10229 |
function exp(type) {
|
10230 |
if (type == wanted) return cont();
|
10231 |
-
else if (wanted == ";") return pass();
|
10232 |
else return cont(exp);
|
10233 |
};
|
10234 |
return exp;
|
10235 |
}
|
10236 |
|
10237 |
function statement(type, value) {
|
10238 |
-
if (type == "var") return cont(pushlex("vardef", value
|
10239 |
if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex);
|
10240 |
if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
|
10241 |
-
if (type == "
|
|
|
|
|
10242 |
if (type == ";") return cont();
|
10243 |
if (type == "if") {
|
10244 |
if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
|
@@ -10247,69 +10471,75 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
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 == "
|
10252 |
cx.marked = "keyword"
|
10253 |
-
return cont(
|
10254 |
-
} if (isTS && value == "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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(":"));
|
10265 |
-
if (type == "catch") return cont(pushlex("form"), pushcontext,
|
10266 |
-
statement, poplex, popcontext);
|
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
|
10276 |
-
return
|
|
|
|
|
|
|
10277 |
}
|
10278 |
-
function expressionNoComma(type) {
|
10279 |
-
return expressionInner(type, true);
|
10280 |
}
|
10281 |
function parenExpr(type) {
|
10282 |
if (type != "(") return pass()
|
10283 |
return cont(pushlex(")"), expression, expect(")"), poplex)
|
10284 |
}
|
10285 |
-
function expressionInner(type, noComma) {
|
10286 |
if (cx.state.fatArrowAt == cx.stream.start) {
|
10287 |
var body = noComma ? arrowBodyNoComma : arrowBody;
|
10288 |
-
if (type == "(") return cont(pushcontext, pushlex(")"), commasep(
|
10289 |
else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
|
10290 |
}
|
10291 |
|
10292 |
var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
|
10293 |
if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
|
10294 |
if (type == "function") return cont(functiondef, maybeop);
|
10295 |
-
if (type == "class") return cont(pushlex("form"), classExpression, poplex);
|
10296 |
-
if (type == "keyword c" || type == "async") return cont(noComma ?
|
10297 |
if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop);
|
10298 |
if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
|
10299 |
if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
|
10300 |
if (type == "{") return contCommasep(objprop, "}", null, maybeop);
|
10301 |
if (type == "quasi") return pass(quasi, maybeop);
|
10302 |
if (type == "new") return cont(maybeTarget(noComma));
|
|
|
10303 |
return cont();
|
10304 |
}
|
10305 |
function maybeexpression(type) {
|
10306 |
if (type.match(/[;\}\)\],]/)) return pass();
|
10307 |
return pass(expression);
|
10308 |
}
|
10309 |
-
function maybeexpressionNoComma(type) {
|
10310 |
-
if (type.match(/[;\}\)\],]/)) return pass();
|
10311 |
-
return pass(expressionNoComma);
|
10312 |
-
}
|
10313 |
|
10314 |
function maybeoperatorComma(type, value) {
|
10315 |
if (type == ",") return cont(expression);
|
@@ -10321,6 +10551,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
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 |
}
|
@@ -10330,6 +10562,11 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
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();
|
@@ -10378,18 +10615,25 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10378 |
} else if (type == "variable" || cx.style == "keyword") {
|
10379 |
cx.marked = "property";
|
10380 |
if (value == "get" || value == "set") return cont(getterSetter);
|
|
|
|
|
|
|
10381 |
return cont(afterprop);
|
10382 |
} else if (type == "number" || type == "string") {
|
10383 |
cx.marked = jsonldMode ? "property" : (cx.style + " property");
|
10384 |
return cont(afterprop);
|
10385 |
} else if (type == "jsonld-keyword") {
|
10386 |
return cont(afterprop);
|
10387 |
-
} else if (
|
|
|
10388 |
return cont(objprop)
|
10389 |
} else if (type == "[") {
|
10390 |
-
return cont(expression, expect("]"), afterprop);
|
10391 |
} else if (type == "spread") {
|
10392 |
-
return cont(
|
|
|
|
|
|
|
10393 |
} else if (type == ":") {
|
10394 |
return pass(afterprop)
|
10395 |
}
|
@@ -10436,20 +10680,32 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10436 |
if (value == "?") return cont(maybetype);
|
10437 |
}
|
10438 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10439 |
function typeexpr(type, value) {
|
10440 |
-
if (
|
10441 |
-
|
10442 |
-
|
10443 |
-
|
10444 |
-
|
10445 |
-
|
10446 |
-
|
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) {
|
10455 |
if (type == "=>") return cont(typeexpr)
|
@@ -10466,24 +10722,32 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10466 |
return cont(expression, maybetype, expect("]"), typeprop)
|
10467 |
}
|
10468 |
}
|
10469 |
-
function typearg(type) {
|
10470 |
-
if (type == "variable") return cont(typearg)
|
10471 |
-
|
|
|
10472 |
}
|
10473 |
function afterType(type, value) {
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10483 |
return pass(pattern, maybetype, maybeAssign, vardefCont);
|
10484 |
}
|
10485 |
function pattern(type, value) {
|
10486 |
-
if (
|
10487 |
if (type == "variable") { register(value); return cont(); }
|
10488 |
if (type == "spread") return cont(pattern);
|
10489 |
if (type == "[") return contCommasep(pattern, "]");
|
@@ -10508,7 +10772,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10508 |
function maybeelse(type, value) {
|
10509 |
if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex);
|
10510 |
}
|
10511 |
-
function forspec(type) {
|
|
|
10512 |
if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
|
10513 |
}
|
10514 |
function forspec1(type) {
|
@@ -10532,11 +10797,13 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10532 |
function functiondef(type, value) {
|
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,
|
10536 |
-
if (isTS && value == "<") return cont(pushlex(">"), commasep(
|
10537 |
}
|
10538 |
-
function funarg(type) {
|
10539 |
-
if (
|
|
|
|
|
10540 |
return pass(pattern, maybetype, maybeAssign);
|
10541 |
}
|
10542 |
function classExpression(type, value) {
|
@@ -10548,25 +10815,27 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10548 |
if (type == "variable") {register(value); return cont(classNameAfter);}
|
10549 |
}
|
10550 |
function classNameAfter(type, value) {
|
10551 |
-
if (value == "<") return cont(pushlex(">"), commasep(
|
10552 |
-
if (value == "extends" || value == "implements" || (isTS && type == ","))
|
|
|
10553 |
return cont(isTS ? typeexpr : expression, classNameAfter);
|
|
|
10554 |
if (type == "{") return cont(pushlex("}"), classBody, poplex);
|
10555 |
}
|
10556 |
function classBody(type, value) {
|
10557 |
-
if (type == "
|
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 |
}
|
10568 |
if (type == "[")
|
10569 |
-
return cont(expression, expect("]"), isTS ? classfield : functiondef, classBody)
|
10570 |
if (value == "*") {
|
10571 |
cx.marked = "keyword";
|
10572 |
return cont(classBody);
|
@@ -10593,6 +10862,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10593 |
}
|
10594 |
function afterImport(type) {
|
10595 |
if (type == "string") return cont();
|
|
|
10596 |
return pass(importSpec, maybeMoreImports, maybeFrom);
|
10597 |
}
|
10598 |
function importSpec(type, value) {
|
@@ -10614,6 +10884,12 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10614 |
if (type == "]") return cont();
|
10615 |
return pass(commasep(expressionNoComma, "]"));
|
10616 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
10617 |
|
10618 |
function isContinuedStatement(state, textAfter) {
|
10619 |
return state.lastType == "operator" || state.lastType == "," ||
|
@@ -10623,7 +10899,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10623 |
|
10624 |
function expressionAllowed(stream, state, backUp) {
|
10625 |
return state.tokenize == tokenBase &&
|
10626 |
-
/^(?:operator|sof|keyword
|
10627 |
(state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
|
10628 |
}
|
10629 |
|
@@ -10637,7 +10913,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10637 |
cc: [],
|
10638 |
lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
|
10639 |
localVars: parserConfig.localVars,
|
10640 |
-
context: parserConfig.localVars &&
|
10641 |
indented: basecolumn || 0
|
10642 |
};
|
10643 |
if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
|
@@ -10678,7 +10954,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10678 |
lexical = lexical.prev;
|
10679 |
var type = lexical.type, closing = firstChar == type;
|
10680 |
|
10681 |
-
if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info + 1 : 0);
|
10682 |
else if (type == "form" && firstChar == "{") return lexical.indented;
|
10683 |
else if (type == "form") return lexical.indented + indentUnit;
|
10684 |
else if (type == "stat")
|
@@ -10692,6 +10968,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10692 |
electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
|
10693 |
blockCommentStart: jsonMode ? null : "/*",
|
10694 |
blockCommentEnd: jsonMode ? null : "*/",
|
|
|
10695 |
lineComment: jsonMode ? null : "//",
|
10696 |
fold: "brace",
|
10697 |
closeBrackets: "()[]{}''\"\"``",
|
@@ -10725,7 +11002,7 @@ CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript
|
|
10725 |
});
|
10726 |
|
10727 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
10728 |
-
// Distributed under an MIT license:
|
10729 |
|
10730 |
(function(mod) {
|
10731 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -10803,9 +11080,9 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
10803 |
return ret("qualifier", "qualifier");
|
10804 |
} else if (/[:;{}\[\]\(\)]/.test(ch)) {
|
10805 |
return ret(null, ch);
|
10806 |
-
} else if ((ch == "u" && stream.match(/rl(-prefix)?\(/)) ||
|
10807 |
-
(ch == "d" && stream.match("omain(")) ||
|
10808 |
-
(ch == "r" && stream.match("egexp("))) {
|
10809 |
stream.backUp(1);
|
10810 |
state.tokenize = tokenParenthesized;
|
10811 |
return ret("property", "word");
|
@@ -10888,16 +11165,16 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
10888 |
return pushContext(state, stream, "block");
|
10889 |
} else if (type == "}" && state.context.prev) {
|
10890 |
return popContext(state);
|
10891 |
-
} else if (supportsAtComponent && /@component
|
10892 |
return pushContext(state, stream, "atComponentBlock");
|
10893 |
-
} else if (/^@(-moz-)?document
|
10894 |
return pushContext(state, stream, "documentTypes");
|
10895 |
-
} else if (/^@(media|supports|(-moz-)?document|import)
|
10896 |
return pushContext(state, stream, "atBlock");
|
10897 |
-
} else if (/^@(font-face|counter-style)
|
10898 |
state.stateArg = type;
|
10899 |
return "restricted_atBlock_before";
|
10900 |
-
} else if (/^@(-(moz|ms|o|webkit)-)?keyframes
|
10901 |
return "keyframes";
|
10902 |
} else if (type && type.charAt(0) == "@") {
|
10903 |
return pushContext(state, stream, "at");
|
@@ -11136,6 +11413,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
11136 |
electricChars: "}",
|
11137 |
blockCommentStart: "/*",
|
11138 |
blockCommentEnd: "*/",
|
|
|
11139 |
lineComment: lineComment,
|
11140 |
fold: "brace"
|
11141 |
};
|
@@ -11518,7 +11796,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
11518 |
},
|
11519 |
"@": function(stream) {
|
11520 |
if (stream.eat("{")) return [null, "interpolation"];
|
11521 |
-
if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b
|
11522 |
stream.eatWhile(/[\w\\\-]/);
|
11523 |
if (stream.match(/^\s*:/, false))
|
11524 |
return ["variable-2", "variable-definition"];
|
@@ -11557,7 +11835,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
11557 |
});
|
11558 |
|
11559 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
11560 |
-
// Distributed under an MIT license:
|
11561 |
|
11562 |
(function(mod) {
|
11563 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -11710,7 +11988,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
11710 |
});
|
11711 |
|
11712 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
11713 |
-
// Distributed under an MIT license:
|
11714 |
|
11715 |
(function(mod) {
|
11716 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -11927,15 +12205,15 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
11927 |
indent: function(state, textAfter) {
|
11928 |
if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;
|
11929 |
var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
|
|
|
11930 |
if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
|
11931 |
if (parserConfig.dontIndentStatements)
|
11932 |
while (ctx.type == "statement" && parserConfig.dontIndentStatements.test(ctx.info))
|
11933 |
ctx = ctx.prev
|
11934 |
if (hooks.indent) {
|
11935 |
-
var hook = hooks.indent(state, ctx, textAfter);
|
11936 |
if (typeof hook == "number") return hook
|
11937 |
}
|
11938 |
-
var closing = firstChar == ctx.type;
|
11939 |
var switchBlock = ctx.prev && ctx.prev.info == "switch";
|
11940 |
if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {
|
11941 |
while (ctx.type != "top" && ctx.type != "}") ctx = ctx.prev
|
@@ -11955,6 +12233,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
11955 |
electricInput: indentSwitch ? /^\s*(?:case .*?:|default:|\{\}?|\})$/ : /^\s*[{}]$/,
|
11956 |
blockCommentStart: "/*",
|
11957 |
blockCommentEnd: "*/",
|
|
|
11958 |
lineComment: "//",
|
11959 |
fold: "brace"
|
11960 |
};
|
@@ -12084,7 +12363,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12084 |
blockKeywords: words("case do else for if switch while struct"),
|
12085 |
defKeywords: words("struct"),
|
12086 |
typeFirstDefinitions: true,
|
12087 |
-
atoms: words("
|
12088 |
hooks: {"#": cppHook, "*": pointerHook},
|
12089 |
modeProps: {fold: ["brace", "include"]}
|
12090 |
});
|
@@ -12100,7 +12379,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12100 |
blockKeywords: words("catch class do else finally for if struct switch try while"),
|
12101 |
defKeywords: words("class namespace struct enum union"),
|
12102 |
typeFirstDefinitions: true,
|
12103 |
-
atoms: words("true false
|
12104 |
dontIndentStatements: /^template$/,
|
12105 |
isIdentifierChar: /[\w\$_~\xa1-\uffff]/,
|
12106 |
hooks: {
|
@@ -12142,7 +12421,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12142 |
types: words("byte short int long float double boolean char void Boolean Byte Character Double Float " +
|
12143 |
"Integer Long Number Object Short String StringBuffer StringBuilder Void"),
|
12144 |
blockKeywords: words("catch class do else finally for if switch try while"),
|
12145 |
-
defKeywords: words("class interface
|
12146 |
typeFirstDefinitions: true,
|
12147 |
atoms: words("true false null"),
|
12148 |
number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
|
@@ -12199,6 +12478,27 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12199 |
return "string";
|
12200 |
}
|
12201 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12202 |
def("text/x-scala", {
|
12203 |
name: "clike",
|
12204 |
keywords: words(
|
@@ -12254,6 +12554,12 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12254 |
} else {
|
12255 |
return false
|
12256 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
12257 |
}
|
12258 |
},
|
12259 |
modeProps: {closeBrackets: {triples: '"'}}
|
@@ -12280,34 +12586,51 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12280 |
name: "clike",
|
12281 |
keywords: words(
|
12282 |
/*keywords*/
|
12283 |
-
"package as typealias class interface this super val " +
|
12284 |
-
"var fun for is in This throw return " +
|
12285 |
"break continue object if else while do try when !in !is as? " +
|
12286 |
|
12287 |
/*soft keywords*/
|
12288 |
"file import where by get set abstract enum open inner override private public internal " +
|
12289 |
"protected catch finally out final vararg reified dynamic companion constructor init " +
|
12290 |
"sealed field property receiver param sparam lateinit data inline noinline tailrec " +
|
12291 |
-
"external annotation crossinline const operator infix suspend"
|
12292 |
),
|
12293 |
types: words(
|
12294 |
/* package java.lang */
|
12295 |
"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
|
12296 |
"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
|
12297 |
"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
|
12298 |
-
"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
|
|
|
|
|
12299 |
),
|
12300 |
intendSwitch: false,
|
12301 |
indentStatements: false,
|
12302 |
multiLineStrings: true,
|
12303 |
-
number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]
|
12304 |
blockKeywords: words("catch class do else finally for if where try while enum"),
|
12305 |
-
defKeywords: words("class val var object
|
12306 |
atoms: words("true false null this"),
|
12307 |
hooks: {
|
|
|
|
|
|
|
|
|
12308 |
'"': function(stream, state) {
|
12309 |
state.tokenize = tokenKotlinString(stream.match('""'));
|
12310 |
return state.tokenize(stream, state);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12311 |
}
|
12312 |
},
|
12313 |
modeProps: {closeBrackets: {triples: '"'}}
|
@@ -12500,7 +12823,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12500 |
});
|
12501 |
|
12502 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
12503 |
-
// Distributed under an MIT license:
|
12504 |
|
12505 |
(function(mod) {
|
12506 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -12652,7 +12975,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12652 |
};
|
12653 |
|
12654 |
CodeMirror.defineMode("php", function(config, parserConfig) {
|
12655 |
-
var htmlMode = CodeMirror.getMode(config, "text/html");
|
12656 |
var phpMode = CodeMirror.getMode(config, phpConfig);
|
12657 |
|
12658 |
function dispatch(stream, state) {
|
@@ -13172,7 +13495,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13172 |
}));
|
13173 |
|
13174 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
13175 |
-
// Distributed under an MIT license:
|
13176 |
|
13177 |
(function(mod) {
|
13178 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -13245,7 +13568,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13245 |
});
|
13246 |
|
13247 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
13248 |
-
// Distributed under an MIT license:
|
13249 |
|
13250 |
(function(mod) {
|
13251 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -13265,8 +13588,11 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13265 |
+ (regexp.multiline ? "m" : "")
|
13266 |
}
|
13267 |
|
13268 |
-
function
|
13269 |
-
|
|
|
|
|
|
|
13270 |
}
|
13271 |
|
13272 |
function maybeMultiline(regexp) {
|
@@ -13274,7 +13600,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13274 |
}
|
13275 |
|
13276 |
function searchRegexpForward(doc, regexp, start) {
|
13277 |
-
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)
|
@@ -13288,7 +13614,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13288 |
function searchRegexpForwardMultiline(doc, regexp, start) {
|
13289 |
if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)
|
13290 |
|
13291 |
-
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
|
@@ -13297,6 +13623,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
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 |
}
|
@@ -13327,7 +13654,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13327 |
}
|
13328 |
|
13329 |
function searchRegexpBackward(doc, regexp, start) {
|
13330 |
-
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)
|
@@ -13340,7 +13667,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13340 |
}
|
13341 |
|
13342 |
function searchRegexpBackwardMultiline(doc, regexp, start) {
|
13343 |
-
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++) {
|
@@ -13405,7 +13732,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
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 (
|
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 |
}
|
@@ -13459,7 +13786,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13459 |
return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)
|
13460 |
}
|
13461 |
} else {
|
13462 |
-
query =
|
13463 |
if (!options || options.multiline !== false)
|
13464 |
this.matches = function(reverse, pos) {
|
13465 |
return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)
|
@@ -13535,7 +13862,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13535 |
});
|
13536 |
|
13537 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
13538 |
-
// Distributed under an MIT license:
|
13539 |
|
13540 |
// Define search commands. Depends on dialog.js or another
|
13541 |
// implementation of the openDialog method.
|
@@ -13634,9 +13961,6 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13634 |
return query;
|
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;
|
13642 |
state.query = parseQuery(query);
|
@@ -13653,6 +13977,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13653 |
var state = getSearchState(cm);
|
13654 |
if (state.query) return findNext(cm, rev);
|
13655 |
var q = cm.getSelection() || state.lastQuery;
|
|
|
13656 |
if (persistent && cm.openDialog) {
|
13657 |
var hiding = null
|
13658 |
var searchNext = function(query, event) {
|
@@ -13671,7 +13996,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13671 |
(hiding = dialog).style.opacity = .4
|
13672 |
})
|
13673 |
};
|
13674 |
-
persistentDialog(cm,
|
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" ||
|
@@ -13689,7 +14014,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13689 |
findNext(cm, rev);
|
13690 |
}
|
13691 |
} else {
|
13692 |
-
dialog(cm,
|
13693 |
if (query && !state.query) cm.operation(function() {
|
13694 |
startSearch(cm, state, query);
|
13695 |
state.posFrom = state.posTo = cm.getCursor();
|
@@ -13721,10 +14046,19 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13721 |
if (state.annotate) { state.annotate.clear(); state.annotate = null; }
|
13722 |
});}
|
13723 |
|
13724 |
-
|
13725 |
-
|
13726 |
-
|
13727 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13728 |
|
13729 |
function replaceAll(cm, query, text) {
|
13730 |
cm.operation(function() {
|
@@ -13740,11 +14074,11 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
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 ?
|
13744 |
-
dialog(cm, dialogText +
|
13745 |
if (!query) return;
|
13746 |
query = parseQuery(query);
|
13747 |
-
dialog(cm,
|
13748 |
text = parseString(text)
|
13749 |
if (all) {
|
13750 |
replaceAll(cm, query, text)
|
@@ -13760,7 +14094,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13760 |
}
|
13761 |
cm.setSelection(cursor.from(), cursor.to());
|
13762 |
cm.scrollIntoView({from: cursor.from(), to: cursor.to()});
|
13763 |
-
confirmDialog(cm,
|
13764 |
[function() {doReplace(match);}, advance,
|
13765 |
function() {replaceAll(cm, query, text)}]);
|
13766 |
};
|
@@ -13787,7 +14121,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13787 |
});
|
13788 |
|
13789 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
13790 |
-
// Distributed under an MIT license:
|
13791 |
|
13792 |
// Open simple dialogs on top of an editor. Relies on dialog.css.
|
13793 |
|
@@ -13813,6 +14147,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13813 |
} else { // Assuming it's a detached DOM element.
|
13814 |
dialog.appendChild(template);
|
13815 |
}
|
|
|
13816 |
return dialog;
|
13817 |
}
|
13818 |
|
@@ -13835,6 +14170,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13835 |
} else {
|
13836 |
if (closed) return;
|
13837 |
closed = true;
|
|
|
13838 |
dialog.parentNode.removeChild(dialog);
|
13839 |
me.focus();
|
13840 |
|
@@ -13890,6 +14226,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13890 |
function close() {
|
13891 |
if (closed) return;
|
13892 |
closed = true;
|
|
|
13893 |
dialog.parentNode.removeChild(dialog);
|
13894 |
me.focus();
|
13895 |
}
|
@@ -13929,6 +14266,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13929 |
if (closed) return;
|
13930 |
closed = true;
|
13931 |
clearTimeout(doneTimer);
|
|
|
13932 |
dialog.parentNode.removeChild(dialog);
|
13933 |
}
|
13934 |
|
@@ -13945,7 +14283,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13945 |
});
|
13946 |
|
13947 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
13948 |
-
// Distributed under an MIT license:
|
13949 |
|
13950 |
(function(mod) {
|
13951 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -14098,7 +14436,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
14098 |
});
|
14099 |
|
14100 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14101 |
-
// Distributed under an MIT license:
|
14102 |
|
14103 |
(function(mod) {
|
14104 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -14271,10 +14609,6 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
14271 |
if (open == -1) return false
|
14272 |
var endLine = end == start ? startLine : self.getLine(end)
|
14273 |
var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);
|
14274 |
-
if (close == -1 && start != end) {
|
14275 |
-
endLine = self.getLine(--end);
|
14276 |
-
close = endLine.indexOf(endString);
|
14277 |
-
}
|
14278 |
var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)
|
14279 |
if (close == -1 ||
|
14280 |
!/comment/.test(self.getTokenTypeAt(insideStart)) ||
|
@@ -14312,7 +14646,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
14312 |
});
|
14313 |
|
14314 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14315 |
-
// Distributed under an MIT license:
|
14316 |
|
14317 |
(function(mod) {
|
14318 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -14465,7 +14799,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
14465 |
});
|
14466 |
|
14467 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14468 |
-
// Distributed under an MIT license:
|
14469 |
|
14470 |
(function(mod) {
|
14471 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -14612,7 +14946,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
14612 |
});
|
14613 |
|
14614 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14615 |
-
// Distributed under an MIT license:
|
14616 |
|
14617 |
(function(mod) {
|
14618 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -14750,12 +15084,14 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
14750 |
CodeMirror.registerHelper("fold", "xml", function(cm, start) {
|
14751 |
var iter = new Iter(cm, start.line, 0);
|
14752 |
for (;;) {
|
14753 |
-
var openTag = toNextTag(iter)
|
14754 |
-
if (!openTag || iter.line != start.line
|
|
|
|
|
14755 |
if (!openTag[1] && end != "selfClose") {
|
14756 |
var startPos = Pos(iter.line, iter.ch);
|
14757 |
var endPos = findMatchingClose(iter, openTag[2]);
|
14758 |
-
return endPos && {from: startPos, to: endPos.from}
|
14759 |
}
|
14760 |
}
|
14761 |
});
|
@@ -14795,7 +15131,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
14795 |
});
|
14796 |
|
14797 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14798 |
-
// Distributed under an MIT license:
|
14799 |
|
14800 |
(function(mod) {
|
14801 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -14844,7 +15180,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
14844 |
});
|
14845 |
|
14846 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14847 |
-
// Distributed under an MIT license:
|
14848 |
|
14849 |
(function(mod) {
|
14850 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -14947,18 +15283,23 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
14947 |
}
|
14948 |
}
|
14949 |
|
14950 |
-
var currentlyHighlighted = null;
|
14951 |
function doMatchBrackets(cm) {
|
14952 |
cm.operation(function() {
|
14953 |
-
if (currentlyHighlighted) {
|
14954 |
-
|
|
|
|
|
|
|
14955 |
});
|
14956 |
}
|
14957 |
|
14958 |
CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
|
14959 |
if (old && old != CodeMirror.Init) {
|
14960 |
cm.off("cursorActivity", doMatchBrackets);
|
14961 |
-
if (currentlyHighlighted) {
|
|
|
|
|
|
|
14962 |
}
|
14963 |
if (val) {
|
14964 |
cm.state.matchBrackets = typeof val == "object" ? val : {};
|
@@ -14985,7 +15326,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
14985 |
});
|
14986 |
|
14987 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14988 |
-
// Distributed under an MIT license:
|
14989 |
|
14990 |
(function(mod) {
|
14991 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -15052,7 +15393,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15052 |
});
|
15053 |
|
15054 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15055 |
-
// Distributed under an MIT license:
|
15056 |
|
15057 |
// Highlighting text that matches the selection
|
15058 |
//
|
@@ -15143,7 +15484,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15143 |
var state = cm.state.matchHighlighter;
|
15144 |
cm.addOverlay(state.overlay = makeOverlay(query, hasBoundary, style));
|
15145 |
if (state.options.annotateScrollbar && cm.showMatchesOnScrollbar) {
|
15146 |
-
var searchFor = hasBoundary ? new RegExp("\\b" + query + "\\b") : query;
|
15147 |
state.matchesonscroll = cm.showMatchesOnScrollbar(searchFor, false,
|
15148 |
{className: "CodeMirror-selection-highlight-scrollbar"});
|
15149 |
}
|
@@ -15218,7 +15559,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15218 |
});
|
15219 |
|
15220 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15221 |
-
// Distributed under an MIT license:
|
15222 |
|
15223 |
/**
|
15224 |
* Tag-closer extension for CodeMirror.
|
@@ -15272,13 +15613,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15272 |
function autoCloseGT(cm) {
|
15273 |
if (cm.getOption("disableInput")) return CodeMirror.Pass;
|
15274 |
var ranges = cm.listSelections(), replacements = [];
|
|
|
15275 |
for (var i = 0; i < ranges.length; i++) {
|
15276 |
if (!ranges[i].empty()) return CodeMirror.Pass;
|
15277 |
var pos = ranges[i].head, tok = cm.getTokenAt(pos);
|
15278 |
var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
|
15279 |
if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;
|
15280 |
|
15281 |
-
var
|
15282 |
var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
|
15283 |
var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);
|
15284 |
|
@@ -15300,13 +15642,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15300 |
newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};
|
15301 |
}
|
15302 |
|
|
|
15303 |
for (var i = ranges.length - 1; i >= 0; i--) {
|
15304 |
var info = replacements[i];
|
15305 |
cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, "+insert");
|
15306 |
var sel = cm.listSelections().slice(0);
|
15307 |
sel[i] = {head: info.newPos, anchor: info.newPos};
|
15308 |
cm.setSelections(sel);
|
15309 |
-
if (info.indent) {
|
15310 |
cm.indentLine(info.newPos.line, null, true);
|
15311 |
cm.indentLine(info.newPos.line + 1, null, true);
|
15312 |
}
|
@@ -15316,6 +15659,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15316 |
function autoCloseCurrent(cm, typingSlash) {
|
15317 |
var ranges = cm.listSelections(), replacements = [];
|
15318 |
var head = typingSlash ? "/" : "</";
|
|
|
|
|
15319 |
for (var i = 0; i < ranges.length; i++) {
|
15320 |
if (!ranges[i].empty()) return CodeMirror.Pass;
|
15321 |
var pos = ranges[i].head, tok = cm.getTokenAt(pos);
|
@@ -15346,9 +15691,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15346 |
}
|
15347 |
cm.replaceSelections(replacements);
|
15348 |
ranges = cm.listSelections();
|
15349 |
-
|
15350 |
-
|
15351 |
-
|
|
|
|
|
15352 |
}
|
15353 |
|
15354 |
function autoCloseSlash(cm) {
|
@@ -15388,7 +15735,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15388 |
});
|
15389 |
|
15390 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15391 |
-
// Distributed under an MIT license:
|
15392 |
|
15393 |
(function(mod) {
|
15394 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -15412,6 +15759,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15412 |
cm.state.closeBrackets = null;
|
15413 |
}
|
15414 |
if (val) {
|
|
|
15415 |
cm.state.closeBrackets = val;
|
15416 |
cm.addKeyMap(keyMap);
|
15417 |
}
|
@@ -15423,10 +15771,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15423 |
return defaults[name];
|
15424 |
}
|
15425 |
|
15426 |
-
var bind = defaults.pairs + "`";
|
15427 |
var keyMap = {Backspace: handleBackspace, Enter: handleEnter};
|
15428 |
-
|
15429 |
-
|
|
|
|
|
|
|
|
|
|
|
15430 |
|
15431 |
function handler(ch) {
|
15432 |
return function(cm) { return handleChar(cm, ch); };
|
@@ -15468,7 +15820,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15468 |
if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;
|
15469 |
}
|
15470 |
cm.operation(function() {
|
15471 |
-
cm.
|
|
|
15472 |
cm.execCommand("goCharLeft");
|
15473 |
ranges = cm.listSelections();
|
15474 |
for (var i = 0; i < ranges.length; i++) {
|
@@ -15512,15 +15865,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15512 |
else
|
15513 |
curType = "skip";
|
15514 |
} else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&
|
15515 |
-
cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch
|
15516 |
-
|
15517 |
curType = "addFour";
|
15518 |
} else if (identical) {
|
15519 |
-
|
|
|
15520 |
else return CodeMirror.Pass;
|
15521 |
-
} else if (opening
|
15522 |
-
isClosingBracket(next, pairs) ||
|
15523 |
-
/\s/.test(next))) {
|
15524 |
curType = "both";
|
15525 |
} else {
|
15526 |
return CodeMirror.Pass;
|
@@ -15557,41 +15909,21 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15557 |
});
|
15558 |
}
|
15559 |
|
15560 |
-
function isClosingBracket(ch, pairs) {
|
15561 |
-
var pos = pairs.lastIndexOf(ch);
|
15562 |
-
return pos > -1 && pos % 2 == 1;
|
15563 |
-
}
|
15564 |
-
|
15565 |
function charsAround(cm, pos) {
|
15566 |
var str = cm.getRange(Pos(pos.line, pos.ch - 1),
|
15567 |
Pos(pos.line, pos.ch + 1));
|
15568 |
return str.length == 2 ? str : null;
|
15569 |
}
|
15570 |
|
15571 |
-
// Project the token type that will exists after the given char is
|
15572 |
-
// typed, and use it to determine whether it would cause the start
|
15573 |
-
// of a string token.
|
15574 |
-
function enteringString(cm, pos, ch) {
|
15575 |
-
var line = cm.getLine(pos.line);
|
15576 |
-
var token = cm.getTokenAt(pos);
|
15577 |
-
if (/\bstring2?\b/.test(token.type) || stringStartsAfter(cm, pos)) return false;
|
15578 |
-
var stream = new CodeMirror.StringStream(line.slice(0, pos.ch) + ch + line.slice(pos.ch), 4);
|
15579 |
-
stream.pos = stream.start = token.start;
|
15580 |
-
for (;;) {
|
15581 |
-
var type1 = cm.getMode().token(stream, token.state);
|
15582 |
-
if (stream.pos >= pos.ch + 1) return /\bstring2?\b/.test(type1);
|
15583 |
-
stream.start = stream.pos;
|
15584 |
-
}
|
15585 |
-
}
|
15586 |
-
|
15587 |
function stringStartsAfter(cm, pos) {
|
15588 |
var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))
|
15589 |
-
return /\bstring/.test(token.type) && token.start == pos.ch
|
|
|
15590 |
}
|
15591 |
});
|
15592 |
|
15593 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15594 |
-
// Distributed under an MIT license:
|
15595 |
|
15596 |
// A rough approximation of Sublime Text's keybindings
|
15597 |
// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js
|
@@ -15606,11 +15938,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15606 |
})(function(CodeMirror) {
|
15607 |
"use strict";
|
15608 |
|
15609 |
-
var map = CodeMirror.keyMap.sublime = {fallthrough: "default"};
|
15610 |
var cmds = CodeMirror.commands;
|
15611 |
var Pos = CodeMirror.Pos;
|
15612 |
-
var mac = CodeMirror.keyMap["default"] == CodeMirror.keyMap.macDefault;
|
15613 |
-
var ctrl = mac ? "Cmd-" : "Ctrl-";
|
15614 |
|
15615 |
// This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.
|
15616 |
function findPosSubword(doc, start, dir) {
|
@@ -15644,16 +15973,10 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15644 |
});
|
15645 |
}
|
15646 |
|
15647 |
-
|
15648 |
-
|
15649 |
-
cmds[map[goSubwordCombo + "Left"] = "goSubwordLeft"] = function(cm) { moveSubword(cm, -1); };
|
15650 |
-
cmds[map[goSubwordCombo + "Right"] = "goSubwordRight"] = function(cm) { moveSubword(cm, 1); };
|
15651 |
|
15652 |
-
|
15653 |
-
|
15654 |
-
var scrollLineCombo = mac ? "Ctrl-Alt-" : "Ctrl-";
|
15655 |
-
|
15656 |
-
cmds[map[scrollLineCombo + "Up"] = "scrollLineUp"] = function(cm) {
|
15657 |
var info = cm.getScrollInfo();
|
15658 |
if (!cm.somethingSelected()) {
|
15659 |
var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local");
|
@@ -15662,7 +15985,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15662 |
}
|
15663 |
cm.scrollTo(null, info.top - cm.defaultTextHeight());
|
15664 |
};
|
15665 |
-
cmds
|
15666 |
var info = cm.getScrollInfo();
|
15667 |
if (!cm.somethingSelected()) {
|
15668 |
var visibleTopLine = cm.lineAtHeight(info.top, "local")+1;
|
@@ -15672,7 +15995,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15672 |
cm.scrollTo(null, info.top + cm.defaultTextHeight());
|
15673 |
};
|
15674 |
|
15675 |
-
cmds
|
15676 |
var ranges = cm.listSelections(), lineRanges = [];
|
15677 |
for (var i = 0; i < ranges.length; i++) {
|
15678 |
var from = ranges[i].from(), to = ranges[i].to();
|
@@ -15684,14 +16007,12 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15684 |
cm.setSelections(lineRanges, 0);
|
15685 |
};
|
15686 |
|
15687 |
-
|
15688 |
-
|
15689 |
-
cmds[map["Esc"] = "singleSelectionTop"] = function(cm) {
|
15690 |
var range = cm.listSelections()[0];
|
15691 |
cm.setSelection(range.anchor, range.head, {scroll: false});
|
15692 |
};
|
15693 |
|
15694 |
-
cmds
|
15695 |
var ranges = cm.listSelections(), extended = [];
|
15696 |
for (var i = 0; i < ranges.length; i++) {
|
15697 |
var range = ranges[i];
|
@@ -15701,8 +16022,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15701 |
cm.setSelections(extended);
|
15702 |
};
|
15703 |
|
15704 |
-
map["Shift-Ctrl-K"] = "deleteLine";
|
15705 |
-
|
15706 |
function insertLine(cm, above) {
|
15707 |
if (cm.isReadOnly()) return CodeMirror.Pass
|
15708 |
cm.operation(function() {
|
@@ -15721,9 +16040,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15721 |
cm.execCommand("indentAuto");
|
15722 |
}
|
15723 |
|
15724 |
-
cmds
|
15725 |
|
15726 |
-
cmds
|
15727 |
|
15728 |
function wordAt(cm, pos) {
|
15729 |
var start = pos.ch, end = start, line = cm.getLine(pos.line);
|
@@ -15732,7 +16051,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15732 |
return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};
|
15733 |
}
|
15734 |
|
15735 |
-
cmds
|
15736 |
var from = cm.getCursor("from"), to = cm.getCursor("to");
|
15737 |
var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;
|
15738 |
if (CodeMirror.cmpPos(from, to) == 0) {
|
@@ -15761,18 +16080,22 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
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(
|
15765 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
15766 |
var newRange = {anchor: newAnchor, head: newHead};
|
15767 |
newRanges.push(range);
|
15768 |
newRanges.push(newRange);
|
15769 |
}
|
15770 |
cm.setSelections(newRanges);
|
15771 |
}
|
15772 |
-
|
15773 |
-
|
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++)
|
@@ -15790,9 +16113,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15790 |
var closing = cm.scanForBracket(pos, 1);
|
15791 |
if (!closing) return false;
|
15792 |
if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {
|
15793 |
-
|
15794 |
-
|
15795 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
15796 |
}
|
15797 |
pos = Pos(closing.pos.line, closing.pos.ch + 1);
|
15798 |
}
|
@@ -15801,14 +16130,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15801 |
return true;
|
15802 |
}
|
15803 |
|
15804 |
-
cmds
|
15805 |
selectBetweenBrackets(cm) || cm.execCommand("selectAll");
|
15806 |
};
|
15807 |
-
cmds
|
15808 |
if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;
|
15809 |
};
|
15810 |
|
15811 |
-
cmds
|
15812 |
cm.extendSelectionsBy(function(range) {
|
15813 |
var next = cm.scanForBracket(range.head, 1);
|
15814 |
if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;
|
@@ -15817,9 +16146,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15817 |
});
|
15818 |
};
|
15819 |
|
15820 |
-
|
15821 |
-
|
15822 |
-
cmds[map[swapLineCombo + "Up"] = "swapLineUp"] = function(cm) {
|
15823 |
if (cm.isReadOnly()) return CodeMirror.Pass
|
15824 |
var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];
|
15825 |
for (var i = 0; i < ranges.length; i++) {
|
@@ -15846,7 +16173,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15846 |
});
|
15847 |
};
|
15848 |
|
15849 |
-
cmds
|
15850 |
if (cm.isReadOnly()) return CodeMirror.Pass
|
15851 |
var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;
|
15852 |
for (var i = ranges.length - 1; i >= 0; i--) {
|
@@ -15870,11 +16197,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15870 |
});
|
15871 |
};
|
15872 |
|
15873 |
-
cmds
|
15874 |
cm.toggleComment({ indent: true });
|
15875 |
}
|
15876 |
|
15877 |
-
cmds
|
15878 |
var ranges = cm.listSelections(), joined = [];
|
15879 |
for (var i = 0; i < ranges.length; i++) {
|
15880 |
var range = ranges[i], from = range.from();
|
@@ -15902,7 +16229,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15902 |
});
|
15903 |
};
|
15904 |
|
15905 |
-
cmds
|
15906 |
cm.operation(function() {
|
15907 |
var rangeCount = cm.listSelections().length;
|
15908 |
for (var i = 0; i < rangeCount; i++) {
|
@@ -15916,7 +16243,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15916 |
});
|
15917 |
};
|
15918 |
|
15919 |
-
if (!mac) map[ctrl + "T"] = "transposeChars";
|
15920 |
|
15921 |
function sortLines(cm, caseSensitive) {
|
15922 |
if (cm.isReadOnly()) return CodeMirror.Pass
|
@@ -15954,10 +16280,10 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15954 |
});
|
15955 |
}
|
15956 |
|
15957 |
-
cmds
|
15958 |
-
cmds
|
15959 |
|
15960 |
-
cmds
|
15961 |
var marks = cm.state.sublimeBookmarks;
|
15962 |
if (marks) while (marks.length) {
|
15963 |
var current = marks.shift();
|
@@ -15969,7 +16295,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15969 |
}
|
15970 |
};
|
15971 |
|
15972 |
-
cmds
|
15973 |
var marks = cm.state.sublimeBookmarks;
|
15974 |
if (marks) while (marks.length) {
|
15975 |
marks.unshift(marks.pop());
|
@@ -15981,12 +16307,12 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15981 |
}
|
15982 |
};
|
15983 |
|
15984 |
-
cmds
|
15985 |
var ranges = cm.listSelections();
|
15986 |
var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);
|
15987 |
for (var i = 0; i < ranges.length; i++) {
|
15988 |
var from = ranges[i].from(), to = ranges[i].to();
|
15989 |
-
var found = cm.findMarks(from, to);
|
15990 |
for (var j = 0; j < found.length; j++) {
|
15991 |
if (found[j].sublimeBookmark) {
|
15992 |
found[j].clear();
|
@@ -16001,13 +16327,13 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16001 |
}
|
16002 |
};
|
16003 |
|
16004 |
-
cmds
|
16005 |
var marks = cm.state.sublimeBookmarks;
|
16006 |
if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();
|
16007 |
marks.length = 0;
|
16008 |
};
|
16009 |
|
16010 |
-
cmds
|
16011 |
var marks = cm.state.sublimeBookmarks, ranges = [];
|
16012 |
if (marks) for (var i = 0; i < marks.length; i++) {
|
16013 |
var found = marks[i].find();
|
@@ -16020,10 +16346,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16020 |
cm.setSelections(ranges, 0);
|
16021 |
};
|
16022 |
|
16023 |
-
map["Alt-Q"] = "wrapLines";
|
16024 |
-
|
16025 |
-
var cK = ctrl + "K ";
|
16026 |
-
|
16027 |
function modifyWordOrSelection(cm, mod) {
|
16028 |
cm.operation(function() {
|
16029 |
var ranges = cm.listSelections(), indices = [], replacements = [];
|
@@ -16043,9 +16365,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16043 |
});
|
16044 |
}
|
16045 |
|
16046 |
-
|
16047 |
-
|
16048 |
-
cmds[map["Backspace"] = "smartBackspace"] = function(cm) {
|
16049 |
if (cm.somethingSelected()) return CodeMirror.Pass;
|
16050 |
|
16051 |
cm.operation(function() {
|
@@ -16073,7 +16393,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16073 |
});
|
16074 |
};
|
16075 |
|
16076 |
-
cmds
|
16077 |
cm.operation(function() {
|
16078 |
var ranges = cm.listSelections();
|
16079 |
for (var i = ranges.length - 1; i >= 0; i--)
|
@@ -16082,22 +16402,22 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16082 |
});
|
16083 |
};
|
16084 |
|
16085 |
-
cmds
|
16086 |
modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });
|
16087 |
};
|
16088 |
-
cmds
|
16089 |
modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });
|
16090 |
};
|
16091 |
|
16092 |
-
cmds
|
16093 |
if (cm.state.sublimeMark) cm.state.sublimeMark.clear();
|
16094 |
cm.state.sublimeMark = cm.setBookmark(cm.getCursor());
|
16095 |
};
|
16096 |
-
cmds
|
16097 |
var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
|
16098 |
if (found) cm.setSelection(cm.getCursor(), found);
|
16099 |
};
|
16100 |
-
cmds
|
16101 |
var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
|
16102 |
if (found) {
|
16103 |
var from = cm.getCursor(), to = found;
|
@@ -16106,7 +16426,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16106 |
cm.replaceRange("", from, to);
|
16107 |
}
|
16108 |
};
|
16109 |
-
cmds
|
16110 |
var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
|
16111 |
if (found) {
|
16112 |
cm.state.sublimeMark.clear();
|
@@ -16114,39 +16434,16 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16114 |
cm.setCursor(found);
|
16115 |
}
|
16116 |
};
|
16117 |
-
cmds
|
16118 |
if (cm.state.sublimeKilled != null)
|
16119 |
cm.replaceSelection(cm.state.sublimeKilled, null, "paste");
|
16120 |
};
|
16121 |
|
16122 |
-
|
16123 |
-
cmds[map[cK + ctrl + "C"] = "showInCenter"] = function(cm) {
|
16124 |
var pos = cm.cursorCoords(null, "local");
|
16125 |
cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);
|
16126 |
};
|
16127 |
|
16128 |
-
var selectLinesCombo = mac ? "Ctrl-Shift-" : "Ctrl-Alt-";
|
16129 |
-
cmds[map[selectLinesCombo + "Up"] = "selectLinesUpward"] = function(cm) {
|
16130 |
-
cm.operation(function() {
|
16131 |
-
var ranges = cm.listSelections();
|
16132 |
-
for (var i = 0; i < ranges.length; i++) {
|
16133 |
-
var range = ranges[i];
|
16134 |
-
if (range.head.line > cm.firstLine())
|
16135 |
-
cm.addSelection(Pos(range.head.line - 1, range.head.ch));
|
16136 |
-
}
|
16137 |
-
});
|
16138 |
-
};
|
16139 |
-
cmds[map[selectLinesCombo + "Down"] = "selectLinesDownward"] = function(cm) {
|
16140 |
-
cm.operation(function() {
|
16141 |
-
var ranges = cm.listSelections();
|
16142 |
-
for (var i = 0; i < ranges.length; i++) {
|
16143 |
-
var range = ranges[i];
|
16144 |
-
if (range.head.line < cm.lastLine())
|
16145 |
-
cm.addSelection(Pos(range.head.line + 1, range.head.ch));
|
16146 |
-
}
|
16147 |
-
});
|
16148 |
-
};
|
16149 |
-
|
16150 |
function getTarget(cm) {
|
16151 |
var from = cm.getCursor("from"), to = cm.getCursor("to");
|
16152 |
if (CodeMirror.cmpPos(from, to) == 0) {
|
@@ -16175,9 +16472,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16175 |
cm.setSelection(target.from, target.to);
|
16176 |
}
|
16177 |
};
|
16178 |
-
cmds
|
16179 |
-
cmds
|
16180 |
-
cmds
|
16181 |
var target = getTarget(cm);
|
16182 |
if (!target) return;
|
16183 |
var cur = cm.getSearchCursor(target.query);
|
@@ -16191,21 +16488,134 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16191 |
cm.setSelections(matches, primaryIndex);
|
16192 |
};
|
16193 |
|
16194 |
-
map["Shift-" + ctrl + "["] = "fold";
|
16195 |
-
map["Shift-" + ctrl + "]"] = "unfold";
|
16196 |
-
map[cK + ctrl + "0"] = map[cK + ctrl + "J"] = "unfoldAll";
|
16197 |
|
16198 |
-
|
16199 |
-
|
16200 |
-
|
16201 |
-
|
16202 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16203 |
|
16204 |
-
|
|
|
16205 |
});
|
16206 |
|
16207 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
16208 |
-
// Distributed under an MIT license:
|
16209 |
|
16210 |
(function(mod) {
|
16211 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
@@ -16236,16 +16646,16 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16236 |
|
16237 |
var lastKill = null;
|
16238 |
|
16239 |
-
function kill(cm, from, to,
|
16240 |
if (text == null) text = cm.getRange(from, to);
|
16241 |
|
16242 |
-
if (
|
16243 |
growRingTop(text);
|
16244 |
-
else
|
16245 |
addToRing(text);
|
16246 |
cm.replaceRange("", from, to, "+delete");
|
16247 |
|
16248 |
-
if (
|
16249 |
else lastKill = null;
|
16250 |
}
|
16251 |
|
@@ -16357,22 +16767,22 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16357 |
return f;
|
16358 |
}
|
16359 |
|
16360 |
-
function killTo(cm, by, dir) {
|
16361 |
var selections = cm.listSelections(), cursor;
|
16362 |
var i = selections.length;
|
16363 |
while (i--) {
|
16364 |
cursor = selections[i].head;
|
16365 |
-
kill(cm, cursor, findEnd(cm, cursor, by, dir),
|
16366 |
}
|
16367 |
}
|
16368 |
|
16369 |
-
function killRegion(cm) {
|
16370 |
if (cm.somethingSelected()) {
|
16371 |
var selections = cm.listSelections(), selection;
|
16372 |
var i = selections.length;
|
16373 |
while (i--) {
|
16374 |
selection = selections[i];
|
16375 |
-
kill(cm, selection.anchor, selection.head);
|
16376 |
}
|
16377 |
return true;
|
16378 |
}
|
@@ -16482,7 +16892,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16482 |
// Actual keymap
|
16483 |
|
16484 |
var keyMap = CodeMirror.keyMap.emacs = CodeMirror.normalizeKeyMap({
|
16485 |
-
"Ctrl-W": function(cm) {kill(cm, cm.getCursor("start"), cm.getCursor("end"));},
|
16486 |
"Ctrl-K": repeated(function(cm) {
|
16487 |
var start = cm.getCursor(), end = cm.clipPos(Pos(start.line));
|
16488 |
var text = cm.getRange(start, end);
|
@@ -16490,7 +16900,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16490 |
text += "\n";
|
16491 |
end = Pos(start.line + 1, 0);
|
16492 |
}
|
16493 |
-
kill(cm, start, end,
|
16494 |
}),
|
16495 |
"Alt-W": function(cm) {
|
16496 |
addToRing(cm.getSelection());
|
@@ -16507,14 +16917,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16507 |
|
16508 |
"Ctrl-F": move(byChar, 1), "Ctrl-B": move(byChar, -1),
|
16509 |
"Right": move(byChar, 1), "Left": move(byChar, -1),
|
16510 |
-
"Ctrl-D": function(cm) { killTo(cm, byChar, 1); },
|
16511 |
-
"Delete": function(cm) { killRegion(cm) || killTo(cm, byChar, 1); },
|
16512 |
-
"Ctrl-H": function(cm) { killTo(cm, byChar, -1); },
|
16513 |
-
"Backspace": function(cm) { killRegion(cm) || killTo(cm, byChar, -1); },
|
16514 |
|
16515 |
"Alt-F": move(byWord, 1), "Alt-B": move(byWord, -1),
|
16516 |
-
"Alt-
|
16517 |
-
"Alt-
|
|
|
16518 |
|
16519 |
"Ctrl-N": move(byLine, 1), "Ctrl-P": move(byLine, -1),
|
16520 |
"Down": move(byLine, 1), "Up": move(byLine, -1),
|
@@ -16527,11 +16938,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16527 |
"Ctrl-Up": move(byParagraph, -1), "Ctrl-Down": move(byParagraph, 1),
|
16528 |
|
16529 |
"Alt-A": move(bySentence, -1), "Alt-E": move(bySentence, 1),
|
16530 |
-
"Alt-K": function(cm) { killTo(cm, bySentence, 1); },
|
16531 |
|
16532 |
-
"Ctrl-Alt-K": function(cm) { killTo(cm, byExpr, 1); },
|
16533 |
-
"Ctrl-Alt-Backspace": function(cm) { killTo(cm, byExpr, -1); },
|
16534 |
-
"Ctrl-Alt-F": move(byExpr, 1), "Ctrl-Alt-B": move(byExpr, -1),
|
16535 |
|
16536 |
"Shift-Ctrl-Alt-2": function(cm) {
|
16537 |
var cursor = cm.getCursor();
|
@@ -16604,7 +17015,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16604 |
"Ctrl-X F": "open",
|
16605 |
"Ctrl-X U": repeated("undo"),
|
16606 |
"Ctrl-X K": "close",
|
16607 |
-
"Ctrl-X Delete": function(cm) { kill(cm, cm.getCursor(), bySentence(cm, cm.getCursor(), 1),
|
16608 |
"Ctrl-X H": "selectAll",
|
16609 |
|
16610 |
"Ctrl-Q Tab": repeated("insertTab"),
|
@@ -16622,7 +17033,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16622 |
});
|
16623 |
|
16624 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
16625 |
-
// Distributed under an MIT license:
|
16626 |
|
16627 |
/**
|
16628 |
* Supported keybindings:
|
@@ -16716,6 +17127,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16716 |
{ keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }},
|
16717 |
{ keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }},
|
16718 |
{ keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }},
|
|
|
|
|
16719 |
{ keys: '<C-f>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }},
|
16720 |
{ keys: '<C-b>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }},
|
16721 |
{ keys: '<C-d>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }},
|
@@ -16878,20 +17291,67 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16878 |
}
|
16879 |
|
16880 |
function detachVimMap(cm, next) {
|
16881 |
-
if (this == CodeMirror.keyMap.vim)
|
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)
|
16889 |
CodeMirror.addClass(cm.getWrapperElement(), "cm-fat-cursor");
|
|
|
|
|
|
|
|
|
|
|
16890 |
|
16891 |
if (!prev || prev.attach != attachVimMap)
|
16892 |
enterVimMode(cm);
|
16893 |
}
|
16894 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16895 |
// Deprecated, simply setting the keymap works again.
|
16896 |
CodeMirror.defineOption('vimMode', false, function(cm, val, prev) {
|
16897 |
if (val && cm.getOption("keyMap") != "vim")
|
@@ -16999,6 +17459,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16999 |
function isWhiteSpaceString(k) {
|
17000 |
return (/^\s*$/).test(k);
|
17001 |
}
|
|
|
|
|
|
|
17002 |
function inArray(val, arr) {
|
17003 |
for (var i = 0; i < arr.length; i++) {
|
17004 |
if (arr[i] == val) {
|
@@ -17417,7 +17880,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
17417 |
}
|
17418 |
|
17419 |
function handleKeyNonInsertMode() {
|
17420 |
-
if (handleMacroRecording() || handleEsc()) { return true; }
|
17421 |
|
17422 |
var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;
|
17423 |
if (/^[1-9]\d*$/.test(keys)) { return true; }
|
@@ -17442,7 +17905,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
17442 |
if (vim.insertMode) { command = handleKeyInsertMode(); }
|
17443 |
else { command = handleKeyNonInsertMode(); }
|
17444 |
if (command === false) {
|
17445 |
-
return undefined;
|
17446 |
} else if (command === true) {
|
17447 |
// TODO: Look into using CodeMirror's multi-key handling.
|
17448 |
// Return no-op since we are caching the key. Counts as handled, but
|
@@ -18002,7 +18465,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
18002 |
} else {
|
18003 |
if (vim.visualMode) {
|
18004 |
showPrompt(cm, { onClose: onPromptClose, prefix: ':', value: '\'<,\'>',
|
18005 |
-
onKeyDown: onPromptKeyDown});
|
18006 |
} else {
|
18007 |
showPrompt(cm, { onClose: onPromptClose, prefix: ':',
|
18008 |
onKeyDown: onPromptKeyDown});
|
@@ -18387,6 +18850,10 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
18387 |
var dir = motionArgs.forward ? 1 : -1;
|
18388 |
return findParagraph(cm, head, motionArgs.repeat, dir);
|
18389 |
},
|
|
|
|
|
|
|
|
|
18390 |
moveByScroll: function(cm, head, motionArgs, vim) {
|
18391 |
var scrollbox = cm.getScrollInfo();
|
18392 |
var curEnd = null;
|
@@ -18657,7 +19124,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
18657 |
vimGlobalState.registerController.pushText(
|
18658 |
args.registerName, 'delete', text,
|
18659 |
args.linewise, vim.visualBlock);
|
18660 |
-
|
|
|
18661 |
},
|
18662 |
indent: function(cm, args, ranges) {
|
18663 |
var vim = cm.state.vim;
|
@@ -19212,25 +19680,32 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
19212 |
incrementNumberToken: function(cm, actionArgs) {
|
19213 |
var cur = cm.getCursor();
|
19214 |
var lineStr = cm.getLine(cur.line);
|
19215 |
-
var re =
|
19216 |
var match;
|
19217 |
var start;
|
19218 |
var end;
|
19219 |
var numberStr;
|
19220 |
-
var token;
|
19221 |
while ((match = re.exec(lineStr)) !== null) {
|
19222 |
-
token = match[0];
|
19223 |
start = match.index;
|
19224 |
-
end = start +
|
19225 |
if (cur.ch < end)break;
|
19226 |
}
|
19227 |
if (!actionArgs.backtrack && (end <= cur.ch))return;
|
19228 |
-
if (
|
|
|
|
|
19229 |
var increment = actionArgs.increase ? 1 : -1;
|
19230 |
-
var
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19231 |
var from = Pos(cur.line, start);
|
19232 |
var to = Pos(cur.line, end);
|
19233 |
-
numberStr = number.toString();
|
19234 |
cm.replaceRange(numberStr, from, to);
|
19235 |
} else {
|
19236 |
return;
|
@@ -19867,7 +20342,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
19867 |
return cur;
|
19868 |
}
|
19869 |
|
19870 |
-
|
19871 |
* Returns the boundaries of the next word. If the cursor in the middle of
|
19872 |
* the word, then returns the boundaries of the current word, starting at
|
19873 |
* the cursor. If the cursor is at the start/end of a word, and we are going
|
@@ -20102,6 +20577,179 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
20102 |
return { start: start, end: end };
|
20103 |
}
|
20104 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20105 |
// TODO: perhaps this finagling of start and end positions belonds
|
20106 |
// in codemirror/replaceRange?
|
20107 |
function selectCompanionObject(cm, head, symb, inclusive) {
|
@@ -20120,8 +20768,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
20120 |
// cursor is on a matching open bracket.
|
20121 |
var offset = curChar === openSym ? 1 : 0;
|
20122 |
|
20123 |
-
start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1,
|
20124 |
-
end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1,
|
20125 |
|
20126 |
if (!start || !end) {
|
20127 |
return { start: cur, end: cur };
|
@@ -20251,7 +20899,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
20251 |
}
|
20252 |
}
|
20253 |
function splitBySlash(argString) {
|
20254 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20255 |
if (!slashes.length) return [];
|
20256 |
var tokens = [];
|
20257 |
// in case of strings like foo/bar
|
@@ -20263,12 +20919,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
20263 |
return tokens;
|
20264 |
}
|
20265 |
|
20266 |
-
function
|
|
|
|
|
|
|
20267 |
var escapeNextChar = false;
|
20268 |
var slashes = [];
|
20269 |
for (var i = 0; i < str.length; i++) {
|
20270 |
var c = str.charAt(i);
|
20271 |
-
if (!escapeNextChar && c ==
|
20272 |
slashes.push(i);
|
20273 |
}
|
20274 |
escapeNextChar = !escapeNextChar && (c == '\\');
|
@@ -20601,6 +21260,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
20601 |
var history = cm.doc.history.done;
|
20602 |
var event = history[history.length - 2];
|
20603 |
return event && event.ranges && event.ranges[0].head;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20604 |
}
|
20605 |
|
20606 |
var mark = vim.marks[markName];
|
@@ -21125,7 +21793,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21125 |
'any other getSearchCursor implementation.');
|
21126 |
}
|
21127 |
var argString = params.argString;
|
21128 |
-
var tokens = argString ?
|
21129 |
var regexPart, replacePart = '', trailing, flagsPart, count;
|
21130 |
var confirm = false; // Whether to confirm each replace.
|
21131 |
var global = false; // True to replace all instances on a line, false to replace only 1.
|
@@ -21169,7 +21837,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21169 |
global = true;
|
21170 |
flagsPart.replace('g', '');
|
21171 |
}
|
21172 |
-
regexPart = regexPart + '/' + flagsPart;
|
21173 |
}
|
21174 |
}
|
21175 |
if (regexPart) {
|
@@ -21385,7 +22053,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21385 |
}
|
21386 |
if (!confirm) {
|
21387 |
replaceAll();
|
21388 |
-
if (callback) { callback(); }
|
21389 |
return;
|
21390 |
}
|
21391 |
showPrompt(cm, {
|
@@ -21411,7 +22079,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21411 |
// so as to update the ". register as expected in real vim.
|
21412 |
var text = [];
|
21413 |
if (!isPlaying) {
|
21414 |
-
var selLength = lastChange.inVisualBlock
|
|
|
21415 |
var changes = lastChange.changes;
|
21416 |
var text = [];
|
21417 |
var i = 0;
|
@@ -21520,7 +22189,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21520 |
exitInsertMode(cm);
|
21521 |
}
|
21522 |
}
|
21523 |
-
}
|
21524 |
macroModeState.isPlaying = false;
|
21525 |
}
|
21526 |
|
@@ -21724,7 +22393,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21724 |
exitInsertMode(cm);
|
21725 |
}
|
21726 |
macroModeState.isPlaying = false;
|
21727 |
-
}
|
21728 |
|
21729 |
function repeatInsertModeChanges(cm, changes, repeat) {
|
21730 |
function keyHandler(binding) {
|
@@ -21782,7 +22451,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21782 |
* @link http://arniebradfo.com/
|
21783 |
* @author Petr Mukhortov
|
21784 |
* @link http://mukhortov.com/
|
21785 |
-
* @since 2.2.
|
21786 |
*/
|
21787 |
|
21788 |
// console.log(window.heshOptions); // from wordpress php
|
@@ -21817,7 +22486,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21817 |
isThemeOrPlugin: document.getElementById('newcontent') != null,
|
21818 |
|
21819 |
isActive: function () {
|
21820 |
-
return
|
21821 |
},
|
21822 |
|
21823 |
isVisualActive: function () {
|
@@ -22147,11 +22816,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
22147 |
|
22148 |
case 'foldGutter':
|
22149 |
editor.setOption('gutters', value ? ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'] : []);
|
22150 |
-
|
22151 |
|
22152 |
case 'tabSize':
|
22153 |
editor.setOption('indentUnit', value); // indentUnit must always equal tabSize
|
22154 |
-
|
22155 |
|
22156 |
default:
|
22157 |
heshOptions[event.target.id] = value;
|
@@ -22394,7 +23063,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
22394 |
var windowScrollPosition = { top: window.pageYOffset, left: window.pageXOffset }
|
22395 |
|
22396 |
// update codemirror with the new textarea.value
|
22397 |
-
editor.doc.setValue(editor.getTextArea().value);
|
22398 |
editor.focus();
|
22399 |
|
22400 |
var startLine = 0, endLine = 0, currentLine = 0;
|
@@ -22442,6 +23111,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
22442 |
|
22443 |
function startEditor() {
|
22444 |
if (state.isActive()) return;
|
|
|
22445 |
|
22446 |
updateOptions();
|
22447 |
|
@@ -22480,6 +23150,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
22480 |
if (!state.isActive()) return;
|
22481 |
setSettingsPanelState('closed');
|
22482 |
editor.toTextArea();
|
|
|
22483 |
}
|
22484 |
|
22485 |
|
@@ -22499,6 +23170,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
22499 |
}
|
22500 |
}
|
22501 |
|
|
|
22502 |
if (document.readyState !== 'complete') {
|
22503 |
if (window.addEventListener) window.addEventListener('load', initialise, false);
|
22504 |
else if (window.attachEvent) window.attachEvent('onload', initialise);
|
1 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
2 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
3 |
|
4 |
+
// This is CodeMirror (https://codemirror.net), a code editor
|
5 |
// implemented in JavaScript on top of the browser's DOM.
|
6 |
//
|
7 |
// You can find some technical background for some of the code below
|
279 |
}
|
280 |
|
281 |
// Returns the value from the range [`from`; `to`] that satisfies
|
282 |
+
// `pred` and is closest to `from`. Assumes that at least `to`
|
283 |
+
// satisfies `pred`. Supports `from` being greater than `to`.
|
284 |
function findFirst(pred, from, to) {
|
285 |
+
// At any point we are certain `to` satisfies `pred`, don't know
|
286 |
+
// whether `from` does.
|
287 |
+
var dir = from > to ? -1 : 1;
|
288 |
for (;;) {
|
289 |
+
if (from == to) { return from }
|
290 |
+
var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);
|
291 |
+
if (mid == from) { return pred(mid) ? from : to }
|
292 |
if (pred(mid)) { to = mid; }
|
293 |
+
else { from = mid + dir; }
|
294 |
}
|
295 |
}
|
296 |
|
746 |
function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }
|
747 |
function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }
|
748 |
|
749 |
+
function collapsedSpanAround(line, ch) {
|
750 |
+
var sps = sawCollapsedSpans && line.markedSpans, found;
|
751 |
+
if (sps) { for (var i = 0; i < sps.length; ++i) {
|
752 |
+
var sp = sps[i];
|
753 |
+
if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&
|
754 |
+
(!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }
|
755 |
+
} }
|
756 |
+
return found
|
757 |
+
}
|
758 |
+
|
759 |
// Test whether there exists a collapsed span that partially
|
760 |
// overlaps (covers the start or end, but not both) of a new span.
|
761 |
// Such overlap is not allowed.
|
912 |
// BIDI HELPERS
|
913 |
|
914 |
function iterateBidiSections(order, from, to, f) {
|
915 |
+
if (!order) { return f(from, to, "ltr", 0) }
|
916 |
var found = false;
|
917 |
for (var i = 0; i < order.length; ++i) {
|
918 |
var part = order[i];
|
919 |
if (part.from < to && part.to > from || from == to && part.to == from) {
|
920 |
+
f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i);
|
921 |
found = true;
|
922 |
}
|
923 |
}
|
1098 |
if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }
|
1099 |
}
|
1100 |
}
|
1101 |
+
if (direction == "ltr") {
|
1102 |
+
if (order[0].level == 1 && (m = str.match(/^\s+/))) {
|
1103 |
+
order[0].from = m[0].length;
|
1104 |
+
order.unshift(new BidiSpan(0, 0, m[0].length));
|
1105 |
+
}
|
1106 |
+
if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
|
1107 |
+
lst(order).to -= m[0].length;
|
1108 |
+
order.push(new BidiSpan(0, len - m[0].length, len));
|
1109 |
+
}
|
1110 |
}
|
1111 |
|
1112 |
return direction == "rtl" ? order.reverse() : order
|
1122 |
return order
|
1123 |
}
|
1124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1125 |
// EVENT HANDLING
|
1126 |
|
1127 |
// Lightweight event framework. on/off also work on DOM nodes,
|
1483 |
var oracle = this.lineOracle;
|
1484 |
return oracle && oracle.lookAhead(n)
|
1485 |
};
|
1486 |
+
StringStream.prototype.baseToken = function () {
|
1487 |
+
var oracle = this.lineOracle;
|
1488 |
+
return oracle && oracle.baseToken(this.pos)
|
1489 |
+
};
|
1490 |
|
1491 |
var SavedContext = function(state, lookAhead) {
|
1492 |
this.state = state;
|
1498 |
this.doc = doc;
|
1499 |
this.line = line;
|
1500 |
this.maxLookAhead = lookAhead || 0;
|
1501 |
+
this.baseTokens = null;
|
1502 |
+
this.baseTokenPos = 1;
|
1503 |
};
|
1504 |
|
1505 |
Context.prototype.lookAhead = function (n) {
|
1508 |
return line
|
1509 |
};
|
1510 |
|
1511 |
+
Context.prototype.baseToken = function (n) {
|
1512 |
+
var this$1 = this;
|
1513 |
+
|
1514 |
+
if (!this.baseTokens) { return null }
|
1515 |
+
while (this.baseTokens[this.baseTokenPos] <= n)
|
1516 |
+
{ this$1.baseTokenPos += 2; }
|
1517 |
+
var type = this.baseTokens[this.baseTokenPos + 1];
|
1518 |
+
return {type: type && type.replace(/( |^)overlay .*/, ""),
|
1519 |
+
size: this.baseTokens[this.baseTokenPos] - n}
|
1520 |
+
};
|
1521 |
+
|
1522 |
Context.prototype.nextLine = function () {
|
1523 |
this.line++;
|
1524 |
if (this.maxLookAhead > 0) { this.maxLookAhead--; }
|
1552 |
|
1553 |
// Run overlays, adjust style array.
|
1554 |
var loop = function ( o ) {
|
1555 |
+
context.baseTokens = st;
|
1556 |
var overlay = cm.state.overlays[o], i = 1, at = 0;
|
1557 |
context.state = true;
|
1558 |
runMode(cm, line.text, overlay.mode, context, function (end, style) {
|
1576 |
}
|
1577 |
}
|
1578 |
}, lineClasses);
|
1579 |
+
context.state = state;
|
1580 |
+
context.baseTokens = null;
|
1581 |
+
context.baseTokenPos = 1;
|
1582 |
};
|
1583 |
|
1584 |
for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
|
|
|
1585 |
|
1586 |
return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
|
1587 |
}
|
2652 |
return window.pageYOffset || (document.documentElement || document.body).scrollTop
|
2653 |
}
|
2654 |
|
2655 |
+
function widgetTopHeight(lineObj) {
|
2656 |
+
var height = 0;
|
2657 |
+
if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)
|
2658 |
+
{ height += widgetHeight(lineObj.widgets[i]); } } }
|
2659 |
+
return height
|
2660 |
+
}
|
2661 |
+
|
2662 |
// Converts a {top, bottom, left, right} box from line-local
|
2663 |
// coordinates into another coordinate system. Context may be one of
|
2664 |
// "line", "div" (display.lineDiv), "local"./null (editor), "window",
|
2665 |
// or "page".
|
2666 |
function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {
|
2667 |
+
if (!includeWidgets) {
|
2668 |
+
var height = widgetTopHeight(lineObj);
|
2669 |
+
rect.top += height; rect.bottom += height;
|
2670 |
+
}
|
2671 |
if (context == "line") { return rect }
|
2672 |
if (!context) { context = "local"; }
|
2673 |
var yOff = heightAtLine(lineObj);
|
2742 |
if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") }
|
2743 |
|
2744 |
function getBidi(ch, partPos, invert) {
|
2745 |
+
var part = order[partPos], right = part.level == 1;
|
2746 |
return get(invert ? ch - 1 : ch, right != invert)
|
2747 |
}
|
2748 |
var partPos = getBidiPartAt(order, ch, sticky);
|
2790 |
var lineObj = getLine(doc, lineN);
|
2791 |
for (;;) {
|
2792 |
var found = coordsCharInner(cm, lineObj, lineN, x, y);
|
2793 |
+
var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 ? 1 : 0));
|
2794 |
+
if (!collapsed) { return found }
|
2795 |
+
var rangeEnd = collapsed.find(1);
|
2796 |
+
if (rangeEnd.line == lineN) { return rangeEnd }
|
2797 |
+
lineObj = getLine(doc, lineN = rangeEnd.line);
|
|
|
2798 |
}
|
2799 |
}
|
2800 |
|
2801 |
function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {
|
2802 |
+
y -= widgetTopHeight(lineObj);
|
2803 |
var end = lineObj.text.length;
|
2804 |
+
var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);
|
2805 |
+
end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);
|
2806 |
return {begin: begin, end: end}
|
2807 |
}
|
2808 |
|
2809 |
function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {
|
2810 |
+
if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }
|
2811 |
var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top;
|
2812 |
return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)
|
2813 |
}
|
2814 |
|
2815 |
+
// Returns true if the given side of a box is after the given
|
2816 |
+
// coordinates, in top-to-bottom, left-to-right order.
|
2817 |
+
function boxIsAfter(box, x, y, left) {
|
2818 |
+
return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x
|
2819 |
+
}
|
2820 |
+
|
2821 |
function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
|
2822 |
+
// Move y into line-local coordinate space
|
2823 |
y -= heightAtLine(lineObj);
|
|
|
2824 |
var preparedMeasure = prepareMeasureForLine(cm, lineObj);
|
2825 |
+
// When directly calling `measureCharPrepared`, we have to adjust
|
2826 |
+
// for the widgets at this line.
|
2827 |
+
var widgetHeight$$1 = widgetTopHeight(lineObj);
|
2828 |
+
var begin = 0, end = lineObj.text.length, ltr = true;
|
2829 |
+
|
2830 |
var order = getOrder(lineObj, cm.doc.direction);
|
2831 |
+
// If the line isn't plain left-to-right text, first figure out
|
2832 |
+
// which bidi section the coordinates fall into.
|
2833 |
if (order) {
|
2834 |
+
var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)
|
2835 |
+
(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y);
|
2836 |
+
ltr = part.level != 1;
|
2837 |
+
// The awkward -1 offsets are needed because findFirst (called
|
2838 |
+
// on these below) will treat its first bound as inclusive,
|
2839 |
+
// second as exclusive, but we want to actually address the
|
2840 |
+
// characters in the part's range
|
2841 |
+
begin = ltr ? part.from : part.to - 1;
|
2842 |
+
end = ltr ? part.to : part.from - 1;
|
2843 |
+
}
|
2844 |
+
|
2845 |
+
// A binary search to find the first character whose bounding box
|
2846 |
+
// starts after the coordinates. If we run across any whose box wrap
|
2847 |
+
// the coordinates, store that.
|
2848 |
+
var chAround = null, boxAround = null;
|
2849 |
+
var ch = findFirst(function (ch) {
|
2850 |
+
var box = measureCharPrepared(cm, preparedMeasure, ch);
|
2851 |
+
box.top += widgetHeight$$1; box.bottom += widgetHeight$$1;
|
2852 |
+
if (!boxIsAfter(box, x, y, false)) { return false }
|
2853 |
+
if (box.top <= y && box.left <= x) {
|
2854 |
+
chAround = ch;
|
2855 |
+
boxAround = box;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2856 |
}
|
2857 |
+
return true
|
2858 |
+
}, begin, end);
|
2859 |
+
|
2860 |
+
var baseX, sticky, outside = false;
|
2861 |
+
// If a box around the coordinates was found, use that
|
2862 |
+
if (boxAround) {
|
2863 |
+
// Distinguish coordinates nearer to the left or right side of the box
|
2864 |
+
var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;
|
2865 |
+
ch = chAround + (atStart ? 0 : 1);
|
2866 |
+
sticky = atStart ? "after" : "before";
|
2867 |
+
baseX = atLeft ? boxAround.left : boxAround.right;
|
2868 |
} else {
|
2869 |
+
// (Adjust for extended bound, if necessary.)
|
2870 |
+
if (!ltr && (ch == end || ch == begin)) { ch++; }
|
2871 |
+
// To determine which side to associate with, get the box to the
|
2872 |
+
// left of the character and compare it's vertical position to the
|
2873 |
+
// coordinates
|
2874 |
+
sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" :
|
2875 |
+
(measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight$$1 <= y) == ltr ?
|
2876 |
+
"after" : "before";
|
2877 |
+
// Now get accurate coordinates for this place, in order to get a
|
2878 |
+
// base X position
|
2879 |
+
var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), "line", lineObj, preparedMeasure);
|
2880 |
+
baseX = coords.left;
|
2881 |
+
outside = y < coords.top || y >= coords.bottom;
|
2882 |
+
}
|
2883 |
+
|
2884 |
+
ch = skipExtendingChars(lineObj.text, ch, 1);
|
2885 |
+
return PosWithInfo(lineNo$$1, ch, sticky, outside, x - baseX)
|
2886 |
+
}
|
2887 |
+
|
2888 |
+
function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y) {
|
2889 |
+
// Bidi parts are sorted left-to-right, and in a non-line-wrapping
|
2890 |
+
// situation, we can take this ordering to correspond to the visual
|
2891 |
+
// ordering. This finds the first part whose end is after the given
|
2892 |
+
// coordinates.
|
2893 |
+
var index = findFirst(function (i) {
|
2894 |
+
var part = order[i], ltr = part.level != 1;
|
2895 |
+
return boxIsAfter(cursorCoords(cm, Pos(lineNo$$1, ltr ? part.to : part.from, ltr ? "before" : "after"),
|
2896 |
+
"line", lineObj, preparedMeasure), x, y, true)
|
2897 |
+
}, 0, order.length - 1);
|
2898 |
+
var part = order[index];
|
2899 |
+
// If this isn't the first part, the part's start is also after
|
2900 |
+
// the coordinates, and the coordinates aren't on the same line as
|
2901 |
+
// that start, move one part back.
|
2902 |
+
if (index > 0) {
|
2903 |
+
var ltr = part.level != 1;
|
2904 |
+
var start = cursorCoords(cm, Pos(lineNo$$1, ltr ? part.from : part.to, ltr ? "after" : "before"),
|
2905 |
+
"line", lineObj, preparedMeasure);
|
2906 |
+
if (boxIsAfter(start, x, y, true) && start.top > y)
|
2907 |
+
{ part = order[index - 1]; }
|
2908 |
+
}
|
2909 |
+
return part
|
2910 |
+
}
|
2911 |
+
|
2912 |
+
function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {
|
2913 |
+
// In a wrapped line, rtl text on wrapping boundaries can do things
|
2914 |
+
// that don't correspond to the ordering in our `order` array at
|
2915 |
+
// all, so a binary search doesn't work, and we want to return a
|
2916 |
+
// part that only spans one line so that the binary search in
|
2917 |
+
// coordsCharInner is safe. As such, we first find the extent of the
|
2918 |
+
// wrapped line, and then do a flat search in which we discard any
|
2919 |
+
// spans that aren't on the line.
|
2920 |
+
var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);
|
2921 |
+
var begin = ref.begin;
|
2922 |
+
var end = ref.end;
|
2923 |
+
if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; }
|
2924 |
+
var part = null, closestDist = null;
|
2925 |
+
for (var i = 0; i < order.length; i++) {
|
2926 |
+
var p = order[i];
|
2927 |
+
if (p.from >= end || p.to <= begin) { continue }
|
2928 |
+
var ltr = p.level != 1;
|
2929 |
+
var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;
|
2930 |
+
// Weigh against spans ending before this, so that they are only
|
2931 |
+
// picked if nothing ends after
|
2932 |
+
var dist = endX < x ? x - endX + 1e9 : endX - x;
|
2933 |
+
if (!part || closestDist > dist) {
|
2934 |
+
part = p;
|
2935 |
+
closestDist = dist;
|
2936 |
+
}
|
2937 |
+
}
|
2938 |
+
if (!part) { part = order[order.length - 1]; }
|
2939 |
+
// Clip the part to the wrapped line.
|
2940 |
+
if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }
|
2941 |
+
if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }
|
2942 |
+
return part
|
2943 |
}
|
2944 |
|
2945 |
var measureText;
|
3065 |
}
|
3066 |
|
3067 |
function prepareSelection(cm, primary) {
|
3068 |
+
if ( primary === void 0 ) primary = true;
|
3069 |
+
|
3070 |
var doc = cm.doc, result = {};
|
3071 |
var curFragment = result.cursors = document.createDocumentFragment();
|
3072 |
var selFragment = result.selection = document.createDocumentFragment();
|
3073 |
|
3074 |
for (var i = 0; i < doc.sel.ranges.length; i++) {
|
3075 |
+
if (!primary && i == doc.sel.primIndex) { continue }
|
3076 |
var range$$1 = doc.sel.ranges[i];
|
3077 |
if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue }
|
3078 |
var collapsed = range$$1.empty();
|
3103 |
}
|
3104 |
}
|
3105 |
|
3106 |
+
function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }
|
3107 |
+
|
3108 |
// Draws the given range as a highlighted selection
|
3109 |
function drawSelectionRange(cm, range$$1, output) {
|
3110 |
var display = cm.display, doc = cm.doc;
|
3111 |
var fragment = document.createDocumentFragment();
|
3112 |
var padding = paddingH(cm.display), leftSide = padding.left;
|
3113 |
var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
|
3114 |
+
var docLTR = doc.direction == "ltr";
|
3115 |
|
3116 |
function add(left, top, width, bottom) {
|
3117 |
if (top < 0) { top = 0; }
|
3128 |
return charCoords(cm, Pos(line, ch), "div", lineObj, bias)
|
3129 |
}
|
3130 |
|
3131 |
+
function wrapX(pos, dir, side) {
|
3132 |
+
var extent = wrappedLineExtentChar(cm, lineObj, null, pos);
|
3133 |
+
var prop = (dir == "ltr") == (side == "after") ? "left" : "right";
|
3134 |
+
var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);
|
3135 |
+
return coords(ch, prop)[prop]
|
3136 |
+
}
|
3137 |
+
|
3138 |
+
var order = getOrder(lineObj, doc.direction);
|
3139 |
+
iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {
|
3140 |
+
var ltr = dir == "ltr";
|
3141 |
+
var fromPos = coords(from, ltr ? "left" : "right");
|
3142 |
+
var toPos = coords(to - 1, ltr ? "right" : "left");
|
3143 |
+
|
3144 |
+
var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;
|
3145 |
+
var first = i == 0, last = !order || i == order.length - 1;
|
3146 |
+
if (toPos.top - fromPos.top <= 3) { // Single line
|
3147 |
+
var openLeft = (docLTR ? openStart : openEnd) && first;
|
3148 |
+
var openRight = (docLTR ? openEnd : openStart) && last;
|
3149 |
+
var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;
|
3150 |
+
var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;
|
3151 |
+
add(left, fromPos.top, right - left, fromPos.bottom);
|
3152 |
+
} else { // Multiple lines
|
3153 |
+
var topLeft, topRight, botLeft, botRight;
|
3154 |
+
if (ltr) {
|
3155 |
+
topLeft = docLTR && openStart && first ? leftSide : fromPos.left;
|
3156 |
+
topRight = docLTR ? rightSide : wrapX(from, dir, "before");
|
3157 |
+
botLeft = docLTR ? leftSide : wrapX(to, dir, "after");
|
3158 |
+
botRight = docLTR && openEnd && last ? rightSide : toPos.right;
|
3159 |
+
} else {
|
3160 |
+
topLeft = !docLTR ? leftSide : wrapX(from, dir, "before");
|
3161 |
+
topRight = !docLTR && openStart && first ? rightSide : fromPos.right;
|
3162 |
+
botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;
|
3163 |
+
botRight = !docLTR ? rightSide : wrapX(to, dir, "after");
|
3164 |
+
}
|
3165 |
+
add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);
|
3166 |
+
if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }
|
3167 |
+
add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);
|
3168 |
+
}
|
3169 |
+
|
3170 |
+
if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }
|
3171 |
+
if (cmpCoords(toPos, start) < 0) { start = toPos; }
|
3172 |
+
if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }
|
3173 |
+
if (cmpCoords(toPos, end) < 0) { end = toPos; }
|
3174 |
});
|
3175 |
return {start: start, end: end}
|
3176 |
}
|
3285 |
// Read and store the height of line widgets associated with the
|
3286 |
// given line.
|
3287 |
function updateWidgetHeight(line) {
|
3288 |
+
if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {
|
3289 |
+
var w = line.widgets[i], parent = w.node.parentNode;
|
3290 |
+
if (parent) { w.height = parent.offsetHeight; }
|
3291 |
+
} }
|
3292 |
}
|
3293 |
|
3294 |
// Compute the lines that are visible in a given viewport (defaults
|
3554 |
this.cm = cm;
|
3555 |
var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
|
3556 |
var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
|
3557 |
+
vert.tabIndex = horiz.tabIndex = -1;
|
3558 |
place(vert); place(horiz);
|
3559 |
|
3560 |
on(vert, "scroll", function () {
|
3803 |
}
|
3804 |
|
3805 |
if (op.updatedDisplay || op.selectionChanged)
|
3806 |
+
{ op.preparedSelection = display.input.prepareSelection(); }
|
3807 |
}
|
3808 |
|
3809 |
function endOperation_W2(op) {
|
3816 |
cm.display.maxLineChanged = false;
|
3817 |
}
|
3818 |
|
3819 |
+
var takeFocus = op.focus && op.focus == activeElt();
|
3820 |
if (op.preparedSelection)
|
3821 |
{ cm.display.input.showSelection(op.preparedSelection, takeFocus); }
|
3822 |
if (op.updatedDisplay || op.startHeight != cm.doc.height)
|
4806 |
|
4807 |
if ((hist.lastOp == opId ||
|
4808 |
hist.lastOrigin == change.origin && change.origin &&
|
4809 |
+
((change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||
|
4810 |
change.origin.charAt(0) == "*")) &&
|
4811 |
(cur = lastChangeEvent(hist, hist.lastOp == opId))) {
|
4812 |
// Merge this change into the last event
|
5235 |
|
5236 |
// Revert a change stored in a document's history.
|
5237 |
function makeChangeFromHistory(doc, type, allowSelectionOnly) {
|
5238 |
+
var suppress = doc.cm && doc.cm.state.suppressEdits;
|
5239 |
+
if (suppress && !allowSelectionOnly) { return }
|
5240 |
|
5241 |
var hist = doc.history, event, selAfter = doc.sel;
|
5242 |
var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
|
5261 |
return
|
5262 |
}
|
5263 |
selAfter = event;
|
5264 |
+
} else if (suppress) {
|
5265 |
+
source.push(event);
|
5266 |
+
return
|
5267 |
+
} else { break }
|
5268 |
}
|
5269 |
|
5270 |
// Build up a reverse change object to add to the opposite history
|
5419 |
|
5420 |
function replaceRange(doc, code, from, to, origin) {
|
5421 |
if (!to) { to = from; }
|
5422 |
+
if (cmp(to, from) < 0) { var assign;
|
5423 |
+
(assign = [to, from], from = assign[0], to = assign[1]); }
|
5424 |
if (typeof code == "string") { code = doc.splitLines(code); }
|
5425 |
makeChange(doc, {from: from, to: to, text: code, origin: origin});
|
5426 |
}
|
5516 |
}
|
5517 |
|
5518 |
LeafChunk.prototype = {
|
5519 |
+
chunkSize: function() { return this.lines.length },
|
5520 |
|
5521 |
// Remove the n lines at offset 'at'.
|
5522 |
+
removeInner: function(at, n) {
|
5523 |
var this$1 = this;
|
5524 |
|
5525 |
for (var i = at, e = at + n; i < e; ++i) {
|
5532 |
},
|
5533 |
|
5534 |
// Helper used to collapse a small branch into a single leaf.
|
5535 |
+
collapse: function(lines) {
|
5536 |
lines.push.apply(lines, this.lines);
|
5537 |
},
|
5538 |
|
5539 |
// Insert the given array of lines at offset 'at', count them as
|
5540 |
// having the given height.
|
5541 |
+
insertInner: function(at, lines, height) {
|
5542 |
var this$1 = this;
|
5543 |
|
5544 |
this.height += height;
|
5547 |
},
|
5548 |
|
5549 |
// Used to iterate over a part of the tree.
|
5550 |
+
iterN: function(at, n, op) {
|
5551 |
var this$1 = this;
|
5552 |
|
5553 |
for (var e = at + n; at < e; ++at)
|
5571 |
}
|
5572 |
|
5573 |
BranchChunk.prototype = {
|
5574 |
+
chunkSize: function() { return this.size },
|
5575 |
|
5576 |
+
removeInner: function(at, n) {
|
5577 |
var this$1 = this;
|
5578 |
|
5579 |
this.size -= n;
|
5599 |
}
|
5600 |
},
|
5601 |
|
5602 |
+
collapse: function(lines) {
|
5603 |
var this$1 = this;
|
5604 |
|
5605 |
for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); }
|
5606 |
},
|
5607 |
|
5608 |
+
insertInner: function(at, lines, height) {
|
5609 |
var this$1 = this;
|
5610 |
|
5611 |
this.size += lines.length;
|
5634 |
},
|
5635 |
|
5636 |
// When a node has grown, check whether it should be split.
|
5637 |
+
maybeSpill: function() {
|
5638 |
if (this.children.length <= 10) { return }
|
5639 |
var me = this;
|
5640 |
do {
|
5656 |
me.parent.maybeSpill();
|
5657 |
},
|
5658 |
|
5659 |
+
iterN: function(at, n, op) {
|
5660 |
var this$1 = this;
|
5661 |
|
5662 |
for (var i = 0; i < this.children.length; ++i) {
|
5707 |
this.height = null;
|
5708 |
var diff = widgetHeight(this) - oldH;
|
5709 |
if (!diff) { return }
|
5710 |
+
if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }
|
5711 |
if (cm) {
|
5712 |
runInOp(cm, function () {
|
5713 |
cm.curOp.forceUpdate = true;
|
5740 |
}
|
5741 |
return true
|
5742 |
});
|
5743 |
+
if (cm) { signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); }
|
5744 |
return widget
|
5745 |
}
|
5746 |
|
6589 |
// Called when the window resizes
|
6590 |
function onResize(cm) {
|
6591 |
var d = cm.display;
|
|
|
|
|
6592 |
// Might be a text scaling operation, clear size caches.
|
6593 |
d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
|
6594 |
d.scrollbarsClipped = false;
|
6596 |
}
|
6597 |
|
6598 |
var keyNames = {
|
6599 |
+
3: "Pause", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
|
6600 |
19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
|
6601 |
36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
|
6602 |
46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
|
6603 |
+
106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete", 145: "ScrollLock",
|
6604 |
173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
|
6605 |
221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
|
6606 |
63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
|
6634 |
"Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
|
6635 |
"Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
|
6636 |
"Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
|
6637 |
+
"fallthrough": "basic"
|
6638 |
};
|
6639 |
// Very basic readline/emacs-style bindings, which are standard on Mac.
|
6640 |
keyMap.emacsy = {
|
6652 |
"Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
|
6653 |
"Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
|
6654 |
"Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
|
6655 |
+
"fallthrough": ["basic", "emacsy"]
|
6656 |
};
|
6657 |
keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
|
6658 |
|
6747 |
if (presto && event.keyCode == 34 && event["char"]) { return false }
|
6748 |
var name = keyNames[event.keyCode];
|
6749 |
if (name == null || event.altGraphKey) { return false }
|
6750 |
+
// Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,
|
6751 |
+
// so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)
|
6752 |
+
if (event.keyCode == 3 && event.code) { name = event.code; }
|
6753 |
return addModifierNames(name, event, noShift)
|
6754 |
}
|
6755 |
|
6782 |
});
|
6783 |
}
|
6784 |
|
6785 |
+
function moveCharLogically(line, ch, dir) {
|
6786 |
+
var target = skipExtendingChars(line.text, ch + dir, dir);
|
6787 |
+
return target < 0 || target > line.text.length ? null : target
|
6788 |
+
}
|
6789 |
+
|
6790 |
+
function moveLogically(line, start, dir) {
|
6791 |
+
var ch = moveCharLogically(line, start.ch, dir);
|
6792 |
+
return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before")
|
6793 |
+
}
|
6794 |
+
|
6795 |
+
function endOfLine(visually, cm, lineObj, lineNo, dir) {
|
6796 |
+
if (visually) {
|
6797 |
+
var order = getOrder(lineObj, cm.doc.direction);
|
6798 |
+
if (order) {
|
6799 |
+
var part = dir < 0 ? lst(order) : order[0];
|
6800 |
+
var moveInStorageOrder = (dir < 0) == (part.level == 1);
|
6801 |
+
var sticky = moveInStorageOrder ? "after" : "before";
|
6802 |
+
var ch;
|
6803 |
+
// With a wrapped rtl chunk (possibly spanning multiple bidi parts),
|
6804 |
+
// it could be that the last bidi part is not on the last visual line,
|
6805 |
+
// since visual lines contain content order-consecutive chunks.
|
6806 |
+
// Thus, in rtl, we are looking for the first (content-order) character
|
6807 |
+
// in the rtl chunk that is on the last line (that is, the same line
|
6808 |
+
// as the last (content-order) character).
|
6809 |
+
if (part.level > 0 || cm.doc.direction == "rtl") {
|
6810 |
+
var prep = prepareMeasureForLine(cm, lineObj);
|
6811 |
+
ch = dir < 0 ? lineObj.text.length - 1 : 0;
|
6812 |
+
var targetTop = measureCharPrepared(cm, prep, ch).top;
|
6813 |
+
ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
|
6814 |
+
if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); }
|
6815 |
+
} else { ch = dir < 0 ? part.to : part.from; }
|
6816 |
+
return new Pos(lineNo, ch, sticky)
|
6817 |
+
}
|
6818 |
+
}
|
6819 |
+
return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after")
|
6820 |
+
}
|
6821 |
+
|
6822 |
+
function moveVisually(cm, line, start, dir) {
|
6823 |
+
var bidi = getOrder(line, cm.doc.direction);
|
6824 |
+
if (!bidi) { return moveLogically(line, start, dir) }
|
6825 |
+
if (start.ch >= line.text.length) {
|
6826 |
+
start.ch = line.text.length;
|
6827 |
+
start.sticky = "before";
|
6828 |
+
} else if (start.ch <= 0) {
|
6829 |
+
start.ch = 0;
|
6830 |
+
start.sticky = "after";
|
6831 |
+
}
|
6832 |
+
var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];
|
6833 |
+
if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {
|
6834 |
+
// Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,
|
6835 |
+
// nothing interesting happens.
|
6836 |
+
return moveLogically(line, start, dir)
|
6837 |
+
}
|
6838 |
+
|
6839 |
+
var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };
|
6840 |
+
var prep;
|
6841 |
+
var getWrappedLineExtent = function (ch) {
|
6842 |
+
if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }
|
6843 |
+
prep = prep || prepareMeasureForLine(cm, line);
|
6844 |
+
return wrappedLineExtentChar(cm, line, prep, ch)
|
6845 |
+
};
|
6846 |
+
var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch);
|
6847 |
+
|
6848 |
+
if (cm.doc.direction == "rtl" || part.level == 1) {
|
6849 |
+
var moveInStorageOrder = (part.level == 1) == (dir < 0);
|
6850 |
+
var ch = mv(start, moveInStorageOrder ? 1 : -1);
|
6851 |
+
if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {
|
6852 |
+
// Case 2: We move within an rtl part or in an rtl editor on the same visual line
|
6853 |
+
var sticky = moveInStorageOrder ? "before" : "after";
|
6854 |
+
return new Pos(start.line, ch, sticky)
|
6855 |
+
}
|
6856 |
+
}
|
6857 |
+
|
6858 |
+
// Case 3: Could not move within this bidi part in this visual line, so leave
|
6859 |
+
// the current bidi part
|
6860 |
+
|
6861 |
+
var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {
|
6862 |
+
var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder
|
6863 |
+
? new Pos(start.line, mv(ch, 1), "before")
|
6864 |
+
: new Pos(start.line, ch, "after"); };
|
6865 |
+
|
6866 |
+
for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {
|
6867 |
+
var part = bidi[partPos];
|
6868 |
+
var moveInStorageOrder = (dir > 0) == (part.level != 1);
|
6869 |
+
var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);
|
6870 |
+
if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }
|
6871 |
+
ch = moveInStorageOrder ? part.from : mv(part.to, -1);
|
6872 |
+
if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }
|
6873 |
+
}
|
6874 |
+
};
|
6875 |
+
|
6876 |
+
// Case 3a: Look for other bidi parts on the same visual line
|
6877 |
+
var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);
|
6878 |
+
if (res) { return res }
|
6879 |
+
|
6880 |
+
// Case 3b: Look for other bidi parts on the next visual line
|
6881 |
+
var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);
|
6882 |
+
if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {
|
6883 |
+
res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));
|
6884 |
+
if (res) { return res }
|
6885 |
+
}
|
6886 |
+
|
6887 |
+
// Case 4: Nowhere to move
|
6888 |
+
return null
|
6889 |
+
}
|
6890 |
+
|
6891 |
// Commands are parameter-less actions that can be performed on an
|
6892 |
// editor, mostly used for keybindings.
|
6893 |
var commands = {
|
7089 |
// for bound mouse clicks.
|
7090 |
|
7091 |
var stopSeq = new Delayed;
|
7092 |
+
|
7093 |
function dispatchKey(cm, name, e, handle) {
|
7094 |
var seq = cm.state.keySeq;
|
7095 |
if (seq) {
|
7096 |
if (isModifierKey(name)) { return "handled" }
|
7097 |
+
if (/\'$/.test(name))
|
7098 |
+
{ cm.state.keySeq = null; }
|
7099 |
+
else
|
7100 |
+
{ stopSeq.set(50, function () {
|
7101 |
+
if (cm.state.keySeq == seq) {
|
7102 |
+
cm.state.keySeq = null;
|
7103 |
+
cm.display.input.reset();
|
7104 |
+
}
|
7105 |
+
}); }
|
7106 |
+
if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true }
|
7107 |
}
|
7108 |
+
return dispatchKeyInner(cm, name, e, handle)
|
7109 |
+
}
|
7110 |
+
|
7111 |
+
function dispatchKeyInner(cm, name, e, handle) {
|
7112 |
var result = lookupKeyForEditor(cm, name, handle);
|
7113 |
|
7114 |
if (result == "multi")
|
7121 |
restartBlink(cm);
|
7122 |
}
|
7123 |
|
|
|
|
|
|
|
|
|
7124 |
return !!result
|
7125 |
}
|
7126 |
|
7332 |
var dragEnd = operation(cm, function (e) {
|
7333 |
if (webkit) { display.scroller.draggable = false; }
|
7334 |
cm.state.draggingText = false;
|
7335 |
+
off(display.wrapper.ownerDocument, "mouseup", dragEnd);
|
7336 |
+
off(display.wrapper.ownerDocument, "mousemove", mouseMove);
|
7337 |
off(display.scroller, "dragstart", dragStart);
|
7338 |
off(display.scroller, "drop", dragEnd);
|
7339 |
if (!moved) {
|
7342 |
{ extendSelection(cm.doc, pos, null, null, behavior.extend); }
|
7343 |
// Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
|
7344 |
if (webkit || ie && ie_version == 9)
|
7345 |
+
{ setTimeout(function () {display.wrapper.ownerDocument.body.focus(); display.input.focus();}, 20); }
|
7346 |
else
|
7347 |
{ display.input.focus(); }
|
7348 |
}
|
7357 |
dragEnd.copy = !behavior.moveOnDrag;
|
7358 |
// IE's approach to draggable
|
7359 |
if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
|
7360 |
+
on(display.wrapper.ownerDocument, "mouseup", dragEnd);
|
7361 |
+
on(display.wrapper.ownerDocument, "mousemove", mouseMove);
|
7362 |
on(display.scroller, "dragstart", dragStart);
|
7363 |
on(display.scroller, "drop", dragEnd);
|
7364 |
|
7453 |
anchor = maxPos(oldRange.to(), range$$1.head);
|
7454 |
}
|
7455 |
var ranges$1 = startSel.ranges.slice(0);
|
7456 |
+
ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));
|
7457 |
setSelection(doc, normalizeSelection(ranges$1, ourIndex), sel_mouse);
|
7458 |
}
|
7459 |
}
|
7490 |
counter = Infinity;
|
7491 |
e_preventDefault(e);
|
7492 |
display.input.focus();
|
7493 |
+
off(display.wrapper.ownerDocument, "mousemove", move);
|
7494 |
+
off(display.wrapper.ownerDocument, "mouseup", up);
|
7495 |
doc.history.lastSelOrigin = null;
|
7496 |
}
|
7497 |
|
7498 |
var move = operation(cm, function (e) {
|
7499 |
+
if (e.buttons === 0 || !e_button(e)) { done(e); }
|
7500 |
else { extend(e); }
|
7501 |
});
|
7502 |
var up = operation(cm, done);
|
7503 |
cm.state.selectingText = up;
|
7504 |
+
on(display.wrapper.ownerDocument, "mousemove", move);
|
7505 |
+
on(display.wrapper.ownerDocument, "mouseup", up);
|
7506 |
+
}
|
7507 |
+
|
7508 |
+
// Used when mouse-selecting to adjust the anchor to the proper side
|
7509 |
+
// of a bidi jump depending on the visual position of the head.
|
7510 |
+
function bidiSimplify(cm, range$$1) {
|
7511 |
+
var anchor = range$$1.anchor;
|
7512 |
+
var head = range$$1.head;
|
7513 |
+
var anchorLine = getLine(cm.doc, anchor.line);
|
7514 |
+
if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range$$1 }
|
7515 |
+
var order = getOrder(anchorLine);
|
7516 |
+
if (!order) { return range$$1 }
|
7517 |
+
var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];
|
7518 |
+
if (part.from != anchor.ch && part.to != anchor.ch) { return range$$1 }
|
7519 |
+
var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);
|
7520 |
+
if (boundary == 0 || boundary == order.length) { return range$$1 }
|
7521 |
+
|
7522 |
+
// Compute the relative visual position of the head compared to the
|
7523 |
+
// anchor (<0 is to the left, >0 to the right)
|
7524 |
+
var leftSide;
|
7525 |
+
if (head.line != anchor.line) {
|
7526 |
+
leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0;
|
7527 |
+
} else {
|
7528 |
+
var headIndex = getBidiPartAt(order, head.ch, head.sticky);
|
7529 |
+
var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);
|
7530 |
+
if (headIndex == boundary - 1 || headIndex == boundary)
|
7531 |
+
{ leftSide = dir < 0; }
|
7532 |
+
else
|
7533 |
+
{ leftSide = dir > 0; }
|
7534 |
+
}
|
7535 |
+
|
7536 |
+
var usePart = order[boundary + (leftSide ? -1 : 0)];
|
7537 |
+
var from = leftSide == (usePart.level == 1);
|
7538 |
+
var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before";
|
7539 |
+
return anchor.ch == ch && anchor.sticky == sticky ? range$$1 : new Range(new Pos(anchor.line, ch, sticky), head)
|
7540 |
}
|
7541 |
|
7542 |
|
7544 |
// handlers for the corresponding event.
|
7545 |
function gutterEvent(cm, e, type, prevent) {
|
7546 |
var mX, mY;
|
7547 |
+
if (e.touches) {
|
7548 |
+
mX = e.touches[0].clientX;
|
7549 |
+
mY = e.touches[0].clientY;
|
7550 |
+
} else {
|
7551 |
+
try { mX = e.clientX; mY = e.clientY; }
|
7552 |
+
catch(e) { return false }
|
7553 |
+
}
|
7554 |
if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }
|
7555 |
if (prevent) { e_preventDefault(e); }
|
7556 |
|
7632 |
clearCaches(cm);
|
7633 |
regChange(cm);
|
7634 |
}, true);
|
7635 |
+
|
7636 |
option("lineSeparator", null, function (cm, val) {
|
7637 |
cm.doc.lineSep = val;
|
7638 |
if (!val) { return }
|
7734 |
option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; });
|
7735 |
option("autofocus", null);
|
7736 |
option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true);
|
7737 |
+
option("phrases", null);
|
7738 |
}
|
7739 |
|
7740 |
function guttersChanged(cm) {
|
7786 |
|
7787 |
var doc = options.value;
|
7788 |
if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }
|
7789 |
+
else if (options.mode) { doc.modeOption = options.mode; }
|
7790 |
this.doc = doc;
|
7791 |
|
7792 |
var input = new CodeMirror$1.inputStyles[options.inputStyle](this);
|
7891 |
return dx * dx + dy * dy > 20 * 20
|
7892 |
}
|
7893 |
on(d.scroller, "touchstart", function (e) {
|
7894 |
+
if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {
|
7895 |
d.input.ensurePolled();
|
7896 |
clearTimeout(touchFinished);
|
7897 |
var now = +new Date;
|
8041 |
|
8042 |
var paste = cm.state.pasteIncoming || origin == "paste";
|
8043 |
var textLines = splitLinesAuto(inserted), multiPaste = null;
|
8044 |
+
// When pasting N lines into N selections, insert one line per selection
|
8045 |
if (paste && sel.ranges.length > 1) {
|
8046 |
if (lastCopied && lastCopied.text.join("\n") == inserted) {
|
8047 |
if (sel.ranges.length % lastCopied.text.length == 0) {
|
8573 |
return old
|
8574 |
}),
|
8575 |
|
8576 |
+
phrase: function(phraseText) {
|
8577 |
+
var phrases = this.options.phrases;
|
8578 |
+
return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText
|
8579 |
+
},
|
8580 |
+
|
8581 |
getInputField: function(){return this.display.input.getField()},
|
8582 |
getWrapperElement: function(){return this.display.wrapper},
|
8583 |
getScrollerElement: function(){return this.display.scroller},
|
8782 |
this.showMultipleSelections(info);
|
8783 |
};
|
8784 |
|
8785 |
+
ContentEditableInput.prototype.getSelection = function () {
|
8786 |
+
return this.cm.display.wrapper.ownerDocument.getSelection()
|
8787 |
+
};
|
8788 |
+
|
8789 |
ContentEditableInput.prototype.showPrimarySelection = function () {
|
8790 |
+
var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();
|
8791 |
var from = prim.from(), to = prim.to();
|
8792 |
|
8793 |
if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {
|
8854 |
};
|
8855 |
|
8856 |
ContentEditableInput.prototype.rememberSelection = function () {
|
8857 |
+
var sel = this.getSelection();
|
8858 |
this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
|
8859 |
this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
|
8860 |
};
|
8861 |
|
8862 |
ContentEditableInput.prototype.selectionInEditor = function () {
|
8863 |
+
var sel = this.getSelection();
|
8864 |
if (!sel.rangeCount) { return false }
|
8865 |
var node = sel.getRangeAt(0).commonAncestorContainer;
|
8866 |
return contains(this.div, node)
|
8895 |
};
|
8896 |
|
8897 |
ContentEditableInput.prototype.selectionChanged = function () {
|
8898 |
+
var sel = this.getSelection();
|
8899 |
return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
|
8900 |
sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset
|
8901 |
};
|
8902 |
|
8903 |
ContentEditableInput.prototype.pollSelection = function () {
|
8904 |
if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }
|
8905 |
+
var sel = this.getSelection(), cm = this.cm;
|
8906 |
// On Android Chrome (version 56, at least), backspacing into an
|
8907 |
// uneditable block element will put the cursor in that element,
|
8908 |
// and then, because it's not editable, hide the virtual keyboard.
|
9036 |
};
|
9037 |
|
9038 |
ContentEditableInput.prototype.onKeyPress = function (e) {
|
9039 |
+
if (e.charCode == 0 || this.composing) { return }
|
9040 |
e.preventDefault();
|
9041 |
if (!this.cm.isReadOnly())
|
9042 |
{ operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }
|
9076 |
function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }
|
9077 |
|
9078 |
function domTextBetween(cm, from, to, fromLine, toLine) {
|
9079 |
+
var text = "", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;
|
9080 |
function recognizeMarker(id) { return function (marker) { return marker.id == id; } }
|
9081 |
function close() {
|
9082 |
if (closing) {
|
9083 |
text += lineSep;
|
9084 |
+
if (extraLinebreak) { text += lineSep; }
|
9085 |
+
closing = extraLinebreak = false;
|
9086 |
}
|
9087 |
}
|
9088 |
function addText(str) {
|
9094 |
function walk(node) {
|
9095 |
if (node.nodeType == 1) {
|
9096 |
var cmText = node.getAttribute("cm-text");
|
9097 |
+
if (cmText) {
|
9098 |
+
addText(cmText);
|
9099 |
return
|
9100 |
}
|
9101 |
var markerID = node.getAttribute("cm-marker"), range$$1;
|
9106 |
return
|
9107 |
}
|
9108 |
if (node.getAttribute("contenteditable") == "false") { return }
|
9109 |
+
var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);
|
9110 |
+
if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }
|
9111 |
+
|
9112 |
if (isBlock) { close(); }
|
9113 |
for (var i = 0; i < node.childNodes.length; i++)
|
9114 |
{ walk(node.childNodes[i]); }
|
9115 |
+
|
9116 |
+
if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }
|
9117 |
if (isBlock) { closing = true; }
|
9118 |
} else if (node.nodeType == 3) {
|
9119 |
+
addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " "));
|
9120 |
}
|
9121 |
}
|
9122 |
for (;;) {
|
9123 |
walk(from);
|
9124 |
if (from == to) { break }
|
9125 |
from = from.nextSibling;
|
9126 |
+
extraLinebreak = false;
|
9127 |
}
|
9128 |
return text
|
9129 |
}
|
9224 |
var this$1 = this;
|
9225 |
|
9226 |
var input = this, cm = this.cm;
|
9227 |
+
this.createField(display);
|
9228 |
+
var te = this.textarea;
|
9229 |
|
9230 |
+
display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);
|
|
|
|
|
|
|
|
|
|
|
9231 |
|
9232 |
// Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
|
9233 |
if (ios) { te.style.width = "0px"; }
|
9294 |
});
|
9295 |
};
|
9296 |
|
9297 |
+
TextareaInput.prototype.createField = function (_display) {
|
9298 |
+
// Wraps and hides input textarea
|
9299 |
+
this.wrapper = hiddenTextarea();
|
9300 |
+
// The semihidden textarea that is focused when the editor is
|
9301 |
+
// focused, and receives input.
|
9302 |
+
this.textarea = this.wrapper.firstChild;
|
9303 |
+
};
|
9304 |
+
|
9305 |
TextareaInput.prototype.prepareSelection = function () {
|
9306 |
// Redraw the selection and/or cursor
|
9307 |
var cm = this.cm, display = cm.display, doc = cm.doc;
|
9695 |
|
9696 |
addLegacyProps(CodeMirror$1);
|
9697 |
|
9698 |
+
CodeMirror$1.version = "5.40.0";
|
9699 |
|
9700 |
return CodeMirror$1;
|
9701 |
|
9702 |
})));
|
9703 |
|
9704 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
9705 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
9706 |
|
9707 |
(function(mod) {
|
9708 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
9755 |
doNotIndent: {},
|
9756 |
allowUnquoted: false,
|
9757 |
allowMissing: false,
|
9758 |
+
allowMissingTagName: false,
|
9759 |
caseFold: false
|
9760 |
}
|
9761 |
|
9866 |
stream.next();
|
9867 |
}
|
9868 |
return style;
|
9869 |
+
}
|
9870 |
}
|
9871 |
+
|
9872 |
function doctype(depth) {
|
9873 |
return function(stream, state) {
|
9874 |
var ch;
|
9931 |
state.tagName = stream.current();
|
9932 |
setStyle = "tag";
|
9933 |
return attrState;
|
9934 |
+
} else if (config.allowMissingTagName && type == "endTag") {
|
9935 |
+
setStyle = "tag bracket";
|
9936 |
+
return attrState(type, stream, state);
|
9937 |
} else {
|
9938 |
setStyle = "error";
|
9939 |
return tagNameState;
|
9952 |
setStyle = "tag error";
|
9953 |
return closeStateErr;
|
9954 |
}
|
9955 |
+
} else if (config.allowMissingTagName && type == "endTag") {
|
9956 |
+
setStyle = "tag bracket";
|
9957 |
+
return closeState(type, stream, state);
|
9958 |
} else {
|
9959 |
setStyle = "error";
|
9960 |
return closeStateErr;
|
10105 |
});
|
10106 |
|
10107 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
10108 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
10109 |
|
10110 |
(function(mod) {
|
10111 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
10129 |
|
10130 |
var keywords = function(){
|
10131 |
function kw(type) {return {type: type, style: "keyword"};}
|
10132 |
+
var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"), D = kw("keyword d");
|
10133 |
var operator = kw("operator"), atom = {type: "atom", style: "atom"};
|
10134 |
|
10135 |
+
return {
|
10136 |
"if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
|
10137 |
+
"return": D, "break": D, "continue": D, "new": kw("new"), "delete": C, "void": C, "throw": C,
|
10138 |
+
"debugger": kw("debugger"), "var": kw("var"), "const": kw("var"), "let": kw("var"),
|
10139 |
"function": kw("function"), "catch": kw("catch"),
|
10140 |
"for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
|
10141 |
"in": operator, "typeof": operator, "instanceof": operator,
|
10144 |
"yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
|
10145 |
"await": C
|
10146 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10147 |
}();
|
10148 |
|
10149 |
var isOperatorChar = /[+\-*&%=<>!?|~^@]/;
|
10181 |
return ret(ch);
|
10182 |
} else if (ch == "=" && stream.eat(">")) {
|
10183 |
return ret("=>", "operator");
|
10184 |
+
} else if (ch == "0" && stream.match(/^(?:x[\da-f]+|o[0-7]+|b[01]+)n?/i)) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10185 |
return ret("number", "number");
|
10186 |
} else if (/\d/.test(ch)) {
|
10187 |
+
stream.match(/^\d*(?:n|(?:\.\d*)?(?:[eE][+\-]?\d+)?)?/);
|
10188 |
return ret("number", "number");
|
10189 |
} else if (ch == "/") {
|
10190 |
if (stream.eat("*")) {
|
10195 |
return ret("comment", "comment");
|
10196 |
} else if (expressionAllowed(stream, state, 1)) {
|
10197 |
readRegexp(stream);
|
10198 |
+
stream.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/);
|
10199 |
return ret("regexp", "string-2");
|
10200 |
} else {
|
10201 |
+
stream.eat("=");
|
10202 |
return ret("operator", "operator", stream.current());
|
10203 |
}
|
10204 |
} else if (ch == "`") {
|
10208 |
stream.skipToEnd();
|
10209 |
return ret("error", "error");
|
10210 |
} else if (isOperatorChar.test(ch)) {
|
10211 |
+
if (ch != ">" || !state.lexical || state.lexical.type != ">") {
|
10212 |
+
if (stream.eat("=")) {
|
10213 |
+
if (ch == "!" || ch == "=") stream.eat("=")
|
10214 |
+
} else if (/[<>*+\-]/.test(ch)) {
|
10215 |
+
stream.eat(ch)
|
10216 |
+
if (ch == ">") stream.eat(ch)
|
10217 |
+
}
|
10218 |
+
}
|
10219 |
return ret("operator", "operator", stream.current());
|
10220 |
} else if (wordRE.test(ch)) {
|
10221 |
stream.eatWhile(wordRE);
|
10225 |
var kw = keywords[word]
|
10226 |
return ret(kw.type, kw.style, word)
|
10227 |
}
|
10228 |
+
if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/, false))
|
10229 |
return ret("async", "keyword", word)
|
10230 |
}
|
10231 |
return ret("variable", "variable", word)
|
10364 |
pass.apply(null, arguments);
|
10365 |
return true;
|
10366 |
}
|
10367 |
+
function inList(name, list) {
|
10368 |
+
for (var v = list; v; v = v.next) if (v.name == name) return true
|
10369 |
+
return false;
|
10370 |
+
}
|
10371 |
function register(varname) {
|
|
|
|
|
|
|
|
|
|
|
10372 |
var state = cx.state;
|
10373 |
cx.marked = "def";
|
10374 |
if (state.context) {
|
10375 |
+
if (state.lexical.info == "var" && state.context && state.context.block) {
|
10376 |
+
// FIXME function decls are also not block scoped
|
10377 |
+
var newContext = registerVarScoped(varname, state.context)
|
10378 |
+
if (newContext != null) {
|
10379 |
+
state.context = newContext
|
10380 |
+
return
|
10381 |
+
}
|
10382 |
+
} else if (!inList(varname, state.localVars)) {
|
10383 |
+
state.localVars = new Var(varname, state.localVars)
|
10384 |
+
return
|
10385 |
+
}
|
10386 |
+
}
|
10387 |
+
// Fall through means this is global
|
10388 |
+
if (parserConfig.globalVars && !inList(varname, state.globalVars))
|
10389 |
+
state.globalVars = new Var(varname, state.globalVars)
|
10390 |
+
}
|
10391 |
+
function registerVarScoped(varname, context) {
|
10392 |
+
if (!context) {
|
10393 |
+
return null
|
10394 |
+
} else if (context.block) {
|
10395 |
+
var inner = registerVarScoped(varname, context.prev)
|
10396 |
+
if (!inner) return null
|
10397 |
+
if (inner == context.prev) return context
|
10398 |
+
return new Context(inner, context.vars, true)
|
10399 |
+
} else if (inList(varname, context.vars)) {
|
10400 |
+
return context
|
10401 |
} else {
|
10402 |
+
return new Context(context.prev, new Var(varname, context.vars), false)
|
|
|
|
|
10403 |
}
|
10404 |
}
|
10405 |
|
10406 |
+
function isModifier(name) {
|
10407 |
+
return name == "public" || name == "private" || name == "protected" || name == "abstract" || name == "readonly"
|
10408 |
+
}
|
10409 |
+
|
10410 |
// Combinators
|
10411 |
|
10412 |
+
function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }
|
10413 |
+
function Var(name, next) { this.name = name; this.next = next }
|
10414 |
+
|
10415 |
+
var defaultVars = new Var("this", new Var("arguments", null))
|
10416 |
function pushcontext() {
|
10417 |
+
cx.state.context = new Context(cx.state.context, cx.state.localVars, false)
|
10418 |
+
cx.state.localVars = defaultVars
|
10419 |
+
}
|
10420 |
+
function pushblockcontext() {
|
10421 |
+
cx.state.context = new Context(cx.state.context, cx.state.localVars, true)
|
10422 |
+
cx.state.localVars = null
|
10423 |
}
|
10424 |
function popcontext() {
|
10425 |
+
cx.state.localVars = cx.state.context.vars
|
10426 |
+
cx.state.context = cx.state.context.prev
|
10427 |
}
|
10428 |
+
popcontext.lex = true
|
10429 |
function pushlex(type, info) {
|
10430 |
var result = function() {
|
10431 |
var state = cx.state, indent = state.indented;
|
10450 |
function expect(wanted) {
|
10451 |
function exp(type) {
|
10452 |
if (type == wanted) return cont();
|
10453 |
+
else if (wanted == ";" || type == "}" || type == ")" || type == "]") return pass();
|
10454 |
else return cont(exp);
|
10455 |
};
|
10456 |
return exp;
|
10457 |
}
|
10458 |
|
10459 |
function statement(type, value) {
|
10460 |
+
if (type == "var") return cont(pushlex("vardef", value), vardef, expect(";"), poplex);
|
10461 |
if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex);
|
10462 |
if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
|
10463 |
+
if (type == "keyword d") return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex);
|
10464 |
+
if (type == "debugger") return cont(expect(";"));
|
10465 |
+
if (type == "{") return cont(pushlex("}"), pushblockcontext, block, poplex, popcontext);
|
10466 |
if (type == ";") return cont();
|
10467 |
if (type == "if") {
|
10468 |
if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
|
10471 |
}
|
10472 |
if (type == "function") return cont(functiondef);
|
10473 |
if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
|
10474 |
+
if (type == "class" || (isTS && value == "interface")) { cx.marked = "keyword"; return cont(pushlex("form"), className, poplex); }
|
10475 |
if (type == "variable") {
|
10476 |
+
if (isTS && value == "declare") {
|
10477 |
cx.marked = "keyword"
|
10478 |
+
return cont(statement)
|
10479 |
+
} else if (isTS && (value == "module" || value == "enum" || value == "type") && cx.stream.match(/^\s*\w/, false)) {
|
10480 |
+
cx.marked = "keyword"
|
10481 |
+
if (value == "enum") return cont(enumdef);
|
10482 |
+
else if (value == "type") return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
|
10483 |
+
else return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex)
|
10484 |
+
} else if (isTS && value == "namespace") {
|
10485 |
+
cx.marked = "keyword"
|
10486 |
+
return cont(pushlex("form"), expression, block, poplex)
|
10487 |
+
} else if (isTS && value == "abstract") {
|
10488 |
cx.marked = "keyword"
|
10489 |
return cont(statement)
|
10490 |
} else {
|
10491 |
return cont(pushlex("stat"), maybelabel);
|
10492 |
}
|
10493 |
}
|
10494 |
+
if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"), pushblockcontext,
|
10495 |
+
block, poplex, poplex, popcontext);
|
10496 |
if (type == "case") return cont(expression, expect(":"));
|
10497 |
if (type == "default") return cont(expect(":"));
|
10498 |
+
if (type == "catch") return cont(pushlex("form"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);
|
|
|
|
|
10499 |
if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
|
10500 |
if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
|
|
|
10501 |
if (type == "async") return cont(statement)
|
10502 |
if (value == "@") return cont(expression, statement)
|
10503 |
return pass(pushlex("stat"), expression, expect(";"), poplex);
|
10504 |
}
|
10505 |
+
function maybeCatchBinding(type) {
|
10506 |
+
if (type == "(") return cont(funarg, expect(")"))
|
10507 |
+
}
|
10508 |
+
function expression(type, value) {
|
10509 |
+
return expressionInner(type, value, false);
|
10510 |
}
|
10511 |
+
function expressionNoComma(type, value) {
|
10512 |
+
return expressionInner(type, value, true);
|
10513 |
}
|
10514 |
function parenExpr(type) {
|
10515 |
if (type != "(") return pass()
|
10516 |
return cont(pushlex(")"), expression, expect(")"), poplex)
|
10517 |
}
|
10518 |
+
function expressionInner(type, value, noComma) {
|
10519 |
if (cx.state.fatArrowAt == cx.stream.start) {
|
10520 |
var body = noComma ? arrowBodyNoComma : arrowBody;
|
10521 |
+
if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, expect("=>"), body, popcontext);
|
10522 |
else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
|
10523 |
}
|
10524 |
|
10525 |
var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
|
10526 |
if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
|
10527 |
if (type == "function") return cont(functiondef, maybeop);
|
10528 |
+
if (type == "class" || (isTS && value == "interface")) { cx.marked = "keyword"; return cont(pushlex("form"), classExpression, poplex); }
|
10529 |
+
if (type == "keyword c" || type == "async") return cont(noComma ? expressionNoComma : expression);
|
10530 |
if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop);
|
10531 |
if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
|
10532 |
if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
|
10533 |
if (type == "{") return contCommasep(objprop, "}", null, maybeop);
|
10534 |
if (type == "quasi") return pass(quasi, maybeop);
|
10535 |
if (type == "new") return cont(maybeTarget(noComma));
|
10536 |
+
if (type == "import") return cont(expression);
|
10537 |
return cont();
|
10538 |
}
|
10539 |
function maybeexpression(type) {
|
10540 |
if (type.match(/[;\}\)\],]/)) return pass();
|
10541 |
return pass(expression);
|
10542 |
}
|
|
|
|
|
|
|
|
|
10543 |
|
10544 |
function maybeoperatorComma(type, value) {
|
10545 |
if (type == ",") return cont(expression);
|
10551 |
if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
|
10552 |
if (type == "operator") {
|
10553 |
if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me);
|
10554 |
+
if (isTS && value == "<" && cx.stream.match(/^([^>]|<.*?>)*>\s*\(/, false))
|
10555 |
+
return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me);
|
10556 |
if (value == "?") return cont(expression, expect(":"), expr);
|
10557 |
return cont(expr);
|
10558 |
}
|
10562 |
if (type == ".") return cont(property, me);
|
10563 |
if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
|
10564 |
if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) }
|
10565 |
+
if (type == "regexp") {
|
10566 |
+
cx.state.lastType = cx.marked = "operator"
|
10567 |
+
cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)
|
10568 |
+
return cont(expr)
|
10569 |
+
}
|
10570 |
}
|
10571 |
function quasi(type, value) {
|
10572 |
if (type != "quasi") return pass();
|
10615 |
} else if (type == "variable" || cx.style == "keyword") {
|
10616 |
cx.marked = "property";
|
10617 |
if (value == "get" || value == "set") return cont(getterSetter);
|
10618 |
+
var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params
|
10619 |
+
if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\s*:\s*/, false)))
|
10620 |
+
cx.state.fatArrowAt = cx.stream.pos + m[0].length
|
10621 |
return cont(afterprop);
|
10622 |
} else if (type == "number" || type == "string") {
|
10623 |
cx.marked = jsonldMode ? "property" : (cx.style + " property");
|
10624 |
return cont(afterprop);
|
10625 |
} else if (type == "jsonld-keyword") {
|
10626 |
return cont(afterprop);
|
10627 |
+
} else if (isTS && isModifier(value)) {
|
10628 |
+
cx.marked = "keyword"
|
10629 |
return cont(objprop)
|
10630 |
} else if (type == "[") {
|
10631 |
+
return cont(expression, maybetype, expect("]"), afterprop);
|
10632 |
} else if (type == "spread") {
|
10633 |
+
return cont(expressionNoComma, afterprop);
|
10634 |
+
} else if (value == "*") {
|
10635 |
+
cx.marked = "keyword";
|
10636 |
+
return cont(objprop);
|
10637 |
} else if (type == ":") {
|
10638 |
return pass(afterprop)
|
10639 |
}
|
10680 |
if (value == "?") return cont(maybetype);
|
10681 |
}
|
10682 |
}
|
10683 |
+
function mayberettype(type) {
|
10684 |
+
if (isTS && type == ":") {
|
10685 |
+
if (cx.stream.match(/^\s*\w+\s+is\b/, false)) return cont(expression, isKW, typeexpr)
|
10686 |
+
else return cont(typeexpr)
|
10687 |
+
}
|
10688 |
+
}
|
10689 |
+
function isKW(_, value) {
|
10690 |
+
if (value == "is") {
|
10691 |
+
cx.marked = "keyword"
|
10692 |
+
return cont()
|
10693 |
+
}
|
10694 |
+
}
|
10695 |
function typeexpr(type, value) {
|
10696 |
+
if (value == "keyof" || value == "typeof") {
|
10697 |
+
cx.marked = "keyword"
|
10698 |
+
return cont(value == "keyof" ? typeexpr : expressionNoComma)
|
10699 |
+
}
|
10700 |
+
if (type == "variable" || value == "void") {
|
10701 |
+
cx.marked = "type"
|
10702 |
+
return cont(afterType)
|
|
|
10703 |
}
|
10704 |
if (type == "string" || type == "number" || type == "atom") return cont(afterType);
|
10705 |
if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType)
|
10706 |
if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex, afterType)
|
10707 |
if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
|
10708 |
+
if (type == "<") return cont(commasep(typeexpr, ">"), typeexpr)
|
10709 |
}
|
10710 |
function maybeReturnType(type) {
|
10711 |
if (type == "=>") return cont(typeexpr)
|
10722 |
return cont(expression, maybetype, expect("]"), typeprop)
|
10723 |
}
|
10724 |
}
|
10725 |
+
function typearg(type, value) {
|
10726 |
+
if (type == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?") return cont(typearg)
|
10727 |
+
if (type == ":") return cont(typeexpr)
|
10728 |
+
return pass(typeexpr)
|
10729 |
}
|
10730 |
function afterType(type, value) {
|
10731 |
if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
|
10732 |
+
if (value == "|" || type == "." || value == "&") return cont(typeexpr)
|
10733 |
if (type == "[") return cont(expect("]"), afterType)
|
10734 |
+
if (value == "extends" || value == "implements") { cx.marked = "keyword"; return cont(typeexpr) }
|
10735 |
}
|
10736 |
function maybeTypeArgs(_, value) {
|
10737 |
if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
|
10738 |
}
|
10739 |
+
function typeparam() {
|
10740 |
+
return pass(typeexpr, maybeTypeDefault)
|
10741 |
+
}
|
10742 |
+
function maybeTypeDefault(_, value) {
|
10743 |
+
if (value == "=") return cont(typeexpr)
|
10744 |
+
}
|
10745 |
+
function vardef(_, value) {
|
10746 |
+
if (value == "enum") {cx.marked = "keyword"; return cont(enumdef)}
|
10747 |
return pass(pattern, maybetype, maybeAssign, vardefCont);
|
10748 |
}
|
10749 |
function pattern(type, value) {
|
10750 |
+
if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(pattern) }
|
10751 |
if (type == "variable") { register(value); return cont(); }
|
10752 |
if (type == "spread") return cont(pattern);
|
10753 |
if (type == "[") return contCommasep(pattern, "]");
|
10772 |
function maybeelse(type, value) {
|
10773 |
if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex);
|
10774 |
}
|
10775 |
+
function forspec(type, value) {
|
10776 |
+
if (value == "await") return cont(forspec);
|
10777 |
if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
|
10778 |
}
|
10779 |
function forspec1(type) {
|
10797 |
function functiondef(type, value) {
|
10798 |
if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
|
10799 |
if (type == "variable") {register(value); return cont(functiondef);}
|
10800 |
+
if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, statement, popcontext);
|
10801 |
+
if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondef)
|
10802 |
}
|
10803 |
+
function funarg(type, value) {
|
10804 |
+
if (value == "@") cont(expression, funarg)
|
10805 |
+
if (type == "spread") return cont(funarg);
|
10806 |
+
if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(funarg); }
|
10807 |
return pass(pattern, maybetype, maybeAssign);
|
10808 |
}
|
10809 |
function classExpression(type, value) {
|
10815 |
if (type == "variable") {register(value); return cont(classNameAfter);}
|
10816 |
}
|
10817 |
function classNameAfter(type, value) {
|
10818 |
+
if (value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, classNameAfter)
|
10819 |
+
if (value == "extends" || value == "implements" || (isTS && type == ",")) {
|
10820 |
+
if (value == "implements") cx.marked = "keyword";
|
10821 |
return cont(isTS ? typeexpr : expression, classNameAfter);
|
10822 |
+
}
|
10823 |
if (type == "{") return cont(pushlex("}"), classBody, poplex);
|
10824 |
}
|
10825 |
function classBody(type, value) {
|
10826 |
+
if (type == "async" ||
|
10827 |
(type == "variable" &&
|
10828 |
+
(value == "static" || value == "get" || value == "set" || (isTS && isModifier(value))) &&
|
10829 |
cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false))) {
|
10830 |
cx.marked = "keyword";
|
10831 |
return cont(classBody);
|
10832 |
}
|
10833 |
+
if (type == "variable" || cx.style == "keyword") {
|
10834 |
cx.marked = "property";
|
10835 |
return cont(isTS ? classfield : functiondef, classBody);
|
10836 |
}
|
10837 |
if (type == "[")
|
10838 |
+
return cont(expression, maybetype, expect("]"), isTS ? classfield : functiondef, classBody)
|
10839 |
if (value == "*") {
|
10840 |
cx.marked = "keyword";
|
10841 |
return cont(classBody);
|
10862 |
}
|
10863 |
function afterImport(type) {
|
10864 |
if (type == "string") return cont();
|
10865 |
+
if (type == "(") return pass(expression);
|
10866 |
return pass(importSpec, maybeMoreImports, maybeFrom);
|
10867 |
}
|
10868 |
function importSpec(type, value) {
|
10884 |
if (type == "]") return cont();
|
10885 |
return pass(commasep(expressionNoComma, "]"));
|
10886 |
}
|
10887 |
+
function enumdef() {
|
10888 |
+
return pass(pushlex("form"), pattern, expect("{"), pushlex("}"), commasep(enummember, "}"), poplex, poplex)
|
10889 |
+
}
|
10890 |
+
function enummember() {
|
10891 |
+
return pass(pattern, maybeAssign);
|
10892 |
+
}
|
10893 |
|
10894 |
function isContinuedStatement(state, textAfter) {
|
10895 |
return state.lastType == "operator" || state.lastType == "," ||
|
10899 |
|
10900 |
function expressionAllowed(stream, state, backUp) {
|
10901 |
return state.tokenize == tokenBase &&
|
10902 |
+
/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
|
10903 |
(state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
|
10904 |
}
|
10905 |
|
10913 |
cc: [],
|
10914 |
lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
|
10915 |
localVars: parserConfig.localVars,
|
10916 |
+
context: parserConfig.localVars && new Context(null, null, false),
|
10917 |
indented: basecolumn || 0
|
10918 |
};
|
10919 |
if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
|
10954 |
lexical = lexical.prev;
|
10955 |
var type = lexical.type, closing = firstChar == type;
|
10956 |
|
10957 |
+
if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info.length + 1 : 0);
|
10958 |
else if (type == "form" && firstChar == "{") return lexical.indented;
|
10959 |
else if (type == "form") return lexical.indented + indentUnit;
|
10960 |
else if (type == "stat")
|
10968 |
electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
|
10969 |
blockCommentStart: jsonMode ? null : "/*",
|
10970 |
blockCommentEnd: jsonMode ? null : "*/",
|
10971 |
+
blockCommentContinue: jsonMode ? null : " * ",
|
10972 |
lineComment: jsonMode ? null : "//",
|
10973 |
fold: "brace",
|
10974 |
closeBrackets: "()[]{}''\"\"``",
|
11002 |
});
|
11003 |
|
11004 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
11005 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
11006 |
|
11007 |
(function(mod) {
|
11008 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
11080 |
return ret("qualifier", "qualifier");
|
11081 |
} else if (/[:;{}\[\]\(\)]/.test(ch)) {
|
11082 |
return ret(null, ch);
|
11083 |
+
} else if (((ch == "u" || ch == "U") && stream.match(/rl(-prefix)?\(/i)) ||
|
11084 |
+
((ch == "d" || ch == "D") && stream.match("omain(", true, true)) ||
|
11085 |
+
((ch == "r" || ch == "R") && stream.match("egexp(", true, true))) {
|
11086 |
stream.backUp(1);
|
11087 |
state.tokenize = tokenParenthesized;
|
11088 |
return ret("property", "word");
|
11165 |
return pushContext(state, stream, "block");
|
11166 |
} else if (type == "}" && state.context.prev) {
|
11167 |
return popContext(state);
|
11168 |
+
} else if (supportsAtComponent && /@component/i.test(type)) {
|
11169 |
return pushContext(state, stream, "atComponentBlock");
|
11170 |
+
} else if (/^@(-moz-)?document$/i.test(type)) {
|
11171 |
return pushContext(state, stream, "documentTypes");
|
11172 |
+
} else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {
|
11173 |
return pushContext(state, stream, "atBlock");
|
11174 |
+
} else if (/^@(font-face|counter-style)/i.test(type)) {
|
11175 |
state.stateArg = type;
|
11176 |
return "restricted_atBlock_before";
|
11177 |
+
} else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {
|
11178 |
return "keyframes";
|
11179 |
} else if (type && type.charAt(0) == "@") {
|
11180 |
return pushContext(state, stream, "at");
|
11413 |
electricChars: "}",
|
11414 |
blockCommentStart: "/*",
|
11415 |
blockCommentEnd: "*/",
|
11416 |
+
blockCommentContinue: " * ",
|
11417 |
lineComment: lineComment,
|
11418 |
fold: "brace"
|
11419 |
};
|
11796 |
},
|
11797 |
"@": function(stream) {
|
11798 |
if (stream.eat("{")) return [null, "interpolation"];
|
11799 |
+
if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i, false)) return false;
|
11800 |
stream.eatWhile(/[\w\\\-]/);
|
11801 |
if (stream.match(/^\s*:/, false))
|
11802 |
return ["variable-2", "variable-definition"];
|
11835 |
});
|
11836 |
|
11837 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
11838 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
11839 |
|
11840 |
(function(mod) {
|
11841 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
11988 |
});
|
11989 |
|
11990 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
11991 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
11992 |
|
11993 |
(function(mod) {
|
11994 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
12205 |
indent: function(state, textAfter) {
|
12206 |
if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;
|
12207 |
var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
|
12208 |
+
var closing = firstChar == ctx.type;
|
12209 |
if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
|
12210 |
if (parserConfig.dontIndentStatements)
|
12211 |
while (ctx.type == "statement" && parserConfig.dontIndentStatements.test(ctx.info))
|
12212 |
ctx = ctx.prev
|
12213 |
if (hooks.indent) {
|
12214 |
+
var hook = hooks.indent(state, ctx, textAfter, indentUnit);
|
12215 |
if (typeof hook == "number") return hook
|
12216 |
}
|
|
|
12217 |
var switchBlock = ctx.prev && ctx.prev.info == "switch";
|
12218 |
if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {
|
12219 |
while (ctx.type != "top" && ctx.type != "}") ctx = ctx.prev
|
12233 |
electricInput: indentSwitch ? /^\s*(?:case .*?:|default:|\{\}?|\})$/ : /^\s*[{}]$/,
|
12234 |
blockCommentStart: "/*",
|
12235 |
blockCommentEnd: "*/",
|
12236 |
+
blockCommentContinue: " * ",
|
12237 |
lineComment: "//",
|
12238 |
fold: "brace"
|
12239 |
};
|
12363 |
blockKeywords: words("case do else for if switch while struct"),
|
12364 |
defKeywords: words("struct"),
|
12365 |
typeFirstDefinitions: true,
|
12366 |
+
atoms: words("NULL true false"),
|
12367 |
hooks: {"#": cppHook, "*": pointerHook},
|
12368 |
modeProps: {fold: ["brace", "include"]}
|
12369 |
});
|
12379 |
blockKeywords: words("catch class do else finally for if struct switch try while"),
|
12380 |
defKeywords: words("class namespace struct enum union"),
|
12381 |
typeFirstDefinitions: true,
|
12382 |
+
atoms: words("true false NULL"),
|
12383 |
dontIndentStatements: /^template$/,
|
12384 |
isIdentifierChar: /[\w\$_~\xa1-\uffff]/,
|
12385 |
hooks: {
|
12421 |
types: words("byte short int long float double boolean char void Boolean Byte Character Double Float " +
|
12422 |
"Integer Long Number Object Short String StringBuffer StringBuilder Void"),
|
12423 |
blockKeywords: words("catch class do else finally for if switch try while"),
|
12424 |
+
defKeywords: words("class interface enum @interface"),
|
12425 |
typeFirstDefinitions: true,
|
12426 |
atoms: words("true false null"),
|
12427 |
number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
|
12478 |
return "string";
|
12479 |
}
|
12480 |
|
12481 |
+
function tokenNestedComment(depth) {
|
12482 |
+
return function (stream, state) {
|
12483 |
+
var ch
|
12484 |
+
while (ch = stream.next()) {
|
12485 |
+
if (ch == "*" && stream.eat("/")) {
|
12486 |
+
if (depth == 1) {
|
12487 |
+
state.tokenize = null
|
12488 |
+
break
|
12489 |
+
} else {
|
12490 |
+
state.tokenize = tokenNestedComment(depth - 1)
|
12491 |
+
return state.tokenize(stream, state)
|
12492 |
+
}
|
12493 |
+
} else if (ch == "/" && stream.eat("*")) {
|
12494 |
+
state.tokenize = tokenNestedComment(depth + 1)
|
12495 |
+
return state.tokenize(stream, state)
|
12496 |
+
}
|
12497 |
+
}
|
12498 |
+
return "comment"
|
12499 |
+
}
|
12500 |
+
}
|
12501 |
+
|
12502 |
def("text/x-scala", {
|
12503 |
name: "clike",
|
12504 |
keywords: words(
|
12554 |
} else {
|
12555 |
return false
|
12556 |
}
|
12557 |
+
},
|
12558 |
+
|
12559 |
+
"/": function(stream, state) {
|
12560 |
+
if (!stream.eat("*")) return false
|
12561 |
+
state.tokenize = tokenNestedComment(1)
|
12562 |
+
return state.tokenize(stream, state)
|
12563 |
}
|
12564 |
},
|
12565 |
modeProps: {closeBrackets: {triples: '"'}}
|
12586 |
name: "clike",
|
12587 |
keywords: words(
|
12588 |
/*keywords*/
|
12589 |
+
"package as typealias class interface this super val operator " +
|
12590 |
+
"var fun for is in This throw return annotation " +
|
12591 |
"break continue object if else while do try when !in !is as? " +
|
12592 |
|
12593 |
/*soft keywords*/
|
12594 |
"file import where by get set abstract enum open inner override private public internal " +
|
12595 |
"protected catch finally out final vararg reified dynamic companion constructor init " +
|
12596 |
"sealed field property receiver param sparam lateinit data inline noinline tailrec " +
|
12597 |
+
"external annotation crossinline const operator infix suspend actual expect setparam"
|
12598 |
),
|
12599 |
types: words(
|
12600 |
/* package java.lang */
|
12601 |
"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
|
12602 |
"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
|
12603 |
"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
|
12604 |
+
"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray " +
|
12605 |
+
"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy " +
|
12606 |
+
"LazyThreadSafetyMode LongArray Nothing ShortArray Unit"
|
12607 |
),
|
12608 |
intendSwitch: false,
|
12609 |
indentStatements: false,
|
12610 |
multiLineStrings: true,
|
12611 |
+
number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
|
12612 |
blockKeywords: words("catch class do else finally for if where try while enum"),
|
12613 |
+
defKeywords: words("class val var object interface fun"),
|
12614 |
atoms: words("true false null this"),
|
12615 |
hooks: {
|
12616 |
+
"@": function(stream) {
|
12617 |
+
stream.eatWhile(/[\w\$_]/);
|
12618 |
+
return "meta";
|
12619 |
+
},
|
12620 |
'"': function(stream, state) {
|
12621 |
state.tokenize = tokenKotlinString(stream.match('""'));
|
12622 |
return state.tokenize(stream, state);
|
12623 |
+
},
|
12624 |
+
indent: function(state, ctx, textAfter, indentUnit) {
|
12625 |
+
var firstChar = textAfter && textAfter.charAt(0);
|
12626 |
+
if ((state.prevToken == "}" || state.prevToken == ")") && textAfter == "")
|
12627 |
+
return state.indented;
|
12628 |
+
if (state.prevToken == "operator" && textAfter != "}" ||
|
12629 |
+
state.prevToken == "variable" && firstChar == "." ||
|
12630 |
+
(state.prevToken == "}" || state.prevToken == ")") && firstChar == ".")
|
12631 |
+
return indentUnit * 2 + ctx.indented;
|
12632 |
+
if (ctx.align && ctx.type == "}")
|
12633 |
+
return ctx.indented + (state.context.type == (textAfter || "").charAt(0) ? 0 : indentUnit);
|
12634 |
}
|
12635 |
},
|
12636 |
modeProps: {closeBrackets: {triples: '"'}}
|
12823 |
});
|
12824 |
|
12825 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
12826 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
12827 |
|
12828 |
(function(mod) {
|
12829 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
12975 |
};
|
12976 |
|
12977 |
CodeMirror.defineMode("php", function(config, parserConfig) {
|
12978 |
+
var htmlMode = CodeMirror.getMode(config, (parserConfig && parserConfig.htmlMode) || "text/html");
|
12979 |
var phpMode = CodeMirror.getMode(config, phpConfig);
|
12980 |
|
12981 |
function dispatch(stream, state) {
|
13495 |
}));
|
13496 |
|
13497 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
13498 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
13499 |
|
13500 |
(function(mod) {
|
13501 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
13568 |
});
|
13569 |
|
13570 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
13571 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
13572 |
|
13573 |
(function(mod) {
|
13574 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
13588 |
+ (regexp.multiline ? "m" : "")
|
13589 |
}
|
13590 |
|
13591 |
+
function ensureFlags(regexp, flags) {
|
13592 |
+
var current = regexpFlags(regexp), target = current
|
13593 |
+
for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1)
|
13594 |
+
target += flags.charAt(i)
|
13595 |
+
return current == target ? regexp : new RegExp(regexp.source, target)
|
13596 |
}
|
13597 |
|
13598 |
function maybeMultiline(regexp) {
|
13600 |
}
|
13601 |
|
13602 |
function searchRegexpForward(doc, regexp, start) {
|
13603 |
+
regexp = ensureFlags(regexp, "g")
|
13604 |
for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {
|
13605 |
regexp.lastIndex = ch
|
13606 |
var string = doc.getLine(line), match = regexp.exec(string)
|
13614 |
function searchRegexpForwardMultiline(doc, regexp, start) {
|
13615 |
if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)
|
13616 |
|
13617 |
+
regexp = ensureFlags(regexp, "gm")
|
13618 |
var string, chunk = 1
|
13619 |
for (var line = start.line, last = doc.lastLine(); line <= last;) {
|
13620 |
// This grows the search buffer in exponentially-sized chunks
|
13623 |
// searching for something that has tons of matches), but at the
|
13624 |
// same time, the amount of retries is limited.
|
13625 |
for (var i = 0; i < chunk; i++) {
|
13626 |
+
if (line > last) break
|
13627 |
var curLine = doc.getLine(line++)
|
13628 |
string = string == null ? curLine : string + "\n" + curLine
|
13629 |
}
|
13654 |
}
|
13655 |
|
13656 |
function searchRegexpBackward(doc, regexp, start) {
|
13657 |
+
regexp = ensureFlags(regexp, "g")
|
13658 |
for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {
|
13659 |
var string = doc.getLine(line)
|
13660 |
if (ch > -1) string = string.slice(0, ch)
|
13667 |
}
|
13668 |
|
13669 |
function searchRegexpBackwardMultiline(doc, regexp, start) {
|
13670 |
+
regexp = ensureFlags(regexp, "gm")
|
13671 |
var string, chunk = 1
|
13672 |
for (var line = start.line, first = doc.firstLine(); line >= first;) {
|
13673 |
for (var i = 0; i < chunk; i++) {
|
13732 |
for (var i = 1; i < lines.length - 1; i++)
|
13733 |
if (fold(doc.getLine(line + i)) != lines[i]) continue search
|
13734 |
var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]
|
13735 |
+
if (endString.slice(0, lastLine.length) != lastLine) continue search
|
13736 |
return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),
|
13737 |
to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}
|
13738 |
}
|
13786 |
return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)
|
13787 |
}
|
13788 |
} else {
|
13789 |
+
query = ensureFlags(query, "gm")
|
13790 |
if (!options || options.multiline !== false)
|
13791 |
this.matches = function(reverse, pos) {
|
13792 |
return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)
|
13862 |
});
|
13863 |
|
13864 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
13865 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
13866 |
|
13867 |
// Define search commands. Depends on dialog.js or another
|
13868 |
// implementation of the openDialog method.
|
13961 |
return query;
|
13962 |
}
|
13963 |
|
|
|
|
|
|
|
13964 |
function startSearch(cm, state, query) {
|
13965 |
state.queryText = query;
|
13966 |
state.query = parseQuery(query);
|
13977 |
var state = getSearchState(cm);
|
13978 |
if (state.query) return findNext(cm, rev);
|
13979 |
var q = cm.getSelection() || state.lastQuery;
|
13980 |
+
if (q instanceof RegExp && q.source == "x^") q = null
|
13981 |
if (persistent && cm.openDialog) {
|
13982 |
var hiding = null
|
13983 |
var searchNext = function(query, event) {
|
13996 |
(hiding = dialog).style.opacity = .4
|
13997 |
})
|
13998 |
};
|
13999 |
+
persistentDialog(cm, getQueryDialog(cm), q, searchNext, function(event, query) {
|
14000 |
var keyName = CodeMirror.keyName(event)
|
14001 |
var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption("keyMap")][keyName]
|
14002 |
if (cmd == "findNext" || cmd == "findPrev" ||
|
14014 |
findNext(cm, rev);
|
14015 |
}
|
14016 |
} else {
|
14017 |
+
dialog(cm, getQueryDialog(cm), "Search for:", q, function(query) {
|
14018 |
if (query && !state.query) cm.operation(function() {
|
14019 |
startSearch(cm, state, query);
|
14020 |
state.posFrom = state.posTo = cm.getCursor();
|
14046 |
if (state.annotate) { state.annotate.clear(); state.annotate = null; }
|
14047 |
});}
|
14048 |
|
14049 |
+
|
14050 |
+
function getQueryDialog(cm) {
|
14051 |
+
return '<span class="CodeMirror-search-label">' + cm.phrase("Search:") + '</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">' + cm.phrase("(Use /re/ syntax for regexp search)") + '</span>';
|
14052 |
+
}
|
14053 |
+
function getReplaceQueryDialog(cm) {
|
14054 |
+
return ' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">' + cm.phrase("(Use /re/ syntax for regexp search)") + '</span>';
|
14055 |
+
}
|
14056 |
+
function getReplacementQueryDialog(cm) {
|
14057 |
+
return '<span class="CodeMirror-search-label">' + cm.phrase("With:") + '</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/>';
|
14058 |
+
}
|
14059 |
+
function getDoReplaceConfirm(cm) {
|
14060 |
+
return '<span class="CodeMirror-search-label">' + cm.phrase("Replace?") + '</span> <button>' + cm.phrase("Yes") + '</button> <button>' + cm.phrase("No") + '</button> <button>' + cm.phrase("All") + '</button> <button>' + cm.phrase("Stop") + '</button> ';
|
14061 |
+
}
|
14062 |
|
14063 |
function replaceAll(cm, query, text) {
|
14064 |
cm.operation(function() {
|
14074 |
function replace(cm, all) {
|
14075 |
if (cm.getOption("readOnly")) return;
|
14076 |
var query = cm.getSelection() || getSearchState(cm).lastQuery;
|
14077 |
+
var dialogText = '<span class="CodeMirror-search-label">' + (all ? cm.phrase("Replace all:") : cm.phrase("Replace:")) + '</span>';
|
14078 |
+
dialog(cm, dialogText + getReplaceQueryDialog(cm), dialogText, query, function(query) {
|
14079 |
if (!query) return;
|
14080 |
query = parseQuery(query);
|
14081 |
+
dialog(cm, getReplacementQueryDialog(cm), cm.phrase("Replace with:"), "", function(text) {
|
14082 |
text = parseString(text)
|
14083 |
if (all) {
|
14084 |
replaceAll(cm, query, text)
|
14094 |
}
|
14095 |
cm.setSelection(cursor.from(), cursor.to());
|
14096 |
cm.scrollIntoView({from: cursor.from(), to: cursor.to()});
|
14097 |
+
confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase("Replace?"),
|
14098 |
[function() {doReplace(match);}, advance,
|
14099 |
function() {replaceAll(cm, query, text)}]);
|
14100 |
};
|
14121 |
});
|
14122 |
|
14123 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14124 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
14125 |
|
14126 |
// Open simple dialogs on top of an editor. Relies on dialog.css.
|
14127 |
|
14147 |
} else { // Assuming it's a detached DOM element.
|
14148 |
dialog.appendChild(template);
|
14149 |
}
|
14150 |
+
CodeMirror.addClass(wrap, 'dialog-opened');
|
14151 |
return dialog;
|
14152 |
}
|
14153 |
|
14170 |
} else {
|
14171 |
if (closed) return;
|
14172 |
closed = true;
|
14173 |
+
CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
|
14174 |
dialog.parentNode.removeChild(dialog);
|
14175 |
me.focus();
|
14176 |
|
14226 |
function close() {
|
14227 |
if (closed) return;
|
14228 |
closed = true;
|
14229 |
+
CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
|
14230 |
dialog.parentNode.removeChild(dialog);
|
14231 |
me.focus();
|
14232 |
}
|
14266 |
if (closed) return;
|
14267 |
closed = true;
|
14268 |
clearTimeout(doneTimer);
|
14269 |
+
CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
|
14270 |
dialog.parentNode.removeChild(dialog);
|
14271 |
}
|
14272 |
|
14283 |
});
|
14284 |
|
14285 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14286 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
14287 |
|
14288 |
(function(mod) {
|
14289 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
14436 |
});
|
14437 |
|
14438 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14439 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
14440 |
|
14441 |
(function(mod) {
|
14442 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
14609 |
if (open == -1) return false
|
14610 |
var endLine = end == start ? startLine : self.getLine(end)
|
14611 |
var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);
|
|
|
|
|
|
|
|
|
14612 |
var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)
|
14613 |
if (close == -1 ||
|
14614 |
!/comment/.test(self.getTokenTypeAt(insideStart)) ||
|
14646 |
});
|
14647 |
|
14648 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14649 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
14650 |
|
14651 |
(function(mod) {
|
14652 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
14799 |
});
|
14800 |
|
14801 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14802 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
14803 |
|
14804 |
(function(mod) {
|
14805 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
14946 |
});
|
14947 |
|
14948 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
14949 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
14950 |
|
14951 |
(function(mod) {
|
14952 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
15084 |
CodeMirror.registerHelper("fold", "xml", function(cm, start) {
|
15085 |
var iter = new Iter(cm, start.line, 0);
|
15086 |
for (;;) {
|
15087 |
+
var openTag = toNextTag(iter)
|
15088 |
+
if (!openTag || iter.line != start.line) return
|
15089 |
+
var end = toTagEnd(iter)
|
15090 |
+
if (!end) return
|
15091 |
if (!openTag[1] && end != "selfClose") {
|
15092 |
var startPos = Pos(iter.line, iter.ch);
|
15093 |
var endPos = findMatchingClose(iter, openTag[2]);
|
15094 |
+
return endPos && cmp(endPos.from, startPos) > 0 ? {from: startPos, to: endPos.from} : null
|
15095 |
}
|
15096 |
}
|
15097 |
});
|
15131 |
});
|
15132 |
|
15133 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15134 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
15135 |
|
15136 |
(function(mod) {
|
15137 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
15180 |
});
|
15181 |
|
15182 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15183 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
15184 |
|
15185 |
(function(mod) {
|
15186 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
15283 |
}
|
15284 |
}
|
15285 |
|
|
|
15286 |
function doMatchBrackets(cm) {
|
15287 |
cm.operation(function() {
|
15288 |
+
if (cm.state.matchBrackets.currentlyHighlighted) {
|
15289 |
+
cm.state.matchBrackets.currentlyHighlighted();
|
15290 |
+
cm.state.matchBrackets.currentlyHighlighted = null;
|
15291 |
+
}
|
15292 |
+
cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);
|
15293 |
});
|
15294 |
}
|
15295 |
|
15296 |
CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
|
15297 |
if (old && old != CodeMirror.Init) {
|
15298 |
cm.off("cursorActivity", doMatchBrackets);
|
15299 |
+
if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) {
|
15300 |
+
cm.state.matchBrackets.currentlyHighlighted();
|
15301 |
+
cm.state.matchBrackets.currentlyHighlighted = null;
|
15302 |
+
}
|
15303 |
}
|
15304 |
if (val) {
|
15305 |
cm.state.matchBrackets = typeof val == "object" ? val : {};
|
15326 |
});
|
15327 |
|
15328 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15329 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
15330 |
|
15331 |
(function(mod) {
|
15332 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
15393 |
});
|
15394 |
|
15395 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15396 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
15397 |
|
15398 |
// Highlighting text that matches the selection
|
15399 |
//
|
15484 |
var state = cm.state.matchHighlighter;
|
15485 |
cm.addOverlay(state.overlay = makeOverlay(query, hasBoundary, style));
|
15486 |
if (state.options.annotateScrollbar && cm.showMatchesOnScrollbar) {
|
15487 |
+
var searchFor = hasBoundary ? new RegExp("\\b" + query.replace(/[\\\[.+*?(){|^$]/g, "\\$&") + "\\b") : query;
|
15488 |
state.matchesonscroll = cm.showMatchesOnScrollbar(searchFor, false,
|
15489 |
{className: "CodeMirror-selection-highlight-scrollbar"});
|
15490 |
}
|
15559 |
});
|
15560 |
|
15561 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15562 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
15563 |
|
15564 |
/**
|
15565 |
* Tag-closer extension for CodeMirror.
|
15613 |
function autoCloseGT(cm) {
|
15614 |
if (cm.getOption("disableInput")) return CodeMirror.Pass;
|
15615 |
var ranges = cm.listSelections(), replacements = [];
|
15616 |
+
var opt = cm.getOption("autoCloseTags");
|
15617 |
for (var i = 0; i < ranges.length; i++) {
|
15618 |
if (!ranges[i].empty()) return CodeMirror.Pass;
|
15619 |
var pos = ranges[i].head, tok = cm.getTokenAt(pos);
|
15620 |
var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
|
15621 |
if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;
|
15622 |
|
15623 |
+
var html = inner.mode.configuration == "html";
|
15624 |
var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
|
15625 |
var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);
|
15626 |
|
15642 |
newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};
|
15643 |
}
|
15644 |
|
15645 |
+
var dontIndentOnAutoClose = (typeof opt == "object" && opt.dontIndentOnAutoClose);
|
15646 |
for (var i = ranges.length - 1; i >= 0; i--) {
|
15647 |
var info = replacements[i];
|
15648 |
cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, "+insert");
|
15649 |
var sel = cm.listSelections().slice(0);
|
15650 |
sel[i] = {head: info.newPos, anchor: info.newPos};
|
15651 |
cm.setSelections(sel);
|
15652 |
+
if (!dontIndentOnAutoClose && info.indent) {
|
15653 |
cm.indentLine(info.newPos.line, null, true);
|
15654 |
cm.indentLine(info.newPos.line + 1, null, true);
|
15655 |
}
|
15659 |
function autoCloseCurrent(cm, typingSlash) {
|
15660 |
var ranges = cm.listSelections(), replacements = [];
|
15661 |
var head = typingSlash ? "/" : "</";
|
15662 |
+
var opt = cm.getOption("autoCloseTags");
|
15663 |
+
var dontIndentOnAutoClose = (typeof opt == "object" && opt.dontIndentOnSlash);
|
15664 |
for (var i = 0; i < ranges.length; i++) {
|
15665 |
if (!ranges[i].empty()) return CodeMirror.Pass;
|
15666 |
var pos = ranges[i].head, tok = cm.getTokenAt(pos);
|
15691 |
}
|
15692 |
cm.replaceSelections(replacements);
|
15693 |
ranges = cm.listSelections();
|
15694 |
+
if (!dontIndentOnAutoClose) {
|
15695 |
+
for (var i = 0; i < ranges.length; i++)
|
15696 |
+
if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)
|
15697 |
+
cm.indentLine(ranges[i].head.line);
|
15698 |
+
}
|
15699 |
}
|
15700 |
|
15701 |
function autoCloseSlash(cm) {
|
15735 |
});
|
15736 |
|
15737 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15738 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
15739 |
|
15740 |
(function(mod) {
|
15741 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
15759 |
cm.state.closeBrackets = null;
|
15760 |
}
|
15761 |
if (val) {
|
15762 |
+
ensureBound(getOption(val, "pairs"))
|
15763 |
cm.state.closeBrackets = val;
|
15764 |
cm.addKeyMap(keyMap);
|
15765 |
}
|
15771 |
return defaults[name];
|
15772 |
}
|
15773 |
|
|
|
15774 |
var keyMap = {Backspace: handleBackspace, Enter: handleEnter};
|
15775 |
+
function ensureBound(chars) {
|
15776 |
+
for (var i = 0; i < chars.length; i++) {
|
15777 |
+
var ch = chars.charAt(i), key = "'" + ch + "'"
|
15778 |
+
if (!keyMap[key]) keyMap[key] = handler(ch)
|
15779 |
+
}
|
15780 |
+
}
|
15781 |
+
ensureBound(defaults.pairs + "`")
|
15782 |
|
15783 |
function handler(ch) {
|
15784 |
return function(cm) { return handleChar(cm, ch); };
|
15820 |
if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;
|
15821 |
}
|
15822 |
cm.operation(function() {
|
15823 |
+
var linesep = cm.lineSeparator() || "\n";
|
15824 |
+
cm.replaceSelection(linesep + linesep, null);
|
15825 |
cm.execCommand("goCharLeft");
|
15826 |
ranges = cm.listSelections();
|
15827 |
for (var i = 0; i < ranges.length; i++) {
|
15865 |
else
|
15866 |
curType = "skip";
|
15867 |
} else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&
|
15868 |
+
cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) {
|
15869 |
+
if (cur.ch > 2 && /\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass;
|
15870 |
curType = "addFour";
|
15871 |
} else if (identical) {
|
15872 |
+
var prev = cur.ch == 0 ? " " : cm.getRange(Pos(cur.line, cur.ch - 1), cur)
|
15873 |
+
if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = "both";
|
15874 |
else return CodeMirror.Pass;
|
15875 |
+
} else if (opening) {
|
|
|
|
|
15876 |
curType = "both";
|
15877 |
} else {
|
15878 |
return CodeMirror.Pass;
|
15909 |
});
|
15910 |
}
|
15911 |
|
|
|
|
|
|
|
|
|
|
|
15912 |
function charsAround(cm, pos) {
|
15913 |
var str = cm.getRange(Pos(pos.line, pos.ch - 1),
|
15914 |
Pos(pos.line, pos.ch + 1));
|
15915 |
return str.length == 2 ? str : null;
|
15916 |
}
|
15917 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15918 |
function stringStartsAfter(cm, pos) {
|
15919 |
var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))
|
15920 |
+
return /\bstring/.test(token.type) && token.start == pos.ch &&
|
15921 |
+
(pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos)))
|
15922 |
}
|
15923 |
});
|
15924 |
|
15925 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
15926 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
15927 |
|
15928 |
// A rough approximation of Sublime Text's keybindings
|
15929 |
// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js
|
15938 |
})(function(CodeMirror) {
|
15939 |
"use strict";
|
15940 |
|
|
|
15941 |
var cmds = CodeMirror.commands;
|
15942 |
var Pos = CodeMirror.Pos;
|
|
|
|
|
15943 |
|
15944 |
// This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.
|
15945 |
function findPosSubword(doc, start, dir) {
|
15973 |
});
|
15974 |
}
|
15975 |
|
15976 |
+
cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); };
|
15977 |
+
cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); };
|
|
|
|
|
15978 |
|
15979 |
+
cmds.scrollLineUp = function(cm) {
|
|
|
|
|
|
|
|
|
15980 |
var info = cm.getScrollInfo();
|
15981 |
if (!cm.somethingSelected()) {
|
15982 |
var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local");
|
15985 |
}
|
15986 |
cm.scrollTo(null, info.top - cm.defaultTextHeight());
|
15987 |
};
|
15988 |
+
cmds.scrollLineDown = function(cm) {
|
15989 |
var info = cm.getScrollInfo();
|
15990 |
if (!cm.somethingSelected()) {
|
15991 |
var visibleTopLine = cm.lineAtHeight(info.top, "local")+1;
|
15995 |
cm.scrollTo(null, info.top + cm.defaultTextHeight());
|
15996 |
};
|
15997 |
|
15998 |
+
cmds.splitSelectionByLine = function(cm) {
|
15999 |
var ranges = cm.listSelections(), lineRanges = [];
|
16000 |
for (var i = 0; i < ranges.length; i++) {
|
16001 |
var from = ranges[i].from(), to = ranges[i].to();
|
16007 |
cm.setSelections(lineRanges, 0);
|
16008 |
};
|
16009 |
|
16010 |
+
cmds.singleSelectionTop = function(cm) {
|
|
|
|
|
16011 |
var range = cm.listSelections()[0];
|
16012 |
cm.setSelection(range.anchor, range.head, {scroll: false});
|
16013 |
};
|
16014 |
|
16015 |
+
cmds.selectLine = function(cm) {
|
16016 |
var ranges = cm.listSelections(), extended = [];
|
16017 |
for (var i = 0; i < ranges.length; i++) {
|
16018 |
var range = ranges[i];
|
16022 |
cm.setSelections(extended);
|
16023 |
};
|
16024 |
|
|
|
|
|
16025 |
function insertLine(cm, above) {
|
16026 |
if (cm.isReadOnly()) return CodeMirror.Pass
|
16027 |
cm.operation(function() {
|
16040 |
cm.execCommand("indentAuto");
|
16041 |
}
|
16042 |
|
16043 |
+
cmds.insertLineAfter = function(cm) { return insertLine(cm, false); };
|
16044 |
|
16045 |
+
cmds.insertLineBefore = function(cm) { return insertLine(cm, true); };
|
16046 |
|
16047 |
function wordAt(cm, pos) {
|
16048 |
var start = pos.ch, end = start, line = cm.getLine(pos.line);
|
16051 |
return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};
|
16052 |
}
|
16053 |
|
16054 |
+
cmds.selectNextOccurrence = function(cm) {
|
16055 |
var from = cm.getCursor("from"), to = cm.getCursor("to");
|
16056 |
var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;
|
16057 |
if (CodeMirror.cmpPos(from, to) == 0) {
|
16080 |
var ranges = cm.listSelections(), newRanges = [];
|
16081 |
for (var i = 0; i < ranges.length; i++) {
|
16082 |
var range = ranges[i];
|
16083 |
+
var newAnchor = cm.findPosV(
|
16084 |
+
range.anchor, dir, "line", range.anchor.goalColumn);
|
16085 |
+
var newHead = cm.findPosV(
|
16086 |
+
range.head, dir, "line", range.head.goalColumn);
|
16087 |
+
newAnchor.goalColumn = range.anchor.goalColumn != null ?
|
16088 |
+
range.anchor.goalColumn : cm.cursorCoords(range.anchor, "div").left;
|
16089 |
+
newHead.goalColumn = range.head.goalColumn != null ?
|
16090 |
+
range.head.goalColumn : cm.cursorCoords(range.head, "div").left;
|
16091 |
var newRange = {anchor: newAnchor, head: newHead};
|
16092 |
newRanges.push(range);
|
16093 |
newRanges.push(newRange);
|
16094 |
}
|
16095 |
cm.setSelections(newRanges);
|
16096 |
}
|
16097 |
+
cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); };
|
16098 |
+
cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); };
|
|
|
|
|
16099 |
|
16100 |
function isSelectedRange(ranges, from, to) {
|
16101 |
for (var i = 0; i < ranges.length; i++)
|
16113 |
var closing = cm.scanForBracket(pos, 1);
|
16114 |
if (!closing) return false;
|
16115 |
if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {
|
16116 |
+
var startPos = Pos(opening.pos.line, opening.pos.ch + 1);
|
16117 |
+
if (CodeMirror.cmpPos(startPos, range.from()) == 0 &&
|
16118 |
+
CodeMirror.cmpPos(closing.pos, range.to()) == 0) {
|
16119 |
+
opening = cm.scanForBracket(opening.pos, -1);
|
16120 |
+
if (!opening) return false;
|
16121 |
+
} else {
|
16122 |
+
newRanges.push({anchor: startPos, head: closing.pos});
|
16123 |
+
break;
|
16124 |
+
}
|
16125 |
}
|
16126 |
pos = Pos(closing.pos.line, closing.pos.ch + 1);
|
16127 |
}
|
16130 |
return true;
|
16131 |
}
|
16132 |
|
16133 |
+
cmds.selectScope = function(cm) {
|
16134 |
selectBetweenBrackets(cm) || cm.execCommand("selectAll");
|
16135 |
};
|
16136 |
+
cmds.selectBetweenBrackets = function(cm) {
|
16137 |
if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;
|
16138 |
};
|
16139 |
|
16140 |
+
cmds.goToBracket = function(cm) {
|
16141 |
cm.extendSelectionsBy(function(range) {
|
16142 |
var next = cm.scanForBracket(range.head, 1);
|
16143 |
if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;
|
16146 |
});
|
16147 |
};
|
16148 |
|
16149 |
+
cmds.swapLineUp = function(cm) {
|
|
|
|
|
16150 |
if (cm.isReadOnly()) return CodeMirror.Pass
|
16151 |
var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];
|
16152 |
for (var i = 0; i < ranges.length; i++) {
|
16173 |
});
|
16174 |
};
|
16175 |
|
16176 |
+
cmds.swapLineDown = function(cm) {
|
16177 |
if (cm.isReadOnly()) return CodeMirror.Pass
|
16178 |
var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;
|
16179 |
for (var i = ranges.length - 1; i >= 0; i--) {
|
16197 |
});
|
16198 |
};
|
16199 |
|
16200 |
+
cmds.toggleCommentIndented = function(cm) {
|
16201 |
cm.toggleComment({ indent: true });
|
16202 |
}
|
16203 |
|
16204 |
+
cmds.joinLines = function(cm) {
|
16205 |
var ranges = cm.listSelections(), joined = [];
|
16206 |
for (var i = 0; i < ranges.length; i++) {
|
16207 |
var range = ranges[i], from = range.from();
|
16229 |
});
|
16230 |
};
|
16231 |
|
16232 |
+
cmds.duplicateLine = function(cm) {
|
16233 |
cm.operation(function() {
|
16234 |
var rangeCount = cm.listSelections().length;
|
16235 |
for (var i = 0; i < rangeCount; i++) {
|
16243 |
});
|
16244 |
};
|
16245 |
|
|
|
16246 |
|
16247 |
function sortLines(cm, caseSensitive) {
|
16248 |
if (cm.isReadOnly()) return CodeMirror.Pass
|
16280 |
});
|
16281 |
}
|
16282 |
|
16283 |
+
cmds.sortLines = function(cm) { sortLines(cm, true); };
|
16284 |
+
cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false); };
|
16285 |
|
16286 |
+
cmds.nextBookmark = function(cm) {
|
16287 |
var marks = cm.state.sublimeBookmarks;
|
16288 |
if (marks) while (marks.length) {
|
16289 |
var current = marks.shift();
|
16295 |
}
|
16296 |
};
|
16297 |
|
16298 |
+
cmds.prevBookmark = function(cm) {
|
16299 |
var marks = cm.state.sublimeBookmarks;
|
16300 |
if (marks) while (marks.length) {
|
16301 |
marks.unshift(marks.pop());
|
16307 |
}
|
16308 |
};
|
16309 |
|
16310 |
+
cmds.toggleBookmark = function(cm) {
|
16311 |
var ranges = cm.listSelections();
|
16312 |
var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);
|
16313 |
for (var i = 0; i < ranges.length; i++) {
|
16314 |
var from = ranges[i].from(), to = ranges[i].to();
|
16315 |
+
var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to);
|
16316 |
for (var j = 0; j < found.length; j++) {
|
16317 |
if (found[j].sublimeBookmark) {
|
16318 |
found[j].clear();
|
16327 |
}
|
16328 |
};
|
16329 |
|
16330 |
+
cmds.clearBookmarks = function(cm) {
|
16331 |
var marks = cm.state.sublimeBookmarks;
|
16332 |
if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();
|
16333 |
marks.length = 0;
|
16334 |
};
|
16335 |
|
16336 |
+
cmds.selectBookmarks = function(cm) {
|
16337 |
var marks = cm.state.sublimeBookmarks, ranges = [];
|
16338 |
if (marks) for (var i = 0; i < marks.length; i++) {
|
16339 |
var found = marks[i].find();
|
16346 |
cm.setSelections(ranges, 0);
|
16347 |
};
|
16348 |
|
|
|
|
|
|
|
|
|
16349 |
function modifyWordOrSelection(cm, mod) {
|
16350 |
cm.operation(function() {
|
16351 |
var ranges = cm.listSelections(), indices = [], replacements = [];
|
16365 |
});
|
16366 |
}
|
16367 |
|
16368 |
+
cmds.smartBackspace = function(cm) {
|
|
|
|
|
16369 |
if (cm.somethingSelected()) return CodeMirror.Pass;
|
16370 |
|
16371 |
cm.operation(function() {
|
16393 |
});
|
16394 |
};
|
16395 |
|
16396 |
+
cmds.delLineRight = function(cm) {
|
16397 |
cm.operation(function() {
|
16398 |
var ranges = cm.listSelections();
|
16399 |
for (var i = ranges.length - 1; i >= 0; i--)
|
16402 |
});
|
16403 |
};
|
16404 |
|
16405 |
+
cmds.upcaseAtCursor = function(cm) {
|
16406 |
modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });
|
16407 |
};
|
16408 |
+
cmds.downcaseAtCursor = function(cm) {
|
16409 |
modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });
|
16410 |
};
|
16411 |
|
16412 |
+
cmds.setSublimeMark = function(cm) {
|
16413 |
if (cm.state.sublimeMark) cm.state.sublimeMark.clear();
|
16414 |
cm.state.sublimeMark = cm.setBookmark(cm.getCursor());
|
16415 |
};
|
16416 |
+
cmds.selectToSublimeMark = function(cm) {
|
16417 |
var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
|
16418 |
if (found) cm.setSelection(cm.getCursor(), found);
|
16419 |
};
|
16420 |
+
cmds.deleteToSublimeMark = function(cm) {
|
16421 |
var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
|
16422 |
if (found) {
|
16423 |
var from = cm.getCursor(), to = found;
|
16426 |
cm.replaceRange("", from, to);
|
16427 |
}
|
16428 |
};
|
16429 |
+
cmds.swapWithSublimeMark = function(cm) {
|
16430 |
var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
|
16431 |
if (found) {
|
16432 |
cm.state.sublimeMark.clear();
|
16434 |
cm.setCursor(found);
|
16435 |
}
|
16436 |
};
|
16437 |
+
cmds.sublimeYank = function(cm) {
|
16438 |
if (cm.state.sublimeKilled != null)
|
16439 |
cm.replaceSelection(cm.state.sublimeKilled, null, "paste");
|
16440 |
};
|
16441 |
|
16442 |
+
cmds.showInCenter = function(cm) {
|
|
|
16443 |
var pos = cm.cursorCoords(null, "local");
|
16444 |
cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);
|
16445 |
};
|
16446 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16447 |
function getTarget(cm) {
|
16448 |
var from = cm.getCursor("from"), to = cm.getCursor("to");
|
16449 |
if (CodeMirror.cmpPos(from, to) == 0) {
|
16472 |
cm.setSelection(target.from, target.to);
|
16473 |
}
|
16474 |
};
|
16475 |
+
cmds.findUnder = function(cm) { findAndGoTo(cm, true); };
|
16476 |
+
cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); };
|
16477 |
+
cmds.findAllUnder = function(cm) {
|
16478 |
var target = getTarget(cm);
|
16479 |
if (!target) return;
|
16480 |
var cur = cm.getSearchCursor(target.query);
|
16488 |
cm.setSelections(matches, primaryIndex);
|
16489 |
};
|
16490 |
|
|
|
|
|
|
|
16491 |
|
16492 |
+
var keyMap = CodeMirror.keyMap;
|
16493 |
+
keyMap.macSublime = {
|
16494 |
+
"Cmd-Left": "goLineStartSmart",
|
16495 |
+
"Shift-Tab": "indentLess",
|
16496 |
+
"Shift-Ctrl-K": "deleteLine",
|
16497 |
+
"Alt-Q": "wrapLines",
|
16498 |
+
"Ctrl-Left": "goSubwordLeft",
|
16499 |
+
"Ctrl-Right": "goSubwordRight",
|
16500 |
+
"Ctrl-Alt-Up": "scrollLineUp",
|
16501 |
+
"Ctrl-Alt-Down": "scrollLineDown",
|
16502 |
+
"Cmd-L": "selectLine",
|
16503 |
+
"Shift-Cmd-L": "splitSelectionByLine",
|
16504 |
+
"Esc": "singleSelectionTop",
|
16505 |
+
"Cmd-Enter": "insertLineAfter",
|
16506 |
+
"Shift-Cmd-Enter": "insertLineBefore",
|
16507 |
+
"Cmd-D": "selectNextOccurrence",
|
16508 |
+
"Shift-Cmd-Space": "selectScope",
|
16509 |
+
"Shift-Cmd-M": "selectBetweenBrackets",
|
16510 |
+
"Cmd-M": "goToBracket",
|
16511 |
+
"Cmd-Ctrl-Up": "swapLineUp",
|
16512 |
+
"Cmd-Ctrl-Down": "swapLineDown",
|
16513 |
+
"Cmd-/": "toggleCommentIndented",
|
16514 |
+
"Cmd-J": "joinLines",
|
16515 |
+
"Shift-Cmd-D": "duplicateLine",
|
16516 |
+
"F9": "sortLines",
|
16517 |
+
"Cmd-F9": "sortLinesInsensitive",
|
16518 |
+
"F2": "nextBookmark",
|
16519 |
+
"Shift-F2": "prevBookmark",
|
16520 |
+
"Cmd-F2": "toggleBookmark",
|
16521 |
+
"Shift-Cmd-F2": "clearBookmarks",
|
16522 |
+
"Alt-F2": "selectBookmarks",
|
16523 |
+
"Backspace": "smartBackspace",
|
16524 |
+
"Cmd-K Cmd-K": "delLineRight",
|
16525 |
+
"Cmd-K Cmd-U": "upcaseAtCursor",
|
16526 |
+
"Cmd-K Cmd-L": "downcaseAtCursor",
|
16527 |
+
"Cmd-K Cmd-Space": "setSublimeMark",
|
16528 |
+
"Cmd-K Cmd-A": "selectToSublimeMark",
|
16529 |
+
"Cmd-K Cmd-W": "deleteToSublimeMark",
|
16530 |
+
"Cmd-K Cmd-X": "swapWithSublimeMark",
|
16531 |
+
"Cmd-K Cmd-Y": "sublimeYank",
|
16532 |
+
"Cmd-K Cmd-C": "showInCenter",
|
16533 |
+
"Cmd-K Cmd-G": "clearBookmarks",
|
16534 |
+
"Cmd-K Cmd-Backspace": "delLineLeft",
|
16535 |
+
"Cmd-K Cmd-0": "unfoldAll",
|
16536 |
+
"Cmd-K Cmd-J": "unfoldAll",
|
16537 |
+
"Ctrl-Shift-Up": "addCursorToPrevLine",
|
16538 |
+
"Ctrl-Shift-Down": "addCursorToNextLine",
|
16539 |
+
"Cmd-F3": "findUnder",
|
16540 |
+
"Shift-Cmd-F3": "findUnderPrevious",
|
16541 |
+
"Alt-F3": "findAllUnder",
|
16542 |
+
"Shift-Cmd-[": "fold",
|
16543 |
+
"Shift-Cmd-]": "unfold",
|
16544 |
+
"Cmd-I": "findIncremental",
|
16545 |
+
"Shift-Cmd-I": "findIncrementalReverse",
|
16546 |
+
"Cmd-H": "replace",
|
16547 |
+
"F3": "findNext",
|
16548 |
+
"Shift-F3": "findPrev",
|
16549 |
+
"fallthrough": "macDefault"
|
16550 |
+
};
|
16551 |
+
CodeMirror.normalizeKeyMap(keyMap.macSublime);
|
16552 |
+
|
16553 |
+
keyMap.pcSublime = {
|
16554 |
+
"Shift-Tab": "indentLess",
|
16555 |
+
"Shift-Ctrl-K": "deleteLine",
|
16556 |
+
"Alt-Q": "wrapLines",
|
16557 |
+
"Ctrl-T": "transposeChars",
|
16558 |
+
"Alt-Left": "goSubwordLeft",
|
16559 |
+
"Alt-Right": "goSubwordRight",
|
16560 |
+
"Ctrl-Up": "scrollLineUp",
|
16561 |
+
"Ctrl-Down": "scrollLineDown",
|
16562 |
+
"Ctrl-L": "selectLine",
|
16563 |
+
"Shift-Ctrl-L": "splitSelectionByLine",
|
16564 |
+
"Esc": "singleSelectionTop",
|
16565 |
+
"Ctrl-Enter": "insertLineAfter",
|
16566 |
+
"Shift-Ctrl-Enter": "insertLineBefore",
|
16567 |
+
"Ctrl-D": "selectNextOccurrence",
|
16568 |
+
"Shift-Ctrl-Space": "selectScope",
|
16569 |
+
"Shift-Ctrl-M": "selectBetweenBrackets",
|
16570 |
+
"Ctrl-M": "goToBracket",
|
16571 |
+
"Shift-Ctrl-Up": "swapLineUp",
|
16572 |
+
"Shift-Ctrl-Down": "swapLineDown",
|
16573 |
+
"Ctrl-/": "toggleCommentIndented",
|
16574 |
+
"Ctrl-J": "joinLines",
|
16575 |
+
"Shift-Ctrl-D": "duplicateLine",
|
16576 |
+
"F9": "sortLines",
|
16577 |
+
"Ctrl-F9": "sortLinesInsensitive",
|
16578 |
+
"F2": "nextBookmark",
|
16579 |
+
"Shift-F2": "prevBookmark",
|
16580 |
+
"Ctrl-F2": "toggleBookmark",
|
16581 |
+
"Shift-Ctrl-F2": "clearBookmarks",
|
16582 |
+
"Alt-F2": "selectBookmarks",
|
16583 |
+
"Backspace": "smartBackspace",
|
16584 |
+
"Ctrl-K Ctrl-K": "delLineRight",
|
16585 |
+
"Ctrl-K Ctrl-U": "upcaseAtCursor",
|
16586 |
+
"Ctrl-K Ctrl-L": "downcaseAtCursor",
|
16587 |
+
"Ctrl-K Ctrl-Space": "setSublimeMark",
|
16588 |
+
"Ctrl-K Ctrl-A": "selectToSublimeMark",
|
16589 |
+
"Ctrl-K Ctrl-W": "deleteToSublimeMark",
|
16590 |
+
"Ctrl-K Ctrl-X": "swapWithSublimeMark",
|
16591 |
+
"Ctrl-K Ctrl-Y": "sublimeYank",
|
16592 |
+
"Ctrl-K Ctrl-C": "showInCenter",
|
16593 |
+
"Ctrl-K Ctrl-G": "clearBookmarks",
|
16594 |
+
"Ctrl-K Ctrl-Backspace": "delLineLeft",
|
16595 |
+
"Ctrl-K Ctrl-0": "unfoldAll",
|
16596 |
+
"Ctrl-K Ctrl-J": "unfoldAll",
|
16597 |
+
"Ctrl-Alt-Up": "addCursorToPrevLine",
|
16598 |
+
"Ctrl-Alt-Down": "addCursorToNextLine",
|
16599 |
+
"Ctrl-F3": "findUnder",
|
16600 |
+
"Shift-Ctrl-F3": "findUnderPrevious",
|
16601 |
+
"Alt-F3": "findAllUnder",
|
16602 |
+
"Shift-Ctrl-[": "fold",
|
16603 |
+
"Shift-Ctrl-]": "unfold",
|
16604 |
+
"Ctrl-I": "findIncremental",
|
16605 |
+
"Shift-Ctrl-I": "findIncrementalReverse",
|
16606 |
+
"Ctrl-H": "replace",
|
16607 |
+
"F3": "findNext",
|
16608 |
+
"Shift-F3": "findPrev",
|
16609 |
+
"fallthrough": "pcDefault"
|
16610 |
+
};
|
16611 |
+
CodeMirror.normalizeKeyMap(keyMap.pcSublime);
|
16612 |
|
16613 |
+
var mac = keyMap.default == keyMap.macDefault;
|
16614 |
+
keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime;
|
16615 |
});
|
16616 |
|
16617 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
16618 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
16619 |
|
16620 |
(function(mod) {
|
16621 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
16646 |
|
16647 |
var lastKill = null;
|
16648 |
|
16649 |
+
function kill(cm, from, to, ring, text) {
|
16650 |
if (text == null) text = cm.getRange(from, to);
|
16651 |
|
16652 |
+
if (ring == "grow" && lastKill && lastKill.cm == cm && posEq(from, lastKill.pos) && cm.isClean(lastKill.gen))
|
16653 |
growRingTop(text);
|
16654 |
+
else if (ring !== false)
|
16655 |
addToRing(text);
|
16656 |
cm.replaceRange("", from, to, "+delete");
|
16657 |
|
16658 |
+
if (ring == "grow") lastKill = {cm: cm, pos: from, gen: cm.changeGeneration()};
|
16659 |
else lastKill = null;
|
16660 |
}
|
16661 |
|
16767 |
return f;
|
16768 |
}
|
16769 |
|
16770 |
+
function killTo(cm, by, dir, ring) {
|
16771 |
var selections = cm.listSelections(), cursor;
|
16772 |
var i = selections.length;
|
16773 |
while (i--) {
|
16774 |
cursor = selections[i].head;
|
16775 |
+
kill(cm, cursor, findEnd(cm, cursor, by, dir), ring);
|
16776 |
}
|
16777 |
}
|
16778 |
|
16779 |
+
function killRegion(cm, ring) {
|
16780 |
if (cm.somethingSelected()) {
|
16781 |
var selections = cm.listSelections(), selection;
|
16782 |
var i = selections.length;
|
16783 |
while (i--) {
|
16784 |
selection = selections[i];
|
16785 |
+
kill(cm, selection.anchor, selection.head, ring);
|
16786 |
}
|
16787 |
return true;
|
16788 |
}
|
16892 |
// Actual keymap
|
16893 |
|
16894 |
var keyMap = CodeMirror.keyMap.emacs = CodeMirror.normalizeKeyMap({
|
16895 |
+
"Ctrl-W": function(cm) {kill(cm, cm.getCursor("start"), cm.getCursor("end"), true);},
|
16896 |
"Ctrl-K": repeated(function(cm) {
|
16897 |
var start = cm.getCursor(), end = cm.clipPos(Pos(start.line));
|
16898 |
var text = cm.getRange(start, end);
|
16900 |
text += "\n";
|
16901 |
end = Pos(start.line + 1, 0);
|
16902 |
}
|
16903 |
+
kill(cm, start, end, "grow", text);
|
16904 |
}),
|
16905 |
"Alt-W": function(cm) {
|
16906 |
addToRing(cm.getSelection());
|
16917 |
|
16918 |
"Ctrl-F": move(byChar, 1), "Ctrl-B": move(byChar, -1),
|
16919 |
"Right": move(byChar, 1), "Left": move(byChar, -1),
|
16920 |
+
"Ctrl-D": function(cm) { killTo(cm, byChar, 1, false); },
|
16921 |
+
"Delete": function(cm) { killRegion(cm, false) || killTo(cm, byChar, 1, false); },
|
16922 |
+
"Ctrl-H": function(cm) { killTo(cm, byChar, -1, false); },
|
16923 |
+
"Backspace": function(cm) { killRegion(cm, false) || killTo(cm, byChar, -1, false); },
|
16924 |
|
16925 |
"Alt-F": move(byWord, 1), "Alt-B": move(byWord, -1),
|
16926 |
+
"Alt-Right": move(byWord, 1), "Alt-Left": move(byWord, -1),
|
16927 |
+
"Alt-D": function(cm) { killTo(cm, byWord, 1, "grow"); },
|
16928 |
+
"Alt-Backspace": function(cm) { killTo(cm, byWord, -1, "grow"); },
|
16929 |
|
16930 |
"Ctrl-N": move(byLine, 1), "Ctrl-P": move(byLine, -1),
|
16931 |
"Down": move(byLine, 1), "Up": move(byLine, -1),
|
16938 |
"Ctrl-Up": move(byParagraph, -1), "Ctrl-Down": move(byParagraph, 1),
|
16939 |
|
16940 |
"Alt-A": move(bySentence, -1), "Alt-E": move(bySentence, 1),
|
16941 |
+
"Alt-K": function(cm) { killTo(cm, bySentence, 1, "grow"); },
|
16942 |
|
16943 |
+
"Ctrl-Alt-K": function(cm) { killTo(cm, byExpr, 1, "grow"); },
|
16944 |
+
"Ctrl-Alt-Backspace": function(cm) { killTo(cm, byExpr, -1, "grow"); },
|
16945 |
+
"Ctrl-Alt-F": move(byExpr, 1), "Ctrl-Alt-B": move(byExpr, -1, "grow"),
|
16946 |
|
16947 |
"Shift-Ctrl-Alt-2": function(cm) {
|
16948 |
var cursor = cm.getCursor();
|
17015 |
"Ctrl-X F": "open",
|
17016 |
"Ctrl-X U": repeated("undo"),
|
17017 |
"Ctrl-X K": "close",
|
17018 |
+
"Ctrl-X Delete": function(cm) { kill(cm, cm.getCursor(), bySentence(cm, cm.getCursor(), 1), "grow"); },
|
17019 |
"Ctrl-X H": "selectAll",
|
17020 |
|
17021 |
"Ctrl-Q Tab": repeated("insertTab"),
|
17033 |
});
|
17034 |
|
17035 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
17036 |
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
17037 |
|
17038 |
/**
|
17039 |
* Supported keybindings:
|
17127 |
{ keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }},
|
17128 |
{ keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }},
|
17129 |
{ keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }},
|
17130 |
+
{ keys: '(', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: false }},
|
17131 |
+
{ keys: ')', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: true }},
|
17132 |
{ keys: '<C-f>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }},
|
17133 |
{ keys: '<C-b>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }},
|
17134 |
{ keys: '<C-d>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }},
|
17291 |
}
|
17292 |
|
17293 |
function detachVimMap(cm, next) {
|
17294 |
+
if (this == CodeMirror.keyMap.vim) {
|
17295 |
CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
|
17296 |
+
if (cm.getOption("inputStyle") == "contenteditable" && document.body.style.caretColor != null) {
|
17297 |
+
disableFatCursorMark(cm);
|
17298 |
+
cm.getInputField().style.caretColor = "";
|
17299 |
+
}
|
17300 |
+
}
|
17301 |
|
17302 |
if (!next || next.attach != attachVimMap)
|
17303 |
leaveVimMode(cm);
|
17304 |
}
|
17305 |
function attachVimMap(cm, prev) {
|
17306 |
+
if (this == CodeMirror.keyMap.vim) {
|
17307 |
CodeMirror.addClass(cm.getWrapperElement(), "cm-fat-cursor");
|
17308 |
+
if (cm.getOption("inputStyle") == "contenteditable" && document.body.style.caretColor != null) {
|
17309 |
+
enableFatCursorMark(cm);
|
17310 |
+
cm.getInputField().style.caretColor = "transparent";
|
17311 |
+
}
|
17312 |
+
}
|
17313 |
|
17314 |
if (!prev || prev.attach != attachVimMap)
|
17315 |
enterVimMode(cm);
|
17316 |
}
|
17317 |
|
17318 |
+
function fatCursorMarks(cm) {
|
17319 |
+
var ranges = cm.listSelections(), result = []
|
17320 |
+
for (var i = 0; i < ranges.length; i++) {
|
17321 |
+
var range = ranges[i]
|
17322 |
+
if (range.empty()) {
|
17323 |
+
if (range.anchor.ch < cm.getLine(range.anchor.line).length) {
|
17324 |
+
result.push(cm.markText(range.anchor, Pos(range.anchor.line, range.anchor.ch + 1),
|
17325 |
+
{className: "cm-fat-cursor-mark"}))
|
17326 |
+
} else {
|
17327 |
+
var widget = document.createElement("span")
|
17328 |
+
widget.textContent = "\u00a0"
|
17329 |
+
widget.className = "cm-fat-cursor-mark"
|
17330 |
+
result.push(cm.setBookmark(range.anchor, {widget: widget}))
|
17331 |
+
}
|
17332 |
+
}
|
17333 |
+
}
|
17334 |
+
return result
|
17335 |
+
}
|
17336 |
+
|
17337 |
+
function updateFatCursorMark(cm) {
|
17338 |
+
var marks = cm.state.fatCursorMarks
|
17339 |
+
if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear()
|
17340 |
+
cm.state.fatCursorMarks = fatCursorMarks(cm)
|
17341 |
+
}
|
17342 |
+
|
17343 |
+
function enableFatCursorMark(cm) {
|
17344 |
+
cm.state.fatCursorMarks = fatCursorMarks(cm)
|
17345 |
+
cm.on("cursorActivity", updateFatCursorMark)
|
17346 |
+
}
|
17347 |
+
|
17348 |
+
function disableFatCursorMark(cm) {
|
17349 |
+
var marks = cm.state.fatCursorMarks
|
17350 |
+
if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear()
|
17351 |
+
cm.state.fatCursorMarks = null
|
17352 |
+
cm.off("cursorActivity", updateFatCursorMark)
|
17353 |
+
}
|
17354 |
+
|
17355 |
// Deprecated, simply setting the keymap works again.
|
17356 |
CodeMirror.defineOption('vimMode', false, function(cm, val, prev) {
|
17357 |
if (val && cm.getOption("keyMap") != "vim")
|
17459 |
function isWhiteSpaceString(k) {
|
17460 |
return (/^\s*$/).test(k);
|
17461 |
}
|
17462 |
+
function isEndOfSentenceSymbol(k) {
|
17463 |
+
return '.?!'.indexOf(k) != -1;
|
17464 |
+
}
|
17465 |
function inArray(val, arr) {
|
17466 |
for (var i = 0; i < arr.length; i++) {
|
17467 |
if (arr[i] == val) {
|
17880 |
}
|
17881 |
|
17882 |
function handleKeyNonInsertMode() {
|
17883 |
+
if (handleMacroRecording() || handleEsc()) { return true; }
|
17884 |
|
17885 |
var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;
|
17886 |
if (/^[1-9]\d*$/.test(keys)) { return true; }
|
17905 |
if (vim.insertMode) { command = handleKeyInsertMode(); }
|
17906 |
else { command = handleKeyNonInsertMode(); }
|
17907 |
if (command === false) {
|
17908 |
+
return !vim.insertMode && key.length === 1 ? function() { return true; } : undefined;
|
17909 |
} else if (command === true) {
|
17910 |
// TODO: Look into using CodeMirror's multi-key handling.
|
17911 |
// Return no-op since we are caching the key. Counts as handled, but
|
18465 |
} else {
|
18466 |
if (vim.visualMode) {
|
18467 |
showPrompt(cm, { onClose: onPromptClose, prefix: ':', value: '\'<,\'>',
|
18468 |
+
onKeyDown: onPromptKeyDown, selectValueOnOpen: false});
|
18469 |
} else {
|
18470 |
showPrompt(cm, { onClose: onPromptClose, prefix: ':',
|
18471 |
onKeyDown: onPromptKeyDown});
|
18850 |
var dir = motionArgs.forward ? 1 : -1;
|
18851 |
return findParagraph(cm, head, motionArgs.repeat, dir);
|
18852 |
},
|
18853 |
+
moveBySentence: function(cm, head, motionArgs) {
|
18854 |
+
var dir = motionArgs.forward ? 1 : -1;
|
18855 |
+
return findSentence(cm, head, motionArgs.repeat, dir);
|
18856 |
+
},
|
18857 |
moveByScroll: function(cm, head, motionArgs, vim) {
|
18858 |
var scrollbox = cm.getScrollInfo();
|
18859 |
var curEnd = null;
|
19124 |
vimGlobalState.registerController.pushText(
|
19125 |
args.registerName, 'delete', text,
|
19126 |
args.linewise, vim.visualBlock);
|
19127 |
+
var includeLineBreak = vim.insertMode
|
19128 |
+
return clipCursorToContent(cm, finalHead, includeLineBreak);
|
19129 |
},
|
19130 |
indent: function(cm, args, ranges) {
|
19131 |
var vim = cm.state.vim;
|
19680 |
incrementNumberToken: function(cm, actionArgs) {
|
19681 |
var cur = cm.getCursor();
|
19682 |
var lineStr = cm.getLine(cur.line);
|
19683 |
+
var re = /(-?)(?:(0x)([\da-f]+)|(0b|0|)(\d+))/gi;
|
19684 |
var match;
|
19685 |
var start;
|
19686 |
var end;
|
19687 |
var numberStr;
|
|
|
19688 |
while ((match = re.exec(lineStr)) !== null) {
|
|
|
19689 |
start = match.index;
|
19690 |
+
end = start + match[0].length;
|
19691 |
if (cur.ch < end)break;
|
19692 |
}
|
19693 |
if (!actionArgs.backtrack && (end <= cur.ch))return;
|
19694 |
+
if (match) {
|
19695 |
+
var baseStr = match[2] || match[4]
|
19696 |
+
var digits = match[3] || match[5]
|
19697 |
var increment = actionArgs.increase ? 1 : -1;
|
19698 |
+
var base = {'0b': 2, '0': 8, '': 10, '0x': 16}[baseStr.toLowerCase()];
|
19699 |
+
var number = parseInt(match[1] + digits, base) + (increment * actionArgs.repeat);
|
19700 |
+
numberStr = number.toString(base);
|
19701 |
+
var zeroPadding = baseStr ? new Array(digits.length - numberStr.length + 1 + match[1].length).join('0') : ''
|
19702 |
+
if (numberStr.charAt(0) === '-') {
|
19703 |
+
numberStr = '-' + baseStr + zeroPadding + numberStr.substr(1);
|
19704 |
+
} else {
|
19705 |
+
numberStr = baseStr + zeroPadding + numberStr;
|
19706 |
+
}
|
19707 |
var from = Pos(cur.line, start);
|
19708 |
var to = Pos(cur.line, end);
|
|
|
19709 |
cm.replaceRange(numberStr, from, to);
|
19710 |
} else {
|
19711 |
return;
|
20342 |
return cur;
|
20343 |
}
|
20344 |
|
20345 |
+
/*
|
20346 |
* Returns the boundaries of the next word. If the cursor in the middle of
|
20347 |
* the word, then returns the boundaries of the current word, starting at
|
20348 |
* the cursor. If the cursor is at the start/end of a word, and we are going
|
20577 |
return { start: start, end: end };
|
20578 |
}
|
20579 |
|
20580 |
+
function findSentence(cm, cur, repeat, dir) {
|
20581 |
+
|
20582 |
+
/*
|
20583 |
+
Takes an index object
|
20584 |
+
{
|
20585 |
+
line: the line string,
|
20586 |
+
ln: line number,
|
20587 |
+
pos: index in line,
|
20588 |
+
dir: direction of traversal (-1 or 1)
|
20589 |
+
}
|
20590 |
+
and modifies the line, ln, and pos members to represent the
|
20591 |
+
next valid position or sets them to null if there are
|
20592 |
+
no more valid positions.
|
20593 |
+
*/
|
20594 |
+
function nextChar(cm, idx) {
|
20595 |
+
if (idx.pos + idx.dir < 0 || idx.pos + idx.dir >= idx.line.length) {
|
20596 |
+
idx.ln += idx.dir;
|
20597 |
+
if (!isLine(cm, idx.ln)) {
|
20598 |
+
idx.line = null;
|
20599 |
+
idx.ln = null;
|
20600 |
+
idx.pos = null;
|
20601 |
+
return;
|
20602 |
+
}
|
20603 |
+
idx.line = cm.getLine(idx.ln);
|
20604 |
+
idx.pos = (idx.dir > 0) ? 0 : idx.line.length - 1;
|
20605 |
+
}
|
20606 |
+
else {
|
20607 |
+
idx.pos += idx.dir;
|
20608 |
+
}
|
20609 |
+
}
|
20610 |
+
|
20611 |
+
/*
|
20612 |
+
Performs one iteration of traversal in forward direction
|
20613 |
+
Returns an index object of the new location
|
20614 |
+
*/
|
20615 |
+
function forward(cm, ln, pos, dir) {
|
20616 |
+
var line = cm.getLine(ln);
|
20617 |
+
var stop = (line === "");
|
20618 |
+
|
20619 |
+
var curr = {
|
20620 |
+
line: line,
|
20621 |
+
ln: ln,
|
20622 |
+
pos: pos,
|
20623 |
+
dir: dir,
|
20624 |
+
}
|
20625 |
+
|
20626 |
+
var last_valid = {
|
20627 |
+
ln: curr.ln,
|
20628 |
+
pos: curr.pos,
|
20629 |
+
}
|
20630 |
+
|
20631 |
+
var skip_empty_lines = (curr.line === "");
|
20632 |
+
|
20633 |
+
// Move one step to skip character we start on
|
20634 |
+
nextChar(cm, curr);
|
20635 |
+
|
20636 |
+
while (curr.line !== null) {
|
20637 |
+
last_valid.ln = curr.ln;
|
20638 |
+
last_valid.pos = curr.pos;
|
20639 |
+
|
20640 |
+
if (curr.line === "" && !skip_empty_lines) {
|
20641 |
+
return { ln: curr.ln, pos: curr.pos, };
|
20642 |
+
}
|
20643 |
+
else if (stop && curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
|
20644 |
+
return { ln: curr.ln, pos: curr.pos, };
|
20645 |
+
}
|
20646 |
+
else if (isEndOfSentenceSymbol(curr.line[curr.pos])
|
20647 |
+
&& !stop
|
20648 |
+
&& (curr.pos === curr.line.length - 1
|
20649 |
+
|| isWhiteSpaceString(curr.line[curr.pos + 1]))) {
|
20650 |
+
stop = true;
|
20651 |
+
}
|
20652 |
+
|
20653 |
+
nextChar(cm, curr);
|
20654 |
+
}
|
20655 |
+
|
20656 |
+
/*
|
20657 |
+
Set the position to the last non whitespace character on the last
|
20658 |
+
valid line in the case that we reach the end of the document.
|
20659 |
+
*/
|
20660 |
+
var line = cm.getLine(last_valid.ln);
|
20661 |
+
last_valid.pos = 0;
|
20662 |
+
for(var i = line.length - 1; i >= 0; --i) {
|
20663 |
+
if (!isWhiteSpaceString(line[i])) {
|
20664 |
+
last_valid.pos = i;
|
20665 |
+
break;
|
20666 |
+
}
|
20667 |
+
}
|
20668 |
+
|
20669 |
+
return last_valid;
|
20670 |
+
|
20671 |
+
}
|
20672 |
+
|
20673 |
+
/*
|
20674 |
+
Performs one iteration of traversal in reverse direction
|
20675 |
+
Returns an index object of the new location
|
20676 |
+
*/
|
20677 |
+
function reverse(cm, ln, pos, dir) {
|
20678 |
+
var line = cm.getLine(ln);
|
20679 |
+
|
20680 |
+
var curr = {
|
20681 |
+
line: line,
|
20682 |
+
ln: ln,
|
20683 |
+
pos: pos,
|
20684 |
+
dir: dir,
|
20685 |
+
}
|
20686 |
+
|
20687 |
+
var last_valid = {
|
20688 |
+
ln: curr.ln,
|
20689 |
+
pos: null,
|
20690 |
+
};
|
20691 |
+
|
20692 |
+
var skip_empty_lines = (curr.line === "");
|
20693 |
+
|
20694 |
+
// Move one step to skip character we start on
|
20695 |
+
nextChar(cm, curr);
|
20696 |
+
|
20697 |
+
while (curr.line !== null) {
|
20698 |
+
|
20699 |
+
if (curr.line === "" && !skip_empty_lines) {
|
20700 |
+
if (last_valid.pos !== null) {
|
20701 |
+
return last_valid;
|
20702 |
+
}
|
20703 |
+
else {
|
20704 |
+
return { ln: curr.ln, pos: curr.pos };
|
20705 |
+
}
|
20706 |
+
}
|
20707 |
+
else if (isEndOfSentenceSymbol(curr.line[curr.pos])
|
20708 |
+
&& last_valid.pos !== null
|
20709 |
+
&& !(curr.ln === last_valid.ln && curr.pos + 1 === last_valid.pos)) {
|
20710 |
+
return last_valid;
|
20711 |
+
}
|
20712 |
+
else if (curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
|
20713 |
+
skip_empty_lines = false;
|
20714 |
+
last_valid = { ln: curr.ln, pos: curr.pos }
|
20715 |
+
}
|
20716 |
+
|
20717 |
+
nextChar(cm, curr);
|
20718 |
+
}
|
20719 |
+
|
20720 |
+
/*
|
20721 |
+
Set the position to the first non whitespace character on the last
|
20722 |
+
valid line in the case that we reach the beginning of the document.
|
20723 |
+
*/
|
20724 |
+
var line = cm.getLine(last_valid.ln);
|
20725 |
+
last_valid.pos = 0;
|
20726 |
+
for(var i = 0; i < line.length; ++i) {
|
20727 |
+
if (!isWhiteSpaceString(line[i])) {
|
20728 |
+
last_valid.pos = i;
|
20729 |
+
break;
|
20730 |
+
}
|
20731 |
+
}
|
20732 |
+
return last_valid;
|
20733 |
+
}
|
20734 |
+
|
20735 |
+
var curr_index = {
|
20736 |
+
ln: cur.line,
|
20737 |
+
pos: cur.ch,
|
20738 |
+
};
|
20739 |
+
|
20740 |
+
while (repeat > 0) {
|
20741 |
+
if (dir < 0) {
|
20742 |
+
curr_index = reverse(cm, curr_index.ln, curr_index.pos, dir);
|
20743 |
+
}
|
20744 |
+
else {
|
20745 |
+
curr_index = forward(cm, curr_index.ln, curr_index.pos, dir);
|
20746 |
+
}
|
20747 |
+
repeat--;
|
20748 |
+
}
|
20749 |
+
|
20750 |
+
return Pos(curr_index.ln, curr_index.pos);
|
20751 |
+
}
|
20752 |
+
|
20753 |
// TODO: perhaps this finagling of start and end positions belonds
|
20754 |
// in codemirror/replaceRange?
|
20755 |
function selectCompanionObject(cm, head, symb, inclusive) {
|
20768 |
// cursor is on a matching open bracket.
|
20769 |
var offset = curChar === openSym ? 1 : 0;
|
20770 |
|
20771 |
+
start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, undefined, {'bracketRegex': bracketRegexp});
|
20772 |
+
end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, undefined, {'bracketRegex': bracketRegexp});
|
20773 |
|
20774 |
if (!start || !end) {
|
20775 |
return { start: cur, end: cur };
|
20899 |
}
|
20900 |
}
|
20901 |
function splitBySlash(argString) {
|
20902 |
+
return splitBySeparator(argString, '/');
|
20903 |
+
}
|
20904 |
+
|
20905 |
+
function findUnescapedSlashes(argString) {
|
20906 |
+
return findUnescapedSeparators(argString, '/');
|
20907 |
+
}
|
20908 |
+
|
20909 |
+
function splitBySeparator(argString, separator) {
|
20910 |
+
var slashes = findUnescapedSeparators(argString, separator) || [];
|
20911 |
if (!slashes.length) return [];
|
20912 |
var tokens = [];
|
20913 |
// in case of strings like foo/bar
|
20919 |
return tokens;
|
20920 |
}
|
20921 |
|
20922 |
+
function findUnescapedSeparators(str, separator) {
|
20923 |
+
if (!separator)
|
20924 |
+
separator = '/';
|
20925 |
+
|
20926 |
var escapeNextChar = false;
|
20927 |
var slashes = [];
|
20928 |
for (var i = 0; i < str.length; i++) {
|
20929 |
var c = str.charAt(i);
|
20930 |
+
if (!escapeNextChar && c == separator) {
|
20931 |
slashes.push(i);
|
20932 |
}
|
20933 |
escapeNextChar = !escapeNextChar && (c == '\\');
|
21260 |
var history = cm.doc.history.done;
|
21261 |
var event = history[history.length - 2];
|
21262 |
return event && event.ranges && event.ranges[0].head;
|
21263 |
+
} else if (markName == '.') {
|
21264 |
+
if (cm.doc.history.lastModTime == 0) {
|
21265 |
+
return // If no changes, bail out; don't bother to copy or reverse history array.
|
21266 |
+
} else {
|
21267 |
+
var changeHistory = cm.doc.history.done.filter(function(el){ if (el.changes !== undefined) { return el } });
|
21268 |
+
changeHistory.reverse();
|
21269 |
+
var lastEditPos = changeHistory[0].changes[0].to;
|
21270 |
+
}
|
21271 |
+
return lastEditPos;
|
21272 |
}
|
21273 |
|
21274 |
var mark = vim.marks[markName];
|
21793 |
'any other getSearchCursor implementation.');
|
21794 |
}
|
21795 |
var argString = params.argString;
|
21796 |
+
var tokens = argString ? splitBySeparator(argString, argString[0]) : [];
|
21797 |
var regexPart, replacePart = '', trailing, flagsPart, count;
|
21798 |
var confirm = false; // Whether to confirm each replace.
|
21799 |
var global = false; // True to replace all instances on a line, false to replace only 1.
|
21837 |
global = true;
|
21838 |
flagsPart.replace('g', '');
|
21839 |
}
|
21840 |
+
regexPart = regexPart.replace(/\//g, "\\/") + '/' + flagsPart;
|
21841 |
}
|
21842 |
}
|
21843 |
if (regexPart) {
|
22053 |
}
|
22054 |
if (!confirm) {
|
22055 |
replaceAll();
|
22056 |
+
if (callback) { callback(); }
|
22057 |
return;
|
22058 |
}
|
22059 |
showPrompt(cm, {
|
22079 |
// so as to update the ". register as expected in real vim.
|
22080 |
var text = [];
|
22081 |
if (!isPlaying) {
|
22082 |
+
var selLength = lastChange.inVisualBlock && vim.lastSelection ?
|
22083 |
+
vim.lastSelection.visualBlock.height : 1;
|
22084 |
var changes = lastChange.changes;
|
22085 |
var text = [];
|
22086 |
var i = 0;
|
22189 |
exitInsertMode(cm);
|
22190 |
}
|
22191 |
}
|
22192 |
+
}
|
22193 |
macroModeState.isPlaying = false;
|
22194 |
}
|
22195 |
|
22393 |
exitInsertMode(cm);
|
22394 |
}
|
22395 |
macroModeState.isPlaying = false;
|
22396 |
+
}
|
22397 |
|
22398 |
function repeatInsertModeChanges(cm, changes, repeat) {
|
22399 |
function keyHandler(binding) {
|
22451 |
* @link http://arniebradfo.com/
|
22452 |
* @author Petr Mukhortov
|
22453 |
* @link http://mukhortov.com/
|
22454 |
+
* @since 2.2.4
|
22455 |
*/
|
22456 |
|
22457 |
// console.log(window.heshOptions); // from wordpress php
|
22486 |
isThemeOrPlugin: document.getElementById('newcontent') != null,
|
22487 |
|
22488 |
isActive: function () {
|
22489 |
+
return editor != null;
|
22490 |
},
|
22491 |
|
22492 |
isVisualActive: function () {
|
22816 |
|
22817 |
case 'foldGutter':
|
22818 |
editor.setOption('gutters', value ? ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'] : []);
|
22819 |
+
// break; // fallthrough expected here
|
22820 |
|
22821 |
case 'tabSize':
|
22822 |
editor.setOption('indentUnit', value); // indentUnit must always equal tabSize
|
22823 |
+
// break; // fallthrough expected here
|
22824 |
|
22825 |
default:
|
22826 |
heshOptions[event.target.id] = value;
|
23063 |
var windowScrollPosition = { top: window.pageYOffset, left: window.pageXOffset }
|
23064 |
|
23065 |
// update codemirror with the new textarea.value
|
23066 |
+
editor.doc.setValue(editor.getTextArea().value);f
|
23067 |
editor.focus();
|
23068 |
|
23069 |
var startLine = 0, endLine = 0, currentLine = 0;
|
23111 |
|
23112 |
function startEditor() {
|
23113 |
if (state.isActive()) return;
|
23114 |
+
if (target == null) return; // there is no textarea
|
23115 |
|
23116 |
updateOptions();
|
23117 |
|
23150 |
if (!state.isActive()) return;
|
23151 |
setSettingsPanelState('closed');
|
23152 |
editor.toTextArea();
|
23153 |
+
editor = undefined; // unset editor, for state.isActive();
|
23154 |
}
|
23155 |
|
23156 |
|
23170 |
}
|
23171 |
}
|
23172 |
|
23173 |
+
// Start Up the App
|
23174 |
if (document.readyState !== 'complete') {
|
23175 |
if (window.addEventListener) window.addEventListener('load', initialise, false);
|
23176 |
else if (window.attachEvent) window.attachEvent('onload', initialise);
|
dist/hesh.min.css
CHANGED
@@ -1 +1 @@
|
|
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,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC")}.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}}
|
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-fat-cursor-mark{background-color:rgba(20,255,20,.5)}.cm-animate-fat-cursor,.cm-fat-cursor-mark{-webkit-animation:a 1.06s steps(1) infinite;animation:a 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;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:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.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;-webkit-font-variant-ligatures:contextual;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;padding:.1px}.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-darcula span.cm-meta{color:#bbb529}.cm-s-darcula span.cm-number{color:#6897bb}.cm-s-darcula span.cm-keyword{line-height:1em;font-weight:700;color:#cc7832}.cm-s-darcula span.cm-def{color:#ffc66d}.cm-s-darcula span.cm-operator,.cm-s-darcula span.cm-property,.cm-s-darcula span.cm-type,.cm-s-darcula span.cm-variable,.cm-s-darcula span.cm-variable-2,.cm-s-darcula span.cm-variable-3{color:#a9b7c6}.cm-s-darcula span.cm-string,.cm-s-darcula span.cm-string-2{color:#6a8759}.cm-s-darcula span.cm-comment{color:gray}.cm-s-darcula span.cm-link{color:#287bde}.cm-s-darcula span.cm-atom{font-weight:700;color:#cc7832}.cm-s-darcula span.cm-error{color:#bc3f3c}.cm-s-darcula span.cm-tag{color:#cc7832}.cm-s-darcula span.cm-attribute,.cm-s-darcula span.cm-qualifier{color:#6a8759}.cm-s-darcula span.cm-bracket{color:#a9b7c6}.cm-s-darcula.CodeMirror{background:#2b2b2b;color:#a9b7c6}.cm-s-darcula .CodeMirror-cursor{border-left:1px solid #ddd}.cm-s-darcula .CodeMirror-activeline-background{background:#3a3a3a}.cm-s-darcula div.CodeMirror-selected{background:#085a9c}.cm-s-darcula .CodeMirror-gutters{background:#484848;border-right:1px solid grey;color:#606366}.cm-s-darcula span.cm-builtin{color:#a9b7c6}.cm-s-darcula{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif}.cm-s-darcula .CodeMirror-matchingbracket{background-color:#3b514d;color:#ff0!important}.CodeMirror-hints.darcula{font-family:Menlo,Monaco,Consolas,Courier New,monospace;color:#9c9e9e;background-color:#3b3e3f!important}.CodeMirror-hints.darcula .CodeMirror-hint-active{background-color:#494d4e!important;color:#9c9e9e!important}.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-gruvbox-dark.CodeMirror,.cm-s-gruvbox-dark .CodeMirror-gutters{background-color:#282828;color:#bdae93}.cm-s-gruvbox-dark .CodeMirror-gutters{background:#282828;border-right:0}.cm-s-gruvbox-dark .CodeMirror-linenumber{color:#7c6f64}.cm-s-gruvbox-dark .CodeMirror-cursor{border-left:1px solid #ebdbb2}.cm-s-gruvbox-dark div.CodeMirror-selected{background:#928374}.cm-s-gruvbox-dark span.cm-meta{color:olive}.cm-s-gruvbox-dark span.cm-comment{color:#928374}.cm-s-gruvbox-dark span.cm-number,span.cm-atom{color:#d3869b}.cm-s-gruvbox-dark span.cm-keyword{color:#f84934}.cm-s-gruvbox-dark span.cm-variable,.cm-s-gruvbox-dark span.cm-variable-2{color:#ebdbb2}.cm-s-gruvbox-dark span.cm-type,.cm-s-gruvbox-dark span.cm-variable-3{color:#000}.cm-s-gruvbox-dark span.cm-def,.cm-s-gruvbox-dark span.cm-operator{color:#ebdbb2}.cm-s-gruvbox-dark span.cm-string{color:#b8bb26}.cm-s-gruvbox-dark span.cm-string-2{color:#8ec07c}.cm-s-gruvbox-dark span.cm-qualifier{color:#555}.cm-s-gruvbox-dark span.cm-attribute{color:#8ec07c}.cm-s-gruvbox-dark .CodeMirror-activeline-background{background:#3c3836}.cm-s-gruvbox-dark .CodeMirror-matchingbracket{background:#928374;color:#282828!important}.cm-s-gruvbox-dark span.cm-builtin{color:#fe8019}.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-idea span.cm-meta{color:olive}.cm-s-idea span.cm-number{color:#00f}.cm-s-idea span.cm-keyword{line-height:1em;font-weight:700;color:navy}.cm-s-idea span.cm-atom{font-weight:700;color:navy}.cm-s-idea span.cm-def,.cm-s-idea span.cm-operator,.cm-s-idea span.cm-property,.cm-s-idea span.cm-type,.cm-s-idea span.cm-variable,.cm-s-idea span.cm-variable-2,.cm-s-idea span.cm-variable-3{color:#000}.cm-s-idea span.cm-comment{color:gray}.cm-s-idea span.cm-string,.cm-s-idea span.cm-string-2{color:green}.cm-s-idea span.cm-qualifier{color:#555}.cm-s-idea span.cm-error{color:red}.cm-s-idea span.cm-attribute{color:#00f}.cm-s-idea span.cm-tag{color:navy}.cm-s-idea span.cm-link{color:#00f}.cm-s-idea .CodeMirror-activeline-background{background:#fffae3}.cm-s-idea span.cm-builtin{color:#30a}.cm-s-idea span.cm-bracket{color:#cc7}.cm-s-idea{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif}.cm-s-idea .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.CodeMirror-hints.idea{font-family:Menlo,Monaco,Consolas,Courier New,monospace;color:#616569;background-color:#ebf3fd!important}.CodeMirror-hints.idea .CodeMirror-hint-active{background-color:#a2b8c9!important;color:#5c6065!important}.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:#81a4d5}.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-lucario.CodeMirror,.cm-s-lucario .CodeMirror-gutters{background-color:#2b3e50!important;color:#f8f8f2!important;border:none}.cm-s-lucario .CodeMirror-gutters{color:#2b3e50}.cm-s-lucario .CodeMirror-cursor{border-left:thin solid #e6c845}.cm-s-lucario .CodeMirror-linenumber{color:#f8f8f2}.cm-s-lucario .CodeMirror-selected{background:#243443}.cm-s-lucario .CodeMirror-line::selection,.cm-s-lucario .CodeMirror-line>span::selection,.cm-s-lucario .CodeMirror-line>span>span::selection{background:#243443}.cm-s-lucario .CodeMirror-line::-moz-selection,.cm-s-lucario .CodeMirror-line>span::-moz-selection,.cm-s-lucario .CodeMirror-line>span>span::-moz-selection{background:#243443}.cm-s-lucario span.cm-comment{color:#5c98cd}.cm-s-lucario span.cm-string,.cm-s-lucario span.cm-string-2{color:#e6db74}.cm-s-lucario span.cm-number{color:#ca94ff}.cm-s-lucario span.cm-variable,.cm-s-lucario span.cm-variable-2{color:#f8f8f2}.cm-s-lucario span.cm-def{color:#72c05d}.cm-s-lucario span.cm-operator{color:#66d9ef}.cm-s-lucario span.cm-keyword{color:#ff6541}.cm-s-lucario span.cm-atom{color:#bd93f9}.cm-s-lucario span.cm-meta{color:#f8f8f2}.cm-s-lucario span.cm-tag{color:#ff6541}.cm-s-lucario span.cm-attribute{color:#66d9ef}.cm-s-lucario span.cm-qualifier{color:#72c05d}.cm-s-lucario span.cm-property{color:#f8f8f2}.cm-s-lucario span.cm-builtin{color:#72c05d}.cm-s-lucario span.cm-type,.cm-s-lucario span.cm-variable-3{color:#ffb86c}.cm-s-lucario .CodeMirror-activeline-background{background:#243443}.cm-s-lucario .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.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-comment.cm-attribute{color:#97b757}.cm-s-monokai span.cm-comment.cm-def{color:#bc9262}.cm-s-monokai span.cm-comment.cm-tag{color:#bc6283}.cm-s-monokai span.cm-comment.cm-type{color:#5998a6}.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-oceanic-next.CodeMirror{background:#304148;color:#f8f8f2}.cm-s-oceanic-next div.CodeMirror-selected{background:rgba(101,115,126,.33)}.cm-s-oceanic-next .CodeMirror-line::selection,.cm-s-oceanic-next .CodeMirror-line>span::selection,.cm-s-oceanic-next .CodeMirror-line>span>span::selection{background:rgba(101,115,126,.33)}.cm-s-oceanic-next .CodeMirror-line::-moz-selection,.cm-s-oceanic-next .CodeMirror-line>span::-moz-selection,.cm-s-oceanic-next .CodeMirror-line>span>span::-moz-selection{background:rgba(101,115,126,.33)}.cm-s-oceanic-next .CodeMirror-gutters{background:#304148;border-right:10px}.cm-s-oceanic-next .CodeMirror-guttermarker{color:#fff}.cm-s-oceanic-next .CodeMirror-guttermarker-subtle,.cm-s-oceanic-next .CodeMirror-linenumber{color:#d0d0d0}.cm-s-oceanic-next .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-oceanic-next span.cm-comment{color:#65737e}.cm-s-oceanic-next span.cm-atom{color:#c594c5}.cm-s-oceanic-next span.cm-number{color:#f99157}.cm-s-oceanic-next span.cm-property{color:#99c794}.cm-s-oceanic-next span.cm-attribute,.cm-s-oceanic-next span.cm-keyword{color:#c594c5}.cm-s-oceanic-next span.cm-builtin{color:#66d9ef}.cm-s-oceanic-next span.cm-string{color:#99c794}.cm-s-oceanic-next span.cm-variable,.cm-s-oceanic-next span.cm-variable-2,.cm-s-oceanic-next span.cm-variable-3{color:#f8f8f2}.cm-s-oceanic-next span.cm-def{color:#69c}.cm-s-oceanic-next span.cm-bracket{color:#5fb3b3}.cm-s-oceanic-next span.cm-header,.cm-s-oceanic-next span.cm-link,.cm-s-oceanic-next span.cm-tag{color:#c594c5}.cm-s-oceanic-next span.cm-error{background:#c594c5;color:#f8f8f0}.cm-s-oceanic-next .CodeMirror-activeline-background{background:rgba(101,115,126,.33)}.cm-s-oceanic-next .CodeMirror-matchingbracket{text-decoration:underline;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}.cm-s-shadowfox.CodeMirror{background:#2a2a2e;color:#b1b1b3}.cm-s-shadowfox div.CodeMirror-selected{background:#353b48}.cm-s-shadowfox .CodeMirror-line::selection,.cm-s-shadowfox .CodeMirror-line>span::selection,.cm-s-shadowfox .CodeMirror-line>span>span::selection{background:#353b48}.cm-s-shadowfox .CodeMirror-line::-moz-selection,.cm-s-shadowfox .CodeMirror-line>span::-moz-selection,.cm-s-shadowfox .CodeMirror-line>span>span::-moz-selection{background:#353b48}.cm-s-shadowfox .CodeMirror-gutters{background:#0c0c0d;border-right:1px solid #0c0c0d}.cm-s-shadowfox .CodeMirror-guttermarker{color:#555}.cm-s-shadowfox .CodeMirror-linenumber{color:#939393}.cm-s-shadowfox .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-shadowfox span.cm-comment{color:#939393}.cm-s-shadowfox span.cm-atom,.cm-s-shadowfox span.cm-attribute,.cm-s-shadowfox span.cm-builtin,.cm-s-shadowfox span.cm-error,.cm-s-shadowfox span.cm-keyword,.cm-s-shadowfox span.cm-quote{color:#ff7de9}.cm-s-shadowfox span.cm-number,.cm-s-shadowfox span.cm-string,.cm-s-shadowfox span.cm-string-2{color:#6b89ff}.cm-s-shadowfox span.cm-hr,.cm-s-shadowfox span.cm-meta{color:#939393}.cm-s-shadowfox span.cm-header,.cm-s-shadowfox span.cm-qualifier,.cm-s-shadowfox span.cm-variable-2{color:#75bfff}.cm-s-shadowfox span.cm-property{color:#86de74}.cm-s-shadowfox span.cm-bracket,.cm-s-shadowfox span.cm-def,.cm-s-shadowfox span.cm-link:visited,.cm-s-shadowfox span.cm-tag{color:#75bfff}.cm-s-shadowfox span.cm-variable{color:#b98eff}.cm-s-shadowfox span.cm-variable-3{color:#d7d7db}.cm-s-shadowfox span.cm-link{color:#737373}.cm-s-shadowfox span.cm-operator{color:#b1b1b3}.cm-s-shadowfox span.cm-special{color:#d7d7db}.cm-s-shadowfox .CodeMirror-activeline-background{background:rgba(185,215,253,.15)}.cm-s-shadowfox .CodeMirror-matchingbracket{outline:1px solid hsla(0,0%,100%,.25);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-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-ssms span.cm-keyword{color:blue}.cm-s-ssms span.cm-comment{color:#006400}.cm-s-ssms span.cm-string{color:red}.cm-s-ssms span.cm-def,.cm-s-ssms span.cm-variable,.cm-s-ssms span.cm-variable-2{color:#000}.cm-s-ssms span.cm-atom{color:#a9a9a9}.cm-s-ssms .CodeMirror-linenumber{color:teal}.cm-s-ssms .CodeMirror-activeline-background{background:#fff}.cm-s-ssms span.cm-string-2{color:#f0f}.cm-s-ssms span.cm-bracket,.cm-s-ssms span.cm-operator,.cm-s-ssms span.cm-punctuation{color:#a9a9a9}.cm-s-ssms .CodeMirror-gutters{border-right:3px solid #ffee62;background-color:#fff}.cm-s-ssms div.CodeMirror-selected{background:#add6ff}.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-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;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.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;-webkit-transition:.25s ease;transition:.25s ease;-webkit-transition-property:-webkit-transform opacity;transition-property:-webkit-transform opacity;transition-property:transform opacity;transition-property:transform opacity,-webkit-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{-webkit-transition:.25s ease;transition:.25s ease;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;-webkit-transform-origin:top right;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;-webkit-transform:scaleX(0);transform:scaleX(0)}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer{visibility:hidden;opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px);-webkit-transition:opacity .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease;transition:opacity .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease;transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s;transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease}.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;-webkit-transform:scaleX(1);transform:scaleX(1)}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer{visibility:hidden;opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px);-webkit-transition:opacity .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease;transition:opacity .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease;transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s;transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease}.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;-webkit-transform:translate(0);transform:translate(0);-webkit-transition:visibility 1ms ease,opacity .25s ease 1ms,-webkit-transform .25s ease 1ms;transition:visibility 1ms ease,opacity .25s ease 1ms,-webkit-transform .25s ease 1ms;transition:visibility 1ms ease,opacity .25s ease 1ms,transform .25s ease 1ms;transition:visibility 1ms ease,opacity .25s ease 1ms,transform .25s ease 1ms,-webkit-transform .25s ease 1ms}.CodeMirror-settings__button{position:relative}.CodeMirror-settings__button:active{-webkit-transform:none!important;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;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;-webkit-transition:opacity .1s linear;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}}@-webkit-keyframes a{50%{background-color:transparent}}@keyframes a{50%{background-color:transparent}}
|
dist/hesh.min.js
CHANGED
@@ -1,13 +1 @@
|
|
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];u.pred(a,r)&&d(i,u.val)==-1&&i.push(u.val)}return i},getStateAfter:function(e,t){var n=this.doc;return e=q(n,null==e?n.first+n.size-1:e),et(this,e+1,t).state},cursorCoords:function(e,t){var n,r=this.doc.sel.primary();return n=null==e?r.head:"object"==typeof e?H(this.doc,e):e?r.from():r.to(),dn(this,n,t||"page")},charCoords:function(e,t){return fn(this,H(this.doc,e),t||"page")},coordsChar:function(e,t){return e=un(this,e,t||"page"),mn(this,e.left,e.top)},lineAtHeight:function(e,t){return e=un(this,{top:e,left:0},t||"page").top,N(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,n){var r,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),r=L(this.doc,e)}else r=e;return cn(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-ye(r):0)},defaultTextHeight:function(){return bn(this.display)},defaultCharWidth:function(){return xn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=dn(this,H(this.doc,e));var a=e.bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==r)a=e.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=l&&(a=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),n&&jn(this,{left:s,top:a,right:s+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:pr(xo),triggerOnKeyPress:pr(Co),triggerOnKeyUp:ko,triggerOnMouseDown:pr(_o),execCommand:function(e){if(Bs.hasOwnProperty(e))return Bs[e].call(null,this)},triggerElectric:pr(function(e){Vo(this,e)}),findPosH:function(e,t,n,r){var i=this,o=1;t<0&&(o=-1,t=-t);for(var a=H(this.doc,e),s=0;s<t&&(a=Yo(i.doc,a,o,n,r),!a.hitSide);++s);return a},moveH:pr(function(e,t){var n=this;this.extendSelectionsBy(function(r){return n.display.shift||n.doc.extend||r.empty()?Yo(n.doc,r.head,e,t,n.options.rtlMoveVisually):e<0?r.from():r.to()},Fa)}),
|
6 |
-
deleteH:pr(function(e,t){var n=this.doc.sel,r=this.doc;n.somethingSelected()?r.replaceSelection("",null,"+delete"):uo(this,function(n){var i=Yo(r,n.head,e,t,!1);return e<0?{from:i,to:n.head}:{from:n.head,to:i}})}),findPosV:function(e,t,n,r){var i=this,o=1,a=r;t<0&&(o=-1,t=-t);for(var s=H(this.doc,e),l=0;l<t;++l){var c=dn(i,s,"div");if(null==a?a=c.left:c.left=a,s=Qo(i,c,o,n),s.hitSide)break}return s},moveV:pr(function(e,t){var n=this,r=this.doc,i=[],o=!this.display.shift&&!r.extend&&r.sel.somethingSelected();if(r.extendSelectionsBy(function(a){if(o)return e<0?a.from():a.to();var s=dn(n,a.head,"div");null!=a.goalColumn&&(s.left=a.goalColumn),i.push(s.left);var l=Qo(n,s,e,t);return"page"==t&&a==r.sel.primary()&&Un(n,fn(n,l,"div").top-s.top),l},Fa),i.length)for(var a=0;a<r.sel.ranges.length;a++)r.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=this.doc,n=L(t,e.line).text,r=e.ch,i=e.ch;if(n){var o=this.getHelper(e,"wordChars");"before"!=e.sticky&&i!=n.length||!r?++i:--r;for(var a=n.charAt(r),s=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)};r>0&&s(n.charAt(r-1));)--r;for(;i<n.length&&s(n.charAt(i));)++i}return new ks(R(e.line,r),R(e.line,i))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?s(this.display.cursorDiv,"CodeMirror-overwrite"):Oa(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:pr(function(e,t){$n(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-jt(this)-this.display.barHeight,width:e.scrollWidth-jt(this)-this.display.barWidth,clientHeight:Ut(this),clientWidth:Kt(this)}},scrollIntoView:pr(function(e,t){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?Gn(this,e):Yn(this,e.from,e.to,e.margin)}),setSize:pr(function(e,t){var n=this,r=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=r(e)),null!=t&&(this.display.wrapper.style.height=r(t)),this.options.lineWrapping&&on(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){vr(n,i,"widget");break}++i}),this.curOp.forceUpdate=!0,Oe(this,"refresh",this)}),operation:function(e){return dr(this,e)},startOperation:function(){return ir(this)},endOperation:function(){return or(this)},refresh:pr(function(){var e=this.display.cachedTextHeight;gr(this),this.curOp.forceUpdate=!0,an(this),$n(this,this.doc.scrollLeft,this.doc.scrollTop),Er(this),(null==e||Math.abs(e-bn(this.display))>.5)&&Sn(this),Oe(this,"refresh",this)}),swapDoc:pr(function(e){var t=this.doc;return t.cm=null,Yr(this,e),an(this),this.display.input.reset(),$n(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,St(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,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(Wo);var Xs="iter insert remove copy getEditor constructor".split(" ");for(var Ys in Ts.prototype)Ts.prototype.hasOwnProperty(Ys)&&d(Xs,Ys)<0&&(Wo.prototype[Ys]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ts.prototype[Ys]));return Pe(Ts),Wo.inputStyles={textarea:Gs,contenteditable:$s},Wo.defineMode=function(e){Wo.defaults.mode||"null"==e||(Wo.defaults.mode=e),Ke.apply(this,arguments)},Wo.defineMIME=Ue,Wo.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Wo.defineMIME("text/plain","null"),Wo.defineExtension=function(e,t){Wo.prototype[e]=t},Wo.defineDocExtension=function(e,t){Ts.prototype[e]=t},Wo.fromTextArea=ia,function(e){e.off=Ae,e.on=Ga,e.wheelEventPixels=Br,e.Doc=Ts,e.splitLines=Ya,e.countColumn=f,e.findColumn=h,e.isWordChar=x,e.Pass=Ba,e.signal=Oe,e.Line=ss,e.changeEnd=Wr,e.scrollbarModel=gs,e.Pos=R,e.cmpPos=B,e.modes=es,e.mimeModes=ts,e.resolveMode=Ve,e.getMode=$e,e.modeExtensions=ns,e.extendMode=Ge,e.copyState=Xe,e.startState=Qe,e.innerMode=Ye,e.commands=Bs,e.keyMap=Rs,e.keyName=lo,e.isModifierKey=ao,e.lookupKey=oo,e.normalizeKeyMap=io,e.StringStream=rs,e.SharedTextMarker=Ms,e.TextMarker=_s,e.LineWidget=Cs,e.e_preventDefault=Re,e.e_stopPropagation=Be,e.e_stop=De,e.addClass=s,e.contains=o,e.rmClass=Oa,e.keyNames=Es}(Wo),Wo.version="5.29.0",Wo}),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},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(r,i){function o(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();if("<"==r)return e.eat("!")?e.eat("[")?e.match("CDATA[")?n(l("atom","]]>")):null:e.match("--")?n(l("comment","-->")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(c(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=l("meta","?>"),"meta"):(M=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==r){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 n=e.next();if(">"==n||"/"==n&&e.eat(">"))return t.tokenize=o,M=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return M="equals",null;if("<"==n){t.tokenize=o,t.state=h,t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(t.tokenize=s(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function s(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}function l(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=o;break}n.next()}return e}}function c(e){return function(t,n){for(var r;null!=(r=t.next());){if("<"==r)return n.tokenize=c(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=o;break}return n.tokenize=c(e-1),n.tokenize(t,n)}}return"meta"}}function u(e,t,n){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=n,(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 n;;){if(!e.context)return;if(n=e.context.tagName,!C.contextGrabbers.hasOwnProperty(n)||!C.contextGrabbers[n].hasOwnProperty(t))return;f(e)}}function h(e,t,n){return"openTag"==e?(n.tagStart=t.column(),p):"closeTag"==e?m:h}function p(e,t,n){return"word"==e?(n.tagName=t.current(),L="tag",y):(L="error",p)}function m(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&C.implicitlyClosed.hasOwnProperty(n.context.tagName)&&f(n),n.context&&n.context.tagName==r||C.matchClosing===!1?(L="tag",g):(L="tag error",v)}return L="error",v}function g(e,t,n){return"endTag"!=e?(L="error",g):(f(n),h)}function v(e,t,n){return L="error",g(e,t,n)}function y(e,t,n){if("word"==e)return L="attribute",b;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||C.autoSelfClosers.hasOwnProperty(r)?d(n,r):(d(n,r),n.context=new u(n,r,i==n.indented)),h}return L="error",y}function b(e,t,n){return"equals"==e?x:(C.allowMissing||(L="error"),y(e,t,n))}function x(e,t,n){return"string"==e?w:"word"==e&&C.allowUnquoted?(L="string",y):(L="error",y(e,t,n))}function w(e,t,n){return"string"==e?w:y(e,t,n)}var k=r.indentUnit,C={},S=i.htmlMode?t:n;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 n=t.tokenize(e,t);return(n||M)&&"comment"!=n&&(L=null,t.state=t.state(M||n,e,t),L&&(n="error"==L?n+" error":L)),n},indent:function(t,n,r){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 r?r.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(n))return 0;var s=n&&/^<(\/)?([\w_:\.-]*)/.exec(n);if(s&&s[1])for(;i;){if(i.tagName==s[2]){i=i.prev;break}if(!C.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(s)for(;i;){var l=C.contextGrabbers[i.tagName];if(!l||!l.hasOwnProperty(s[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";e.defineMode("javascript",function(t,n){function r(e){for(var t,n=!1,r=!1;null!=(t=e.next());){if(!n){if("/"==t&&!r)return;"["==t?r=!0:r&&"]"==t&&(r=!1)}n=!n&&"\\"==t}}function i(e,t,n){return Me=e,Le=n,t}function o(e,t){var n=e.next();if('"'==n||"'"==n)return t.tokenize=a(n),t.tokenize(e,t);if("."==n&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return i("number","number");if("."==n&&e.match(".."))return i("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return i(n);if("="==n&&e.eat(">"))return i("=>","operator");if("0"==n&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),i("number","number");if("0"==n&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),i("number","number");if("0"==n&&e.eat(/b/i))return e.eatWhile(/[01]/i),i("number","number");if(/\d/.test(n))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),i("number","number");if("/"==n)return e.eat("*")?(t.tokenize=s,s(e,t)):e.eat("/")?(e.skipToEnd(),i("comment","comment")):_e(e,t,1)?(r(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),i("regexp","string-2")):(e.eatWhile(Re),i("operator","operator",e.current()));if("`"==n)return t.tokenize=l,l(e,t);if("#"==n)return e.skipToEnd(),i("error","error");if(Re.test(n))return">"==n&&t.lexical&&">"==t.lexical.type||e.eatWhile(Re),i("operator","operator",e.current());if(Ie.test(n)){e.eatWhile(Ie);var o=e.current();if("."!=t.lastType){if(Pe.propertyIsEnumerable(o)){var c=Pe[o];return i(c.type,c.style,o)}if("async"==o&&e.match(/^\s*[\(\w]/,!1))return i("async","keyword",o)}return i("variable","variable",o)}}function a(e){return function(t,n){var r,a=!1;if(Oe&&"@"==t.peek()&&t.match(Be))return n.tokenize=o,i("jsonld-keyword","meta");for(;null!=(r=t.next())&&(r!=e||a);)a=!a&&"\\"==r;return a||(n.tokenize=o),i("string","string")}}function s(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=o;break}r="*"==n}return i("comment","comment")}function l(e,t){for(var n,r=!1;null!=(n=e.next());){if(!r&&("`"==n||"$"==n&&e.eat("{"))){t.tokenize=o;break}r=!r&&"\\"==n}return i("quasi","string-2",e.current())}function c(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(n<0)){if(Ne){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=e.string.charAt(a),l=ze.indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(Ie.test(s))o=!0;else{if(/["'\/]/.test(s))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}function u(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function f(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(var n=r.vars;n;n=n.next)if(n.name==t)return!0}function d(e,t,n,r,i){var o=e.cc;for(Fe.state=e,Fe.stream=i,Fe.marked=null,Fe.cc=o,Fe.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){if((o.length?o.pop():Ee?k:w)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return Fe.marked?Fe.marked:"variable"==n&&f(e,r)?"variable-2":t}}}function h(){for(var e=arguments.length-1;e>=0;e--)Fe.cc.push(arguments[e])}function p(){return h.apply(null,arguments),!0}function m(e){function t(t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}var r=Fe.state;if(Fe.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 g(){Fe.state.context={prev:Fe.state.context,vars:Fe.state.localVars},Fe.state.localVars=We}function v(){Fe.state.localVars=Fe.state.context.vars,Fe.state.context=Fe.state.context.prev}function y(e,t){var n=function(){var n=Fe.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new u(r,Fe.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function b(){var e=Fe.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function x(e){function t(n){return n==e?p():";"==e?h():p(t)}return t}function w(e,t){return"var"==e?p(y("vardef",t.length),J,x(";"),b):"keyword a"==e?p(y("form"),S,w,b):"keyword b"==e?p(y("form"),w,b):"{"==e?p(y("}"),K,b):";"==e?p():"if"==e?("else"==Fe.state.lexical.info&&Fe.state.cc[Fe.state.cc.length-1]==b&&Fe.state.cc.pop()(),p(y("form"),S,w,b,re)):"function"==e?p(ce):"for"==e?p(y("form"),ie,w,b):"variable"==e?Ne&&"type"==t?(Fe.marked="keyword",p(V,x("operator"),V,x(";"))):Ne&&"declare"==t?(Fe.marked="keyword",p(w)):p(y("stat"),z):"switch"==e?p(y("form"),S,x("{"),y("}","switch"),K,b,b):"case"==e?p(k,x(":")):"default"==e?p(x(":")):"catch"==e?p(y("form"),g,x("("),ue,x(")"),w,b,v):"class"==e?p(y("form"),de,b):"export"==e?p(y("stat"),ge,b):"import"==e?p(y("stat"),ye,b):"module"==e?p(y("form"),Z,x("{"),y("}"),K,b,b):"async"==e?p(w):"@"==t?p(k,w):h(y("stat"),k,x(";"),b)}function k(e){return _(e,!1)}function C(e){return _(e,!0)}function S(e){return"("!=e?h():p(y(")"),k,x(")"),b)}function _(e,t){if(Fe.state.fatArrowAt==Fe.stream.start){var n=t?I:N;if("("==e)return p(g,y(")"),H(Z,")"),b,x("=>"),n,v);if("variable"==e)return h(g,Z,x("=>"),n,v)}var r=t?A:T;return De.hasOwnProperty(e)?p(r):"function"==e?p(ce,r):"class"==e?p(y("form"),fe,b):"keyword c"==e||"async"==e?p(t?L:M):"("==e?p(y(")"),M,x(")"),b,r):"operator"==e||"spread"==e?p(t?C:k):"["==e?p(y("]"),Ce,b,r):"{"==e?j(F,"}",null,r):"quasi"==e?h(O,r):"new"==e?p(P(t)):p()}function M(e){return e.match(/[;\}\)\],]/)?h():h(k)}function L(e){return e.match(/[;\}\)\],]/)?h():h(C)}function T(e,t){return","==e?p(k):A(e,t,!1)}function A(e,t,n){var r=0==n?T:A,i=0==n?k:C;return"=>"==e?p(g,n?I:N,v):"operator"==e?/\+\+|--/.test(t)||Ne&&"!"==t?p(r):"?"==t?p(k,x(":"),i):p(i):"quasi"==e?h(O,r):";"!=e?"("==e?j(C,")","call",r):"."==e?p(D,r):"["==e?p(y("]"),M,x("]"),b,r):Ne&&"as"==t?(Fe.marked="keyword",p(V,r)):void 0:void 0}function O(e,t){return"quasi"!=e?h():"${"!=t.slice(t.length-2)?p(O):p(k,E)}function E(e){if("}"==e)return Fe.marked="string-2",Fe.state.tokenize=l,p(O)}function N(e){return c(Fe.stream,Fe.state),h("{"==e?w:k)}function I(e){return c(Fe.stream,Fe.state),h("{"==e?w:C)}function P(e){return function(t){return"."==t?p(e?B:R):"variable"==t&&Ne?p(Q,e?A:T):h(e?C:k)}}function R(e,t){if("target"==t)return Fe.marked="keyword",p(T)}function B(e,t){if("target"==t)return Fe.marked="keyword",p(A)}function z(e){return":"==e?p(b,w):h(T,x(";"),b)}function D(e){if("variable"==e)return Fe.marked="property",p()}function F(e,t){return"async"==e?(Fe.marked="property",p(F)):"variable"==e||"keyword"==Fe.style?(Fe.marked="property",p("get"==t||"set"==t?W:q)):"number"==e||"string"==e?(Fe.marked=Oe?"property":Fe.style+" property",p(q)):"jsonld-keyword"==e?p(q):"modifier"==e?p(F):"["==e?p(k,x("]"),q):"spread"==e?p(k,q):":"==e?h(q):void 0}function W(e){return"variable"!=e?h(q):(Fe.marked="property",p(ce))}function q(e){return":"==e?p(C):"("==e?h(ce):void 0}function H(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=Fe.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),p(function(n,r){return n==t||r==t?h():h(e)},r)}return i==t||o==t?p():p(x(t))}return function(n,i){return n==t||i==t?p():h(e,r)}}function j(e,t,n){for(var r=3;r<arguments.length;r++)Fe.cc.push(arguments[r]);return p(y(t,n),H(e,t),b)}function K(e){return"}"==e?p():h(w,K)}function U(e,t){if(Ne){if(":"==e)return p(V);if("?"==t)return p(U)}}function V(e,t){return"variable"==e?"keyof"==t?(Fe.marked="keyword",p(V)):(Fe.marked="type",p(Y)):"string"==e||"number"==e||"atom"==e?p(Y):"["==e?p(y("]"),H(V,"]",","),b,Y):"{"==e?p(y("}"),H(G,"}",",;"),b,Y):"("==e?p(H(X,")"),$):void 0}function $(e){if("=>"==e)return p(V)}function G(e,t){return"variable"==e||"keyword"==Fe.style?(Fe.marked="property",p(G)):"?"==t?p(G):":"==e?p(V):"["==e?p(k,U,x("]"),G):void 0}function X(e){return"variable"==e?p(X):":"==e?p(V):void 0}function Y(e,t){return"<"==t?p(y(">"),H(V,">"),b,Y):"|"==t||"."==e?p(V):"["==e?p(x("]"),Y):"extends"==t?p(V):void 0}function Q(e,t){if("<"==t)return p(y(">"),H(V,">"),b,Y)}function J(){return h(Z,U,te,ne)}function Z(e,t){return"modifier"==e?p(Z):"variable"==e?(m(t),p()):"spread"==e?p(Z):"["==e?j(Z,"]"):"{"==e?j(ee,"}"):void 0}function ee(e,t){return"variable"!=e||Fe.stream.match(/^\s*:/,!1)?("variable"==e&&(Fe.marked="property"),"spread"==e?p(Z):"}"==e?h():p(x(":"),Z,te)):(m(t),p(te))}function te(e,t){if("="==t)return p(C)}function ne(e){if(","==e)return p(J)}function re(e,t){if("keyword b"==e&&"else"==t)return p(y("form","else"),w,b)}function ie(e){if("("==e)return p(y(")"),oe,x(")"),b)}function oe(e){return"var"==e?p(J,x(";"),se):";"==e?p(se):"variable"==e?p(ae):h(k,x(";"),se)}function ae(e,t){return"in"==t||"of"==t?(Fe.marked="keyword",p(k)):p(T,se)}function se(e,t){return";"==e?p(le):"in"==t||"of"==t?(Fe.marked="keyword",p(k)):h(k,x(";"),le)}function le(e){")"!=e&&p(k)}function ce(e,t){return"*"==t?(Fe.marked="keyword",p(ce)):"variable"==e?(m(t),p(ce)):"("==e?p(g,y(")"),H(ue,")"),b,U,w,v):Ne&&"<"==t?p(y(">"),H(V,">"),b,ce):void 0}function ue(e){return"spread"==e||"modifier"==e?p(ue):h(Z,U,te)}function fe(e,t){return"variable"==e?de(e,t):he(e,t)}function de(e,t){if("variable"==e)return m(t),p(he)}function he(e,t){return"<"==t?p(y(">"),H(V,">"),b,he):"extends"==t||"implements"==t||Ne&&","==e?p(Ne?V:k,he):"{"==e?p(y("}"),pe,b):void 0}function pe(e,t){return"modifier"==e||"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t)&&Fe.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(Fe.marked="keyword",p(pe)):"variable"==e?(Fe.marked="property",p(Ne?me:ce,pe)):"["==e?p(k,x("]"),Ne?me:ce,pe):"*"==t?(Fe.marked="keyword",p(pe)):";"==e?p(pe):"}"==e?p():"@"==t?p(k,pe):void 0}function me(e,t){return"?"==t?p(me):":"==e?p(V,te):"="==t?p(C):h(ce)}function ge(e,t){return"*"==t?(Fe.marked="keyword",p(ke,x(";"))):"default"==t?(Fe.marked="keyword",p(k,x(";"))):"{"==e?p(H(ve,"}"),ke,x(";")):h(w)}function ve(e,t){return"as"==t?(Fe.marked="keyword",p(x("variable"))):"variable"==e?h(C,ve):void 0}function ye(e){return"string"==e?p():h(be,xe,ke)}function be(e,t){return"{"==e?j(be,"}"):("variable"==e&&m(t),"*"==t&&(Fe.marked="keyword"),p(we))}function xe(e){if(","==e)return p(be,xe)}function we(e,t){if("as"==t)return Fe.marked="keyword",p(be)}function ke(e,t){if("from"==t)return Fe.marked="keyword",p(k)}function Ce(e){return"]"==e?p():h(H(C,"]"))}function Se(e,t){return"operator"==e.lastType||","==e.lastType||Re.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function _e(e,t,n){return t.tokenize==o&&/^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}var Me,Le,Te=t.indentUnit,Ae=n.statementIndent,Oe=n.jsonld,Ee=n.json||Oe,Ne=n.typescript,Ie=n.wordCharacters||/[\w$\xa1-\uffff]/,Pe=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},a={if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:r,break:r,continue:r,new:e("new"),delete:r,throw:r,debugger:r,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:r,export:e("export"),import:e("import"),extends:r,await:r};if(Ne){var s={type:"variable",style:"type"},l={interface:e("class"),implements:r,namespace:r,module:e("module"),enum:e("module"),public:e("modifier"),private:e("modifier"),protected:e("modifier"),abstract:e("modifier"),readonly:e("modifier"),string:s,number:s,boolean:s,any:s};for(var c in l)a[c]=l[c]}return a}(),Re=/[+\-*&%=<>!?|~^@]/,Be=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,ze="([{}])",De={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},Fe={state:null,column:null,marked:null,cc:null},We={name:"this",next:{name:"arguments"}};return b.lex=!0,{startState:function(e){var t={tokenize:o,lastType:"sof",cc:[],lexical:new u((e||0)-Te,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(),c(e,t)),t.tokenize!=s&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==Me?n:(t.lastType="operator"!=Me||"++"!=Le&&"--"!=Le?Me:"incdec",d(t,n,Me,Le,e))},indent:function(t,r){if(t.tokenize==s)return e.Pass;if(t.tokenize!=o)return 0;var i,a=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==b)l=l.prev;else if(u!=re)break}for(;("stat"==l.type||"form"==l.type)&&("}"==a||(i=t.cc[t.cc.length-1])&&(i==T||i==A)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;Ae&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var f=l.type,d=a==f;return"vardef"==f?l.indented+("operator"==t.lastType||","==t.lastType?l.info+1:0):"form"==f&&"{"==a?l.indented:"form"==f?l.indented+Te:"stat"==f?l.indented+(Se(t,r)?Ae||Te:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:Te):l.indented+(/^(?:case|default)\b/.test(r)?Te:2*Te)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Ee?null:"/*",blockCommentEnd:Ee?null:"*/",lineComment:Ee?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Ee?"json":"javascript",jsonldMode:Oe,jsonMode:Ee,expressionAllowed:_e,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=k&&t!=C||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={},n=0;n<e.length;++n)t[e[n].toLowerCase()]=!0;return t}function n(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}e.defineMode("css",function(t,n){function r(e,t){return p=t,e}function i(e,t){var n=e.next();if(v[n]){var i=v[n](e,t);if(i!==!1)return i}return"@"==n?(e.eatWhile(/[\w\\\-]/),r("def",e.current())):"="==n||("~"==n||"|"==n)&&e.eat("=")?r(null,"compare"):'"'==n||"'"==n?(t.tokenize=o(n),t.tokenize(e,t)):"#"==n?(e.eatWhile(/[\w\\\-]/),r("atom","hash")):"!"==n?(e.match(/^\s*\w*/),r("keyword","important")):/\d/.test(n)||"."==n&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),r("number","unit")):"-"!==n?/[,+>*\/]/.test(n)?r(null,"select-op"):"."==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?r("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?r(null,n):"u"==n&&e.match(/rl(-prefix)?\(/)||"d"==n&&e.match("omain(")||"r"==n&&e.match("egexp(")?(e.backUp(1),t.tokenize=a,r("property","word")):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),r("property","word")):r(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),r("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?r("variable-2","variable-definition"):r("variable-2","variable")):e.match(/^\w+-/)?r("meta","meta"):void 0}function o(e){return function(t,n){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)&&(n.tokenize=null),r("string","string")}}function a(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=o(")"),r(null,"(")}function s(e,t,n){this.type=e,this.indent=t,this.prev=n}function l(e,t,n,r){return e.context=new s(n,t.indentation()+(r===!1?0:g),e.context),n}function c(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function u(e,t,n){return E[n.context.type](e,t,n)}function f(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return u(e,t,n)}function d(e){var t=e.current().toLowerCase();m=L.hasOwnProperty(t)?"atom":M.hasOwnProperty(t)?"keyword":"variable"}var h=n.inline;n.propertyKeywords||(n=e.resolveMode("text/css"));var p,m,g=t.indentUnit,v=n.tokenHooks,y=n.documentTypes||{},b=n.mediaTypes||{},x=n.mediaFeatures||{},w=n.mediaValueKeywords||{},k=n.propertyKeywords||{},C=n.nonStandardPropertyKeywords||{},S=n.fontProperties||{},_=n.counterDescriptors||{},M=n.colorKeywords||{},L=n.valueKeywords||{},T=n.allowNested,A=n.lineComment,O=n.supportsAtComponent===!0,E={};return E.top=function(e,t,n){if("{"==e)return l(n,t,"block");if("}"==e&&n.context.prev)return c(n);if(O&&/@component/.test(e))return l(n,t,"atComponentBlock");if(/^@(-moz-)?document$/.test(e))return l(n,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(e))return l(n,t,"atBlock");if(/^@(font-face|counter-style)/.test(e))return n.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return l(n,t,"at");if("hash"==e)m="builtin";else if("word"==e)m="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return l(n,t,"interpolation");if(":"==e)return"pseudo";if(T&&"("==e)return l(n,t,"parens")}return n.context.type},E.block=function(e,t,n){if("word"==e){var r=t.current().toLowerCase();return k.hasOwnProperty(r)?(m="property","maybeprop"):C.hasOwnProperty(r)?(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,n):(m="error","block")},E.maybeprop=function(e,t,n){return":"==e?l(n,t,"prop"):u(e,t,n)},E.prop=function(e,t,n){if(";"==e)return c(n);if("{"==e&&T)return l(n,t,"propBlock");if("}"==e||"{"==e)return f(e,t,n);if("("==e)return l(n,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 l(n,t,"interpolation")}else m+=" error";return"prop"},E.propBlock=function(e,t,n){return"}"==e?c(n):"word"==e?(m="property","maybeprop"):n.context.type},E.parens=function(e,t,n){return"{"==e||"}"==e?f(e,t,n):")"==e?c(n):"("==e?l(n,t,"parens"):"interpolation"==e?l(n,t,"interpolation"):("word"==e&&d(t),"parens")},E.pseudo=function(e,t,n){return"meta"==e?"pseudo":"word"==e?(m="variable-3",n.context.type):u(e,t,n)},E.documentTypes=function(e,t,n){return"word"==e&&y.hasOwnProperty(t.current())?(m="tag",n.context.type):E.atBlock(e,t,n)},E.atBlock=function(e,t,n){if("("==e)return l(n,t,"atBlock_parens");if("}"==e||";"==e)return f(e,t,n);if("{"==e)return c(n)&&l(n,t,T?"block":"top");if("interpolation"==e)return l(n,t,"interpolation");if("word"==e){var r=t.current().toLowerCase();m="only"==r||"not"==r||"and"==r||"or"==r?"keyword":b.hasOwnProperty(r)?"attribute":x.hasOwnProperty(r)?"property":w.hasOwnProperty(r)?"keyword":k.hasOwnProperty(r)?"property":C.hasOwnProperty(r)?"string-2":L.hasOwnProperty(r)?"atom":M.hasOwnProperty(r)?"keyword":"error"}return n.context.type},E.atComponentBlock=function(e,t,n){return"}"==e?f(e,t,n):"{"==e?c(n)&&l(n,t,T?"block":"top",!1):("word"==e&&(m="error"),n.context.type)},E.atBlock_parens=function(e,t,n){return")"==e?c(n):"{"==e||"}"==e?f(e,t,n,2):E.atBlock(e,t,n)},E.restricted_atBlock_before=function(e,t,n){return"{"==e?l(n,t,"restricted_atBlock"):"word"==e&&"@counter-style"==n.stateArg?(m="variable","restricted_atBlock_before"):u(e,t,n)},E.restricted_atBlock=function(e,t,n){return"}"==e?(n.stateArg=null,c(n)):"word"==e?(m="@font-face"==n.stateArg&&!S.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==n.stateArg&&!_.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},E.keyframes=function(e,t,n){return"word"==e?(m="variable","keyframes"):"{"==e?l(n,t,"top"):u(e,t,n)},E.at=function(e,t,n){return";"==e?c(n):"{"==e||"}"==e?f(e,t,n):("word"==e?m="tag":"hash"==e&&(m="builtin"),"at")},E.interpolation=function(e,t,n){return"}"==e?c(n):"{"==e||";"==e?f(e,t,n):("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 s(h?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var n=(t.tokenize||i)(e,t);return n&&"object"==typeof n&&(p=n[1],n=n[0]),m=n,"comment"!=p&&(t.state=E[t.state](p,e,t)),m},indent:function(e,t){var n=e.context,r=t&&t.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),
|
7 |
-
n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-g)):(n=n.prev,i=n.indent)),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:A,fold:"brace"}});var r=["domain","regexp","url","url-prefix"],i=t(r),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=t(o),s=["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"],l=t(s),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","caret-color","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","justify-items","justify-self","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","place-content","place-items","place-self","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","self-start","self-end","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","space-evenly","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=r.concat(o).concat(s).concat(c).concat(f).concat(h).concat(b).concat(w);e.registerHelper("hintWords","css",C),e.defineMIME("text/css",{documentTypes:i,mediaTypes:a,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:x,valueKeywords:k,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=n,n(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:a,mediaFeatures:l,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=n,n(e,t)):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/,!1)&&[null,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:l,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=n,n(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:l,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:x,valueKeywords:k,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=n,n(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,n){var r=e.current(),i=r.search(t);return i>-1?e.backUp(r.length-i):r.match(/<\/?$/)&&(e.backUp(r.length),e.match(t,!1)||e.match(r)),n}function n(e){var t=l[e];return t?t:l[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")}function r(e,t){var r=e.match(n(t));return r?/^\s*(.*?)\s*$/.exec(r[2])[1]:""}function i(e,t){return new RegExp((t?"^":"")+"</s*"+e+"s*>","i")}function o(e,t){for(var n in e)for(var r=t[n]||(t[n]=[]),i=e[n],o=i.length-1;o>=0;o--)r.unshift(i[o])}function a(e,t){for(var n=0;n<e.length;n++){var i=e[n];if(!i[0]||i[1].test(r(t,i[0])))return i[2]}}var s={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"]]},l={};e.defineMode("htmlmixed",function(n,r){function l(r,o){var s,f=c.token(r,o.htmlState),d=/\btag\b/.test(f);if(d&&!/[<>\s\/]/.test(r.current())&&(s=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&u.hasOwnProperty(s))o.inTag=s+" ";else if(o.inTag&&d&&/>$/.test(r.current())){var h=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==r.current()&&a(u[h[1]],h[2]),m=e.getMode(n,p),g=i(h[1],!0),v=i(h[1],!1);o.token=function(e,n){return e.match(g,!1)?(n.token=l,n.localState=n.localMode=null,null):t(e,v,n.localMode.token(e,n.localState))},o.localMode=m,o.localState=e.startState(m,c.indent(o.htmlState,""))}else o.inTag&&(o.inTag+=r.current(),r.eol()&&(o.inTag+=" "));return f}var c=e.getMode(n,{name:"xml",htmlMode:!0,multilineTagIndentFactor:r.multilineTagIndentFactor,multilineTagIndentPastTag:r.multilineTagIndentPastTag}),u={},f=r&&r.tags,d=r&&r.scriptTypes;if(o(s,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:l,inTag:null,localMode:null,localState:null,htmlState:e.startState(c)}},copyState:function(t){var n;return t.localState&&(n=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:n,htmlState:e.copyState(c,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,n,r){return!t.localMode||/^\s*<\//.test(n)?c.indent(t.htmlState,n):t.localMode.indent?t.localMode.indent(t.localState,n,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,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.info=r,this.align=i,this.prev=o}function n(e,n,r,i){var o=e.indented;return e.context&&"statement"==e.context.type&&"statement"!=r&&(o=e.context.indented),e.context=new t(o,n,r,i,null,e.context)}function r(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function i(e,t,n){return"variable"==t.prevToken||"type"==t.prevToken||(!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||(!(!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={},n=e.split(" "),r=0;r<n.length;++r)t[n[r]]=!0;return t}function s(e,t){return"function"==typeof e?e(t):e.propertyIsEnumerable(t)}function l(e,t){if(!t.startOfLine)return!1;for(var n,r=null;n=e.peek();){if("\\"==n&&e.match(/^.$/)){r=l;break}if("/"==n&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=r,"meta"}function c(e,t){return"type"==t.prevToken&&"type"}function u(e){return e.eatWhile(/[\w\.']/),"number"}function f(e,t){if(e.backUp(1),e.match(/(R|u8R|uR|UR|LR)/)){var n=e.match(/"([^\s\\()]{0,16})\(/);return!!n&&(t.cpp11RawStringDelim=n[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 n;null!=(n=e.next());)if('"'==n&&!e.eat('"')){t.tokenize=null;break}return"string"}function p(e,t){var n=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+n+'"'))?t.tokenize=null:e.skipToEnd(),"string"}function m(t,n){function r(e){if(e)for(var t in e)e.hasOwnProperty(t)&&i.push(t)}"string"==typeof t&&(t=[t]);var i=[];r(n.keywords),r(n.types),r(n.builtin),r(n.atoms),i.length&&(n.helperType=t[0],e.registerHelper("hintWords",t[0],i));for(var o=0;o<t.length;++o)e.defineMIME(t[o],n)}function g(e,t){for(var n=!1;!e.eol();){if(!n&&e.match('"""')){t.tokenize=null;break}n="\\"==e.next()&&!n}return"string"}function v(e){return function(t,n){for(var r,i=!1,o=!1;!t.eol();){if(!e&&!i&&t.match('"')){o=!0;break}if(e&&t.match('"""')){o=!0;break}r=t.next(),!i&&"$"==r&&t.match("{")&&t.skipTo("}"),i=!i&&"\\"==r&&!e}return!o&&e||(n.tokenize=null),"string"}}function y(e){return function(t,n){for(var r,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}r=t.next(),i="single"==e&&!i&&"\\"==r}return o&&(n.tokenize=null),"string"}}e.defineMode("clike",function(a,l){function c(e,t){var n=e.next();if(S[n]){var r=S[n](e,t);if(r!==!1)return r}if('"'==n||"'"==n)return t.tokenize=u(n),t.tokenize(e,t);if(A.test(n))return h=n,null;if(O.test(n)){if(e.backUp(1),e.match(E))return"number";e.next()}if("/"==n){if(e.eat("*"))return t.tokenize=f,f(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(N.test(n)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(N););return"operator"}if(e.eatWhile(I),T)for(;e.match(T);)e.eatWhile(I);var i=e.current();return s(y,i)?(s(w,i)&&(h="newstatement"),s(k,i)&&(p=!0),"keyword"):s(b,i)?"type":s(x,i)?(s(w,i)&&(h="newstatement"),"builtin"):s(C,i)?"atom":"variable"}function u(e){return function(t,n){for(var r,i=!1,o=!1;null!=(r=t.next());){if(r==e&&!i){o=!0;break}i=!i&&"\\"==r}return(o||!i&&!_)&&(n.tokenize=null),"string"}}function f(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function d(e,t){l.typeFirstDefinitions&&e.eol()&&o(t.context)&&(t.typeAtEndOfLine=i(e,t,e.pos))}var h,p,m=a.indentUnit,g=l.statementIndentUnit||m,v=l.dontAlignCalls,y=l.keywords||{},b=l.types||{},x=l.builtin||{},w=l.blockKeywords||{},k=l.defKeywords||{},C=l.atoms||{},S=l.hooks||{},_=l.multiLineStrings,M=l.indentStatements!==!1,L=l.indentSwitch!==!1,T=l.namespaceSeparator,A=l.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,O=l.numberStart||/[\d\.]/,E=l.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,N=l.isOperatorChar||/[+\-*&%=<>!?|\/]/,I=l.isIdentifierChar||/[\w\$_\xa1-\uffff]/;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 s=(t.tokenize||c)(e,t);if("comment"==s||"meta"==s)return s;if(null==a.align&&(a.align=!0),";"==h||":"==h||","==h&&e.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==t.context.type;)r(t);else if("{"==h)n(t,e.column(),"}");else if("["==h)n(t,e.column(),"]");else if("("==h)n(t,e.column(),")");else if("}"==h){for(;"statement"==a.type;)a=r(t);for("}"==a.type&&(a=r(t));"statement"==a.type;)a=r(t)}else h==a.type?r(t):M&&(("}"==a.type||"top"==a.type)&&";"!=h||"statement"==a.type&&"newstatement"==h)&&n(t,e.column(),"statement",e.current());if("variable"==s&&("def"==t.prevToken||l.typeFirstDefinitions&&i(e,t,e.start)&&o(t.context)&&e.match(/^\s*\(/,!1))&&(s="def"),S.token){var u=S.token(e,t,s);void 0!==u&&(s=u)}return"def"==s&&l.styleDefs===!1&&(s="variable"),t.startOfLine=!1,t.prevToken=p?"def":s||h,d(e,t),s},indent:function(t,n){if(t.tokenize!=c&&null!=t.tokenize||t.typeAtEndOfLine)return e.Pass;var r=t.context,i=n&&n.charAt(0);if("statement"==r.type&&"}"==i&&(r=r.prev),l.dontIndentStatements)for(;"statement"==r.type&&l.dontIndentStatements.test(r.info);)r=r.prev;if(S.indent){var o=S.indent(t,r,n);if("number"==typeof o)return o}var a=i==r.type,s=r.prev&&"switch"==r.prev.info;if(l.allmanIndentation&&/[{(]/.test(i)){for(;"top"!=r.type&&"}"!=r.type;)r=r.prev;return r.indented}return"statement"==r.type?r.indented+("{"==i?0:g):!r.align||v&&")"==r.type?")"!=r.type||a?r.indented+(a?0:m)+(a||!s||/^(?:case|default)\b/.test(n)?0:m):r.indented+g:r.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:{"#":l,"*":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$/,isIdentifierChar:/[\w\$_~\xa1-\uffff]/,hooks:{"#":l,"*":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,n){if("variable"==n&&"("==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,
|
8 |
-
blockKeywords:a("catch class enum do else finally for forSome if match switch try while"),defKeywords:a("class enum 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,n){var r=n.context;return!("}"!=r.type||!r.align||!e.eat(">"))&&(n.context=new t(r.indented,r.column,r.type,r.info,null,r.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:{"#":l},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:{"#":l},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"},"#":l,indent:function(e,t,n){if("statement"==t.type&&/^@\w/.test(n))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:{"#":l},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,n){if(("variable"==n||"type"==n)&&"."==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={},n=e.split(" "),r=0;r<n.length;++r)t[n[r]]=!0;return t}function n(e,t,i){return 0==e.length?r(t):function(o,a){for(var s=e[0],l=0;l<s.length;l++)if(o.match(s[l][0]))return a.tokenize=n(e.slice(1),t),s[l][1];return a.tokenize=r(t,i),"string"}}function r(e,t){return function(n,r){return i(n,r,e,t)}}function i(e,t,r,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=n([[["[",null]],[[/\d[\w\.]*/,"number"],[/\$[a-zA-Z_][a-zA-Z0-9_]*/,"variable-2"],[/[\w\$]+/,"variable"]],[["]",null]]],r,i)),e.match(/\-\>\w/,!1)&&(t.tokenize=n([[["->",null]],[[/[\w]+/,"variable"]]],r,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(r)){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__",s="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,s].join(" ").split(" ")),e.registerHelper("wordChars","php",/[\w$]/);var l={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(s),multiLineStrings:!0,hooks:{$:function(e){return e.eatWhile(/[\w\$_]/),"variable-2"},"<":function(e,t){var n;if(n=e.match(/<<\s*/)){var i=e.eat(/['"]/);e.eatWhile(/[\w\.]/);var o=e.current().slice(n[0].length+(i?2:1));if(i&&e.eat(i),o)return(t.tokStack||(t.tokStack=[])).push(o,0),t.tokenize=r(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=r('"'),"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=r(t.tokStack[t.tokStack.length-2])),!1}}};e.defineMode("php",function(t,n){function r(t,n){var r=n.curMode==o;if(t.sol()&&n.pending&&'"'!=n.pending&&"'"!=n.pending&&(n.pending=null),r)return r&&null==n.php.tokenize&&t.match("?>")?(n.curMode=i,n.curState=n.html,n.php.context.prev||(n.php=null),"meta"):o.token(t,n.curState);if(t.match(/^<\?\w*/))return n.curMode=o,n.php||(n.php=e.startState(o,i.indent(n.html,""))),n.curState=n.php,"meta";if('"'==n.pending||"'"==n.pending){for(;!t.eol()&&t.next()!=n.pending;);var a="string"}else if(n.pending&&t.pos<n.pending.end){t.pos=n.pending.end;var a=n.pending.style}else var a=i.token(t,n.curState);n.pending&&(n.pending=null);var s,l=t.current(),c=l.search(/<\?/);return c!=-1&&("string"==a&&(s=l.match(/[\'\"]$/))&&!/\?>/.test(l)?n.pending=s[0]:n.pending={end:t.pos,style:a},t.backUp(l.length-c)),a}var i=e.getMode(t,"text/html"),o=e.getMode(t,l);return{startState:function(){var t=e.startState(i),r=n.startOpen?e.startState(o):null;return{html:t,php:r,curMode:n.startOpen?o:i,curState:n.startOpen?r:t,pending:null}},copyState:function(t){var n,r=t.html,a=e.copyState(i,r),s=t.php,l=s&&e.copyState(o,s);return n=t.curMode==i?a:l,{html:a,php:l,curMode:t.curMode,curState:n,pending:t.pending}},token:r,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",l)}),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,n){function r(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 n=function(e,t){return e.next(),t.tokenize=r,"comment"};return n.isInEscape=!0,"]"===e.next()&&"]"===e.peek()&&(t.tokenize=n),e.eatWhile(/[^\]]/),null}function o(e,t){var n=e.next();if("]"===n||"/"===n&&e.eat("]"))return t.tokenize=r,C="endTag","tag bracket";if("="===n)return C="equals",null;if("["===n){t.tokenize=r,t.state=c,t.tagName=t.tagStart=null;var i=t.tokenize(e,t);return i?i+" tag error":"tag error"}return/[\'\"]/.test(n)?(t.tokenize=a(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=\[\]\"\']*[^\s\u00a0=\[\]\"\'\/]/),"word")}function a(e){var t=function(t,n){var r=t.next();return r===e?(n.tokenize=o,"string"):/[\[\]]/.test(r)?"string error":(t.eatWhile(/[^\[\]\'\"]/),"string")};return t.isInAttribute=!0,t}function s(e,t,n){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=n}function l(e){e.context&&(e.context=e.context.prev)}function c(e,t,n){return"openTag"===e?(n.tagStart=t.column(),u):"closeTag"===e?f:c}function u(e,t,n){if("word"===e){var r=t.current();return/[\[\]\/\'\"<>&]/.test(r)?S="error":(n.tagName=t.current(),S="tag"),p}return S="error",u}function f(e,t,n){if("word"===e){var r=t.current();if(n.context&&n.context.tagName===r||b.matchClosing===!1)return S="tag",d;if(n.context&&n.context.tagHistory.indexOf(r)>0){for(var i=n.context.tagHistory.indexOf(r),o=0;o<i;o++)l(n);return S="tag",d}return S="tag error",h}return S="error",h}function d(e,t,n){return"endTag"!==e?(S="error",d):(l(n),c)}function h(e,t,n){return S="error",d(e,t,n)}function p(e,t,n){if("word"===e)return S=/^[a-z0-9_\-]+$/i.test(t.current())?"attribute":"error",m;if("endTag"===e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,n.context=new s(n,r,i===n.indented),c}return S="error",p}function m(e,t,n){return"equals"===e?g:(b.allowMissing||(S="error"),p(e,t,n))}function g(e,t,n){return"string"===e?v:"word"===e&&b.allowUnquoted?(S="string",p):(S="error",p(e,t,n))}function v(e,t,n){return"string"===e?v:p(e,t,n)}var y=e.indentUnit,b={},x=t;for(var w in x)b[w]=x[w];for(var k in n)b[k]=n[k];var C,S;return r.isInText=!0,i.isInEscape=!0,{startState:function(e){var t={tokenize:r,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 n=t.tokenize(e,t);return(n||C)&&"comment"!==n&&(S=null,t.state=t.state(C||n,e,t),S&&(n="error"===S?n+" error":S)),n},indent:function(e,t,n){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!==r)return n?n.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,n){function r(e,t){t.isInShortcode=!0;var n=s.token(e,t.shortcodeState),r=t.shortcodeState.tokenize.isInText,o=t.shortcodeState.tokenize.isInEscape;if(r)t.token=i;else if(o&&/\]/.test(e.current())){var a=e.current(),l=a.search(/\]/);e.backUp(a.length-l-1),"]"!==e.peek()&&(t.token=i)}return n}function i(e,t){t.isInShortcode=!1;var n=a.token(e,t.htmlmixedState),i=t.htmlmixedState.htmlState.tokenize.isInText;if(i&&/\[/.test(e.current())&&!t.htmlmixedState.localState&&null===n){var l=e.current(),c=l.search(/\[/);e.backUp(l.length-c),null==t.shortcodeState&&(t.shortcodeState=s.startState(a.indent(t.htmlmixedState,""))),t.token=r}else i&&/<!\-\-more|<!\-\-(noteaser|nextpage)\-\->?/.test(e.current())&&!t.htmlmixedState.localState&&"comment"===n&&(e.backUp(e.current().length),t.token=o);return n}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:n.multilineTagIndentFactor,multilineTagIndentPastTag:n.multilineTagIndentPastTag}),s=e.getMode(t,{name:"shortcode",multilineTagIndentFactor:n.multilineTagIndentFactor,multilineTagIndentPastTag:n.multilineTagIndentPastTag});return{startState:function(){return{token:i,isInShortcode:!1,shortcodeState:null,htmlmixedState:a.startState()}},copyState:function(t){var n;return t.shortcodeState&&(n=e.copyState(s,t.shortcodeState)),{token:t.token,shortcodeState:n,htmlmixedState:e.copyState(a,t.htmlmixedState)}},token:function(e,t){return t.token(e,t)},indent:function(t,n){return t.isInShortcode?t.isInShortcode?s.indent(t.shortcodeState,n):e.Pass:a.indent(t.htmlmixedState,n)},innerMode:function(e){return e.isInShortcode?{state:e.shortcodeState,mode:s}:{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",s)}function n(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function r(e,r){for(var i=[],l=0;l<r.length;l++){var c=r[l],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)}}n(e.state.activeLines,i)||e.operation(function(){t(e);for(var n=0;n<i.length;n++)e.addLineClass(i[n],"wrap",o),e.addLineClass(i[n],"background",a),e.addLineClass(i[n],"gutter",s);e.state.activeLines=i})}function i(e,t){r(e,t.ranges)}var o="CodeMirror-activeline",a="CodeMirror-activeline-background",s="CodeMirror-activeline-gutter";e.defineOption("styleActiveLine",!1,function(n,o,a){var s=a!=e.Init&&a;o!=s&&(s&&(n.off("beforeSelectionChange",i),t(n),delete n.state.activeLines),o&&(n.state.activeLines=[],r(n,n.listSelections()),n.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){var t=e.flags;return null!=t?t:(e.ignoreCase?"i":"")+(e.global?"g":"")+(e.multiline?"m":"")}function n(e){return e.global?e:new RegExp(e.source,t(e)+"g")}function r(e){return/\\s|\\n|\n|\\W|\\D|\[\^/.test(e.source)}function i(e,t,r){t=n(t);for(var i=r.line,o=r.ch,a=e.lastLine();i<=a;i++,o=0){t.lastIndex=o;var s=e.getLine(i),l=t.exec(s);if(l)return{from:m(i,l.index),to:m(i,l.index+l[0].length),match:l}}}function o(e,t,o){if(!r(t))return i(e,t,o);t=n(t);for(var a,s=1,l=o.line,c=e.lastLine();l<=c;){for(var u=0;u<s;u++){var f=e.getLine(l++);a=null==a?f:a+"\n"+f}s*=2,t.lastIndex=o.ch;var d=t.exec(a);if(d){var h=a.slice(0,d.index).split("\n"),p=d[0].split("\n"),g=o.line+h.length-1,v=h[h.length-1].length;return{from:m(g,v),to:m(g+p.length-1,1==p.length?v+p[0].length:p[p.length-1].length),match:d}}}}function a(e,t){for(var n,r=0;;){t.lastIndex=r;var i=t.exec(e);if(!i)return n;if(n=i,(r=n.index+(n[0].length||1))==e.length)return n}}function s(e,t,r){t=n(t);for(var i=r.line,o=r.ch,s=e.firstLine();i>=s;i--,o=-1){var l=e.getLine(i);o>-1&&(l=l.slice(0,o));var c=a(l,t);if(c)return{from:m(i,c.index),to:m(i,c.index+c[0].length),match:c}}}function l(e,t,r){t=n(t);for(var i,o=1,s=r.line,l=e.firstLine();s>=l;){for(var c=0;c<o;c++){var u=e.getLine(s--);i=null==i?u.slice(0,r.ch):u+"\n"+i}o*=2;var f=a(i,t);if(f){var d=i.slice(0,f.index).split("\n"),h=f[0].split("\n"),p=s+d.length,g=d[d.length-1].length;return{from:m(p,g),to:m(p+h.length-1,1==h.length?g+h[0].length:h[h.length-1].length),match:f}}}}function c(e,t,n,r){if(e.length==t.length)return n;for(var i=0,o=n+Math.max(0,e.length-t.length);;){if(i==o)return i;var a=i+o>>1,s=r(e.slice(0,a)).length;if(s==n)return a;s>n?o=a:i=a+1}}function u(e,t,n,r){if(!t.length)return null;var i=r?h:p,o=i(t).split(/\r|\n\r?/);e:for(var a=n.line,s=n.ch,l=e.lastLine()+1-o.length;a<=l;a++,s=0){var u=e.getLine(a).slice(s),f=i(u);if(1==o.length){var d=f.indexOf(o[0]);if(d==-1)continue e;var n=c(u,f,d,i)+s;return{from:m(a,c(u,f,d,i)+s),to:m(a,c(u,f,d+o[0].length,i)+s)}}var g=f.length-o[0].length;if(f.slice(g)==o[0]){for(var v=1;v<o.length-1;v++)if(i(e.getLine(a+v))!=o[v])continue e;var y=e.getLine(a+o.length-1),b=i(y),x=o[o.length-1];if(y.slice(0,x.length)==x)return{from:m(a,c(u,f,g,i)+s),to:m(a+o.length-1,c(y,b,x.length,i))}}}}function f(e,t,n,r){if(!t.length)return null;var i=r?h:p,o=i(t).split(/\r|\n\r?/);e:for(var a=n.line,s=n.ch,l=e.firstLine()-1+o.length;a>=l;a--,s=-1){var u=e.getLine(a);s>-1&&(u=u.slice(0,s));var f=i(u);if(1==o.length){var d=f.lastIndexOf(o[0]);if(d==-1)continue e;return{from:m(a,c(u,f,d,i)),to:m(a,c(u,f,d+o[0].length,i))}}var g=o[o.length-1];if(f.slice(0,g.length)==g){for(var v=1,n=a-o.length+1;v<o.length-1;v++)if(i(e.getLine(n+v))!=o[v])continue e;var y=e.getLine(a+1-o.length),b=i(y);if(b.slice(b.length-o[0].length)==o[0])return{from:m(a+1-o.length,c(y,b,y.length-o[0].length,i)),to:m(a,c(u,f,g.length,i))}}}}function d(e,t,r,a){this.atOccurrence=!1,this.doc=e,r=r?e.clipPos(r):m(0,0),this.pos={from:r,to:r};var c;"object"==typeof a?c=a.caseFold:(c=a,a=null),"string"==typeof t?(null==c&&(c=!1),this.matches=function(n,r){return(n?f:u)(e,t,r,c)}):(t=n(t),a&&a.multiline===!1?this.matches=function(n,r){return(n?s:i)(e,t,r)}:this.matches=function(n,r){return(n?l:o)(e,t,r)})}var h,p,m=e.Pos;String.prototype.normalize?(h=function(e){return e.normalize("NFD").toLowerCase()},p=function(e){return e.normalize("NFD")
|
9 |
-
}):(h=function(e){return e.toLowerCase()},p=function(e){return e}),d.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){for(var n=this.matches(t,this.doc.clipPos(t?this.pos.from:this.pos.to));n&&0==e.cmpPos(n.from,n.to);)t?n.from.ch?n.from=m(n.from.line,n.from.ch-1):n=n.from.line==this.doc.firstLine()?null:this.matches(t,this.doc.clipPos(m(n.from.line-1))):n.to.ch<this.doc.getLine(n.to.line).length?n.to=m(n.to.line,n.to.ch+1):n=n.to.line==this.doc.lastLine()?null:this.matches(t,m(n.to.line+1,0));if(n)return this.pos=n,this.atOccurrence=!0,this.pos.match||!0;var r=m(t?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:r,to:r},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var r=e.splitLines(t);this.doc.replaceRange(r,this.pos.from,this.pos.to,n),this.pos.to=m(this.pos.from.line+r.length-1,r[r.length-1].length+(1==r.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,t,n){return new d(this.doc,e,t,n)}),e.defineDocExtension("getSearchCursor",function(e,t,n){return new d(this,e,t,n)}),e.defineExtension("selectMatches",function(t,n){for(var r=[],i=this.getSearchCursor(t,this.getCursor("from"),n);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor("to"))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,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 n=e.exec(t.string);if(n&&n.index==t.pos)return t.pos+=n[0].length||1,"searching";n?t.pos=n.index:t.skipToEnd()}}}function n(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function r(e){return e.state.search||(e.state.search=new n)}function i(e){return"string"==typeof e&&e==e.toLowerCase()}function o(e,t,n){return e.getSearchCursor(t,n,{caseFold:i(t),multiline:!0})}function a(e,t,n,r,i){e.openDialog(t,r,{value:n,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){p(e)},onKeyDown:i})}function s(e,t,n,r,i){e.openDialog?e.openDialog(t,i,{value:r,selectValueOnOpen:!0}):i(prompt(n,r))}function l(e,t,n,r){e.openConfirm?e.openConfirm(t,r):confirm(n)&&r[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,n,r){n.queryText=r,n.query=u(r),e.removeOverlay(n.overlay,i(n.query)),n.overlay=t(n.query,i(n.query)),e.addOverlay(n.overlay),e.showMatchesOnScrollbar&&(n.annotate&&(n.annotate.clear(),n.annotate=null),n.annotate=e.showMatchesOnScrollbar(n.query,i(n.query)))}function d(t,n,i,o){var l=r(t);if(l.query)return h(t,n);var c=t.getSelection()||l.lastQuery;if(i&&t.openDialog){var u=null,d=function(n,r){e.e_stop(r),n&&(n!=l.queryText&&(f(t,l,n),l.posFrom=l.posTo=t.getCursor()),u&&(u.style.opacity=1),h(t,r.shiftKey,function(e,n){var r;n.line<3&&document.querySelector&&(r=t.display.wrapper.querySelector(".CodeMirror-dialog"))&&r.getBoundingClientRect().bottom-4>t.cursorCoords(n,"window").top&&((u=r).style.opacity=.4)}))};a(t,v,c,d,function(n,i){var o=e.keyName(n),a=t.getOption("extraKeys"),s=a&&a[o]||e.keyMap[t.getOption("keyMap")][o];"findNext"==s||"findPrev"==s||"findPersistentNext"==s||"findPersistentPrev"==s?(e.e_stop(n),f(t,r(t),i),t.execCommand(s)):"find"!=s&&"findPersistent"!=s||(e.e_stop(n),d(i,n))}),o&&c&&(f(t,l,c),h(t,n))}else s(t,v,"Search for:",c,function(e){e&&!l.query&&t.operation(function(){f(t,l,e),l.posFrom=l.posTo=t.getCursor(),h(t,n)})})}function h(t,n,i){t.operation(function(){var a=r(t),s=o(t,a.query,n?a.posFrom:a.posTo);(s.find(n)||(s=o(t,a.query,n?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0)),s.find(n)))&&(t.setSelection(s.from(),s.to()),t.scrollIntoView({from:s.from(),to:s.to()},20),a.posFrom=s.from(),a.posTo=s.to(),i&&i(s.from(),s.to()))})}function p(e){e.operation(function(){var t=r(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,n){e.operation(function(){for(var r=o(e,t);r.findNext();)if("string"!=typeof t){var i=e.getRange(r.from(),r.to()).match(t);r.replace(n.replace(/\$(\d)/g,function(e,t){return i[t]}))}else r.replace(n)})}function g(e,t){if(!e.getOption("readOnly")){var n=e.getSelection()||r(e).lastQuery,i='<span class="CodeMirror-search-label">'+(t?"Replace all:":"Replace:")+"</span>";s(e,i+y,i,n,function(n){n&&(n=u(n),s(e,b,"Replace with:","",function(r){if(r=c(r),t)m(e,n,r);else{p(e);var i=o(e,n,e.getCursor("from")),a=function(){var t,c=i.from();!(t=i.findNext())&&(i=o(e,n),!(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()}),l(e,x,"Replace?",[function(){s(t)},a,function(){m(e,n,r)}]))},s=function(e){i.replace("string"==typeof n?r:r.replace(/\$(\d)/g,function(t,n){return e[n]})),a()};a()}}))})}}var v='<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>',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='<span class="CodeMirror-search-label">With:</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/>',x='<span class="CodeMirror-search-label">Replace?</span> <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,n){var r,i=e.getWrapperElement();return r=i.appendChild(document.createElement("div")),r.className=n?"CodeMirror-dialog CodeMirror-dialog-bottom":"CodeMirror-dialog CodeMirror-dialog-top","string"==typeof t?r.innerHTML=t:r.appendChild(t),r}function n(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}e.defineExtension("openDialog",function(r,i,o){function a(e){if("string"==typeof e)f.value=e;else{if(c)return;c=!0,l.parentNode.removeChild(l),u.focus(),o.onClose&&o.onClose(l)}}o||(o={}),n(this,null);var s,l=t(this,r,o.bottom),c=!1,u=this,f=l.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)):(s=l.getElementsByTagName("button")[0])&&(e.on(s,"click",function(){a(),u.focus()}),o.closeOnBlur!==!1&&e.on(s,"blur",a),s.focus()),a}),e.defineExtension("openConfirm",function(r,i,o){function a(){c||(c=!0,s.parentNode.removeChild(s),u.focus())}n(this,null);var s=t(this,r,o&&o.bottom),l=s.getElementsByTagName("button"),c=!1,u=this,f=1;l[0].focus();for(var d=0;d<l.length;++d){var h=l[d];!function(t){e.on(h,"click",function(n){e.e_preventDefault(n),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(r,i){function o(){l||(l=!0,clearTimeout(a),s.parentNode.removeChild(s))}n(this,o);var a,s=t(this,r,i&&i.bottom),l=!1,c=i&&void 0!==i.duration?i.duration:5e3;return e.on(s,"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,n,r){function i(t){var n=e.wheelEventPixels(t)["horizontal"==o.orientation?"x":"y"],r=o.pos;o.moveTo(o.pos+n),o.pos!=r&&e.e_preventDefault(t)}this.orientation=n,this.scroll=r,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=t+"-"+n,this.inner=this.node.appendChild(document.createElement("div"));var o=this;e.on(this.inner,"mousedown",function(t){function n(){e.off(document,"mousemove",r),e.off(document,"mouseup",n)}function r(e){if(1!=e.which)return n();o.moveTo(s+(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],s=o.pos;e.on(document,"mousemove",r),e.on(document,"mouseup",n)}}),e.on(this.node,"click",function(t){e.e_preventDefault(t);var n,r=o.inner.getBoundingClientRect();n="horizontal"==o.orientation?t.clientX<r.left?-1:t.clientX>r.right?1:0:t.clientY<r.top?-1:t.clientY>r.bottom?1:0,o.moveTo(o.pos+n*o.screen)}),e.on(this.node,"mousewheel",i),e.on(this.node,"DOMMouseScroll",i)}function n(e,n,r){this.addClass=e,this.horiz=new t(e,"horizontal",r),n(this.horiz.node),this.vert=new t(e,"vertical",r),n(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,n){var r=this.screen!=t||this.total!=e||this.size!=n;r&&(this.screen=t,this.total=e,this.size=n);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,r)},n.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 n=this.width||0,r=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=r?"block":"none",i&&(this.vert.update(e.scrollHeight,e.clientHeight,e.viewHeight-(r?n:0)),this.vert.node.style.bottom=r?n+"px":"0"),r&&(this.horiz.update(e.scrollWidth,e.clientWidth,e.viewWidth-(i?n:0)-e.barLeft),this.horiz.node.style.right=i?n+"px":"0",this.horiz.node.style.left=e.barLeft+"px"),{right:i?n:0,bottom:r?n:0}},n.prototype.setScrollTop=function(e){this.vert.setPos(e)},n.prototype.setScrollLeft=function(e){this.horiz.setPos(e)},n.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 n("CodeMirror-simplescroll",e,t)},e.scrollbarModel.overlay=function(e,t){return new n("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 n(e,t,n){return/\bstring\b/.test(e.getTokenTypeAt(a(t.line,0)))&&!/^[\'\"\`]/.test(n)}function r(e,t){var n=e.getMode();return n.useInnerComments!==!1&&n.innerMode?e.getModeAt(t):n}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,n=1/0,r=this.listSelections(),o=null,s=r.length-1;s>=0;s--){var l=r[s].from(),c=r[s].to();l.line>=n||(c.line>=n&&(c=a(n,0)),n=l.line,null==o?t.uncomment(l,c,e)?o="un":(t.lineComment(l,c,e),o="line"):"un"==o?t.uncomment(l,c,e):t.lineComment(l,c,e))}}),e.defineExtension("lineComment",function(e,s,l){l||(l=i);var c=this,u=r(c,e),f=c.getLine(e.line);if(null!=f&&!n(c,e,f)){var d=l.lineComment||u.lineComment;if(!d)return void((l.blockCommentStart||u.blockCommentStart)&&(l.fullLines=!0,c.blockComment(e,s,l)));var h=Math.min(0!=s.ch||s.line==e.line?s.line+1:s.line,c.lastLine()+1),p=null==l.padding?" ":l.padding,m=l.commentBlankLines||e.line==s.line;c.operation(function(){if(l.indent){for(var n=null,r=e.line;r<h;++r){var i=c.getLine(r),s=i.slice(0,t(i));(null==n||n.length>s.length)&&(n=s)}for(var r=e.line;r<h;++r){var i=c.getLine(r),u=n.length;(m||o.test(i))&&(i.slice(0,u)!=n&&(u=t(i)),c.replaceRange(n+d+p,a(r,0),a(r,u)))}}else for(var r=e.line;r<h;++r)(m||o.test(c.getLine(r)))&&c.replaceRange(d+p,a(r,0))})}}),e.defineExtension("blockComment",function(e,t,n){n||(n=i);var s=this,l=r(s,e),c=n.blockCommentStart||l.blockCommentStart,u=n.blockCommentEnd||l.blockCommentEnd;if(!c||!u)return void((n.lineComment||l.lineComment)&&0!=n.fullLines&&s.lineComment(e,t,n));if(!/\bcomment\b/.test(s.getTokenTypeAt(a(e.line,0)))){var f=Math.min(t.line,s.lastLine());f!=e.line&&0==t.ch&&o.test(s.getLine(f))&&--f;var d=null==n.padding?" ":n.padding;e.line>f||s.operation(function(){if(0!=n.fullLines){var r=o.test(s.getLine(f));s.replaceRange(d+u,a(f)),s.replaceRange(c+d,a(e.line,0));var i=n.blockCommentLead||l.blockCommentLead;if(null!=i)for(var h=e.line+1;h<=f;++h)(h!=f||r)&&s.replaceRange(i+d,a(h,0))}else s.replaceRange(u,t),s.replaceRange(c,e)})}}),e.defineExtension("uncomment",function(e,t,n){n||(n=i);var s,l=this,c=r(l,e),u=Math.min(0!=t.ch||t.line==e.line?t.line:t.line-1,l.lastLine()),f=Math.min(e.line,u),d=n.lineComment||c.lineComment,h=[],p=null==n.padding?" ":n.padding;e:if(d){for(var m=f;m<=u;++m){var g=l.getLine(m),v=g.indexOf(d);if(v>-1&&!/comment/.test(l.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(l.operation(function(){for(var e=f;e<=u;++e){var t=h[e-f],n=t.indexOf(d),r=n+d.length;n<0||(t.slice(r,r+p.length)==p&&(r+=p.length),s=!0,l.replaceRange("",a(e,n),a(e,r)))}}),s)return!0}var y=n.blockCommentStart||c.blockCommentStart,b=n.blockCommentEnd||c.blockCommentEnd;if(!y||!b)return!1;var x=n.blockCommentLead||c.blockCommentLead,w=l.getLine(f),k=w.indexOf(y);if(k==-1)return!1;var C=u==f?w:l.getLine(u),S=C.indexOf(b,u==f?k+y.length:0);S==-1&&f!=u&&(C=l.getLine(--u),S=C.indexOf(b));var _=a(f,k+1),M=a(u,S+1);if(S==-1||!/comment/.test(l.getTokenTypeAt(_))||!/comment/.test(l.getTokenTypeAt(M))||l.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)&&(l.operation(function(){l.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),l.replaceRange("",a(f,k),a(f,e)),x)for(var t=f+1;t<=u;++t){var n=l.getLine(t),r=n.indexOf(x);if(r!=-1&&!o.test(n.slice(0,r))){var i=r+x.length;p&&n.slice(i,i+p.length)==p&&(i+=p.length),l.replaceRange("",a(t,r),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 s(e){var n=l(t,i);if(!n||n.to.line-n.from.line<c)return null;for(var r=t.findMarksAt(n.from),o=0;o<r.length;++o)if(r[o].__isFold&&"fold"!==a){if(!e)return null;n.cleared=!0,r[o].clear()}return n}if(o&&o.call){var l=o;o=null}else var l=r(t,o,"rangeFinder");"number"==typeof i&&(i=e.Pos(i,0));var c=r(t,o,"minFoldSize"),u=s(!0);if(r(t,o,"scanUp"))for(;!u&&i.line>t.firstLine();)i=e.Pos(i.line-1,0),u=s(!1);if(u&&!u.cleared&&"unfold"!==a){var f=n(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:r(t,o,"clearOnEnter"),__isFold:!0});d.on("clear",function(n,r){e.signal(t,"unfold",t,n,r)}),e.signal(t,"fold",t,u.from,u.to)}}function n(e,t){var n=r(e,t,"widget");if("string"==typeof n){var i=document.createTextNode(n);n=document.createElement("span"),n.appendChild(i),n.className="CodeMirror-foldmarker"}else n&&(n=n.cloneNode(!0));return n}function r(e,t,n){if(t&&void 0!==t[n])return t[n];var r=e.options.foldOptions;return r&&void 0!==r[n]?r[n]:i[n]}e.newFoldFunction=function(e,n){return function(r,i){t(r,i,{rangeFinder:e,widget:n})}},e.defineExtension("foldCode",function(e,n,r){t(this,e,n,r)}),e.defineExtension("isFolded",function(e){for(var t=this.findMarksAt(e),n=0;n<t.length;++n)if(t[n].__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 n=t.firstLine(),r=t.lastLine();n<=r;n++)t.foldCode(e.Pos(n,0),null,"fold")})},e.commands.unfoldAll=function(t){t.operation(function(){for(var n=t.firstLine(),r=t.lastLine();n<=r;n++)t.foldCode(e.Pos(n,0),null,"unfold")})},e.registerHelper("fold","combine",function(){var e=Array.prototype.slice.call(arguments,0);return function(t,n){for(var r=0;r<e.length;++r){var i=e[r](t,n);if(i)return i}}}),e.registerHelper("fold","auto",function(e,t){for(var n=e.getHelpers(t,"fold"),r=0;r<n.length;r++){var i=n[r](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 r(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 n(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 r(e,t){for(var n=e.findMarks(f(t,0),f(t+1,0)),r=0;r<n.length;++r)if(n[r].__isFold&&n[r].find().from.line==t)return n[r]}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,n){var o=e.state.foldGutter.options,a=t,s=e.foldOption(o,"minFoldSize"),l=e.foldOption(o,"rangeFinder");e.eachLine(t,n,function(t){var n=null;if(r(e,a))n=i(o.indicatorFolded);else{var c=f(a,0),u=l&&l(e,c);u&&u.to.line-u.from.line>=s&&(n=i(o.indicatorOpen))}e.setGutterMarker(t,o.gutter,n),++a})}function a(e){var t=e.getViewport(),n=e.state.foldGutter;n&&(e.operation(function(){o(e,t.from,t.to)}),n.from=t.from,n.to=t.to)}function s(e,t,n){var i=e.state.foldGutter;if(i){var o=i.options;if(n==o.gutter){var a=r(e,t);a?a.clear():e.foldCode(f(t,0),o.rangeFinder)}}}function l(e){var t=e.state.foldGutter;if(t){var n=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){a(e)},n.foldOnChangeTimeSpan||600)}}function c(e){var t=e.state.foldGutter;if(t){var n=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var n=e.getViewport();t.from==t.to||n.from-t.to>20||t.from-n.to>20?a(e):e.operation(function(){n.from<t.from&&(o(e,n.from,t.from),t.from=n.from),n.to>t.to&&(o(e,t.to,n.to),t.to=n.to)})},n.updateViewportTimeSpan||400)}}function u(e,t){var n=e.state.foldGutter;if(n){var r=t.line;r>=n.from&&r<n.to&&o(e,r,r+1)}}e.defineOption("foldGutter",!1,function(r,i,o){o&&o!=e.Init&&(r.clearGutter(r.state.foldGutter.options.gutter),r.state.foldGutter=null,r.off("gutterClick",s),r.off("change",l),r.off("viewportChange",c),r.off("fold",u),r.off("unfold",u),r.off("swapDoc",l)),i&&(r.state.foldGutter=new t(n(i)),a(r),r.on("gutterClick",s),r.on("change",l),r.on("viewportChange",c),r.on("fold",u),r.on("unfold",u),r.on("swapDoc",l))});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 n(e,t,n,r){this.line=t,this.ch=n,this.cm=e,this.text=e.getLine(t),this.min=r?Math.max(r.from,e.firstLine()):e.firstLine(),this.max=r?Math.min(r.to-1,e.lastLine()):e.lastLine()}function r(e,t){var n=e.cm.getTokenTypeAt(d(e.line,t));return n&&/\btag\b/.test(n)}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(r(e,t+1)){var n=e.text.lastIndexOf("/",t),o=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t+1}}}function s(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(t==-1){if(o(e))continue;return}if(r(e,t+1)){p.lastIndex=t,e.ch=t;var n=p.exec(e.text);if(n&&n.index==t)return n}else e.ch=t}}function l(e){for(;;){p.lastIndex=e.ch;var t=p.exec(e.text);if(!t){if(i(e))continue;return}{if(r(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(r(e,t+1)){var n=e.text.lastIndexOf("/",t),i=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,i?"selfClose":"regular"}e.ch=t}}}function u(e,t){for(var n=[];;){var r,i=l(e),o=e.line,s=e.ch-(i?i[0].length:0);if(!i||!(r=a(e)))return;if("selfClose"!=r)if(i[1]){for(var c=n.length-1;c>=0;--c)if(n[c]==i[2]){n.length=c;break}if(c<0&&(!t||t==i[2]))return{tag:i[2],from:d(o,s),to:d(e.line,e.ch)}}else n.push(i[2])}}function f(e,t){for(var n=[];;){var r=c(e);if(!r)return;if("selfClose"!=r){var i=e.line,o=e.ch,a=s(e);if(!a)return;if(a[1])n.push(a[2]);else{for(var l=n.length-1;l>=0;--l)if(n[l]==a[2]){n.length=l;break}if(l<0&&(!t||t==a[2]))return{tag:a[2],from:d(e.line,e.ch),to:d(i,o)}}}else s(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 r=new n(e,t.line,0);;){var i,o=l(r);if(!o||r.line!=t.line||!(i=a(r)))return;if(!o[1]&&"selfClose"!=i){var s=d(r.line,r.ch),c=u(r,o[2]);return c&&{from:s,to:c.from}}}}),e.findMatchingTag=function(e,r,i){var o=new n(e,r.line,r.ch,i);if(o.text.indexOf(">")!=-1||o.text.indexOf("<")!=-1){var l=a(o),c=l&&d(o.line,o.ch),h=l&&s(o);if(l&&h&&!(t(o,r)>0)){var p={from:d(o.line,o.ch),to:c,tag:h[2]};return"selfClose"==l?{open:p,close:null,at:"open"}:h[1]?{open:f(o,h[2]),close:p,at:"close"}:(o=new n(e,c.line,c.ch,i),{open:p,close:u(o,h[2]),at:"open"})}}},e.findEnclosingTag=function(e,t,r,i){for(var o=new n(e,t.line,t.ch,r);;){var a=f(o,i);if(!a)break;var s=new n(e,t.line,t.ch,r),l=u(s,a.tag);if(l)return{open:a,close:l}}},e.scanForClosingTag=function(e,t,r,i){return u(new n(e,t.line,t.ch,i?{from:0,to:i}:null),r)}}),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,n){var r=t.getLine(n),i=r.search(/\S/);return i==-1||/\bcomment\b/.test(t.getTokenTypeAt(e.Pos(n,i+1)))?-1:e.countColumn(r,null,t.getOption("tabSize"))}e.registerHelper("fold","indent",function(n,r){var i=t(n,r.line);if(!(i<0)){for(var o=null,a=r.line+1,s=n.lastLine();a<=s;++a){var l=t(n,a);if(l==-1);else{if(!(l>i))break;o=a}}return o?{from:e.Pos(r.line,n.getLine(r.line).length),to:e.Pos(o,n.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,r){var i=e.getLineHandle(t.line),o=t.ch-1,l=r&&r.afterCursor;null==l&&(l=/(^| )cm-fat-cursor($| )/.test(e.getWrapperElement().className));var c=!l&&o>=0&&s[i.text.charAt(o)]||s[i.text.charAt(++o)];if(!c)return null;var u=">"==c.charAt(1)?1:-1;if(r&&r.strict&&u>0!=(o==t.ch))return null;var f=e.getTokenTypeAt(a(t.line,o+1)),d=n(e,a(t.line,o+(u>0?1:0)),u,f||null,r);return null==d?null:{from:a(t.line,o),to:d&&d.pos,match:d&&d.ch==c.charAt(0),forward:u>0}}function n(e,t,n,r,i){for(var o=i&&i.maxScanLineLength||1e4,l=i&&i.maxScanLines||1e3,c=[],u=i&&i.bracketRegex?i.bracketRegex:/[(){}[\]]/,f=n>0?Math.min(t.line+l,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-l),d=t.line;d!=f;d+=n){var h=e.getLine(d);if(h){var p=n>0?0:h.length-1,m=n>0?h.length:-1;if(!(h.length>o))for(d==t.line&&(p=t.ch-(n<0?1:0));p!=m;p+=n){var g=h.charAt(p);if(u.test(g)&&(void 0===r||e.getTokenTypeAt(a(d,p+1))==r)){var v=s[g];if(">"==v.charAt(1)==n>0)c.push(g);else{if(!c.length)return{pos:a(d,p),ch:g};c.pop()}}}}}return d-n!=(n>0?e.lastLine():e.firstLine())&&null}function r(e,n,r){for(var i=e.state.matchBrackets.maxHighlightLineLength||1e3,s=[],l=e.listSelections(),c=0;c<l.length;c++){var u=l[c].empty()&&t(e,l[c].head,r);if(u&&e.getLine(u.from.line).length<=i){var f=u.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";s.push(e.markText(u.from,a(u.from.line,u.from.ch+1),{className:f})),u.to&&e.getLine(u.to.line).length<=i&&s.push(e.markText(u.to,a(u.to.line,u.to.ch+1),{className:f}))}}if(s.length){o&&e.state.focused&&e.focus();var d=function(){e.operation(function(){for(var e=0;e<s.length;e++)s[e].clear()})};if(!n)return d;setTimeout(d,800)}}function i(e){e.operation(function(){l&&(l(),l=null),l=r(e,!1,e.state.matchBrackets)})}var o=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),a=e.Pos,s={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},l=null;e.defineOption("matchBrackets",!1,function(t,n,r){r&&r!=e.Init&&(t.off("cursorActivity",i),l&&(l(),l=null)),n&&(t.state.matchBrackets="object"==typeof n?n:{},t.on("cursorActivity",i))}),e.defineExtension("matchBrackets",function(){r(this,!0)}),e.defineExtension("findMatchingBracket",function(e,n,r){return(r||"boolean"==typeof n)&&(r?(r.strict=n,n=r):n=n?{strict:!0}:null),t(this,e,n)}),e.defineExtension("scanForBracket",function(e,t,r,i){return n(this,e,t,r,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 n(n){n.state.failedTagMatch=!1,n.operation(function(){if(t(n),!n.somethingSelected()){var r=n.getCursor(),i=n.getViewport();i.from=Math.min(i.from,r.line),i.to=Math.max(r.line+1,i.to);var o=e.findMatchingTag(n,r,i);if(o){if(n.state.matchBothTags){var a="open"==o.at?o.open:o.close;a&&(n.state.tagHit=n.markText(a.from,a.to,{className:"CodeMirror-matchingtag"}))}var s="close"==o.at?o.open:o.close;s?n.state.tagOther=n.markText(s.from,s.to,{className:"CodeMirror-matchingtag"}):n.state.failedTagMatch=!0}}})}function r(e){e.state.failedTagMatch&&n(e)}e.defineOption("matchTags",!1,function(i,o,a){a&&a!=e.Init&&(i.off("cursorActivity",n),i.off("viewportChange",r),t(i)),o&&(i.state.matchBothTags="object"==typeof o&&o.bothTags,i.on("cursorActivity",n),i.on("viewportChange",r),n(i))}),e.commands.toMatchingTag=function(t){var n=e.findMatchingTag(t,t.getCursor());if(n){var r="close"==n.at?n.open:n.close;r&&t.extendSelection(r.to,r.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 n(e){var t=e.state.matchHighlighter;(t.active||e.hasFocus())&&i(e,t)}function r(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(){s(e)},t.options.delay)}function o(e,t,n,r){var i=e.state.matchHighlighter;if(e.addOverlay(i.overlay=u(t,n,r)),i.options.annotateScrollbar&&e.showMatchesOnScrollbar){var o=n?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 s(e){e.operation(function(){var t=e.state.matchHighlighter;if(a(e),!e.somethingSelected()&&t.options.showToken){for(var n=t.options.showToken===!0?/[\w$]/:t.options.showToken,r=e.getCursor(),i=e.getLine(r.line),s=r.ch,c=s;s&&n.test(i.charAt(s-1));)--s;for(;c<i.length&&n.test(i.charAt(c));)++c;return void(s<c&&o(e,i.slice(s,c),n,t.options.style))}var u=e.getCursor("from"),f=e.getCursor("to");if(u.line==f.line&&(!t.options.wordsOnly||l(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 l(e,t,n){if(null!==e.getRange(t,n).match(/^\w+$/)){if(t.ch>0){var r={line:t.line,ch:t.ch-1},i=e.getRange(r,t);if(null===i.match(/\W/))return!1}if(n.ch<e.getLine(t.line).length){var r={line:n.line,ch:n.ch+1},i=e.getRange(n,r);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,n){return{token:function(r){if(r.match(e)&&(!t||c(r,t)))return n;r.next(),r.skipTo(e.charAt(0))||r.skipToEnd()}}}var f={style:"matchhighlight",minChars:2,delay:100,wordsOnly:!1,annotateScrollbar:!1,showToken:!1,trim:!0};e.defineOption("highlightSelectionMatches",!1,function(i,o,l){if(l&&l!=e.Init&&(a(i),clearTimeout(i.state.matchHighlighter.timeout),i.state.matchHighlighter=null,i.off("cursorActivity",n),i.off("focus",r)),o){var c=i.state.matchHighlighter=new t(o);i.hasFocus()?(c.active=!0,s(i)):i.on("focus",r),i.on("cursorActivity",n)}})}),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 n=t.listSelections(),r=[],l=0;l<n.length;l++){if(!n[l].empty())return e.Pass;var c=n[l].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&&s,v=d.tagName
|
10 |
-
;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;r[l]={indent:b,text:">"+(b?"\n\n":"")+"</"+v+">",newPos:b?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(var l=n.length-1;l>=0;l--){var x=r[l];t.replaceRange(x.text,n[l].head,n[l].anchor,"+insert");var w=t.listSelections().slice(0);w[l]={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 n(t,n){for(var r=t.listSelections(),i=[],a=n?"/":"</",s=0;s<r.length;s++){if(!r[s].empty())return e.Pass;var l=r[s].head,c=t.getTokenAt(l),u=e.innerMode(t.getMode(),c.state),f=u.state;if(n&&("string"==c.type||"<"!=c.string.charAt(0)||c.start!=l.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,l,f))return e.Pass;d=a+f.context.tagName}">"!=t.getLine(l.line).charAt(c.end)&&(d+=">"),i[s]=d}t.replaceSelections(i),r=t.listSelections();for(var s=0;s<r.length;s++)(s==r.length-1||r[s].head.line<r[s+1].head.line)&&t.indentLine(r[s].head.line)}function r(t){return t.getOption("disableInput")?e.Pass:n(t,!0)}function i(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;++n)if(e[n]==t)return n;return-1}function o(t,n,r,i,o){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,r.line+500),s=e.scanForClosingTag(t,r,null,a);if(!s||s.tag!=n)return!1;for(var l=i.context,c=o?1:0;l&&l.tagName==n;l=l.prev)++c;r=s.to;for(var u=1;u<c;u++){var f=e.scanForClosingTag(t,r,null,a);if(!f||f.tag!=n)return!1;r=f.to}return!0}e.defineOption("autoCloseTags",!1,function(n,i,o){if(o!=e.Init&&o&&n.removeKeyMap("autoCloseTags"),i){var a={name:"autoCloseTags"};("object"!=typeof i||i.whenClosing)&&(a["'/'"]=function(e){return r(e)}),("object"!=typeof i||i.whenOpening)&&(a["'>'"]=function(e){return t(e)}),n.addKeyMap(a)}});var a=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],s=["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 n(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 n(e){var t=e.state.closeBrackets;return!t||t.override?t:e.getModeAt(e.getCursor()).closeBrackets||t}function r(r){var i=n(r);if(!i||r.getOption("disableInput"))return e.Pass;for(var o=t(i,"pairs"),a=r.listSelections(),s=0;s<a.length;s++){if(!a[s].empty())return e.Pass;var c=l(r,a[s].head);if(!c||o.indexOf(c)%2!=0)return e.Pass}for(var s=a.length-1;s>=0;s--){var u=a[s].head;r.replaceRange("",d(u.line,u.ch-1),d(u.line,u.ch+1),"+delete")}}function i(r){var i=n(r),o=i&&t(i,"explode");if(!o||r.getOption("disableInput"))return e.Pass;for(var a=r.listSelections(),s=0;s<a.length;s++){if(!a[s].empty())return e.Pass;var c=l(r,a[s].head);if(!c||o.indexOf(c)%2!=0)return e.Pass}r.operation(function(){r.replaceSelection("\n\n",null),r.execCommand("goCharLeft"),a=r.listSelections();for(var e=0;e<a.length;e++){var t=a[e].head.line;r.indentLine(t,null,!0),r.indentLine(t+1,null,!0)}})}function o(t){var n=e.cmpPos(t.anchor,t.head)>0;return{anchor:new d(t.anchor.line,t.anchor.ch+(n?-1:1)),head:new d(t.head.line,t.head.ch+(n?1:-1))}}function a(r,i){var a=n(r);if(!a||r.getOption("disableInput"))return e.Pass;var l=t(a,"pairs"),f=l.indexOf(i);if(f==-1)return e.Pass;for(var h,p=t(a,"triples"),m=l.charAt(f+1)==i,g=r.listSelections(),v=f%2==0,y=0;y<g.length;y++){var b,x=g[y],w=x.head,k=r.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&&r.getRange(d(w.line,w.ch-2),w)==i+i&&(w.ch<=2||r.getRange(d(w.line,w.ch-3),d(w.line,w.ch-2))!=i))b="addFour";else if(m){if(e.isWordChar(k)||!c(r,w,i))return e.Pass;b="both"}else{if(!v||r.getLine(w.line).length!=w.ch&&!s(k,l)&&!/\s/.test(k))return e.Pass;b="both"}else b=m&&u(r,w)?"both":p.indexOf(i)>=0&&r.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?l.charAt(f-1):i,S=f%2?i:l.charAt(f+1);r.operation(function(){if("skip"==h)r.execCommand("goCharRight");else if("skipThree"==h)for(var e=0;e<3;e++)r.execCommand("goCharRight");else if("surround"==h){for(var t=r.getSelections(),e=0;e<t.length;e++)t[e]=C+t[e]+S;r.replaceSelections(t,"around"),t=r.listSelections().slice();for(var e=0;e<t.length;e++)t[e]=o(t[e]);r.setSelections(t)}else"both"==h?(r.replaceSelection(C+S,null),r.triggerElectric(C+S),r.execCommand("goCharLeft")):"addFour"==h&&(r.replaceSelection(C+C+C+C,"before"),r.execCommand("goCharRight"))})}function s(e,t){var n=t.lastIndexOf(e);return n>-1&&n%2==1}function l(e,t){var n=e.getRange(d(t.line,t.ch-1),d(t.line,t.ch+1));return 2==n.length?n:null}function c(t,n,r){var i=t.getLine(n.line),o=t.getTokenAt(n);if(/\bstring2?\b/.test(o.type)||u(t,n))return!1;var a=new e.StringStream(i.slice(0,n.ch)+r+i.slice(n.ch),4);for(a.pos=a.start=o.start;;){var s=t.getMode().token(a,o.state);if(a.pos>=n.ch+1)return/\bstring2?\b/.test(s);a.start=a.pos}}function u(e,t){var n=e.getTokenAt(d(t.line,t.ch+1));return/\bstring/.test(n.type)&&n.start==t.ch}var f={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},d=e.Pos;e.defineOption("autoCloseBrackets",!1,function(t,n,r){r&&r!=e.Init&&(t.removeKeyMap(p),t.state.closeBrackets=null),n&&(t.state.closeBrackets=n,t.addKeyMap(p))});for(var h=f.pairs+"`",p={Backspace:r,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,n,r){if(r<0&&0==n.ch)return t.clipPos(p(n.line-1));var i=t.getLine(n.line);if(r>0&&n.ch>=i.length)return t.clipPos(p(n.line+1,0));for(var o,a="start",s=n.ch,l=r<0?0:i.length,c=0;s!=l;s+=r,c++){var u=i.charAt(r<0?s-1:s),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&&r<0&&s--,"W"==o&&"w"==f&&r>0){o="w";continue}break}}return p(n.line,s)}function n(e,n){e.extendSelectionsBy(function(r){return e.display.shift||e.doc.extend||r.empty()?t(e.doc,r.head,n):n<0?r.from():r.to()})}function r(t,n){if(t.isReadOnly())return e.Pass;t.operation(function(){for(var e=t.listSelections().length,r=[],i=-1,o=0;o<e;o++){var a=t.listSelections()[o].head;if(!(a.line<=i)){var s=p(a.line+(n?0:1),0);t.replaceRange("\n",s,null,"+insertLine"),t.indentLine(s.line,null,!0),r.push({head:s,anchor:s}),i=a.line+1}}t.setSelections(r)}),t.execCommand("indentAuto")}function i(t,n){for(var r=n.ch,i=r,o=t.getLine(n.line);r&&e.isWordChar(o.charAt(r-1));)--r;for(;i<o.length&&e.isWordChar(o.charAt(i));)++i;return{from:p(n.line,r),to:p(n.line,i),word:o.slice(r,i)}}function o(e,t){for(var n=e.listSelections(),r=[],i=0;i<n.length;i++){var o=n[i],a=e.findPosV(o.anchor,t,"line"),s=e.findPosV(o.head,t,"line"),l={anchor:a,head:s};r.push(o),r.push(l)}e.setSelections(r)}function a(e,t,n){for(var r=0;r<e.length;r++)if(e[r].from()==t&&e[r].to()==n)return!0;return!1}function s(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){var i=t[r],o=i.head,a=e.scanForBracket(o,-1);if(!a)return!1;for(;;){var s=e.scanForBracket(o,1);if(!s)return!1;if(s.ch==x.charAt(x.indexOf(a.ch)+1)){n.push({anchor:p(a.pos.line,a.pos.ch+1),head:s.pos});break}o=p(s.pos.line,s.pos.ch+1)}}return e.setSelections(n),!0}function l(t,n){if(t.isReadOnly())return e.Pass;for(var r,i=t.listSelections(),o=[],a=0;a<i.length;a++){var s=i[a];if(!s.empty()){for(var l=s.from().line,c=s.to().line;a<i.length-1&&i[a+1].from().line==c;)c=i[++a].to().line;i[a].to().ch||c--,o.push(l,c)}}o.length?r=!0:o.push(t.firstLine(),t.lastLine()),t.operation(function(){for(var e=[],i=0;i<o.length;i+=2){var a=o[i],s=o[i+1],l=p(a,0),c=p(s),u=t.getRange(l,c,!1);n?u.sort():u.sort(function(e,t){var n=e.toUpperCase(),r=t.toUpperCase();return n!=r&&(e=n,t=r),e<t?-1:e==t?0:1}),t.replaceRange(u,l,c),r&&e.push({anchor:l,head:p(s+1,0)})}r&&t.setSelections(e,0)})}function c(t,n){t.operation(function(){for(var r=t.listSelections(),o=[],a=[],s=0;s<r.length;s++){var l=r[s];l.empty()?(o.push(s),a.push("")):a.push(n(t.getRange(l.from(),l.to())))}t.replaceSelections(a,"around","case");for(var c,s=o.length-1;s>=0;s--){var l=r[o[s]];if(!(c&&e.cmpPos(l.head,c)>0)){var u=i(t,l.head);c=u.from,t.replaceRange(n(u.word),u.from,u.to)}}})}function u(t){var n=t.getCursor("from"),r=t.getCursor("to");if(0==e.cmpPos(n,r)){var o=i(t,n);if(!o.word)return;n=o.from,r=o.to}return{from:n,to:r,query:t.getRange(n,r),word:o}}function f(e,t){var n=u(e);if(n){var r=n.query,i=e.getSearchCursor(r,t?n.to:n.from);(t?i.findNext():i.findPrevious())?e.setSelection(i.from(),i.to()):(i=e.getSearchCursor(r,t?p(e.firstLine(),0):e.clipPos(p(e.lastLine()))),(t?i.findNext():i.findPrevious())?e.setSelection(i.from(),i.to()):n.word&&e.setSelection(n.from,n.to))}}var d=e.keyMap.sublime={fallthrough:"default"},h=e.commands,p=e.Pos,m=e.keyMap.default==e.keyMap.macDefault,g=m?"Cmd-":"Ctrl-",v=m?"Ctrl-":"Alt-";h[d[v+"Left"]="goSubwordLeft"]=function(e){n(e,-1)},h[d[v+"Right"]="goSubwordRight"]=function(e){n(e,1)},m&&(d["Cmd-Left"]="goLineStartSmart");var y=m?"Ctrl-Alt-":"Ctrl-";h[d[y+"Up"]="scrollLineUp"]=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top+t.clientHeight,"local");e.getCursor().line>=n&&e.execCommand("goLineUp")}e.scrollTo(null,t.top-e.defaultTextHeight())},h[d[y+"Down"]="scrollLineDown"]=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top,"local")+1;e.getCursor().line<=n&&e.execCommand("goLineDown")}e.scrollTo(null,t.top+e.defaultTextHeight())},h[d["Shift-"+g+"L"]="splitSelectionByLine"]=function(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++)for(var i=t[r].from(),o=t[r].to(),a=i.line;a<=o.line;++a)o.line>i.line&&a==o.line&&0==o.ch||n.push({anchor:a==i.line?i:p(a,0),head:a==o.line?o:p(a)});e.setSelections(n,0)},d["Shift-Tab"]="indentLess",h[d.Esc="singleSelectionTop"]=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},h[d[g+"L"]="selectLine"]=function(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){var i=t[r];n.push({anchor:p(i.from().line,0),head:p(i.to().line+1,0)})}e.setSelections(n)},d["Shift-Ctrl-K"]="deleteLine",h[d[g+"Enter"]="insertLineAfter"]=function(e){return r(e,!1)},h[d["Shift-"+g+"Enter"]="insertLineBefore"]=function(e){return r(e,!0)},h[d[g+"D"]="selectNextOccurrence"]=function(t){var n=t.getCursor("from"),r=t.getCursor("to"),o=t.state.sublimeFindFullWord==t.doc.sel;if(0==e.cmpPos(n,r)){var s=i(t,n);if(!s.word)return;t.setSelection(s.from,s.to),o=!0}else{var l=t.getRange(n,r),c=o?new RegExp("\\b"+l+"\\b"):l,u=t.getSearchCursor(c,r),f=u.findNext();if(f||(u=t.getSearchCursor(c,p(t.firstLine(),0)),f=u.findNext()),!f||a(t.listSelections(),u.from(),u.to()))return e.Pass;t.addSelection(u.from(),u.to())}o&&(t.state.sublimeFindFullWord=t.doc.sel)};var b=m?"Shift-Cmd":"Alt-Ctrl";h[d[b+"Up"]="addCursorToPrevLine"]=function(e){o(e,-1)},h[d[b+"Down"]="addCursorToNextLine"]=function(e){o(e,1)};var x="(){}[]";h[d["Shift-"+g+"Space"]="selectScope"]=function(e){s(e)||e.execCommand("selectAll")},h[d["Shift-"+g+"M"]="selectBetweenBrackets"]=function(t){if(!s(t))return e.Pass},h[d[g+"M"]="goToBracket"]=function(t){t.extendSelectionsBy(function(n){var r=t.scanForBracket(n.head,1);if(r&&0!=e.cmpPos(r.pos,n.head))return r.pos;var i=t.scanForBracket(n.head,-1);return i&&p(i.pos.line,i.pos.ch+1)||n.head})};var w=m?"Cmd-Ctrl-":"Shift-Ctrl-";h[d[w+"Up"]="swapLineUp"]=function(t){if(t.isReadOnly())return e.Pass;for(var n=t.listSelections(),r=[],i=t.firstLine()-1,o=[],a=0;a<n.length;a++){var s=n[a],l=s.from().line-1,c=s.to().line;o.push({anchor:p(s.anchor.line-1,s.anchor.ch),head:p(s.head.line-1,s.head.ch)}),0!=s.to().ch||s.empty()||--c,l>i?r.push(l,c):r.length&&(r[r.length-1]=c),i=c}t.operation(function(){for(var e=0;e<r.length;e+=2){var n=r[e],i=r[e+1],a=t.getLine(n);t.replaceRange("",p(n,0),p(n+1,0),"+swapLine"),i>t.lastLine()?t.replaceRange("\n"+a,p(t.lastLine()),null,"+swapLine"):t.replaceRange(a+"\n",p(i,0),null,"+swapLine")}t.setSelections(o),t.scrollIntoView()})},h[d[w+"Down"]="swapLineDown"]=function(t){if(t.isReadOnly())return e.Pass;for(var n=t.listSelections(),r=[],i=t.lastLine()+1,o=n.length-1;o>=0;o--){var a=n[o],s=a.to().line+1,l=a.from().line;0!=a.to().ch||a.empty()||s--,s<i?r.push(s,l):r.length&&(r[r.length-1]=l),i=l}t.operation(function(){for(var e=r.length-2;e>=0;e-=2){var n=r[e],i=r[e+1],o=t.getLine(n);n==t.lastLine()?t.replaceRange("",p(n-1),p(n),"+swapLine"):t.replaceRange("",p(n,0),p(n+1,0),"+swapLine"),t.replaceRange(o+"\n",p(i,0),null,"+swapLine")}t.scrollIntoView()})},h[d[g+"/"]="toggleCommentIndented"]=function(e){e.toggleComment({indent:!0})},h[d[g+"J"]="joinLines"]=function(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){for(var i=t[r],o=i.from(),a=o.line,s=i.to().line;r<t.length-1&&t[r+1].from().line==s;)s=t[++r].to().line;n.push({start:a,end:s,anchor:!i.empty()&&o})}e.operation(function(){for(var t=0,r=[],i=0;i<n.length;i++){for(var o,a=n[i],s=a.anchor&&p(a.anchor.line-t,a.anchor.ch),l=a.start;l<=a.end;l++){var c=l-t;l==a.end&&(o=p(c,e.getLine(c).length+1)),c<e.lastLine()&&(e.replaceRange(" ",p(c),p(c+1,/^\s*/.exec(e.getLine(c+1))[0].length)),++t)}r.push({anchor:s||o,head:o})}e.setSelections(r,0)})},h[d["Shift-"+g+"D"]="duplicateLine"]=function(e){e.operation(function(){for(var t=e.listSelections().length,n=0;n<t;n++){var r=e.listSelections()[n];r.empty()?e.replaceRange(e.getLine(r.head.line)+"\n",p(r.head.line,0)):e.replaceRange(e.getRange(r.from(),r.to()),r.from())}e.scrollIntoView()})},m||(d[g+"T"]="transposeChars"),h[d.F9="sortLines"]=function(e){l(e,!0)},h[d[g+"F9"]="sortLinesInsensitive"]=function(e){l(e,!1)},h[d.F2="nextBookmark"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){var n=t.shift(),r=n.find();if(r)return t.push(n),e.setSelection(r.from,r.to)}},h[d["Shift-F2"]="prevBookmark"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){t.unshift(t.pop());var n=t[t.length-1].find();if(n)return e.setSelection(n.from,n.to);t.pop()}},h[d[g+"F2"]="toggleBookmark"]=function(e){for(var t=e.listSelections(),n=e.state.sublimeBookmarks||(e.state.sublimeBookmarks=[]),r=0;r<t.length;r++){for(var i=t[r].from(),o=t[r].to(),a=e.findMarks(i,o),s=0;s<a.length;s++)if(a[s].sublimeBookmark){a[s].clear();for(var l=0;l<n.length;l++)n[l]==a[s]&&n.splice(l--,1);break}s==a.length&&n.push(e.markText(i,o,{sublimeBookmark:!0,clearWhenEmpty:!1}))}},h[d["Shift-"+g+"F2"]="clearBookmarks"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(var n=0;n<t.length;n++)t[n].clear();t.length=0},h[d["Alt-F2"]="selectBookmarks"]=function(e){var t=e.state.sublimeBookmarks,n=[];if(t)for(var r=0;r<t.length;r++){var i=t[r].find();i?n.push({anchor:i.from,head:i.to}):t.splice(r--,0)}n.length&&e.setSelections(n,0)},d["Alt-Q"]="wrapLines";var k=g+"K ";d[k+g+"Backspace"]="delLineLeft",h[d.Backspace="smartBackspace"]=function(t){if(t.somethingSelected())return e.Pass;t.operation(function(){for(var n=t.listSelections(),r=t.getOption("indentUnit"),i=n.length-1;i>=0;i--){var o=n[i].head,a=t.getRange({line:o.line,ch:0},o),s=e.countColumn(a,null,t.getOption("tabSize")),l=t.findPosH(o,-1,"char",!1);if(a&&!/\S/.test(a)&&s%r==0){var c=new p(o.line,e.findColumn(a,s-r,r));c.ch!=o.ch&&(l=c)}t.replaceRange("",l,o,"+delete")}})},h[d[k+g+"K"]="delLineRight"]=function(e){e.operation(function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange("",t[n].anchor,p(t[n].to().line),"+delete");e.scrollIntoView()})},h[d[k+g+"U"]="upcaseAtCursor"]=function(e){c(e,function(e){return e.toUpperCase()})},h[d[k+g+"L"]="downcaseAtCursor"]=function(e){c(e,function(e){return e.toLowerCase()})},h[d[k+g+"Space"]="setSublimeMark"]=function(e){e.state.sublimeMark&&e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor())},h[d[k+g+"A"]="selectToSublimeMark"]=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&e.setSelection(e.getCursor(),t)},h[d[k+g+"W"]="deleteToSublimeMark"]=function(t){var n=t.state.sublimeMark&&t.state.sublimeMark.find();if(n){var r=t.getCursor(),i=n;if(e.cmpPos(r,i)>0){var o=i;i=r,r=o}t.state.sublimeKilled=t.getRange(r,i),t.replaceRange("",r,i)}},h[d[k+g+"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))},h[d[k+g+"Y"]="sublimeYank"]=function(e){null!=e.state.sublimeKilled&&e.replaceSelection(e.state.sublimeKilled,null,"paste")},d[k+g+"G"]="clearBookmarks",h[d[k+g+"C"]="showInCenter"]=function(e){var t=e.cursorCoords(null,"local");e.scrollTo(null,(t.top+t.bottom)/2-e.getScrollInfo().clientHeight/2)};var C=m?"Ctrl-Shift-":"Ctrl-Alt-";h[d[C+"Up"]="selectLinesUpward"]=function(e){e.operation(function(){for(var t=e.listSelections(),n=0;n<t.length;n++){var r=t[n];r.head.line>e.firstLine()&&e.addSelection(p(r.head.line-1,r.head.ch))}})},h[d[C+"Down"]="selectLinesDownward"]=function(e){e.operation(function(){for(var t=e.listSelections(),n=0;n<t.length;n++){var r=t[n];r.head.line<e.lastLine()&&e.addSelection(p(r.head.line+1,r.head.ch))}})},h[d[g+"F3"]="findUnder"]=function(e){f(e,!0)},h[d["Shift-"+g+"F3"]="findUnderPrevious"]=function(e){f(e,!1)},h[d["Alt-F3"]="findAllUnder"]=function(e){var t=u(e);if(t){for(var n=e.getSearchCursor(t.query),r=[],i=-1;n.findNext();)r.push({anchor:n.from(),head:n.to()}),n.from().line<=t.from.line&&n.from().ch<=t.from.ch&&i++;e.setSelections(r,i)}},d["Shift-"+g+"["]="fold",d["Shift-"+g+"]"]="unfold",d[k+g+"0"]=d[k+g+"J"]="unfoldAll",d[g+"I"]="findIncremental",d["Shift-"+g+"I"]="findIncrementalReverse",d[g+"H"]="replace",d.F3="findNext",d["Shift-F3"]="findPrev",e.normalizeKeyMap(d)}),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 n(e){P.push(e),P.length>50&&P.shift()}function r(e){if(!P.length)return n(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,s){null==s&&(s=e.getRange(i,o)),a&&R&&R.cm==e&&t(i,R.pos)&&e.isClean(R.gen)?r(s):n(s),e.replaceRange("",i,o,"+delete"),R=a?{cm:e,pos:i,gen:e.changeGeneration()}:null}function s(e,t,n){return e.findPosH(t,n,"char",!0)}function l(e,t,n){return e.findPosH(t,n,"word",!0)}function c(e,t,n){return e.findPosV(t,n,"line",e.doc.sel.goalColumn)}function u(e,t,n){return e.findPosV(t,n,"page",e.doc.sel.goalColumn)}function f(e,t,n){for(var r=t.line,i=e.getLine(r),o=/\S/.test(n<0?i.slice(0,t.ch):i.slice(t.ch)),a=e.firstLine(),s=e.lastLine();;){if((r+=n)<a||r>s)return e.clipPos(I(r-n,n<0?0:null));i=e.getLine(r);if(/\S/.test(i))o=!0;else if(o)return I(r,0)}}function d(e,t,n){for(var r=t.line,i=t.ch,o=e.getLine(t.line),a=!1;;){var s=o.charAt(i+(n<0?-1:0));if(s){if(a&&/[!?.]/.test(s))return I(r,i+(n>0?1:0));a||(a=/\w/.test(s)),i+=n}else{if(r==(n<0?e.firstLine():e.lastLine()))return I(r,i);if(o=e.getLine(r+n),!/\S/.test(o))return I(r,i);r+=n,i=n<0?o.length:0}}}function h(e,n,r){var i;if(e.findMatchingBracket&&(i=e.findMatchingBracket(n,{strict:!0}))&&i.match&&(i.forward?1:-1)==r)return r>0?I(i.to.line,i.to.ch+1):i.to;for(var o=!0;;o=!1){var a=e.getTokenAt(n),s=I(n.line,r<0?a.start:a.end);if(!(o&&r>0&&a.end==n.ch)&&/\w/.test(a.string))return s;var l=e.findPosH(s,r,"char");if(t(s,l))return n;n=l}}function p(e,t){var n=e.state.emacsPrefix;return n?(k(e),"-"==n?-1:Number(n)):t?null:1}function m(e){var t="string"==typeof e?function(t){t.execCommand(e)}:e;return function(e){var n=p(e);t(e);for(var r=1;r<n;++r)t(e)}}function g(e,n,r,i){var o=p(e);o<0&&(i=-i,o=-o);for(var a=0;a<o;++a){var s=r(e,n,i);if(t(s,n))break;n=s}return n}function v(e,t){var n=function(n){n.extendSelection(g(n,n.getCursor(),e,t))};return n.motion=!0,n}function y(e,t,n){for(var r,i=e.listSelections(),o=i.length;o--;)r=i[o].head,a(e,r,g(e,r,t,n),!0)}function b(e){if(e.somethingSelected()){for(var t,n=e.listSelections(),r=n.length;r--;)t=n[r],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 n=p(e);if(n>1&&"+input"==t.origin){for(var r=t.text.join("\n"),i="",o=1;o<n;++o)i+=r;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,n){e.openDialog?e.openDialog(t+': <input type="text" style="width: 10em"/>',n,{bottom:!0}):n(prompt(t,""))}function A(e,t){var n=e.getCursor(),r=e.findPosH(n,1,"word");e.replaceRange(t(e.getRange(n,r)),n,r),e.setCursor(r)}function O(e){for(var t=e.getCursor(),n=t.line,r=t.ch,i=[];n>=e.firstLine();){for(var o=e.getLine(n),a=null==r?o.length:r;a>0;){var r=o.charAt(--a);if(")"==r)i.push("(");else if("]"==r)i.push("[");else if("}"==r)i.push("{");else if(/[\(\{\[]/.test(r)&&(!i.length||i.pop()!=r))return e.extendSelection(I(n,a))}--n,r=null}}function E(e){e.execCommand("clearSearch"),L(e)}function N(e){D[e]=function(t){x(t,e)},z["Ctrl-"+e]=function(t){x(t,e)},B["Ctrl-"+e]=!0}var I=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(),n=e.clipPos(I(t.line)),r=e.getRange(t,n);/\S/.test(r)||(r+="\n",n=I(t.line+1,0)),a(e,t,n,!0,r)}),"Alt-W":function(e){n(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(s,1),"Ctrl-B":v(s,-1),Right:v(s,1),Left:v(s,-1),"Ctrl-D":function(e){y(e,s,1)},Delete:function(e){b(e)||y(e,s,1)},"Ctrl-H":function(e){y(e,s,-1)},Backspace:function(e){b(e)||y(e,s,-1)},"Alt-F":v(l,1),"Alt-B":v(l,-1),"Alt-D":function(e){y(e,l,1)},"Alt-Backspace":function(e){y(e,l,-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),n=h(e,t,1),r=h(e,n,1),i=h(e,r,-1);e.replaceRange(e.getRange(i,r)+e.getRange(n,i)+e.getRange(t,n),t,r)},"Ctrl-Alt-U":m(O),"Alt-Space":function(e){for(var t=e.getCursor(),n=t.ch,r=t.ch,i=e.getLine(t.line);n&&/\s/.test(i.charAt(n-1));)--n;for(;r<i.length&&/\s/.test(i.charAt(r));)++r;e.replaceRange(" ",I(t.line,n),I(t.line,r))},"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":"findPersistentNext","Ctrl-R":"findPersistentPrev","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 n;t&&!isNaN(n=Number(t))&&n==(0|n)&&n>0&&e.setCursor(n-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},F=0;F<10;++F)N(String(F));N("-")}),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",
|
11 |
-
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"},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"}],n=[{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"}],r=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,n){this==e.keyMap.vim&&e.rmClass(t.getWrapperElement(),"cm-fat-cursor"),n&&n.attach==s||o(t)}function s(t,n){this==e.keyMap.vim&&e.addClass(t.getWrapperElement(),"cm-fat-cursor"),n&&n.attach==s||i(t)}function l(t,n){if(n){if(this[t])return this[t];var r=c(t);if(!r)return!1;var i=e.Vim.findKey(n,r);return"function"==typeof i&&e.signal(n,"vim-keypress",r),i}}function c(e){if("'"==e.charAt(0))return e.charAt(1);var t=e.split(/-(?!$)/),n=t[t.length-1];if(1==t.length&&1==t[0].length)return!1;if(2==t.length&&"Shift"==t[0]&&1==n.length)return!1;for(var r=!1,i=0;i<t.length;i++){var o=t[i];o in lt?t[i]=lt[o]:r=!0,o in ct&&(t[i]=ct[o])}return!!r&&(g(n)&&(t[t.length-1]=n.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 n=[],r=e;r<e+t;r++)n.push(String.fromCharCode(r));return n}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 n=0;n<t.length;n++)if(t[n]==e)return!0;return!1}function b(e,t,n,r,i){if(void 0===t&&!i)throw Error("defaultValue is required unless callback is provided");if(n||(n="string"),yt[e]={type:n,defaultValue:t,callback:i},r)for(var o=0;o<r.length;o++)yt[r[o]]=yt[e];t&&x(e,t)}function x(e,t,n,r){var i=yt[e];r=r||{};var o=r.scope;if(!i)return new Error("Unknown option: "+e);if("boolean"==i.type){if(t&&t!==!0)return new Error("Invalid argument: "+e+"="+t);t!==!1&&(t=!0)}i.callback?("local"!==o&&i.callback(t,void 0),"global"!==o&&n&&i.callback(t,n)):("local"!==o&&(i.value="boolean"==i.type?!!t:t),"global"!==o&&n&&(n.state.vim.options[e]={value:t}))}function w(e,t,n){var r=yt[e];n=n||{};var i=n.scope;if(!r)return new Error("Unknown option: "+e);{if(!r.callback){var o="global"!==i&&t&&t.state.vim.options[e];return(o||"local"!==i&&r||{}).value}var o=t&&r.callback(void 0,t);if("global"!==i&&void 0!==o)return o;if("local"!==i)return r.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,n){t.state.vim.inputState=new _,e.signal(t,"vim-command-done",n)}function L(e,t,n){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!n}function T(e,t){var n=wt.registerController.registers;if(!e||1!=e.length)throw Error("Register name must be 1 character");if(n[e])throw Error("Register already defined "+e);n[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 N(e,t){for(var n=[],r=0;r<t;r++)n.push(e);return n}function I(e,t){Mt[e]=t}function P(e,t){Lt[e]=t}function R(e,t,n){var i=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),o=X(e,i)-1;o=n?o+1:o;var a=Math.min(Math.max(0,t.ch),o);return r(i,a)}function B(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function z(e,t,n){return"object"==typeof t&&(n=t.ch,t=t.line),r(e.line+t,e.ch+n)}function D(e,t){return{line:t.line-e.line,ch:t.line-e.line}}function F(e,t,n,r){for(var i,o=[],a=[],s=0;s<t.length;s++){var l=t[s];"insert"==n&&"insert"!=l.context||l.context&&l.context!=n||r.operator&&"action"==l.type||!(i=W(e,l.keys))||("partial"==i&&o.push(l),"full"==i&&a.push(l))}return{partial:o.length&&o,full:a.length&&a}}function W(e,t){if("<character>"==t.slice(-11)){var n=t.length-11,r=e.slice(0,n),i=t.slice(0,n);return r==i&&e.length>n?"full":0==i.indexOf(r)&&"partial"}return e==t?"full":0==t.indexOf(e)&&"partial"}function q(e){var t=/^.*(<[^>]+>)$/.exec(e),n=t?t[1]:e.slice(-1);if(n.length>1)switch(n){case"<CR>":n="\n";break;case"<Space>":n=" ";break;default:n=""}return n}function H(e,t,n){return function(){for(var r=0;r<n;r++)t(e)}}function j(e){return r(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,n){var r=U(e,t),i=U(t,n);return r&&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,n){var i=X(e,t),o=new Array(n-i+1).join(" ");e.setCursor(r(t,i)),e.replaceRange(o,e.getCursor())}function Z(e,t){var n=[],i=e.listSelections(),o=j(e.clipPos(t)),a=!K(t,o),s=e.getCursor("head"),l=te(i,s),c=K(i[l].head,i[l].anchor),u=i.length-1,f=u-l>l?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 r(b,m),head:new r(b,g)};n.push(x)}return e.setSelections(n),t.ch=g,d.ch=m,d}function ee(e,t,n){for(var r=[],i=0;i<n;i++){var o=z(t,i,0);r.push({anchor:o,head:o})}e.setSelections(r,0)}function te(e,t,n){for(var r=0;r<e.length;r++){var i="head"!=n&&K(e[r].anchor,t),o="anchor"!=n&&K(e[r].head,t);if(i||o)return r}return-1}function ne(e,t){var n=t.lastSelection;return t.visualMode?function(){var t=e.listSelections(),n=t[0],r=t[t.length-1];return[U(n.anchor,n.head)?n.anchor:n.head,U(r.anchor,r.head)?r.head:r.anchor]}():function(){var t=e.getCursor(),i=e.getCursor(),o=n.visualBlock;if(o){var a=o.width,s=o.height;i=r(t.line+s,t.ch+a);for(var l=[],c=t.line;c<i.line;c++){var u=r(c,t.ch),f=r(c,i.ch),d={anchor:u,head:f};l.push(d)}e.setSelections(l)}else{var h=n.anchorMark.find(),p=n.headMark.find(),m=p.line-h.line,g=p.ch-h.ch;i={line:i.line+m,ch:m?i.ch:g+i.ch},n.visualLine&&(t=r(t.line,0),i=r(i.line,X(e,i.line))),e.setSelection(t,i)}return[t,i]}()}function re(e,t){var n=t.sel.anchor,r=t.sel.head;t.lastPastedText&&(r=e.posFromIndex(e.indexFromPos(n)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(n),headMark:e.setBookmark(r),anchor:j(n),head:j(r),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function ie(e,t,n){var i,o=e.state.vim.sel,a=o.head,s=o.anchor;return U(n,t)&&(i=n,n=t,t=i),U(a,s)?(a=V(t,a),s=$(s,n)):(s=V(t,s),a=$(a,n),a=z(a,0,-1),a.ch==-1&&a.line!=e.firstLine()&&(a=r(a.line-1,X(e,a.line-1)))),[s,a]}function oe(e,t,n){var r=e.state.vim;t=t||r.sel;var n=n||r.visualLine?"line":r.visualBlock?"block":"char",i=ae(e,t,n);e.setSelections(i.ranges,i.primary),nt(e)}function ae(e,t,n,i){var o=j(t.head),a=j(t.anchor);if("char"==n){var s=i||U(t.head,t.anchor)?0:1,l=U(t.head,t.anchor)?1:0;return o=z(t.head,0,s),a=z(t.anchor,0,l),{ranges:[{anchor:a,head:o}],primary:0}}if("line"==n){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"==n){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:r(u+v,f),head:r(u+v,h)});return{ranges:g,primary:m}}}function se(e){var t=e.getCursor("head");return 1==e.getSelection().length&&(t=V(t,e.getCursor("anchor"))),t}function le(t,n){var r=t.state.vim;n!==!1&&t.setCursor(R(t,r.sel.head)),re(t,r),r.visualMode=!1,r.visualLine=!1,r.visualBlock=!1,e.signal(t,"vim-mode-change",{mode:"normal"}),r.fakeCursor&&r.fakeCursor.clear()}function ce(e,t,n){var r=e.getRange(t,n);if(/\n\s*$/.test(r)){var i=r.split("\n");i.pop();for(var o,o=i.pop();i.length>0&&o&&v(o);o=i.pop())n.line--,n.ch=0;o?(n.line--,n.ch=X(e,n.line)):n.ch=0}}function ue(e,t,n){t.ch=0,n.ch=0,n.line++}function fe(e){if(!e)return 0;var t=e.search(/\S/);return t==-1?e.length:t}function de(e,t,n,i,o){for(var a=se(e),s=e.getLine(a.line),l=a.ch,c=o?ft[0]:dt[0];!c(s.charAt(l));)if(++l>=s.length)return null;i?c=dt[0]:(c=ft[0])(s.charAt(l))||(c=ft[1]);for(var u=l,f=l;c(s.charAt(u))&&u<s.length;)u++;for(;c(s.charAt(f))&&f>=0;)f--;if(f++,t){for(var d=u;/\s/.test(s.charAt(u))&&u<s.length;)u++;if(d==u){for(var h=f;/\s/.test(s.charAt(f-1))&&f>0;)f--;f||(f=h)}}return{start:r(a.line,f),end:r(a.line,u)}}function he(e,t,n){K(t,n)||wt.jumpList.add(e,t,n)}function pe(e,t){wt.lastCharacterSearch.increment=e,wt.lastCharacterSearch.forward=t.forward,wt.lastCharacterSearch.selectedCharacter=t.selectedCharacter}function me(e,t,n,i){var o=j(e.getCursor()),a=n?1:-1,s=n?e.lineCount():-1,l=o.ch,c=o.line,u=e.getLine(c),f={lineText:u,nextCh:u.charAt(l),lastCh:null,index:l,symb:i,reverseSymb:(n?{")":"(","}":"{"}:{"(":")","{":"}"})[i],forward:n,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!==s&&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?r(c,f.index):o}function ge(e,t,n,r,i){var o=t.line,a=t.ch,s=e.getLine(o),l=n?1:-1,c=r?dt:ft;if(i&&""==s){if(o+=l,s=e.getLine(o),!d(e,o))return null;a=n?0:s.length}for(;;){if(i&&""==s)return{from:0,to:0,line:o};for(var u=l>0?s.length:-1,f=u,h=u;a!=u;){for(var p=!1,m=0;m<c.length&&!p;++m)if(c[m](s.charAt(a))){for(f=a;a!=u&&c[m](s.charAt(a));)a+=l;if(h=a,p=f!=h,f==t.ch&&o==t.line&&h==f+l)continue;return{from:Math.min(f,h+1),to:Math.max(f,h),line:o}}p||(a+=l)}if(o+=l,!d(e,o))return null;s=e.getLine(o),a=l>0?0:s.length}}function ve(e,t,n,i,o,a){var s=j(t),l=[];(i&&!o||!i&&o)&&n++;for(var c=!(i&&o),u=0;u<n;u++){var f=ge(e,t,i,a,c);if(!f){var d=X(e,e.lastLine());l.push(i?{line:e.lastLine(),from:d,to:d}:{line:0,from:0,to:0});break}l.push(f),t=r(f.line,i?f.to-1:f.from)}var h=l.length!=n,p=l[0],m=l.pop();return i&&!o?(h||p.from==s.ch&&p.line==s.line||(m=l.pop()),r(m.line,m.from)):i&&o?r(m.line,m.to-1):!i&&o?(h||p.to==s.ch&&p.line==s.line||(m=l.pop()),r(m.line,m.to)):r(m.line,m.from)}function ye(e,t,n,i){for(var o,a=e.getCursor(),s=a.ch,l=0;l<t;l++){if((o=we(s,e.getLine(a.line),i,n,!0))==-1)return null;s=o}return r(e.getCursor().line,o)}function be(e,t){var n=e.getCursor().line;return R(e,r(n,t-1))}function xe(e,t,n,r){y(n,gt)&&(t.marks[n]&&t.marks[n].clear(),t.marks[n]=e.setBookmark(r))}function we(e,t,n,r,i){var o;return r?(o=t.indexOf(n,e+1))==-1||i||(o-=1):(o=t.lastIndexOf(n,e-1))==-1||i||(o+=1),o}function ke(e,t,n,i,o){function a(t){return!e.getLine(t)}function s(e,t,n){return n?a(e)!=a(e+t):!a(e)&&a(e+t)}var l,c,u=t.line,f=e.firstLine(),d=e.lastLine(),h=u;if(i){for(;f<=h&&h<=d&&n>0;)s(h,i)&&n--,h+=i;return new r(h,0)}var p=e.state.vim;if(p.visualLine&&s(u,1,!0)){var m=p.sel.anchor;s(m.line,-1,!0)&&(o&&m.line==u||(u+=1))}var g=a(u);for(h=u;h<=d&&n;h++)s(h,1,!0)&&(o&&a(h)==g||n--);for(c=new r(h,0),h>d&&!g?g=!0:o=!1,h=u;h>f&&(o&&a(h)!=g&&h!=u||!s(h,-1,!0));h--);return l=new r(h,0),{start:l,end:c}}function Ce(e,t,n,i){var o,a,s=t,l={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[n],c={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{"}[n],u=e.getLine(s.line).charAt(s.ch),f=u===c?1:0;if(o=e.scanForBracket(r(s.line,s.ch+f),-1,null,{bracketRegex:l}),a=e.scanForBracket(r(s.line,s.ch+f),1,null,{bracketRegex:l}),!o||!a)return{start:s,end:s};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,n,i){var o,a,s,l,c=j(t),u=e.getLine(c.line),f=u.split(""),d=f.indexOf(n);if(c.ch<d?c.ch=d:d<c.ch&&f[c.ch]==n&&(a=c.ch,--c.ch),f[c.ch]!=n||a)for(s=c.ch;s>-1&&!o;s--)f[s]==n&&(o=s+1);else o=c.ch+1;if(o&&!a)for(s=o,l=f.length;s<l&&!a;s++)f[s]==n&&(a=s);return o&&a?(i&&(--o,++a),{start:r(c.line,o),end:r(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,n,r,i){e.openDialog?e.openDialog(t,r,{bottom:!0,value:i.value,onKeyDown:i.onKeyDown,onKeyUp:i.onKeyUp,selectValueOnOpen:!1}):r(prompt(n,""))}function Te(e){var t=Ae(e)||[];if(!t.length)return[];var n=[];if(0===t[0]){for(var r=0;r<t.length;r++)"number"==typeof t[r]&&n.push(e.substring(t[r]+1,t[r+1]));return n}}function Ae(e){for(var t=!1,n=[],r=0;r<e.length;r++){var i=e.charAt(r);t||"/"!=i||n.push(r),t=!t&&"\\"==i}return n}function Oe(e){for(var t="|(){",n="}",r=!1,i=[],o=-1;o<e.length;o++){var a=e.charAt(o)||"",s=e.charAt(o+1)||"",l=s&&t.indexOf(s)!=-1;r?("\\"===a&&l||i.push(a),r=!1):"\\"===a?(r=!0,s&&n.indexOf(s)!=-1&&(l=!0),l&&"\\"!==s||i.push(a)):(i.push(a),l&&"\\"!==s&&i.push("\\"))}return i.join("")}function Ee(e){for(var t=!1,n=[],r=-1;r<e.length;r++){var i=e.charAt(r)||"",o=e.charAt(r+1)||"";Ot[i+o]?(n.push(Ot[i+o]),r++):t?(n.push(i),t=!1):"\\"===i?(t=!0,m(o)||"$"===o?n.push("$"):"/"!==o&&"\\"!==o&&n.push("\\")):("$"===i&&n.push("$"),n.push(i),"/"===o&&n.push("\\"))}return n.join("")}function Ne(t){for(var n=new e.StringStream(t),r=[];!n.eol();){for(;n.peek()&&"\\"!=n.peek();)r.push(n.next());var i=!1;for(var o in Et)if(n.match(o,!0)){i=!0,r.push(Et[o]);break}i||r.push(n.next())}return r.join("")}function Ie(e,t,n){if(wt.registerController.getRegister("/").setText(e),e instanceof RegExp)return e;var r,i,o=Ae(e);if(o.length){r=e.substring(0,o[0]);i=e.substring(o[0]).indexOf("i")!=-1}else r=e;return r?(w("pcre")||(r=Oe(r)),n&&(t=/^[^A-Z]*$/.test(r)),new RegExp(r,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 n='<span style="font-family: monospace; white-space: pre">'+(e||"")+'<input type="text"></span>';return t&&(n+=' <span style="color: #888">'+t+"</span>"),n}function Be(e,t){var n=(t.prefix||"")+" "+(t.desc||"");Le(e,Re(t.prefix,t.desc),n,t.onClose,t)}function ze(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var n=["global","multiline","ignoreCase","source"],r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0}return!1}function De(e,t,n,r){if(t){var i=Me(e),o=Ie(t,!!n,!!r);if(o)return We(e,o),ze(o,i.getQuery())?o:(i.setQuery(o),o)}}function Fe(e){if("^"==e.source.charAt(0))var t=!0;return{token:function(n){if(t&&!n.sol())return void n.skipToEnd();var r=n.match(e,!1);if(r)return 0==r[0].length?(n.next(),"searching"):n.sol()||(n.backUp(1),e.exec(n.next()+r[0]))?(n.match(e),"searching"):(n.next(),null);for(;!n.eol()&&(n.next(),!n.match(e,!1)););},query:e}}function We(e,t){var n=Me(e),r=n.getOverlay();r&&t==r.query||(r&&e.removeOverlay(r),r=Fe(t),e.addOverlay(r),e.showMatchesOnScrollbar&&(n.getScrollbarAnnotate()&&n.getScrollbarAnnotate().clear(),n.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),n.setOverlay(r))}function qe(e,t,n,i){return void 0===i&&(i=1),e.operation(function(){for(var o=e.getCursor(),a=e.getSearchCursor(n,o),s=0;s<i;s++){var l=a.find(t);if(0==s&&l&&K(a.from(),o)&&(l=a.find(t)),!l&&(a=e.getSearchCursor(n,t?r(e.lastLine()):r(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,n){return"number"!=typeof e&&(e=e.line),t instanceof Array?y(e,t):n?e>=t&&e<=n:e==t}function Ke(e){var t=e.getScrollInfo(),n=e.coordsChar({left:0,top:6+t.top},"local"),r=t.clientHeight-10+t.top,i=e.coordsChar({left:0,top:r},"local");return{top:n.line,bottom:i.line}}function Ue(e,t,n){if("'"==n){var r=e.doc.history.done,i=r[r.length-2];return i&&i.ranges&&i.ranges[0].head}var o=t.marks[n];return o&&o.find()}function Ve(t,n,r,i,o,a,s,l,c){function u(){t.operation(function(){for(;!m;)f(),d();h()})}function f(){var e=t.getRange(a.from(),a.to()),n=e.replace(s,l);a.replace(n)}function d(){for(;a.findNext()&&je(a.from(),i,o);)if(r||!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 n=t.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=g.ch}c&&c()}function p(n,r,i){switch(e.e_stop(n),e.keyName(n)){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 "+s.source):n?void Be(t,{prefix:"replace with <strong>"+l+"</strong> (y/n/a/q/l)",onKeyDown:p}):(u(),void(c&&c()))}function $e(t){var n=t.state.vim,r=wt.macroModeState,i=wt.registerController.getRegister("."),o=r.isPlaying,a=r.lastInsertModeChanges,s=[];if(!o){for(var l=a.inVisualBlock?n.lastSelection.visualBlock.height:1,c=a.changes,s=[],u=0;u<c.length;)s.push(c[u]),c[u]instanceof it?u++:u+=l;a.changes=s,t.off("change",et),e.off(t.getInputField(),"keydown",ot)}!o&&n.insertModeRepeat>1&&(at(t,n,n.insertModeRepeat-1,!0),n.lastEditInputState.repeatOverride=n.insertModeRepeat),delete n.insertModeRepeat,n.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"}),r.isRecording&&Je(r)}function Ge(e){t.unshift(e)}function Xe(e,t,n,r,i){var o={keys:e,type:t};o[t]=n,o[t+"Args"]=r;for(var a in i)o[a]=i[a];Ge(o)}function Ye(t,n,r,i){var o=wt.registerController.getRegister(i);if(":"==i)return o.keyBuffer[0]&&Rt.processCommand(t,o.keyBuffer[0]),void(r.isPlaying=!1);var a=o.keyBuffer,s=0;r.isPlaying=!0,r.replaySearchQueries=o.searchQueries.slice(0);for(var l=0;l<a.length;l++)for(var c,u,f=a[l];f;)if(c=/<\w+-.+?>|<\w+>|./.exec(f),u=c[0],f=f.substring(c.index+u.length),e.Vim.handleKey(t,u,"macro"),n.insertMode){var d=o.insertModeChanges[s++].changes;wt.macroModeState.lastInsertModeChanges.changes=d,st(t,d,1),$e(t)}r.isPlaying=!1}function Qe(e,t){if(!e.isPlaying){var n=e.latestRegister,r=wt.registerController.getRegister(n);r&&r.pushText(t)}}function Je(e){if(!e.isPlaying){var t=e.latestRegister,n=wt.registerController.getRegister(t);n&&n.pushInsertModeChanges&&n.pushInsertModeChanges(e.lastInsertModeChanges)}}function Ze(e,t){if(!e.isPlaying){var n=e.latestRegister,r=wt.registerController.getRegister(n);r&&r.pushSearchQuery&&r.pushSearchQuery(t)}}function et(e,t){var n=wt.macroModeState,r=n.lastInsertModeChanges;if(!n.isPlaying)for(;t;){if(r.expectCursorActivityForChange=!0,"+input"==t.origin||"paste"==t.origin||void 0===t.origin){var i=t.text.join("\n");r.maybeReset&&(r.changes=[],r.maybeReset=!1),e.state.overwrite&&!/\n/.test(i)?r.changes.push([i]):r.changes.push(i)}t=t.next}}function tt(e){var t=e.state.vim;if(t.insertMode){var n=wt.macroModeState;if(n.isPlaying)return;var r=n.lastInsertModeChanges;r.expectCursorActivityForChange?r.expectCursorActivityForChange=!1:r.maybeReset=!0}else e.curOp.isVimOp||rt(e,t);t.visualMode&&nt(e)}function nt(e){var t=e.state.vim,n=R(e,j(t.sel.head)),r=z(n,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(n,r,{className:"cm-animate-fat-cursor"})}function rt(t,n){var r=t.getCursor("anchor"),i=t.getCursor("head");if(n.visualMode&&!t.somethingSelected()?le(t,!1):n.visualMode||n.insertMode||!t.somethingSelected()||(n.visualMode=!0,n.visualLine=!1,e.signal(t,"vim-mode-change",{mode:"visual"})),n.visualMode){var o=U(i,r)?0:-1,a=U(i,r)?-1:0;i=z(i,0,o),r=z(r,0,a),n.sel={anchor:r,head:i},xe(t,n,"<",V(i,r)),xe(t,n,">",$(i,r))}else n.insertMode||(n.lastHPos=t.getCursor().ch)}function it(e){this.keyName=e}function ot(t){function n(){return i.maybeReset&&(i.changes=[],i.maybeReset=!1),i.changes.push(new it(o)),!0}var r=wt.macroModeState,i=r.lastInsertModeChanges,o=e.keyName(t);o&&(o.indexOf("Delete")==-1&&o.indexOf("Backspace")==-1||e.lookupKey(o,"vim-insert",n))}function at(e,t,n,r){function i(){s?St.processAction(e,t,t.lastEditActionCommand):St.evalInput(e,t)}function o(n){if(a.lastInsertModeChanges.changes.length>0){n=t.lastEditActionCommand?n:1;var r=a.lastInsertModeChanges;st(e,r.changes,n)}}var a=wt.macroModeState;a.isPlaying=!0;var s=!!t.lastEditActionCommand,l=t.inputState;if(t.inputState=t.lastEditInputState,s&&t.lastEditActionCommand.interlaceInsertRepeat)for(var c=0;c<n;c++)i(),o(1);else r||i(),o(n);t.inputState=l,t.insertMode&&!r&&$e(e),a.isPlaying=!1}function st(t,n,r){function i(n){return"string"==typeof n?e.commands[n](t):n(t),!0}var o=t.getCursor("head"),a=wt.macroModeState.lastInsertModeChanges.inVisualBlock;if(a){var s=t.state.vim,l=s.lastSelection,c=D(l.anchor,l.head);ee(t,o,c.line+1),r=t.listSelections().length,t.setCursor(o)}for(var u=0;u<r;u++){a&&t.setCursor(z(o,u,0));for(var f=0;f<n.length;f++){var d=n[f];if(d instanceof it)e.lookupKey(d.keyName,"vim-insert",i);else if("string"==typeof d){var h=t.getCursor();t.replaceRange(d,h,h)}else{var p=t.getCursor(),m=z(p,0,d[0].length);t.replaceRange(d[0],p,m)}}}a&&t.setCursor(z(o,0,1))}e.defineOption("vimMode",!1,function(t,n,r){n&&"vim"!=t.getOption("keyMap")?t.setOption("keyMap","vim"):!n&&r!=e.Init&&/^vim/.test(t.getOption("keyMap"))&&t.setOption("keyMap","default")});var lt={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 n=t.getOption("mode");return"null"==n?"":n}var n=""==e?"null":e;t.setOption("mode",n)}});var bt=function(){function e(e,t,s){function l(t){var i=++r%n,o=a[i];o&&o.clear(),a[i]=e.setBookmark(t)}var c=r%n,u=a[c];if(u){var f=u.find();f&&!K(f,t)&&l(t)}else l(t);l(s),i=r,(o=r-n+1)<0&&(o=0)}function t(e,t){r+=t,r>i?r=i:r<o&&(r=o);var s=a[(n+r)%n];if(s&&!s.find()){var l,c=t>0?1:-1,u=e.getCursor();do{if(r+=c,(s=a[(n+r)%n])&&(l=s.find())&&!K(u,l))break}while(r<i&&r>o)}return s}var n=100,r=-1,i=0,o=0,a=new Array(n);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 n=wt.registerController.getRegister(t);n&&(n.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,n){Rt.map(e,t,n)},unmap:function(e,t){Rt.unmap(e,t)},setOption:x,getOption:w,defineOption:b,defineEx:function(e,t,n){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]=n,Rt.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,n){var r=this.findKey(e,t,n);if("function"==typeof r)return r()},findKey:function(n,r,i){function o(){var e=wt.macroModeState;if(e.isRecording){if("q"==r)return e.exitMacroRecordMode(),M(n),!0;"mapping"!=i&&Qe(e,r)}}function a(){if("<Esc>"==r)return M(n),c.visualMode?le(n):c.insertMode&&$e(n),!0}function s(t){for(var i;t;)i=/<\w+-.+?>|<\w+>|./.exec(t),r=i[0],t=t.substring(i.index+r.length),
|
12 |
-
e.Vim.handleKey(n,r,"mapping")}var l,c=C(n);return l=c.insertMode?function(){if(a())return!0;for(var e=c.inputState.keyBuffer=c.inputState.keyBuffer+r,i=1==r.length,o=St.matchCommand(e,t,c.inputState,"insert");e.length>1&&"full"!=o.type;){var e=c.inputState.keyBuffer=e.slice(1),s=St.matchCommand(e,t,c.inputState,"insert");"none"!=s.type&&(o=s)}if("none"==o.type)return M(n),!1;if("partial"==o.type)return kt&&window.clearTimeout(kt),kt=window.setTimeout(function(){c.insertMode&&c.inputState.keyBuffer&&M(n)},w("insertModeEscKeysTimeout")),!i;if(kt&&window.clearTimeout(kt),i){for(var l=n.listSelections(),u=0;u<l.length;u++){var f=l[u].head;n.replaceRange("",z(f,0,-(e.length-1)),f,"+input")}wt.macroModeState.lastInsertModeChanges.changes.pop()}return M(n),o.command}():function(){if(o()||a())return!0;var e=c.inputState.keyBuffer=c.inputState.keyBuffer+r;if(/^[1-9]\d*$/.test(e))return!0;var i=/^(\d*)(.*)$/.exec(e);if(!i)return M(n),!1;var s=c.visualMode?"visual":"normal",l=St.matchCommand(i[2]||i[1],t,c.inputState,s);if("none"==l.type)return M(n),!1;if("partial"==l.type)return!0;c.inputState.keyBuffer="";var i=/^(\d*)(.*)$/.exec(e);return i[1]&&"0"!=i[1]&&c.inputState.pushRepeatDigit(i[1]),l.command}(),l===!1?void 0:l===!0?function(){return!0}:function(){return n.operation(function(){n.curOp.isVimOp=!0;try{"keyToKey"==l.type?s(l.toKeys):St.processCommand(n,c,l)}catch(t){throw n.state.vim=void 0,C(n),e.Vim.suppressErrorLogging||console.log(t),t}return!0})}},handleEx:function(e,t){Rt.processCommand(e,t)},defineMotion:E,defineAction:P,defineOperator:I,mapCommand:Xe,_mapCommand:Ge,defineRegister:T,exitVisualMode:le,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,n){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!n},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,n,r,i){r&&"\n"!==n.charAt(n.length-1)&&(n+="\n");var o=this.isValidRegister(e)?this.getRegister(e):null;if(!o){switch(t){case"yank":this.registers[0]=new L(n,r,i);break;case"delete":case"change":n.indexOf("\n")==-1?this.registers["-"]=new L(n,r):(this.shiftNumericRegisters_(),this.registers[1]=new L(n,r))}return void this.unnamedRegister.setText(n,r,i)}g(e)?o.pushText(n,r):o.setText(n,r,i),this.unnamedRegister.setText(o.toString(),r)},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 n=this.historyBuffer,r=t?-1:1;null===this.initialPrefix&&(this.initialPrefix=e);for(var i=this.iterator+r;t?i>=0:i<n.length;i+=r)for(var o=n[i],a=0;a<=o.length;a++)if(this.initialPrefix==o.substring(0,a))return this.iterator=i,o;return i>=n.length?(this.iterator=n.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,n,r){var i=F(e,t,r,n);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 s=i.full[a];o||(o=s)}if("<character>"==o.keys.slice(-11)){var l=q(e);if(!l)return{type:"none"};n.selectedCharacter=l}return{type:"full",command:o}},processCommand:function(e,t,n){switch(t.inputState.repeatOverride=n.repeatOverride,n.type){case"motion":this.processMotion(e,t,n);break;case"operator":this.processOperator(e,t,n);break;case"operatorMotion":this.processOperatorMotion(e,t,n);break;case"action":this.processAction(e,t,n);break;case"search":this.processSearch(e,t,n);break;case"ex":case"keyToEx":this.processEx(e,t,n)}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=B(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var r=t.inputState;if(r.operator){if(r.operator==n.operator)return r.motion="expandToLine",r.motionArgs={linewise:!0},void this.evalInput(e,t);M(e)}r.operator=n.operator,r.operatorArgs=B(n.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var r=t.visualMode,i=B(n.operatorMotionArgs);i&&r&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),r||this.processMotion(e,t,n)},processAction:function(e,t,n){var r=t.inputState,i=r.getRepeat(),o=!!i,a=B(n.actionArgs)||{};r.selectedCharacter&&(a.selectedCharacter=r.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),a.repeat=i||1,a.repeatIsExplicit=o,a.registerName=r.registerName,M(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,r,n),Lt[n.action](e,a,t)},processSearch:function(t,n,r){function i(e,i,o){wt.searchHistoryController.pushInput(e),wt.searchHistoryController.reset();try{De(t,e,i,o)}catch(n){return Pe(t,"Invalid regex: "+e),void M(t)}St.processMotion(t,n,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:r.searchArgs.toJumplist}})}function o(e){t.scrollTo(d.left,d.top),i(e,!0,!0);var n=wt.macroModeState;n.isRecording&&Ze(n,e)}function a(n,r,i){var o,a,s=e.keyName(n);"Up"==s||"Down"==s?(o="Up"==s,a=n.target?n.target.selectionEnd:0,r=wt.searchHistoryController.nextMatch(r,o)||"",i(r),a&&n.target&&(n.target.selectionEnd=n.target.selectionStart=Math.min(a,n.target.value.length))):"Left"!=s&&"Right"!=s&&"Ctrl"!=s&&"Alt"!=s&&"Shift"!=s&&wt.searchHistoryController.reset();var c;try{c=De(t,r,!0,!0)}catch(e){}c?t.scrollIntoView(qe(t,!l,c),30):(He(t),t.scrollTo(d.left,d.top))}function s(n,r,i){var o=e.keyName(n);"Esc"==o||"Ctrl-C"==o||"Ctrl-["==o||"Backspace"==o&&""==r?(wt.searchHistoryController.pushInput(r),wt.searchHistoryController.reset(),De(t,f),He(t),t.scrollTo(d.left,d.top),e.e_stop(n),M(t),i(),t.focus()):"Up"==o||"Down"==o?e.e_stop(n):"Ctrl-U"==o&&(e.e_stop(n),i(""))}if(t.getSearchCursor){var l=r.searchArgs.forward,c=r.searchArgs.wholeWordOnly;Me(t).setReversed(!l);var u=l?"/":"?",f=Me(t).getQuery(),d=t.getScrollInfo();switch(r.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:Nt,onKeyUp:a,onKeyDown:s});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,n,r){function i(e){wt.exCommandHistoryController.pushInput(e),wt.exCommandHistoryController.reset(),Rt.processCommand(t,e)}function o(n,r,i){var o,a,s=e.keyName(n);("Esc"==s||"Ctrl-C"==s||"Ctrl-["==s||"Backspace"==s&&""==r)&&(wt.exCommandHistoryController.pushInput(r),wt.exCommandHistoryController.reset(),e.e_stop(n),M(t),i(),t.focus()),"Up"==s||"Down"==s?(e.e_stop(n),o="Up"==s,a=n.target?n.target.selectionEnd:0,r=wt.exCommandHistoryController.nextMatch(r,o)||"",i(r),a&&n.target&&(n.target.selectionEnd=n.target.selectionStart=Math.min(a,n.target.value.length))):"Ctrl-U"==s?(e.e_stop(n),i("")):"Left"!=s&&"Right"!=s&&"Ctrl"!=s&&"Alt"!=s&&"Shift"!=s&&wt.exCommandHistoryController.reset()}"keyToEx"==r.type?Rt.processCommand(t,r.exArgs.input):n.visualMode?Be(t,{onClose:i,prefix:":",value:"'<,'>",onKeyDown:o}):Be(t,{onClose:i,prefix:":",onKeyDown:o})},evalInput:function(e,t){var n,i,o,a=t.inputState,s=a.motion,l=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&&l.explicitRepeat?l.repeatIsExplicit=!0:(l.noRepeat||!l.explicitRepeat&&0===o)&&(o=1,l.repeatIsExplicit=!1),a.selectedCharacter&&(l.selectedCharacter=u.selectedCharacter=a.selectedCharacter),l.repeat=o,M(e),s){var v=_t[s](e,h,l,t);if(t.lastMotion=_t[s],!v)return;if(l.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],n=v[1]):n=v,n||(n=j(h)),t.visualMode?(t.visualBlock&&n.ch===1/0||(n=R(e,n,t.visualBlock)),i&&(i=R(e,i,!0)),i=i||g,d.anchor=i,d.head=n,oe(e),xe(e,t,"<",U(i,n)?i:n),xe(e,t,">",U(i,n)?n:i)):c||(n=R(e,n),e.setCursor(n.line,n.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);n=x.visualLine?r(g.line+w,g.ch):x.visualBlock?r(g.line+w,g.ch+k):x.head.line==x.anchor.line?r(g.line,g.ch+k):r(g.line+w,g.ch),t.visualMode=!0,t.visualLine=x.visualLine,t.visualBlock=x.visualBlock,d=t.sel={anchor:i,head:n},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=r(A[0].head.line+1,0))}}else{if(C=j(i||g),S=j(n||m),U(S,C)){var E=C;C=S,S=E}_=l.linewise||u.linewise,_?ue(e,C,S):l.forward&&ce(e,C,S),L="char";T=ae(e,{anchor:C,head:S},L,!l.inclusive||_)}e.setSelections(T.ranges,T.primary),t.lastMotion=null,u.repeat=o,u.registerName=f,u.linewise=_;var N=Mt[c](e,u,T.ranges,g,n);t.visualMode&&le(e,null!=N),N&&e.setCursor(N)}},recordLastEdit:function(e,t,n){var r=wt.macroModeState;r.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=n,r.lastInsertModeChanges.changes=[],r.lastInsertModeChanges.expectCursorActivityForChange=!1)}},_t={moveToTopLine:function(e,t,n){var i=Ke(e).top+n.repeat-1;return r(i,fe(e.getLine(i)))},moveToMiddleLine:function(e){var t=Ke(e),n=Math.floor(.5*(t.top+t.bottom));return r(n,fe(e.getLine(n)))},moveToBottomLine:function(e,t,n){var i=Ke(e).bottom-n.repeat+1;return r(i,fe(e.getLine(i)))},expandToLine:function(e,t,n){return r(t.line+n.repeat-1,1/0)},findNext:function(e,t,n){var r=Me(e),i=r.getQuery();if(i){var o=!n.forward;return o=r.isReversed()?!o:o,We(e,i),qe(e,o,i,n.repeat)}},goToMark:function(e,t,n,r){var i=Ue(e,r,n.selectedCharacter);return i?n.linewise?{line:i.line,ch:fe(e.getLine(i.line))}:i:null},moveToOtherHighlightedEnd:function(e,t,n,i){if(i.visualBlock&&n.sameLine){var o=i.sel;return[R(e,r(o.anchor.line,o.head.ch)),R(e,r(o.head.line,o.anchor.ch))]}return[i.sel.head,i.sel.anchor]},jumpToMark:function(e,t,n,i){for(var o=t,a=0;a<n.repeat;a++){var s=o;for(var l in i.marks)if(h(l)){var c=i.marks[l].find(),u=n.forward?U(c,s):U(s,c);if(!(u||n.linewise&&c.line==s.line)){var f=K(s,o),d=n.forward?G(s,c,o):G(o,c,s);(f||d)&&(o=c)}}}return n.linewise&&(o=r(o.line,fe(e.getLine(o.line)))),o},moveByCharacters:function(e,t,n){var i=t,o=n.repeat,a=n.forward?i.ch+o:i.ch-o;return r(i.line,a)},moveByLines:function(e,t,n,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 s=n.repeat+(n.repeatOffset||0),l=n.forward?o.line+s:o.line-s,c=e.firstLine(),u=e.lastLine();return l<c&&o.line==c?this.moveToStartOfLine(e,t,n,i):l>u&&o.line==u?this.moveToEol(e,t,n,i):(n.toFirstChar&&(a=fe(e.getLine(l)),i.lastHPos=a),i.lastHSPos=e.charCoords(r(l,a),"div").left,r(l,a))},moveByDisplayLines:function(e,t,n,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=n.repeat,s=e.findPosV(o,n.forward?a:-a,"line",i.lastHSPos);if(s.hitSide)if(n.forward)var l=e.charCoords(s,"div"),c={top:l.top+8,left:i.lastHSPos},s=e.coordsChar(c,"div");else{var u=e.charCoords(r(e.firstLine(),0),"div");u.left=i.lastHSPos,s=e.coordsChar(u,"div")}return i.lastHPos=s.ch,s},moveByPage:function(e,t,n){var r=t,i=n.repeat;return e.findPosV(r,n.forward?i:-i,"page")},moveByParagraph:function(e,t,n){var r=n.forward?1:-1;return ke(e,t,n.repeat,r)},moveByScroll:function(e,t,n,r){var i=e.getScrollInfo(),o=null,a=n.repeat;a||(a=i.clientHeight/(2*e.defaultTextHeight()));var s=e.charCoords(t,"local");n.repeat=a;var o=_t.moveByDisplayLines(e,t,n,r);if(!o)return null;var l=e.charCoords(o,"local");return e.scrollTo(null,i.top+l.top-s.top),o},moveByWords:function(e,t,n){return ve(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var r=n.repeat,i=ye(e,r,n.forward,n.selectedCharacter),o=n.forward?-1:1;return pe(o,n),i?(i.ch+=o,i):null},moveToCharacter:function(e,t,n){var r=n.repeat;return pe(0,n),ye(e,r,n.forward,n.selectedCharacter)||t},moveToSymbol:function(e,t,n){return me(e,n.repeat,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,r){var i=n.repeat;return r.lastHPos=i-1,r.lastHSPos=e.charCoords(t,"div").left,be(e,i)},moveToEol:function(e,t,n,i){var o=t;i.lastHPos=1/0;var a=r(o.line+n.repeat-1,1/0),s=e.clipPos(a);return s.ch--,i.lastHSPos=e.charCoords(s,"div").left,a},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return r(n.line,fe(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){for(var n,i=t,o=i.line,a=i.ch,s=e.getLine(o);a<s.length;a++)if((n=s.charAt(a))&&p(n)){var l=e.getTokenTypeAt(r(o,a+1));if("string"!==l&&"comment"!==l)break}if(a<s.length){return e.findMatchingBracket(r(o,a)).to}return i},moveToStartOfLine:function(e,t){return r(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var i=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(i=n.repeat-e.getOption("firstLineNumber")),r(i,fe(e.getLine(i)))},textObjectManipulation:function(e,t,n,r){var i={"(":")",")":"(","{":"}","}":"{","[":"]","]":"["},o={"'":!0,'"':!0},a=n.selectedCharacter;"b"==a?a="(":"B"==a&&(a="{");var s,l=!n.textObjectInner;if(i[a])s=Ce(e,t,a,l);else if(o[a])s=Se(e,t,a,l);else if("W"===a)s=de(e,l,!0,!0);else if("w"===a)s=de(e,l,!0,!1);else{if("p"!==a)return null;if(s=ke(e,t,n.repeat,0,l),n.linewise=!0,r.visualMode)r.visualLine||(r.visualLine=!0);else{var c=r.inputState.operatorArgs;c&&(c.linewise=!0),s.end.line--}}return e.state.vim.visualMode?ie(e,s.start,s.end):[s.start,s.end]},repeatLastCharacterSearch:function(e,t,n){var r=wt.lastCharacterSearch,i=n.repeat,o=n.forward===r.forward,a=(r.increment?1:0)*(o?-1:1);e.moveH(-a,"char"),n.inclusive=!!o;var s=ye(e,i,o,r.selectedCharacter);return s?(s.ch+=a,s):(e.moveH(a,"char"),t)}},Mt={change:function(t,n,i){var o,a,s=t.state.vim;if(wt.macroModeState.lastInsertModeChanges.inVisualBlock=s.visualBlock,s.visualMode){a=t.getSelection();var l=N("",i.length);t.replaceSelections(l),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=s.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 r(c.line-1,Number.MAX_VALUE),p=t.firstLine()==t.lastLine();u.line>t.lastLine()&&n.linewise&&!p?t.replaceRange("",h,u):t.replaceRange("",c,u),n.linewise&&(p||(t.setCursor(h),e.commands.newlineAndIndent(t)),c.ch=Number.MAX_VALUE),o=c}wt.registerController.pushText(n.registerName,"change",a,n.linewise,i.length>1),Lt.enterInsertMode(t,{head:o},t.state.vim)},delete:function(e,t,n){var i,o,a=e.state.vim;if(a.visualBlock){o=e.getSelection();var s=N("",n.length);e.replaceSelections(s),i=n[0].anchor}else{var l=n[0].anchor,c=n[0].head;t.linewise&&c.line!=e.firstLine()&&l.line==e.lastLine()&&l.line==c.line-1&&(l.line==e.firstLine()?l.ch=0:l=r(l.line-1,X(e,l.line-1))),o=e.getRange(l,c),e.replaceRange("",l,c),i=l,t.linewise&&(i=_t.moveToFirstNonWhiteSpaceCharacter(e,l))}return wt.registerController.pushText(t.registerName,"delete",o,t.linewise,a.visualBlock),R(e,i)},indent:function(e,t,n){var r=e.state.vim,i=n[0].anchor.line,o=r.visualBlock?n[n.length-1].anchor.line:n[0].head.line,a=r.visualMode?t.repeat:1;t.linewise&&o--;for(var s=i;s<=o;s++)for(var l=0;l<a;l++)e.indentLine(s,t.indentRight);return _t.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},changeCase:function(e,t,n,r,i){for(var o=e.getSelections(),a=[],s=t.toLower,l=0;l<o.length;l++){var c=o[l],u="";if(s===!0)u=c.toLowerCase();else if(s===!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&&n[0].anchor.line+1==n[0].head.line?_t.moveToFirstNonWhiteSpaceCharacter(e,r):t.linewise?r:V(n[0].anchor,n[0].head)},yank:function(e,t,n,r){var i=e.state.vim,o=e.getSelection(),a=i.visualMode?V(i.sel.anchor,i.sel.head,n[0].head,n[0].anchor):r;return wt.registerController.pushText(t.registerName,"yank",o,t.linewise,i.visualBlock),a}},Lt={jumpListWalk:function(e,t,n){if(!n.visualMode){var r=t.repeat,i=t.forward,o=wt.jumpList,a=o.move(e,i?r:-r),s=a?a.find():void 0;s=s?s:e.getCursor(),e.setCursor(s)}},scroll:function(e,t,n){if(!n.visualMode){var r=t.repeat||1,i=e.defaultTextHeight(),o=e.getScrollInfo().top,a=i*r,s=t.forward?o+a:o-a,l=j(e.getCursor()),c=e.charCoords(l,"local");if(t.forward)s>c.top?(l.line+=(s-c.top)/i,l.line=Math.ceil(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.top)):e.scrollTo(null,s);else{var u=s+e.getScrollInfo().clientHeight;u<c.bottom?(l.line-=(c.bottom-u)/i,l.line=Math.floor(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,s)}}},scrollToCursor:function(e,t){var n=e.getCursor().line,i=e.charCoords(r(n,0),"local"),o=e.getScrollInfo().clientHeight,a=i.top,s=i.bottom-a;switch(t.position){case"center":a=a-o/2+s;break;case"bottom":a=a-o+s}e.scrollTo(null,a)},replayMacro:function(e,t,n){var r=t.selectedCharacter,i=t.repeat,o=wt.macroModeState;for("@"==r&&(r=o.latestRegister);i--;)Ye(e,n,o,r)},enterMacroRecordMode:function(e,t){var n=wt.macroModeState,r=t.selectedCharacter;wt.registerController.isValidRegister(r)&&n.enterMacroRecordMode(e,r)},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,n,i){if(!t.getOption("readOnly")){i.insertMode=!0,i.insertModeRepeat=n&&n.repeat||1;var o=n?n.insertAt:null,a=i.sel,s=n.head||t.getCursor("head"),l=t.listSelections().length;if("eol"==o)s=r(s.line,X(t,s.line));else if("charAfter"==o)s=z(s,0,1);else if("firstNonBlank"==o)s=_t.moveToFirstNonWhiteSpaceCharacter(t,s);else if("startOfSelectedArea"==o)i.visualBlock?(s=r(Math.min(a.head.line,a.anchor.line),Math.min(a.head.ch,a.anchor.ch)),l=Math.abs(a.head.line-a.anchor.line)+1):s=a.head.line<a.anchor.line?a.head:r(a.anchor.line,0);else if("endOfSelectedArea"==o)i.visualBlock?(s=r(Math.min(a.head.line,a.anchor.line),Math.max(a.head.ch+1,a.anchor.ch)),l=Math.abs(a.head.line-a.anchor.line)+1):s=a.head.line>=a.anchor.line?z(a.head,0,1):r(a.anchor.line,0);else if("inplace"==o&&i.visualMode)return;t.setOption("disableInput",!1),n&&n.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&&le(t),ee(t,s,l)}},toggleVisualMode:function(t,n,i){var o,a=n.repeat,s=t.getCursor();i.visualMode?i.visualLine^n.linewise||i.visualBlock^n.blockwise?(i.visualLine=!!n.linewise,i.visualBlock=!!n.blockwise,e.signal(t,"vim-mode-change",{mode:"visual",subMode:i.visualLine?"linewise":i.visualBlock?"blockwise":""}),oe(t)):le(t):(i.visualMode=!0,i.visualLine=!!n.linewise,i.visualBlock=!!n.blockwise,o=R(t,r(s.line,s.ch+a-1),!0),i.sel={anchor:s,head:o},e.signal(t,"vim-mode-change",{mode:"visual",subMode:i.visualLine?"linewise":i.visualBlock?"blockwise":""}),oe(t),xe(t,i,"<",V(s,o)),xe(t,i,">",$(s,o)))},reselectLastSelection:function(t,n,r){var i=r.lastSelection;if(r.visualMode&&re(t,r),i){var o=i.anchorMark.find(),a=i.headMark.find();if(!o||!a)return;r.sel={anchor:o,head:a},r.visualMode=!0,r.visualLine=i.visualLine,r.visualBlock=i.visualBlock,oe(t),xe(t,r,"<",V(o,a)),xe(t,r,">",$(o,a)),e.signal(t,"vim-mode-change",{mode:"visual",subMode:r.visualLine?"linewise":r.visualBlock?"blockwise":""})}},joinLines:function(e,t,n){var i,o;if(n.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 s=Math.max(t.repeat,2);i=e.getCursor(),o=R(e,r(i.line+s-1,1/0))}for(var l=0,c=i.line;c<o.line;c++){l=X(e,i.line);var a=r(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=r(i.line,l);n.visualMode&&le(e,!1),e.setCursor(f)},newLineAndEnterInsertMode:function(t,n,i){i.insertMode=!0;var o=j(t.getCursor());if(o.line!==t.firstLine()||n.after){o.line=n.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",r(t.firstLine(),0)),t.setCursor(t.firstLine(),0);this.enterInsertMode(t,{repeat:n.repeat},i)},paste:function(e,t,n){var i=j(e.getCursor()),o=wt.registerController.getRegister(t.registerName),a=o.toString();if(a){if(t.matchIndent){var s=e.getOption("tabSize"),l=function(e){var t=e.split("\t").length-1,n=e.split(" ").length-1;return t*s+1*n},c=e.getLine(e.getCursor().line),u=l(c.match(/^\s*/)[0]),f=a.replace(/\n$/,""),d=a!==f,h=l(a.match(/^\s*/)[0]),a=f.replace(/^\s*/gm,function(t){var n=u+(l(t)-h);if(n<0)return"";if(e.getOption("indentWithTabs")){var r=Math.floor(n/s);return Array(r+1).join("\t")}return Array(n+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)n.visualMode?a=n.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(n.visualMode){n.lastPastedText=a;var b,x=ne(e,n),w=x[0],k=x[1],C=e.getSelection(),S=e.listSelections(),_=new Array(S.length).join("1").split("1");n.lastSelection&&(b=n.lastSelection.headMark.find()),wt.registerController.unnamedRegister.setText(C),m?(e.replaceSelections(_),k=r(w.line+a.length-1,w.ch),e.setCursor(w),Z(e,k),e.replaceSelections(a),v=w):n.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&&(n.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",r(M,0));var L=X(e,M);L<i.ch&&J(e,M,i.ch)}e.setCursor(i),Z(e,r(i.line+a.length-1,i.ch)),e.replaceSelections(a),v=i}else e.replaceRange(a,i),p&&t.after?v=r(i.line+1,fe(e.getLine(i.line+1))):p&&!t.after?v=r(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));n.visualMode&&le(e,!1),e.setCursor(v)}},undo:function(t,n){t.operation(function(){H(t,e.commands.undo,n.repeat)(),t.setCursor(t.getCursor("anchor"))})},redo:function(t,n){H(t,e.commands.redo,n.repeat)()},setRegister:function(e,t,n){n.inputState.registerName=t.selectedCharacter},setMark:function(e,t,n){xe(e,n,t.selectedCharacter,e.getCursor())},replace:function(t,n,i){var o,a,s=n.selectedCharacter,l=t.getCursor(),c=t.listSelections();if(i.visualMode)l=t.getCursor("start"),a=t.getCursor("end");else{var u=t.getLine(l.line);o=l.ch+n.repeat,o>u.length&&(o=u.length),a=r(l.line,o)}if("\n"==s)i.visualMode||t.replaceRange("",l,a),(e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent)(t);else{var f=t.getRange(l,a);if(f=f.replace(/[^\n]/g,s),i.visualBlock){var d=new Array(t.getOption("tabSize")+1).join(" ");f=t.getSelection(),f=f.replace(/\t/g,d).replace(/[^\n]/g,s).split("\n"),t.replaceSelections(f)}else t.replaceRange(f,l,a);i.visualMode?(l=U(c[0].anchor,c[0].head)?c[0].anchor:c[0].head,t.setCursor(l),le(t,!1)):t.setCursor(z(a,0,-1))}},incrementNumberToken:function(e,t){for(var n,i,o,a,s,l=e.getCursor(),c=e.getLine(l.line),u=/-?\d+/g;null!==(n=u.exec(c))&&(s=n[0],i=n.index,o=i+s.length,!(l.ch<o)););if((t.backtrack||!(o<=l.ch))&&s){var f=t.increase?1:-1,d=parseInt(s)+f*t.repeat,h=r(l.line,i),p=r(l.line,o);a=d.toString(),e.replaceRange(a,h,p),e.setCursor(r(l.line,i+a.length-1))}},repeatLastEdit:function(e,t,n){if(n.lastEditInputState){var r=t.repeat;r&&t.repeatIsExplicit?n.lastEditInputState.repeatOverride=r:r=n.lastEditInputState.repeatOverride||r,at(e,n,r,!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"},Nt="(Javascript regexp)",It=function(){this.buildCommandMap_()};It.prototype={processCommand:function(e,t,n){var r=this;e.operation(function(){e.curOp.isVimOp=!0,r._processCommand(e,t,n)})},_processCommand:function(t,n,r){var i=t.state.vim,o=wt.registerController.getRegister(":"),a=o.toString();i.visualMode&&le(t);var s=new e.StringStream(n);o.setText(n);var l=r||{};l.input=n;try{this.parseInput_(t,s,l)}catch(e){throw Pe(t,e),e}var c,u;if(l.commandName){if(c=this.matchCommand_(l.commandName)){if(u=c.name,c.excludeFromCommandHistory&&o.setText(a),this.parseCommandArgs_(s,l,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!==l.line&&(u="move");if(!u)return void Pe(t,'Not an editor command ":'+n+'"');try{Pt[u](t,l),c&&c.possiblyAsync||!l.callback||l.callback()}catch(e){throw Pe(t,e),e}},parseInput_:function(e,t,n){t.eatWhile(":"),t.eat("%")?(n.line=e.firstLine(),n.lineEnd=e.lastLine()):(n.line=this.parseLineSpec_(e,t),void 0!==n.line&&t.eat(",")&&(n.lineEnd=this.parseLineSpec_(e,t)));var r=t.match(/^(\w+)/);return n.commandName=r?r[1]:t.match(/.*/)[0],n},parseLineSpec_:function(e,t){var n=t.match(/^(\d+)/);if(n)return parseInt(n[1],10)-1;switch(t.next()){case".":return this.parseLineSpecOffset_(t,e.getCursor().line);case"$":return this.parseLineSpecOffset_(t,e.lastLine());case"'":var r=t.next(),i=Ue(e,e.state.vim,r);if(!i)throw new Error("Mark not set");return this.parseLineSpecOffset_(t,i.line);case"-":case"+":return t.backUp(1),this.parseLineSpecOffset_(t,e.getCursor().line);default:return void t.backUp(1)}},parseLineSpecOffset_:function(e,t){var n=e.match(/^([+-])?(\d+)/);if(n){var r=parseInt(n[2],10);"-"==n[1]?t-=r:t+=r}return t},parseCommandArgs_:function(e,t,n){if(!e.eol()){t.argString=e.match(/.*/)[0];var r=n.argDelimiter||/\s+/,i=Y(t.argString).split(r);i.length&&i[0]&&(t.args=i)}},matchCommand_:function(e){for(var t=e.length;t>0;t--){var n=e.substring(0,t);if(this.commandMap_[n]){var r=this.commandMap_[n];if(0===r.name.indexOf(e))return r}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<n.length;e++){var t=n[e],r=t.shortName||t.name;this.commandMap_[r]=t}},map:function(e,n,r){if(":"!=e&&":"==e.charAt(0)){if(r)throw Error("Mode not supported for ex mappings");var i=e.substring(1);":"!=n&&":"==n.charAt(0)?this.commandMap_[i]={name:i,type:"exToEx",toInput:n.substring(1),user:!0}:this.commandMap_[i]={name:i,type:"exToKey",toKeys:n,user:!0}}else if(":"!=n&&":"==n.charAt(0)){var o={keys:e,type:"keyToEx",exArgs:{input:n.substring(1)}};r&&(o.context=r),t.unshift(o)}else{var o={keys:e,type:"keyToKey",toKeys:n};r&&(o.context=r),t.unshift(o)}},unmap:function(e,n){if(":"!=e&&":"==e.charAt(0)){if(n)throw Error("Mode not supported for ex mappings");var r=e.substring(1);if(this.commandMap_[r]&&this.commandMap_[r].user)return void delete this.commandMap_[r]}else for(var i=e,o=0;o<t.length;o++)if(i==t[o].keys&&t[o].context===n)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,n){var r=t.args;if(!r||r.length<2)return void(e&&Pe(e,"Invalid mapping: "+t.input));Rt.map(r[0],r[1],n)},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,n){var r=t.args;if(!r||r.length<1)return void(e&&Pe(e,"No such mapping: "+t.input));Rt.unmap(r[0],n)},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 n=t.args,r=t.setCfg||{};if(!n||n.length<1)return void(e&&Pe(e,"Invalid mapping: "+t.input));var i=n[0].split("="),o=i[0],a=i[1],s=!1;if("?"==o.charAt(o.length-1)){if(a)throw Error("Trailing characters: "+t.argString);o=o.substring(0,o.length-1),s=!0}void 0===a&&"no"==o.substring(0,2)&&(o=o.substring(2),a=!1);var l=yt[o]&&"boolean"==yt[o].type;if(l&&void 0==a&&(a=!0),!l&&void 0===a||s){var c=w(o,e,r);c instanceof Error?Pe(e,c.message):c===!0||c===!1?Pe(e," "+(c?"":"no")+o):Pe(e," "+o+"="+c)}else{var u=x(o,a,e,r);u instanceof Error&&Pe(e,u.message)}},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 n=t.args,r=wt.registerController.registers,i="----------Registers----------<br><br>";if(n){var o;n=n.join("");for(var a=0;a<n.length;a++)if(o=n.charAt(a),wt.registerController.isValidRegister(o)){var s=r[o]||new L;i+='"'+o+" "+s.toString()+"<br>"}}else for(var o in r){var l=r[o].toString();l.length&&(i+='"'+o+" "+l+"<br>")}Pe(e,i)},
|
13 |
-
sort:function(t,n){function i(e,t){if(a){var n;n=e,e=t,t=n}s&&(e=e.toLowerCase(),t=t.toLowerCase());var r=c&&v.exec(e),i=c&&v.exec(t);return r?(r=parseInt((r[1]+r[2]).toLowerCase(),y),i=parseInt((i[1]+i[2]).toLowerCase(),y),r-i):e<t?-1:1}function o(e,t){if(a){var n;n=e,e=t,t=n}return s&&(e[0]=e[0].toLowerCase(),t[0]=t[0].toLowerCase()),e[0]<t[0]?-1:1}var a,s,l,c,u,f=function(){if(n.argString){var t=new e.StringStream(n.argString);if(t.eat("!")&&(a=!0),t.eol())return;if(!t.eatSpace())return"Invalid arguments";var r=t.match(/([dinuox]+)?\s*(\/.+\/)?\s*/);if(!r&&!t.eol())return"Invalid arguments";if(r[1]){s=r[1].indexOf("i")!=-1,l=r[1].indexOf("u")!=-1;var i=r[1].indexOf("d")!=-1||r[1].indexOf("n")!=-1&&1,o=r[1].indexOf("x")!=-1&&1,f=r[1].indexOf("o")!=-1&&1;if(i+o+f>1)return"Invalid arguments";c=i&&"decimal"||o&&"hex"||f&&"octal"}r[2]&&(u=new RegExp(r[2].substr(1,r[2].length-2),s?"i":""))}}();if(f)return void Pe(t,f+": "+n.argString);var d=n.line||t.firstLine(),h=n.lineEnd||n.line||t.lastLine();if(d!=h){var p=r(d,0),m=r(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),l){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 n=t.argString;if(!n)return void Pe(e,"Regular Expression missing from global");var r,i=void 0!==t.line?t.line:e.firstLine(),o=t.lineEnd||t.line||e.lastLine(),a=Te(n),s=n;if(a.length&&(s=a[0],r=a.slice(1,a.length).join("/")),s)try{De(e,s,!0,!0)}catch(t){return void Pe(e,"Invalid regex: "+s)}for(var l=Me(e).getQuery(),c=[],u="",f=i;f<=o;f++){l.test(e.getLine(f))&&(c.push(f+1),u+=e.getLine(f)+"<br>")}if(!r)return void Pe(e,u);var d=0,h=function(){if(d<c.length){var t=c[d]+r;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 n,i,o,a,s=t.argString,l=s?Te(s):[],c="",u=!1,f=!1;if(l.length)n=l[0],c=l[1],n&&"$"===n[n.length-1]&&(n=n.slice(0,n.length-1)+"\\n",c=c?c+"\n":"\n"),void 0!==c&&(c=w("pcre")?Ne(c):Ee(c),wt.lastSubstituteReplacePart=c),i=l[2]?l[2].split(" "):[];else if(s&&s.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","")),n=n+"/"+o)),n)try{De(e,n,!0,!0)}catch(t){return void Pe(e,"Invalid regex: "+n)}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,r(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){e.commands.save?e.commands.save(t):t.save&&t.save()},nohlsearch:function(e){He(e)},yank:function(e){var t=j(e.getCursor()),n=t.line,r=e.getLine(n);wt.registerController.pushText("0","yank",r,!0,!0)},delmarks:function(t,n){if(!n.argString||!Y(n.argString))return void Pe(t,"Argument required");for(var r=t.state.vim,i=new e.StringStream(Y(n.argString));!i.eol();){i.eatSpace();var o=i.pos;if(!i.match(/[a-zA-Z]/,!1))return void Pe(t,"Invalid argument: "+n.argString.substring(o));var a=i.next();if(i.match("-",!0)){if(!i.match(/[a-zA-Z]/,!1))return void Pe(t,"Invalid argument: "+n.argString.substring(o));var s=a,l=i.next();if(!(h(s)&&h(l)||g(s)&&g(l)))return void Pe(t,"Invalid argument: "+s+"-");var c=s.charCodeAt(0),u=l.charCodeAt(0);if(c>=u)return void Pe(t,"Invalid argument: "+n.argString.substring(o));for(var f=0;f<=u-c;f++){var d=String.fromCharCode(c+f);delete r.marks[d]}}else delete r.marks[a]}}},Rt=new It;return e.keyMap.vim={attach:s,detach:a,call:l},b("insertModeEscKeysTimeout",200,"number"),e.keyMap["vim-insert"]={fallthrough:["default"],attach:s,detach:a,call:l},e.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:s,detach:a,call:l},S(),Ct}()}),function(e,t,n,r,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 n=!1;return function(){var r=this,i=arguments;n||(e.apply(r,i),n=!0,t.requestAnimationFrame(function(){t.requestAnimationFrame(function(){n=!1})}))}}function s(){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 l(){for(var t=$.getBoundingClientRect(),n=-1;n<U.children.length;n++){var r=n<0?K:U.children[n];null!=r&&(r.style.position="fixed",r.style.top=t.bottom+"px",r.style.right=e.documentElement.getBoundingClientRect().width-t.right+"px",r.id.match(/toggle/gi)||(r.style.left=t.left+"px",r.style.width="auto"))}}function c(){for(var e=$.getBoundingClientRect(),t=H.getWrapperElement().getBoundingClientRect(),n=-1;n<U.children.length;n++){var r=n<0?K:U.children[n];null!=r&&(r.style.position="absolute",r.style.top=(t.top-e.bottom)*-1+"px",r.style.left="",r.style.right="",r.style.width="")}}function u(e){f();var t=ee.settingsPosition();if(t!==ee.previousSettingsPosition||e&&"resize"===e.type)switch(_(),t){case"top":s();break;case"middle":l();break;case"bottom":c();break;case"normal":case"none":}}function f(){if(V){var n=V.getBoundingClientRect().top,r=e.getElementById("post-status-info").getBoundingClientRect().top,i=r-n,o=t.innerHeight-n;V.style.maxHeight=Math.min(i,o)-6+"px",re&&(V.style.height=V.style.maxHeight)}}function d(){V.style.maxHeight="",re&&(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",ne),t.addEventListener("resize",ne),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",ne),t.removeEventListener("resize",ne),t.removeEventListener("resize",ae),H.getWrapperElement().style.marginTop="",d(),s(),M())}function m(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.addedNodes[0]&&n.addedNodes[0].classList.contains("CodeMirror-dialog")){K=n.addedNodes[0];for(var r=K.getElementsByTagName("button"),i=0;i<r.length;i++){r[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 n=e[t];n.addEventListener("change",k),n.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=r("#CodeMirror-settings__form").serializeArray();r.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){s=n+(e.pageY-o),H.getWrapperElement().style.height=Math.max(r,s)+"px"}var n=500,r=200;H.getWrapperElement().style.height=n+"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,s=n;e.getElementById("content-resize-handle").addEventListener("mousedown",function(n){o=n.pageY,a=!0,e.addEventListener("mousemove",t),n.preventDefault()}),e.addEventListener("mouseup",function(){a=!1,n=Math.max(r,s),e.removeEventListener("mousemove",t),H.refresh()})}function O(){var t=e.querySelector(".fileedit-sub .alignleft"),n=t.textContent.match(/\.[a-z\d]{2,}/gi),r=n[n.length-1].match(/[a-z]*/gi)[1],i={php:"php",css:"css",xml:"xml",html:"htmlmixed",js:"javascript",json:"javascript"};te.mode=i[r]}function E(t){var n="; "+e.cookie,r=n.split("; "+t+"=");if(2===r.length)return r.pop().split(";").shift()}function N(){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 I(){var t=H.doc.listSelections()[0],n=H.getScrollInfo();e.cookie="hesh_plugin_selection_state="+J+","+t.anchor.line+","+t.anchor.ch+","+t.head.line+","+t.head.ch+","+n.left+","+n.top}function P(){var t=".CodeMirror pre > * { text-indent: 0px; }",r=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)),r.appendChild(i);H.on("renderLine",function(e,t,r){var i=n.countColumn(t.text,null,e.getOption("tabSize"))*ee.charWidth;r.style.textIndent="-"+i+"px",r.style.paddingLeft=4+i+"px"}),H.refresh()}function R(){var e,t,n,r=H.doc.listSelections()[0];e=t=n=0,H.doc.eachLine(function(i){n<=r.head.line-1&&(e+=i.text.length+1),n<=r.anchor.line-1&&(t+=i.text.length+1),n++}),e+=r.head.ch,t+=r.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,n=t.setInterval(function(){e!==H.getTextArea().value.length&&(t.clearInterval(n),z())},10),r=function(){t.clearInterval(n),H.off("focus",r)};H.on("focus",r)}function z(){var e=H.getTextArea().selectionStart,n=H.getTextArea().selectionEnd,r=H.getScrollInfo(),i={top:t.pageYOffset,left:t.pageXOffset};H.doc.setValue(H.getTextArea().value),H.focus();for(var o=0,a=0,s=0,l=e,c=n,u=H.getLineHandle(s).text.length+1;u<=l&&u<=c;)s++,u<=l&&(l-=u,o=s),u<=c&&(c-=u,a=s),u=H.getLineHandle(s).text.length+1;H.doc.setSelection({line:o,ch:l},{line:a,ch:c},{scroll:!1}),t.scrollTo(i.left,i.top),H.scrollTo(r.left,r.top),H.save()}function D(){var e=t.send_to_editor,n=function(n){ee.isActive()&&"content"===t.wpActiveEditor?(H.replaceSelection(n),H.save()):e(n)};t.send_to_editor=n}function F(){ee.isActive()||(o(),ee.isThemeOrPlugin&&O(),H=n.fromTextArea(G,te),j=H.getWrapperElement().querySelector(".CodeMirror-code"),G.classList.add("CodeMirror-mirrored"),H.on("change",function(){H.save()}),N(),H.on("cursorActivity",se),H.on("scroll",se),ee.isThemeOrPlugin?(A(),Q=e.getElementById("submit")):($.addEventListener("mousedown",R),D(),T(),h(),C()),g(),w(+i.fontSize,+i.lineHeight),P())}function W(){ee.isActive()&&(y("closed"),H.toTextArea())}function q(){ee.isThemeOrPlugin?F():ee.isVisualEnabled?(X.addEventListener("click",function(){t.setTimeout(F,0)}),Y.addEventListener("click",W),ee.isVisualActive()||F()):(F(),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,n=this;return e=$?"absolute"===$.style.position?"0px"===$.style.top?"top":"bottom":"fixed"===$.style.position?"middle":"normal":"none",t.setTimeout(function(){n.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()}}},ne=a(u),re=!!navigator.userAgent.match(/Trident/gi),ie=e.getElementById("wp-content-editor-container"),oe="heshFullscreen",ae=a(L),se=a(I);"complete"!==e.readyState?t.addEventListener?t.addEventListener("load",q,!1):t.attachEvent&&t.attachEvent("onload",q):q()}(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";var e=navigator.userAgent,t=navigator.platform,m=/gecko\/\d/i.test(e),r=/MSIE \d/.test(e),n=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),i=/Edge\/(\d+)/.exec(e),w=r||n||i,k=w&&(r?document.documentMode||6:+(i||n)[1]),b=!i&&/WebKit\//.test(e),o=b&&/Qt\/\d+\.\d+/.test(e),a=!i&&/Chrome\//.test(e),g=/Opera\//.test(e),l=/Apple Computer/.test(navigator.vendor),s=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),c=/PhantomJS/.test(e),u=!i&&/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),f=/Android/.test(e),d=u||f||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),x=u||/Mac/.test(t),h=/\bCrOS\b/.test(e),p=/win/i.test(t),v=g&&e.match(/Version\/(\d*\.\d*)/);v&&(v=Number(v[1])),v&&15<=v&&(b=!(g=!1));var y=x&&(o||g&&(null==v||v<12.11)),C=m||w&&9<=k;function S(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var _,L=function(e,t){var r=e.className,n=S(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}};function M(e){for(var t=e.childNodes.length;0<t;--t)e.removeChild(e.firstChild);return e}function T(e,t){return M(e).appendChild(t)}function O(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 A(e,t,r,n){var i=O(e,t,r,n);return i.setAttribute("role","presentation"),i}function E(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 N(){var t;try{t=document.activeElement}catch(e){t=document.body||null}for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}function I(e,t){var r=e.className;S(t).test(r)||(e.className+=(r?" ":"")+t)}function P(e,t){for(var r=e.split(" "),n=0;n<r.length;n++)r[n]&&!S(r[n]).test(t)&&(t+=" "+r[n]);return t}_=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 B=function(e){e.select()};function R(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function D(e,t,r){for(var n in t||(t={}),e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function F(e,t,r,n,i){null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.length);for(var o=n||0,a=i||0;;){var s=e.indexOf("\t",o);if(s<0||t<=s)return a+(t-o);a+=s-o,a+=r-a%r,o=s+1}}u?B=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:w&&(B=function(e){try{e.select()}catch(e){}});var z=function(){this.id=null};function W(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}z.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var q=30,H={toString:function(){return"CodeMirror.Pass"}},j={scroll:!1},K={origin:"*mouse"},U={origin:"+move"};function V(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);-1==o&&(o=e.length);var a=o-n;if(o==e.length||t<=i+a)return n+Math.min(a,t-i);if(i+=o-n,n=o+1,t<=(i+=r-i%r))return n}}var $=[""];function G(e){for(;$.length<=e;)$.push(X($)+" ");return $[e]}function X(e){return e[e.length-1]}function Y(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function Q(){}function J(e,t){var r;return r=Object.create?Object.create(e):(Q.prototype=e,new Q),t&&D(t,r),r}var Z=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;function ee(e){return/\w/.test(e)||""<e&&(e.toUpperCase()!=e.toLowerCase()||Z.test(e))}function te(e,t){return t?!!(-1<t.source.indexOf("\\w")&&ee(e))||t.test(e):ee(e)}function re(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\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]/;function ie(e){return 768<=e.charCodeAt(0)&&ne.test(e)}function oe(e,t,r){for(;(r<0?0<t:t<e.length)&&ie(e.charAt(t));)t+=r;return t}function ae(e,t,r){for(var n=r<t?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}function se(e,t,r){var n=this;this.input=r,n.scrollbarFiller=O("div",null,"CodeMirror-scrollbar-filler"),n.scrollbarFiller.setAttribute("cm-not-content","true"),n.gutterFiller=O("div",null,"CodeMirror-gutter-filler"),n.gutterFiller.setAttribute("cm-not-content","true"),n.lineDiv=A("div",null,"CodeMirror-code"),n.selectionDiv=O("div",null,null,"position: relative; z-index: 1"),n.cursorDiv=O("div",null,"CodeMirror-cursors"),n.measure=O("div",null,"CodeMirror-measure"),n.lineMeasure=O("div",null,"CodeMirror-measure"),n.lineSpace=A("div",[n.measure,n.lineMeasure,n.selectionDiv,n.cursorDiv,n.lineDiv],null,"position: relative; outline: none");var i=A("div",[n.lineSpace],"CodeMirror-lines");n.mover=O("div",[i],null,"position: relative"),n.sizer=O("div",[n.mover],"CodeMirror-sizer"),n.sizerWidth=null,n.heightForcer=O("div",null,null,"position: absolute; height: "+q+"px; width: 1px;"),n.gutters=O("div",null,"CodeMirror-gutters"),n.lineGutter=null,n.scroller=O("div",[n.sizer,n.heightForcer,n.gutters],"CodeMirror-scroll"),n.scroller.setAttribute("tabIndex","-1"),n.wrapper=O("div",[n.scrollbarFiller,n.gutterFiller,n.scroller],"CodeMirror"),w&&k<8&&(n.gutters.style.zIndex=-1,n.scroller.style.paddingRight=0),b||m&&d||(n.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(n.wrapper):e(n.wrapper)),n.viewFrom=n.viewTo=t.first,n.reportedViewFrom=n.reportedViewTo=t.first,n.view=[],n.renderedView=null,n.externalMeasured=null,n.viewOffset=0,n.lastWrapHeight=n.lastWrapWidth=0,n.updateLineNumbers=null,n.nativeBarWidth=n.barHeight=n.barWidth=0,n.scrollbarsClipped=!1,n.lineNumWidth=n.lineNumInnerWidth=n.lineNumChars=null,n.alignWidgets=!1,n.cachedCharWidth=n.cachedTextHeight=n.cachedPaddingH=null,n.maxLine=null,n.maxLineLength=0,n.maxLineChanged=!1,n.wheelDX=n.wheelDY=n.wheelStartX=n.wheelStartY=null,n.shift=!1,n.selForContextMenu=null,n.activeTouch=null,r.init(n)}function le(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 ce(e,r,n){var i=[],o=r.line;return e.iter(r.line,n.line+1,function(e){var t=e.text;o==n.line&&(t=t.slice(0,n.ch)),o==r.line&&(t=t.slice(r.ch)),i.push(t),++o}),i}function ue(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function fe(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function de(e){if(null==e.parent)return null;for(var t=e.parent,r=W(t.lines,e),n=t.parent;n;n=(t=n).parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function he(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 s=e.lines[a].height;if(t<s)break;t-=s}return r+a}function pe(e,t){return t>=e.first&&t<e.first+e.size}function me(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function ge(e,t,r){if(void 0===r&&(r=null),!(this instanceof ge))return new ge(e,t,r);this.line=e,this.ch=t,this.sticky=r}function ve(e,t){return e.line-t.line||e.ch-t.ch}function ye(e,t){return e.sticky==t.sticky&&0==ve(e,t)}function be(e){return ge(e.line,e.ch)}function xe(e,t){return ve(e,t)<0?t:e}function we(e,t){return ve(e,t)<0?e:t}function ke(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function Ce(e,t){if(t.line<e.first)return ge(e.first,0);var r,n,i,o=e.first+e.size-1;return t.line>o?ge(o,le(e,o).text.length):(n=le(e,(r=t).line).text.length,null==(i=r.ch)||n<i?ge(r.line,n):i<0?ge(r.line,0):r)}function Se(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=Ce(e,t[n]);return r}var _e=!1,Le=!1;function Me(e,t,r){this.marker=e,this.from=t,this.to=r}function Te(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function Ae(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function Oe(e,t){if(t.full)return null;var r=pe(e,t.from.line)&&le(e,t.from.line).markedSpans,n=pe(e,t.to.line)&&le(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,a=0==ve(t.from,t.to),s=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker;if(null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t)||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 Me(a,o.from,s?null:o.to))}}return n}(r,i,a),l=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker;if(null==o.to||(a.inclusiveRight?o.to>=t:o.to>t)||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 Me(a,s?null:o.from-t,null==o.to?null:o.to-t))}}return n}(n,o,a),c=1==t.text.length,u=X(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=Te(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 m=l[p];if(null!=m.to&&(m.to+=u),null==m.from)Te(s,m.marker)||(m.from=u,c&&(s||(s=[])).push(m));else m.from+=u,c&&(s||(s=[])).push(m)}s&&(s=Ee(s)),l&&l!=s&&(l=Ee(l));var g=[s];if(!c){var v,y=t.text.length-2;if(0<y&&s)for(var b=0;b<s.length;++b)null==s[b].to&&(v||(v=[])).push(new Me(s[b].marker,null,null));for(var x=0;x<y;++x)g.push(v);g.push(l)}return g}function Ee(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&!1!==r.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function Ne(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function Ie(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function Pe(e){return e.inclusiveLeft?-1:0}function Be(e){return e.inclusiveRight?1:0}function Re(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=ve(n.from,i.from)||Pe(e)-Pe(t);if(o)return-o;var a=ve(n.to,i.to)||Be(e)-Be(t);return a||t.id-e.id}function De(e,t){var r,n=Le&&e.markedSpans;if(n)for(var i=void 0,o=0;o<n.length;++o)(i=n[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!r||Re(r,i.marker)<0)&&(r=i.marker);return r}function Fe(e){return De(e,!0)}function ze(e){return De(e,!1)}function We(e,t){var r,n=Le&&e.markedSpans;if(n)for(var i=0;i<n.length;++i){var o=n[i];o.marker.collapsed&&(null==o.from||o.from<t)&&(null==o.to||o.to>t)&&(!r||Re(r,o.marker)<0)&&(r=o.marker)}return r}function qe(e,t,r,n,i){var o=le(e,t),a=Le&&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=ve(c.from,r)||Pe(l.marker)-Pe(i),f=ve(c.to,n)||Be(l.marker)-Be(i);if(!(0<=u&&f<=0||u<=0&&0<=f)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?0<=ve(c.to,r):0<ve(c.to,r))||0<=u&&(l.marker.inclusiveRight&&i.inclusiveLeft?ve(c.from,n)<=0:ve(c.from,n)<0)))return!0}}}function He(e){for(var t;t=Fe(e);)e=t.find(-1,!0).line;return e}function je(e,t){var r=le(e,t),n=He(r);return r==n?t:de(n)}function Ke(e,t){if(t>e.lastLine())return t;var r,n=le(e,t);if(!Ue(e,n))return t;for(;r=ze(n);)n=r.find(1,!0).line;return de(n)+1}function Ue(e,t){var r=Le&&t.markedSpans;if(r)for(var n=void 0,i=0;i<r.length;++i)if((n=r[i]).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,Te(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]).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 $e(e){for(var t=0,r=(e=He(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;o=(r=o).parent)for(var a=0;a<o.children.length;++a){var s=o.children[a];if(s==r)break;t+=s.height}return t}function Ge(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=Fe(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=ze(n);){var o=t.find(0,!0);r-=n.text.length-o.from.ch,r+=(n=o.to.line).text.length-o.to.ch}return r}function Xe(e){var r=e.display,t=e.doc;r.maxLine=le(t,t.first),r.maxLineLength=Ge(r.maxLine),r.maxLineChanged=!0,t.iter(function(e){var t=Ge(e);t>r.maxLineLength&&(r.maxLineLength=t,r.maxLine=e)})}var Ye=null;function Qe(e,t,r){var n;Ye=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:Ye=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:Ye=i)}return null!=n?n:Ye}var Je=function(){var D="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",F="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";var z=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,W=/[stwN]/,q=/[LRr]/,H=/[Lb1n]/,j=/[1n]/;function K(e,t,r){this.level=e,this.from=t,this.to=r}return function(e,t){var r="ltr"==t?"L":"R";if(0==e.length||"ltr"==t&&!z.test(e))return!1;for(var n,i=e.length,o=[],a=0;a<i;++a)o.push((n=e.charCodeAt(a))<=247?D.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1785?F.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":8204==n?"b":"L");for(var s=0,l=r;s<i;++s){var c=o[s];"m"==c?o[s]=l:l=c}for(var u=0,f=r;u<i;++u){var d=o[u];"1"==d&&"r"==f?o[u]="n":q.test(d)&&"r"==(f=d)&&(o[u]="R")}for(var h=1,p=o[0];h<i-1;++h){var m=o[h];"+"==m&&"1"==p&&"1"==o[h+1]?o[h]="1":","!=m||p!=o[h+1]||"1"!=p&&"n"!=p||(o[h]=p),p=m}for(var g=0;g<i;++g){var v=o[g];if(","==v)o[g]="N";else if("%"==v){var y=void 0;for(y=g+1;y<i&&"%"==o[y];++y);for(var b=g&&"!"==o[g-1]||y<i&&"1"==o[y]?"1":"N",x=g;x<y;++x)o[x]=b;g=y-1}}for(var w=0,k=r;w<i;++w){var C=o[w];"L"==k&&"1"==C?o[w]="L":q.test(C)&&(k=C)}for(var S=0;S<i;++S)if(W.test(o[S])){var _=void 0;for(_=S+1;_<i&&W.test(o[_]);++_);for(var L="L"==(S?o[S-1]:r),M=L==("L"==(_<i?o[_]:r))?L?"L":"R":r,T=S;T<_;++T)o[T]=M;S=_-1}for(var A,O=[],E=0;E<i;)if(H.test(o[E])){var N=E;for(++E;E<i&&H.test(o[E]);++E);O.push(new K(0,N,E))}else{var I=E,P=O.length;for(++E;E<i&&"L"!=o[E];++E);for(var B=I;B<E;)if(j.test(o[B])){I<B&&O.splice(P,0,new K(1,I,B));var R=B;for(++B;B<E&&j.test(o[B]);++B);O.splice(P,0,new K(2,R,B)),I=B}else++B;I<E&&O.splice(P,0,new K(1,I,E))}return"ltr"==t&&(1==O[0].level&&(A=e.match(/^\s+/))&&(O[0].from=A[0].length,O.unshift(new K(0,0,A[0].length))),1==X(O).level&&(A=e.match(/\s+$/))&&(X(O).to-=A[0].length,O.push(new K(0,i-A[0].length,i)))),"rtl"==t?O.reverse():O}}();function Ze(e,t){var r=e.order;return null==r&&(r=e.order=Je(e.text,t)),r}var et=[],tt=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]||et).concat(r)}};function rt(e,t){return e._handlers&&e._handlers[t]||et}function nt(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=W(i,r);-1<o&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function it(e,t){var r=rt(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 ot(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),it(e,r||t.type,e,t),ft(t)||t.codemirrorIgnore}function at(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)-1==W(r,t[n])&&r.push(t[n])}function st(e,t){return 0<rt(e,t).length}function lt(e){e.prototype.on=function(e,t){tt(this,e,t)},e.prototype.off=function(e,t){nt(this,e,t)}}function ct(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function ut(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ft(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function dt(e){ct(e),ut(e)}function ht(e){return e.target||e.srcElement}function pt(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),x&&e.ctrlKey&&1==t&&(t=3),t}var mt,gt,vt=function(){if(w&&k<9)return!1;var e=O("div");return"draggable"in e||"dragDrop"in e}();function yt(e){if(null==mt){var t=O("span","");T(e,O("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(mt=t.offsetWidth<=1&&2<t.offsetHeight&&!(w&&k<8))}var r=mt?O("span",""):O("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function bt(e){if(null!=gt)return gt;var t=T(e,document.createTextNode("AخA")),r=_(t,0,1).getBoundingClientRect(),n=_(t,1,2).getBoundingClientRect();return M(e),!(!r||r.left==r.right)&&(gt=n.right-r.right<3)}var xt,wt=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(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/)},kt=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)},Ct="oncopy"in(xt=O("div"))||(xt.setAttribute("oncopy","return;"),"function"==typeof xt.oncopy),St=null;var _t={},Lt={};function Mt(e){if("string"==typeof e&&Lt.hasOwnProperty(e))e=Lt[e];else if(e&&"string"==typeof e.name&&Lt.hasOwnProperty(e.name)){var t=Lt[e.name];"string"==typeof t&&(t={name:t}),(e=J(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Mt("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Mt("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Tt(e,t){t=Mt(t);var r=_t[t.name];if(!r)return Tt(e,"text/plain");var n=r(e,t);if(At.hasOwnProperty(t.name)){var i=At[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}var At={};function Ot(e,t){D(t,At.hasOwnProperty(e)?At[e]:At[e]={})}function Et(e,t){if(!0===t)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 Nt(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 It(e,t,r){return!e.startState||e.startState(t,r)}var Pt=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};Pt.prototype.eol=function(){return this.pos>=this.string.length},Pt.prototype.sol=function(){return this.pos==this.lineStart},Pt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Pt.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Pt.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},Pt.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Pt.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Pt.prototype.skipToEnd=function(){this.pos=this.string.length},Pt.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(-1<t)return this.pos=t,!0},Pt.prototype.backUp=function(e){this.pos-=e},Pt.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)},Pt.prototype.indentation=function(){return F(this.string,null,this.tabSize)-(this.lineStart?F(this.string,this.lineStart,this.tabSize):0)},Pt.prototype.match=function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&0<n.index?null:(n&&!1!==t&&(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!1!==t&&(this.pos+=e.length),!0},Pt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Pt.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Pt.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Pt.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var Bt=function(e,t){this.state=e,this.lookAhead=t},Rt=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};function Dt(t,r,n,e){var l=[t.state.modeGen],i={};Vt(t,r.text,t.doc.mode,n,function(e,t){return l.push(e,t)},i,e);for(var c=n.state,o=function(e){n.baseTokens=l;var o=t.state.overlays[e],a=1,s=0;n.state=!0,Vt(t,r.text,o.mode,n,function(e,t){for(var r=a;s<e;){var n=l[a];e<n&&l.splice(a,1,e,l[a+1],n),a+=2,s=Math.min(e,n)}if(t)if(o.opaque)l.splice(r,a-r,e,"overlay "+t),a=r+2;else for(;r<a;r+=2){var i=l[r+1];l[r+1]=(i?i+" ":"")+"overlay "+t}},i),n.state=c,n.baseTokens=null,n.baseTokenPos=1},a=0;a<t.state.overlays.length;++a)o(a);return{styles:l,classes:i.bgClass||i.textClass?i:null}}function Ft(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=zt(e,de(t)),i=t.text.length>e.options.maxHighlightLength&&Et(e.doc.mode,n.state),o=Dt(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function zt(r,n,e){var t=r.doc,i=r.display;if(!t.mode.startState)return new Rt(t,!0,n);var o=function(e,t,r){for(var n,i,o=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;a<s;--s){if(s<=o.first)return o.first;var l=le(o,s-1),c=l.stateAfter;if(c&&(!r||s+(c instanceof Bt?c.lookAhead:0)<=o.modeFrontier))return s;var u=F(l.text,null,e.options.tabSize);(null==i||u<n)&&(i=s-1,n=u)}return i}(r,n,e),a=o>t.first&&le(t,o-1).stateAfter,s=a?Rt.fromSaved(t,a,o):new Rt(t,It(t.mode),o);return t.iter(o,n,function(e){Wt(r,e.text,s);var t=s.line;e.stateAfter=t==n-1||t%5==0||t>=i.viewFrom&&t<i.viewTo?s.save():null,s.nextLine()}),e&&(t.modeFrontier=s.line),s}function Wt(e,t,r,n){var i=e.doc.mode,o=new Pt(t,e.options.tabSize,r);for(o.start=o.pos=n||0,""==t&&qt(i,r.state);!o.eol();)Ht(i,o,r.state),o.start=o.pos}function qt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=Nt(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function Ht(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=Nt(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.")}Rt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Rt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},Rt.prototype.nextLine=function(){this.line++,0<this.maxLookAhead&&this.maxLookAhead--},Rt.fromSaved=function(e,t,r){return t instanceof Bt?new Rt(e,Et(e.mode,t.state),r,t.lookAhead):new Rt(e,Et(e.mode,t),r)},Rt.prototype.save=function(e){var t=!1!==e?Et(this.doc.mode,this.state):this.state;return 0<this.maxLookAhead?new Bt(t,this.maxLookAhead):t};var jt=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r};function Kt(e,t,r,n){var i,o,a=e.doc,s=a.mode,l=le(a,(t=Ce(a,t)).line),c=zt(e,t.line,r),u=new Pt(l.text,e.options.tabSize,c);for(n&&(o=[]);(n||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=Ht(s,u,c.state),n&&o.push(new jt(u,i,Et(a.mode,c.state)));return n?o:new jt(u,i,c.state)}function Ut(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 Vt(e,t,r,n,i,o,a){var s=r.flattenSpans;null==s&&(s=e.options.flattenSpans);var l,c=0,u=null,f=new Pt(t,e.options.tabSize,n),d=e.options.addModeClass&&[null];for(""==t&&Ut(qt(r,n.state),o);!f.eol();){if(l=f.pos>e.options.maxHighlightLength?(s=!1,a&&Wt(e,t,n,f.pos),f.pos=t.length,null):Ut(Ht(r,f,n.state,d),o),d){var h=d[0].name;h&&(l="m-"+(l?h+" "+l:h))}if(!s||u!=l){for(;c<f.start;)i(c=Math.min(f.start,c+5e3),u);u=l}f.start=f.pos}for(;c<f.pos;){var p=Math.min(f.pos,c+5e3);i(p,u),c=p}}var $t=function(e,t,r){this.text=e,Ie(this,t),this.height=r?r(this):1};$t.prototype.lineNo=function(){return de(this)},lt($t);var Gt={},Xt={};function Yt(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?Xt:Gt;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function Qt(e,t){var r=A("span",null,null,b?"padding-right: .1px":null),n={pre:A("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(w||b)&&e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;n.pos=0,n.addToken=Zt,bt(e.display.measure)&&(a=Ze(o,e.doc.direction))&&(n.addToken=er(n.addToken,a)),n.map=[],rr(o,n,Ft(e,o,t!=e.display.externalMeasured&&de(o))),o.styleClasses&&(o.styleClasses.bgClass&&(n.bgClass=P(o.styleClasses.bgClass,n.bgClass||"")),o.styleClasses.textClass&&(n.textClass=P(o.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(yt(e.display.measure))),0==i?(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(b){var s=n.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return it(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=P(n.pre.className,n.textClass||"")),n}function Jt(e){var t=O("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Zt(e,t,r,n,i,o,a){if(t){var s,l=e.splitSpaces?function(e,t){if(1<e.length&&!/ /.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}(t,e.trailingSpace):t,c=e.cm.state.specialChars,u=!1;if(c.test(t)){s=document.createDocumentFragment();for(var f=0;;){c.lastIndex=f;var d=c.exec(t),h=d?d.index-f:t.length-f;if(h){var p=document.createTextNode(l.slice(f,f+h));w&&k<9?s.appendChild(O("span",[p])):s.appendChild(p),e.map.push(e.pos,e.pos+h,p),e.col+=h,e.pos+=h}if(!d)break;f+=h+1;var m=void 0;if("\t"==d[0]){var g=e.cm.options.tabSize,v=g-e.col%g;(m=s.appendChild(O("span",G(v),"cm-tab"))).setAttribute("role","presentation"),m.setAttribute("cm-text","\t"),e.col+=v}else"\r"==d[0]||"\n"==d[0]?(m=s.appendChild(O("span","\r"==d[0]?"␍":"","cm-invalidchar"))).setAttribute("cm-text",d[0]):((m=e.cm.options.specialCharPlaceholder(d[0])).setAttribute("cm-text",d[0]),w&&k<9?s.appendChild(O("span",[m])):s.appendChild(m)),e.col+=1;e.map.push(e.pos,e.pos+1,m),e.pos++}}else e.col+=t.length,s=document.createTextNode(l),e.map.push(e.pos,e.pos+t.length,s),w&&k<9&&(u=!0),e.pos+=t.length;if(e.trailingSpace=32==l.charCodeAt(t.length-1),r||n||i||u||a){var y=r||"";n&&(y+=n),i&&(y+=i);var b=O("span",[s],y,a);return o&&(b.title=o),e.content.appendChild(b)}e.content.appendChild(s)}}function er(f,d){return function(e,t,r,n,i,o,a){r=r?r+" cm-force-border":"cm-force-border";for(var s=e.pos,l=s+t.length;;){for(var c=void 0,u=0;u<d.length&&!((c=d[u]).to>s&&c.from<=s);u++);if(c.to>=l)return f(e,t,r,n,i,o,a);f(e,t.slice(0,c.to-s),r,n,null,o,a),n=null,t=t.slice(c.to-s),s=c.to}}}function tr(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 rr(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)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<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&&(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||Re(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)tr(t,0,y[S]);if(d&&(d.from||0)==p){if(tr(t,(null==d.to?h+1:d.to)-p,d.marker,null==d.from),null==d.to)return;d.to==p&&(d=!1)}}if(h<=p)break;for(var _=Math.min(h,v);;){if(g){var L=p+g.length;if(!d){var M=_<L?g.slice(0,_-p):g;t.addToken(t,M,a?a+l:l,u,p+M.length==v?c:"",f,s)}if(_<=L){g=g.slice(_-p),p=_;break}p=L,u=""}g=i.slice(o,o=r[m++]),a=Yt(r[m++],t.cm.options)}}else for(var T=1;T<r.length;T+=2)t.addToken(t,i.slice(o,o=r[T]),Yt(r[T+1],t.cm.options))}function nr(e,t,r){this.line=t,this.rest=function(e){for(var t,r;t=ze(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}(t),this.size=this.rest?de(X(this.rest))-r+1:1,this.node=this.text=null,this.hidden=Ue(e,t)}function ir(e,t,r){for(var n,i=[],o=t;o<r;o=n){var a=new nr(e.doc,le(e.doc,o),o);n=o+a.size,i.push(a)}return i}var or=null;var ar=null;function sr(e,t){var r=rt(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);or?n=or.delayedCallbacks:ar?n=ar:(n=ar=[],setTimeout(lr,0));for(var o=function(e){n.push(function(){return r[e].apply(null,i)})},a=0;a<r.length;++a)o(a)}}function lr(){var e=ar;ar=null;for(var t=0;t<e.length;++t)e[t]()}function cr(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?dr(e,t):"gutter"==o?pr(e,t,r,n):"class"==o?hr(e,t):"widget"==o&&mr(e,t,n)}t.changes=null}function ur(e){return e.node==e.text&&(e.node=O("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),w&&k<8&&(e.node.style.zIndex=2)),e.node}function fr(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):Qt(e,t)}function dr(e,t){var r=t.text.className,n=fr(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,hr(e,t)):r&&(t.text.className=r)}function hr(e,t){!function(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 n=ur(t);t.background=n.insertBefore(O("div",null,r),n.firstChild),e.display.input.setUneditable(t.background)}}(e,t),t.line.wrapClass?ur(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 pr(e,t,r,n){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 i=ur(t);t.gutterBackground=O("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+"px; width: "+n.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),i.insertBefore(t.gutterBackground,t.text)}var o=t.line.gutterMarkers;if(e.options.lineNumbers||o){var a=ur(t),s=t.gutter=O("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+"px");if(e.display.input.setUneditable(s),a.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=" "+t.line.gutterClass),!e.options.lineNumbers||o&&o["CodeMirror-linenumbers"]||(t.lineNumber=s.appendChild(O("div",me(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+n.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),o)for(var l=0;l<e.options.gutters.length;++l){var c=e.options.gutters[l],u=o.hasOwnProperty(c)&&o[c];u&&s.appendChild(O("div",[u],"CodeMirror-gutter-elt","left: "+n.gutterLeft[c]+"px; width: "+n.gutterWidth[c]+"px"))}}}function mr(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);gr(e,t,r)}function gr(e,t,r){if(vr(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)vr(e,t.rest[n],t,r,!1)}function vr(e,t,r,n,i){if(t.widgets)for(var o=ur(r),a=0,s=t.widgets;a<s.length;++a){var l=s[a],c=O("div",[l.node],"CodeMirror-linewidget");l.handleMouseEvents||c.setAttribute("cm-ignore-events","true"),yr(l,c,r,n),e.display.input.setUneditable(c),i&&l.above?o.insertBefore(c,r.gutter||r.text):o.appendChild(c),sr(l,"redraw")}}function yr(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 br(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!E(document.body,e.node)){var r="position: relative;";e.coverGutter&&(r+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(r+="width: "+t.display.wrapper.clientWidth+"px;"),T(t.display.measure,O("div",[e.node],null,r))}return e.height=e.node.parentNode.offsetHeight}function xr(e,t){for(var r=ht(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 wr(e){return e.lineSpace.offsetTop}function kr(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Cr(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=T(e.measure,O("pre","x")),r=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,n={left:parseInt(r.paddingLeft),right:parseInt(r.paddingRight)};return isNaN(n.left)||isNaN(n.right)||(e.cachedPaddingH=n),n}function Sr(e){return q-e.display.nativeBarWidth}function _r(e){return e.display.scroller.clientWidth-Sr(e)-e.display.barWidth}function Lr(e){return e.display.scroller.clientHeight-Sr(e)-e.display.barHeight}function Mr(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(de(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Tr(e,t,r,n){return Er(e,Or(e,t),r,n)}function Ar(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[sn(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function Or(e,t){var r=de(t),n=Ar(e,r);n&&!n.text?n=null:n&&n.changes&&(cr(e,n,r,tn(e)),e.curOp.forceUpdate=!0),n||(n=function(e,t){var r=de(t=He(t)),n=e.display.externalMeasured=new nr(e.doc,t,r);n.lineN=r;var i=n.built=Qt(e,n);return n.text=i.pre,T(e.display.lineMeasure,i.pre),n}(e,t));var i=Mr(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Er(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||(!function(e,t,r){var n=e.options.lineWrapping,i=n&&_r(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(),s=0;s<a.length-1;s++){var l=a[s],c=a[s+1];2<Math.abs(l.bottom-c.bottom)&&o.push((l.bottom+c.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,r,n){var i,o=Pr(t.map,r,n),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&&ie(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+l<o.coverEnd&&ie(t.line.text.charAt(o.coverStart+l));)++l;if((i=w&&k<9&&0==s&&l==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():Br(_(a,s,l).getClientRects(),n)).left||i.right||0==s)break;l=s,s-=1,c="right"}w&&k<11&&(i=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=St)return St;var t=T(e,O("span","x")),r=t.getBoundingClientRect(),n=_(t,0,1).getBoundingClientRect();return St=1<Math.abs(r.left-n.left)}(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}}(e.display.measure,i))}else{var f;0<s&&(c=n="right"),i=e.options.lineWrapping&&1<(f=a.getClientRects()).length?f["right"==n?f.length-1:0]:a.getBoundingClientRect()}if(w&&k<9&&!s&&(!i||!i.left&&!i.right)){var d=a.parentNode.getClientRects()[0];i=d?{left:d.left,right:d.left+en(e.display),top:d.top,bottom:d.bottom}:Ir}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};i.left||i.right||(x.bogus=!0);e.options.singleCursorHeightPerLine||(x.rtop=h,x.rbottom=p);return x}(e,t,r,n)).bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}var Nr,Ir={left:0,right:0,top:0,bottom:0};function Pr(e,t,r){for(var n,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?o=(i=t-s)+1:(c==e.length-3||t==l&&e[c+3]>t)&&(i=(o=l-s)-1,l<=t&&(a="right")),null!=i){if(n=e[c+2],s==l&&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==l-s)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)n=e[(c+=3)+2],a="right";break}return{node:n,start:i,end:o,collapse:a,coverStart:s,coverEnd:l}}function Br(e,t){var r=Ir;if("left"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;0<=i&&(r=e[i]).left==r.right;i--);return r}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 Dr(e){e.display.externalMeasure=null,M(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)Rr(e.display.view[t])}function Fr(e){Dr(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function zr(){return a&&f?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function Wr(){return a&&f?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function qr(e){var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;++r)e.widgets[r].above&&(t+=br(e.widgets[r]));return t}function Hr(e,t,r,n,i){if(!i){var o=qr(t);r.top+=o,r.bottom+=o}if("line"==n)return r;n||(n="local");var a=$e(t);if("local"==n?a+=wr(e.display):a-=e.display.viewOffset,"page"==n||"window"==n){var s=e.display.lineSpace.getBoundingClientRect();a+=s.top+("window"==n?0:Wr());var l=s.left+("window"==n?0:zr());r.left+=l,r.right+=l}return r.top+=a,r.bottom+=a,r}function jr(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=zr(),i-=Wr();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 Kr(e,t,r,n,i){return n||(n=le(e.doc,t.line)),Hr(e,n,Tr(e,n,t.ch,i),r)}function Ur(n,e,i,o,a,s){function l(e,t){var r=Er(n,a,e,t?"right":"left",s);return t?r.left=r.right:r.right=r.left,Hr(n,o,r,i)}o=o||le(n.doc,e.line),a||(a=Or(n,o));var c=Ze(o,n.doc.direction),t=e.ch,r=e.sticky;if(t>=o.text.length?(t=o.text.length,r="before"):t<=0&&(t=0,r="after"),!c)return l("before"==r?t-1:t,"before"==r);function u(e,t,r){return l(r?e-1:e,1==c[t].level!=r)}var f=Qe(c,t,r),d=Ye,h=u(t,f,"before"==r);return null!=d&&(h.other=u(t,d,"before"!=r)),h}function Vr(e,t){var r=0;t=Ce(e.doc,t),e.options.lineWrapping||(r=en(e.display)*t.ch);var n=le(e.doc,t.line),i=$e(n)+wr(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function $r(e,t,r,n,i){var o=ge(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function Gr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return $r(n.first,0,null,!0,-1);var i=he(n,r),o=n.first+n.size-1;if(o<i)return $r(n.first+n.size-1,le(n,o).text.length,null,!0,1);t<0&&(t=0);for(var a=le(n,i);;){var s=Jr(e,a,i,t,r),l=We(a,s.ch+(0<s.xRel?1:0));if(!l)return s;var c=l.find(1);if(c.line==i)return c;a=le(n,i=c.line)}}function Xr(t,e,r,n){n-=qr(e);var i=e.text.length,o=ae(function(e){return Er(t,r,e-1).bottom<=n},i,0);return{begin:o,end:i=ae(function(e){return Er(t,r,e).top>n},o,i)}}function Yr(e,t,r,n){return r||(r=Or(e,t)),Xr(e,t,r,Hr(e,t,Er(e,r,n),"line").top)}function Qr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Jr(r,e,t,n,i){i-=$e(e);var o=Or(r,e),a=qr(e),s=0,l=e.text.length,c=!0,u=Ze(e,r.doc.direction);if(u){var f=(r.options.lineWrapping?function(e,t,r,n,i,o,a){var s=Xr(e,t,n,a),l=s.begin,c=s.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,f=null,d=0;d<i.length;d++){var h=i[d];if(!(h.from>=c||h.to<=l)){var p=1!=h.level,m=Er(e,n,p?Math.min(c,h.to)-1:Math.max(l,h.from)).right,g=m<o?o-m+1e9:m-o;(!u||g<f)&&(u=h,f=g)}}u||(u=i[i.length-1]);u.from<l&&(u={from:l,to:u.to,level:u.level});u.to>c&&(u={from:u.from,to:c,level:u.level});return u}:function(n,i,o,a,s,l,c){var e=ae(function(e){var t=s[e],r=1!=t.level;return Qr(Ur(n,ge(o,r?t.to:t.from,r?"before":"after"),"line",i,a),l,c,!0)},0,s.length-1),t=s[e];if(0<e){var r=1!=t.level,u=Ur(n,ge(o,r?t.from:t.to,r?"after":"before"),"line",i,a);Qr(u,l,c,!0)&&u.top>c&&(t=s[e-1])}return t})(r,e,t,o,u,n,i);s=(c=1!=f.level)?f.from:f.to-1,l=c?f.to:f.from-1}var d,h,p=null,m=null,g=ae(function(e){var t=Er(r,o,e);return t.top+=a,t.bottom+=a,!!Qr(t,n,i,!1)&&(t.top<=i&&t.left<=n&&(p=e,m=t),!0)},s,l),v=!1;if(m){var y=n-m.left<m.right-n,b=y==c;g=p+(b?0:1),h=b?"after":"before",d=y?m.left:m.right}else{c||g!=l&&g!=s||g++,h=0==g?"after":g==e.text.length?"before":Er(r,o,g-(c?1:0)).bottom+a<=i==c?"after":"before";var x=Ur(r,ge(t,g,h),"line",e,o);d=x.left,v=i<x.top||i>=x.bottom}return $r(t,g=oe(e.text,g,1),h,v,n-d)}function Zr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Nr){Nr=O("pre");for(var t=0;t<49;++t)Nr.appendChild(document.createTextNode("x")),Nr.appendChild(O("br"));Nr.appendChild(document.createTextNode("x"))}T(e.measure,Nr);var r=Nr.offsetHeight/50;return 3<r&&(e.cachedTextHeight=r),M(e.measure),r||1}function en(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=O("span","xxxxxxxxxx"),r=O("pre",[t]);T(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return 2<i&&(e.cachedCharWidth=i),i||10}function tn(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:rn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function rn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function nn(n){var i=Zr(n.display),o=n.options.lineWrapping,a=o&&Math.max(5,n.display.scroller.clientWidth/en(n.display)-3);return function(e){if(Ue(n.doc,e))return 0;var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;r++)e.widgets[r].height&&(t+=e.widgets[r].height);return o?t+(Math.ceil(e.text.length/a)||1)*i:t+i}}function on(e){var t=e.doc,r=nn(e);t.iter(function(e){var t=r(e);t!=e.height&&fe(e,t)})}function an(e,t,r,n){var i=e.display;if(!r&&"true"==ht(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(t){return null}var l,c=Gr(e,o,a);if(n&&1==c.xRel&&(l=le(e.doc,c.line).text).length==c.ch){var u=F(l,l.length,e.options.tabSize)-l.length;c=ge(c.line,Math.max(0,Math.round((o-Cr(e.display).left)/en(e.display))-u))}return c}function sn(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 ln(e){e.display.input.showSelection(e.display.input.prepareSelection())}function cn(e,t){void 0===t&&(t=!0);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||a!=r.sel.primIndex){var s=r.sel.ranges[a];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var l=s.empty();(l||e.options.showCursorWhenSelecting)&&un(e,s.head,i),l||dn(e,s,o)}}return n}function un(e,t,r){var n=Ur(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),i=r.appendChild(O("div"," ","CodeMirror-cursor"));if(i.style.left=n.left+"px",i.style.top=n.top+"px",i.style.height=Math.max(0,n.bottom-n.top)*e.options.cursorHeight+"px",n.other){var o=r.appendChild(O("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));o.style.display="",o.style.left=n.other.left+"px",o.style.top=n.other.top+"px",o.style.height=.85*(n.other.bottom-n.other.top)+"px"}}function fn(e,t){return e.top-t.top||e.left-t.left}function dn(a,e,t){var r=a.display,n=a.doc,i=document.createDocumentFragment(),o=Cr(a.display),L=o.left,M=Math.max(r.sizerWidth,_r(a)-r.sizer.offsetLeft)-o.right,T="ltr"==n.direction;function A(e,t,r,n){t<0&&(t=0),t=Math.round(t),n=Math.round(n),i.appendChild(O("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==r?M-e:r)+"px;\n height: "+(n-t)+"px"))}function s(r,y,b){var x,w,o=le(n,r),k=o.text.length;function C(e,t){return Kr(a,ge(r,e),"div",o,t)}function S(e,t,r){var n=Yr(a,o,null,e),i="ltr"==t==("after"==r)?"left":"right";return C("after"==r?n.begin:n.end-(/\s/.test(o.text.charAt(n.end-1))?2:1),i)[i]}var _=Ze(o,n.direction);return function(e,t,r,n){if(!e)return n(t,r,"ltr",0);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",o),i=!0)}i||n(t,r,"ltr")}(_,y||0,null==b?k:b,function(e,t,r,n){var i="ltr"==r,o=C(e,i?"left":"right"),a=C(t-1,i?"right":"left"),s=null==y&&0==e,l=null==b&&t==k,c=0==n,u=!_||n==_.length-1;if(a.top-o.top<=3){var f=(T?l:s)&&u,d=(T?s:l)&&c?L:(i?o:a).left,h=f?M:(i?a:o).right;A(d,o.top,h-d,o.bottom)}else{var p,m,g,v;v=i?(p=T&&s&&c?L:o.left,m=T?M:S(e,r,"before"),g=T?L:S(t,r,"after"),T&&l&&u?M:a.right):(p=T?S(e,r,"before"):L,m=!T&&s&&c?M:o.right,g=!T&&l&&u?L:a.left,T?S(t,r,"after"):M),A(p,o.top,m-p,o.bottom),o.bottom<a.top&&A(L,o.bottom,null,a.top),A(g,a.top,v-g,a.bottom)}(!x||fn(o,x)<0)&&(x=o),fn(a,x)<0&&(x=a),(!w||fn(o,w)<0)&&(w=o),fn(a,w)<0&&(w=a)}),{start:x,end:w}}var l=e.from(),c=e.to();if(l.line==c.line)s(l.line,l.ch,c.ch);else{var u=le(n,l.line),f=le(n,c.line),d=He(u)==He(f),h=s(l.line,l.ch,d?u.text.length+1:null).end,p=s(c.line,d?0:null,c.ch).start;d&&(h.top<p.top-2?(A(h.right,h.top,null,h.bottom),A(L,p.top,p.left,p.bottom)):A(h.right,h.top,p.left-h.right,h.bottom)),h.bottom<p.top&&A(L,h.bottom,null,p.top)}t.appendChild(i)}function hn(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",0<e.options.cursorBlinkRate?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 pn(e){e.state.focused||(e.display.input.focus(),gn(e))}function mn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,vn(e))},100)}function gn(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(it(e,"focus",e,t),e.state.focused=!0,I(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),b&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),hn(e))}function vn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(it(e,"blur",e,t),e.state.focused=!1,L(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function yn(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(w&&k<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var s=i.node.getBoundingClientRect();o=s.bottom-s.top}var l=i.line.height-o;if(o<2&&(o=Zr(t)),(.005<l||l<-.005)&&(fe(i.line,o),bn(i.line),i.rest))for(var c=0;c<i.rest.length;c++)bn(i.rest[c])}}}function bn(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var r=e.widgets[t],n=r.node.parentNode;n&&(r.height=n.offsetHeight)}}function xn(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-wr(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=he(t,n),a=he(t,i);if(r&&r.ensure){var s=r.ensure.from.line,l=r.ensure.to.line;s<o?a=he(t,$e(le(t,o=s))+e.wrapper.clientHeight):Math.min(l,t.lastLine())>=a&&(o=he(t,$e(le(t,l))-e.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function wn(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=rn(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 s=r[a].alignable;if(s)for(var l=0;l<s.length;l++)s[l].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function kn(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=me(e.options,t.first+t.size-1),n=e.display;if(r.length==n.lineNumChars)return!1;var i=n.measure.appendChild(O("div",[O("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),o=i.firstChild.offsetWidth,a=i.offsetWidth-o;return n.lineGutter.style.width="",n.lineNumInnerWidth=Math.max(o,n.lineGutter.offsetWidth-a)+1,n.lineNumWidth=n.lineNumInnerWidth+a,n.lineNumChars=n.lineNumInnerWidth?r.length:-1,n.lineGutter.style.width=n.lineNumWidth+"px",si(e),!0}function Cn(e,t){var r=e.display,n=Zr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Lr(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+kr(r),l=t.top<n,c=t.bottom>s-n;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:r.scroller.scrollLeft,d=_r(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 Sn(e,t){null!=t&&(Mn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function _n(e){Mn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Ln(e,t,r){null==t&&null==r||Mn(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function Mn(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Tn(e,Vr(e,t.from),Vr(e,t.to),t.margin))}function Tn(e,t,r,n){var i=Cn(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Ln(e,i.scrollLeft,i.scrollTop)}function An(e,t){Math.abs(e.doc.scrollTop-t)<2||(m||ai(e,{top:t}),On(e,t,!0),m&&ai(e),ti(e,100))}function On(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function En(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,wn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Nn(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+kr(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+Sr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var In=function(e,t,r){this.cm=r;var n=this.vert=O("div",[O("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=O("div",[O("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");n.tabIndex=i.tabIndex=-1,e(n),e(i),tt(n,"scroll",function(){n.clientHeight&&t(n.scrollTop,"vertical")}),tt(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,w&&k<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};In.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&&0<e.clientHeight&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},In.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},In.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},In.prototype.zeroWidthHack=function(){var e=x&&!s?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new z,this.disableVert=new z},In.prototype.enableZeroWidthBar=function(r,n,i){r.style.pointerEvents="auto",n.set(1e3,function e(){var t=r.getBoundingClientRect();("vert"==i?document.elementFromPoint(t.right-1,(t.top+t.bottom)/2):document.elementFromPoint((t.right+t.left)/2,t.bottom-1))!=r?r.style.pointerEvents="none":n.set(1e3,e)})},In.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Pn=function(){};function Bn(e,t){t||(t=Nn(e));var r=e.display.barWidth,n=e.display.barHeight;Rn(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&yn(e),Rn(e,Nn(e)),r=e.display.barWidth,n=e.display.barHeight}function Rn(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=""}Pn.prototype.update=function(){return{bottom:0,right:0}},Pn.prototype.setScrollLeft=function(){},Pn.prototype.setScrollTop=function(){},Pn.prototype.clear=function(){};var Dn={native:In,null:Pn};function Fn(r){r.display.scrollbars&&(r.display.scrollbars.clear(),r.display.scrollbars.addClass&&L(r.display.wrapper,r.display.scrollbars.addClass)),r.display.scrollbars=new Dn[r.options.scrollbarStyle](function(e){r.display.wrapper.insertBefore(e,r.display.scrollbarFiller),tt(e,"mousedown",function(){r.state.focused&&setTimeout(function(){return r.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,t){"horizontal"==t?En(r,e):An(r,e)},r),r.display.scrollbars.addClass&&I(r.display.wrapper,r.display.scrollbars.addClass)}var zn=0;function Wn(e){var t;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:++zn},t=e.curOp,or?or.ops.push(t):t.ownsGroup=or={ops:[t],delayedCallbacks:[]}}function qn(e){!function(e,t){var r=e.ownsGroup;if(r)try{!function(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)}(r)}finally{or=null,t(r)}}(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;!function(e){for(var t=e.ops,r=0;r<t.length;r++)Hn(t[r]);for(var n=0;n<t.length;n++)(i=t[n]).updatedDisplay=i.mustUpdate&&ii(i.cm,i.update);var i;for(var o=0;o<t.length;o++)jn(t[o]);for(var a=0;a<t.length;a++)Kn(t[a]);for(var s=0;s<t.length;s++)Un(t[s])}(e)})}function Hn(e){var t,r,n=e.cm,i=n.display;!(r=(t=n).display).scrollbarsClipped&&r.scroller.offsetWidth&&(r.nativeBarWidth=r.scroller.offsetWidth-r.scroller.clientWidth,r.heightForcer.style.height=Sr(t)+"px",r.sizer.style.marginBottom=-r.nativeBarWidth+"px",r.sizer.style.borderRightWidth=Sr(t)+"px",r.scrollbarsClipped=!0),e.updateMaxLine&&Xe(n),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<i.viewFrom||e.scrollToPos.to.line>=i.viewTo)||i.maxLineChanged&&n.options.lineWrapping,e.update=e.mustUpdate&&new ni(n,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function jn(e){var t=e.cm,r=t.display;e.updatedDisplay&&yn(t),e.barMeasure=Nn(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Tr(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+Sr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-_r(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Kn(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&En(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==N();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r),(e.updatedDisplay||e.startHeight!=t.doc.height)&&Bn(t,e.barMeasure),e.updatedDisplay&&li(t,e.barMeasure),e.selectionChanged&&hn(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),r&&pn(e.cm)}function Un(e){var t=e.cm,r=t.display,n=t.doc;(e.updatedDisplay&&oi(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null!=e.scrollTop&&On(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&En(t,e.scrollLeft,!0,!0),e.scrollToPos)&&function(e,t){if(!ot(e,"scrollCursorIntoView")){var r=e.display,n=r.sizer.getBoundingClientRect(),i=null;if(t.top+n.top<0?i=!0:t.bottom+n.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!c){var o=O("div","",null,"position: absolute;\n top: "+(t.top-r.viewOffset-wr(e.display))+"px;\n height: "+(t.bottom-t.top+Sr(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(r="before"==(t=t.ch?ge(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?ge(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,s=Ur(e,t),l=r&&r!=t?Ur(e,r):s,c=Cn(e,i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-n,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+n}),u=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=c.scrollTop&&(An(e,c.scrollTop),1<Math.abs(e.doc.scrollTop-u)&&(a=!0)),null!=c.scrollLeft&&(En(e,c.scrollLeft),1<Math.abs(e.doc.scrollLeft-f)&&(a=!0)),!a)break}return i}(t,Ce(n,e.scrollToPos.from),Ce(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||it(i[a],"hide");if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&it(o[s],"unhide");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&it(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function Vn(e,t){if(e.curOp)return t();Wn(e);try{return t()}finally{qn(e)}}function $n(e,t){return function(){if(e.curOp)return t.apply(e,arguments);Wn(e);try{return t.apply(e,arguments)}finally{qn(e)}}}function Gn(e){return function(){if(this.curOp)return e.apply(this,arguments);Wn(this);try{return e.apply(this,arguments)}finally{qn(this)}}}function Xn(t){return function(){var e=this.cm;if(!e||e.curOp)return t.apply(this,arguments);Wn(e);try{return t.apply(this,arguments)}finally{qn(e)}}}function Yn(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)Le&&je(e.doc,t)<i.viewTo&&Jn(e);else if(r<=i.viewFrom)Le&&Ke(e.doc,r+n)>i.viewFrom?Jn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)Jn(e);else if(t<=i.viewFrom){var o=Zn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):Jn(e)}else if(r>=i.viewTo){var a=Zn(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Jn(e)}else{var s=Zn(e,t,t,-1),l=Zn(e,r,r+n,1);s&&l?(i.view=i.view.slice(0,s.index).concat(ir(e,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=n):Jn(e)}var c=i.externalMeasured;c&&(r<c.lineN?c.lineN+=n:t<c.lineN+c.size&&(i.externalMeasured=null))}function Qn(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[sn(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==W(a,r)&&a.push(r)}}}function Jn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Zn(e,t,r,n){var i,o=sn(e,t),a=e.display.view;if(!Le||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,l=0;l<o;l++)s+=a[l].size;if(s!=t){if(0<n){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,r+=i}for(;je(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 ei(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 ti(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,R(ri,e))}function ri(l){var c=l.doc;if(!(c.highlightFrontier>=l.display.viewTo)){var u=+new Date+l.options.workTime,f=zt(l,c.highlightFrontier),d=[];c.iter(f.line,Math.min(c.first+c.size,l.display.viewTo+500),function(e){if(f.line>=l.display.viewFrom){var t=e.styles,r=e.text.length>l.options.maxHighlightLength?Et(c.mode,f.state):null,n=Dt(l,e,f,!0);r&&(f.state=r),e.styles=n.styles;var i=e.styleClasses,o=n.classes;o?e.styleClasses=o:i&&(e.styleClasses=null);for(var a=!t||t.length!=e.styles.length||i!=o&&(!i||!o||i.bgClass!=o.bgClass||i.textClass!=o.textClass),s=0;!a&&s<t.length;++s)a=t[s]!=e.styles[s];a&&d.push(f.line),e.stateAfter=f.save(),f.nextLine()}else e.text.length<=l.options.maxHighlightLength&&Wt(l,e.text,f),e.stateAfter=f.line%5==0?f.save():null,f.nextLine();if(+new Date>u)return ti(l,l.options.workDelay),!0}),c.highlightFrontier=f.line,c.modeFrontier=Math.max(c.modeFrontier,f.line),d.length&&Vn(l,function(){for(var e=0;e<d.length;e++)Qn(l,d[e],"text")})}}var ni=function(e,t,r){var n=e.display;this.viewport=t,this.visible=xn(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=_r(e),this.force=r,this.dims=tn(e),this.events=[]};function ii(e,t){var r=e.display,n=e.doc;if(t.editorIsHidden)return Jn(e),!1;if(!t.force&&t.visible.from>=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==ei(e))return!1;kn(e)&&(Jn(e),t.dims=tn(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFrom<o&&o-r.viewFrom<20&&(o=Math.max(n.first,r.viewFrom)),r.viewTo>a&&r.viewTo-a<20&&(a=Math.min(i,r.viewTo)),Le&&(o=je(e.doc,o),a=Ke(e.doc,a));var s,l,c,u,f=o!=r.viewFrom||a!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;l=o,c=a,0==(u=(s=e).display).view.length||l>=u.viewTo||c<=u.viewFrom?(u.view=ir(s,l,c),u.viewFrom=l):(u.viewFrom>l?u.view=ir(s,l,u.viewFrom).concat(u.view):u.viewFrom<l&&(u.view=u.view.slice(sn(s,l))),u.viewFrom=l,u.viewTo<c?u.view=u.view.concat(ir(s,u.viewTo,c)):u.viewTo>c&&(u.view=u.view.slice(0,sn(s,c)))),u.viewTo=c,r.viewOffset=$e(le(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var d=ei(e);if(!f&&0==d&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var h=function(e){if(e.hasFocus())return null;var t=N();if(!t||!E(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&E(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return 4<d&&(r.lineDiv.style.display="none"),function(r,e,t){var n=r.display,i=r.options.lineNumbers,o=n.lineDiv,a=o.firstChild;function s(e){var t=e.nextSibling;return b&&x&&r.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),t}for(var l=n.view,c=n.viewFrom,u=0;u<l.length;u++){var f=l[u];if(f.hidden);else if(f.node&&f.node.parentNode==o){for(;a!=f.node;)a=s(a);var d=i&&null!=e&&e<=c&&f.lineNumber;f.changes&&(-1<W(f.changes,"gutter")&&(d=!1),cr(r,f,c,t)),d&&(M(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(me(r.options,c)))),a=f.node.nextSibling}else{var h=(g=c,v=t,void 0,y=fr(p=r,m=f),m.text=m.node=y.pre,y.bgClass&&(m.bgClass=y.bgClass),y.textClass&&(m.textClass=y.textClass),hr(p,m),pr(p,m,g,v),gr(p,m,v),m.node);o.insertBefore(h,a)}c+=f.size}var p,m,g,v,y;for(;a;)a=s(a)}(e,r.updateLineNumbers,t.dims),4<d&&(r.lineDiv.style.display=""),r.renderedView=r.view,function(e){if(e&&e.activeElt&&e.activeElt!=N()&&(e.activeElt.focus(),e.anchorNode&&E(document.body,e.anchorNode)&&E(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(h),M(r.cursorDiv),M(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,f&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,ti(e,400)),!(r.updateLineNumbers=null)}function oi(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=_r(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+kr(e.display)-Lr(e),r.top)}),t.visible=xn(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&ii(e,t);n=!1){yn(e);var i=Nn(e);ln(e),Bn(e,i),li(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 ai(e,t){var r=new ni(e,t);if(ii(e,r)){yn(e),oi(e,r);var n=Nn(e);ln(e),Bn(e,n),li(e,n),r.finish()}}function si(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function li(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+Sr(e)+"px"}function ci(e){var t=e.display.gutters,r=e.options.gutters;M(t);for(var n=0;n<r.length;++n){var i=r[n],o=t.appendChild(O("div",null,"CodeMirror-gutter "+i));"CodeMirror-linenumbers"==i&&((e.display.lineGutter=o).style.width=(e.display.lineNumWidth||1)+"px")}t.style.display=n?"":"none",si(e)}function ui(e){var t=W(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):-1<t&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}ni.prototype.signal=function(e,t){st(e,t)&&this.events.push(arguments)},ni.prototype.finish=function(){for(var e=0;e<this.events.length;e++)it.apply(null,this.events[e])};var fi=0,di=null;function hi(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 pi(e){var t=hi(e);return t.x*=di,t.y*=di,t}function mi(e,t){var r=hi(t),n=r.x,i=r.y,o=e.display,a=o.scroller,s=a.scrollWidth>a.clientWidth,l=a.scrollHeight>a.clientHeight;if(n&&s||i&&l){if(i&&x&&b)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&&!m&&!g&&null!=di)return i&&l&&An(e,Math.max(0,a.scrollTop+i*di)),En(e,Math.max(0,a.scrollLeft+n*di)),(!i||i&&l)&&ct(t),void(o.wheelStartX=null);if(i&&null!=di){var d=i*di,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),ai(e,{top:h,bottom:p})}fi<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&&(di=(di*fi+r)/(fi+1),++fi)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}w?di=-.53:m?di=15:a?di=-.7:l&&(di=-1/3);var gi=function(e,t){this.ranges=e,this.primIndex=t};gi.prototype.primary=function(){return this.ranges[this.primIndex]},gi.prototype.equals=function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var r=this.ranges[t],n=e.ranges[t];if(!ye(r.anchor,n.anchor)||!ye(r.head,n.head))return!1}return!0},gi.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new vi(be(this.ranges[t].anchor),be(this.ranges[t].head));return new gi(e,this.primIndex)},gi.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},gi.prototype.contains=function(e,t){t||(t=e);for(var r=0;r<this.ranges.length;r++){var n=this.ranges[r];if(0<=ve(t,n.from())&&ve(e,n.to())<=0)return r}return-1};var vi=function(e,t){this.anchor=e,this.head=t};function yi(e,t){var r=e[t];e.sort(function(e,t){return ve(e.from(),t.from())}),t=W(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(0<=ve(o.to(),i.from())){var a=we(o.from(),i.from()),s=xe(o.to(),i.to()),l=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new vi(l?s:a,l?a:s))}}return new gi(e,t)}function bi(e,t){return new gi([new vi(e,t||e)],0)}function xi(e){return e.text?ge(e.from.line+e.text.length-1,X(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function wi(e,t){if(ve(e,t.from)<0)return e;if(ve(e,t.to)<=0)return xi(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+=xi(t).ch-t.to.ch),ge(r,n)}function ki(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new vi(wi(i.anchor,t),wi(i.head,t)))}return yi(r,e.sel.primIndex)}function Ci(e,t,r){return e.line==t.line?ge(r.line,e.ch-t.ch+r.ch):ge(r.line+(e.line-t.line),e.ch)}function Si(e){e.doc.mode=Tt(e.options,e.doc.modeOption),_i(e)}function _i(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,ti(e,100),e.state.modeGen++,e.curOp&&Yn(e)}function Li(e,t){return 0==t.from.ch&&0==t.to.ch&&""==X(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Mi(e,n,t,i){function o(e){return t?t[e]:null}function r(e,t,r){!function(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),Ne(e),Ie(e,r);var i=n?n(e):1;i!=e.height&&fe(e,i)}(e,t,r,i),sr(e,"change",e,n)}function a(e,t){for(var r=[],n=e;n<t;++n)r.push(new $t(c[n],o(n),i));return r}var s=n.from,l=n.to,c=n.text,u=le(e,s.line),f=le(e,l.line),d=X(c),h=o(c.length-1),p=l.line-s.line;if(n.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if(Li(e,n)){var m=a(0,c.length-1);r(f,f.text,h),p&&e.remove(s.line,p),m.length&&e.insert(s.line,m)}else if(u==f)if(1==c.length)r(u,u.text.slice(0,s.ch)+d+u.text.slice(l.ch),h);else{var g=a(1,c.length-1);g.push(new $t(d+u.text.slice(l.ch),h,i)),r(u,u.text.slice(0,s.ch)+c[0],o(0)),e.insert(s.line+1,g)}else if(1==c.length)r(u,u.text.slice(0,s.ch)+c[0]+f.text.slice(l.ch),o(0)),e.remove(s.line+1,p);else{r(u,u.text.slice(0,s.ch)+c[0],o(0)),r(f,d+f.text.slice(l.ch),h);var v=a(1,c.length-1);1<p&&e.remove(s.line+1,p-1),e.insert(s.line+1,v)}sr(e,"change",e,n)}function Ti(e,s,l){!function e(t,r,n){if(t.linked)for(var i=0;i<t.linked.length;++i){var o=t.linked[i];if(o.doc!=r){var a=n&&o.sharedHist;l&&!a||(s(o.doc,a),e(o.doc,t,a))}}}(e,null,!0)}function Ai(e,t){if(t.cm)throw new Error("This document is already in use.");on((e.doc=t).cm=e),Si(e),Oi(e),e.options.lineWrapping||Xe(e),e.options.mode=t.modeOption,Yn(e)}function Oi(e){("rtl"==e.doc.direction?I:L)(e.display.lineDiv,"CodeMirror-rtl")}function Ei(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 Ni(e,t){var r={from:be(t.from),to:xi(t),text:ce(e,t.from,t.to)};return Di(e,r,t.from.line,t.to.line+1),Ti(e,function(e){return Di(e,r,t.from.line,t.to.line+1)},!0),r}function Ii(e){for(;e.length;){if(!X(e).ranges)break;e.pop()}}function Pi(e,t,r,n){var i=e.history;i.undone.length=0;var o,a,s,l=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&i.lastModTime>l-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=(s=i).lastOp==n?(Ii(s.done),X(s.done)):s.done.length&&!X(s.done).ranges?X(s.done):1<s.done.length&&!s.done[s.done.length-2].ranges?(s.done.pop(),X(s.done)):void 0))a=X(o.changes),0==ve(t.from,t.to)&&0==ve(t.from,a.to)?a.to=xi(t):o.changes.push(Ni(e,t));else{var c=X(i.done);for(c&&c.ranges||Ri(e.sel,i.done),o={changes:[Ni(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||it(e,"historyAdded")}function Bi(e,t,r,n){var i,o,a,s,l,c=e.history,u=n&&n.origin;r==c.lastSelOp||u&&c.lastSelOrigin==u&&(c.lastModTime==c.lastSelTime&&c.lastOrigin==u||(i=e,o=u,a=X(c.done),s=t,"*"==(l=o.charAt(0))||"+"==l&&a.ranges.length==s.ranges.length&&a.somethingSelected()==s.somethingSelected()&&new Date-i.history.lastSelTime<=(i.cm?i.cm.options.historyEventDelay:500)))?c.done[c.done.length-1]=t:Ri(t,c.done),c.lastSelTime=+new Date,c.lastSelOrigin=u,c.lastSelOp=r,n&&!1!==n.clearRedo&&Ii(c.undone)}function Ri(e,t){var r=X(t);r&&r.ranges&&r.equals(e)||t.push(e)}function Di(t,r,e,n){var i=r["spans_"+t.id],o=0;t.iter(Math.max(t.first,e),Math.min(t.first+t.size,n),function(e){e.markedSpans&&((i||(i=r["spans_"+t.id]={}))[o]=e.markedSpans),++o})}function Fi(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 zi(e,t){var r=function(e,t){var r=t["spans_"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(Fi(r[i]));return n}(e,t),n=Oe(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 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&&(r[i]=a)}return r}function Wi(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?gi.prototype.deepCopy.call(o):o);else{var a=o.changes,s=[];n.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+)$/))&&-1<W(t,Number(u[1]))&&(X(s)[f]=c[f],delete c[f])}}}return n}function qi(e,t,r,n){if(n){var i=e.anchor;if(r){var o=ve(t,i)<0;o!=ve(r,i)<0?(i=t,t=r):o!=ve(t,r)<0&&(t=r)}return new vi(i,t)}return new vi(r||t,t)}function Hi(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),$i(e,new gi([qi(e.sel.primary(),t,r,i)],0),n)}function ji(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)n[o]=qi(e.sel.ranges[o],t[o],null,i);$i(e,yi(n,e.sel.primIndex),r)}function Ki(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,$i(e,yi(i,e.sel.primIndex),n)}function Ui(e,t,r,n){$i(e,bi(t,r),n)}function Vi(e,t,r){var n=e.history.done,i=X(n);i&&i.ranges?Gi(e,n[n.length-1]=t,r):$i(e,t,r)}function $i(e,t,r){Gi(e,t,r),Bi(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function Gi(e,t,r){var n,i,o,a;(st(e,"beforeSelectionChange")||e.cm&&st(e.cm,"beforeSelectionChange"))&&(n=e,o=r,a={ranges:(i=t).ranges,update:function(e){this.ranges=[];for(var t=0;t<e.length;t++)this.ranges[t]=new vi(Ce(n,e[t].anchor),Ce(n,e[t].head))},origin:o&&o.origin},it(n,"beforeSelectionChange",n,a),n.cm&&it(n.cm,"beforeSelectionChange",n.cm,a),t=a.ranges!=i.ranges?yi(a.ranges,a.ranges.length-1):i),Xi(e,Qi(e,t,r&&r.bias||(ve(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||_n(e.cm)}function Xi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,at(e.cm)),sr(e,"cursorActivity",e))}function Yi(e){Xi(e,Qi(e,e.sel,null,!1))}function Qi(e,t,r,n){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=Zi(e,a.anchor,s&&s.anchor,r,n),c=Zi(e,a.head,s&&s.head,r,n);(i||l!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new vi(l,c))}return i?yi(i,t.primIndex):t}function Ji(e,t,r,n,i){var o=le(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&&(it(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(r){var c=l.find(n<0?1:-1),u=void 0;if((n<0?l.inclusiveRight:l.inclusiveLeft)&&(c=eo(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=ve(c,r))&&(n<0?u<0:0<u))return Ji(e,c,t,n,i)}var f=l.find(n<0?-1:1);return(n<0?l.inclusiveLeft:l.inclusiveRight)&&(f=eo(e,f,n,f.line==t.line?o:null)),f?Ji(e,f,t,n,i):null}}return t}function Zi(e,t,r,n,i){var o=n||1,a=Ji(e,t,r,o,i)||!i&&Ji(e,t,r,o,!0)||Ji(e,t,r,-o,i)||!i&&Ji(e,t,r,-o,!0);return a||(e.cantEdit=!0,ge(e.first,0))}function eo(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?Ce(e,ge(t.line-1)):null:0<r&&t.ch==(n||le(e,t.line)).text.length?t.line<e.first+e.size-1?ge(t.line+1,0):null:new ge(t.line,t.ch+r)}function to(e){e.setSelection(ge(e.firstLine(),0),ge(e.lastLine()),j)}function ro(i,e,t){var o={canceled:!1,from:e.from,to:e.to,text:e.text,origin:e.origin,cancel:function(){return o.canceled=!0}};return t&&(o.update=function(e,t,r,n){e&&(o.from=Ce(i,e)),t&&(o.to=Ce(i,t)),r&&(o.text=r),void 0!==n&&(o.origin=n)}),it(i,"beforeChange",i,o),i.cm&&it(i.cm,"beforeChange",i.cm,o),o.canceled?null:{from:o.from,to:o.to,text:o.text,origin:o.origin}}function no(e,t,r){if(e.cm){if(!e.cm.curOp)return $n(e.cm,no)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(st(e,"beforeChange")||e.cm&&st(e.cm,"beforeChange"))||(t=ro(e,t,!0))){var n=_e&&!r&&function(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&&-1!=W(n,r)||(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],s=a.find(0),l=0;l<i.length;++l){var c=i[l];if(!(ve(c.to,s.from)<0||0<ve(c.from,s.to))){var u=[l,1],f=ve(c.from,s.from),d=ve(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:s.from}),(0<d||!a.inclusiveRight&&!d)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;0<=i;--i)io(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else io(e,t)}}function io(e,r){if(1!=r.text.length||""!=r.text[0]||0!=ve(r.from,r.to)){var t=ki(e,r);Pi(e,r,t,e.cm?e.cm.curOp.id:NaN),so(e,r,t,Oe(e,r));var n=[];Ti(e,function(e,t){t||-1!=W(n,e.history)||(fo(e.history,r),n.push(e.history)),so(e,r,null,Oe(e,r))})}}function oo(i,o,e){var t=i.cm&&i.cm.state.suppressEdits;if(!t||e){for(var a,r=i.history,n=i.sel,s="undo"==o?r.done:r.undone,l="undo"==o?r.undone:r.done,c=0;c<s.length&&(a=s[c],e?!a.ranges||a.equals(i.sel):a.ranges);c++);if(c!=s.length){for(r.lastOrigin=r.lastSelOrigin=null;;){if(!(a=s.pop()).ranges){if(t)return void s.push(a);break}if(Ri(a,l),e&&!a.equals(i.sel))return void $i(i,a,{clearRedo:!1});n=a}var u=[];Ri(n,l),l.push({changes:u,generation:r.generation}),r.generation=a.generation||++r.maxGeneration;for(var f=st(i,"beforeChange")||i.cm&&st(i.cm,"beforeChange"),d=function(e){var r=a.changes[e];if(r.origin=o,f&&!ro(i,r,!1))return s.length=0,{};u.push(Ni(i,r));var t=e?ki(i,r):X(s);so(i,r,t,zi(i,r)),!e&&i.cm&&i.cm.scrollIntoView({from:r.from,to:xi(r)});var n=[];Ti(i,function(e,t){t||-1!=W(n,e.history)||(fo(e.history,r),n.push(e.history)),so(e,r,null,zi(e,r))})},h=a.changes.length-1;0<=h;--h){var p=d(h);if(p)return p.v}}}}function ao(e,t){if(0!=t&&(e.first+=t,e.sel=new gi(Y(e.sel.ranges,function(e){return new vi(ge(e.anchor.line+t,e.anchor.ch),ge(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Yn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)Qn(e.cm,n,"gutter")}}function so(e,t,r,n){if(e.cm&&!e.cm.curOp)return $n(e.cm,so)(e,t,r,n);if(t.to.line<e.first)ao(e,t.text.length-1-(t.to.line-t.from.line));else if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);ao(e,i),t={from:ge(e.first,0),to:ge(t.to.line+i,t.to.ch),text:[X(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:ge(o,le(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=ce(e,t.from,t.to),r||(r=ki(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,s=!1,l=o.line;e.options.lineWrapping||(l=de(He(le(n,o.line))),n.iter(l,a.line+1,function(e){if(e==i.maxLine)return s=!0}));-1<n.sel.contains(t.from,t.to)&&at(e);Mi(n,t,r,nn(e)),e.options.lineWrapping||(n.iter(l,o.line+t.text.length,function(e){var t=Ge(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var r=e.first,n=t-1;r<n;n--){var i=le(e,n).stateAfter;if(i&&(!(i instanceof Bt)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}})(n,o.line),ti(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?Yn(e):o.line!=a.line||1!=t.text.length||Li(e.doc,t)?Yn(e,o.line,a.line+1,c):Qn(e,o.line,"text");var u=st(e,"changes"),f=st(e,"change");if(f||u){var d={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};f&&sr(e,"change",e,d),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(d)}e.display.selForContextMenu=null}(e.cm,t,n):Mi(e,t,n),Gi(e,r,j)}}function lo(e,t,r,n,i){var o;(n||(n=r),ve(n,r)<0)&&(r=(o=[n,r])[0],n=o[1]);"string"==typeof t&&(t=e.splitLines(t)),no(e,{from:r,to:n,text:t,origin:i})}function co(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function uo(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()).copied=!0);for(var s=0;s<o.ranges.length;s++)co(o.ranges[s].anchor,t,r,n),co(o.ranges[s].head,t,r,n)}else{for(var l=0;l<o.changes.length;++l){var c=o.changes[l];if(r<c.from.line)c.from=ge(c.from.line+n,c.from.ch),c.to=ge(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 fo(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;uo(e.done,r,n,i),uo(e.undone,r,n,i)}function ho(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=le(e,ke(e,t)):i=de(t),null==i?null:(n(o,i)&&e.cm&&Qn(e.cm,i,r),o)}function po(e){this.lines=e,this.parent=null;for(var t=0,r=0;r<e.length;++r)e[r].parent=this,t+=e[r].height;this.height=t}function mo(e){this.children=e;for(var t=0,r=0,n=0;n<e.length;++n){var i=e[n];t+=i.chunkSize(),r+=i.height,i.parent=this}this.size=t,this.height=r,this.parent=null}vi.prototype.from=function(){return we(this.anchor,this.head)},vi.prototype.to=function(){return xe(this.anchor,this.head)},vi.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},po.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r,n=e,i=e+t;n<i;++n){var o=this.lines[n];this.height-=o.height,(r=o).parent=null,Ne(r),sr(o,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,r){this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var n=0;n<t.length;++n)t[n].parent=this},iterN:function(e,t,r){for(var n=e+t;e<n;++e)if(r(this.lines[e]))return!0}},mo.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var r=0;r<this.children.length;++r){var n=this.children[r],i=n.chunkSize();if(e<i){var o=Math.min(t,i-e),a=n.height;if(n.removeInner(e,o),this.height-=a-n.height,i==o&&(this.children.splice(r--,1),n.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(1<this.children.length||!(this.children[0]instanceof po))){var s=[];this.collapse(s),this.children=[new po(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,r){this.size+=t.length,this.height+=r;for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,r),i.lines&&50<i.lines.length){for(var a=i.lines.length%25+25,s=a;s<i.lines.length;){var l=new po(i.lines.slice(s,s+=25));i.height-=l.height,this.children.splice(++n,0,l),l.parent=this}i.lines=i.lines.slice(0,a),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=new mo(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var r=W(e.parent.children,e);e.parent.children.splice(r+1,0,t)}else{var n=new mo(e.children);(n.parent=e).children=[n,t],e=n}t.parent=e.parent}while(10<e.children.length);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e);if(i.iterN(e,a,r))return!0;if(0==(t-=a))break;e=0}else e-=o}}};var go=function(e,t,r){if(r)for(var n in r)r.hasOwnProperty(n)&&(this[n]=r[n]);this.doc=e,this.node=t};function vo(e,t,r){$e(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Sn(e,r)}go.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,r=this.line,n=de(r);if(null!=n&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(r.widgets=null);var o=br(this);fe(r,Math.max(0,r.height-o)),e&&(Vn(e,function(){vo(e,r,-o),Qn(e,n,"widget")}),sr(e,"lineWidgetCleared",e,this,n))}},go.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=br(this)-t;i&&(Ue(this.doc,n)||fe(n,n.height+i),r&&Vn(r,function(){r.curOp.forceUpdate=!0,vo(r,n,i),sr(r,"lineWidgetChanged",r,e,de(n))}))},lt(go);var yo=0,bo=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++yo};function xo(t,n,i,e,r){if(e&&e.shared)return function(e,r,n,i,o){(i=D(i)).shared=!1;var a=[xo(e,r,n,i,o)],s=a[0],l=i.widgetNode;return Ti(e,function(e){l&&(i.widgetNode=l.cloneNode(!0)),a.push(xo(e,Ce(e,r),Ce(e,n),i,o));for(var t=0;t<e.linked.length;++t)if(e.linked[t].isParent)return;s=X(a)}),new wo(a,s)}(t,n,i,e,r);if(t.cm&&!t.cm.curOp)return $n(t.cm,xo)(t,n,i,e,r);var o=new bo(t,r),a=ve(n,i);if(e&&D(e,o,!1),0<a||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=A("span",[o.replacedWith],"CodeMirror-widget"),e.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),e.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(qe(t,n.line,n,i,o)||n.line!=i.line&&qe(t,i.line,n,i,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Le=!0}o.addToHistory&&Pi(t,{from:n,to:i,origin:"markText"},t.sel,NaN);var s,l=n.line,c=t.cm;if(t.iter(l,i.line+1,function(e){var t,r;c&&o.collapsed&&!c.options.lineWrapping&&He(e)==c.display.maxLine&&(s=!0),o.collapsed&&l!=n.line&&fe(e,0),t=e,r=new Me(o,l==n.line?n.ch:null,l==i.line?i.ch:null),t.markedSpans=t.markedSpans?t.markedSpans.concat([r]):[r],r.marker.attachLine(t),++l}),o.collapsed&&t.iter(n.line,i.line+1,function(e){Ue(t,e)&&fe(e,0)}),o.clearOnEnter&&tt(o,"beforeCursorEnter",function(){return o.clear()}),o.readOnly&&(_e=!0,(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++yo,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)Yn(c,n.line,i.line+1);else if(o.className||o.title||o.startStyle||o.endStyle||o.css)for(var u=n.line;u<=i.line;u++)Qn(c,u,"text");o.atomic&&Yi(c.doc),sr(c,"markerAdded",c,o)}return o}bo.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&Wn(t),st(this,"clear")){var n=this.find();n&&sr(this,"clear",n.from,n.to)}for(var i=null,o=null,a=0;a<this.lines.length;++a){var s=e.lines[a],l=Te(s.markedSpans,e);t&&!e.collapsed?Qn(t,de(s),"text"):t&&(null!=l.to&&(o=de(s)),null!=l.from&&(i=de(s))),s.markedSpans=Ae(s.markedSpans,l),null==l.from&&e.collapsed&&!Ue(e.doc,s)&&t&&fe(s,Zr(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var c=0;c<this.lines.length;++c){var u=He(e.lines[c]),f=Ge(u);f>t.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=f,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&Yn(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Yi(t.doc)),t&&sr(t,"markerCleared",t,this,i,o),r&&qn(t),this.parent&&this.parent.clear()}},bo.prototype.find=function(e,t){var r,n;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i<this.lines.length;++i){var o=this.lines[i],a=Te(o.markedSpans,this);if(null!=a.from&&(r=ge(t?o:de(o),a.from),-1==e))return r;if(null!=a.to&&(n=ge(t?o:de(o),a.to),1==e))return n}return r&&{from:r,to:n}},bo.prototype.changed=function(){var o=this,a=this.find(-1,!0),s=this,l=this.doc.cm;a&&l&&Vn(l,function(){var e=a.line,t=de(a.line),r=Ar(l,t);if(r&&(Rr(r),l.curOp.selectionChanged=l.curOp.forceUpdate=!0),l.curOp.updateMaxLine=!0,!Ue(s.doc,e)&&null!=s.height){var n=s.height;s.height=null;var i=br(s)-n;i&&fe(e,e.height+i)}sr(l,"markerChanged",l,o)})},bo.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=W(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},bo.prototype.detachLine=function(e){if(this.lines.splice(W(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},lt(bo);var wo=function(e,t){this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=this};function ko(e){return e.findMarks(ge(e.first,0),e.clipPos(ge(e.lastLine())),function(e){return e.parent})}function Co(o){for(var e=function(e){var t=o[e],r=[t.primary.doc];Ti(t.primary.doc,function(e){return r.push(e)});for(var n=0;n<t.markers.length;n++){var i=t.markers[n];-1==W(r,i.doc)&&(i.parent=null,t.markers.splice(n--,1))}},t=0;t<o.length;t++)e(t)}wo.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();sr(this,"clear")}},wo.prototype.find=function(e,t){return this.primary.find(e,t)},lt(wo);var So=0,_o=function(e,t,r,n,i){if(!(this instanceof _o))return new _o(e,t,r,n,i);null==r&&(r=0),mo.call(this,[new po([new $t("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=r;var o=ge(r,0);this.sel=bi(o),this.history=new Ei(null),this.id=++So,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Mi(this,{from:o,to:o,text:e}),$i(this,bi(o),j)};_o.prototype=J(mo.prototype,{constructor:_o,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=ue(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Xn(function(e){var t=ge(this.first,0),r=this.first+this.size-1;no(this,{from:t,to:ge(r,le(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&Ln(this.cm,0,0),$i(this,bi(t),j)}),replaceRange:function(e,t,r,n){lo(this,e,t=Ce(this,t),r=r?Ce(this,r):t,n)},getRange:function(e,t,r){var n=ce(this,Ce(this,e),Ce(this,t));return!1===r?n:n.join(r||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(pe(this,e))return le(this,e)},getLineNumber:function(e){return de(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=le(this,e)),He(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return Ce(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||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:Xn(function(e,t,r){Ui(this,Ce(this,"number"==typeof e?ge(e,t||0):e),null,r)}),setSelection:Xn(function(e,t,r){Ui(this,Ce(this,e),Ce(this,t||e),r)}),extendSelection:Xn(function(e,t,r){Hi(this,Ce(this,e),t&&Ce(this,t),r)}),extendSelections:Xn(function(e,t){ji(this,Se(this,e),t)}),extendSelectionsBy:Xn(function(e,t){ji(this,Se(this,Y(this.sel.ranges,e)),t)}),setSelections:Xn(function(e,t,r){if(e.length){for(var n=[],i=0;i<e.length;i++)n[i]=new vi(Ce(this,e[i].anchor),Ce(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),$i(this,yi(n,t),r)}}),addSelection:Xn(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new vi(Ce(this,e),Ce(this,t||e))),$i(this,yi(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this.sel.ranges,n=0;n<r.length;n++){var i=ce(this,r[n].from(),r[n].to());t=t?t.concat(i):i}return!1===e?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],r=this.sel.ranges,n=0;n<r.length;n++){var i=ce(this,r[n].from(),r[n].to());!1!==e&&(i=i.join(e||this.lineSeparator())),t[n]=i}return t},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:Xn(function(e,t,r){for(var n=[],i=this.sel,o=0;o<i.ranges.length;o++){var a=i.ranges[o];n[o]={from:a.from(),to:a.to(),text:this.splitLines(e[o]),origin:r}}for(var s=t&&"end"!=t&&function(e,t,r){for(var n=[],i=ge(e.first,0),o=i,a=0;a<t.length;a++){var s=t[a],l=Ci(s.from,i,o),c=Ci(xi(s),i,o);if(i=s.to,o=c,"around"==r){var u=e.sel.ranges[a],f=ve(u.head,u.anchor)<0;n[a]=new vi(f?c:l,f?l:c)}else n[a]=new vi(l,l)}return new gi(n,e.sel.primIndex)}(this,n,t),l=n.length-1;0<=l;l--)no(this,n[l]);s?Vi(this,s):this.cm&&_n(this.cm)}),undo:Xn(function(){oo(this,"undo")}),redo:Xn(function(){oo(this,"redo")}),undoSelection:Xn(function(){oo(this,"undo",!0)}),redoSelection:Xn(function(){oo(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 Ei(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:Wi(this.history.done),undone:Wi(this.history.undone)}},setHistory:function(e){var t=this.history=new Ei(this.history.maxGeneration);t.done=Wi(e.done.slice(0),null,!0),t.undone=Wi(e.undone.slice(0),null,!0)},setGutterMarker:Xn(function(e,r,n){return ho(this,e,"gutter",function(e){var t=e.gutterMarkers||(e.gutterMarkers={});return!(t[r]=n)&&re(t)&&(e.gutterMarkers=null),!0})}),clearGutter:Xn(function(t){var r=this;this.iter(function(e){e.gutterMarkers&&e.gutterMarkers[t]&&ho(r,e,"gutter",function(){return e.gutterMarkers[t]=null,re(e.gutterMarkers)&&(e.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!pe(this,e))return null;if(!(e=le(this,t=e)))return null}else if(null==(t=de(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:Xn(function(e,r,n){return ho(this,e,"gutter"==r?"gutter":"class",function(e){var t="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(e[t]){if(S(n).test(e[t]))return!1;e[t]+=" "+n}else e[t]=n;return!0})}),removeLineClass:Xn(function(e,o,a){return ho(this,e,"gutter"==o?"gutter":"class",function(e){var t="text"==o?"textClass":"background"==o?"bgClass":"gutter"==o?"gutterClass":"wrapClass",r=e[t];if(!r)return!1;if(null==a)e[t]=null;else{var n=r.match(S(a));if(!n)return!1;var i=n.index+n[0].length;e[t]=r.slice(0,n.index)+(n.index&&i!=r.length?" ":"")+r.slice(i)||null}return!0})}),addLineWidget:Xn(function(e,t,r){return i=e,o=new go(n=this,t,r),(a=n.cm)&&o.noHScroll&&(a.display.alignWidgets=!0),ho(n,i,"widget",function(e){var t=e.widgets||(e.widgets=[]);if(null==o.insertAt?t.push(o):t.splice(Math.min(t.length-1,Math.max(0,o.insertAt)),0,o),o.line=e,a&&!Ue(n,e)){var r=$e(e)<n.scrollTop;fe(e,e.height+br(o)),r&&Sn(a,o.height),a.curOp.forceUpdate=!0}return!0}),a&&sr(a,"lineWidgetAdded",a,o,"number"==typeof i?i:de(i)),o;var n,i,o,a}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return xo(this,Ce(this,e),Ce(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 xo(this,e=Ce(this,e),e,r,"bookmark")},findMarksAt:function(e){var t=[],r=le(this,(e=Ce(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(i,o,a){i=Ce(this,i),o=Ce(this,o);var s=[],l=i.line;return this.iter(i.line,o.line+1,function(e){var t=e.markedSpans;if(t)for(var r=0;r<t.length;r++){var n=t[r];null!=n.to&&l==i.line&&i.ch>=n.to||null==n.from&&l!=i.line||null!=n.from&&l==o.line&&n.from>=o.ch||a&&!a(n.marker)||s.push(n.marker.parent||n.marker)}++l}),s},getAllMarks:function(){var n=[];return this.iter(function(e){var t=e.markedSpans;if(t)for(var r=0;r<t.length;++r)null!=t[r].from&&n.push(t[r].marker)}),n},posFromIndex:function(r){var n,i=this.first,o=this.lineSeparator().length;return this.iter(function(e){var t=e.text.length+o;if(r<t)return n=r,!0;r-=t,++i}),Ce(this,ge(i,n))},indexFromPos:function(e){var t=(e=Ce(this,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 _o(ue(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 _o(ue(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}],function(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(ve(o,a)){var s=xo(e,o,a,n.primary,n.primary.type);n.markers.push(s),s.parent=n}}}(n,ko(this)),n},unlinkDoc:function(e){if(e instanceof ka&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t){if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),Co(ko(this));break}}if(e.history==this.history){var r=[e.id];Ti(e,function(e){return r.push(e.id)},!0),e.history=new Ei(null),e.history.done=Wi(this.history.done,r),e.history.undone=Wi(this.history.undone,r)}},iterLinkedDocs:function(e){Ti(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):wt(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:Xn(function(e){var t;("rtl"!=e&&(e="ltr"),e!=this.direction)&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Vn(t=this.cm,function(){Oi(t),Yn(t)}))})}),_o.prototype.eachLine=_o.prototype.iter;var Lo=0;function Mo(e){var i=this;if(To(i),!ot(i,e)&&!xr(i.display,e)){ct(e),w&&(Lo=+new Date);var o=an(i,e,!0),t=e.dataTransfer.files;if(o&&!i.isReadOnly())if(t&&t.length&&window.FileReader&&window.File)for(var a=t.length,s=Array(a),l=0,r=function(e,r){if(!i.options.allowDropFileTypes||-1!=W(i.options.allowDropFileTypes,e.type)){var n=new FileReader;n.onload=$n(i,function(){var e=n.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),s[r]=e,++l==a){var t={from:o=Ce(i.doc,o),to:o,text:i.doc.splitLines(s.join(i.doc.lineSeparator())),origin:"paste"};no(i.doc,t),Vi(i.doc,bi(o,xi(t)))}}),n.readAsText(e)}},n=0;n<a;++n)r(t[n],n);else{if(i.state.draggingText&&-1<i.doc.sel.contains(o))return i.state.draggingText(e),void setTimeout(function(){return i.display.input.focus()},20);try{var c=e.dataTransfer.getData("Text");if(c){var u;if(i.state.draggingText&&!i.state.draggingText.copy&&(u=i.listSelections()),Gi(i.doc,bi(o,o)),u)for(var f=0;f<u.length;++f)lo(i.doc,"",u[f].anchor,u[f].head,"drag");i.replaceSelection(c,"around","paste"),i.display.input.focus()}}catch(e){}}}}function To(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Ao(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}var Oo=!1;function Eo(){var e;Oo||(tt(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Ao(No)},100))}),tt(window,"blur",function(){return Ao(vn)}),Oo=!0)}function No(e){var t=e.display;t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize()}for(var Io={3:"Pause",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",145:"ScrollLock",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"},Po=0;Po<10;Po++)Io[Po+48]=Io[Po+96]=String(Po);for(var Bo=65;Bo<=90;Bo++)Io[Bo]=String.fromCharCode(Bo);for(var Ro=1;Ro<=12;Ro++)Io[Ro+111]=Io[Ro+63235]="F"+Ro;var Do={};function Fo(e){var t,r,n,i,o=e.split(/-(?!$)/);e=o[o.length-1];for(var a=0;a<o.length-1;a++){var s=o[a];if(/^(cmd|meta|m)$/i.test(s))i=!0;else if(/^a(lt)?$/i.test(s))t=!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);n=!0}}return t&&(e="Alt-"+e),r&&(e="Ctrl-"+e),i&&(e="Cmd-"+e),n&&(e="Shift-"+e),e}function zo(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=Y(r.split(" "),Fo),o=0;o<i.length;o++){var a=void 0,s=void 0;a=o==i.length-1?(s=i.join(" "),n):(s=i.slice(0,o+1).join(" "),"...");var l=t[s];if(l){if(l!=a)throw new Error("Inconsistent bindings for "+s)}else t[s]=a}delete e[r]}for(var c in t)e[c]=t[c];return e}function Wo(e,t,r,n){var i=(t=Ko(t)).call?t.call(e,n):t[e];if(!1===i)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 Wo(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var a=Wo(e,t.fallthrough[o],r,n);if(a)return a}}}function qo(e){var t="string"==typeof e?e:Io[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function Ho(e,t,r){var n=e;return t.altKey&&"Alt"!=n&&(e="Alt-"+e),(y?t.metaKey:t.ctrlKey)&&"Ctrl"!=n&&(e="Ctrl-"+e),(y?t.ctrlKey:t.metaKey)&&"Cmd"!=n&&(e="Cmd-"+e),!r&&t.shiftKey&&"Shift"!=n&&(e="Shift-"+e),e}function jo(e,t){if(g&&34==e.keyCode&&e.char)return!1;var r=Io[e.keyCode];return null!=r&&!e.altGraphKey&&(3==e.keyCode&&e.code&&(r=e.code),Ho(r,e,t))}function Ko(e){return"string"==typeof e?Do[e]:e}function Uo(t,e){for(var r=t.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=e(r[i]);n.length&&ve(o.from,X(n).to)<=0;){var a=n.pop();if(ve(a.from,o.from)<0){o.from=a.from;break}}n.push(o)}Vn(t,function(){for(var e=n.length-1;0<=e;e--)lo(t.doc,"",n[e].from,n[e].to,"+delete");_n(t)})}function Vo(e,t,r){var n=oe(e.text,t+r,r);return n<0||n>e.text.length?null:n}function $o(e,t,r){var n=Vo(e,t.ch,r);return null==n?null:new ge(t.line,n,r<0?"after":"before")}function Go(e,t,r,n,i){if(e){var o=Ze(r,t.doc.direction);if(o){var a,s=i<0?X(o):o[0],l=i<0==(1==s.level)?"after":"before";if(0<s.level||"rtl"==t.doc.direction){var c=Or(t,r);a=i<0?r.text.length-1:0;var u=Er(t,c,a).top;a=ae(function(e){return Er(t,c,e).top==u},i<0==(1==s.level)?s.from:s.to-1,a),"before"==l&&(a=Vo(r,a,1))}else a=i<0?s.to:s.from;return new ge(n,a,l)}}return new ge(n,i<0?r.text.length:0,i<0?"before":"after")}Do.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"},Do.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"},Do.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"},Do.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"]},Do.default=x?Do.macDefault:Do.pcDefault;var Xo={selectAll:to,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),j)},killLine:function(r){return Uo(r,function(e){if(e.empty()){var t=le(r.doc,e.head.line).text.length;return e.head.ch==t&&e.head.line<r.lastLine()?{from:e.head,to:ge(e.head.line+1,0)}:{from:e.head,to:ge(e.head.line,t)}}return{from:e.from(),to:e.to()}})},deleteLine:function(t){return Uo(t,function(e){return{from:ge(e.from().line,0),to:Ce(t.doc,ge(e.to().line+1,0))}})},delLineLeft:function(e){return Uo(e,function(e){return{from:ge(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(r){return Uo(r,function(e){var t=r.charCoords(e.head,"div").top+5;return{from:r.coordsChar({left:0,top:t},"div"),to:e.from()}})},delWrappedLineRight:function(n){return Uo(n,function(e){var t=n.charCoords(e.head,"div").top+5,r=n.coordsChar({left:n.display.lineDiv.offsetWidth+100,top:t},"div");return{from:e.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(ge(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(ge(e.lastLine()))},goLineStart:function(t){return t.extendSelectionsBy(function(e){return Yo(t,e.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(t){return t.extendSelectionsBy(function(e){return Qo(t,e.head)},{origin:"+move",bias:1})},goLineEnd:function(t){return t.extendSelectionsBy(function(e){return function(e,t){var r=le(e.doc,t),n=function(e){for(var t;t=ze(e);)e=t.find(1,!0).line;return e}(r);n!=r&&(t=de(n));return Go(!0,e,r,t,-1)}(t,e.head.line)},{origin:"+move",bias:-1})},goLineRight:function(r){return r.extendSelectionsBy(function(e){var t=r.cursorCoords(e.head,"div").top+5;return r.coordsChar({left:r.display.lineDiv.offsetWidth+100,top:t},"div")},U)},goLineLeft:function(r){return r.extendSelectionsBy(function(e){var t=r.cursorCoords(e.head,"div").top+5;return r.coordsChar({left:0,top:t},"div")},U)},goLineLeftSmart:function(n){return n.extendSelectionsBy(function(e){var t=n.cursorCoords(e.head,"div").top+5,r=n.coordsChar({left:0,top:t},"div");return r.ch<n.getLine(r.line).search(/\S/)?Qo(n,e.head):r},U)},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(G(n-a%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(a){return Vn(a,function(){for(var e=a.listSelections(),t=[],r=0;r<e.length;r++)if(e[r].empty()){var n=e[r].head,i=le(a.doc,n.line).text;if(i)if(n.ch==i.length&&(n=new ge(n.line,n.ch-1)),0<n.ch)n=new ge(n.line,n.ch+1),a.replaceRange(i.charAt(n.ch-1)+i.charAt(n.ch-2),ge(n.line,n.ch-2),n,"+transpose");else if(n.line>a.doc.first){var o=le(a.doc,n.line-1).text;o&&(n=new ge(n.line,1),a.replaceRange(i.charAt(0)+a.doc.lineSeparator()+o.charAt(o.length-1),ge(n.line-1,o.length-1),n,"+transpose"))}t.push(new vi(n,n))}a.setSelections(t)})},newlineAndIndent:function(n){return Vn(n,function(){for(var e=n.listSelections(),t=e.length-1;0<=t;t--)n.replaceRange(n.doc.lineSeparator(),e[t].anchor,e[t].head,"+input");e=n.listSelections();for(var r=0;r<e.length;r++)n.indentLine(e[r].from().line,null,!0);_n(n)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}};function Yo(e,t){var r=le(e.doc,t),n=He(r);return n!=r&&(t=de(n)),Go(!0,e,n,t,1)}function Qo(e,t){var r=Yo(e,t.line),n=le(e.doc,r.line),i=Ze(n,e.doc.direction);if(i&&0!=i[0].level)return r;var o=Math.max(0,n.text.search(/\S/)),a=t.line==r.line&&t.ch<=o&&t.ch;return ge(r.line,a?0:o,r.sticky)}function Jo(e,t,r){if("string"==typeof t&&!(t=Xo[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)!=H}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}var Zo=new z;function ea(e,t,r,n){var i=e.state.keySeq;if(i){if(qo(t))return"handled";if(/\'$/.test(t)?e.state.keySeq=null:Zo.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),ta(e,i+" "+t,r,n))return!0}return ta(e,t,r,n)}function ta(e,t,r,n){var i=function(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=Wo(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&Wo(t,e.options.extraKeys,r,e)||Wo(t,e.options.keyMap,r,e)}(e,t,n);return"multi"==i&&(e.state.keySeq=t),"handled"==i&&sr(e,"keyHandled",e,t,r),"handled"!=i&&"multi"!=i||(ct(r),hn(e)),!!i}function ra(t,e){var r=jo(e,!0);return!!r&&(e.shiftKey&&!t.state.keySeq?ea(t,"Shift-"+r,e,function(e){return Jo(t,e,!0)})||ea(t,r,e,function(e){if("string"==typeof e?/^go[A-Z]/.test(e):e.motion)return Jo(t,e)}):ea(t,r,e,function(e){return Jo(t,e)}))}var na=null;function ia(e){var t=this;if(t.curOp.focus=N(),!ot(t,e)){w&&k<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=ra(t,e);g&&(na=n?r:null,!n&&88==r&&!Ct&&(x?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=r||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||function(e){var t=e.display.lineDiv;function r(e){18!=e.keyCode&&e.altKey||(L(t,"CodeMirror-crosshair"),nt(document,"keyup",r),nt(document,"mouseover",r))}I(t,"CodeMirror-crosshair"),tt(document,"keyup",r),tt(document,"mouseover",r)}(t)}}function oa(e){16==e.keyCode&&(this.doc.sel.shift=!1),ot(this,e)}function aa(e){var t=this;if(!(xr(t.display,e)||ot(t,e)||e.ctrlKey&&!e.altKey||x&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(g&&r==na)return na=null,void ct(e);if(!g||e.which&&!(e.which<10)||!ra(t,e)){var i,o=String.fromCharCode(null==n?r:n);if("\b"!=o)if(!ea(i=t,"'"+o+"'",e,function(e){return Jo(i,e,!0)}))t.display.input.onKeyPress(e)}}}var sa,la,ca=function(e,t,r){this.time=e,this.pos=t,this.button=r};function ua(e){var t=this,r=t.display;if(!(ot(t,e)||r.activeTouch&&r.input.supportsTouch()))if(r.input.ensurePolled(),r.shift=e.shiftKey,xr(r,e))b||(r.scroller.draggable=!1,setTimeout(function(){return r.scroller.draggable=!0},100));else if(!ha(t,e)){var n,i,o,a=an(t,e),s=pt(e),l=a?(n=a,i=s,o=+new Date,la&&la.compare(o,n,i)?(sa=la=null,"triple"):sa&&sa.compare(o,n,i)?(la=new ca(o,n,i),sa=null,"double"):(sa=new ca(o,n,i),la=null,"single")):"single";window.focus(),1==s&&t.state.selectingText&&t.state.selectingText(e),a&&function(r,e,n,t,i){var o="Click";"double"==t?o="Double"+o:"triple"==t&&(o="Triple"+o);return ea(r,Ho(o=(1==e?"Left":2==e?"Middle":"Right")+o,i),i,function(e){if("string"==typeof e&&(e=Xo[e]),!e)return!1;var t=!1;try{r.isReadOnly()&&(r.state.suppressEdits=!0),t=e(r,n)!=H}finally{r.state.suppressEdits=!1}return t})}(t,s,a,l,e)||(1==s?a?function(e,t,r,n){w?setTimeout(R(pn,e),0):e.curOp.focus=N();var i,o=function(e,t,r){var n=e.getOption("configureMouse"),i=n?n(e,t,r):{};if(null==i.unit){var o=h?r.shiftKey&&r.metaKey:r.altKey;i.unit=o?"rectangle":"single"==t?"char":"double"==t?"word":"line"}(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||r.shiftKey);null==i.addNew&&(i.addNew=x?r.metaKey:r.ctrlKey);null==i.moveOnDrag&&(i.moveOnDrag=!(x?r.altKey:r.ctrlKey));return i}(e,r,n),a=e.doc.sel;e.options.dragDrop&&vt&&!e.isReadOnly()&&"single"==r&&-1<(i=a.contains(t))&&(ve((i=a.ranges[i]).from(),t)<0||0<t.xRel)&&(0<ve(i.to(),t)||t.xRel<0)?function(t,r,n,i){var o=t.display,a=!1,s=$n(t,function(e){b&&(o.scroller.draggable=!1),t.state.draggingText=!1,nt(o.wrapper.ownerDocument,"mouseup",s),nt(o.wrapper.ownerDocument,"mousemove",l),nt(o.scroller,"dragstart",c),nt(o.scroller,"drop",s),a||(ct(e),i.addNew||Hi(t.doc,n,null,null,i.extend),b||w&&9==k?setTimeout(function(){o.wrapper.ownerDocument.body.focus(),o.input.focus()},20):o.input.focus())}),l=function(e){a=a||10<=Math.abs(r.clientX-e.clientX)+Math.abs(r.clientY-e.clientY)},c=function(){return a=!0};b&&(o.scroller.draggable=!0);(t.state.draggingText=s).copy=!i.moveOnDrag,o.scroller.dragDrop&&o.scroller.dragDrop();tt(o.wrapper.ownerDocument,"mouseup",s),tt(o.wrapper.ownerDocument,"mousemove",l),tt(o.scroller,"dragstart",c),tt(o.scroller,"drop",s),mn(t),setTimeout(function(){return o.input.focus()},20)}(e,n,t,o):function(g,e,v,y){var a=g.display,b=g.doc;ct(e);var x,w,k=b.sel,t=k.ranges;y.addNew&&!y.extend?(w=b.sel.contains(v),x=-1<w?t[w]:new vi(v,v)):(x=b.sel.primary(),w=b.sel.primIndex);if("rectangle"==y.unit)y.addNew||(x=new vi(v,v)),v=an(g,e,!0,!0),w=-1;else{var r=fa(g,v,y.unit);x=y.extend?qi(x,r.anchor,r.head,y.extend):r}y.addNew?-1==w?(w=t.length,$i(b,yi(t.concat([x]),w),{scroll:!1,origin:"*mouse"})):1<t.length&&t[w].empty()&&"char"==y.unit&&!y.extend?($i(b,yi(t.slice(0,w).concat(t.slice(w+1)),0),{scroll:!1,origin:"*mouse"}),k=b.sel):Ki(b,w,x,K):($i(b,new gi([x],w=0),K),k=b.sel);var C=v;function s(e){if(0!=ve(C,e))if(C=e,"rectangle"==y.unit){for(var t=[],r=g.options.tabSize,n=F(le(b,v.line).text,v.ch,r),i=F(le(b,e.line).text,e.ch,r),o=Math.min(n,i),a=Math.max(n,i),s=Math.min(v.line,e.line),l=Math.min(g.lastLine(),Math.max(v.line,e.line));s<=l;s++){var c=le(b,s).text,u=V(c,o,r);o==a?t.push(new vi(ge(s,u),ge(s,u))):c.length>u&&t.push(new vi(ge(s,u),ge(s,V(c,a,r))))}t.length||t.push(new vi(v,v)),$i(b,yi(k.ranges.slice(0,w).concat(t),w),{origin:"*mouse",scroll:!1}),g.scrollIntoView(e)}else{var f,d=x,h=fa(g,e,y.unit),p=d.anchor;p=0<ve(h.anchor,p)?(f=h.head,we(d.from(),h.anchor)):(f=h.anchor,xe(d.to(),h.head));var m=k.ranges.slice(0);m[w]=function(e,t){var r=t.anchor,n=t.head,i=le(e.doc,r.line);if(0==ve(r,n)&&r.sticky==n.sticky)return t;var o=Ze(i);if(!o)return t;var a=Qe(o,r.ch,r.sticky),s=o[a];if(s.from!=r.ch&&s.to!=r.ch)return t;var l,c=a+(s.from==r.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return t;if(n.line!=r.line)l=0<(n.line-r.line)*("ltr"==e.doc.direction?1:-1);else{var u=Qe(o,n.ch,n.sticky),f=u-a||(n.ch-r.ch)*(1==s.level?-1:1);l=u==c-1||u==c?f<0:0<f}var d=o[c+(l?-1:0)],h=l==(1==d.level),p=h?d.from:d.to,m=h?"after":"before";return r.ch==p&&r.sticky==m?t:new vi(new ge(r.line,p,m),n)}(g,new vi(Ce(b,p),f)),$i(b,yi(m,w),K)}}var l=a.wrapper.getBoundingClientRect(),c=0;function n(e){g.state.selectingText=!1,c=1/0,ct(e),a.input.focus(),nt(a.wrapper.ownerDocument,"mousemove",i),nt(a.wrapper.ownerDocument,"mouseup",o),b.history.lastSelOrigin=null}var i=$n(g,function(e){0!==e.buttons&&pt(e)?function e(t){var r=++c;var n=an(g,t,!0,"rectangle"==y.unit);if(!n)return;if(0!=ve(n,C)){g.curOp.focus=N(),s(n);var i=xn(a,b);(n.line>=i.to||n.line<i.from)&&setTimeout($n(g,function(){c==r&&e(t)}),150)}else{var o=t.clientY<l.top?-20:t.clientY>l.bottom?20:0;o&&setTimeout($n(g,function(){c==r&&(a.scroller.scrollTop+=o,e(t))}),50)}}(e):n(e)}),o=$n(g,n);g.state.selectingText=o,tt(a.wrapper.ownerDocument,"mousemove",i),tt(a.wrapper.ownerDocument,"mouseup",o)}(e,n,t,o)}(t,a,l,e):ht(e)==r.scroller&&ct(e):2==s?(a&&Hi(t.doc,a),setTimeout(function(){return r.input.focus()},20)):3==s&&(C?pa(t,e):mn(t)))}}function fa(e,t,r){if("char"==r)return new vi(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new vi(ge(t.line,0),Ce(e.doc,ge(t.line+1,0)));var n=r(e,t);return new vi(n.from,n.to)}function da(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&ct(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!st(e,r))return ft(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 it(e,r,e,he(e.doc,o),e.options.gutters[l],t),ft(t)}}function ha(e,t){return da(e,t,"gutterClick",!0)}function pa(e,t){var r,n;xr(e.display,t)||(n=t,st(r=e,"gutterContextMenu")&&da(r,n,"gutterContextMenu",!1))||(ot(e,t,"contextmenu")||e.display.input.onContextMenu(t))}function ma(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Fr(e)}ca.prototype.compare=function(e,t,r){return this.time+400>e&&0==ve(t,this.pos)&&r==this.button};var ga={toString:function(){return"CodeMirror.Init"}},va={},ya={};function ba(e){ci(e),Yn(e),wn(e)}function xa(e,t,r){if(!t!=!(r&&r!=ga)){var n=e.display.dragFunctions,i=t?tt:nt;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 wa(e){e.options.lineWrapping?(I(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(L(e.display.wrapper,"CodeMirror-wrap"),Xe(e)),on(e),Yn(e),Fr(e),setTimeout(function(){return Bn(e)},100)}function ka(e,t){var r=this;if(!(this instanceof ka))return new ka(e,t);this.options=t=t?D(t):{},D(va,t,!1),ui(t);var n=t.value;"string"==typeof n?n=new _o(n,t.mode,null,t.lineSeparator,t.direction):t.mode&&(n.modeOption=t.mode),this.doc=n;var i=new ka.inputStyles[t.inputStyle](this),o=this.display=new se(e,n,i);for(var a in ci(o.wrapper.CodeMirror=this),ma(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Fn(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 z,keySeq:null,specialChars:null},t.autofocus&&!d&&o.input.focus(),w&&k<11&&setTimeout(function(){return r.display.input.reset(!0)},20),function(i){var o=i.display;tt(o.scroller,"mousedown",$n(i,ua)),tt(o.scroller,"dblclick",w&&k<11?$n(i,function(e){if(!ot(i,e)){var t=an(i,e);if(t&&!ha(i,e)&&!xr(i.display,e)){ct(e);var r=i.findWordAt(t);Hi(i.doc,r.anchor,r.head)}}}):function(e){return ot(i,e)||ct(e)});C||tt(o.scroller,"contextmenu",function(e){return pa(i,e)});var r,n={end:0};function a(){o.activeTouch&&(r=setTimeout(function(){return o.activeTouch=null},1e3),(n=o.activeTouch).end=+new Date)}function s(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return 400<r*r+n*n}tt(o.scroller,"touchstart",function(e){if(!ot(i,e)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(e)&&!ha(i,e)){o.input.ensurePolled(),clearTimeout(r);var t=+new Date;o.activeTouch={start:t,moved:!1,prev:t-n.end<=300?n:null},1==e.touches.length&&(o.activeTouch.left=e.touches[0].pageX,o.activeTouch.top=e.touches[0].pageY)}}),tt(o.scroller,"touchmove",function(){o.activeTouch&&(o.activeTouch.moved=!0)}),tt(o.scroller,"touchend",function(e){var t=o.activeTouch;if(t&&!xr(o,e)&&null!=t.left&&!t.moved&&new Date-t.start<300){var r,n=i.coordsChar(o.activeTouch,"page");r=!t.prev||s(t,t.prev)?new vi(n,n):!t.prev.prev||s(t,t.prev.prev)?i.findWordAt(n):new vi(ge(n.line,0),Ce(i.doc,ge(n.line+1,0))),i.setSelection(r.anchor,r.head),i.focus(),ct(e)}a()}),tt(o.scroller,"touchcancel",a),tt(o.scroller,"scroll",function(){o.scroller.clientHeight&&(An(i,o.scroller.scrollTop),En(i,o.scroller.scrollLeft,!0),it(i,"scroll",i))}),tt(o.scroller,"mousewheel",function(e){return mi(i,e)}),tt(o.scroller,"DOMMouseScroll",function(e){return mi(i,e)}),tt(o.wrapper,"scroll",function(){return o.wrapper.scrollTop=o.wrapper.scrollLeft=0}),o.dragFunctions={enter:function(e){ot(i,e)||dt(e)},over:function(e){ot(i,e)||(!function(e,t){var r=an(e,t);if(r){var n=document.createDocumentFragment();un(e,r,n),e.display.dragCursor||(e.display.dragCursor=O("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),T(e.display.dragCursor,n)}}(i,e),dt(e))},start:function(e){return function(e,t){if(w&&(!e.state.draggingText||+new Date-Lo<100))dt(t);else if(!ot(e,t)&&!xr(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!l)){var r=O("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",g&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),g&&r.parentNode.removeChild(r)}}(i,e)},drop:$n(i,Mo),leave:function(e){ot(i,e)||To(i)}};var e=o.input.getField();tt(e,"keyup",function(e){return oa.call(i,e)}),tt(e,"keydown",$n(i,ia)),tt(e,"keypress",$n(i,aa)),tt(e,"focus",function(e){return gn(i,e)}),tt(e,"blur",function(e){return vn(i,e)})}(this),Eo(),Wn(this),this.curOp.forceUpdate=!0,Ai(this,n),t.autofocus&&!d||this.hasFocus()?setTimeout(R(gn,this),20):vn(this),ya)ya.hasOwnProperty(a)&&ya[a](r,t[a],ga);kn(this),t.finishInit&&t.finishInit(this);for(var s=0;s<Ca.length;++s)Ca[s](r);qn(this),b&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}ka.defaults=va,ka.optionHandlers=ya;var Ca=[];function Sa(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=zt(e,t).state:r="prev");var a=e.options.tabSize,s=le(o,t),l=F(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(n||/\S/.test(s.text)){if("smart"==r&&((c=o.mode.indent(i,s.text.slice(u.length),s.text))==H||150<c)){if(!n)return;r="prev"}}else c=0,r="not";"prev"==r?c=t>o.first?F(le(o,t-1).text,null,a):0:"add"==r?c=l+e.options.indentUnit:"subtract"==r?c=l-e.options.indentUnit:"number"==typeof r&&(c=l+r),c=Math.max(0,c);var f="",d=0;if(e.options.indentWithTabs)for(var h=Math.floor(c/a);h;--h)d+=a,f+="\t";if(d<c&&(f+=G(c-d)),f!=u)return lo(o,f,ge(t,0),ge(t,u.length),"+input"),!(s.stateAfter=null);for(var p=0;p<o.sel.ranges.length;p++){var m=o.sel.ranges[p];if(m.head.line==t&&m.head.ch<u.length){var g=ge(t,u.length);Ki(o,p,new vi(g,g));break}}}ka.defineInitHook=function(e){return Ca.push(e)};var _a=null;function La(e){_a=e}function Ma(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var a,s=e.state.pasteIncoming||"paste"==i,l=wt(t),c=null;if(s&&1<n.ranges.length)if(_a&&_a.text.join("\n")==t){if(n.ranges.length%_a.text.length==0){c=[];for(var u=0;u<_a.text.length;u++)c.push(o.splitLines(_a.text[u]))}}else l.length==n.ranges.length&&e.options.pasteLinesPerSelection&&(c=Y(l,function(e){return[e]}));for(var f=n.ranges.length-1;0<=f;f--){var d=n.ranges[f],h=d.from(),p=d.to();d.empty()&&(r&&0<r?h=ge(h.line,h.ch-r):e.state.overwrite&&!s?p=ge(p.line,Math.min(le(o,p.line).text.length,p.ch+X(l).length)):_a&&_a.lineWise&&_a.text.join("\n")==t&&(h=p=ge(h.line,0))),a=e.curOp.updateInput;var m={from:h,to:p,text:c?c[f%c.length]:l,origin:i||(s?"paste":e.state.cutIncoming?"cut":"+input")};no(e.doc,m),sr(e,"inputRead",e,m)}t&&!s&&Aa(e,t),_n(e),e.curOp.updateInput=a,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Ta(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Vn(t,function(){return Ma(t,r,0,null,"paste")}),!0}function Aa(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;0<=n;n--){var i=r.ranges[n];if(!(100<i.head.ch||n&&r.ranges[n-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(-1<t.indexOf(o.electricChars.charAt(s))){a=Sa(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(le(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Sa(e,i.head.line,"smart"));a&&sr(e,"electricInput",e,i.head.line)}}}function Oa(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:ge(i,0),head:ge(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function Ea(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Na(){var e=O("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=O("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return b?e.style.width="1000px":e.setAttribute("wrap","off"),u&&(e.style.border="1px solid black"),Ea(e),t}function Ia(n,i,o,e,a){var t=i,r=o,s=le(n,i.line);function l(e){var t,r;if(null==(t=a?function(t,r,s,e){var l=Ze(r,t.doc.direction);if(!l)return $o(r,s,e);s.ch>=r.text.length?(s.ch=r.text.length,s.sticky="before"):s.ch<=0&&(s.ch=0,s.sticky="after");var n=Qe(l,s.ch,s.sticky),i=l[n];if("ltr"==t.doc.direction&&i.level%2==0&&(0<e?i.to>s.ch:i.from<s.ch))return $o(r,s,e);var o,c=function(e,t){return Vo(r,e instanceof ge?e.ch:e,t)},a=function(e){return t.options.lineWrapping?(o=o||Or(t,r),Yr(t,r,o,e)):{begin:0,end:r.text.length}},u=a("before"==s.sticky?c(s,-1):s.ch);if("rtl"==t.doc.direction||1==i.level){var f=1==i.level==e<0,d=c(s,f?1:-1);if(null!=d&&(f?d<=i.to&&d<=u.end:d>=i.from&&d>=u.begin)){var h=f?"before":"after";return new ge(s.line,d,h)}}var p=function(e,t,r){for(var n=function(e,t){return t?new ge(s.line,c(e,1),"before"):new ge(s.line,e,"after")};0<=e&&e<l.length;e+=t){var i=l[e],o=0<t==(1!=i.level),a=o?r.begin:c(r.end,-1);if(i.from<=a&&a<i.to)return n(a,o);if(a=o?i.from:c(i.to,-1),r.begin<=a&&a<r.end)return n(a,o)}},m=p(n+e,e,u);if(m)return m;var g=0<e?u.end:c(u.begin,-1);return null==g||0<e&&g==r.text.length||!(m=p(0<e?0:l.length-1,e,a(g)))?null:m}(n.cm,s,i,o):$o(s,i,o))){if(e||(r=i.line+o)<n.first||r>=n.first+n.size||(i=new ge(r,i.ch,i.sticky),!(s=le(n,r))))return!1;i=Go(a,n.cm,s,i.line,o)}else i=t;return!0}if("char"==e)l();else if("column"==e)l(!0);else if("word"==e||"group"==e)for(var c=null,u="group"==e,f=n.cm&&n.cm.getHelper(i,"wordChars"),d=!0;!(o<0)||l(!d);d=!1){var h=s.text.charAt(i.ch)||"\n",p=te(h,f)?"w":u&&"\n"==h?"n":!u||/\s/.test(h)?null:"p";if(!u||d||p||(p="s"),c&&c!=p){o<0&&(o=1,l(),i.sticky="after");break}if(p&&(c=p),0<o&&!l(!d))break}var m=Zi(n,i,t,r,!0);return ye(t,m)&&(m.hitSide=!0),m}function Pa(e,t,r,n){var i,o,a=e.doc,s=t.left;if("page"==n){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(l-.5*Zr(e.display),3);i=(0<r?t.bottom:t.top)+r*c}else"line"==n&&(i=0<r?t.bottom+3:t.top-3);for(;(o=Gr(e,s,i)).outside;){if(r<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*r}return o}var Ba=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new z,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Ra(e,t){var r=Ar(e,t.line);if(!r||r.hidden)return null;var n=le(e.doc,t.line),i=Mr(r,n,t.line),o=Ze(n,e.doc.direction),a="left";o&&(a=Qe(o,t.ch)%2?"right":"left");var s=Pr(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function Da(e,t){return t&&(e.bad=!0),e}function Fa(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return Da(e.clipPos(ge(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 za(o,t,r)}}function za(c,e,t){var r=c.text.firstChild,n=!1;if(!e||!E(r,e))return Da(ge(de(c.line),0),!0);if(e==r&&(n=!0,e=r.childNodes[t],t=0,!e)){var i=c.rest?X(c.rest):c.line;return Da(ge(de(i),i.text.length),n)}var o=3==e.nodeType?e:null,a=e;for(o||1!=e.childNodes.length||3!=e.firstChild.nodeType||(o=e.firstChild,t&&(t=o.nodeValue.length));a.parentNode!=r;)a=a.parentNode;var u=c.measure,f=u.maps;function s(e,t,r){for(var n=-1;n<(f?f.length:0);n++)for(var i=n<0?u.map:f[n],o=0;o<i.length;o+=3){var a=i[o+2];if(a==e||a==t){var s=de(n<0?c.line:c.rest[n]),l=i[o]+r;return(r<0||a!=e)&&(l=i[o+(r?1:0)]),ge(s,l)}}}var l=s(o,a,t);if(l)return Da(l,n);for(var d=a.nextSibling,h=o?o.nodeValue.length-t:0;d;d=d.nextSibling){if(l=s(d,d.firstChild,0))return Da(ge(l.line,l.ch-h),n);h+=d.textContent.length}for(var p=a.previousSibling,m=t;p;p=p.previousSibling){if(l=s(p,p.firstChild,-1))return Da(ge(l.line,l.ch+m),n);m+=p.textContent.length}}Ba.prototype.init=function(e){var t=this,a=this,s=a.cm,l=a.div=e.lineDiv;function r(e){if(!ot(s,e)){if(s.somethingSelected())La({lineWise:!1,text:s.getSelections()}),"cut"==e.type&&s.replaceSelection("",null,"cut");else{if(!s.options.lineWiseCopyCut)return;var t=Oa(s);La({lineWise:!0,text:t.text}),"cut"==e.type&&s.operation(function(){s.setSelections(t.ranges,0,j),s.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=_a.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var n=Na(),i=n.firstChild;s.display.lineSpace.insertBefore(n,s.display.lineSpace.firstChild),i.value=_a.text.join("\n");var o=document.activeElement;B(i),setTimeout(function(){s.display.lineSpace.removeChild(n),o.focus(),o==l&&a.showPrimarySelection()},50)}}Ea(l,s.options.spellcheck),tt(l,"paste",function(e){ot(s,e)||Ta(e,s)||k<=11&&setTimeout($n(s,function(){return t.updateFromDOM()}),20)}),tt(l,"compositionstart",function(e){t.composing={data:e.data,done:!1}}),tt(l,"compositionupdate",function(e){t.composing||(t.composing={data:e.data,done:!1})}),tt(l,"compositionend",function(e){t.composing&&(e.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)}),tt(l,"touchstart",function(){return a.forceCompositionEnd()}),tt(l,"input",function(){t.composing||t.readFromDOMSoon()}),tt(l,"copy",r),tt(l,"cut",r)},Ba.prototype.prepareSelection=function(){var e=cn(this.cm,!1);return e.focus=this.cm.state.focused,e},Ba.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Ba.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},Ba.prototype.showPrimarySelection=function(){var e=this.getSelection(),t=this.cm,r=t.doc.sel.primary(),n=r.from(),i=r.to();if(t.display.viewTo==t.display.viewFrom||n.line>=t.display.viewTo||i.line<t.display.viewFrom)e.removeAllRanges();else{var o=Fa(t,e.anchorNode,e.anchorOffset),a=Fa(t,e.focusNode,e.focusOffset);if(!o||o.bad||!a||a.bad||0!=ve(we(o,a),n)||0!=ve(xe(o,a),i)){var s=t.display.view,l=n.line>=t.display.viewFrom&&Ra(t,n)||{node:s[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&Ra(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){var d,h=e.rangeCount&&e.getRangeAt(0);try{d=_(l.node,l.offset,c.offset,c.node)}catch(e){}d&&(!m&&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):m&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},Ba.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)},Ba.prototype.showMultipleSelections=function(e){T(this.cm.display.cursorDiv,e.cursors),T(this.cm.display.selectionDiv,e.selection)},Ba.prototype.rememberSelection=function(){var e=this.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Ba.prototype.selectionInEditor=function(){var e=this.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return E(this.div,t)},Ba.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Ba.prototype.blur=function(){this.div.blur()},Ba.prototype.getField=function(){return this.div},Ba.prototype.supportsTouch=function(){return!0},Ba.prototype.receivedFocus=function(){var t=this;this.selectionInEditor()?this.pollSelection():Vn(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))})},Ba.prototype.selectionChanged=function(){var e=this.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Ba.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=this.getSelection(),t=this.cm;if(f&&a&&this.cm.options.gutters.length&&function(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}(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=Fa(t,e.anchorNode,e.anchorOffset),n=Fa(t,e.focusNode,e.focusOffset);r&&n&&Vn(t,function(){$i(t.doc,bi(r,n),j),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},Ba.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e,t,r,n=this.cm,i=n.display,o=n.doc.sel.primary(),a=o.from(),s=o.to();if(0==a.ch&&a.line>n.firstLine()&&(a=ge(a.line-1,le(n.doc,a.line-1).length)),s.ch==le(n.doc,s.line).text.length&&s.line<n.lastLine()&&(s=ge(s.line+1,0)),a.line<i.viewFrom||s.line>i.viewTo-1)return!1;r=a.line==i.viewFrom||0==(e=sn(n,a.line))?(t=de(i.view[0].line),i.view[0].node):(t=de(i.view[e].line),i.view[e-1].node.nextSibling);var l,c,u=sn(n,s.line);if(c=u==i.view.length-1?(l=i.viewTo-1,i.lineDiv.lastChild):(l=de(i.view[u+1].line)-1,i.view[u+1].node.previousSibling),!r)return!1;for(var f=n.doc.splitLines(function(l,e,t,c,u){var r="",f=!1,d=l.doc.lineSeparator(),h=!1;function p(){f&&(r+=d,h&&(r+=d),f=h=!1)}function m(e){e&&(p(),r+=e)}function g(e){if(1==e.nodeType){var t=e.getAttribute("cm-text");if(t)return void m(t);var r,n=e.getAttribute("cm-marker");if(n){var i=l.findMarks(ge(c,0),ge(u+1,0),(s=+n,function(e){return e.id==s}));return void(i.length&&(r=i[0].find(0))&&m(ce(l.doc,r.from,r.to).join(d)))}if("false"==e.getAttribute("contenteditable"))return;var o=/^(pre|div|p|li|table|br)$/i.test(e.nodeName);if(!/^br$/i.test(e.nodeName)&&0==e.textContent.length)return;o&&p();for(var a=0;a<e.childNodes.length;a++)g(e.childNodes[a]);/^(pre|p)$/i.test(e.nodeName)&&(h=!0),o&&(f=!0)}else 3==e.nodeType&&m(e.nodeValue.replace(/\u200b/g,"").replace(/\u00a0/g," "));var s}for(;g(e),e!=t;)e=e.nextSibling,h=!1;return r}(n,r,c,t,l)),d=ce(n.doc,ge(t,0),ge(l,le(n.doc,l).text.length));1<f.length&&1<d.length;)if(X(f)==X(d))f.pop(),d.pop(),l--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),t++}for(var h=0,p=0,m=f[0],g=d[0],v=Math.min(m.length,g.length);h<v&&m.charCodeAt(h)==g.charCodeAt(h);)++h;for(var y=X(f),b=X(d),x=Math.min(y.length-(1==f.length?h:0),b.length-(1==d.length?h:0));p<x&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)++p;if(1==f.length&&1==d.length&&t==a.line)for(;h&&h>a.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)h--,p++;f[f.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(h).replace(/\u200b+$/,"");var w=ge(t,h),k=ge(l,d.length?X(d).length-p:0);return 1<f.length||f[0]||ve(w,k)?(lo(n.doc,f,w,k,"+input"),!0):void 0},Ba.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ba.prototype.reset=function(){this.forceCompositionEnd()},Ba.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Ba.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))},Ba.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Vn(this.cm,function(){return Yn(e.cm)})},Ba.prototype.setUneditable=function(e){e.contentEditable="false"},Ba.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||$n(this.cm,Ma)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Ba.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ba.prototype.onContextMenu=function(){},Ba.prototype.resetPosition=function(){},Ba.prototype.needsContentAttribute=!0;var Wa,qa,Ha,ja=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new z,this.hasSelection=!1,this.composing=null};ja.prototype.init=function(t){var e=this,r=this,n=this.cm;this.createField(t);var i=this.textarea;function o(e){if(!ot(n,e)){if(n.somethingSelected())La({lineWise:!1,text:n.getSelections()});else{if(!n.options.lineWiseCopyCut)return;var t=Oa(n);La({lineWise:!0,text:t.text}),"cut"==e.type?n.setSelections(t.ranges,null,j):(r.prevInput="",i.value=t.text.join("\n"),B(i))}"cut"==e.type&&(n.state.cutIncoming=!0)}}t.wrapper.insertBefore(this.wrapper,t.wrapper.firstChild),u&&(i.style.width="0px"),tt(i,"input",function(){w&&9<=k&&e.hasSelection&&(e.hasSelection=null),r.poll()}),tt(i,"paste",function(e){ot(n,e)||Ta(e,n)||(n.state.pasteIncoming=!0,r.fastPoll())}),tt(i,"cut",o),tt(i,"copy",o),tt(t.scroller,"paste",function(e){xr(t,e)||ot(n,e)||(n.state.pasteIncoming=!0,r.focus())}),tt(t.lineSpace,"selectstart",function(e){xr(t,e)||ct(e)}),tt(i,"compositionstart",function(){var e=n.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:n.markText(e,n.getCursor("to"),{className:"CodeMirror-composing"})}}),tt(i,"compositionend",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},ja.prototype.createField=function(e){this.wrapper=Na(),this.textarea=this.wrapper.firstChild},ja.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=cn(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},ja.prototype.showSelection=function(e){var t=this.cm.display;T(t.cursorDiv,e.cursors),T(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},ja.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&B(this.textarea),w&&9<=k&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",w&&9<=k&&(this.hasSelection=null))}},ja.prototype.getField=function(){return this.textarea},ja.prototype.supportsTouch=function(){return!1},ja.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|