MailChimp for WordPress - Version 4.2

Version Description

Download this release

Release Info

Developer DvanKooten
Plugin Icon 128x128 MailChimp for WordPress
Version 4.2
Comparing to
See all releases

Code changes from version 4.1.15 to 4.2

CHANGELOG.md CHANGED
@@ -1,6 +1,26 @@
1
  Changelog
2
  =========
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  #### 4.1.15 - February 7, 2018
5
 
6
  **Fixes**
1
  Changelog
2
  =========
3
 
4
+ #### 4.2 - March 5, 2018
5
+
6
+ **Additions**
7
+
8
+ - Live form preview while editing form.
9
+
10
+ **Improvements**
11
+
12
+ - Improved [conditional fields logic](https://kb.mc4wp.com/conditional-fields-elements/).
13
+ - Debug log now includes request & response data.
14
+ - [Form JavaScript events](https://kb.mc4wp.com/javascript-form-events/) are fired in an isolated thread now, to prevent errors in event callbacks from breaking form functionality.
15
+ - Don't send empty field values to MailChimp when updating subscribers.
16
+ - Show interest grouping ID in list overview on settings page.
17
+
18
+ **Fixes**
19
+
20
+ - Ninja Forms export checkbox would always state "checked" when form contained a MailChimp sign-up checkbox.
21
+
22
+
23
+
24
  #### 4.1.15 - February 7, 2018
25
 
26
  **Fixes**
assets/css/admin-styles.css CHANGED
@@ -20,7 +20,6 @@
20
  before actual scrolling happens, thus preventing shaking and
21
  flickering artifacts. */
22
  /* Force content-box sizing for the elements where we expect it */
23
- /* IE7 hack to prevent it from returning funny offsetTops on the spans */
24
  /* Used to force a border model for a node */
25
  /* See issue #2901 */
26
  /* Help users use markselection to safely style text background */
@@ -28,41 +27,61 @@
28
  /* Add logo to page title */
29
  /** Core Customizations */ }
30
  #mc4wp-admin .row,
31
- .mc4wp-admin .row {
 
 
32
  margin-left: -20px;
33
  margin-right: -20px;
34
  float: none; }
35
  #mc4wp-admin .row .col,
36
- .mc4wp-admin .row .col {
 
 
37
  padding: 0 20px;
38
  float: left;
39
  -webkit-box-sizing: border-box;
40
  -moz-box-sizing: border-box;
41
  box-sizing: border-box; }
42
  #mc4wp-admin .row .col-1,
43
- .mc4wp-admin .row .col-1 {
 
 
44
  width: 16.666%; }
45
  #mc4wp-admin .row .col-2,
46
- .mc4wp-admin .row .col-2 {
 
 
47
  width: 33.333%; }
48
  #mc4wp-admin .row .col-3,
49
- .mc4wp-admin .row .col-3 {
 
 
50
  width: 50%; }
51
  #mc4wp-admin .row .col-4,
52
- .mc4wp-admin .row .col-4 {
 
 
53
  width: 66.666%; }
54
  #mc4wp-admin .row .col-5,
55
- .mc4wp-admin .row .col-5 {
 
 
56
  width: 83.333%; }
57
  #mc4wp-admin .row .col-6,
58
- .mc4wp-admin .row .col-6 {
 
 
59
  width: 100%; }
60
  #mc4wp-admin .row:before,
61
  #mc4wp-admin .row:after,
 
 
62
  #mc4wp-admin .clearfix:before,
63
  #mc4wp-admin .clearfix:after,
64
  .mc4wp-admin .row:before,
65
  .mc4wp-admin .row:after,
 
 
66
  .mc4wp-admin .clearfix:before,
67
  .mc4wp-admin .clearfix:after {
68
  content: " ";
@@ -70,13 +89,17 @@
70
  display: table;
71
  /* 2 */ }
72
  #mc4wp-admin .row:after,
 
73
  #mc4wp-admin .clearfix:after,
74
  .mc4wp-admin .row:after,
 
75
  .mc4wp-admin .clearfix:after {
76
  clear: both; }
77
  @media (max-width: 1200px) {
78
  #mc4wp-admin .row .col,
79
- .mc4wp-admin .row .col {
 
 
80
  width: 100%;
81
  float: none;
82
  margin: 10px 0; } }
@@ -232,7 +255,8 @@
232
  /* Set height, width, borders, and global font properties here */
233
  font-family: monospace;
234
  height: 300px;
235
- color: black; }
 
236
  #mc4wp-admin .CodeMirror-lines,
237
  .mc4wp-admin .CodeMirror-lines {
238
  padding: 4px 0;
@@ -275,11 +299,17 @@
275
  #mc4wp-admin .cm-fat-cursor .CodeMirror-cursor,
276
  .mc4wp-admin .cm-fat-cursor .CodeMirror-cursor {
277
  width: auto;
278
- border: 0;
279
  background: #7e7; }
280
  #mc4wp-admin .cm-fat-cursor div.CodeMirror-cursors,
281
  .mc4wp-admin .cm-fat-cursor div.CodeMirror-cursors {
282
  z-index: 1; }
 
 
 
 
 
 
283
  #mc4wp-admin .cm-animate-fat-cursor,
284
  .mc4wp-admin .cm-animate-fat-cursor {
285
  width: auto;
@@ -310,9 +340,19 @@
310
  .mc4wp-admin .cm-tab {
311
  display: inline-block;
312
  text-decoration: inherit; }
 
 
 
 
 
 
 
 
313
  #mc4wp-admin .CodeMirror-ruler,
314
  .mc4wp-admin .CodeMirror-ruler {
315
  border-left: 1px solid #ccc;
 
 
316
  position: absolute; }
317
  #mc4wp-admin .cm-s-default .cm-header,
318
  .mc4wp-admin .cm-s-default .cm-header {
@@ -354,8 +394,9 @@
354
  #mc4wp-admin .cm-s-default .cm-variable-2,
355
  .mc4wp-admin .cm-s-default .cm-variable-2 {
356
  color: #05a; }
357
- #mc4wp-admin .cm-s-default .cm-variable-3,
358
- .mc4wp-admin .cm-s-default .cm-variable-3 {
 
359
  color: #085; }
360
  #mc4wp-admin .cm-s-default .cm-comment,
361
  .mc4wp-admin .cm-s-default .cm-comment {
@@ -401,10 +442,10 @@
401
  border-bottom: 2px solid; }
402
  #mc4wp-admin div.CodeMirror span.CodeMirror-matchingbracket,
403
  .mc4wp-admin div.CodeMirror span.CodeMirror-matchingbracket {
404
- color: #0f0; }
405
  #mc4wp-admin div.CodeMirror span.CodeMirror-nonmatchingbracket,
406
  .mc4wp-admin div.CodeMirror span.CodeMirror-nonmatchingbracket {
407
- color: #f22; }
408
  #mc4wp-admin .CodeMirror-matchingtag,
409
  .mc4wp-admin .CodeMirror-matchingtag {
410
  background: rgba(255, 150, 0, 0.3); }
@@ -466,6 +507,7 @@
466
  position: absolute;
467
  left: 0;
468
  top: 0;
 
469
  z-index: 3; }
470
  #mc4wp-admin .CodeMirror-gutter,
471
  .mc4wp-admin .CodeMirror-gutter {
@@ -473,10 +515,7 @@
473
  height: 100%;
474
  display: inline-block;
475
  vertical-align: top;
476
- margin-bottom: -30px;
477
- /* Hack to make IE7 behave */
478
- *zoom: 1;
479
- *display: inline; }
480
  #mc4wp-admin .CodeMirror-gutter-wrapper,
481
  .mc4wp-admin .CodeMirror-gutter-wrapper {
482
  position: absolute;
@@ -494,11 +533,12 @@
494
  position: absolute;
495
  cursor: default;
496
  z-index: 4; }
497
- #mc4wp-admin .CodeMirror-gutter-wrapper,
498
- .mc4wp-admin .CodeMirror-gutter-wrapper {
499
- -webkit-user-select: none;
500
- -moz-user-select: none;
501
- user-select: none; }
 
502
  #mc4wp-admin .CodeMirror-lines,
503
  .mc4wp-admin .CodeMirror-lines {
504
  cursor: text;
@@ -522,7 +562,9 @@
522
  z-index: 2;
523
  position: relative;
524
  overflow: visible;
525
- -webkit-tap-highlight-color: transparent; }
 
 
526
  #mc4wp-admin .CodeMirror-wrap pre,
527
  .mc4wp-admin .CodeMirror-wrap pre {
528
  word-wrap: break-word;
@@ -540,7 +582,11 @@
540
  .mc4wp-admin .CodeMirror-linewidget {
541
  position: relative;
542
  z-index: 2;
543
- overflow: auto; }
 
 
 
 
544
  #mc4wp-admin .CodeMirror-code,
545
  .mc4wp-admin .CodeMirror-code {
546
  outline: none; }
@@ -565,7 +611,8 @@
565
  visibility: hidden; }
566
  #mc4wp-admin .CodeMirror-cursor,
567
  .mc4wp-admin .CodeMirror-cursor {
568
- position: absolute; }
 
569
  #mc4wp-admin .CodeMirror-measure pre,
570
  .mc4wp-admin .CodeMirror-measure pre {
571
  position: static; }
@@ -601,11 +648,8 @@
601
  background: #d7d4f0; }
602
  #mc4wp-admin .cm-searching,
603
  .mc4wp-admin .cm-searching {
604
- background: #ffa;
605
- background: rgba(255, 255, 0, 0.4); }
606
- #mc4wp-admin .CodeMirror span,
607
- .mc4wp-admin .CodeMirror span {
608
- *vertical-align: text-bottom; }
609
  #mc4wp-admin .cm-force-border,
610
  .mc4wp-admin .cm-force-border {
611
  padding-right: .1px; }
@@ -625,12 +669,32 @@
625
  #mc4wp-admin .CodeMirror,
626
  .mc4wp-admin .CodeMirror {
627
  border: 1px solid #ccc;
628
- padding: 10px;
629
  min-height: 500px;
630
- font-weight: normal; }
 
631
  #mc4wp-admin .CodeMirror-empty,
632
  .mc4wp-admin .CodeMirror-empty {
633
  color: #999; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
634
  #mc4wp-admin .field-wizard,
635
  .mc4wp-admin .field-wizard {
636
  /* table */
20
  before actual scrolling happens, thus preventing shaking and
21
  flickering artifacts. */
22
  /* Force content-box sizing for the elements where we expect it */
 
23
  /* Used to force a border model for a node */
24
  /* See issue #2901 */
25
  /* Help users use markselection to safely style text background */
27
  /* Add logo to page title */
28
  /** Core Customizations */ }
29
  #mc4wp-admin .row,
30
+ #mc4wp-admin .mc4wp-row,
31
+ .mc4wp-admin .row,
32
+ .mc4wp-admin .mc4wp-row {
33
  margin-left: -20px;
34
  margin-right: -20px;
35
  float: none; }
36
  #mc4wp-admin .row .col,
37
+ #mc4wp-admin .mc4wp-row .mc4wp-col,
38
+ .mc4wp-admin .row .col,
39
+ .mc4wp-admin .mc4wp-row .mc4wp-col {
40
  padding: 0 20px;
41
  float: left;
42
  -webkit-box-sizing: border-box;
43
  -moz-box-sizing: border-box;
44
  box-sizing: border-box; }
45
  #mc4wp-admin .row .col-1,
46
+ #mc4wp-admin .mc4wp-row .mc4wp-col-1,
47
+ .mc4wp-admin .row .col-1,
48
+ .mc4wp-admin .mc4wp-row .mc4wp-col-1 {
49
  width: 16.666%; }
50
  #mc4wp-admin .row .col-2,
51
+ #mc4wp-admin .mc4wp-row .mc4wp-col-2,
52
+ .mc4wp-admin .row .col-2,
53
+ .mc4wp-admin .mc4wp-row .mc4wp-col-2 {
54
  width: 33.333%; }
55
  #mc4wp-admin .row .col-3,
56
+ #mc4wp-admin .mc4wp-row .mc4wp-col-3,
57
+ .mc4wp-admin .row .col-3,
58
+ .mc4wp-admin .mc4wp-row .mc4wp-col-3 {
59
  width: 50%; }
60
  #mc4wp-admin .row .col-4,
61
+ #mc4wp-admin .mc4wp-row .mc4wp-col-4,
62
+ .mc4wp-admin .row .col-4,
63
+ .mc4wp-admin .mc4wp-row .mc4wp-col-4 {
64
  width: 66.666%; }
65
  #mc4wp-admin .row .col-5,
66
+ #mc4wp-admin .mc4wp-row .mc4wp-col-5,
67
+ .mc4wp-admin .row .col-5,
68
+ .mc4wp-admin .mc4wp-row .mc4wp-col-5 {
69
  width: 83.333%; }
70
  #mc4wp-admin .row .col-6,
71
+ #mc4wp-admin .mc4wp-row .mc4wp-col-6,
72
+ .mc4wp-admin .row .col-6,
73
+ .mc4wp-admin .mc4wp-row .mc4wp-col-6 {
74
  width: 100%; }
75
  #mc4wp-admin .row:before,
76
  #mc4wp-admin .row:after,
77
+ #mc4wp-admin .mc4wp-row:before,
78
+ #mc4wp-admin .mc4wp-row:after,
79
  #mc4wp-admin .clearfix:before,
80
  #mc4wp-admin .clearfix:after,
81
  .mc4wp-admin .row:before,
82
  .mc4wp-admin .row:after,
83
+ .mc4wp-admin .mc4wp-row:before,
84
+ .mc4wp-admin .mc4wp-row:after,
85
  .mc4wp-admin .clearfix:before,
86
  .mc4wp-admin .clearfix:after {
87
  content: " ";
89
  display: table;
90
  /* 2 */ }
91
  #mc4wp-admin .row:after,
92
+ #mc4wp-admin .mc4wp-row:after,
93
  #mc4wp-admin .clearfix:after,
94
  .mc4wp-admin .row:after,
95
+ .mc4wp-admin .mc4wp-row:after,
96
  .mc4wp-admin .clearfix:after {
97
  clear: both; }
98
  @media (max-width: 1200px) {
99
  #mc4wp-admin .row .col,
100
+ #mc4wp-admin .mc4wp-row .mc4wp-col,
101
+ .mc4wp-admin .row .col,
102
+ .mc4wp-admin .mc4wp-row .mc4wp-col {
103
  width: 100%;
104
  float: none;
105
  margin: 10px 0; } }
255
  /* Set height, width, borders, and global font properties here */
256
  font-family: monospace;
257
  height: 300px;
258
+ color: black;
259
+ direction: ltr; }
260
  #mc4wp-admin .CodeMirror-lines,
261
  .mc4wp-admin .CodeMirror-lines {
262
  padding: 4px 0;
299
  #mc4wp-admin .cm-fat-cursor .CodeMirror-cursor,
300
  .mc4wp-admin .cm-fat-cursor .CodeMirror-cursor {
301
  width: auto;
302
+ border: 0 !important;
303
  background: #7e7; }
304
  #mc4wp-admin .cm-fat-cursor div.CodeMirror-cursors,
305
  .mc4wp-admin .cm-fat-cursor div.CodeMirror-cursors {
306
  z-index: 1; }
307
+ #mc4wp-admin .cm-fat-cursor-mark,
308
+ .mc4wp-admin .cm-fat-cursor-mark {
309
+ background-color: rgba(20, 255, 20, 0.5);
310
+ -webkit-animation: blink 1.06s steps(1) infinite;
311
+ -moz-animation: blink 1.06s steps(1) infinite;
312
+ animation: blink 1.06s steps(1) infinite; }
313
  #mc4wp-admin .cm-animate-fat-cursor,
314
  .mc4wp-admin .cm-animate-fat-cursor {
315
  width: auto;
340
  .mc4wp-admin .cm-tab {
341
  display: inline-block;
342
  text-decoration: inherit; }
343
+ #mc4wp-admin .CodeMirror-rulers,
344
+ .mc4wp-admin .CodeMirror-rulers {
345
+ position: absolute;
346
+ left: 0;
347
+ right: 0;
348
+ top: -50px;
349
+ bottom: -20px;
350
+ overflow: hidden; }
351
  #mc4wp-admin .CodeMirror-ruler,
352
  .mc4wp-admin .CodeMirror-ruler {
353
  border-left: 1px solid #ccc;
354
+ top: 0;
355
+ bottom: 0;
356
  position: absolute; }
357
  #mc4wp-admin .cm-s-default .cm-header,
358
  .mc4wp-admin .cm-s-default .cm-header {
394
  #mc4wp-admin .cm-s-default .cm-variable-2,
395
  .mc4wp-admin .cm-s-default .cm-variable-2 {
396
  color: #05a; }
397
+ #mc4wp-admin .cm-s-default .cm-variable-3, #mc4wp-admin .cm-s-default .cm-type,
398
+ .mc4wp-admin .cm-s-default .cm-variable-3,
399
+ .mc4wp-admin .cm-s-default .cm-type {
400
  color: #085; }
401
  #mc4wp-admin .cm-s-default .cm-comment,
402
  .mc4wp-admin .cm-s-default .cm-comment {
442
  border-bottom: 2px solid; }
443
  #mc4wp-admin div.CodeMirror span.CodeMirror-matchingbracket,
444
  .mc4wp-admin div.CodeMirror span.CodeMirror-matchingbracket {
445
+ color: #0b0; }
446
  #mc4wp-admin div.CodeMirror span.CodeMirror-nonmatchingbracket,
447
  .mc4wp-admin div.CodeMirror span.CodeMirror-nonmatchingbracket {
448
+ color: #a22; }
449
  #mc4wp-admin .CodeMirror-matchingtag,
450
  .mc4wp-admin .CodeMirror-matchingtag {
451
  background: rgba(255, 150, 0, 0.3); }
507
  position: absolute;
508
  left: 0;
509
  top: 0;
510
+ min-height: 100%;
511
  z-index: 3; }
512
  #mc4wp-admin .CodeMirror-gutter,
513
  .mc4wp-admin .CodeMirror-gutter {
515
  height: 100%;
516
  display: inline-block;
517
  vertical-align: top;
518
+ margin-bottom: -30px; }
 
 
 
519
  #mc4wp-admin .CodeMirror-gutter-wrapper,
520
  .mc4wp-admin .CodeMirror-gutter-wrapper {
521
  position: absolute;
533
  position: absolute;
534
  cursor: default;
535
  z-index: 4; }
536
+ #mc4wp-admin .CodeMirror-gutter-wrapper ::selection,
537
+ .mc4wp-admin .CodeMirror-gutter-wrapper ::selection {
538
+ background-color: transparent; }
539
+ #mc4wp-admin .CodeMirror-gutter-wrapper ::-moz-selection,
540
+ .mc4wp-admin .CodeMirror-gutter-wrapper ::-moz-selection {
541
+ background-color: transparent; }
542
  #mc4wp-admin .CodeMirror-lines,
543
  .mc4wp-admin .CodeMirror-lines {
544
  cursor: text;
562
  z-index: 2;
563
  position: relative;
564
  overflow: visible;
565
+ -webkit-tap-highlight-color: transparent;
566
+ -webkit-font-variant-ligatures: contextual;
567
+ font-variant-ligatures: contextual; }
568
  #mc4wp-admin .CodeMirror-wrap pre,
569
  .mc4wp-admin .CodeMirror-wrap pre {
570
  word-wrap: break-word;
582
  .mc4wp-admin .CodeMirror-linewidget {
583
  position: relative;
584
  z-index: 2;
585
+ padding: 0.1px;
586
+ /* Force widget margins to stay inside of the container */ }
587
+ #mc4wp-admin .CodeMirror-rtl pre,
588
+ .mc4wp-admin .CodeMirror-rtl pre {
589
+ direction: rtl; }
590
  #mc4wp-admin .CodeMirror-code,
591
  .mc4wp-admin .CodeMirror-code {
592
  outline: none; }
611
  visibility: hidden; }
612
  #mc4wp-admin .CodeMirror-cursor,
613
  .mc4wp-admin .CodeMirror-cursor {
614
+ position: absolute;
615
+ pointer-events: none; }
616
  #mc4wp-admin .CodeMirror-measure pre,
617
  .mc4wp-admin .CodeMirror-measure pre {
618
  position: static; }
648
  background: #d7d4f0; }
649
  #mc4wp-admin .cm-searching,
650
  .mc4wp-admin .cm-searching {
651
+ background-color: #ffa;
652
+ background-color: rgba(255, 255, 0, 0.4); }
 
 
 
653
  #mc4wp-admin .cm-force-border,
654
  .mc4wp-admin .cm-force-border {
655
  padding-right: .1px; }
669
  #mc4wp-admin .CodeMirror,
670
  .mc4wp-admin .CodeMirror {
671
  border: 1px solid #ccc;
 
672
  min-height: 500px;
673
+ font-weight: normal;
674
+ padding: 0 4px; }
675
  #mc4wp-admin .CodeMirror-empty,
676
  .mc4wp-admin .CodeMirror-empty {
677
  color: #999; }
678
+ #mc4wp-admin #mc4wp-form-preview,
679
+ .mc4wp-admin #mc4wp-form-preview {
680
+ border: 1px solid #ddd;
681
+ height: 500px;
682
+ /* codemirror + padding */
683
+ width: 100%;
684
+ border-left-width: 0;
685
+ border-right-width: 2px;
686
+ /* for scrollbar */ }
687
+ @media (min-width: 1186px) {
688
+ #mc4wp-admin .mc4wp-form-editor-wrap,
689
+ .mc4wp-admin .mc4wp-form-editor-wrap {
690
+ padding-right: 0 !important; }
691
+ #mc4wp-admin .mc4wp-form-preview-wrap,
692
+ .mc4wp-admin .mc4wp-form-preview-wrap {
693
+ padding-left: 0 !important; } }
694
+ @media (max-width: 1186px) {
695
+ #mc4wp-admin #mc4wp-form-preview,
696
+ .mc4wp-admin #mc4wp-form-preview {
697
+ border-left-width: 1px; } }
698
  #mc4wp-admin .field-wizard,
699
  .mc4wp-admin .field-wizard {
700
  /* table */
assets/css/admin-styles.min.css CHANGED
@@ -1 +1 @@
1
- #mc4wp-admin .cm-em,#mc4wp-admin .help,.mc4wp-admin .cm-em,.mc4wp-admin .help{font-style:italic}#mc4wp-admin .row,.mc4wp-admin .row{margin-left:-20px;margin-right:-20px;float:none}#mc4wp-admin .row .col,.mc4wp-admin .row .col{padding:0 20px;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#mc4wp-admin .row .col-1,.mc4wp-admin .row .col-1{width:16.666%}#mc4wp-admin .row .col-2,.mc4wp-admin .row .col-2{width:33.333%}#mc4wp-admin .row .col-3,.mc4wp-admin .row .col-3{width:50%}#mc4wp-admin .row .col-4,.mc4wp-admin .row .col-4{width:66.666%}#mc4wp-admin .row .col-5,.mc4wp-admin .row .col-5{width:83.333%}#mc4wp-admin .row .col-6,.mc4wp-admin .row .col-6{width:100%}#mc4wp-admin .clearfix:after,#mc4wp-admin .clearfix:before,#mc4wp-admin .row:after,#mc4wp-admin .row:before,.mc4wp-admin .clearfix:after,.mc4wp-admin .clearfix:before,.mc4wp-admin .row:after,.mc4wp-admin .row:before{content:" ";display:table}#mc4wp-admin .clearfix:after,#mc4wp-admin .row:after,.mc4wp-admin .clearfix:after,.mc4wp-admin .row:after{clear:both}@media (max-width:1200px){#mc4wp-admin .row .col,.mc4wp-admin .row .col{width:100%;float:none;margin:10px 0}}#mc4wp-admin .status,.mc4wp-admin .status{display:inline-block;margin-left:1em;padding:3px 6px;color:#fff;font-size:12px;font-weight:700}#mc4wp-admin .status.positive,.mc4wp-admin .status.positive{background-color:#32cd32}#mc4wp-admin .status.negative,.mc4wp-admin .status.negative{background-color:red}#mc4wp-admin .status.neutral,.mc4wp-admin .status.neutral{background:gray}#mc4wp-admin .valigntop,.mc4wp-admin .valigntop{vertical-align:top!important}#mc4wp-admin .big-margin,.mc4wp-admin .big-margin{margin-top:60px;margin-bottom:60px}#mc4wp-admin .medium-margin,.mc4wp-admin .medium-margin{margin-top:40px;margin-bottom:40px}#mc4wp-admin .small-margin,.mc4wp-admin .small-margin{margin-top:20px;margin-bottom:20px}#mc4wp-admin .tiny-margin,.mc4wp-admin .tiny-margin{margin-top:10px;margin-bottom:10px}#mc4wp-admin .hover-activated,.mc4wp-admin .hover-activated{opacity:.5}#mc4wp-admin .hover-activated:hover,.mc4wp-admin .hover-activated:hover{cursor:pointer;opacity:1}#mc4wp-admin .help-text,.mc4wp-admin .help-text{font-size:14px}#mc4wp-admin .help-text p,.mc4wp-admin .help-text p{margin:10px 0;font-size:14px}#mc4wp-admin .help-text ul,.mc4wp-admin .help-text ul{list-style:square;margin-top:15px;padding-left:40px}#mc4wp-admin .muted,.mc4wp-admin .muted{color:#aaa}#mc4wp-admin .red,.mc4wp-admin .red{color:red}#mc4wp-admin .green,.mc4wp-admin .green{color:#32cd32}#mc4wp-admin .mc4wp-notice,.mc4wp-admin .mc4wp-notice{padding:6px 12px;color:#31708f;background:#d9edf7;border:1px solid #bce8f1;margin:1em 0!important}#mc4wp-admin .mc4wp-is-dismissible,.mc4wp-admin .mc4wp-is-dismissible{padding-right:38px;position:relative}#mc4wp-admin .column-ID,.mc4wp-admin .column-ID{width:10%}#mc4wp-admin .block,.mc4wp-admin .block{display:block}#mc4wp-admin .code-sample,.mc4wp-admin .code-sample{font-family:Consolas,Monaco,Lucida Console,monospace;font-size:12px;background:#fff}#mc4wp-admin .breadcrumbs,.mc4wp-admin .breadcrumbs{border-bottom:1px solid #ccc;padding-bottom:1em}#mc4wp-admin .mc4wp-loader,.mc4wp-admin .mc4wp-loader{position:relative;display:inline-block;text-indent:-9999999px;border:3px solid rgba(0,0,0,.2);border-left-color:#000;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.1s infinite linear;animation:load8 1.1s infinite linear;overflow:hidden;border-radius:50%;vertical-align:middle;width:12px;height:12px;margin-bottom:3px;margin-left:3px;margin-right:3px}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#mc4wp-admin .tab,.mc4wp-admin .tab{display:none;background:inherit;border:none;font-weight:initial}#mc4wp-admin .tab.tab-active,.mc4wp-admin .tab.tab-active{display:block}#mc4wp-admin .tab h2,.mc4wp-admin .tab h2{margin-top:20px}#mc4wp-admin .CodeMirror,.mc4wp-admin .CodeMirror{font-family:monospace;height:300px;color:#000}#mc4wp-admin .CodeMirror-lines,.mc4wp-admin .CodeMirror-lines{padding:4px 0}#mc4wp-admin .CodeMirror pre,.mc4wp-admin .CodeMirror pre{padding:0 4px}#mc4wp-admin .CodeMirror-gutter-filler,#mc4wp-admin .CodeMirror-scrollbar-filler,.mc4wp-admin .CodeMirror-gutter-filler,.mc4wp-admin .CodeMirror-scrollbar-filler{background-color:#fff}#mc4wp-admin .CodeMirror-gutters,.mc4wp-admin .CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}#mc4wp-admin .CodeMirror-linenumber,.mc4wp-admin .CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}#mc4wp-admin .CodeMirror-guttermarker,.mc4wp-admin .CodeMirror-guttermarker{color:#000}#mc4wp-admin .CodeMirror-guttermarker-subtle,.mc4wp-admin .CodeMirror-guttermarker-subtle{color:#999}#mc4wp-admin .CodeMirror-cursor,.mc4wp-admin .CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}#mc4wp-admin .CodeMirror div.CodeMirror-secondarycursor,.mc4wp-admin .CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}#mc4wp-admin .cm-fat-cursor .CodeMirror-cursor,.mc4wp-admin .cm-fat-cursor .CodeMirror-cursor{width:auto;border:0;background:#7e7}#mc4wp-admin .cm-fat-cursor div.CodeMirror-cursors,.mc4wp-admin .cm-fat-cursor div.CodeMirror-cursors{z-index:1}#mc4wp-admin .cm-animate-fat-cursor,.mc4wp-admin .cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}#mc4wp-admin .field-wizard td.stretch,.mc4wp-admin .field-wizard td.stretch,.overlay{width:100%}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}#mc4wp-admin .cm-tab,.mc4wp-admin .cm-tab{display:inline-block;text-decoration:inherit}#mc4wp-admin .CodeMirror-ruler,.mc4wp-admin .CodeMirror-ruler{border-left:1px solid #ccc;position:absolute}#mc4wp-admin .cm-s-default .cm-header,.mc4wp-admin .cm-s-default .cm-header{color:#00f}#mc4wp-admin .cm-s-default .cm-quote,.mc4wp-admin .cm-s-default .cm-quote{color:#090}#mc4wp-admin .cm-negative,.mc4wp-admin .cm-negative{color:#d44}#mc4wp-admin .cm-positive,.mc4wp-admin .cm-positive{color:#292}#mc4wp-admin .cm-header,#mc4wp-admin .cm-strong,.mc4wp-admin .cm-header,.mc4wp-admin .cm-strong{font-weight:700}#mc4wp-admin .cm-link,.mc4wp-admin .cm-link{text-decoration:underline}#mc4wp-admin .cm-strikethrough,.mc4wp-admin .cm-strikethrough{text-decoration:line-through}#mc4wp-admin .cm-s-default .cm-keyword,.mc4wp-admin .cm-s-default .cm-keyword{color:#708}#mc4wp-admin .cm-s-default .cm-atom,.mc4wp-admin .cm-s-default .cm-atom{color:#219}#mc4wp-admin .cm-s-default .cm-number,.mc4wp-admin .cm-s-default .cm-number{color:#164}#mc4wp-admin .cm-s-default .cm-def,.mc4wp-admin .cm-s-default .cm-def{color:#00f}#mc4wp-admin .cm-s-default .cm-variable-2,.mc4wp-admin .cm-s-default .cm-variable-2{color:#05a}#mc4wp-admin .cm-s-default .cm-variable-3,.mc4wp-admin .cm-s-default .cm-variable-3{color:#085}#mc4wp-admin .cm-s-default .cm-comment,.mc4wp-admin .cm-s-default .cm-comment{color:#a50}#mc4wp-admin .cm-s-default .cm-string,.mc4wp-admin .cm-s-default .cm-string{color:#a11}#mc4wp-admin .cm-s-default .cm-string-2,.mc4wp-admin .cm-s-default .cm-string-2{color:#f50}#mc4wp-admin .cm-s-default .cm-meta,#mc4wp-admin .cm-s-default .cm-qualifier,.mc4wp-admin .cm-s-default .cm-meta,.mc4wp-admin .cm-s-default .cm-qualifier{color:#555}#mc4wp-admin .cm-s-default .cm-builtin,.mc4wp-admin .cm-s-default .cm-builtin{color:#30a}#mc4wp-admin .cm-s-default .cm-bracket,.mc4wp-admin .cm-s-default .cm-bracket{color:#997}#mc4wp-admin .cm-s-default .cm-tag,.mc4wp-admin .cm-s-default .cm-tag{color:#170}#mc4wp-admin .cm-s-default .cm-attribute,.mc4wp-admin .cm-s-default .cm-attribute{color:#00c}#mc4wp-admin .cm-s-default .cm-hr,.mc4wp-admin .cm-s-default .cm-hr{color:#999}#mc4wp-admin .cm-s-default .cm-link,.mc4wp-admin .cm-s-default .cm-link{color:#00c}#mc4wp-admin .cm-invalidchar,#mc4wp-admin .cm-s-default .cm-error,.mc4wp-admin .cm-invalidchar,.mc4wp-admin .cm-s-default .cm-error{color:red}#mc4wp-admin .CodeMirror-composing,.mc4wp-admin .CodeMirror-composing{border-bottom:2px solid}#mc4wp-admin div.CodeMirror span.CodeMirror-matchingbracket,.mc4wp-admin div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}#mc4wp-admin div.CodeMirror span.CodeMirror-nonmatchingbracket,.mc4wp-admin div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}#mc4wp-admin .CodeMirror-matchingtag,.mc4wp-admin .CodeMirror-matchingtag{background:rgba(255,150,0,.3)}#mc4wp-admin .CodeMirror-activeline-background,.mc4wp-admin .CodeMirror-activeline-background{background:#e8f2ff}#mc4wp-admin .CodeMirror,.mc4wp-admin .CodeMirror{position:relative;overflow:hidden;background:#fff}#mc4wp-admin .CodeMirror-scroll,.mc4wp-admin .CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}#mc4wp-admin .CodeMirror-sizer,.mc4wp-admin .CodeMirror-sizer{position:relative;border-right:30px solid transparent}#mc4wp-admin .CodeMirror-gutter-filler,#mc4wp-admin .CodeMirror-hscrollbar,#mc4wp-admin .CodeMirror-scrollbar-filler,#mc4wp-admin .CodeMirror-vscrollbar,.mc4wp-admin .CodeMirror-gutter-filler,.mc4wp-admin .CodeMirror-hscrollbar,.mc4wp-admin .CodeMirror-scrollbar-filler,.mc4wp-admin .CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}#mc4wp-admin .CodeMirror-vscrollbar,.mc4wp-admin .CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}#mc4wp-admin .CodeMirror-hscrollbar,.mc4wp-admin .CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}#mc4wp-admin .CodeMirror-scrollbar-filler,.mc4wp-admin .CodeMirror-scrollbar-filler{right:0;bottom:0}#mc4wp-admin .CodeMirror-gutter-filler,.mc4wp-admin .CodeMirror-gutter-filler{left:0;bottom:0}#mc4wp-admin .CodeMirror-gutters,.mc4wp-admin .CodeMirror-gutters{position:absolute;left:0;top:0;z-index:3}#mc4wp-admin .CodeMirror-gutter,.mc4wp-admin .CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}#mc4wp-admin .field-wizard .dashicons,#mc4wp-admin .field-wizard td,#mc4wp-admin .field-wizard tr,.mc4wp-admin .field-wizard .dashicons,.mc4wp-admin .field-wizard td,.mc4wp-admin .field-wizard tr{vertical-align:middle}#mc4wp-admin .CodeMirror-gutter-wrapper,.mc4wp-admin .CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}#mc4wp-admin .CodeMirror-gutter-background,.mc4wp-admin .CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}#mc4wp-admin .CodeMirror-gutter-elt,.mc4wp-admin .CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}#mc4wp-admin .CodeMirror-lines,.mc4wp-admin .CodeMirror-lines{cursor:text;min-height:1px}#mc4wp-admin .CodeMirror pre,.mc4wp-admin .CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;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}#mc4wp-admin .CodeMirror-wrap pre,.mc4wp-admin .CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}#mc4wp-admin .CodeMirror-linebackground,.mc4wp-admin .CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}#mc4wp-admin .CodeMirror-linewidget,.mc4wp-admin .CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}#mc4wp-admin .CodeMirror-code,.mc4wp-admin .CodeMirror-code{outline:0}#mc4wp-admin .CodeMirror-gutter,#mc4wp-admin .CodeMirror-gutters,#mc4wp-admin .CodeMirror-linenumber,#mc4wp-admin .CodeMirror-scroll,#mc4wp-admin .CodeMirror-sizer,.mc4wp-admin .CodeMirror-gutter,.mc4wp-admin .CodeMirror-gutters,.mc4wp-admin .CodeMirror-linenumber,.mc4wp-admin .CodeMirror-scroll,.mc4wp-admin .CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}#mc4wp-admin .CodeMirror-measure,.mc4wp-admin .CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}#mc4wp-admin .CodeMirror-cursor,.mc4wp-admin .CodeMirror-cursor{position:absolute}#mc4wp-admin .CodeMirror-measure pre,.mc4wp-admin .CodeMirror-measure pre{position:static}#mc4wp-admin div.CodeMirror-cursors,.mc4wp-admin div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}#mc4wp-admin .CodeMirror-focused div.CodeMirror-cursors,#mc4wp-admin div.CodeMirror-dragcursors,.mc4wp-admin .CodeMirror-focused div.CodeMirror-cursors,.mc4wp-admin div.CodeMirror-dragcursors{visibility:visible}#mc4wp-admin .CodeMirror-selected,.mc4wp-admin .CodeMirror-selected{background:#d9d9d9}#mc4wp-admin .CodeMirror-focused .CodeMirror-selected,.mc4wp-admin .CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}#mc4wp-admin .CodeMirror-crosshair,.mc4wp-admin .CodeMirror-crosshair{cursor:crosshair}#mc4wp-admin .CodeMirror-line::selection,#mc4wp-admin .CodeMirror-line>span::selection,#mc4wp-admin .CodeMirror-line>span>span::selection,.mc4wp-admin .CodeMirror-line::selection,.mc4wp-admin .CodeMirror-line>span::selection,.mc4wp-admin .CodeMirror-line>span>span::selection{background:#d7d4f0}#mc4wp-admin .CodeMirror-line::-moz-selection,#mc4wp-admin .CodeMirror-line>span::-moz-selection,#mc4wp-admin .CodeMirror-line>span>span::-moz-selection,.mc4wp-admin .CodeMirror-line::-moz-selection,.mc4wp-admin .CodeMirror-line>span::-moz-selection,.mc4wp-admin .CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}#mc4wp-admin .cm-searching,.mc4wp-admin .cm-searching{background:#ffa;background:rgba(255,255,0,.4)}#mc4wp-admin .cm-force-border,.mc4wp-admin .cm-force-border{padding-right:.1px}@media print{#mc4wp-admin .CodeMirror div.CodeMirror-cursors,.mc4wp-admin .CodeMirror div.CodeMirror-cursors{visibility:hidden}}#mc4wp-admin .cm-tab-wrap-hack:after,.mc4wp-admin .cm-tab-wrap-hack:after{content:''}#mc4wp-admin span.CodeMirror-selectedtext,.mc4wp-admin span.CodeMirror-selectedtext{background:0 0}#mc4wp-admin .CodeMirror,.mc4wp-admin .CodeMirror{border:1px solid #ccc;padding:10px;min-height:500px;font-weight:400}#mc4wp-admin .CodeMirror-empty,.mc4wp-admin .CodeMirror-empty{color:#999}#mc4wp-admin .field-wizard h3,.mc4wp-admin .field-wizard h3{margin-top:0;padding-bottom:12px;border-bottom:1px solid #eee;margin-bottom:12px}#mc4wp-admin .field-wizard code,.mc4wp-admin .field-wizard code{margin-left:10px}#mc4wp-admin .field-wizard>div,.mc4wp-admin .field-wizard>div{margin:24px 0}#mc4wp-admin .field-wizard label,.mc4wp-admin .field-wizard label{font-weight:600;display:block;margin-bottom:3px}#mc4wp-admin .field-wizard table,.mc4wp-admin .field-wizard table{table-layout:fixed;border-collapse:collapse;border-spacing:0}#mc4wp-admin .field-wizard .cb-wrap,.mc4wp-admin .field-wizard .cb-wrap{font-weight:400}#mc4wp-admin .field-wizard .cb-wrap input,.mc4wp-admin .field-wizard .cb-wrap input{margin-right:6px}#mc4wp-admin .field-wizard .limit-height,.mc4wp-admin .field-wizard .limit-height{border:1px solid #eee;padding:6px;max-height:200px;overflow-y:scroll}#mc4wp-admin .field-wizard .help,.mc4wp-admin .field-wizard .help{margin-top:0}#mc4wp-admin .available-fields,.mc4wp-admin .available-fields{border:1px solid #ccc;padding:20px;background:#fff}#mc4wp-admin .available-fields h4,.mc4wp-admin .available-fields h4{font-size:14px;margin-top:0}#mc4wp-admin .available-fields strong,.mc4wp-admin .available-fields strong{display:block;margin-bottom:6px}#mc4wp-admin .available-fields button,.mc4wp-admin .available-fields button{margin:0 6px 6px 0}#mc4wp-admin .available-fields .is-required:after,.mc4wp-admin .available-fields .is-required:after{content:" *";color:red}#mc4wp-admin .available-fields .is-required.not-in-form,.mc4wp-admin .available-fields .is-required.not-in-form{-webkit-box-shadow:0 0 3px 1px red;-moz-box-shadow:0 0 3px 1px red;box-shadow:0 0 3px 1px red}#mc4wp-admin .available-fields .in-form,.mc4wp-admin .available-fields .in-form{opacity:.5}#mc4wp-admin .page-title,.mc4wp-admin .page-title{background:url(../img/icon-large.png) left center no-repeat;padding-left:42px;line-height:32px;margin-bottom:20px}#mc4wp-admin .page-title small,.mc4wp-admin .page-title small{font-size:12px;color:#777;display:inline-block;margin-left:10px}#mc4wp-admin .button .dashicons,#mc4wp-admin .button-secondary .dashicons,#mc4wp-admin .page-title-action .dashicons,.mc4wp-admin .button .dashicons,.mc4wp-admin .button-secondary .dashicons,.mc4wp-admin .page-title-action .dashicons{vertical-align:middle;line-height:16px;margin:0 4px 0 0}#mc4wp-admin .form-table td p,.mc4wp-admin .form-table td p{margin-top:1em}#mc4wp-admin .sidebar,.mc4wp-admin .sidebar{border-left:1px solid #ccc}#mc4wp-admin .sidebar h3,#mc4wp-admin .sidebar h4,.mc4wp-admin .sidebar h3,.mc4wp-admin .sidebar h4{font-size:16px;margin-bottom:0}#mc4wp-admin .sidebar>div,.mc4wp-admin .sidebar>div{border-bottom:1px solid #ccc;margin-bottom:20px;padding-bottom:20px}#mc4wp-admin .sidebar>div:last-of-type,.mc4wp-admin .sidebar>div:last-of-type{border-bottom:0}.mc4wp-log,.overlay{border:1px solid #ccc;overflow-y:scroll}.mc4wp-log{font-family:monaco,monospace,courier,'courier new','Bitstream Vera Sans Mono';font-size:13px;resize:vertical;line-height:140%;height:200px;padding:6px;background:#262626;color:#fff}.mc4wp-log .time{color:#b58900}.mc4wp-log .level{color:#35AECD}.mc4wp-log .debug-log-empty{color:#ccc;font-style:italic}.mc4wp-log .hidden{display:none}.mc4wp-log a{color:#ccc;text-decoration:underline}.overlay{position:fixed;left:0;top:0;z-index:99999;padding:20px;max-width:480px;max-height:100%;background:#fefefe;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.overlay .close{position:absolute;padding:10px;right:0;top:0;font-size:24px;cursor:pointer;opacity:.5}.overlay .close:hover{opacity:1}.overlay-background{z-index:99998;background:rgba(0,0,0,.67);position:fixed;left:0;right:0;bottom:0;top:0}.rtl .overlay .close{right:auto;left:0}.rtl #mc4wp-admin .page-title{background-position:right center;padding-left:0;padding-right:42px}.rtl #mc4wp-admin .CodeMirror-scroll{overflow-y:hidden!important}.rtl #mc4wp-admin .CodeMirror-vscrollbar{left:0!important;right:auto!important}.rtl .mc4wp-is-dismissible{padding-left:38px;padding-right:initial;position:relative}
1
+ #mc4wp-admin .cm-em,#mc4wp-admin .help,.mc4wp-admin .cm-em,.mc4wp-admin .help{font-style:italic}#mc4wp-admin .mc4wp-row,#mc4wp-admin .row,.mc4wp-admin .mc4wp-row,.mc4wp-admin .row{margin-left:-20px;margin-right:-20px;float:none}#mc4wp-admin .mc4wp-row .mc4wp-col,#mc4wp-admin .row .col,.mc4wp-admin .mc4wp-row .mc4wp-col,.mc4wp-admin .row .col{padding:0 20px;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#mc4wp-admin .mc4wp-row .mc4wp-col-1,#mc4wp-admin .row .col-1,.mc4wp-admin .mc4wp-row .mc4wp-col-1,.mc4wp-admin .row .col-1{width:16.666%}#mc4wp-admin .mc4wp-row .mc4wp-col-2,#mc4wp-admin .row .col-2,.mc4wp-admin .mc4wp-row .mc4wp-col-2,.mc4wp-admin .row .col-2{width:33.333%}#mc4wp-admin .mc4wp-row .mc4wp-col-3,#mc4wp-admin .row .col-3,.mc4wp-admin .mc4wp-row .mc4wp-col-3,.mc4wp-admin .row .col-3{width:50%}#mc4wp-admin .mc4wp-row .mc4wp-col-4,#mc4wp-admin .row .col-4,.mc4wp-admin .mc4wp-row .mc4wp-col-4,.mc4wp-admin .row .col-4{width:66.666%}#mc4wp-admin .mc4wp-row .mc4wp-col-5,#mc4wp-admin .row .col-5,.mc4wp-admin .mc4wp-row .mc4wp-col-5,.mc4wp-admin .row .col-5{width:83.333%}#mc4wp-admin .mc4wp-row .mc4wp-col-6,#mc4wp-admin .row .col-6,.mc4wp-admin .mc4wp-row .mc4wp-col-6,.mc4wp-admin .row .col-6{width:100%}#mc4wp-admin .clearfix:after,#mc4wp-admin .clearfix:before,#mc4wp-admin .mc4wp-row:after,#mc4wp-admin .mc4wp-row:before,#mc4wp-admin .row:after,#mc4wp-admin .row:before,.mc4wp-admin .clearfix:after,.mc4wp-admin .clearfix:before,.mc4wp-admin .mc4wp-row:after,.mc4wp-admin .mc4wp-row:before,.mc4wp-admin .row:after,.mc4wp-admin .row:before{content:" ";display:table}#mc4wp-admin .clearfix:after,#mc4wp-admin .mc4wp-row:after,#mc4wp-admin .row:after,.mc4wp-admin .clearfix:after,.mc4wp-admin .mc4wp-row:after,.mc4wp-admin .row:after{clear:both}@media (max-width:1200px){#mc4wp-admin .mc4wp-row .mc4wp-col,#mc4wp-admin .row .col,.mc4wp-admin .mc4wp-row .mc4wp-col,.mc4wp-admin .row .col{width:100%;float:none;margin:10px 0}}#mc4wp-admin .status,.mc4wp-admin .status{display:inline-block;margin-left:1em;padding:3px 6px;color:#fff;font-size:12px;font-weight:700}#mc4wp-admin .status.positive,.mc4wp-admin .status.positive{background-color:#32cd32}#mc4wp-admin .status.negative,.mc4wp-admin .status.negative{background-color:red}#mc4wp-admin .status.neutral,.mc4wp-admin .status.neutral{background:gray}#mc4wp-admin .valigntop,.mc4wp-admin .valigntop{vertical-align:top!important}#mc4wp-admin .big-margin,.mc4wp-admin .big-margin{margin-top:60px;margin-bottom:60px}#mc4wp-admin .medium-margin,.mc4wp-admin .medium-margin{margin-top:40px;margin-bottom:40px}#mc4wp-admin .small-margin,.mc4wp-admin .small-margin{margin-top:20px;margin-bottom:20px}#mc4wp-admin .tiny-margin,.mc4wp-admin .tiny-margin{margin-top:10px;margin-bottom:10px}#mc4wp-admin .hover-activated,.mc4wp-admin .hover-activated{opacity:.5}#mc4wp-admin .hover-activated:hover,.mc4wp-admin .hover-activated:hover{cursor:pointer;opacity:1}#mc4wp-admin .help-text,.mc4wp-admin .help-text{font-size:14px}#mc4wp-admin .help-text p,.mc4wp-admin .help-text p{margin:10px 0;font-size:14px}#mc4wp-admin .help-text ul,.mc4wp-admin .help-text ul{list-style:square;margin-top:15px;padding-left:40px}#mc4wp-admin .muted,.mc4wp-admin .muted{color:#aaa}#mc4wp-admin .red,.mc4wp-admin .red{color:red}#mc4wp-admin .green,.mc4wp-admin .green{color:#32cd32}#mc4wp-admin .mc4wp-notice,.mc4wp-admin .mc4wp-notice{padding:6px 12px;color:#31708f;background:#d9edf7;border:1px solid #bce8f1;margin:1em 0!important}#mc4wp-admin .mc4wp-is-dismissible,.mc4wp-admin .mc4wp-is-dismissible{padding-right:38px;position:relative}#mc4wp-admin .column-ID,.mc4wp-admin .column-ID{width:10%}#mc4wp-admin .block,.mc4wp-admin .block{display:block}#mc4wp-admin .code-sample,.mc4wp-admin .code-sample{font-family:Consolas,Monaco,Lucida Console,monospace;font-size:12px;background:#fff}#mc4wp-admin .breadcrumbs,.mc4wp-admin .breadcrumbs{border-bottom:1px solid #ccc;padding-bottom:1em}#mc4wp-admin .mc4wp-loader,.mc4wp-admin .mc4wp-loader{position:relative;display:inline-block;text-indent:-9999999px;border:3px solid rgba(0,0,0,.2);border-left-color:#000;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.1s infinite linear;animation:load8 1.1s infinite linear;overflow:hidden;border-radius:50%;vertical-align:middle;width:12px;height:12px;margin-bottom:3px;margin-left:3px;margin-right:3px}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#mc4wp-admin .tab,.mc4wp-admin .tab{display:none;background:inherit;border:none;font-weight:initial}#mc4wp-admin .tab.tab-active,.mc4wp-admin .tab.tab-active{display:block}#mc4wp-admin .tab h2,.mc4wp-admin .tab h2{margin-top:20px}#mc4wp-admin .CodeMirror,.mc4wp-admin .CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}#mc4wp-admin .CodeMirror-lines,.mc4wp-admin .CodeMirror-lines{padding:4px 0}#mc4wp-admin .CodeMirror pre,.mc4wp-admin .CodeMirror pre{padding:0 4px}#mc4wp-admin .CodeMirror-gutter-filler,#mc4wp-admin .CodeMirror-scrollbar-filler,.mc4wp-admin .CodeMirror-gutter-filler,.mc4wp-admin .CodeMirror-scrollbar-filler{background-color:#fff}#mc4wp-admin .CodeMirror-gutters,.mc4wp-admin .CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}#mc4wp-admin .CodeMirror-linenumber,.mc4wp-admin .CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}#mc4wp-admin .CodeMirror-guttermarker,.mc4wp-admin .CodeMirror-guttermarker{color:#000}#mc4wp-admin .CodeMirror-guttermarker-subtle,.mc4wp-admin .CodeMirror-guttermarker-subtle{color:#999}#mc4wp-admin .CodeMirror-cursor,.mc4wp-admin .CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}#mc4wp-admin .CodeMirror div.CodeMirror-secondarycursor,.mc4wp-admin .CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}#mc4wp-admin .cm-fat-cursor .CodeMirror-cursor,.mc4wp-admin .cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}#mc4wp-admin .cm-fat-cursor div.CodeMirror-cursors,.mc4wp-admin .cm-fat-cursor div.CodeMirror-cursors{z-index:1}#mc4wp-admin .cm-fat-cursor-mark,.mc4wp-admin .cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}#mc4wp-admin .cm-animate-fat-cursor,.mc4wp-admin .cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}#mc4wp-admin .cm-tab,.mc4wp-admin .cm-tab{display:inline-block;text-decoration:inherit}#mc4wp-admin .CodeMirror-rulers,.mc4wp-admin .CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}#mc4wp-admin .CodeMirror-ruler,.mc4wp-admin .CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}#mc4wp-admin .cm-s-default .cm-header,.mc4wp-admin .cm-s-default .cm-header{color:#00f}#mc4wp-admin .cm-s-default .cm-quote,.mc4wp-admin .cm-s-default .cm-quote{color:#090}#mc4wp-admin .cm-negative,.mc4wp-admin .cm-negative{color:#d44}#mc4wp-admin .cm-positive,.mc4wp-admin .cm-positive{color:#292}#mc4wp-admin .cm-header,#mc4wp-admin .cm-strong,.mc4wp-admin .cm-header,.mc4wp-admin .cm-strong{font-weight:700}#mc4wp-admin .cm-link,.mc4wp-admin .cm-link{text-decoration:underline}#mc4wp-admin .cm-strikethrough,.mc4wp-admin .cm-strikethrough{text-decoration:line-through}#mc4wp-admin .cm-s-default .cm-keyword,.mc4wp-admin .cm-s-default .cm-keyword{color:#708}#mc4wp-admin .cm-s-default .cm-atom,.mc4wp-admin .cm-s-default .cm-atom{color:#219}#mc4wp-admin .cm-s-default .cm-number,.mc4wp-admin .cm-s-default .cm-number{color:#164}#mc4wp-admin .cm-s-default .cm-def,.mc4wp-admin .cm-s-default .cm-def{color:#00f}#mc4wp-admin .cm-s-default .cm-variable-2,.mc4wp-admin .cm-s-default .cm-variable-2{color:#05a}#mc4wp-admin .cm-s-default .cm-type,#mc4wp-admin .cm-s-default .cm-variable-3,.mc4wp-admin .cm-s-default .cm-type,.mc4wp-admin .cm-s-default .cm-variable-3{color:#085}#mc4wp-admin .cm-s-default .cm-comment,.mc4wp-admin .cm-s-default .cm-comment{color:#a50}#mc4wp-admin .cm-s-default .cm-string,.mc4wp-admin .cm-s-default .cm-string{color:#a11}#mc4wp-admin .cm-s-default .cm-string-2,.mc4wp-admin .cm-s-default .cm-string-2{color:#f50}#mc4wp-admin .cm-s-default .cm-meta,#mc4wp-admin .cm-s-default .cm-qualifier,.mc4wp-admin .cm-s-default .cm-meta,.mc4wp-admin .cm-s-default .cm-qualifier{color:#555}#mc4wp-admin .cm-s-default .cm-builtin,.mc4wp-admin .cm-s-default .cm-builtin{color:#30a}#mc4wp-admin .cm-s-default .cm-bracket,.mc4wp-admin .cm-s-default .cm-bracket{color:#997}#mc4wp-admin .cm-s-default .cm-tag,.mc4wp-admin .cm-s-default .cm-tag{color:#170}#mc4wp-admin .cm-s-default .cm-attribute,.mc4wp-admin .cm-s-default .cm-attribute{color:#00c}#mc4wp-admin .cm-s-default .cm-hr,.mc4wp-admin .cm-s-default .cm-hr{color:#999}#mc4wp-admin .cm-s-default .cm-link,.mc4wp-admin .cm-s-default .cm-link{color:#00c}#mc4wp-admin .cm-invalidchar,#mc4wp-admin .cm-s-default .cm-error,.mc4wp-admin .cm-invalidchar,.mc4wp-admin .cm-s-default .cm-error{color:red}#mc4wp-admin .CodeMirror-composing,.mc4wp-admin .CodeMirror-composing{border-bottom:2px solid}#mc4wp-admin div.CodeMirror span.CodeMirror-matchingbracket,.mc4wp-admin div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}#mc4wp-admin div.CodeMirror span.CodeMirror-nonmatchingbracket,.mc4wp-admin div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}#mc4wp-admin .CodeMirror-matchingtag,.mc4wp-admin .CodeMirror-matchingtag{background:rgba(255,150,0,.3)}#mc4wp-admin .CodeMirror-activeline-background,.mc4wp-admin .CodeMirror-activeline-background{background:#e8f2ff}#mc4wp-admin .CodeMirror,.mc4wp-admin .CodeMirror{position:relative;overflow:hidden;background:#fff}#mc4wp-admin .CodeMirror-scroll,.mc4wp-admin .CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}#mc4wp-admin .CodeMirror-sizer,.mc4wp-admin .CodeMirror-sizer{position:relative;border-right:30px solid transparent}#mc4wp-admin .CodeMirror-gutter-filler,#mc4wp-admin .CodeMirror-hscrollbar,#mc4wp-admin .CodeMirror-scrollbar-filler,#mc4wp-admin .CodeMirror-vscrollbar,.mc4wp-admin .CodeMirror-gutter-filler,.mc4wp-admin .CodeMirror-hscrollbar,.mc4wp-admin .CodeMirror-scrollbar-filler,.mc4wp-admin .CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}#mc4wp-admin .CodeMirror-vscrollbar,.mc4wp-admin .CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}#mc4wp-admin .CodeMirror-hscrollbar,.mc4wp-admin .CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}#mc4wp-admin .CodeMirror-scrollbar-filler,.mc4wp-admin .CodeMirror-scrollbar-filler{right:0;bottom:0}#mc4wp-admin .CodeMirror-gutter-filler,.mc4wp-admin .CodeMirror-gutter-filler{left:0;bottom:0}#mc4wp-admin .CodeMirror-gutters,.mc4wp-admin .CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}#mc4wp-admin .CodeMirror-gutter,.mc4wp-admin .CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}#mc4wp-admin .field-wizard .dashicons,#mc4wp-admin .field-wizard td,#mc4wp-admin .field-wizard tr,.mc4wp-admin .field-wizard .dashicons,.mc4wp-admin .field-wizard td,.mc4wp-admin .field-wizard tr{vertical-align:middle}#mc4wp-admin .CodeMirror-gutter-wrapper,.mc4wp-admin .CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}#mc4wp-admin .CodeMirror-gutter-background,.mc4wp-admin .CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}#mc4wp-admin .CodeMirror-gutter-elt,.mc4wp-admin .CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}#mc4wp-admin .CodeMirror-gutter-wrapper ::selection,.mc4wp-admin .CodeMirror-gutter-wrapper ::selection{background-color:transparent}#mc4wp-admin .CodeMirror-gutter-wrapper ::-moz-selection,.mc4wp-admin .CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}#mc4wp-admin .CodeMirror-lines,.mc4wp-admin .CodeMirror-lines{cursor:text;min-height:1px}#mc4wp-admin .CodeMirror pre,.mc4wp-admin .CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;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}#mc4wp-admin .CodeMirror-wrap pre,.mc4wp-admin .CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}#mc4wp-admin .CodeMirror-linebackground,.mc4wp-admin .CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}#mc4wp-admin .CodeMirror-linewidget,.mc4wp-admin .CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}#mc4wp-admin .CodeMirror-rtl pre,.mc4wp-admin .CodeMirror-rtl pre{direction:rtl}#mc4wp-admin .CodeMirror-code,.mc4wp-admin .CodeMirror-code{outline:0}#mc4wp-admin .CodeMirror-gutter,#mc4wp-admin .CodeMirror-gutters,#mc4wp-admin .CodeMirror-linenumber,#mc4wp-admin .CodeMirror-scroll,#mc4wp-admin .CodeMirror-sizer,.mc4wp-admin .CodeMirror-gutter,.mc4wp-admin .CodeMirror-gutters,.mc4wp-admin .CodeMirror-linenumber,.mc4wp-admin .CodeMirror-scroll,.mc4wp-admin .CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}#mc4wp-admin .CodeMirror-measure,.mc4wp-admin .CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}#mc4wp-admin .CodeMirror-cursor,.mc4wp-admin .CodeMirror-cursor{position:absolute;pointer-events:none}#mc4wp-admin .CodeMirror-measure pre,.mc4wp-admin .CodeMirror-measure pre{position:static}#mc4wp-admin div.CodeMirror-cursors,.mc4wp-admin div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}#mc4wp-admin .CodeMirror-focused div.CodeMirror-cursors,#mc4wp-admin div.CodeMirror-dragcursors,.mc4wp-admin .CodeMirror-focused div.CodeMirror-cursors,.mc4wp-admin div.CodeMirror-dragcursors{visibility:visible}#mc4wp-admin .CodeMirror-selected,.mc4wp-admin .CodeMirror-selected{background:#d9d9d9}#mc4wp-admin .CodeMirror-focused .CodeMirror-selected,.mc4wp-admin .CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}#mc4wp-admin .CodeMirror-crosshair,.mc4wp-admin .CodeMirror-crosshair{cursor:crosshair}#mc4wp-admin .CodeMirror-line::selection,#mc4wp-admin .CodeMirror-line>span::selection,#mc4wp-admin .CodeMirror-line>span>span::selection,.mc4wp-admin .CodeMirror-line::selection,.mc4wp-admin .CodeMirror-line>span::selection,.mc4wp-admin .CodeMirror-line>span>span::selection{background:#d7d4f0}#mc4wp-admin .CodeMirror-line::-moz-selection,#mc4wp-admin .CodeMirror-line>span::-moz-selection,#mc4wp-admin .CodeMirror-line>span>span::-moz-selection,.mc4wp-admin .CodeMirror-line::-moz-selection,.mc4wp-admin .CodeMirror-line>span::-moz-selection,.mc4wp-admin .CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}#mc4wp-admin .cm-searching,.mc4wp-admin .cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}#mc4wp-admin .cm-force-border,.mc4wp-admin .cm-force-border{padding-right:.1px}@media print{#mc4wp-admin .CodeMirror div.CodeMirror-cursors,.mc4wp-admin .CodeMirror div.CodeMirror-cursors{visibility:hidden}}#mc4wp-admin .cm-tab-wrap-hack:after,.mc4wp-admin .cm-tab-wrap-hack:after{content:''}#mc4wp-admin span.CodeMirror-selectedtext,.mc4wp-admin span.CodeMirror-selectedtext{background:0 0}#mc4wp-admin .CodeMirror,.mc4wp-admin .CodeMirror{border:1px solid #ccc;min-height:500px;font-weight:400;padding:0 4px}#mc4wp-admin .CodeMirror-empty,.mc4wp-admin .CodeMirror-empty{color:#999}#mc4wp-admin #mc4wp-form-preview,.mc4wp-admin #mc4wp-form-preview{border:1px solid #ddd;height:500px;width:100%;border-left-width:0;border-right-width:2px}@media (min-width:1186px){#mc4wp-admin .mc4wp-form-editor-wrap,.mc4wp-admin .mc4wp-form-editor-wrap{padding-right:0!important}#mc4wp-admin .mc4wp-form-preview-wrap,.mc4wp-admin .mc4wp-form-preview-wrap{padding-left:0!important}}@media (max-width:1186px){#mc4wp-admin #mc4wp-form-preview,.mc4wp-admin #mc4wp-form-preview{border-left-width:1px}}#mc4wp-admin .field-wizard h3,.mc4wp-admin .field-wizard h3{margin-top:0;padding-bottom:12px;border-bottom:1px solid #eee;margin-bottom:12px}#mc4wp-admin .field-wizard code,.mc4wp-admin .field-wizard code{margin-left:10px}#mc4wp-admin .field-wizard>div,.mc4wp-admin .field-wizard>div{margin:24px 0}#mc4wp-admin .field-wizard label,.mc4wp-admin .field-wizard label{font-weight:600;display:block;margin-bottom:3px}#mc4wp-admin .field-wizard table,.mc4wp-admin .field-wizard table{table-layout:fixed;border-collapse:collapse;border-spacing:0}#mc4wp-admin .field-wizard td.stretch,.mc4wp-admin .field-wizard td.stretch{width:100%}#mc4wp-admin .field-wizard .cb-wrap,.mc4wp-admin .field-wizard .cb-wrap{font-weight:400}#mc4wp-admin .field-wizard .cb-wrap input,.mc4wp-admin .field-wizard .cb-wrap input{margin-right:6px}#mc4wp-admin .field-wizard .limit-height,.mc4wp-admin .field-wizard .limit-height{border:1px solid #eee;padding:6px;max-height:200px;overflow-y:scroll}#mc4wp-admin .field-wizard .help,.mc4wp-admin .field-wizard .help{margin-top:0}#mc4wp-admin .available-fields,.mc4wp-admin .available-fields{border:1px solid #ccc;padding:20px;background:#fff}#mc4wp-admin .available-fields h4,.mc4wp-admin .available-fields h4{font-size:14px;margin-top:0}#mc4wp-admin .available-fields strong,.mc4wp-admin .available-fields strong{display:block;margin-bottom:6px}#mc4wp-admin .available-fields button,.mc4wp-admin .available-fields button{margin:0 6px 6px 0}#mc4wp-admin .available-fields .is-required:after,.mc4wp-admin .available-fields .is-required:after{content:" *";color:red}#mc4wp-admin .available-fields .is-required.not-in-form,.mc4wp-admin .available-fields .is-required.not-in-form{-webkit-box-shadow:0 0 3px 1px red;-moz-box-shadow:0 0 3px 1px red;box-shadow:0 0 3px 1px red}#mc4wp-admin .available-fields .in-form,.mc4wp-admin .available-fields .in-form{opacity:.5}#mc4wp-admin .page-title,.mc4wp-admin .page-title{background:url(../img/icon-large.png) left center no-repeat;padding-left:42px;line-height:32px;margin-bottom:20px}#mc4wp-admin .page-title small,.mc4wp-admin .page-title small{font-size:12px;color:#777;display:inline-block;margin-left:10px}#mc4wp-admin .button .dashicons,#mc4wp-admin .button-secondary .dashicons,#mc4wp-admin .page-title-action .dashicons,.mc4wp-admin .button .dashicons,.mc4wp-admin .button-secondary .dashicons,.mc4wp-admin .page-title-action .dashicons{vertical-align:middle;line-height:16px;margin:0 4px 0 0}#mc4wp-admin .form-table td p,.mc4wp-admin .form-table td p{margin-top:1em}#mc4wp-admin .sidebar,.mc4wp-admin .sidebar{border-left:1px solid #ccc}#mc4wp-admin .sidebar h3,#mc4wp-admin .sidebar h4,.mc4wp-admin .sidebar h3,.mc4wp-admin .sidebar h4{font-size:16px;margin-bottom:0}#mc4wp-admin .sidebar>div,.mc4wp-admin .sidebar>div{border-bottom:1px solid #ccc;margin-bottom:20px;padding-bottom:20px}#mc4wp-admin .sidebar>div:last-of-type,.mc4wp-admin .sidebar>div:last-of-type{border-bottom:0}.mc4wp-log,.overlay{border:1px solid #ccc;overflow-y:scroll}.mc4wp-log{font-family:monaco,monospace,courier,'courier new','Bitstream Vera Sans Mono';font-size:13px;resize:vertical;line-height:140%;height:200px;padding:6px;background:#262626;color:#fff}.mc4wp-log .time{color:#b58900}.mc4wp-log .level{color:#35AECD}.mc4wp-log .debug-log-empty{color:#ccc;font-style:italic}.mc4wp-log .hidden{display:none}.mc4wp-log a{color:#ccc;text-decoration:underline}.overlay{position:fixed;left:0;top:0;z-index:99999;padding:20px;width:100%;max-width:480px;max-height:100%;background:#fefefe;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.overlay .close{position:absolute;padding:10px;right:0;top:0;font-size:24px;cursor:pointer;opacity:.5}.overlay .close:hover{opacity:1}.overlay-background{z-index:99998;background:rgba(0,0,0,.67);position:fixed;left:0;right:0;bottom:0;top:0}.rtl .overlay .close{right:auto;left:0}.rtl #mc4wp-admin .page-title{background-position:right center;padding-left:0;padding-right:42px}.rtl #mc4wp-admin .CodeMirror-scroll{overflow-y:hidden!important}.rtl #mc4wp-admin .CodeMirror-vscrollbar{left:0!important;right:auto!important}.rtl .mc4wp-is-dismissible{padding-left:38px;padding-right:initial;position:relative}
assets/css/form-editor.css CHANGED
@@ -4,7 +4,8 @@
4
  /* Set height, width, borders, and global font properties here */
5
  font-family: monospace;
6
  height: 300px;
7
- color: black; }
 
8
 
9
  /* PADDING */
10
  .CodeMirror-lines {
@@ -50,12 +51,18 @@
50
 
51
  .cm-fat-cursor .CodeMirror-cursor {
52
  width: auto;
53
- border: 0;
54
  background: #7e7; }
55
 
56
  .cm-fat-cursor div.CodeMirror-cursors {
57
  z-index: 1; }
58
 
 
 
 
 
 
 
59
  .cm-animate-fat-cursor {
60
  width: auto;
61
  border: 0;
@@ -87,8 +94,18 @@
87
  display: inline-block;
88
  text-decoration: inherit; }
89
 
 
 
 
 
 
 
 
 
90
  .CodeMirror-ruler {
91
  border-left: 1px solid #ccc;
 
 
92
  position: absolute; }
93
 
94
  /* DEFAULT THEME */
@@ -131,7 +148,7 @@
131
  .cm-s-default .cm-variable-2 {
132
  color: #05a; }
133
 
134
- .cm-s-default .cm-variable-3 {
135
  color: #085; }
136
 
137
  .cm-s-default .cm-comment {
@@ -178,10 +195,10 @@
178
 
179
  /* Default styles for common addons */
180
  div.CodeMirror span.CodeMirror-matchingbracket {
181
- color: #0f0; }
182
 
183
  div.CodeMirror span.CodeMirror-nonmatchingbracket {
184
- color: #f22; }
185
 
186
  .CodeMirror-matchingtag {
187
  background: rgba(255, 150, 0, 0.3); }
@@ -246,6 +263,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
246
  position: absolute;
247
  left: 0;
248
  top: 0;
 
249
  z-index: 3; }
250
 
251
  .CodeMirror-gutter {
@@ -253,10 +271,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
253
  height: 100%;
254
  display: inline-block;
255
  vertical-align: top;
256
- margin-bottom: -30px;
257
- /* Hack to make IE7 behave */
258
- *zoom: 1;
259
- *display: inline; }
260
 
261
  .CodeMirror-gutter-wrapper {
262
  position: absolute;
@@ -275,10 +290,11 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
275
  cursor: default;
276
  z-index: 4; }
277
 
278
- .CodeMirror-gutter-wrapper {
279
- -webkit-user-select: none;
280
- -moz-user-select: none;
281
- user-select: none; }
 
282
 
283
  .CodeMirror-lines {
284
  cursor: text;
@@ -302,7 +318,9 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
302
  z-index: 2;
303
  position: relative;
304
  overflow: visible;
305
- -webkit-tap-highlight-color: transparent; }
 
 
306
 
307
  .CodeMirror-wrap pre {
308
  word-wrap: break-word;
@@ -320,7 +338,11 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
320
  .CodeMirror-linewidget {
321
  position: relative;
322
  z-index: 2;
323
- overflow: auto; }
 
 
 
 
324
 
325
  .CodeMirror-code {
326
  outline: none; }
@@ -342,7 +364,8 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
342
  visibility: hidden; }
343
 
344
  .CodeMirror-cursor {
345
- position: absolute; }
 
346
 
347
  .CodeMirror-measure pre {
348
  position: static; }
@@ -374,12 +397,8 @@ div.CodeMirror-dragcursors {
374
  background: #d7d4f0; }
375
 
376
  .cm-searching {
377
- background: #ffa;
378
- background: rgba(255, 255, 0, 0.4); }
379
-
380
- /* IE7 hack to prevent it from returning funny offsetTops on the spans */
381
- .CodeMirror span {
382
- *vertical-align: text-bottom; }
383
 
384
  /* Used to force a border model for a node */
385
  .cm-force-border {
@@ -401,13 +420,32 @@ span.CodeMirror-selectedtext {
401
  /* Codemirror */
402
  .CodeMirror {
403
  border: 1px solid #ccc;
404
- padding: 10px;
405
  min-height: 500px;
406
- font-weight: normal; }
 
407
 
408
  .CodeMirror-empty {
409
  color: #999; }
410
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
411
  .field-wizard {
412
  /* table */
413
  /* checkboxes in label */ }
4
  /* Set height, width, borders, and global font properties here */
5
  font-family: monospace;
6
  height: 300px;
7
+ color: black;
8
+ direction: ltr; }
9
 
10
  /* PADDING */
11
  .CodeMirror-lines {
51
 
52
  .cm-fat-cursor .CodeMirror-cursor {
53
  width: auto;
54
+ border: 0 !important;
55
  background: #7e7; }
56
 
57
  .cm-fat-cursor div.CodeMirror-cursors {
58
  z-index: 1; }
59
 
60
+ .cm-fat-cursor-mark {
61
+ background-color: rgba(20, 255, 20, 0.5);
62
+ -webkit-animation: blink 1.06s steps(1) infinite;
63
+ -moz-animation: blink 1.06s steps(1) infinite;
64
+ animation: blink 1.06s steps(1) infinite; }
65
+
66
  .cm-animate-fat-cursor {
67
  width: auto;
68
  border: 0;
94
  display: inline-block;
95
  text-decoration: inherit; }
96
 
97
+ .CodeMirror-rulers {
98
+ position: absolute;
99
+ left: 0;
100
+ right: 0;
101
+ top: -50px;
102
+ bottom: -20px;
103
+ overflow: hidden; }
104
+
105
  .CodeMirror-ruler {
106
  border-left: 1px solid #ccc;
107
+ top: 0;
108
+ bottom: 0;
109
  position: absolute; }
110
 
111
  /* DEFAULT THEME */
148
  .cm-s-default .cm-variable-2 {
149
  color: #05a; }
150
 
151
+ .cm-s-default .cm-variable-3, .cm-s-default .cm-type {
152
  color: #085; }
153
 
154
  .cm-s-default .cm-comment {
195
 
196
  /* Default styles for common addons */
197
  div.CodeMirror span.CodeMirror-matchingbracket {
198
+ color: #0b0; }
199
 
200
  div.CodeMirror span.CodeMirror-nonmatchingbracket {
201
+ color: #a22; }
202
 
203
  .CodeMirror-matchingtag {
204
  background: rgba(255, 150, 0, 0.3); }
263
  position: absolute;
264
  left: 0;
265
  top: 0;
266
+ min-height: 100%;
267
  z-index: 3; }
268
 
269
  .CodeMirror-gutter {
271
  height: 100%;
272
  display: inline-block;
273
  vertical-align: top;
274
+ margin-bottom: -30px; }
 
 
 
275
 
276
  .CodeMirror-gutter-wrapper {
277
  position: absolute;
290
  cursor: default;
291
  z-index: 4; }
292
 
293
+ .CodeMirror-gutter-wrapper ::selection {
294
+ background-color: transparent; }
295
+
296
+ .CodeMirror-gutter-wrapper ::-moz-selection {
297
+ background-color: transparent; }
298
 
299
  .CodeMirror-lines {
300
  cursor: text;
318
  z-index: 2;
319
  position: relative;
320
  overflow: visible;
321
+ -webkit-tap-highlight-color: transparent;
322
+ -webkit-font-variant-ligatures: contextual;
323
+ font-variant-ligatures: contextual; }
324
 
325
  .CodeMirror-wrap pre {
326
  word-wrap: break-word;
338
  .CodeMirror-linewidget {
339
  position: relative;
340
  z-index: 2;
341
+ padding: 0.1px;
342
+ /* Force widget margins to stay inside of the container */ }
343
+
344
+ .CodeMirror-rtl pre {
345
+ direction: rtl; }
346
 
347
  .CodeMirror-code {
348
  outline: none; }
364
  visibility: hidden; }
365
 
366
  .CodeMirror-cursor {
367
+ position: absolute;
368
+ pointer-events: none; }
369
 
370
  .CodeMirror-measure pre {
371
  position: static; }
397
  background: #d7d4f0; }
398
 
399
  .cm-searching {
400
+ background-color: #ffa;
401
+ background-color: rgba(255, 255, 0, 0.4); }
 
 
 
 
402
 
403
  /* Used to force a border model for a node */
404
  .cm-force-border {
420
  /* Codemirror */
421
  .CodeMirror {
422
  border: 1px solid #ccc;
 
423
  min-height: 500px;
424
+ font-weight: normal;
425
+ padding: 0 4px; }
426
 
427
  .CodeMirror-empty {
428
  color: #999; }
429
 
430
+ #mc4wp-form-preview {
431
+ border: 1px solid #ddd;
432
+ height: 500px;
433
+ /* codemirror + padding */
434
+ width: 100%;
435
+ border-left-width: 0;
436
+ border-right-width: 2px;
437
+ /* for scrollbar */ }
438
+
439
+ @media (min-width: 1186px) {
440
+ .mc4wp-form-editor-wrap {
441
+ padding-right: 0 !important; }
442
+ .mc4wp-form-preview-wrap {
443
+ padding-left: 0 !important; } }
444
+
445
+ @media (max-width: 1186px) {
446
+ #mc4wp-form-preview {
447
+ border-left-width: 1px; } }
448
+
449
  .field-wizard {
450
  /* table */
451
  /* checkboxes in label */ }
assets/css/form-editor.min.css CHANGED
@@ -1 +1 @@
1
- .CodeMirror{font-family:monospace;height:300px;color:#000}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.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;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.field-wizard .dashicons,.field-wizard td,.field-wizard tr{vertical-align:middle}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;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}.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-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{border:1px solid #ccc;padding:10px;min-height:500px;font-weight:400}.CodeMirror-empty{color:#999}.field-wizard h3{margin-top:0;padding-bottom:12px;border-bottom:1px solid #eee;margin-bottom:12px}.field-wizard code{margin-left:10px}.field-wizard>div{margin:24px 0}.field-wizard label{font-weight:600;display:block;margin-bottom:3px}.field-wizard table{table-layout:fixed;border-collapse:collapse;border-spacing:0}.field-wizard td.stretch{width:100%}.field-wizard .cb-wrap{font-weight:400}.field-wizard .cb-wrap input{margin-right:6px}.field-wizard .limit-height{border:1px solid #eee;padding:6px;max-height:200px;overflow-y:scroll}.field-wizard .help{margin-top:0}.available-fields{border:1px solid #ccc;padding:20px;background:#fff}.available-fields h4{font-size:14px;margin-top:0}.available-fields strong{display:block;margin-bottom:6px}.available-fields button{margin:0 6px 6px 0}.available-fields .is-required:after{content:" *";color:red}.available-fields .is-required.not-in-form{-webkit-box-shadow:0 0 3px 1px red;-moz-box-shadow:0 0 3px 1px red;box-shadow:0 0 3px 1px red}.available-fields .in-form{opacity:.5}
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);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.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:#00f}.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:0;position:relative}.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}.field-wizard .dashicons,.field-wizard td,.field-wizard tr{vertical-align:middle}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!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{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;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:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;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}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{border:1px solid #ccc;min-height:500px;font-weight:400;padding:0 4px}.CodeMirror-empty{color:#999}#mc4wp-form-preview{border:1px solid #ddd;height:500px;width:100%;border-left-width:0;border-right-width:2px}@media (min-width:1186px){.mc4wp-form-editor-wrap{padding-right:0!important}.mc4wp-form-preview-wrap{padding-left:0!important}}@media (max-width:1186px){#mc4wp-form-preview{border-left-width:1px}}.field-wizard h3{margin-top:0;padding-bottom:12px;border-bottom:1px solid #eee;margin-bottom:12px}.field-wizard code{margin-left:10px}.field-wizard>div{margin:24px 0}.field-wizard label{font-weight:600;display:block;margin-bottom:3px}.field-wizard table{table-layout:fixed;border-collapse:collapse;border-spacing:0}.field-wizard td.stretch{width:100%}.field-wizard .cb-wrap{font-weight:400}.field-wizard .cb-wrap input{margin-right:6px}.field-wizard .limit-height{border:1px solid #eee;padding:6px;max-height:200px;overflow-y:scroll}.field-wizard .help{margin-top:0}.available-fields{border:1px solid #ccc;padding:20px;background:#fff}.available-fields h4{font-size:14px;margin-top:0}.available-fields strong{display:block;margin-bottom:6px}.available-fields button{margin:0 6px 6px 0}.available-fields .is-required:after{content:" *";color:red}.available-fields .is-required.not-in-form{-webkit-box-shadow:0 0 3px 1px red;-moz-box-shadow:0 0 3px 1px red;box-shadow:0 0 3px 1px red}.available-fields .in-form{opacity:.5}
assets/js/admin.js CHANGED
@@ -1,4 +1,4 @@
1
- (function () { var require = undefined; var define = undefined; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2
  'use strict';
3
 
4
  // dependencies
1
+ (function () { var require = undefined; var define = undefined; (function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}return e})()({1:[function(require,module,exports){
2
  'use strict';
3
 
4
  // dependencies
assets/js/admin.min.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(){var e=void 0,t=void 0;!function t(n,r,i){function o(l,s){if(!r[l]){if(!n[l]){var u="function"==typeof e&&e;if(!s&&u)return u(l,!0);if(a)return a(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[l]={exports:{}};n[l][0].call(f.exports,function(e){var t=n[l][1][e];return o(t||e)},f,f.exports,t,n,r,i)}return r[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}({1:[function(e,t,n){"use strict";var r=window.m=e("mithril"),i=e("wolfy87-eventemitter"),o=document.getElementById("mc4wp-admin"),a=new i,l=e("./admin/tabs.js")(o),s=e("./admin/helpers.js"),u=e("./admin/settings.js")(o,s,a),c=e("./admin/list-fetcher.js"),f=document.getElementById("mc4wp-list-fetcher");f&&r.mount(f,new c),window.mc4wp=window.mc4wp||{},window.mc4wp.deps=window.mc4wp.deps||{},window.mc4wp.deps.mithril=r,window.mc4wp.helpers=s,window.mc4wp.events=a,window.mc4wp.settings=u,window.mc4wp.tabs=l},{"./admin/helpers.js":2,"./admin/list-fetcher.js":3,"./admin/settings.js":4,"./admin/tabs.js":5,mithril:7,"wolfy87-eventemitter":8}],2:[function(e,t,n){"use strict";var r={};r.toggleElement=function(e){for(var t=document.querySelectorAll(e),n=0;n<t.length;n++){var r=t[n].clientHeight<=0;t[n].style.display=r?"":"none"}},r.bindEventToElement=function(e,t,n){e.addEventListener?e.addEventListener(t,n):e.attachEvent&&e.attachEvent("on"+t,n)},r.bindEventToElements=function(e,t,n){Array.prototype.forEach.call(e,function(e){r.bindEventToElement(e,t,n)})},r.debounce=function(e,t,n){var r;return function(){var i=this,o=arguments,a=n&&!r;clearTimeout(r),r=setTimeout(function(){r=null,n||e.apply(i,o)},t),a&&e.apply(i,o)}},function(){var e=document.querySelectorAll("[data-showif]");Array.prototype.forEach.call(e,function(e){function t(){if("radio"!==this.getAttribute("type")||this.checked){var t=("checkbox"===this.getAttribute("type")?this.checked:this.value)==n.value;a?(e.style.display=t?"":"none",e.style.visibility=t?"":"hidden"):e.style.opacity=t?"":"0.4",Array.prototype.forEach.call(o,function(e){t?e.removeAttribute("readonly"):e.setAttribute("readonly","readonly")})}}var n=JSON.parse(e.getAttribute("data-showif")),i=document.querySelectorAll('[name="'+n.element+'"]'),o=e.querySelectorAll("input,select,textarea:not([readonly])"),a=void 0===n.hide||n.hide;Array.prototype.forEach.call(i,function(e){t.call(e)}),r.bindEventToElements(i,"change",t)})}(),t.exports=r},{}],3:[function(e,t,n){"use strict";function r(){this.working=!1,this.done=!1,o.mailchimp.api_connected&&0===o.mailchimp.lists.length&&this.fetch()}var i=window.jQuery,o=mc4wp_vars,a=o.i18n;r.prototype.fetch=function(e){e&&e.preventDefault(),this.working=!0,this.done=!1,i.post(ajaxurl,{action:"mc4wp_renew_mailchimp_lists",timeout:18e4}).done(function(e){this.success=!0,e&&window.setTimeout(function(){window.location.reload()},3e3)}.bind(this)).fail(function(e){this.success=!1}.bind(this)).always(function(e){this.working=!1,this.done=!0,m.redraw()}.bind(this))},r.prototype.view=function(){return m("form",{method:"POST",onsubmit:this.fetch.bind(this)},[m("p",[m("input",{type:"submit",value:this.working?a.fetching_mailchimp_lists:a.renew_mailchimp_lists,className:"button",disabled:!!this.working}),m.trust(" &nbsp; "),this.working?[m("span.mc4wp-loader","Loading..."),m.trust(" &nbsp; "),m("em.help",a.fetching_mailchimp_lists_can_take_a_while)]:"",this.done?[this.success?m("em.help.green",a.fetching_mailchimp_lists_done):m("em.help.red",a.fetching_mailchimp_lists_error)]:""])])},t.exports=r},{}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.exports=function(e,t,n){function i(){return l=[],Array.prototype.forEach.call(o,function(e){("boolean"!=typeof e.checked||e.checked)&&"object"===r(a[e.value])&&l.push(a[e.value])}),n.trigger("selectedLists.change",[l]),l}e.querySelector("form");var o=e.querySelectorAll(".mc4wp-list-input"),a=mc4wp_vars.mailchimp.lists,l=[];return n.on("selectedLists.change",function(){var e=document.querySelectorAll(".lists--only-selected > *");Array.prototype.forEach.call(e,function(e){(function(e,t){return l.filter(function(n){return n[e]===t})})("id",e.getAttribute("data-list-id")).length>0?e.setAttribute("class",e.getAttribute("class").replace("hidden","")):e.setAttribute("class",e.getAttribute("class")+" hidden")})}),t.bindEventToElements(o,"change",i),i(),{getSelectedLists:function(){return l}}}},{}],5:[function(e,t,n){"use strict";var r=e("./url.js");t.exports=function(e){function t(e){for(var t=0;t<f.length;t++)if(f[t].id===e)return f[t]}function n(e,n){if("string"==typeof e&&(e=t(e)),!e)return!1;void 0==n&&(n=!0),s.removeClass("tab-active").css("display","none"),u.removeClass("nav-tab-active"),Array.prototype.forEach.call(e.nav,function(e){e.className+=" nav-tab-active",e.blur()}),e.element.style.display="block",e.element.className+=" tab-active";var o=r.setParameter(window.location.href,"tab",e.id);return history.pushState&&n&&history.pushState(e.id,"",o),i(e),c.value=o,"function"==typeof tb_remove&&tb_remove(),"fields"===e.id&&window.mc4wp&&window.mc4wp.forms&&window.mc4wp.forms.editor&&mc4wp.forms.editor.refresh(),!0}function i(e){var t=document.title.split("-");document.title=document.title.replace(t[0],e.title+" ")}function o(e){e=e||window.event;var t=this.getAttribute("data-tab");if(!t){var i=this.className.match(/nav-tab-(\w+)?/);i&&(t=i[1])}if(!t){var o=r.parse(this.href);if(!o.tab)return;t=o.tab}return!n(t)||(e.preventDefault(),e.returnValue=!1,!1)}var a=window.jQuery,l=a(e),s=l.find(".tab"),u=l.find(".nav-tab"),c=e.querySelector('input[name="_wp_http_referer"]'),f=[];return a.each(s,function(t,r){var i=r.id.substring(4),o=a(r).find("h2").first().text();f.push({id:i,title:o,element:r,nav:e.querySelectorAll(".nav-tab-"+i),open:function(){return n(i)}})}),u.click(o),a(document.body).on("click",".tab-link",o),function(){if(history.pushState){var e=s.filter(":visible").get(0);if(e){var n=t(e.id.substring(4));n&&(history.replaceState&&null===history.state&&history.replaceState(n.id,""),i(n))}}}(),window.addEventListener&&history.pushState&&window.addEventListener("popstate",function(e){return!e.state||n(e.state,!1)}),{open:n,get:t}}},{"./url.js":6}],6:[function(e,t,n){"use strict";var r={parse:function(e){var t={},n=e.split("&");for(var r in n)if(n.hasOwnProperty(r)){var i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t},build:function(e){var t=[];for(var n in e)t.push(n+"="+encodeURIComponent(e[n]));return t.join("&")},setParameter:function(e,t,n){var i=r.parse(e);return i[t]=n,r.build(i)}};t.exports=r},{}],7:[function(e,t,n){(function(e){!function(){"use strict";function n(e,t,n,r,i,o){return{tag:e,key:t,attrs:n,children:r,text:i,dom:o,domSize:void 0,state:void 0,_state:void 0,events:void 0,instance:void 0,skip:!1}}function r(e){var t,r=arguments[1],l=2;if(null==e||"string"!=typeof e&&"function"!=typeof e&&"function"!=typeof e.view)throw Error("The selector must be either a string or a component.");if("string"==typeof e)var s=o[e]||function(e){for(var t,n="div",r=[],a={};t=i.exec(e);){var l=t[1],s=t[2];if(""===l&&""!==s)n=s;else if("#"===l)a.id=s;else if("."===l)r.push(s);else if("["===t[3][0]){var u=t[6];u&&(u=u.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?r.push(u):a[t[4]]=""===u?u:u||!0}}return r.length>0&&(a.className=r.join(" ")),o[e]={tag:n,attrs:a}}(e);if(null==r?r={}:("object"!=typeof r||null!=r.tag||Array.isArray(r))&&(r={},l=1),arguments.length===l+1)t=arguments[l],Array.isArray(t)||(t=[t]);else for(t=[];l<arguments.length;)t.push(arguments[l++]);var u=n.normalizeChildren(t);return"string"==typeof e?function(e,t,r){var i,o,l=!1,s=t.className||t.class;for(var u in e.attrs)a.call(e.attrs,u)&&(t[u]=e.attrs[u]);void 0!==s&&(void 0!==t.class&&(t.class=void 0,t.className=s),null!=e.attrs.className&&(t.className=e.attrs.className+" "+s));for(var u in t)if(a.call(t,u)&&"key"!==u){l=!0;break}return Array.isArray(r)&&1===r.length&&null!=r[0]&&"#"===r[0].tag?o=r[0].children:i=r,n(e.tag,t.key,l?t:void 0,i,o)}(s,r,u):n(e,r.key,r,u)}n.normalize=function(e){return Array.isArray(e)?n("[",void 0,void 0,n.normalizeChildren(e),void 0,void 0):null!=e&&"object"!=typeof e?n("#",void 0,void 0,!1===e?"":e,void 0,void 0):e},n.normalizeChildren=function(e){for(var t=0;t<e.length;t++)e[t]=n.normalize(e[t]);return e};var i=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,o={},a={}.hasOwnProperty;r.trust=function(e){return null==e&&(e=""),n("<",void 0,void 0,e,void 0,void 0)},r.fragment=function(e,t){return n("[",e.key,e,n.normalizeChildren(t),void 0,void 0)};var l=r;if((s=function(e){function t(e,t){return function a(s){var f;try{if(!t||null==s||"object"!=typeof s&&"function"!=typeof s||"function"!=typeof(f=s.then))c(function(){t||0!==e.length||console.error("Possible unhandled promise rejection:",s);for(var n=0;n<e.length;n++)e[n](s);i.length=0,o.length=0,u.state=t,u.retry=function(){a(s)}});else{if(s===r)throw new TypeError("Promise can't be resolved w/ itself");n(f.bind(s))}}catch(e){l(e)}}}function n(e){function t(e){return function(t){n++>0||e(t)}}var n=0,r=t(l);try{e(t(a),r)}catch(e){r(e)}}if(!(this instanceof s))throw new Error("Promise must be called with `new`");if("function"!=typeof e)throw new TypeError("executor must be a function");var r=this,i=[],o=[],a=t(i,!0),l=t(o,!1),u=r._instance={resolvers:i,rejectors:o},c="function"==typeof setImmediate?setImmediate:setTimeout;n(e)}).prototype.then=function(e,t){function n(e,t,n,a){t.push(function(t){if("function"!=typeof e)n(t);else try{r(e(t))}catch(e){i&&i(e)}}),"function"==typeof o.retry&&a===o.state&&o.retry()}var r,i,o=this._instance,a=new s(function(e,t){r=e,i=t});return n(e,o.resolvers,r,!0),n(t,o.rejectors,i,!1),a},s.prototype.catch=function(e){return this.then(null,e)},s.resolve=function(e){return e instanceof s?e:new s(function(t){t(e)})},s.reject=function(e){return new s(function(t,n){n(e)})},s.all=function(e){return new s(function(t,n){var r=e.length,i=0,o=[];if(0===e.length)t([]);else for(var a=0;a<e.length;a++)!function(a){function l(e){i++,o[a]=e,i===r&&t(o)}null==e[a]||"object"!=typeof e[a]&&"function"!=typeof e[a]||"function"!=typeof e[a].then?l(e[a]):e[a].then(l,n)}(a)})},s.race=function(e){return new s(function(t,n){for(var r=0;r<e.length;r++)e[r].then(t,n)})},"undefined"!=typeof window){void 0===window.Promise&&(window.Promise=s);var s=window.Promise}else if(void 0!==e){void 0===e.Promise&&(e.Promise=s);s=e.Promise}var u=function(e){function t(e,r){if(Array.isArray(r))for(var i=0;i<r.length;i++)t(e+"["+i+"]",r[i]);else if("[object Object]"===Object.prototype.toString.call(r))for(var i in r)t(e+"["+i+"]",r[i]);else n.push(encodeURIComponent(e)+(null!=r&&""!==r?"="+encodeURIComponent(r):""))}if("[object Object]"!==Object.prototype.toString.call(e))return"";var n=[];for(var r in e)t(r,e[r]);return n.join("&")},c=new RegExp("^file://","i"),f=function(e,t){function n(){function e(){0==--t&&"function"==typeof f&&f()}var t=0;return function n(r){var i=r.then;return r.then=function(){t++;var o=i.apply(r,arguments);return o.then(e,function(n){if(e(),0===t)throw n}),n(o)},r}}function r(e,t){if("string"==typeof e){var n=e;null==(e=t||{}).url&&(e.url=n)}return e}function i(e,t){if(null==t)return e;for(var n=e.match(/:[^\/]+/gi)||[],r=0;r<n.length;r++){var i=n[r].slice(1);null!=t[i]&&(e=e.replace(n[r],t[i]))}return e}function o(e,t){var n=u(t);return""!==n&&(e+=(e.indexOf("?")<0?"?":"&")+n),e}function a(e){try{return""!==e?JSON.parse(e):null}catch(t){throw new Error(e)}}function l(e){return e.responseText}function s(e,t){if("function"==typeof e){if(!Array.isArray(t))return new e(t);for(var n=0;n<t.length;n++)t[n]=new e(t[n])}return t}var f,d=0;return{request:function(u,f){var d=n();u=r(u,f);var h=new t(function(t,n){null==u.method&&(u.method="GET"),u.method=u.method.toUpperCase();var r="GET"!==u.method&&"TRACE"!==u.method&&("boolean"!=typeof u.useBody||u.useBody);"function"!=typeof u.serialize&&(u.serialize="undefined"!=typeof FormData&&u.data instanceof FormData?function(e){return e}:JSON.stringify),"function"!=typeof u.deserialize&&(u.deserialize=a),"function"!=typeof u.extract&&(u.extract=l),u.url=i(u.url,u.data),r?u.data=u.serialize(u.data):u.url=o(u.url,u.data);var f=new e.XMLHttpRequest,d=!1,h=f.abort;f.abort=function(){d=!0,h.call(f)},f.open(u.method,u.url,"boolean"!=typeof u.async||u.async,"string"==typeof u.user?u.user:void 0,"string"==typeof u.password?u.password:void 0),u.serialize!==JSON.stringify||!r||u.headers&&u.headers.hasOwnProperty("Content-Type")||f.setRequestHeader("Content-Type","application/json; charset=utf-8"),u.deserialize!==a||u.headers&&u.headers.hasOwnProperty("Accept")||f.setRequestHeader("Accept","application/json, text/*"),u.withCredentials&&(f.withCredentials=u.withCredentials);for(var v in u.headers)({}).hasOwnProperty.call(u.headers,v)&&f.setRequestHeader(v,u.headers[v]);"function"==typeof u.config&&(f=u.config(f,u)||f),f.onreadystatechange=function(){if(!d&&4===f.readyState)try{var e=u.extract!==l?u.extract(f,u):u.deserialize(u.extract(f,u));if(f.status>=200&&f.status<300||304===f.status||c.test(u.url))t(s(u.type,e));else{var r=new Error(f.responseText);for(var i in e)r[i]=e[i];n(r)}}catch(e){n(e)}},r&&null!=u.data?f.send(u.data):f.send()});return!0===u.background?h:d(h)},jsonp:function(a,l){var u=n();a=r(a,l);var c=new t(function(t,n){var r=a.callbackName||"_mithril_"+Math.round(1e16*Math.random())+"_"+d++,l=e.document.createElement("script");e[r]=function(n){l.parentNode.removeChild(l),t(s(a.type,n)),delete e[r]},l.onerror=function(){l.parentNode.removeChild(l),n(new Error("JSONP request failed")),delete e[r]},null==a.data&&(a.data={}),a.url=i(a.url,a.data),a.data[a.callbackKey||"callback"]=r,l.src=o(a.url,a.data),e.document.documentElement.appendChild(l)});return!0===a.background?c:u(c)},setCompletionCallback:function(e){f=e}}}(window,s),d=function(e){function t(e){return e.attrs&&e.attrs.xmlns||S[e.tag]}function r(e,t,n,r,o,a,l){for(var s=n;s<r;s++){var u=t[s];null!=u&&i(e,u,o,l,a)}}function i(e,l,s,u,c){var h=l.tag;if("string"!=typeof h)return function(e,t,n,r,o){{if(a(t,n),null!=t.instance){var l=i(e,t.instance,n,r,o);return t.dom=t.instance.dom,t.domSize=null!=t.dom?t.instance.domSize:0,f(e,l,o),l}return t.domSize=0,k}}(e,l,s,u,c);switch(l.state={},null!=l.attrs&&b(l.attrs,l,s),h){case"#":return function(e,t,n){return t.dom=A.createTextNode(t.children),f(e,t.dom,n),t.dom}(e,l,c);case"<":return o(e,l,c);case"[":return function(e,t,n,i,o){var a=A.createDocumentFragment();if(null!=t.children){var l=t.children;r(a,l,0,l.length,n,null,i)}return t.dom=a.firstChild,t.domSize=a.childNodes.length,f(e,a,o),a}(e,l,s,u,c);default:return function(e,i,o,a,l){var s=i.tag,u=i.attrs,c=u&&u.is,h=(a=t(i)||a)?c?A.createElementNS(a,s,{is:c}):A.createElementNS(a,s):c?A.createElement(s,{is:c}):A.createElement(s);i.dom=h,null!=u&&function(e,t,n){for(var r in t)y(e,r,null,t[r],n)}(i,u,a);if(f(e,h,l),null!=i.attrs&&null!=i.attrs.contenteditable)d(i);else if(null!=i.text&&(""!==i.text?h.textContent=i.text:i.children=[n("#",void 0,void 0,i.text,void 0,void 0)]),null!=i.children){var v=i.children;r(h,v,0,v.length,o,null,a),function(e){var t=e.attrs;"select"===e.tag&&null!=t&&("value"in t&&y(e,"value",null,t.value,void 0),"selectedIndex"in t&&y(e,"selectedIndex",null,t.selectedIndex,void 0))}(i)}return h}(e,l,s,u,c)}}function o(e,t,n){var r={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(t.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",i=A.createElement(r);i.innerHTML=t.children,t.dom=i.firstChild,t.domSize=i.childNodes.length;for(var o,a=A.createDocumentFragment();o=i.firstChild;)a.appendChild(o);return f(e,a,n),a}function a(e,t){var r;if("function"==typeof e.tag.view){if(e.state=Object.create(e.tag),null!=(r=e.state.view).$$reentrantLock$$)return k;r.$$reentrantLock$$=!0}else{if(e.state=void 0,null!=(r=e.tag).$$reentrantLock$$)return k;r.$$reentrantLock$$=!0,e.state=null!=e.tag.prototype&&"function"==typeof e.tag.prototype.view?new e.tag(e):e.tag(e)}if(e._state=e.state,null!=e.attrs&&b(e.attrs,e,t),b(e._state,e,t),e.instance=n.normalize(e._state.view.call(e.state,e)),e.instance===e)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null}function l(e,t,n,o,a,l,d){if(t!==n&&(null!=t||null!=n))if(null==t)r(e,n,0,n.length,a,l,d);else if(null==n)h(t,0,t.length,n);else{if(t.length===n.length){for(var v=!1,p=0;p<n.length;p++)if(null!=n[p]&&null!=t[p]){v=null==n[p].key&&null==t[p].key;break}if(v){for(p=0;p<t.length;p++)t[p]!==n[p]&&(null==t[p]&&null!=n[p]?i(e,n[p],a,d,c(t,p+1,l)):null==n[p]?h(t,p,p+1,n):s(e,t[p],n[p],a,c(t,p+1,l),o,d));return}}if(o=o||function(e,t){if(null!=e.pool&&Math.abs(e.pool.length-t.length)<=Math.abs(e.length-t.length)){var n=e[0]&&e[0].children&&e[0].children.length||0,r=e.pool[0]&&e.pool[0].children&&e.pool[0].children.length||0,i=t[0]&&t[0].children&&t[0].children.length||0;if(Math.abs(r-i)<=Math.abs(n-i))return!0}return!1}(t,n)){var m=t.pool;t=t.concat(t.pool)}for(var y,g=0,w=0,b=t.length-1,x=n.length-1;b>=g&&x>=w;){if((A=t[g])!==(k=n[w])||o)if(null==A)g++;else if(null==k)w++;else if(A.key===k.key){var E=null!=m&&g>=t.length-m.length||null==m&&o;w++,s(e,A,k,a,c(t,++g,l),E,d),o&&A.tag===k.tag&&f(e,u(A),l)}else{if((A=t[b])!==k||o)if(null==A)b--;else if(null==k)w++;else{if(A.key!==k.key)break;E=null!=m&&b>=t.length-m.length||null==m&&o;s(e,A,k,a,c(t,b+1,l),E,d),(o||w<x)&&f(e,u(A),c(t,g,l)),b--,w++}else b--,w++}else g++,w++}for(;b>=g&&x>=w;){var A,k;if((A=t[b])!==(k=n[x])||o)if(null==A)b--;else if(null==k)x--;else if(A.key===k.key){E=null!=m&&b>=t.length-m.length||null==m&&o;s(e,A,k,a,c(t,b+1,l),E,d),o&&A.tag===k.tag&&f(e,u(A),l),null!=A.dom&&(l=A.dom),b--,x--}else{if(y||(y=function(e,t){for(var n={},r=0,r=0;r<t;r++){var i=e[r];if(null!=i){var o=i.key;null!=o&&(n[o]=r)}}return n}(t,b)),null!=k){var S=y[k.key];if(null!=S){var _=t[S];E=null!=m&&S>=t.length-m.length||null==m&&o;s(e,_,k,a,c(t,b+1,l),o,d),f(e,u(_),l),t[S].skip=!0,null!=_.dom&&(l=_.dom)}else{l=i(e,k,a,d,l)}}x--}else b--,x--;if(x<w)break}r(e,n,w,x+1,a,l,d),h(t,g,b+1,n)}}function s(e,r,c,f,h,p,m){var E=r.tag;if(E===c.tag){if(c.state=r.state,c._state=r._state,c.events=r.events,!p&&function(e,t){var n,r;null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate&&(n=e.attrs.onbeforeupdate.call(e.state,e,t));"string"!=typeof e.tag&&"function"==typeof e._state.onbeforeupdate&&(r=e._state.onbeforeupdate.call(e.state,e,t));if(!(void 0===n&&void 0===r||n||r))return e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,!0;return!1}(c,r))return;if("string"==typeof E)switch(null!=c.attrs&&(p?(c.state={},b(c.attrs,c,f)):x(c.attrs,c,f)),E){case"#":!function(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children);t.dom=e.dom}(r,c);break;case"<":!function(e,t,n,r){t.children!==n.children?(u(t),o(e,n,r)):(n.dom=t.dom,n.domSize=t.domSize)}(e,r,c,h);break;case"[":!function(e,t,n,r,i,o,a){l(e,t.children,n.children,r,i,o,a);var s=0,u=n.children;if(n.dom=null,null!=u){for(var c=0;c<u.length;c++){var f=u[c];null!=f&&null!=f.dom&&(null==n.dom&&(n.dom=f.dom),s+=f.domSize||1)}1!==s&&(n.domSize=s)}}(e,r,c,p,f,h,m);break;default:!function(e,r,i,o,a){var s=r.dom=e.dom;a=t(r)||a,"textarea"===r.tag&&(null==r.attrs&&(r.attrs={}),null!=r.text&&(r.attrs.value=r.text,r.text=void 0));(function(e,t,n,r){if(null!=n)for(var i in n)y(e,i,t&&t[i],n[i],r);if(null!=t)for(var i in t)null!=n&&i in n||("className"===i&&(i="class"),"o"!==i[0]||"n"!==i[1]||g(i)?"key"!==i&&e.dom.removeAttribute(i):w(e,i,void 0))})(r,e.attrs,r.attrs,a),null!=r.attrs&&null!=r.attrs.contenteditable?d(r):null!=e.text&&null!=r.text&&""!==r.text?e.text.toString()!==r.text.toString()&&(e.dom.firstChild.nodeValue=r.text):(null!=e.text&&(e.children=[n("#",void 0,void 0,e.text,void 0,e.dom.firstChild)]),null!=r.text&&(r.children=[n("#",void 0,void 0,r.text,void 0,void 0)]),l(s,e.children,r.children,i,o,null,a))}(r,c,p,f,m)}else!function(e,t,r,o,l,u,c){if(u)a(r,o);else{if(r.instance=n.normalize(r._state.view.call(r.state,r)),r.instance===r)throw Error("A view cannot return the vnode it received as argument");null!=r.attrs&&x(r.attrs,r,o),x(r._state,r,o)}null!=r.instance?(null==t.instance?i(e,r.instance,o,c,l):s(e,t.instance,r.instance,o,l,u,c),r.dom=r.instance.dom,r.domSize=r.instance.domSize):null!=t.instance?(v(t.instance,null),r.dom=void 0,r.domSize=0):(r.dom=t.dom,r.domSize=t.domSize)}(e,r,c,f,h,p,m)}else v(r,null),i(e,c,f,m,h)}function u(e){var t=e.domSize;if(null!=t||null==e.dom){var n=A.createDocumentFragment();if(t>0){for(var r=e.dom;--t;)n.appendChild(r.nextSibling);n.insertBefore(r,n.firstChild)}return n}return e.dom}function c(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function f(e,t,n){n&&n.parentNode?e.insertBefore(t,n):e.appendChild(t)}function d(e){var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=e.text||null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted")}function h(e,t,n,r){for(var i=t;i<n;i++){var o=e[i];null!=o&&(o.skip?o.skip=!1:v(o,r))}}function v(e,t){function n(){if(++i===r&&(m(e),e.dom)){var n=e.domSize||1;if(n>1)for(var o=e.dom;--n;)p(o.nextSibling);p(e.dom),null==t||null!=e.domSize||function(e){return null!=e&&(e.oncreate||e.onupdate||e.onbeforeremove||e.onremove)}(e.attrs)||"string"!=typeof e.tag||(t.pool?t.pool.push(e):t.pool=[e])}}var r=1,i=0;if(e.attrs&&"function"==typeof e.attrs.onbeforeremove){null!=(o=e.attrs.onbeforeremove.call(e.state,e))&&"function"==typeof o.then&&(r++,o.then(n,n))}if("string"!=typeof e.tag&&"function"==typeof e._state.onbeforeremove){var o;null!=(o=e._state.onbeforeremove.call(e.state,e))&&"function"==typeof o.then&&(r++,o.then(n,n))}n()}function p(e){var t=e.parentNode;null!=t&&t.removeChild(e)}function m(e){if(e.attrs&&"function"==typeof e.attrs.onremove&&e.attrs.onremove.call(e.state,e),"string"!=typeof e.tag&&"function"==typeof e._state.onremove&&e._state.onremove.call(e.state,e),null!=e.instance)m(e.instance);else{var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var r=t[n];null!=r&&m(r)}}}function y(e,t,n,r,i){var o=e.dom;if("key"!==t&&"is"!==t&&(n!==r||function(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===A.activeElement}(e,t)||"object"==typeof r)&&void 0!==r&&!g(t)){var a=t.indexOf(":");if(a>-1&&"xlink"===t.substr(0,a))o.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(a+1),r);else if("o"===t[0]&&"n"===t[1]&&"function"==typeof r)w(e,t,r);else if("style"===t)!function(e,t,n){t===n&&(e.style.cssText="",t=null);if(null==n)e.style.cssText="";else if("string"==typeof n)e.style.cssText=n;else{"string"==typeof t&&(e.style.cssText="");for(var r in n)e.style[r]=n[r];if(null!=t&&"string"!=typeof t)for(var r in t)r in n||(e.style[r]="")}}(o,n,r);else if(t in o&&!function(e){return"href"===e||"list"===e||"form"===e||"width"===e||"height"===e}(t)&&void 0===i&&!function(e){return e.attrs.is||e.tag.indexOf("-")>-1}(e)){if("value"===t){var l=""+r;if(("input"===e.tag||"textarea"===e.tag)&&e.dom.value===l&&e.dom===A.activeElement)return;if("select"===e.tag)if(null===r){if(-1===e.dom.selectedIndex&&e.dom===A.activeElement)return}else if(null!==n&&e.dom.value===l&&e.dom===A.activeElement)return;if("option"===e.tag&&null!=n&&e.dom.value===l)return}if("input"===e.tag&&"type"===t)return void o.setAttribute(t,r);o[t]=r}else"boolean"==typeof r?r?o.setAttribute(t,""):o.removeAttribute(t):o.setAttribute("className"===t?"class":t,r)}}function g(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function w(e,t,n){var r=e.dom,i="function"!=typeof E?n:function(e){var t=n.call(r,e);return E.call(r,e),t};if(t in r)r[t]="function"==typeof n?i:null;else{var o=t.slice(2);if(void 0===e.events&&(e.events={}),e.events[t]===i)return;null!=e.events[t]&&r.removeEventListener(o,e.events[t],!1),"function"==typeof n&&(e.events[t]=i,r.addEventListener(o,e.events[t],!1))}}function b(e,t,n){"function"==typeof e.oninit&&e.oninit.call(t.state,t),"function"==typeof e.oncreate&&n.push(e.oncreate.bind(t.state,t))}function x(e,t,n){"function"==typeof e.onupdate&&n.push(e.onupdate.bind(t.state,t))}var E,A=e.document,k=A.createDocumentFragment(),S={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};return{render:function(e,t){if(!e)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var r=[],i=A.activeElement,o=e.namespaceURI;null==e.vnodes&&(e.textContent=""),Array.isArray(t)||(t=[t]),l(e,e.vnodes,n.normalizeChildren(t),!1,r,null,"http://www.w3.org/1999/xhtml"===o?void 0:o),e.vnodes=t;for(var a=0;a<r.length;a++)r[a]();null!=i&&A.activeElement!==i&&i.focus()},setEventCallback:function(e){return E=e}}},h=function(e){function t(e){var t=i.indexOf(e);t>-1&&i.splice(t,2)}function n(){for(var e=1;e<i.length;e+=2)i[e]()}var r=d(e);r.setEventCallback(function(e){!1===e.redraw?e.redraw=void 0:n()});var i=[];return{subscribe:function(e,n){t(e),i.push(e,function(e){var t=0,n=null,r="function"==typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(){var i=Date.now();0===t||i-t>=16?(t=i,e()):null===n&&(n=r(function(){n=null,e(),t=Date.now()},16-(i-t)))}}(n))},unsubscribe:t,redraw:n,render:r.render}}(window);f.setCompletionCallback(h.redraw);l.mount=function(e){return function(t,r){if(null===r)return e.render(t,[]),void e.unsubscribe(t);if(null==r.view&&"function"!=typeof r)throw new Error("m.mount(element, component) expects a component, not a vnode");e.subscribe(t,function(){e.render(t,n(r))}),e.redraw()}}(h);var v=s,p=function(e){if(""===e||null==e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t=e.split("&"),n={},r={},i=0;i<t.length;i++){var o=t[i].split("="),a=decodeURIComponent(o[0]),l=2===o.length?decodeURIComponent(o[1]):"";"true"===l?l=!0:"false"===l&&(l=!1);var s=a.split(/\]\[?|\[/),u=n;a.indexOf("[")>-1&&s.pop();for(var c=0;c<s.length;c++){var f=s[c],d=s[c+1],h=""==d||!isNaN(parseInt(d,10)),v=c===s.length-1;if(""===f){null==r[a=s.slice(0,c).join()]&&(r[a]=0),f=r[a]++}null==u[f]&&(u[f]=v?l:h?[]:{}),u=u[f]}}return n},m=function(e){function t(t){var n=e.location[t].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);return"pathname"===t&&"/"!==n[0]&&(n="/"+n),n}function n(e,t,n){var r=e.indexOf("?"),i=e.indexOf("#"),o=r>-1?r:i>-1?i:e.length;if(r>-1){var a=i>-1?i:e.length,l=p(e.slice(r+1,a));for(var s in l)t[s]=l[s]}if(i>-1){var u=p(e.slice(i+1));for(var s in u)n[s]=u[s]}return e.slice(0,o)}var r,i="function"==typeof e.history.pushState,o="function"==typeof setImmediate?setImmediate:setTimeout,a={prefix:"#!"};return a.getPath=function(){switch(a.prefix.charAt(0)){case"#":return t("hash").slice(a.prefix.length);case"?":return t("search").slice(a.prefix.length)+t("hash");default:return t("pathname").slice(a.prefix.length)+t("search")+t("hash")}},a.setPath=function(t,r,o){var l={},s={};if(t=n(t,l,s),null!=r){for(var c in r)l[c]=r[c];t=t.replace(/:([^\/]+)/g,function(e,t){return delete l[t],r[t]})}var f=u(l);f&&(t+="?"+f);var d=u(s);if(d&&(t+="#"+d),i){var h=o?o.state:null,v=o?o.title:null;e.onpopstate(),o&&o.replace?e.history.replaceState(h,v,a.prefix+t):e.history.pushState(h,v,a.prefix+t)}else e.location.href=a.prefix+t},a.defineRoutes=function(t,l,s){function u(){var r=a.getPath(),i={},o=n(r,i,i),u=e.history.state;if(null!=u)for(var c in u)i[c]=u[c];for(var f in t){var d=new RegExp("^"+f.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(d.test(o))return void o.replace(d,function(){for(var e=f.match(/:[^\/]+/g)||[],n=[].slice.call(arguments,1,-2),o=0;o<e.length;o++)i[e[o].replace(/:|\./g,"")]=decodeURIComponent(n[o]);l(t[f],i,r,f)})}s(r,i)}i?e.onpopstate=function(e){return function(){null==r&&(r=o(function(){r=null,e()}))}}(u):"#"===a.prefix.charAt(0)&&(e.onhashchange=u),u()},a};l.route=function(e,t){var r,i,o,a,l,s=m(e),u=function(e,u,c){if(null==e)throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined");var f=function(){null!=r&&t.render(e,r(n(i,o.key,o)))},d=function(e){if(e===u)throw new Error("Could not resolve default route "+u);s.setPath(u,null,{replace:!0})};s.defineRoutes(c,function(e,t,n){var s=l=function(e,u){s===l&&(i=null==u||"function"!=typeof u.view&&"function"!=typeof u?"div":u,o=t,a=n,l=null,r=(e.render||function(e){return e}).bind(e),f())};e.view||"function"==typeof e?s({},e):e.onmatch?v.resolve(e.onmatch(t,n)).then(function(t){s(e,t)},d):s(e,"div")},d),t.subscribe(e,f)};return u.set=function(e,t,n){null!=l&&((n=n||{}).replace=!0),l=null,s.setPath(e,t,n)},u.get=function(){return a},u.prefix=function(e){s.prefix=e},u.link=function(e){e.dom.setAttribute("href",s.prefix+e.attrs.href),e.dom.onclick=function(e){if(!(e.ctrlKey||e.metaKey||e.shiftKey||2===e.which)){e.preventDefault(),e.redraw=!1;var t=this.getAttribute("href");0===t.indexOf(s.prefix)&&(t=t.slice(s.prefix.length)),u.set(t,void 0,void 0)}}},u.param=function(e){return void 0!==o&&void 0!==e?o[e]:o},u}(window,h),l.withAttr=function(e,t,n){return function(r){t.call(n||this,e in r.currentTarget?r.currentTarget[e]:r.currentTarget.getAttribute(e))}};var y=d(window);l.render=y.render,l.redraw=h.redraw,l.request=f.request,l.jsonp=f.jsonp,l.parseQueryString=p,l.buildQueryString=u,l.version="1.1.5",l.vnode=n,void 0!==t?t.exports=l:window.m=l}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(e,n,r){!function(e){"use strict";function r(){}function i(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function o(e){return function(){return this[e].apply(this,arguments)}}function a(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!=typeof e)&&a(e.listener)}var l=r.prototype,s=e.EventEmitter;l.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},l.flattenListeners=function(e){var t,n=[];for(t=0;t<e.length;t+=1)n.push(e[t].listener);return n},l.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&((t={})[e]=n),t||n},l.addListener=function(e,t){if(!a(t))throw new TypeError("listener must be a function");var n,r=this.getListenersAsObject(e),o="object"==typeof t;for(n in r)r.hasOwnProperty(n)&&-1===i(r[n],t)&&r[n].push(o?t:{listener:t,once:!1});return this},l.on=o("addListener"),l.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},l.once=o("addOnceListener"),l.defineEvent=function(e){return this.getListeners(e),this},l.defineEvents=function(e){for(var t=0;t<e.length;t+=1)this.defineEvent(e[t]);return this},l.removeListener=function(e,t){var n,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&-1!==(n=i(o[r],t))&&o[r].splice(n,1);return this},l.off=o("removeListener"),l.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},l.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},l.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,a=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):a.call(this,r,i));return this},l.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if(e instanceof RegExp)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},l.removeAllListeners=o("removeEvent"),l.emitEvent=function(e,t){var n,r,i,o,a=this.getListenersAsObject(e);for(o in a)if(a.hasOwnProperty(o))for(n=a[o].slice(0),i=0;i<n.length;i++)!0===(r=n[i]).once&&this.removeListener(e,r.listener),r.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,r.listener);return this},l.trigger=o("emitEvent"),l.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},l.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},l._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},l._getEvents=function(){return this._events||(this._events={})},r.noConflict=function(){return e.EventEmitter=s,r},"function"==typeof t&&t.amd?t(function(){return r}):"object"==typeof n&&n.exports?n.exports=r:e.EventEmitter=r}(this||{})},{}]},{},[1])}();
2
  //# sourceMappingURL=admin.min.js.map
1
+ !function(){var e=void 0,t=void 0;!function(){function t(n,r,i){function o(l,s){if(!r[l]){if(!n[l]){var u="function"==typeof e&&e;if(!s&&u)return u(l,!0);if(a)return a(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[l]={exports:{}};n[l][0].call(f.exports,function(e){var t=n[l][1][e];return o(t||e)},f,f.exports,t,n,r,i)}return r[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}return t}()({1:[function(e,t,n){"use strict";var r=window.m=e("mithril"),i=e("wolfy87-eventemitter"),o=document.getElementById("mc4wp-admin"),a=new i,l=e("./admin/tabs.js")(o),s=e("./admin/helpers.js"),u=e("./admin/settings.js")(o,s,a),c=e("./admin/list-fetcher.js"),f=document.getElementById("mc4wp-list-fetcher");f&&r.mount(f,new c),window.mc4wp=window.mc4wp||{},window.mc4wp.deps=window.mc4wp.deps||{},window.mc4wp.deps.mithril=r,window.mc4wp.helpers=s,window.mc4wp.events=a,window.mc4wp.settings=u,window.mc4wp.tabs=l},{"./admin/helpers.js":2,"./admin/list-fetcher.js":3,"./admin/settings.js":4,"./admin/tabs.js":5,mithril:7,"wolfy87-eventemitter":8}],2:[function(e,t,n){"use strict";var r={};r.toggleElement=function(e){for(var t=document.querySelectorAll(e),n=0;n<t.length;n++){var r=t[n].clientHeight<=0;t[n].style.display=r?"":"none"}},r.bindEventToElement=function(e,t,n){e.addEventListener?e.addEventListener(t,n):e.attachEvent&&e.attachEvent("on"+t,n)},r.bindEventToElements=function(e,t,n){Array.prototype.forEach.call(e,function(e){r.bindEventToElement(e,t,n)})},r.debounce=function(e,t,n){var r;return function(){var i=this,o=arguments,a=n&&!r;clearTimeout(r),r=setTimeout(function(){r=null,n||e.apply(i,o)},t),a&&e.apply(i,o)}},function(){var e=document.querySelectorAll("[data-showif]");Array.prototype.forEach.call(e,function(e){function t(){if("radio"!==this.getAttribute("type")||this.checked){var t=("checkbox"===this.getAttribute("type")?this.checked:this.value)==n.value;a?(e.style.display=t?"":"none",e.style.visibility=t?"":"hidden"):e.style.opacity=t?"":"0.4",Array.prototype.forEach.call(o,function(e){t?e.removeAttribute("readonly"):e.setAttribute("readonly","readonly")})}}var n=JSON.parse(e.getAttribute("data-showif")),i=document.querySelectorAll('[name="'+n.element+'"]'),o=e.querySelectorAll("input,select,textarea:not([readonly])"),a=void 0===n.hide||n.hide;Array.prototype.forEach.call(i,function(e){t.call(e)}),r.bindEventToElements(i,"change",t)})}(),t.exports=r},{}],3:[function(e,t,n){"use strict";function r(){this.working=!1,this.done=!1,o.mailchimp.api_connected&&0===o.mailchimp.lists.length&&this.fetch()}var i=window.jQuery,o=mc4wp_vars,a=o.i18n;r.prototype.fetch=function(e){e&&e.preventDefault(),this.working=!0,this.done=!1,i.post(ajaxurl,{action:"mc4wp_renew_mailchimp_lists",timeout:18e4}).done(function(e){this.success=!0,e&&window.setTimeout(function(){window.location.reload()},3e3)}.bind(this)).fail(function(e){this.success=!1}.bind(this)).always(function(e){this.working=!1,this.done=!0,m.redraw()}.bind(this))},r.prototype.view=function(){return m("form",{method:"POST",onsubmit:this.fetch.bind(this)},[m("p",[m("input",{type:"submit",value:this.working?a.fetching_mailchimp_lists:a.renew_mailchimp_lists,className:"button",disabled:!!this.working}),m.trust(" &nbsp; "),this.working?[m("span.mc4wp-loader","Loading..."),m.trust(" &nbsp; "),m("em.help",a.fetching_mailchimp_lists_can_take_a_while)]:"",this.done?[this.success?m("em.help.green",a.fetching_mailchimp_lists_done):m("em.help.red",a.fetching_mailchimp_lists_error)]:""])])},t.exports=r},{}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.exports=function(e,t,n){function i(){return l=[],Array.prototype.forEach.call(o,function(e){("boolean"!=typeof e.checked||e.checked)&&"object"===r(a[e.value])&&l.push(a[e.value])}),n.trigger("selectedLists.change",[l]),l}e.querySelector("form");var o=e.querySelectorAll(".mc4wp-list-input"),a=mc4wp_vars.mailchimp.lists,l=[];return n.on("selectedLists.change",function(){var e=document.querySelectorAll(".lists--only-selected > *");Array.prototype.forEach.call(e,function(e){(function(e,t){return l.filter(function(n){return n[e]===t})})("id",e.getAttribute("data-list-id")).length>0?e.setAttribute("class",e.getAttribute("class").replace("hidden","")):e.setAttribute("class",e.getAttribute("class")+" hidden")})}),t.bindEventToElements(o,"change",i),i(),{getSelectedLists:function(){return l}}}},{}],5:[function(e,t,n){"use strict";var r=e("./url.js");t.exports=function(e){function t(e){for(var t=0;t<f.length;t++)if(f[t].id===e)return f[t]}function n(e,n){if("string"==typeof e&&(e=t(e)),!e)return!1;void 0==n&&(n=!0),s.removeClass("tab-active").css("display","none"),u.removeClass("nav-tab-active"),Array.prototype.forEach.call(e.nav,function(e){e.className+=" nav-tab-active",e.blur()}),e.element.style.display="block",e.element.className+=" tab-active";var o=r.setParameter(window.location.href,"tab",e.id);return history.pushState&&n&&history.pushState(e.id,"",o),i(e),c.value=o,"function"==typeof tb_remove&&tb_remove(),"fields"===e.id&&window.mc4wp&&window.mc4wp.forms&&window.mc4wp.forms.editor&&mc4wp.forms.editor.refresh(),!0}function i(e){var t=document.title.split("-");document.title=document.title.replace(t[0],e.title+" ")}function o(e){e=e||window.event;var t=this.getAttribute("data-tab");if(!t){var i=this.className.match(/nav-tab-(\w+)?/);i&&(t=i[1])}if(!t){var o=r.parse(this.href);if(!o.tab)return;t=o.tab}return!n(t)||(e.preventDefault(),e.returnValue=!1,!1)}var a=window.jQuery,l=a(e),s=l.find(".tab"),u=l.find(".nav-tab"),c=e.querySelector('input[name="_wp_http_referer"]'),f=[];return a.each(s,function(t,r){var i=r.id.substring(4),o=a(r).find("h2").first().text();f.push({id:i,title:o,element:r,nav:e.querySelectorAll(".nav-tab-"+i),open:function(){return n(i)}})}),u.click(o),a(document.body).on("click",".tab-link",o),function(){if(history.pushState){var e=s.filter(":visible").get(0);if(e){var n=t(e.id.substring(4));n&&(history.replaceState&&null===history.state&&history.replaceState(n.id,""),i(n))}}}(),window.addEventListener&&history.pushState&&window.addEventListener("popstate",function(e){return!e.state||n(e.state,!1)}),{open:n,get:t}}},{"./url.js":6}],6:[function(e,t,n){"use strict";var r={parse:function(e){var t={},n=e.split("&");for(var r in n)if(n.hasOwnProperty(r)){var i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t},build:function(e){var t=[];for(var n in e)t.push(n+"="+encodeURIComponent(e[n]));return t.join("&")},setParameter:function(e,t,n){var i=r.parse(e);return i[t]=n,r.build(i)}};t.exports=r},{}],7:[function(e,t,n){(function(e){!function(){"use strict";function n(e,t,n,r,i,o){return{tag:e,key:t,attrs:n,children:r,text:i,dom:o,domSize:void 0,state:void 0,_state:void 0,events:void 0,instance:void 0,skip:!1}}function r(e){var t,r=arguments[1],l=2;if(null==e||"string"!=typeof e&&"function"!=typeof e&&"function"!=typeof e.view)throw Error("The selector must be either a string or a component.");if("string"==typeof e)var s=o[e]||function(e){for(var t,n="div",r=[],a={};t=i.exec(e);){var l=t[1],s=t[2];if(""===l&&""!==s)n=s;else if("#"===l)a.id=s;else if("."===l)r.push(s);else if("["===t[3][0]){var u=t[6];u&&(u=u.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?r.push(u):a[t[4]]=""===u?u:u||!0}}return r.length>0&&(a.className=r.join(" ")),o[e]={tag:n,attrs:a}}(e);if(null==r?r={}:("object"!=typeof r||null!=r.tag||Array.isArray(r))&&(r={},l=1),arguments.length===l+1)t=arguments[l],Array.isArray(t)||(t=[t]);else for(t=[];l<arguments.length;)t.push(arguments[l++]);var u=n.normalizeChildren(t);return"string"==typeof e?function(e,t,r){var i,o,l=!1,s=t.className||t.class;for(var u in e.attrs)a.call(e.attrs,u)&&(t[u]=e.attrs[u]);void 0!==s&&(void 0!==t.class&&(t.class=void 0,t.className=s),null!=e.attrs.className&&(t.className=e.attrs.className+" "+s));for(var u in t)if(a.call(t,u)&&"key"!==u){l=!0;break}return Array.isArray(r)&&1===r.length&&null!=r[0]&&"#"===r[0].tag?o=r[0].children:i=r,n(e.tag,t.key,l?t:void 0,i,o)}(s,r,u):n(e,r.key,r,u)}n.normalize=function(e){return Array.isArray(e)?n("[",void 0,void 0,n.normalizeChildren(e),void 0,void 0):null!=e&&"object"!=typeof e?n("#",void 0,void 0,!1===e?"":e,void 0,void 0):e},n.normalizeChildren=function(e){for(var t=0;t<e.length;t++)e[t]=n.normalize(e[t]);return e};var i=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,o={},a={}.hasOwnProperty;r.trust=function(e){return null==e&&(e=""),n("<",void 0,void 0,e,void 0,void 0)},r.fragment=function(e,t){return n("[",e.key,e,n.normalizeChildren(t),void 0,void 0)};var l=r;if((s=function(e){function t(e,t){return function a(s){var f;try{if(!t||null==s||"object"!=typeof s&&"function"!=typeof s||"function"!=typeof(f=s.then))c(function(){t||0!==e.length||console.error("Possible unhandled promise rejection:",s);for(var n=0;n<e.length;n++)e[n](s);i.length=0,o.length=0,u.state=t,u.retry=function(){a(s)}});else{if(s===r)throw new TypeError("Promise can't be resolved w/ itself");n(f.bind(s))}}catch(e){l(e)}}}function n(e){function t(e){return function(t){n++>0||e(t)}}var n=0,r=t(l);try{e(t(a),r)}catch(e){r(e)}}if(!(this instanceof s))throw new Error("Promise must be called with `new`");if("function"!=typeof e)throw new TypeError("executor must be a function");var r=this,i=[],o=[],a=t(i,!0),l=t(o,!1),u=r._instance={resolvers:i,rejectors:o},c="function"==typeof setImmediate?setImmediate:setTimeout;n(e)}).prototype.then=function(e,t){function n(e,t,n,a){t.push(function(t){if("function"!=typeof e)n(t);else try{r(e(t))}catch(e){i&&i(e)}}),"function"==typeof o.retry&&a===o.state&&o.retry()}var r,i,o=this._instance,a=new s(function(e,t){r=e,i=t});return n(e,o.resolvers,r,!0),n(t,o.rejectors,i,!1),a},s.prototype.catch=function(e){return this.then(null,e)},s.resolve=function(e){return e instanceof s?e:new s(function(t){t(e)})},s.reject=function(e){return new s(function(t,n){n(e)})},s.all=function(e){return new s(function(t,n){var r=e.length,i=0,o=[];if(0===e.length)t([]);else for(var a=0;a<e.length;a++)!function(a){function l(e){i++,o[a]=e,i===r&&t(o)}null==e[a]||"object"!=typeof e[a]&&"function"!=typeof e[a]||"function"!=typeof e[a].then?l(e[a]):e[a].then(l,n)}(a)})},s.race=function(e){return new s(function(t,n){for(var r=0;r<e.length;r++)e[r].then(t,n)})},"undefined"!=typeof window){void 0===window.Promise&&(window.Promise=s);var s=window.Promise}else if(void 0!==e){void 0===e.Promise&&(e.Promise=s);s=e.Promise}var u=function(e){function t(e,r){if(Array.isArray(r))for(var i=0;i<r.length;i++)t(e+"["+i+"]",r[i]);else if("[object Object]"===Object.prototype.toString.call(r))for(var i in r)t(e+"["+i+"]",r[i]);else n.push(encodeURIComponent(e)+(null!=r&&""!==r?"="+encodeURIComponent(r):""))}if("[object Object]"!==Object.prototype.toString.call(e))return"";var n=[];for(var r in e)t(r,e[r]);return n.join("&")},c=new RegExp("^file://","i"),f=function(e,t){function n(){function e(){0==--t&&"function"==typeof f&&f()}var t=0;return function n(r){var i=r.then;return r.then=function(){t++;var o=i.apply(r,arguments);return o.then(e,function(n){if(e(),0===t)throw n}),n(o)},r}}function r(e,t){if("string"==typeof e){var n=e;null==(e=t||{}).url&&(e.url=n)}return e}function i(e,t){if(null==t)return e;for(var n=e.match(/:[^\/]+/gi)||[],r=0;r<n.length;r++){var i=n[r].slice(1);null!=t[i]&&(e=e.replace(n[r],t[i]))}return e}function o(e,t){var n=u(t);return""!==n&&(e+=(e.indexOf("?")<0?"?":"&")+n),e}function a(e){try{return""!==e?JSON.parse(e):null}catch(t){throw new Error(e)}}function l(e){return e.responseText}function s(e,t){if("function"==typeof e){if(!Array.isArray(t))return new e(t);for(var n=0;n<t.length;n++)t[n]=new e(t[n])}return t}var f,d=0;return{request:function(u,f){var d=n();u=r(u,f);var h=new t(function(t,n){null==u.method&&(u.method="GET"),u.method=u.method.toUpperCase();var r="GET"!==u.method&&"TRACE"!==u.method&&("boolean"!=typeof u.useBody||u.useBody);"function"!=typeof u.serialize&&(u.serialize="undefined"!=typeof FormData&&u.data instanceof FormData?function(e){return e}:JSON.stringify),"function"!=typeof u.deserialize&&(u.deserialize=a),"function"!=typeof u.extract&&(u.extract=l),u.url=i(u.url,u.data),r?u.data=u.serialize(u.data):u.url=o(u.url,u.data);var f=new e.XMLHttpRequest,d=!1,h=f.abort;f.abort=function(){d=!0,h.call(f)},f.open(u.method,u.url,"boolean"!=typeof u.async||u.async,"string"==typeof u.user?u.user:void 0,"string"==typeof u.password?u.password:void 0),u.serialize!==JSON.stringify||!r||u.headers&&u.headers.hasOwnProperty("Content-Type")||f.setRequestHeader("Content-Type","application/json; charset=utf-8"),u.deserialize!==a||u.headers&&u.headers.hasOwnProperty("Accept")||f.setRequestHeader("Accept","application/json, text/*"),u.withCredentials&&(f.withCredentials=u.withCredentials);for(var v in u.headers)({}).hasOwnProperty.call(u.headers,v)&&f.setRequestHeader(v,u.headers[v]);"function"==typeof u.config&&(f=u.config(f,u)||f),f.onreadystatechange=function(){if(!d&&4===f.readyState)try{var e=u.extract!==l?u.extract(f,u):u.deserialize(u.extract(f,u));if(f.status>=200&&f.status<300||304===f.status||c.test(u.url))t(s(u.type,e));else{var r=new Error(f.responseText);for(var i in e)r[i]=e[i];n(r)}}catch(e){n(e)}},r&&null!=u.data?f.send(u.data):f.send()});return!0===u.background?h:d(h)},jsonp:function(a,l){var u=n();a=r(a,l);var c=new t(function(t,n){var r=a.callbackName||"_mithril_"+Math.round(1e16*Math.random())+"_"+d++,l=e.document.createElement("script");e[r]=function(n){l.parentNode.removeChild(l),t(s(a.type,n)),delete e[r]},l.onerror=function(){l.parentNode.removeChild(l),n(new Error("JSONP request failed")),delete e[r]},null==a.data&&(a.data={}),a.url=i(a.url,a.data),a.data[a.callbackKey||"callback"]=r,l.src=o(a.url,a.data),e.document.documentElement.appendChild(l)});return!0===a.background?c:u(c)},setCompletionCallback:function(e){f=e}}}(window,s),d=function(e){function t(e){return e.attrs&&e.attrs.xmlns||S[e.tag]}function r(e,t,n,r,o,a,l){for(var s=n;s<r;s++){var u=t[s];null!=u&&i(e,u,o,l,a)}}function i(e,l,s,u,c){var h=l.tag;if("string"!=typeof h)return function(e,t,n,r,o){{if(a(t,n),null!=t.instance){var l=i(e,t.instance,n,r,o);return t.dom=t.instance.dom,t.domSize=null!=t.dom?t.instance.domSize:0,f(e,l,o),l}return t.domSize=0,k}}(e,l,s,u,c);switch(l.state={},null!=l.attrs&&b(l.attrs,l,s),h){case"#":return function(e,t,n){return t.dom=A.createTextNode(t.children),f(e,t.dom,n),t.dom}(e,l,c);case"<":return o(e,l,c);case"[":return function(e,t,n,i,o){var a=A.createDocumentFragment();if(null!=t.children){var l=t.children;r(a,l,0,l.length,n,null,i)}return t.dom=a.firstChild,t.domSize=a.childNodes.length,f(e,a,o),a}(e,l,s,u,c);default:return function(e,i,o,a,l){var s=i.tag,u=i.attrs,c=u&&u.is,h=(a=t(i)||a)?c?A.createElementNS(a,s,{is:c}):A.createElementNS(a,s):c?A.createElement(s,{is:c}):A.createElement(s);i.dom=h,null!=u&&function(e,t,n){for(var r in t)y(e,r,null,t[r],n)}(i,u,a);if(f(e,h,l),null!=i.attrs&&null!=i.attrs.contenteditable)d(i);else if(null!=i.text&&(""!==i.text?h.textContent=i.text:i.children=[n("#",void 0,void 0,i.text,void 0,void 0)]),null!=i.children){var v=i.children;r(h,v,0,v.length,o,null,a),function(e){var t=e.attrs;"select"===e.tag&&null!=t&&("value"in t&&y(e,"value",null,t.value,void 0),"selectedIndex"in t&&y(e,"selectedIndex",null,t.selectedIndex,void 0))}(i)}return h}(e,l,s,u,c)}}function o(e,t,n){var r={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(t.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",i=A.createElement(r);i.innerHTML=t.children,t.dom=i.firstChild,t.domSize=i.childNodes.length;for(var o,a=A.createDocumentFragment();o=i.firstChild;)a.appendChild(o);return f(e,a,n),a}function a(e,t){var r;if("function"==typeof e.tag.view){if(e.state=Object.create(e.tag),null!=(r=e.state.view).$$reentrantLock$$)return k;r.$$reentrantLock$$=!0}else{if(e.state=void 0,null!=(r=e.tag).$$reentrantLock$$)return k;r.$$reentrantLock$$=!0,e.state=null!=e.tag.prototype&&"function"==typeof e.tag.prototype.view?new e.tag(e):e.tag(e)}if(e._state=e.state,null!=e.attrs&&b(e.attrs,e,t),b(e._state,e,t),e.instance=n.normalize(e._state.view.call(e.state,e)),e.instance===e)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null}function l(e,t,n,o,a,l,d){if(t!==n&&(null!=t||null!=n))if(null==t)r(e,n,0,n.length,a,l,d);else if(null==n)h(t,0,t.length,n);else{if(t.length===n.length){for(var v=!1,p=0;p<n.length;p++)if(null!=n[p]&&null!=t[p]){v=null==n[p].key&&null==t[p].key;break}if(v){for(p=0;p<t.length;p++)t[p]!==n[p]&&(null==t[p]&&null!=n[p]?i(e,n[p],a,d,c(t,p+1,l)):null==n[p]?h(t,p,p+1,n):s(e,t[p],n[p],a,c(t,p+1,l),o,d));return}}if(o=o||function(e,t){if(null!=e.pool&&Math.abs(e.pool.length-t.length)<=Math.abs(e.length-t.length)){var n=e[0]&&e[0].children&&e[0].children.length||0,r=e.pool[0]&&e.pool[0].children&&e.pool[0].children.length||0,i=t[0]&&t[0].children&&t[0].children.length||0;if(Math.abs(r-i)<=Math.abs(n-i))return!0}return!1}(t,n)){var m=t.pool;t=t.concat(t.pool)}for(var y,g=0,w=0,b=t.length-1,x=n.length-1;b>=g&&x>=w;){if((A=t[g])!==(k=n[w])||o)if(null==A)g++;else if(null==k)w++;else if(A.key===k.key){var E=null!=m&&g>=t.length-m.length||null==m&&o;w++,s(e,A,k,a,c(t,++g,l),E,d),o&&A.tag===k.tag&&f(e,u(A),l)}else{if((A=t[b])!==k||o)if(null==A)b--;else if(null==k)w++;else{if(A.key!==k.key)break;E=null!=m&&b>=t.length-m.length||null==m&&o;s(e,A,k,a,c(t,b+1,l),E,d),(o||w<x)&&f(e,u(A),c(t,g,l)),b--,w++}else b--,w++}else g++,w++}for(;b>=g&&x>=w;){var A,k;if((A=t[b])!==(k=n[x])||o)if(null==A)b--;else if(null==k)x--;else if(A.key===k.key){E=null!=m&&b>=t.length-m.length||null==m&&o;s(e,A,k,a,c(t,b+1,l),E,d),o&&A.tag===k.tag&&f(e,u(A),l),null!=A.dom&&(l=A.dom),b--,x--}else{if(y||(y=function(e,t){for(var n={},r=0,r=0;r<t;r++){var i=e[r];if(null!=i){var o=i.key;null!=o&&(n[o]=r)}}return n}(t,b)),null!=k){var S=y[k.key];if(null!=S){var _=t[S];E=null!=m&&S>=t.length-m.length||null==m&&o;s(e,_,k,a,c(t,b+1,l),o,d),f(e,u(_),l),t[S].skip=!0,null!=_.dom&&(l=_.dom)}else{l=i(e,k,a,d,l)}}x--}else b--,x--;if(x<w)break}r(e,n,w,x+1,a,l,d),h(t,g,b+1,n)}}function s(e,r,c,f,h,p,m){var E=r.tag;if(E===c.tag){if(c.state=r.state,c._state=r._state,c.events=r.events,!p&&function(e,t){var n,r;null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate&&(n=e.attrs.onbeforeupdate.call(e.state,e,t));"string"!=typeof e.tag&&"function"==typeof e._state.onbeforeupdate&&(r=e._state.onbeforeupdate.call(e.state,e,t));if(!(void 0===n&&void 0===r||n||r))return e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,!0;return!1}(c,r))return;if("string"==typeof E)switch(null!=c.attrs&&(p?(c.state={},b(c.attrs,c,f)):x(c.attrs,c,f)),E){case"#":!function(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children);t.dom=e.dom}(r,c);break;case"<":!function(e,t,n,r){t.children!==n.children?(u(t),o(e,n,r)):(n.dom=t.dom,n.domSize=t.domSize)}(e,r,c,h);break;case"[":!function(e,t,n,r,i,o,a){l(e,t.children,n.children,r,i,o,a);var s=0,u=n.children;if(n.dom=null,null!=u){for(var c=0;c<u.length;c++){var f=u[c];null!=f&&null!=f.dom&&(null==n.dom&&(n.dom=f.dom),s+=f.domSize||1)}1!==s&&(n.domSize=s)}}(e,r,c,p,f,h,m);break;default:!function(e,r,i,o,a){var s=r.dom=e.dom;a=t(r)||a,"textarea"===r.tag&&(null==r.attrs&&(r.attrs={}),null!=r.text&&(r.attrs.value=r.text,r.text=void 0));(function(e,t,n,r){if(null!=n)for(var i in n)y(e,i,t&&t[i],n[i],r);if(null!=t)for(var i in t)null!=n&&i in n||("className"===i&&(i="class"),"o"!==i[0]||"n"!==i[1]||g(i)?"key"!==i&&e.dom.removeAttribute(i):w(e,i,void 0))})(r,e.attrs,r.attrs,a),null!=r.attrs&&null!=r.attrs.contenteditable?d(r):null!=e.text&&null!=r.text&&""!==r.text?e.text.toString()!==r.text.toString()&&(e.dom.firstChild.nodeValue=r.text):(null!=e.text&&(e.children=[n("#",void 0,void 0,e.text,void 0,e.dom.firstChild)]),null!=r.text&&(r.children=[n("#",void 0,void 0,r.text,void 0,void 0)]),l(s,e.children,r.children,i,o,null,a))}(r,c,p,f,m)}else!function(e,t,r,o,l,u,c){if(u)a(r,o);else{if(r.instance=n.normalize(r._state.view.call(r.state,r)),r.instance===r)throw Error("A view cannot return the vnode it received as argument");null!=r.attrs&&x(r.attrs,r,o),x(r._state,r,o)}null!=r.instance?(null==t.instance?i(e,r.instance,o,c,l):s(e,t.instance,r.instance,o,l,u,c),r.dom=r.instance.dom,r.domSize=r.instance.domSize):null!=t.instance?(v(t.instance,null),r.dom=void 0,r.domSize=0):(r.dom=t.dom,r.domSize=t.domSize)}(e,r,c,f,h,p,m)}else v(r,null),i(e,c,f,m,h)}function u(e){var t=e.domSize;if(null!=t||null==e.dom){var n=A.createDocumentFragment();if(t>0){for(var r=e.dom;--t;)n.appendChild(r.nextSibling);n.insertBefore(r,n.firstChild)}return n}return e.dom}function c(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function f(e,t,n){n&&n.parentNode?e.insertBefore(t,n):e.appendChild(t)}function d(e){var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=e.text||null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted")}function h(e,t,n,r){for(var i=t;i<n;i++){var o=e[i];null!=o&&(o.skip?o.skip=!1:v(o,r))}}function v(e,t){function n(){if(++i===r&&(m(e),e.dom)){var n=e.domSize||1;if(n>1)for(var o=e.dom;--n;)p(o.nextSibling);p(e.dom),null==t||null!=e.domSize||function(e){return null!=e&&(e.oncreate||e.onupdate||e.onbeforeremove||e.onremove)}(e.attrs)||"string"!=typeof e.tag||(t.pool?t.pool.push(e):t.pool=[e])}}var r=1,i=0;if(e.attrs&&"function"==typeof e.attrs.onbeforeremove){null!=(o=e.attrs.onbeforeremove.call(e.state,e))&&"function"==typeof o.then&&(r++,o.then(n,n))}if("string"!=typeof e.tag&&"function"==typeof e._state.onbeforeremove){var o;null!=(o=e._state.onbeforeremove.call(e.state,e))&&"function"==typeof o.then&&(r++,o.then(n,n))}n()}function p(e){var t=e.parentNode;null!=t&&t.removeChild(e)}function m(e){if(e.attrs&&"function"==typeof e.attrs.onremove&&e.attrs.onremove.call(e.state,e),"string"!=typeof e.tag&&"function"==typeof e._state.onremove&&e._state.onremove.call(e.state,e),null!=e.instance)m(e.instance);else{var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var r=t[n];null!=r&&m(r)}}}function y(e,t,n,r,i){var o=e.dom;if("key"!==t&&"is"!==t&&(n!==r||function(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===A.activeElement}(e,t)||"object"==typeof r)&&void 0!==r&&!g(t)){var a=t.indexOf(":");if(a>-1&&"xlink"===t.substr(0,a))o.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(a+1),r);else if("o"===t[0]&&"n"===t[1]&&"function"==typeof r)w(e,t,r);else if("style"===t)!function(e,t,n){t===n&&(e.style.cssText="",t=null);if(null==n)e.style.cssText="";else if("string"==typeof n)e.style.cssText=n;else{"string"==typeof t&&(e.style.cssText="");for(var r in n)e.style[r]=n[r];if(null!=t&&"string"!=typeof t)for(var r in t)r in n||(e.style[r]="")}}(o,n,r);else if(t in o&&!function(e){return"href"===e||"list"===e||"form"===e||"width"===e||"height"===e}(t)&&void 0===i&&!function(e){return e.attrs.is||e.tag.indexOf("-")>-1}(e)){if("value"===t){var l=""+r;if(("input"===e.tag||"textarea"===e.tag)&&e.dom.value===l&&e.dom===A.activeElement)return;if("select"===e.tag)if(null===r){if(-1===e.dom.selectedIndex&&e.dom===A.activeElement)return}else if(null!==n&&e.dom.value===l&&e.dom===A.activeElement)return;if("option"===e.tag&&null!=n&&e.dom.value===l)return}if("input"===e.tag&&"type"===t)return void o.setAttribute(t,r);o[t]=r}else"boolean"==typeof r?r?o.setAttribute(t,""):o.removeAttribute(t):o.setAttribute("className"===t?"class":t,r)}}function g(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function w(e,t,n){var r=e.dom,i="function"!=typeof E?n:function(e){var t=n.call(r,e);return E.call(r,e),t};if(t in r)r[t]="function"==typeof n?i:null;else{var o=t.slice(2);if(void 0===e.events&&(e.events={}),e.events[t]===i)return;null!=e.events[t]&&r.removeEventListener(o,e.events[t],!1),"function"==typeof n&&(e.events[t]=i,r.addEventListener(o,e.events[t],!1))}}function b(e,t,n){"function"==typeof e.oninit&&e.oninit.call(t.state,t),"function"==typeof e.oncreate&&n.push(e.oncreate.bind(t.state,t))}function x(e,t,n){"function"==typeof e.onupdate&&n.push(e.onupdate.bind(t.state,t))}var E,A=e.document,k=A.createDocumentFragment(),S={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};return{render:function(e,t){if(!e)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var r=[],i=A.activeElement,o=e.namespaceURI;null==e.vnodes&&(e.textContent=""),Array.isArray(t)||(t=[t]),l(e,e.vnodes,n.normalizeChildren(t),!1,r,null,"http://www.w3.org/1999/xhtml"===o?void 0:o),e.vnodes=t;for(var a=0;a<r.length;a++)r[a]();null!=i&&A.activeElement!==i&&i.focus()},setEventCallback:function(e){return E=e}}},h=function(e){function t(e){var t=i.indexOf(e);t>-1&&i.splice(t,2)}function n(){for(var e=1;e<i.length;e+=2)i[e]()}var r=d(e);r.setEventCallback(function(e){!1===e.redraw?e.redraw=void 0:n()});var i=[];return{subscribe:function(e,n){t(e),i.push(e,function(e){var t=0,n=null,r="function"==typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(){var i=Date.now();0===t||i-t>=16?(t=i,e()):null===n&&(n=r(function(){n=null,e(),t=Date.now()},16-(i-t)))}}(n))},unsubscribe:t,redraw:n,render:r.render}}(window);f.setCompletionCallback(h.redraw);l.mount=function(e){return function(t,r){if(null===r)return e.render(t,[]),void e.unsubscribe(t);if(null==r.view&&"function"!=typeof r)throw new Error("m.mount(element, component) expects a component, not a vnode");e.subscribe(t,function(){e.render(t,n(r))}),e.redraw()}}(h);var v=s,p=function(e){if(""===e||null==e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t=e.split("&"),n={},r={},i=0;i<t.length;i++){var o=t[i].split("="),a=decodeURIComponent(o[0]),l=2===o.length?decodeURIComponent(o[1]):"";"true"===l?l=!0:"false"===l&&(l=!1);var s=a.split(/\]\[?|\[/),u=n;a.indexOf("[")>-1&&s.pop();for(var c=0;c<s.length;c++){var f=s[c],d=s[c+1],h=""==d||!isNaN(parseInt(d,10)),v=c===s.length-1;if(""===f){null==r[a=s.slice(0,c).join()]&&(r[a]=0),f=r[a]++}null==u[f]&&(u[f]=v?l:h?[]:{}),u=u[f]}}return n},m=function(e){function t(t){var n=e.location[t].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);return"pathname"===t&&"/"!==n[0]&&(n="/"+n),n}function n(e,t,n){var r=e.indexOf("?"),i=e.indexOf("#"),o=r>-1?r:i>-1?i:e.length;if(r>-1){var a=i>-1?i:e.length,l=p(e.slice(r+1,a));for(var s in l)t[s]=l[s]}if(i>-1){var u=p(e.slice(i+1));for(var s in u)n[s]=u[s]}return e.slice(0,o)}var r,i="function"==typeof e.history.pushState,o="function"==typeof setImmediate?setImmediate:setTimeout,a={prefix:"#!"};return a.getPath=function(){switch(a.prefix.charAt(0)){case"#":return t("hash").slice(a.prefix.length);case"?":return t("search").slice(a.prefix.length)+t("hash");default:return t("pathname").slice(a.prefix.length)+t("search")+t("hash")}},a.setPath=function(t,r,o){var l={},s={};if(t=n(t,l,s),null!=r){for(var c in r)l[c]=r[c];t=t.replace(/:([^\/]+)/g,function(e,t){return delete l[t],r[t]})}var f=u(l);f&&(t+="?"+f);var d=u(s);if(d&&(t+="#"+d),i){var h=o?o.state:null,v=o?o.title:null;e.onpopstate(),o&&o.replace?e.history.replaceState(h,v,a.prefix+t):e.history.pushState(h,v,a.prefix+t)}else e.location.href=a.prefix+t},a.defineRoutes=function(t,l,s){function u(){var r=a.getPath(),i={},o=n(r,i,i),u=e.history.state;if(null!=u)for(var c in u)i[c]=u[c];for(var f in t){var d=new RegExp("^"+f.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(d.test(o))return void o.replace(d,function(){for(var e=f.match(/:[^\/]+/g)||[],n=[].slice.call(arguments,1,-2),o=0;o<e.length;o++)i[e[o].replace(/:|\./g,"")]=decodeURIComponent(n[o]);l(t[f],i,r,f)})}s(r,i)}i?e.onpopstate=function(e){return function(){null==r&&(r=o(function(){r=null,e()}))}}(u):"#"===a.prefix.charAt(0)&&(e.onhashchange=u),u()},a};l.route=function(e,t){var r,i,o,a,l,s=m(e),u=function(e,u,c){if(null==e)throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined");var f=function(){null!=r&&t.render(e,r(n(i,o.key,o)))},d=function(e){if(e===u)throw new Error("Could not resolve default route "+u);s.setPath(u,null,{replace:!0})};s.defineRoutes(c,function(e,t,n){var s=l=function(e,u){s===l&&(i=null==u||"function"!=typeof u.view&&"function"!=typeof u?"div":u,o=t,a=n,l=null,r=(e.render||function(e){return e}).bind(e),f())};e.view||"function"==typeof e?s({},e):e.onmatch?v.resolve(e.onmatch(t,n)).then(function(t){s(e,t)},d):s(e,"div")},d),t.subscribe(e,f)};return u.set=function(e,t,n){null!=l&&((n=n||{}).replace=!0),l=null,s.setPath(e,t,n)},u.get=function(){return a},u.prefix=function(e){s.prefix=e},u.link=function(e){e.dom.setAttribute("href",s.prefix+e.attrs.href),e.dom.onclick=function(e){if(!(e.ctrlKey||e.metaKey||e.shiftKey||2===e.which)){e.preventDefault(),e.redraw=!1;var t=this.getAttribute("href");0===t.indexOf(s.prefix)&&(t=t.slice(s.prefix.length)),u.set(t,void 0,void 0)}}},u.param=function(e){return void 0!==o&&void 0!==e?o[e]:o},u}(window,h),l.withAttr=function(e,t,n){return function(r){t.call(n||this,e in r.currentTarget?r.currentTarget[e]:r.currentTarget.getAttribute(e))}};var y=d(window);l.render=y.render,l.redraw=h.redraw,l.request=f.request,l.jsonp=f.jsonp,l.parseQueryString=p,l.buildQueryString=u,l.version="1.1.5",l.vnode=n,void 0!==t?t.exports=l:window.m=l}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(e,n,r){!function(e){"use strict";function r(){}function i(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function o(e){return function(){return this[e].apply(this,arguments)}}function a(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!=typeof e)&&a(e.listener)}var l=r.prototype,s=e.EventEmitter;l.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},l.flattenListeners=function(e){var t,n=[];for(t=0;t<e.length;t+=1)n.push(e[t].listener);return n},l.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&((t={})[e]=n),t||n},l.addListener=function(e,t){if(!a(t))throw new TypeError("listener must be a function");var n,r=this.getListenersAsObject(e),o="object"==typeof t;for(n in r)r.hasOwnProperty(n)&&-1===i(r[n],t)&&r[n].push(o?t:{listener:t,once:!1});return this},l.on=o("addListener"),l.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},l.once=o("addOnceListener"),l.defineEvent=function(e){return this.getListeners(e),this},l.defineEvents=function(e){for(var t=0;t<e.length;t+=1)this.defineEvent(e[t]);return this},l.removeListener=function(e,t){var n,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&-1!==(n=i(o[r],t))&&o[r].splice(n,1);return this},l.off=o("removeListener"),l.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},l.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},l.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,a=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):a.call(this,r,i));return this},l.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if(e instanceof RegExp)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},l.removeAllListeners=o("removeEvent"),l.emitEvent=function(e,t){var n,r,i,o,a=this.getListenersAsObject(e);for(o in a)if(a.hasOwnProperty(o))for(n=a[o].slice(0),i=0;i<n.length;i++)!0===(r=n[i]).once&&this.removeListener(e,r.listener),r.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,r.listener);return this},l.trigger=o("emitEvent"),l.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},l.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},l._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},l._getEvents=function(){return this._events||(this._events={})},r.noConflict=function(){return e.EventEmitter=s,r},"function"==typeof t&&t.amd?t(function(){return r}):"object"==typeof n&&n.exports?n.exports=r:e.EventEmitter=r}(this||{})},{}]},{},[1])}();
2
  //# sourceMappingURL=admin.min.js.map
assets/js/admin.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["admin.js"],"names":["require","undefined","define","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","m","window","EventEmitter","context","document","getElementById","events","tabs","helpers","settings","ListFetcher","mount","mc4wp","deps","mithril","./admin/helpers.js","./admin/list-fetcher.js","./admin/settings.js","./admin/tabs.js","wolfy87-eventemitter","2","toggleElement","selector","elements","querySelectorAll","show","clientHeight","style","display","bindEventToElement","element","event","handler","addEventListener","attachEvent","bindEventToElements","Array","prototype","forEach","debounce","func","wait","immediate","timeout","this","args","arguments","callNow","clearTimeout","setTimeout","apply","showIfElements","getAttribute","checked","conditionMet","value","config","hide","visibility","opacity","inputs","inputElement","removeAttribute","setAttribute","JSON","parse","parentElements","parentElement","3","working","done","mailchimp","api_connected","lists","fetch","$","jQuery","mc4wp_vars","i18n","preventDefault","post","ajaxurl","action","data","success","location","reload","bind","fail","always","redraw","view","method","onsubmit","type","fetching_mailchimp_lists","renew_mailchimp_lists","className","disabled","trust","fetching_mailchimp_lists_can_take_a_while","fetching_mailchimp_lists_done","fetching_mailchimp_lists_error","4","_typeof","Symbol","iterator","obj","constructor","updateSelectedLists","selectedLists","listInputs","input","push","trigger","querySelector","on","rows","el","searchKey","searchValue","filter","getSelectedListsWhere","replace","getSelectedLists","5","URL","get","id","_open","tab","updateState","$tabs","removeClass","css","$tabNavs","nav","blur","url","setParameter","href","history","pushState","title","refererField","tb_remove","forms","editor","refresh","split","switchTab","tabId","match","urlParams","returnValue","$context","find","each","substring","first","text","open","click","body","activeTab","replaceState","state","init","./url.js","6","query","hasOwnProperty","b","decodeURIComponent","build","ret","d","encodeURIComponent","join","key","7","global","Vnode","tag","attrs0","children","dom","attrs","domSize","_state","instance","skip","hyperscript","start","cached","selectorCache","classes","selectorParser","exec","attrValue","compileSelector","isArray","normalized","normalizeChildren","childList","hasAttrs","class","hasOwn","execSelector","normalize","node","html","fragment","attrs1","PromisePolyfill","executor","list","shouldAbsorb","execute","then","callAsync","console","error","resolvers","rejectors","retry","self","TypeError","executeOnce","rejectCurrent","run","fn","runs","onerror","resolveCurrent","_instance","setImmediate","onFulfilled","onRejection","handle","callback","next","resolveNext","rejectNext","promise","resolve","reject","catch","all","total","count","values","consume","race","Promise","buildQueryString","object","destructure","key0","Object","toString","FILE_PROTOCOL_REGEX","RegExp","requestService","$window","finalizer","complete","oncompletion","finalize","promise0","then0","extra","interpolate","tokens","slice","assemble","querystring","indexOf","deserialize","extract","xhr","responseText","cast","type0","callbackCount","request","toUpperCase","useBody","serialize","FormData","stringify","XMLHttpRequest","aborted","_abort","abort","async","user","password","headers","setRequestHeader","withCredentials","onreadystatechange","readyState","response","status","test","send","background","jsonp","callbackName","Math","round","random","script","createElement","parentNode","removeChild","callbackKey","src","documentElement","appendChild","setCompletionCallback","_8","coreRenderer","getNameSpace","vnode","xmlns","nameSpace","createNodes","parent","vnodes","end","hooks","nextSibling","ns","createNode","initComponent","insertNode","$emptyFragment","createComponent","initLifecycle","$doc","createTextNode","createText","createHTML","createDocumentFragment","firstChild","childNodes","createFragment","attrs2","is","createElementNS","key2","setAttr","setAttrs","contenteditable","setContentEditable","textContent","selectedIndex","setLateAttrs","parent1","caption","thead","tbody","tfoot","tr","th","td","colgroup","col","temp","innerHTML","child","sentinel","create","$$reentrantLock$$","updateNodes","old","recycling","removeNodes","isUnkeyed","getNextSibling","updateNode","pool","abs","oldChildrenLength","poolChildrenLength","vnodesChildrenLength","isRecyclable","concat","map","oldStart","oldEnd","v","shouldRecycle","toFragment","getKeyMap","oldIndex","movable","oldTag","forceVnodeUpdate","forceComponentUpdate","onbeforeupdate","shouldNotUpdate","updateLifecycle","nodeValue","updateText","updateHTML","updateFragment","isLifecycleMethod","updateEvent","updateAttrs","updateElement","removeNode","updateComponent","count0","insertBefore","content","continuation","called","expected","onremove","removeNodeFromDOM","source","oncreate","onupdate","onbeforeremove","hasIntegrationMethods","result","attr","activeElement","isFormAttribute","nsLastIndex","substr","setAttributeNS","cssText","updateStyle","isAttribute","isCustomElement","normalized0","onevent","eventName","removeEventListener","oninit","svg","math","render","active","namespace","namespaceURI","focus","setEventCallback","redrawService","unsubscribe","key1","index","callbacks","splice","renderService","subscribe","last","pending","requestAnimationFrame","now","Date","throttle","_11","redrawService0","root","component","_16","parseQueryString","string","charAt","entries","data0","counters","entry","key5","levels","cursor","pop","j","level","nextLevel","isNumber","isNaN","parseInt","isValue","coreRouter","normalize1","fragment0","parsePath","path","queryData","hashData","queryIndex","hashIndex","pathEnd","queryEnd","queryParams","key4","hashParams","asyncId","supportsPushState","callAsync0","router","prefix","getPath","setPath","options","match2","token","hash","onpopstate","defineRoutes","routes","resolveRoute","params","pathname","k","route0","matcher","keys","callback0","debounceAsync","onhashchange","route","render1","attrs3","currentPath","lastUpdate","routeService","defaultRoute","run1","bail","payload","update","routeResolver","comp","onmatch","resolved","set","prefix0","link","vnode1","onclick","ctrlKey","metaKey","shiftKey","which","param","key3","_20","withAttr","attrName","callback1","currentTarget","_28","version","8","indexOfListener","listeners","listener","alias","name","isValidListener","proto","originalGlobalValue","getListeners","evt","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","removeEvent","_events","removeAllListeners","emitEvent","listenersMap","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","noConflict","amd"],"mappings":"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","file":"admin.min.js","sourcesContent":["(function () { var require = undefined; var define = undefined; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\n// dependencies\n\nvar m = window.m = require('mithril');\nvar EventEmitter = require('wolfy87-eventemitter');\n\n// vars\nvar context = document.getElementById('mc4wp-admin');\nvar events = new EventEmitter();\nvar tabs = require('./admin/tabs.js')(context);\nvar helpers = require('./admin/helpers.js');\nvar settings = require('./admin/settings.js')(context, helpers, events);\n\n// list fetcher\nvar ListFetcher = require('./admin/list-fetcher.js');\nvar mount = document.getElementById('mc4wp-list-fetcher');\nif (mount) {\n m.mount(mount, new ListFetcher());\n}\n\n// expose some things\nwindow.mc4wp = window.mc4wp || {};\nwindow.mc4wp.deps = window.mc4wp.deps || {};\nwindow.mc4wp.deps.mithril = m;\nwindow.mc4wp.helpers = helpers;\nwindow.mc4wp.events = events;\nwindow.mc4wp.settings = settings;\nwindow.mc4wp.tabs = tabs;\n\n},{\"./admin/helpers.js\":2,\"./admin/list-fetcher.js\":3,\"./admin/settings.js\":4,\"./admin/tabs.js\":5,\"mithril\":7,\"wolfy87-eventemitter\":8}],2:[function(require,module,exports){\n'use strict';\n\nvar helpers = {};\n\nhelpers.toggleElement = function (selector) {\n\tvar elements = document.querySelectorAll(selector);\n\tfor (var i = 0; i < elements.length; i++) {\n\t\tvar show = elements[i].clientHeight <= 0;\n\t\telements[i].style.display = show ? '' : 'none';\n\t}\n};\n\nhelpers.bindEventToElement = function (element, event, handler) {\n\tif (element.addEventListener) {\n\t\telement.addEventListener(event, handler);\n\t} else if (element.attachEvent) {\n\t\telement.attachEvent('on' + event, handler);\n\t}\n};\n\nhelpers.bindEventToElements = function (elements, event, handler) {\n\tArray.prototype.forEach.call(elements, function (element) {\n\t\thelpers.bindEventToElement(element, event, handler);\n\t});\n};\n\n// polling\nhelpers.debounce = function (func, wait, immediate) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n\n/**\n * Showif.js\n */\n(function () {\n\tvar showIfElements = document.querySelectorAll('[data-showif]');\n\n\t// dependent elements\n\tArray.prototype.forEach.call(showIfElements, function (element) {\n\t\tvar config = JSON.parse(element.getAttribute('data-showif'));\n\t\tvar parentElements = document.querySelectorAll('[name=\"' + config.element + '\"]');\n\t\tvar inputs = element.querySelectorAll('input,select,textarea:not([readonly])');\n\t\tvar hide = config.hide === undefined || config.hide;\n\n\t\tfunction toggleElement() {\n\n\t\t\t// do nothing with unchecked radio inputs\n\t\t\tif (this.getAttribute('type') === \"radio\" && !this.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar value = this.getAttribute(\"type\") === \"checkbox\" ? this.checked : this.value;\n\t\t\tvar conditionMet = value == config.value;\n\n\t\t\tif (hide) {\n\t\t\t\telement.style.display = conditionMet ? '' : 'none';\n\t\t\t\telement.style.visibility = conditionMet ? '' : 'hidden';\n\t\t\t} else {\n\t\t\t\telement.style.opacity = conditionMet ? '' : '0.4';\n\t\t\t}\n\n\t\t\t// disable input fields to stop sending their values to server\n\t\t\tArray.prototype.forEach.call(inputs, function (inputElement) {\n\t\t\t\tconditionMet ? inputElement.removeAttribute('readonly') : inputElement.setAttribute('readonly', 'readonly');\n\t\t\t});\n\t\t}\n\n\t\t// find checked element and call toggleElement function\n\t\tArray.prototype.forEach.call(parentElements, function (parentElement) {\n\t\t\ttoggleElement.call(parentElement);\n\t\t});\n\n\t\t// bind on all changes\n\t\thelpers.bindEventToElements(parentElements, 'change', toggleElement);\n\t});\n})();\n\nmodule.exports = helpers;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar $ = window.jQuery;\nvar config = mc4wp_vars;\nvar i18n = config.i18n;\n\nfunction ListFetcher() {\n this.working = false;\n this.done = false;\n\n // start fetching right away when no lists but api key given\n if (config.mailchimp.api_connected && config.mailchimp.lists.length === 0) {\n this.fetch();\n }\n}\n\nListFetcher.prototype.fetch = function (e) {\n e && e.preventDefault();\n\n this.working = true;\n this.done = false;\n\n $.post(ajaxurl, {\n action: \"mc4wp_renew_mailchimp_lists\",\n timeout: 180000\n }).done(function (data) {\n this.success = true;\n\n if (data) {\n window.setTimeout(function () {\n window.location.reload();\n }, 3000);\n }\n }.bind(this)).fail(function (data) {\n this.success = false;\n }.bind(this)).always(function (data) {\n this.working = false;\n this.done = true;\n\n m.redraw();\n }.bind(this));\n};\n\nListFetcher.prototype.view = function () {\n return m('form', {\n method: \"POST\",\n onsubmit: this.fetch.bind(this)\n }, [m('p', [m('input', {\n type: \"submit\",\n value: this.working ? i18n.fetching_mailchimp_lists : i18n.renew_mailchimp_lists,\n className: \"button\",\n disabled: !!this.working\n }), m.trust(' &nbsp; '), this.working ? [m('span.mc4wp-loader', \"Loading...\"), m.trust(' &nbsp; '), m('em.help', i18n.fetching_mailchimp_lists_can_take_a_while)] : '', this.done ? [this.success ? m('em.help.green', i18n.fetching_mailchimp_lists_done) : m('em.help.red', i18n.fetching_mailchimp_lists_error)] : ''])]);\n};\n\nmodule.exports = ListFetcher;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar Settings = function Settings(context, helpers, events) {\n\t'use strict';\n\n\t// vars\n\n\tvar form = context.querySelector('form');\n\tvar listInputs = context.querySelectorAll('.mc4wp-list-input');\n\tvar lists = mc4wp_vars.mailchimp.lists;\n\tvar selectedLists = [];\n\n\t// functions\n\tfunction getSelectedListsWhere(searchKey, searchValue) {\n\t\treturn selectedLists.filter(function (el) {\n\t\t\treturn el[searchKey] === searchValue;\n\t\t});\n\t}\n\n\tfunction getSelectedLists() {\n\t\treturn selectedLists;\n\t}\n\n\tfunction updateSelectedLists() {\n\t\tselectedLists = [];\n\n\t\tArray.prototype.forEach.call(listInputs, function (input) {\n\t\t\t// skip unchecked checkboxes\n\t\t\tif (typeof input.checked === \"boolean\" && !input.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_typeof(lists[input.value]) === \"object\") {\n\t\t\t\tselectedLists.push(lists[input.value]);\n\t\t\t}\n\t\t});\n\n\t\tevents.trigger('selectedLists.change', [selectedLists]);\n\t\treturn selectedLists;\n\t}\n\n\tfunction toggleVisibleLists() {\n\t\tvar rows = document.querySelectorAll('.lists--only-selected > *');\n\t\tArray.prototype.forEach.call(rows, function (el) {\n\n\t\t\tvar listId = el.getAttribute('data-list-id');\n\t\t\tvar isSelected = getSelectedListsWhere('id', listId).length > 0;\n\n\t\t\tif (isSelected) {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class').replace('hidden', ''));\n\t\t\t} else {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class') + \" hidden\");\n\t\t\t}\n\t\t});\n\t}\n\n\tevents.on('selectedLists.change', toggleVisibleLists);\n\thelpers.bindEventToElements(listInputs, 'change', updateSelectedLists);\n\n\tupdateSelectedLists();\n\n\treturn {\n\t\tgetSelectedLists: getSelectedLists\n\t};\n};\n\nmodule.exports = Settings;\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nvar URL = require('./url.js');\n\n// Tabs\nvar Tabs = function Tabs(context) {\n\n\t// TODO: last piece of jQuery... can we get rid of it?\n\tvar $ = window.jQuery;\n\n\tvar $context = $(context);\n\tvar $tabs = $context.find('.tab');\n\tvar $tabNavs = $context.find('.nav-tab');\n\tvar refererField = context.querySelector('input[name=\"_wp_http_referer\"]');\n\tvar tabs = [];\n\n\t$.each($tabs, function (i, t) {\n\t\tvar id = t.id.substring(4);\n\t\tvar title = $(t).find('h2').first().text();\n\n\t\ttabs.push({\n\t\t\tid: id,\n\t\t\ttitle: title,\n\t\t\telement: t,\n\t\t\tnav: context.querySelectorAll('.nav-tab-' + id),\n\t\t\topen: function open() {\n\t\t\t\treturn _open(id);\n\t\t\t}\n\t\t});\n\t});\n\n\tfunction get(id) {\n\n\t\tfor (var i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].id === id) {\n\t\t\t\treturn tabs[i];\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tfunction _open(tab, updateState) {\n\n\t\t// make sure we have a tab object\n\t\tif (typeof tab === \"string\") {\n\t\t\ttab = get(tab);\n\t\t}\n\n\t\tif (!tab) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// should we update state?\n\t\tif (updateState == undefined) {\n\t\t\tupdateState = true;\n\t\t}\n\n\t\t// hide all tabs & remove active class\n\t\t$tabs.removeClass('tab-active').css('display', 'none');\n\t\t$tabNavs.removeClass('nav-tab-active');\n\n\t\t// add `nav-tab-active` to this tab\n\t\tArray.prototype.forEach.call(tab.nav, function (nav) {\n\t\t\tnav.className += \" nav-tab-active\";\n\t\t\tnav.blur();\n\t\t});\n\n\t\t// show target tab\n\t\ttab.element.style.display = 'block';\n\t\ttab.element.className += \" tab-active\";\n\n\t\t// create new URL\n\t\tvar url = URL.setParameter(window.location.href, \"tab\", tab.id);\n\n\t\t// update hash\n\t\tif (history.pushState && updateState) {\n\t\t\thistory.pushState(tab.id, '', url);\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\n\t\t// update referer field\n\t\trefererField.value = url;\n\n\t\t// if thickbox is open, close it.\n\t\tif (typeof tb_remove === \"function\") {\n\t\t\ttb_remove();\n\t\t}\n\n\t\t// refresh editor after switching tabs\n\t\t// TODO: decouple this! law of demeter etc.\n\t\tif (tab.id === 'fields' && window.mc4wp && window.mc4wp.forms && window.mc4wp.forms.editor) {\n\t\t\tmc4wp.forms.editor.refresh();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction title(tab) {\n\t\tvar title = document.title.split('-');\n\t\tdocument.title = document.title.replace(title[0], tab.title + \" \");\n\t}\n\n\tfunction switchTab(e) {\n\t\te = e || window.event;\n\n\t\t// get from data attribute\n\t\tvar tabId = this.getAttribute('data-tab');\n\n\t\t// get from classname\n\t\tif (!tabId) {\n\t\t\tvar match = this.className.match(/nav-tab-(\\w+)?/);\n\t\t\tif (match) {\n\t\t\t\ttabId = match[1];\n\t\t\t}\n\t\t}\n\n\t\t// get from href\n\t\tif (!tabId) {\n\t\t\tvar urlParams = URL.parse(this.href);\n\t\t\tif (!urlParams.tab) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttabId = urlParams.tab;\n\t\t}\n\n\t\tvar opened = _open(tabId);\n\n\t\tif (opened) {\n\t\t\te.preventDefault();\n\t\t\te.returnValue = false;\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction init() {\n\n\t\t// check for current tab\n\t\tif (!history.pushState) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar activeTab = $tabs.filter(':visible').get(0);\n\t\tif (!activeTab) {\n\t\t\treturn;\n\t\t}\n\t\tvar tab = get(activeTab.id.substring(4));\n\t\tif (!tab) return;\n\n\t\t// check if tab is in html5 history\n\t\tif (history.replaceState && history.state === null) {\n\t\t\thistory.replaceState(tab.id, '');\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\t}\n\n\t$tabNavs.click(switchTab);\n\t$(document.body).on('click', '.tab-link', switchTab);\n\tinit();\n\n\tif (window.addEventListener && history.pushState) {\n\t\twindow.addEventListener('popstate', function (e) {\n\t\t\tif (!e.state) return true;\n\t\t\tvar tabId = e.state;\n\t\t\treturn _open(tabId, false);\n\t\t});\n\t}\n\n\treturn {\n\t\topen: _open,\n\t\tget: get\n\t};\n};\n\nmodule.exports = Tabs;\n\n},{\"./url.js\":6}],6:[function(require,module,exports){\n'use strict';\n\nvar URL = {\n\tparse: function parse(url) {\n\t\tvar query = {};\n\t\tvar a = url.split('&');\n\t\tfor (var i in a) {\n\t\t\tif (!a.hasOwnProperty(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar b = a[i].split('=');\n\t\t\tquery[decodeURIComponent(b[0])] = decodeURIComponent(b[1]);\n\t\t}\n\n\t\treturn query;\n\t},\n\tbuild: function build(data) {\n\t\tvar ret = [];\n\t\tfor (var d in data) {\n\t\t\tret.push(d + \"=\" + encodeURIComponent(data[d]));\n\t\t}return ret.join(\"&\");\n\t},\n\tsetParameter: function setParameter(url, key, value) {\n\t\tvar data = URL.parse(url);\n\t\tdata[key] = value;\n\t\treturn URL.build(data);\n\t}\n};\n\nmodule.exports = URL;\n\n},{}],7:[function(require,module,exports){\n(function (global){\n;(function() {\n\"use strict\"\nfunction Vnode(tag, key, attrs0, children, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: undefined, _state: undefined, events: undefined, instance: undefined, skip: false}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node != null && typeof node !== \"object\") return Vnode(\"#\", undefined, undefined, node === false ? \"\" : node, undefined, undefined)\n\treturn node\n}\nVnode.normalizeChildren = function normalizeChildren(children) {\n\tfor (var i = 0; i < children.length; i++) {\n\t\tchildren[i] = Vnode.normalize(children[i])\n\t}\n\treturn children\n}\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue === \"\" ? attrValue : attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\nfunction execSelector(state, attrs, children) {\n\tvar hasAttrs = false, childList, text\n\tvar className = attrs.className || attrs.class\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key)) {\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className !== undefined) {\n\t\tif (attrs.class !== undefined) {\n\t\t\tattrs.class = undefined\n\t\t\tattrs.className = className\n\t\t}\n\t\tif (state.attrs.className != null) {\n\t\t\tattrs.className = state.attrs.className + \" \" + className\n\t\t}\n\t}\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\thasAttrs = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\ttext = children[0].children\n\t} else {\n\t\tchildList = children\n\t}\n\treturn Vnode(state.tag, attrs.key, hasAttrs ? attrs : undefined, childList, text)\n}\nfunction hyperscript(selector) {\n\t// Because sloppy mode sucks\n\tvar attrs = arguments[1], start = 2, children\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\tif (typeof selector === \"string\") {\n\t\tvar cached = selectorCache[selector] || compileSelector(selector)\n\t}\n\tif (attrs == null) {\n\t\tattrs = {}\n\t} else if (typeof attrs !== \"object\" || attrs.tag != null || Array.isArray(attrs)) {\n\t\tattrs = {}\n\t\tstart = 1\n\t}\n\tif (arguments.length === start + 1) {\n\t\tchildren = arguments[start]\n\t\tif (!Array.isArray(children)) children = [children]\n\t} else {\n\t\tchildren = []\n\t\twhile (start < arguments.length) children.push(arguments[start++])\n\t}\n\tvar normalized = Vnode.normalizeChildren(children)\n\tif (typeof selector === \"string\") {\n\t\treturn execSelector(cached, attrs, normalized)\n\t} else {\n\t\treturn Vnode(selector, attrs.key, attrs, normalized)\n\t}\n}\nhyperscript.trust = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\nhyperscript.fragment = function(attrs1, children) {\n\treturn Vnode(\"[\", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined)\n}\nvar m = hyperscript\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") window.Promise = PromisePolyfill\n\tvar PromisePolyfill = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") global.Promise = PromisePolyfill\n\tvar PromisePolyfill = global.Promise\n} else {\n}\nvar buildQueryString = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\tvar args = []\n\tfor (var key0 in object) {\n\t\tdestructure(key0, object[key0])\n\t}\n\treturn args.join(\"&\")\n\tfunction destructure(key0, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key0) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\nvar FILE_PROTOCOL_REGEX = new RegExp(\"^file://\", \"i\")\nvar _8 = function($window, Promise) {\n\tvar callbackCount = 0\n\tvar oncompletion\n\tfunction setCompletionCallback(callback) {oncompletion = callback}\n\tfunction finalizer() {\n\t\tvar count = 0\n\t\tfunction complete() {if (--count === 0 && typeof oncompletion === \"function\") oncompletion()}\n\t\treturn function finalize(promise0) {\n\t\t\tvar then0 = promise0.then\n\t\t\tpromise0.then = function() {\n\t\t\t\tcount++\n\t\t\t\tvar next = then0.apply(promise0, arguments)\n\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\tcomplete()\n\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t})\n\t\t\t\treturn finalize(next)\n\t\t\t}\n\t\t\treturn promise0\n\t\t}\n\t}\n\tfunction normalize(args, extra) {\n\t\tif (typeof args === \"string\") {\n\t\t\tvar url = args\n\t\t\targs = extra || {}\n\t\t\tif (args.url == null) args.url = url\n\t\t}\n\t\treturn args\n\t}\n\tfunction request(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tif (args.method == null) args.method = \"GET\"\n\t\t\targs.method = args.method.toUpperCase()\n\t\t\tvar useBody = (args.method === \"GET\" || args.method === \"TRACE\") ? false : (typeof args.useBody === \"boolean\" ? args.useBody : true)\n\t\t\tif (typeof args.serialize !== \"function\") args.serialize = typeof FormData !== \"undefined\" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify\n\t\t\tif (typeof args.deserialize !== \"function\") args.deserialize = deserialize\n\t\t\tif (typeof args.extract !== \"function\") args.extract = extract\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\tif (useBody) args.data = args.serialize(args.data)\n\t\t\telse args.url = assemble(args.url, args.data)\n\t\t\tvar xhr = new $window.XMLHttpRequest(),\n\t\t\t\taborted = false,\n\t\t\t\t_abort = xhr.abort\n\t\t\txhr.abort = function abort() {\n\t\t\t\taborted = true\n\t\t\t\t_abort.call(xhr)\n\t\t\t}\n\t\t\txhr.open(args.method, args.url, typeof args.async === \"boolean\" ? args.async : true, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\t\t\tif (args.serialize === JSON.stringify && useBody && !(args.headers && args.headers.hasOwnProperty(\"Content-Type\"))) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (args.deserialize === deserialize && !(args.headers && args.headers.hasOwnProperty(\"Accept\"))) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tfor (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t}\n\t\t\tif (typeof args.config === \"function\") xhr = args.config(xhr, args) || xhr\n\t\t\txhr.onreadystatechange = function() {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif(aborted) return\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args))\n\t\t\t\t\t\tif ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || FILE_PROTOCOL_REGEX.test(args.url)) {\n\t\t\t\t\t\t\tresolve(cast(args.type, response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar error = new Error(xhr.responseText)\n\t\t\t\t\t\t\tfor (var key in response) error[key] = response[key]\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (useBody && (args.data != null)) xhr.send(args.data)\n\t\t\telse xhr.send()\n\t\t})\n\t\treturn args.background === true ? promise0 : finalize(promise0)\n\t}\n\tfunction jsonp(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(cast(args.type, data))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tif (args.data == null) args.data = {}\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\targs.data[args.callbackKey || \"callback\"] = callbackName\n\t\t\tscript.src = assemble(args.url, args.data)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t})\n\t\treturn args.background === true? promise0 : finalize(promise0)\n\t}\n\tfunction interpolate(url, data) {\n\t\tif (data == null) return url\n\t\tvar tokens = url.match(/:[^\\/]+/gi) || []\n\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\tvar key = tokens[i].slice(1)\n\t\t\tif (data[key] != null) {\n\t\t\t\turl = url.replace(tokens[i], data[key])\n\t\t\t}\n\t\t}\n\t\treturn url\n\t}\n\tfunction assemble(url, data) {\n\t\tvar querystring = buildQueryString(data)\n\t\tif (querystring !== \"\") {\n\t\t\tvar prefix = url.indexOf(\"?\") < 0 ? \"?\" : \"&\"\n\t\t\turl += prefix + querystring\n\t\t}\n\t\treturn url\n\t}\n\tfunction deserialize(data) {\n\t\ttry {return data !== \"\" ? JSON.parse(data) : null}\n\t\tcatch (e) {throw new Error(data)}\n\t}\n\tfunction extract(xhr) {return xhr.responseText}\n\tfunction cast(type0, data) {\n\t\tif (typeof type0 === \"function\") {\n\t\t\tif (Array.isArray(data)) {\n\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\tdata[i] = new type0(data[i])\n\t\t\t\t}\n\t\t\t}\n\t\t\telse return new type0(data)\n\t\t}\n\t\treturn data\n\t}\n\treturn {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback}\n}\nvar requestService = _8(window, PromisePolyfill)\nvar coreRenderer = function($window) {\n\tvar $doc = $window.document\n\tvar $emptyFragment = $doc.createDocumentFragment()\n\tvar nameSpace = {\n\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\tmath: \"http://www.w3.org/1998/Math/MathML\"\n\t}\n\tvar onevent\n\tfunction setEventCallback(callback) {return onevent = callback}\n\tfunction getNameSpace(vnode) {\n\t\treturn vnode.attrs && vnode.attrs.xmlns || nameSpace[vnode.tag]\n\t}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode.state = {}\n\t\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": return createText(parent, vnode, nextSibling)\n\t\t\t\tcase \"<\": return createHTML(parent, vnode, nextSibling)\n\t\t\t\tcase \"[\": return createFragment(parent, vnode, hooks, ns, nextSibling)\n\t\t\t\tdefault: return createElement(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse return createComponent(parent, vnode, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode, nextSibling) {\n\t\tvnode.dom = $doc.createTextNode(vnode.children)\n\t\tinsertNode(parent, vnode.dom, nextSibling)\n\t\treturn vnode.dom\n\t}\n\tfunction createHTML(parent, vnode, nextSibling) {\n\t\tvar match1 = vnode.children.match(/^\\s*?<(\\w+)/im) || []\n\t\tvar parent1 = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}[match1[1]] || \"div\"\n\t\tvar temp = $doc.createElement(parent1)\n\t\ttemp.innerHTML = vnode.children\n\t\tvnode.dom = temp.firstChild\n\t\tvnode.domSize = temp.childNodes.length\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createFragment(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode.children != null) {\n\t\t\tvar children = vnode.children\n\t\t\tcreateNodes(fragment, children, 0, children.length, hooks, null, ns)\n\t\t}\n\t\tvnode.dom = fragment.firstChild\n\t\tvnode.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createElement(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tvar attrs2 = vnode.attrs\n\t\tvar is = attrs2 && attrs2.is\n\t\tns = getNameSpace(vnode) || ns\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode.dom = element\n\t\tif (attrs2 != null) {\n\t\t\tsetAttrs(vnode, attrs2, ns)\n\t\t}\n\t\tinsertNode(parent, element, nextSibling)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse {\n\t\t\tif (vnode.text != null) {\n\t\t\t\tif (vnode.text !== \"\") element.textContent = vnode.text\n\t\t\t\telse vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode.children != null) {\n\t\t\t\tvar children = vnode.children\n\t\t\t\tcreateNodes(element, children, 0, children.length, hooks, null, ns)\n\t\t\t\tsetLateAttrs(vnode)\n\t\t\t}\n\t\t}\n\t\treturn element\n\t}\n\tfunction initComponent(vnode, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode.tag.view === \"function\") {\n\t\t\tvnode.state = Object.create(vnode.tag)\n\t\t\tsentinel = vnode.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode.state = void 0\n\t\t\tsentinel = vnode.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode.state = (vnode.tag.prototype != null && typeof vnode.tag.prototype.view === \"function\") ? new vnode.tag(vnode) : vnode.tag(vnode)\n\t\t}\n\t\tvnode._state = vnode.state\n\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\tinitLifecycle(vnode._state, vnode, hooks)\n\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tvar element = createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0\n\t\t\tinsertNode(parent, element, nextSibling)\n\t\t\treturn element\n\t\t}\n\t\telse {\n\t\t\tvnode.domSize = 0\n\t\t\treturn $emptyFragment\n\t\t}\n\t}\n\t//update\n\tfunction updateNodes(parent, old, vnodes, recycling, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns)\n\t\telse if (vnodes == null) removeNodes(old, 0, old.length, vnodes)\n\t\telse {\n\t\t\tif (old.length === vnodes.length) {\n\t\t\t\tvar isUnkeyed = false\n\t\t\t\tfor (var i = 0; i < vnodes.length; i++) {\n\t\t\t\t\tif (vnodes[i] != null && old[i] != null) {\n\t\t\t\t\t\tisUnkeyed = vnodes[i].key == null && old[i].key == null\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isUnkeyed) {\n\t\t\t\t\tfor (var i = 0; i < old.length; i++) {\n\t\t\t\t\t\tif (old[i] === vnodes[i]) continue\n\t\t\t\t\t\telse if (old[i] == null && vnodes[i] != null) createNode(parent, vnodes[i], hooks, ns, getNextSibling(old, i + 1, nextSibling))\n\t\t\t\t\t\telse if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes)\n\t\t\t\t\t\telse updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), recycling, ns)\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\trecycling = recycling || isRecyclable(old, vnodes)\n\t\t\tif (recycling) {\n\t\t\t\tvar pool = old.pool\n\t\t\t\told = old.concat(old.pool)\n\t\t\t}\n\t\t\tvar oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldStart], v = vnodes[start]\n\t\t\t\tif (o === v && !recycling) oldStart++, start++\n\t\t\t\telse if (o == null) oldStart++\n\t\t\t\telse if (v == null) start++\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldStart >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\toldStart++, start++\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar o = old[oldEnd]\n\t\t\t\t\tif (o === v && !recycling) oldEnd--, start++\n\t\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\t\telse if (v == null) start++\n\t\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\t\tif (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling))\n\t\t\t\t\t\toldEnd--, start++\n\t\t\t\t\t}\n\t\t\t\t\telse break\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldEnd], v = vnodes[end]\n\t\t\t\tif (o === v && !recycling) oldEnd--, end--\n\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\telse if (v == null) end--\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t\tif (o.dom != null) nextSibling = o.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (!map) map = getKeyMap(old, oldEnd)\n\t\t\t\t\tif (v != null) {\n\t\t\t\t\t\tvar oldIndex = map[v.key]\n\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\tvar movable = old[oldIndex]\n\t\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldIndex >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\t\tupdateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns)\n\t\t\t\t\t\t\tinsertNode(parent, toFragment(movable), nextSibling)\n\t\t\t\t\t\t\told[oldIndex].skip = true\n\t\t\t\t\t\t\tif (movable.dom != null) nextSibling = movable.dom\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar dom = createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\tnextSibling = dom\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tend--\n\t\t\t\t}\n\t\t\t\tif (end < start) break\n\t\t\t}\n\t\t\tcreateNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\tremoveNodes(old, oldStart, oldEnd + 1, vnodes)\n\t\t}\n\t}\n\tfunction updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode.state = old.state\n\t\t\tvnode._state = old._state\n\t\t\tvnode.events = old.events\n\t\t\tif (!recycling && shouldNotUpdate(vnode, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode.attrs != null) {\n\t\t\t\t\tif (recycling) {\n\t\t\t\t\t\tvnode.state = {}\n\t\t\t\t\t\tinitLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t\t}\n\t\t\t\t\telse updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode, recycling, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(old, null)\n\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode) {\n\t\tif (old.children.toString() !== vnode.children.toString()) {\n\t\t\told.dom.nodeValue = vnode.children\n\t\t}\n\t\tvnode.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode, nextSibling) {\n\t\tif (old.children !== vnode.children) {\n\t\t\ttoFragment(old)\n\t\t\tcreateHTML(parent, vnode, nextSibling)\n\t\t}\n\t\telse vnode.dom = old.dom, vnode.domSize = old.domSize\n\t}\n\tfunction updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode.children, recycling, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children = vnode.children\n\t\tvnode.dom = null\n\t\tif (children != null) {\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode.dom == null) vnode.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode, recycling, hooks, ns) {\n\t\tvar element = vnode.dom = old.dom\n\t\tns = getNameSpace(vnode) || ns\n\t\tif (vnode.tag === \"textarea\") {\n\t\t\tif (vnode.attrs == null) vnode.attrs = {}\n\t\t\tif (vnode.text != null) {\n\t\t\t\tvnode.attrs.value = vnode.text //FIXME handle0 multiple children\n\t\t\t\tvnode.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode, old.attrs, vnode.attrs, ns)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse if (old.text != null && vnode.text != null && vnode.text !== \"\") {\n\t\t\tif (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text\n\t\t}\n\t\telse {\n\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\tif (vnode.text != null) vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\tupdateNodes(element, old.children, vnode.children, recycling, hooks, null, ns)\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tif (recycling) {\n\t\t\tinitComponent(vnode, hooks)\n\t\t} else {\n\t\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\t\tif (vnode.attrs != null) updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tupdateLifecycle(vnode._state, vnode, hooks)\n\t\t}\n\t\tif (vnode.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(old.instance, null)\n\t\t\tvnode.dom = undefined\n\t\t\tvnode.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t}\n\t}\n\tfunction isRecyclable(old, vnodes) {\n\t\tif (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) {\n\t\t\tvar oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0\n\t\t\tvar poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0\n\t\t\tvar vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0\n\t\t\tif (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\tfunction getKeyMap(vnodes, end) {\n\t\tvar map = {}, i = 0\n\t\tfor (var i = 0; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tvar key2 = vnode.key\n\t\t\t\tif (key2 != null) map[key2] = i\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\tfunction toFragment(vnode) {\n\t\tvar count0 = vnode.domSize\n\t\tif (count0 != null || vnode.dom == null) {\n\t\t\tvar fragment = $doc.createDocumentFragment()\n\t\t\tif (count0 > 0) {\n\t\t\t\tvar dom = vnode.dom\n\t\t\t\twhile (--count0) fragment.appendChild(dom.nextSibling)\n\t\t\t\tfragment.insertBefore(dom, fragment.firstChild)\n\t\t\t}\n\t\t\treturn fragment\n\t\t}\n\t\telse return vnode.dom\n\t}\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\tfunction setContentEditable(vnode) {\n\t\tvar children = vnode.children\n\t\tif (children != null && children.length === 1 && children[0].tag === \"<\") {\n\t\t\tvar content = children[0].children\n\t\t\tif (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode.text != null || children != null && children.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t}\n\t//remove\n\tfunction removeNodes(vnodes, start, end, context) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tif (vnode.skip) vnode.skip = false\n\t\t\t\telse removeNode(vnode, context)\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNode(vnode, context) {\n\t\tvar expected = 1, called = 0\n\t\tif (vnode.attrs && typeof vnode.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode.attrs.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode._state.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tcontinuation()\n\t\tfunction continuation() {\n\t\t\tif (++called === expected) {\n\t\t\t\tonremove(vnode)\n\t\t\t\tif (vnode.dom) {\n\t\t\t\t\tvar count0 = vnode.domSize || 1\n\t\t\t\t\tif (count0 > 1) {\n\t\t\t\t\t\tvar dom = vnode.dom\n\t\t\t\t\t\twhile (--count0) {\n\t\t\t\t\t\t\tremoveNodeFromDOM(dom.nextSibling)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tremoveNodeFromDOM(vnode.dom)\n\t\t\t\t\tif (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === \"string\") { //TODO test custom elements\n\t\t\t\t\t\tif (!context.pool) context.pool = [vnode]\n\t\t\t\t\t\telse context.pool.push(vnode)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNodeFromDOM(node) {\n\t\tvar parent = node.parentNode\n\t\tif (parent != null) parent.removeChild(node)\n\t}\n\tfunction onremove(vnode) {\n\t\tif (vnode.attrs && typeof vnode.attrs.onremove === \"function\") vnode.attrs.onremove.call(vnode.state, vnode)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onremove === \"function\") vnode._state.onremove.call(vnode.state, vnode)\n\t\tif (vnode.instance != null) onremove(vnode.instance)\n\t\telse {\n\t\t\tvar children = vnode.children\n\t\t\tif (Array.isArray(children)) {\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tvar child = children[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//attrs2\n\tfunction setAttrs(vnode, attrs2, ns) {\n\t\tfor (var key2 in attrs2) {\n\t\t\tsetAttr(vnode, key2, null, attrs2[key2], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode, key2, old, value, ns) {\n\t\tvar element = vnode.dom\n\t\tif (key2 === \"key\" || key2 === \"is\" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== \"object\" || typeof value === \"undefined\" || isLifecycleMethod(key2)) return\n\t\tvar nsLastIndex = key2.indexOf(\":\")\n\t\tif (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === \"xlink\") {\n\t\t\telement.setAttributeNS(\"http://www.w3.org/1999/xlink\", key2.slice(nsLastIndex + 1), value)\n\t\t}\n\t\telse if (key2[0] === \"o\" && key2[1] === \"n\" && typeof value === \"function\") updateEvent(vnode, key2, value)\n\t\telse if (key2 === \"style\") updateStyle(element, old, value)\n\t\telse if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) {\n\t\t\tif (key2 === \"value\") {\n\t\t\t\tvar normalized0 = \"\" + value // eslint-disable-line no-implicit-coercion\n\t\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\t\tif ((vnode.tag === \"input\" || vnode.tag === \"textarea\") && vnode.dom.value === normalized0 && vnode.dom === $doc.activeElement) return\n\t\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"select\") {\n\t\t\t\t\tif (value === null) {\n\t\t\t\t\t\tif (vnode.dom.selectedIndex === -1 && vnode.dom === $doc.activeElement) return\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (old !== null && vnode.dom.value === normalized0 && vnode.dom === $doc.activeElement) return\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"option\" && old != null && vnode.dom.value === normalized0) return\n\t\t\t}\n\t\t\t// If you assign an input type1 that is not supported by IE 11 with an assignment expression, an error0 will occur.\n\t\t\tif (vnode.tag === \"input\" && key2 === \"type\") {\n\t\t\t\telement.setAttribute(key2, value)\n\t\t\t\treturn\n\t\t\t}\n\t\t\telement[key2] = value\n\t\t}\n\t\telse {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) element.setAttribute(key2, \"\")\n\t\t\t\telse element.removeAttribute(key2)\n\t\t\t}\n\t\t\telse element.setAttribute(key2 === \"className\" ? \"class\" : key2, value)\n\t\t}\n\t}\n\tfunction setLateAttrs(vnode) {\n\t\tvar attrs2 = vnode.attrs\n\t\tif (vnode.tag === \"select\" && attrs2 != null) {\n\t\t\tif (\"value\" in attrs2) setAttr(vnode, \"value\", null, attrs2.value, undefined)\n\t\t\tif (\"selectedIndex\" in attrs2) setAttr(vnode, \"selectedIndex\", null, attrs2.selectedIndex, undefined)\n\t\t}\n\t}\n\tfunction updateAttrs(vnode, old, attrs2, ns) {\n\t\tif (attrs2 != null) {\n\t\t\tfor (var key2 in attrs2) {\n\t\t\t\tsetAttr(vnode, key2, old && old[key2], attrs2[key2], ns)\n\t\t\t}\n\t\t}\n\t\tif (old != null) {\n\t\t\tfor (var key2 in old) {\n\t\t\t\tif (attrs2 == null || !(key2 in attrs2)) {\n\t\t\t\t\tif (key2 === \"className\") key2 = \"class\"\n\t\t\t\t\tif (key2[0] === \"o\" && key2[1] === \"n\" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined)\n\t\t\t\t\telse if (key2 !== \"key\") vnode.dom.removeAttribute(key2)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode.dom === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction isAttribute(attr) {\n\t\treturn attr === \"href\" || attr === \"list\" || attr === \"form\" || attr === \"width\" || attr === \"height\"// || attr === \"type\"\n\t}\n\tfunction isCustomElement(vnode){\n\t\treturn vnode.attrs.is || vnode.tag.indexOf(\"-\") > -1\n\t}\n\tfunction hasIntegrationMethods(source) {\n\t\treturn source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove)\n\t}\n\t//style\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) element.style.cssText = \"\", old = null\n\t\tif (style == null) element.style.cssText = \"\"\n\t\telse if (typeof style === \"string\") element.style.cssText = style\n\t\telse {\n\t\t\tif (typeof old === \"string\") element.style.cssText = \"\"\n\t\t\tfor (var key2 in style) {\n\t\t\t\telement.style[key2] = style[key2]\n\t\t\t}\n\t\t\tif (old != null && typeof old !== \"string\") {\n\t\t\t\tfor (var key2 in old) {\n\t\t\t\t\tif (!(key2 in style)) element.style[key2] = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//event\n\tfunction updateEvent(vnode, key2, value) {\n\t\tvar element = vnode.dom\n\t\tvar callback = typeof onevent !== \"function\" ? value : function(e) {\n\t\t\tvar result = value.call(element, e)\n\t\t\tonevent.call(element, e)\n\t\t\treturn result\n\t\t}\n\t\tif (key2 in element) element[key2] = typeof value === \"function\" ? callback : null\n\t\telse {\n\t\t\tvar eventName = key2.slice(2)\n\t\t\tif (vnode.events === undefined) vnode.events = {}\n\t\t\tif (vnode.events[key2] === callback) return\n\t\t\tif (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false)\n\t\t\tif (typeof value === \"function\") {\n\t\t\t\tvnode.events[key2] = callback\n\t\t\t\telement.addEventListener(eventName, vnode.events[key2], false)\n\t\t\t}\n\t\t}\n\t}\n\t//lifecycle\n\tfunction initLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.oninit === \"function\") source.oninit.call(vnode.state, vnode)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(source.oncreate.bind(vnode.state, vnode))\n\t}\n\tfunction updateLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(source.onupdate.bind(vnode.state, vnode))\n\t}\n\tfunction shouldNotUpdate(vnode, old) {\n\t\tvar forceVnodeUpdate, forceComponentUpdate\n\t\tif (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === \"function\") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeupdate === \"function\") forceComponentUpdate = vnode._state.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t\tvnode.instance = old.instance\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\tfunction render(dom, vnodes) {\n\t\tif (!dom) throw new Error(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = $doc.activeElement\n\t\tvar namespace = dom.namespaceURI\n\t\t// First time0 rendering into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\t\tif (!Array.isArray(vnodes)) vnodes = [vnodes]\n\t\tupdateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), false, hooks, null, namespace === \"http://www.w3.org/1999/xhtml\" ? undefined : namespace)\n\t\tdom.vnodes = vnodes\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t\t// document.activeElement can return null in IE https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement\n\t\tif (active != null && $doc.activeElement !== active) active.focus()\n\t}\n\treturn {render: render, setEventCallback: setEventCallback}\n}\nfunction throttle(callback) {\n\t//60fps translates to 16.6ms, round it down since setTimeout requires int\n\tvar time = 16\n\tvar last = 0, pending = null\n\tvar timeout = typeof requestAnimationFrame === \"function\" ? requestAnimationFrame : setTimeout\n\treturn function() {\n\t\tvar now = Date.now()\n\t\tif (last === 0 || now - last >= time) {\n\t\t\tlast = now\n\t\t\tcallback()\n\t\t}\n\t\telse if (pending === null) {\n\t\t\tpending = timeout(function() {\n\t\t\t\tpending = null\n\t\t\t\tcallback()\n\t\t\t\tlast = Date.now()\n\t\t\t}, time - (now - last))\n\t\t}\n\t}\n}\nvar _11 = function($window) {\n\tvar renderService = coreRenderer($window)\n\trenderService.setEventCallback(function(e) {\n\t\tif (e.redraw === false) e.redraw = undefined\n\t\telse redraw()\n\t})\n\tvar callbacks = []\n\tfunction subscribe(key1, callback) {\n\t\tunsubscribe(key1)\n\t\tcallbacks.push(key1, throttle(callback))\n\t}\n\tfunction unsubscribe(key1) {\n\t\tvar index = callbacks.indexOf(key1)\n\t\tif (index > -1) callbacks.splice(index, 2)\n\t}\n\tfunction redraw() {\n\t\tfor (var i = 1; i < callbacks.length; i += 2) {\n\t\t\tcallbacks[i]()\n\t\t}\n\t}\n\treturn {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render}\n}\nvar redrawService = _11(window)\nrequestService.setCompletionCallback(redrawService.redraw)\nvar _16 = function(redrawService0) {\n\treturn function(root, component) {\n\t\tif (component === null) {\n\t\t\tredrawService0.render(root, [])\n\t\t\tredrawService0.unsubscribe(root)\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif (component.view == null && typeof component !== \"function\") throw new Error(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t\n\t\tvar run0 = function() {\n\t\t\tredrawService0.render(root, Vnode(component))\n\t\t}\n\t\tredrawService0.subscribe(root, run0)\n\t\tredrawService0.redraw()\n\t}\n}\nm.mount = _16(redrawService)\nvar Promise = PromisePolyfill\nvar parseQueryString = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\tvar entries = string.split(\"&\"), data0 = {}, counters = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key5 = decodeURIComponent(entry[0])\n\t\tvar value = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\t\tif (value === \"true\") value = true\n\t\telse if (value === \"false\") value = false\n\t\tvar levels = key5.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data0\n\t\tif (key5.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j = 0; j < levels.length; j++) {\n\t\t\tvar level = levels[j], nextLevel = levels[j + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tvar isValue = j === levels.length - 1\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key5 = levels.slice(0, j).join()\n\t\t\t\tif (counters[key5] == null) counters[key5] = 0\n\t\t\t\tlevel = counters[key5]++\n\t\t\t}\n\t\t\tif (cursor[level] == null) {\n\t\t\t\tcursor[level] = isValue ? value : isNumber ? [] : {}\n\t\t\t}\n\t\t\tcursor = cursor[level]\n\t\t}\n\t}\n\treturn data0\n}\nvar coreRouter = function($window) {\n\tvar supportsPushState = typeof $window.history.pushState === \"function\"\n\tvar callAsync0 = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction normalize1(fragment0) {\n\t\tvar data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\tif (fragment0 === \"pathname\" && data[0] !== \"/\") data = \"/\" + data\n\t\treturn data\n\t}\n\tvar asyncId\n\tfunction debounceAsync(callback0) {\n\t\treturn function() {\n\t\t\tif (asyncId != null) return\n\t\t\tasyncId = callAsync0(function() {\n\t\t\t\tasyncId = null\n\t\t\t\tcallback0()\n\t\t\t})\n\t\t}\n\t}\n\tfunction parsePath(path, queryData, hashData) {\n\t\tvar queryIndex = path.indexOf(\"?\")\n\t\tvar hashIndex = path.indexOf(\"#\")\n\t\tvar pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length\n\t\tif (queryIndex > -1) {\n\t\t\tvar queryEnd = hashIndex > -1 ? hashIndex : path.length\n\t\t\tvar queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd))\n\t\t\tfor (var key4 in queryParams) queryData[key4] = queryParams[key4]\n\t\t}\n\t\tif (hashIndex > -1) {\n\t\t\tvar hashParams = parseQueryString(path.slice(hashIndex + 1))\n\t\t\tfor (var key4 in hashParams) hashData[key4] = hashParams[key4]\n\t\t}\n\t\treturn path.slice(0, pathEnd)\n\t}\n\tvar router = {prefix: \"#!\"}\n\trouter.getPath = function() {\n\t\tvar type2 = router.prefix.charAt(0)\n\t\tswitch (type2) {\n\t\t\tcase \"#\": return normalize1(\"hash\").slice(router.prefix.length)\n\t\t\tcase \"?\": return normalize1(\"search\").slice(router.prefix.length) + normalize1(\"hash\")\n\t\t\tdefault: return normalize1(\"pathname\").slice(router.prefix.length) + normalize1(\"search\") + normalize1(\"hash\")\n\t\t}\n\t}\n\trouter.setPath = function(path, data, options) {\n\t\tvar queryData = {}, hashData = {}\n\t\tpath = parsePath(path, queryData, hashData)\n\t\tif (data != null) {\n\t\t\tfor (var key4 in data) queryData[key4] = data[key4]\n\t\t\tpath = path.replace(/:([^\\/]+)/g, function(match2, token) {\n\t\t\t\tdelete queryData[token]\n\t\t\t\treturn data[token]\n\t\t\t})\n\t\t}\n\t\tvar query = buildQueryString(queryData)\n\t\tif (query) path += \"?\" + query\n\t\tvar hash = buildQueryString(hashData)\n\t\tif (hash) path += \"#\" + hash\n\t\tif (supportsPushState) {\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\t$window.onpopstate()\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, router.prefix + path)\n\t\t\telse $window.history.pushState(state, title, router.prefix + path)\n\t\t}\n\t\telse $window.location.href = router.prefix + path\n\t}\n\trouter.defineRoutes = function(routes, resolve, reject) {\n\t\tfunction resolveRoute() {\n\t\t\tvar path = router.getPath()\n\t\t\tvar params = {}\n\t\t\tvar pathname = parsePath(path, params, params)\n\t\t\tvar state = $window.history.state\n\t\t\tif (state != null) {\n\t\t\t\tfor (var k in state) params[k] = state[k]\n\t\t\t}\n\t\t\tfor (var route0 in routes) {\n\t\t\t\tvar matcher = new RegExp(\"^\" + route0.replace(/:[^\\/]+?\\.{3}/g, \"(.*?)\").replace(/:[^\\/]+/g, \"([^\\\\/]+)\") + \"\\/?$\")\n\t\t\t\tif (matcher.test(pathname)) {\n\t\t\t\t\tpathname.replace(matcher, function() {\n\t\t\t\t\t\tvar keys = route0.match(/:[^\\/]+/g) || []\n\t\t\t\t\t\tvar values = [].slice.call(arguments, 1, -2)\n\t\t\t\t\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\t\t\t\t\tparams[keys[i].replace(/:|\\./g, \"\")] = decodeURIComponent(values[i])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(routes[route0], params, path, route0)\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\treject(path, params)\n\t\t}\n\t\tif (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute)\n\t\telse if (router.prefix.charAt(0) === \"#\") $window.onhashchange = resolveRoute\n\t\tresolveRoute()\n\t}\n\treturn router\n}\nvar _20 = function($window, redrawService0) {\n\tvar routeService = coreRouter($window)\n\tvar identity = function(v) {return v}\n\tvar render1, component, attrs3, currentPath, lastUpdate\n\tvar route = function(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\tvar run1 = function() {\n\t\t\tif (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3)))\n\t\t}\n\t\tvar bail = function(path) {\n\t\t\tif (path !== defaultRoute) routeService.setPath(defaultRoute, null, {replace: true})\n\t\t\telse throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t}\n\t\trouteService.defineRoutes(routes, function(payload, params, path) {\n\t\t\tvar update = lastUpdate = function(routeResolver, comp) {\n\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\tattrs3 = params, currentPath = path, lastUpdate = null\n\t\t\t\trender1 = (routeResolver.render || identity).bind(routeResolver)\n\t\t\t\trun1()\n\t\t\t}\n\t\t\tif (payload.view || typeof payload === \"function\") update({}, payload)\n\t\t\telse {\n\t\t\t\tif (payload.onmatch) {\n\t\t\t\t\tPromise.resolve(payload.onmatch(params, path)).then(function(resolved) {\n\t\t\t\t\t\tupdate(payload, resolved)\n\t\t\t\t\t}, bail)\n\t\t\t\t}\n\t\t\t\telse update(payload, \"div\")\n\t\t\t}\n\t\t}, bail)\n\t\tredrawService0.subscribe(root, run1)\n\t}\n\troute.set = function(path, data, options) {\n\t\tif (lastUpdate != null) {\n\t\t\toptions = options || {}\n\t\t\toptions.replace = true\n\t\t}\n\t\tlastUpdate = null\n\t\trouteService.setPath(path, data, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = function(prefix0) {routeService.prefix = prefix0}\n\troute.link = function(vnode1) {\n\t\tvnode1.dom.setAttribute(\"href\", routeService.prefix + vnode1.attrs.href)\n\t\tvnode1.dom.onclick = function(e) {\n\t\t\tif (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return\n\t\t\te.preventDefault()\n\t\t\te.redraw = false\n\t\t\tvar href = this.getAttribute(\"href\")\n\t\t\tif (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length)\n\t\t\troute.set(href, undefined, undefined)\n\t\t}\n\t}\n\troute.param = function(key3) {\n\t\tif(typeof attrs3 !== \"undefined\" && typeof key3 !== \"undefined\") return attrs3[key3]\n\t\treturn attrs3\n\t}\n\treturn route\n}\nm.route = _20(window, redrawService)\nm.withAttr = function(attrName, callback1, context) {\n\treturn function(e) {\n\t\tcallback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName))\n\t}\n}\nvar _28 = coreRenderer(window)\nm.render = _28.render\nm.redraw = redrawService.redraw\nm.request = requestService.request\nm.jsonp = requestService.jsonp\nm.parseQueryString = parseQueryString\nm.buildQueryString = buildQueryString\nm.version = \"1.1.5\"\nm.vnode = Vnode\nif (typeof module !== \"undefined\") module[\"exports\"] = m\nelse window.m = m\n}());\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],8:[function(require,module,exports){\n/*!\n * EventEmitter v5.2.4 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n\n},{}]},{},[1]);\n })();"]}
1
+ {"version":3,"sources":["admin.js"],"names":["require","undefined","define","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","m","window","EventEmitter","context","document","getElementById","events","tabs","helpers","settings","ListFetcher","mount","mc4wp","deps","mithril","./admin/helpers.js","./admin/list-fetcher.js","./admin/settings.js","./admin/tabs.js","wolfy87-eventemitter","2","toggleElement","selector","elements","querySelectorAll","show","clientHeight","style","display","bindEventToElement","element","event","handler","addEventListener","attachEvent","bindEventToElements","Array","prototype","forEach","debounce","func","wait","immediate","timeout","this","args","arguments","callNow","clearTimeout","setTimeout","apply","showIfElements","getAttribute","checked","conditionMet","value","config","hide","visibility","opacity","inputs","inputElement","removeAttribute","setAttribute","JSON","parse","parentElements","parentElement","3","working","done","mailchimp","api_connected","lists","fetch","$","jQuery","mc4wp_vars","i18n","preventDefault","post","ajaxurl","action","data","success","location","reload","bind","fail","always","redraw","view","method","onsubmit","type","fetching_mailchimp_lists","renew_mailchimp_lists","className","disabled","trust","fetching_mailchimp_lists_can_take_a_while","fetching_mailchimp_lists_done","fetching_mailchimp_lists_error","4","_typeof","Symbol","iterator","obj","constructor","updateSelectedLists","selectedLists","listInputs","input","push","trigger","querySelector","on","rows","el","searchKey","searchValue","filter","getSelectedListsWhere","replace","getSelectedLists","5","URL","get","id","_open","tab","updateState","$tabs","removeClass","css","$tabNavs","nav","blur","url","setParameter","href","history","pushState","title","refererField","tb_remove","forms","editor","refresh","split","switchTab","tabId","match","urlParams","returnValue","$context","find","each","substring","first","text","open","click","body","activeTab","replaceState","state","init","./url.js","6","query","hasOwnProperty","b","decodeURIComponent","build","ret","d","encodeURIComponent","join","key","7","global","Vnode","tag","attrs0","children","dom","attrs","domSize","_state","instance","skip","hyperscript","start","cached","selectorCache","classes","selectorParser","exec","attrValue","compileSelector","isArray","normalized","normalizeChildren","childList","hasAttrs","class","hasOwn","execSelector","normalize","node","html","fragment","attrs1","PromisePolyfill","executor","list","shouldAbsorb","execute","then","callAsync","console","error","resolvers","rejectors","retry","self","TypeError","executeOnce","rejectCurrent","run","fn","runs","onerror","resolveCurrent","_instance","setImmediate","onFulfilled","onRejection","handle","callback","next","resolveNext","rejectNext","promise","resolve","reject","catch","all","total","count","values","consume","race","Promise","buildQueryString","object","destructure","key0","Object","toString","FILE_PROTOCOL_REGEX","RegExp","requestService","$window","finalizer","complete","oncompletion","finalize","promise0","then0","extra","interpolate","tokens","slice","assemble","querystring","indexOf","deserialize","extract","xhr","responseText","cast","type0","callbackCount","request","toUpperCase","useBody","serialize","FormData","stringify","XMLHttpRequest","aborted","_abort","abort","async","user","password","headers","setRequestHeader","withCredentials","onreadystatechange","readyState","response","status","test","send","background","jsonp","callbackName","Math","round","random","script","createElement","parentNode","removeChild","callbackKey","src","documentElement","appendChild","setCompletionCallback","_8","coreRenderer","getNameSpace","vnode","xmlns","nameSpace","createNodes","parent","vnodes","end","hooks","nextSibling","ns","createNode","initComponent","insertNode","$emptyFragment","createComponent","initLifecycle","$doc","createTextNode","createText","createHTML","createDocumentFragment","firstChild","childNodes","createFragment","attrs2","is","createElementNS","key2","setAttr","setAttrs","contenteditable","setContentEditable","textContent","selectedIndex","setLateAttrs","parent1","caption","thead","tbody","tfoot","tr","th","td","colgroup","col","temp","innerHTML","child","sentinel","create","$$reentrantLock$$","updateNodes","old","recycling","removeNodes","isUnkeyed","getNextSibling","updateNode","pool","abs","oldChildrenLength","poolChildrenLength","vnodesChildrenLength","isRecyclable","concat","map","oldStart","oldEnd","v","shouldRecycle","toFragment","getKeyMap","oldIndex","movable","oldTag","forceVnodeUpdate","forceComponentUpdate","onbeforeupdate","shouldNotUpdate","updateLifecycle","nodeValue","updateText","updateHTML","updateFragment","isLifecycleMethod","updateEvent","updateAttrs","updateElement","removeNode","updateComponent","count0","insertBefore","content","continuation","called","expected","onremove","removeNodeFromDOM","source","oncreate","onupdate","onbeforeremove","hasIntegrationMethods","result","attr","activeElement","isFormAttribute","nsLastIndex","substr","setAttributeNS","cssText","updateStyle","isAttribute","isCustomElement","normalized0","onevent","eventName","removeEventListener","oninit","svg","math","render","active","namespace","namespaceURI","focus","setEventCallback","redrawService","unsubscribe","key1","index","callbacks","splice","renderService","subscribe","last","pending","requestAnimationFrame","now","Date","throttle","_11","redrawService0","root","component","_16","parseQueryString","string","charAt","entries","data0","counters","entry","key5","levels","cursor","pop","j","level","nextLevel","isNumber","isNaN","parseInt","isValue","coreRouter","normalize1","fragment0","parsePath","path","queryData","hashData","queryIndex","hashIndex","pathEnd","queryEnd","queryParams","key4","hashParams","asyncId","supportsPushState","callAsync0","router","prefix","getPath","setPath","options","match2","token","hash","onpopstate","defineRoutes","routes","resolveRoute","params","pathname","k","route0","matcher","keys","callback0","debounceAsync","onhashchange","route","render1","attrs3","currentPath","lastUpdate","routeService","defaultRoute","run1","bail","payload","update","routeResolver","comp","onmatch","resolved","set","prefix0","link","vnode1","onclick","ctrlKey","metaKey","shiftKey","which","param","key3","_20","withAttr","attrName","callback1","currentTarget","_28","version","8","indexOfListener","listeners","listener","alias","name","isValidListener","proto","originalGlobalValue","getListeners","evt","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","removeEvent","_events","removeAllListeners","emitEvent","listenersMap","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","noConflict","amd"],"mappings":"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","file":"admin.min.js","sourcesContent":["(function () { var require = undefined; var define = undefined; (function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}return e})()({1:[function(require,module,exports){\n'use strict';\n\n// dependencies\n\nvar m = window.m = require('mithril');\nvar EventEmitter = require('wolfy87-eventemitter');\n\n// vars\nvar context = document.getElementById('mc4wp-admin');\nvar events = new EventEmitter();\nvar tabs = require('./admin/tabs.js')(context);\nvar helpers = require('./admin/helpers.js');\nvar settings = require('./admin/settings.js')(context, helpers, events);\n\n// list fetcher\nvar ListFetcher = require('./admin/list-fetcher.js');\nvar mount = document.getElementById('mc4wp-list-fetcher');\nif (mount) {\n m.mount(mount, new ListFetcher());\n}\n\n// expose some things\nwindow.mc4wp = window.mc4wp || {};\nwindow.mc4wp.deps = window.mc4wp.deps || {};\nwindow.mc4wp.deps.mithril = m;\nwindow.mc4wp.helpers = helpers;\nwindow.mc4wp.events = events;\nwindow.mc4wp.settings = settings;\nwindow.mc4wp.tabs = tabs;\n\n},{\"./admin/helpers.js\":2,\"./admin/list-fetcher.js\":3,\"./admin/settings.js\":4,\"./admin/tabs.js\":5,\"mithril\":7,\"wolfy87-eventemitter\":8}],2:[function(require,module,exports){\n'use strict';\n\nvar helpers = {};\n\nhelpers.toggleElement = function (selector) {\n\tvar elements = document.querySelectorAll(selector);\n\tfor (var i = 0; i < elements.length; i++) {\n\t\tvar show = elements[i].clientHeight <= 0;\n\t\telements[i].style.display = show ? '' : 'none';\n\t}\n};\n\nhelpers.bindEventToElement = function (element, event, handler) {\n\tif (element.addEventListener) {\n\t\telement.addEventListener(event, handler);\n\t} else if (element.attachEvent) {\n\t\telement.attachEvent('on' + event, handler);\n\t}\n};\n\nhelpers.bindEventToElements = function (elements, event, handler) {\n\tArray.prototype.forEach.call(elements, function (element) {\n\t\thelpers.bindEventToElement(element, event, handler);\n\t});\n};\n\n// polling\nhelpers.debounce = function (func, wait, immediate) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n\n/**\n * Showif.js\n */\n(function () {\n\tvar showIfElements = document.querySelectorAll('[data-showif]');\n\n\t// dependent elements\n\tArray.prototype.forEach.call(showIfElements, function (element) {\n\t\tvar config = JSON.parse(element.getAttribute('data-showif'));\n\t\tvar parentElements = document.querySelectorAll('[name=\"' + config.element + '\"]');\n\t\tvar inputs = element.querySelectorAll('input,select,textarea:not([readonly])');\n\t\tvar hide = config.hide === undefined || config.hide;\n\n\t\tfunction toggleElement() {\n\n\t\t\t// do nothing with unchecked radio inputs\n\t\t\tif (this.getAttribute('type') === \"radio\" && !this.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar value = this.getAttribute(\"type\") === \"checkbox\" ? this.checked : this.value;\n\t\t\tvar conditionMet = value == config.value;\n\n\t\t\tif (hide) {\n\t\t\t\telement.style.display = conditionMet ? '' : 'none';\n\t\t\t\telement.style.visibility = conditionMet ? '' : 'hidden';\n\t\t\t} else {\n\t\t\t\telement.style.opacity = conditionMet ? '' : '0.4';\n\t\t\t}\n\n\t\t\t// disable input fields to stop sending their values to server\n\t\t\tArray.prototype.forEach.call(inputs, function (inputElement) {\n\t\t\t\tconditionMet ? inputElement.removeAttribute('readonly') : inputElement.setAttribute('readonly', 'readonly');\n\t\t\t});\n\t\t}\n\n\t\t// find checked element and call toggleElement function\n\t\tArray.prototype.forEach.call(parentElements, function (parentElement) {\n\t\t\ttoggleElement.call(parentElement);\n\t\t});\n\n\t\t// bind on all changes\n\t\thelpers.bindEventToElements(parentElements, 'change', toggleElement);\n\t});\n})();\n\nmodule.exports = helpers;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar $ = window.jQuery;\nvar config = mc4wp_vars;\nvar i18n = config.i18n;\n\nfunction ListFetcher() {\n this.working = false;\n this.done = false;\n\n // start fetching right away when no lists but api key given\n if (config.mailchimp.api_connected && config.mailchimp.lists.length === 0) {\n this.fetch();\n }\n}\n\nListFetcher.prototype.fetch = function (e) {\n e && e.preventDefault();\n\n this.working = true;\n this.done = false;\n\n $.post(ajaxurl, {\n action: \"mc4wp_renew_mailchimp_lists\",\n timeout: 180000\n }).done(function (data) {\n this.success = true;\n\n if (data) {\n window.setTimeout(function () {\n window.location.reload();\n }, 3000);\n }\n }.bind(this)).fail(function (data) {\n this.success = false;\n }.bind(this)).always(function (data) {\n this.working = false;\n this.done = true;\n\n m.redraw();\n }.bind(this));\n};\n\nListFetcher.prototype.view = function () {\n return m('form', {\n method: \"POST\",\n onsubmit: this.fetch.bind(this)\n }, [m('p', [m('input', {\n type: \"submit\",\n value: this.working ? i18n.fetching_mailchimp_lists : i18n.renew_mailchimp_lists,\n className: \"button\",\n disabled: !!this.working\n }), m.trust(' &nbsp; '), this.working ? [m('span.mc4wp-loader', \"Loading...\"), m.trust(' &nbsp; '), m('em.help', i18n.fetching_mailchimp_lists_can_take_a_while)] : '', this.done ? [this.success ? m('em.help.green', i18n.fetching_mailchimp_lists_done) : m('em.help.red', i18n.fetching_mailchimp_lists_error)] : ''])]);\n};\n\nmodule.exports = ListFetcher;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar Settings = function Settings(context, helpers, events) {\n\t'use strict';\n\n\t// vars\n\n\tvar form = context.querySelector('form');\n\tvar listInputs = context.querySelectorAll('.mc4wp-list-input');\n\tvar lists = mc4wp_vars.mailchimp.lists;\n\tvar selectedLists = [];\n\n\t// functions\n\tfunction getSelectedListsWhere(searchKey, searchValue) {\n\t\treturn selectedLists.filter(function (el) {\n\t\t\treturn el[searchKey] === searchValue;\n\t\t});\n\t}\n\n\tfunction getSelectedLists() {\n\t\treturn selectedLists;\n\t}\n\n\tfunction updateSelectedLists() {\n\t\tselectedLists = [];\n\n\t\tArray.prototype.forEach.call(listInputs, function (input) {\n\t\t\t// skip unchecked checkboxes\n\t\t\tif (typeof input.checked === \"boolean\" && !input.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_typeof(lists[input.value]) === \"object\") {\n\t\t\t\tselectedLists.push(lists[input.value]);\n\t\t\t}\n\t\t});\n\n\t\tevents.trigger('selectedLists.change', [selectedLists]);\n\t\treturn selectedLists;\n\t}\n\n\tfunction toggleVisibleLists() {\n\t\tvar rows = document.querySelectorAll('.lists--only-selected > *');\n\t\tArray.prototype.forEach.call(rows, function (el) {\n\n\t\t\tvar listId = el.getAttribute('data-list-id');\n\t\t\tvar isSelected = getSelectedListsWhere('id', listId).length > 0;\n\n\t\t\tif (isSelected) {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class').replace('hidden', ''));\n\t\t\t} else {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class') + \" hidden\");\n\t\t\t}\n\t\t});\n\t}\n\n\tevents.on('selectedLists.change', toggleVisibleLists);\n\thelpers.bindEventToElements(listInputs, 'change', updateSelectedLists);\n\n\tupdateSelectedLists();\n\n\treturn {\n\t\tgetSelectedLists: getSelectedLists\n\t};\n};\n\nmodule.exports = Settings;\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nvar URL = require('./url.js');\n\n// Tabs\nvar Tabs = function Tabs(context) {\n\n\t// TODO: last piece of jQuery... can we get rid of it?\n\tvar $ = window.jQuery;\n\n\tvar $context = $(context);\n\tvar $tabs = $context.find('.tab');\n\tvar $tabNavs = $context.find('.nav-tab');\n\tvar refererField = context.querySelector('input[name=\"_wp_http_referer\"]');\n\tvar tabs = [];\n\n\t$.each($tabs, function (i, t) {\n\t\tvar id = t.id.substring(4);\n\t\tvar title = $(t).find('h2').first().text();\n\n\t\ttabs.push({\n\t\t\tid: id,\n\t\t\ttitle: title,\n\t\t\telement: t,\n\t\t\tnav: context.querySelectorAll('.nav-tab-' + id),\n\t\t\topen: function open() {\n\t\t\t\treturn _open(id);\n\t\t\t}\n\t\t});\n\t});\n\n\tfunction get(id) {\n\n\t\tfor (var i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].id === id) {\n\t\t\t\treturn tabs[i];\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tfunction _open(tab, updateState) {\n\n\t\t// make sure we have a tab object\n\t\tif (typeof tab === \"string\") {\n\t\t\ttab = get(tab);\n\t\t}\n\n\t\tif (!tab) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// should we update state?\n\t\tif (updateState == undefined) {\n\t\t\tupdateState = true;\n\t\t}\n\n\t\t// hide all tabs & remove active class\n\t\t$tabs.removeClass('tab-active').css('display', 'none');\n\t\t$tabNavs.removeClass('nav-tab-active');\n\n\t\t// add `nav-tab-active` to this tab\n\t\tArray.prototype.forEach.call(tab.nav, function (nav) {\n\t\t\tnav.className += \" nav-tab-active\";\n\t\t\tnav.blur();\n\t\t});\n\n\t\t// show target tab\n\t\ttab.element.style.display = 'block';\n\t\ttab.element.className += \" tab-active\";\n\n\t\t// create new URL\n\t\tvar url = URL.setParameter(window.location.href, \"tab\", tab.id);\n\n\t\t// update hash\n\t\tif (history.pushState && updateState) {\n\t\t\thistory.pushState(tab.id, '', url);\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\n\t\t// update referer field\n\t\trefererField.value = url;\n\n\t\t// if thickbox is open, close it.\n\t\tif (typeof tb_remove === \"function\") {\n\t\t\ttb_remove();\n\t\t}\n\n\t\t// refresh editor after switching tabs\n\t\t// TODO: decouple this! law of demeter etc.\n\t\tif (tab.id === 'fields' && window.mc4wp && window.mc4wp.forms && window.mc4wp.forms.editor) {\n\t\t\tmc4wp.forms.editor.refresh();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction title(tab) {\n\t\tvar title = document.title.split('-');\n\t\tdocument.title = document.title.replace(title[0], tab.title + \" \");\n\t}\n\n\tfunction switchTab(e) {\n\t\te = e || window.event;\n\n\t\t// get from data attribute\n\t\tvar tabId = this.getAttribute('data-tab');\n\n\t\t// get from classname\n\t\tif (!tabId) {\n\t\t\tvar match = this.className.match(/nav-tab-(\\w+)?/);\n\t\t\tif (match) {\n\t\t\t\ttabId = match[1];\n\t\t\t}\n\t\t}\n\n\t\t// get from href\n\t\tif (!tabId) {\n\t\t\tvar urlParams = URL.parse(this.href);\n\t\t\tif (!urlParams.tab) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttabId = urlParams.tab;\n\t\t}\n\n\t\tvar opened = _open(tabId);\n\n\t\tif (opened) {\n\t\t\te.preventDefault();\n\t\t\te.returnValue = false;\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction init() {\n\n\t\t// check for current tab\n\t\tif (!history.pushState) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar activeTab = $tabs.filter(':visible').get(0);\n\t\tif (!activeTab) {\n\t\t\treturn;\n\t\t}\n\t\tvar tab = get(activeTab.id.substring(4));\n\t\tif (!tab) return;\n\n\t\t// check if tab is in html5 history\n\t\tif (history.replaceState && history.state === null) {\n\t\t\thistory.replaceState(tab.id, '');\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\t}\n\n\t$tabNavs.click(switchTab);\n\t$(document.body).on('click', '.tab-link', switchTab);\n\tinit();\n\n\tif (window.addEventListener && history.pushState) {\n\t\twindow.addEventListener('popstate', function (e) {\n\t\t\tif (!e.state) return true;\n\t\t\tvar tabId = e.state;\n\t\t\treturn _open(tabId, false);\n\t\t});\n\t}\n\n\treturn {\n\t\topen: _open,\n\t\tget: get\n\t};\n};\n\nmodule.exports = Tabs;\n\n},{\"./url.js\":6}],6:[function(require,module,exports){\n'use strict';\n\nvar URL = {\n\tparse: function parse(url) {\n\t\tvar query = {};\n\t\tvar a = url.split('&');\n\t\tfor (var i in a) {\n\t\t\tif (!a.hasOwnProperty(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar b = a[i].split('=');\n\t\t\tquery[decodeURIComponent(b[0])] = decodeURIComponent(b[1]);\n\t\t}\n\n\t\treturn query;\n\t},\n\tbuild: function build(data) {\n\t\tvar ret = [];\n\t\tfor (var d in data) {\n\t\t\tret.push(d + \"=\" + encodeURIComponent(data[d]));\n\t\t}return ret.join(\"&\");\n\t},\n\tsetParameter: function setParameter(url, key, value) {\n\t\tvar data = URL.parse(url);\n\t\tdata[key] = value;\n\t\treturn URL.build(data);\n\t}\n};\n\nmodule.exports = URL;\n\n},{}],7:[function(require,module,exports){\n(function (global){\n;(function() {\n\"use strict\"\nfunction Vnode(tag, key, attrs0, children, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: undefined, _state: undefined, events: undefined, instance: undefined, skip: false}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node != null && typeof node !== \"object\") return Vnode(\"#\", undefined, undefined, node === false ? \"\" : node, undefined, undefined)\n\treturn node\n}\nVnode.normalizeChildren = function normalizeChildren(children) {\n\tfor (var i = 0; i < children.length; i++) {\n\t\tchildren[i] = Vnode.normalize(children[i])\n\t}\n\treturn children\n}\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue === \"\" ? attrValue : attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\nfunction execSelector(state, attrs, children) {\n\tvar hasAttrs = false, childList, text\n\tvar className = attrs.className || attrs.class\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key)) {\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className !== undefined) {\n\t\tif (attrs.class !== undefined) {\n\t\t\tattrs.class = undefined\n\t\t\tattrs.className = className\n\t\t}\n\t\tif (state.attrs.className != null) {\n\t\t\tattrs.className = state.attrs.className + \" \" + className\n\t\t}\n\t}\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\thasAttrs = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\ttext = children[0].children\n\t} else {\n\t\tchildList = children\n\t}\n\treturn Vnode(state.tag, attrs.key, hasAttrs ? attrs : undefined, childList, text)\n}\nfunction hyperscript(selector) {\n\t// Because sloppy mode sucks\n\tvar attrs = arguments[1], start = 2, children\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\tif (typeof selector === \"string\") {\n\t\tvar cached = selectorCache[selector] || compileSelector(selector)\n\t}\n\tif (attrs == null) {\n\t\tattrs = {}\n\t} else if (typeof attrs !== \"object\" || attrs.tag != null || Array.isArray(attrs)) {\n\t\tattrs = {}\n\t\tstart = 1\n\t}\n\tif (arguments.length === start + 1) {\n\t\tchildren = arguments[start]\n\t\tif (!Array.isArray(children)) children = [children]\n\t} else {\n\t\tchildren = []\n\t\twhile (start < arguments.length) children.push(arguments[start++])\n\t}\n\tvar normalized = Vnode.normalizeChildren(children)\n\tif (typeof selector === \"string\") {\n\t\treturn execSelector(cached, attrs, normalized)\n\t} else {\n\t\treturn Vnode(selector, attrs.key, attrs, normalized)\n\t}\n}\nhyperscript.trust = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\nhyperscript.fragment = function(attrs1, children) {\n\treturn Vnode(\"[\", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined)\n}\nvar m = hyperscript\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") window.Promise = PromisePolyfill\n\tvar PromisePolyfill = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") global.Promise = PromisePolyfill\n\tvar PromisePolyfill = global.Promise\n} else {\n}\nvar buildQueryString = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\tvar args = []\n\tfor (var key0 in object) {\n\t\tdestructure(key0, object[key0])\n\t}\n\treturn args.join(\"&\")\n\tfunction destructure(key0, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key0) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\nvar FILE_PROTOCOL_REGEX = new RegExp(\"^file://\", \"i\")\nvar _8 = function($window, Promise) {\n\tvar callbackCount = 0\n\tvar oncompletion\n\tfunction setCompletionCallback(callback) {oncompletion = callback}\n\tfunction finalizer() {\n\t\tvar count = 0\n\t\tfunction complete() {if (--count === 0 && typeof oncompletion === \"function\") oncompletion()}\n\t\treturn function finalize(promise0) {\n\t\t\tvar then0 = promise0.then\n\t\t\tpromise0.then = function() {\n\t\t\t\tcount++\n\t\t\t\tvar next = then0.apply(promise0, arguments)\n\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\tcomplete()\n\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t})\n\t\t\t\treturn finalize(next)\n\t\t\t}\n\t\t\treturn promise0\n\t\t}\n\t}\n\tfunction normalize(args, extra) {\n\t\tif (typeof args === \"string\") {\n\t\t\tvar url = args\n\t\t\targs = extra || {}\n\t\t\tif (args.url == null) args.url = url\n\t\t}\n\t\treturn args\n\t}\n\tfunction request(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tif (args.method == null) args.method = \"GET\"\n\t\t\targs.method = args.method.toUpperCase()\n\t\t\tvar useBody = (args.method === \"GET\" || args.method === \"TRACE\") ? false : (typeof args.useBody === \"boolean\" ? args.useBody : true)\n\t\t\tif (typeof args.serialize !== \"function\") args.serialize = typeof FormData !== \"undefined\" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify\n\t\t\tif (typeof args.deserialize !== \"function\") args.deserialize = deserialize\n\t\t\tif (typeof args.extract !== \"function\") args.extract = extract\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\tif (useBody) args.data = args.serialize(args.data)\n\t\t\telse args.url = assemble(args.url, args.data)\n\t\t\tvar xhr = new $window.XMLHttpRequest(),\n\t\t\t\taborted = false,\n\t\t\t\t_abort = xhr.abort\n\t\t\txhr.abort = function abort() {\n\t\t\t\taborted = true\n\t\t\t\t_abort.call(xhr)\n\t\t\t}\n\t\t\txhr.open(args.method, args.url, typeof args.async === \"boolean\" ? args.async : true, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\t\t\tif (args.serialize === JSON.stringify && useBody && !(args.headers && args.headers.hasOwnProperty(\"Content-Type\"))) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (args.deserialize === deserialize && !(args.headers && args.headers.hasOwnProperty(\"Accept\"))) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tfor (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t}\n\t\t\tif (typeof args.config === \"function\") xhr = args.config(xhr, args) || xhr\n\t\t\txhr.onreadystatechange = function() {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif(aborted) return\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args))\n\t\t\t\t\t\tif ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || FILE_PROTOCOL_REGEX.test(args.url)) {\n\t\t\t\t\t\t\tresolve(cast(args.type, response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar error = new Error(xhr.responseText)\n\t\t\t\t\t\t\tfor (var key in response) error[key] = response[key]\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (useBody && (args.data != null)) xhr.send(args.data)\n\t\t\telse xhr.send()\n\t\t})\n\t\treturn args.background === true ? promise0 : finalize(promise0)\n\t}\n\tfunction jsonp(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(cast(args.type, data))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tif (args.data == null) args.data = {}\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\targs.data[args.callbackKey || \"callback\"] = callbackName\n\t\t\tscript.src = assemble(args.url, args.data)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t})\n\t\treturn args.background === true? promise0 : finalize(promise0)\n\t}\n\tfunction interpolate(url, data) {\n\t\tif (data == null) return url\n\t\tvar tokens = url.match(/:[^\\/]+/gi) || []\n\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\tvar key = tokens[i].slice(1)\n\t\t\tif (data[key] != null) {\n\t\t\t\turl = url.replace(tokens[i], data[key])\n\t\t\t}\n\t\t}\n\t\treturn url\n\t}\n\tfunction assemble(url, data) {\n\t\tvar querystring = buildQueryString(data)\n\t\tif (querystring !== \"\") {\n\t\t\tvar prefix = url.indexOf(\"?\") < 0 ? \"?\" : \"&\"\n\t\t\turl += prefix + querystring\n\t\t}\n\t\treturn url\n\t}\n\tfunction deserialize(data) {\n\t\ttry {return data !== \"\" ? JSON.parse(data) : null}\n\t\tcatch (e) {throw new Error(data)}\n\t}\n\tfunction extract(xhr) {return xhr.responseText}\n\tfunction cast(type0, data) {\n\t\tif (typeof type0 === \"function\") {\n\t\t\tif (Array.isArray(data)) {\n\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\tdata[i] = new type0(data[i])\n\t\t\t\t}\n\t\t\t}\n\t\t\telse return new type0(data)\n\t\t}\n\t\treturn data\n\t}\n\treturn {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback}\n}\nvar requestService = _8(window, PromisePolyfill)\nvar coreRenderer = function($window) {\n\tvar $doc = $window.document\n\tvar $emptyFragment = $doc.createDocumentFragment()\n\tvar nameSpace = {\n\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\tmath: \"http://www.w3.org/1998/Math/MathML\"\n\t}\n\tvar onevent\n\tfunction setEventCallback(callback) {return onevent = callback}\n\tfunction getNameSpace(vnode) {\n\t\treturn vnode.attrs && vnode.attrs.xmlns || nameSpace[vnode.tag]\n\t}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode.state = {}\n\t\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": return createText(parent, vnode, nextSibling)\n\t\t\t\tcase \"<\": return createHTML(parent, vnode, nextSibling)\n\t\t\t\tcase \"[\": return createFragment(parent, vnode, hooks, ns, nextSibling)\n\t\t\t\tdefault: return createElement(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse return createComponent(parent, vnode, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode, nextSibling) {\n\t\tvnode.dom = $doc.createTextNode(vnode.children)\n\t\tinsertNode(parent, vnode.dom, nextSibling)\n\t\treturn vnode.dom\n\t}\n\tfunction createHTML(parent, vnode, nextSibling) {\n\t\tvar match1 = vnode.children.match(/^\\s*?<(\\w+)/im) || []\n\t\tvar parent1 = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}[match1[1]] || \"div\"\n\t\tvar temp = $doc.createElement(parent1)\n\t\ttemp.innerHTML = vnode.children\n\t\tvnode.dom = temp.firstChild\n\t\tvnode.domSize = temp.childNodes.length\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createFragment(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode.children != null) {\n\t\t\tvar children = vnode.children\n\t\t\tcreateNodes(fragment, children, 0, children.length, hooks, null, ns)\n\t\t}\n\t\tvnode.dom = fragment.firstChild\n\t\tvnode.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createElement(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tvar attrs2 = vnode.attrs\n\t\tvar is = attrs2 && attrs2.is\n\t\tns = getNameSpace(vnode) || ns\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode.dom = element\n\t\tif (attrs2 != null) {\n\t\t\tsetAttrs(vnode, attrs2, ns)\n\t\t}\n\t\tinsertNode(parent, element, nextSibling)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse {\n\t\t\tif (vnode.text != null) {\n\t\t\t\tif (vnode.text !== \"\") element.textContent = vnode.text\n\t\t\t\telse vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode.children != null) {\n\t\t\t\tvar children = vnode.children\n\t\t\t\tcreateNodes(element, children, 0, children.length, hooks, null, ns)\n\t\t\t\tsetLateAttrs(vnode)\n\t\t\t}\n\t\t}\n\t\treturn element\n\t}\n\tfunction initComponent(vnode, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode.tag.view === \"function\") {\n\t\t\tvnode.state = Object.create(vnode.tag)\n\t\t\tsentinel = vnode.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode.state = void 0\n\t\t\tsentinel = vnode.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode.state = (vnode.tag.prototype != null && typeof vnode.tag.prototype.view === \"function\") ? new vnode.tag(vnode) : vnode.tag(vnode)\n\t\t}\n\t\tvnode._state = vnode.state\n\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\tinitLifecycle(vnode._state, vnode, hooks)\n\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tvar element = createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0\n\t\t\tinsertNode(parent, element, nextSibling)\n\t\t\treturn element\n\t\t}\n\t\telse {\n\t\t\tvnode.domSize = 0\n\t\t\treturn $emptyFragment\n\t\t}\n\t}\n\t//update\n\tfunction updateNodes(parent, old, vnodes, recycling, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns)\n\t\telse if (vnodes == null) removeNodes(old, 0, old.length, vnodes)\n\t\telse {\n\t\t\tif (old.length === vnodes.length) {\n\t\t\t\tvar isUnkeyed = false\n\t\t\t\tfor (var i = 0; i < vnodes.length; i++) {\n\t\t\t\t\tif (vnodes[i] != null && old[i] != null) {\n\t\t\t\t\t\tisUnkeyed = vnodes[i].key == null && old[i].key == null\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isUnkeyed) {\n\t\t\t\t\tfor (var i = 0; i < old.length; i++) {\n\t\t\t\t\t\tif (old[i] === vnodes[i]) continue\n\t\t\t\t\t\telse if (old[i] == null && vnodes[i] != null) createNode(parent, vnodes[i], hooks, ns, getNextSibling(old, i + 1, nextSibling))\n\t\t\t\t\t\telse if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes)\n\t\t\t\t\t\telse updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), recycling, ns)\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\trecycling = recycling || isRecyclable(old, vnodes)\n\t\t\tif (recycling) {\n\t\t\t\tvar pool = old.pool\n\t\t\t\told = old.concat(old.pool)\n\t\t\t}\n\t\t\tvar oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldStart], v = vnodes[start]\n\t\t\t\tif (o === v && !recycling) oldStart++, start++\n\t\t\t\telse if (o == null) oldStart++\n\t\t\t\telse if (v == null) start++\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldStart >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\toldStart++, start++\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar o = old[oldEnd]\n\t\t\t\t\tif (o === v && !recycling) oldEnd--, start++\n\t\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\t\telse if (v == null) start++\n\t\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\t\tif (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling))\n\t\t\t\t\t\toldEnd--, start++\n\t\t\t\t\t}\n\t\t\t\t\telse break\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldEnd], v = vnodes[end]\n\t\t\t\tif (o === v && !recycling) oldEnd--, end--\n\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\telse if (v == null) end--\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t\tif (o.dom != null) nextSibling = o.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (!map) map = getKeyMap(old, oldEnd)\n\t\t\t\t\tif (v != null) {\n\t\t\t\t\t\tvar oldIndex = map[v.key]\n\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\tvar movable = old[oldIndex]\n\t\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldIndex >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\t\tupdateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns)\n\t\t\t\t\t\t\tinsertNode(parent, toFragment(movable), nextSibling)\n\t\t\t\t\t\t\told[oldIndex].skip = true\n\t\t\t\t\t\t\tif (movable.dom != null) nextSibling = movable.dom\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar dom = createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\tnextSibling = dom\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tend--\n\t\t\t\t}\n\t\t\t\tif (end < start) break\n\t\t\t}\n\t\t\tcreateNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\tremoveNodes(old, oldStart, oldEnd + 1, vnodes)\n\t\t}\n\t}\n\tfunction updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode.state = old.state\n\t\t\tvnode._state = old._state\n\t\t\tvnode.events = old.events\n\t\t\tif (!recycling && shouldNotUpdate(vnode, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode.attrs != null) {\n\t\t\t\t\tif (recycling) {\n\t\t\t\t\t\tvnode.state = {}\n\t\t\t\t\t\tinitLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t\t}\n\t\t\t\t\telse updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode, recycling, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(old, null)\n\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode) {\n\t\tif (old.children.toString() !== vnode.children.toString()) {\n\t\t\told.dom.nodeValue = vnode.children\n\t\t}\n\t\tvnode.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode, nextSibling) {\n\t\tif (old.children !== vnode.children) {\n\t\t\ttoFragment(old)\n\t\t\tcreateHTML(parent, vnode, nextSibling)\n\t\t}\n\t\telse vnode.dom = old.dom, vnode.domSize = old.domSize\n\t}\n\tfunction updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode.children, recycling, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children = vnode.children\n\t\tvnode.dom = null\n\t\tif (children != null) {\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode.dom == null) vnode.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode, recycling, hooks, ns) {\n\t\tvar element = vnode.dom = old.dom\n\t\tns = getNameSpace(vnode) || ns\n\t\tif (vnode.tag === \"textarea\") {\n\t\t\tif (vnode.attrs == null) vnode.attrs = {}\n\t\t\tif (vnode.text != null) {\n\t\t\t\tvnode.attrs.value = vnode.text //FIXME handle0 multiple children\n\t\t\t\tvnode.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode, old.attrs, vnode.attrs, ns)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse if (old.text != null && vnode.text != null && vnode.text !== \"\") {\n\t\t\tif (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text\n\t\t}\n\t\telse {\n\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\tif (vnode.text != null) vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\tupdateNodes(element, old.children, vnode.children, recycling, hooks, null, ns)\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tif (recycling) {\n\t\t\tinitComponent(vnode, hooks)\n\t\t} else {\n\t\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\t\tif (vnode.attrs != null) updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tupdateLifecycle(vnode._state, vnode, hooks)\n\t\t}\n\t\tif (vnode.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(old.instance, null)\n\t\t\tvnode.dom = undefined\n\t\t\tvnode.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t}\n\t}\n\tfunction isRecyclable(old, vnodes) {\n\t\tif (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) {\n\t\t\tvar oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0\n\t\t\tvar poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0\n\t\t\tvar vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0\n\t\t\tif (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\tfunction getKeyMap(vnodes, end) {\n\t\tvar map = {}, i = 0\n\t\tfor (var i = 0; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tvar key2 = vnode.key\n\t\t\t\tif (key2 != null) map[key2] = i\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\tfunction toFragment(vnode) {\n\t\tvar count0 = vnode.domSize\n\t\tif (count0 != null || vnode.dom == null) {\n\t\t\tvar fragment = $doc.createDocumentFragment()\n\t\t\tif (count0 > 0) {\n\t\t\t\tvar dom = vnode.dom\n\t\t\t\twhile (--count0) fragment.appendChild(dom.nextSibling)\n\t\t\t\tfragment.insertBefore(dom, fragment.firstChild)\n\t\t\t}\n\t\t\treturn fragment\n\t\t}\n\t\telse return vnode.dom\n\t}\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\tfunction setContentEditable(vnode) {\n\t\tvar children = vnode.children\n\t\tif (children != null && children.length === 1 && children[0].tag === \"<\") {\n\t\t\tvar content = children[0].children\n\t\t\tif (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode.text != null || children != null && children.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t}\n\t//remove\n\tfunction removeNodes(vnodes, start, end, context) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tif (vnode.skip) vnode.skip = false\n\t\t\t\telse removeNode(vnode, context)\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNode(vnode, context) {\n\t\tvar expected = 1, called = 0\n\t\tif (vnode.attrs && typeof vnode.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode.attrs.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode._state.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tcontinuation()\n\t\tfunction continuation() {\n\t\t\tif (++called === expected) {\n\t\t\t\tonremove(vnode)\n\t\t\t\tif (vnode.dom) {\n\t\t\t\t\tvar count0 = vnode.domSize || 1\n\t\t\t\t\tif (count0 > 1) {\n\t\t\t\t\t\tvar dom = vnode.dom\n\t\t\t\t\t\twhile (--count0) {\n\t\t\t\t\t\t\tremoveNodeFromDOM(dom.nextSibling)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tremoveNodeFromDOM(vnode.dom)\n\t\t\t\t\tif (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === \"string\") { //TODO test custom elements\n\t\t\t\t\t\tif (!context.pool) context.pool = [vnode]\n\t\t\t\t\t\telse context.pool.push(vnode)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNodeFromDOM(node) {\n\t\tvar parent = node.parentNode\n\t\tif (parent != null) parent.removeChild(node)\n\t}\n\tfunction onremove(vnode) {\n\t\tif (vnode.attrs && typeof vnode.attrs.onremove === \"function\") vnode.attrs.onremove.call(vnode.state, vnode)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onremove === \"function\") vnode._state.onremove.call(vnode.state, vnode)\n\t\tif (vnode.instance != null) onremove(vnode.instance)\n\t\telse {\n\t\t\tvar children = vnode.children\n\t\t\tif (Array.isArray(children)) {\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tvar child = children[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//attrs2\n\tfunction setAttrs(vnode, attrs2, ns) {\n\t\tfor (var key2 in attrs2) {\n\t\t\tsetAttr(vnode, key2, null, attrs2[key2], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode, key2, old, value, ns) {\n\t\tvar element = vnode.dom\n\t\tif (key2 === \"key\" || key2 === \"is\" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== \"object\" || typeof value === \"undefined\" || isLifecycleMethod(key2)) return\n\t\tvar nsLastIndex = key2.indexOf(\":\")\n\t\tif (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === \"xlink\") {\n\t\t\telement.setAttributeNS(\"http://www.w3.org/1999/xlink\", key2.slice(nsLastIndex + 1), value)\n\t\t}\n\t\telse if (key2[0] === \"o\" && key2[1] === \"n\" && typeof value === \"function\") updateEvent(vnode, key2, value)\n\t\telse if (key2 === \"style\") updateStyle(element, old, value)\n\t\telse if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) {\n\t\t\tif (key2 === \"value\") {\n\t\t\t\tvar normalized0 = \"\" + value // eslint-disable-line no-implicit-coercion\n\t\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\t\tif ((vnode.tag === \"input\" || vnode.tag === \"textarea\") && vnode.dom.value === normalized0 && vnode.dom === $doc.activeElement) return\n\t\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"select\") {\n\t\t\t\t\tif (value === null) {\n\t\t\t\t\t\tif (vnode.dom.selectedIndex === -1 && vnode.dom === $doc.activeElement) return\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (old !== null && vnode.dom.value === normalized0 && vnode.dom === $doc.activeElement) return\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"option\" && old != null && vnode.dom.value === normalized0) return\n\t\t\t}\n\t\t\t// If you assign an input type1 that is not supported by IE 11 with an assignment expression, an error0 will occur.\n\t\t\tif (vnode.tag === \"input\" && key2 === \"type\") {\n\t\t\t\telement.setAttribute(key2, value)\n\t\t\t\treturn\n\t\t\t}\n\t\t\telement[key2] = value\n\t\t}\n\t\telse {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) element.setAttribute(key2, \"\")\n\t\t\t\telse element.removeAttribute(key2)\n\t\t\t}\n\t\t\telse element.setAttribute(key2 === \"className\" ? \"class\" : key2, value)\n\t\t}\n\t}\n\tfunction setLateAttrs(vnode) {\n\t\tvar attrs2 = vnode.attrs\n\t\tif (vnode.tag === \"select\" && attrs2 != null) {\n\t\t\tif (\"value\" in attrs2) setAttr(vnode, \"value\", null, attrs2.value, undefined)\n\t\t\tif (\"selectedIndex\" in attrs2) setAttr(vnode, \"selectedIndex\", null, attrs2.selectedIndex, undefined)\n\t\t}\n\t}\n\tfunction updateAttrs(vnode, old, attrs2, ns) {\n\t\tif (attrs2 != null) {\n\t\t\tfor (var key2 in attrs2) {\n\t\t\t\tsetAttr(vnode, key2, old && old[key2], attrs2[key2], ns)\n\t\t\t}\n\t\t}\n\t\tif (old != null) {\n\t\t\tfor (var key2 in old) {\n\t\t\t\tif (attrs2 == null || !(key2 in attrs2)) {\n\t\t\t\t\tif (key2 === \"className\") key2 = \"class\"\n\t\t\t\t\tif (key2[0] === \"o\" && key2[1] === \"n\" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined)\n\t\t\t\t\telse if (key2 !== \"key\") vnode.dom.removeAttribute(key2)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode.dom === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction isAttribute(attr) {\n\t\treturn attr === \"href\" || attr === \"list\" || attr === \"form\" || attr === \"width\" || attr === \"height\"// || attr === \"type\"\n\t}\n\tfunction isCustomElement(vnode){\n\t\treturn vnode.attrs.is || vnode.tag.indexOf(\"-\") > -1\n\t}\n\tfunction hasIntegrationMethods(source) {\n\t\treturn source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove)\n\t}\n\t//style\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) element.style.cssText = \"\", old = null\n\t\tif (style == null) element.style.cssText = \"\"\n\t\telse if (typeof style === \"string\") element.style.cssText = style\n\t\telse {\n\t\t\tif (typeof old === \"string\") element.style.cssText = \"\"\n\t\t\tfor (var key2 in style) {\n\t\t\t\telement.style[key2] = style[key2]\n\t\t\t}\n\t\t\tif (old != null && typeof old !== \"string\") {\n\t\t\t\tfor (var key2 in old) {\n\t\t\t\t\tif (!(key2 in style)) element.style[key2] = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//event\n\tfunction updateEvent(vnode, key2, value) {\n\t\tvar element = vnode.dom\n\t\tvar callback = typeof onevent !== \"function\" ? value : function(e) {\n\t\t\tvar result = value.call(element, e)\n\t\t\tonevent.call(element, e)\n\t\t\treturn result\n\t\t}\n\t\tif (key2 in element) element[key2] = typeof value === \"function\" ? callback : null\n\t\telse {\n\t\t\tvar eventName = key2.slice(2)\n\t\t\tif (vnode.events === undefined) vnode.events = {}\n\t\t\tif (vnode.events[key2] === callback) return\n\t\t\tif (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false)\n\t\t\tif (typeof value === \"function\") {\n\t\t\t\tvnode.events[key2] = callback\n\t\t\t\telement.addEventListener(eventName, vnode.events[key2], false)\n\t\t\t}\n\t\t}\n\t}\n\t//lifecycle\n\tfunction initLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.oninit === \"function\") source.oninit.call(vnode.state, vnode)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(source.oncreate.bind(vnode.state, vnode))\n\t}\n\tfunction updateLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(source.onupdate.bind(vnode.state, vnode))\n\t}\n\tfunction shouldNotUpdate(vnode, old) {\n\t\tvar forceVnodeUpdate, forceComponentUpdate\n\t\tif (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === \"function\") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeupdate === \"function\") forceComponentUpdate = vnode._state.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t\tvnode.instance = old.instance\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\tfunction render(dom, vnodes) {\n\t\tif (!dom) throw new Error(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = $doc.activeElement\n\t\tvar namespace = dom.namespaceURI\n\t\t// First time0 rendering into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\t\tif (!Array.isArray(vnodes)) vnodes = [vnodes]\n\t\tupdateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), false, hooks, null, namespace === \"http://www.w3.org/1999/xhtml\" ? undefined : namespace)\n\t\tdom.vnodes = vnodes\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t\t// document.activeElement can return null in IE https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement\n\t\tif (active != null && $doc.activeElement !== active) active.focus()\n\t}\n\treturn {render: render, setEventCallback: setEventCallback}\n}\nfunction throttle(callback) {\n\t//60fps translates to 16.6ms, round it down since setTimeout requires int\n\tvar time = 16\n\tvar last = 0, pending = null\n\tvar timeout = typeof requestAnimationFrame === \"function\" ? requestAnimationFrame : setTimeout\n\treturn function() {\n\t\tvar now = Date.now()\n\t\tif (last === 0 || now - last >= time) {\n\t\t\tlast = now\n\t\t\tcallback()\n\t\t}\n\t\telse if (pending === null) {\n\t\t\tpending = timeout(function() {\n\t\t\t\tpending = null\n\t\t\t\tcallback()\n\t\t\t\tlast = Date.now()\n\t\t\t}, time - (now - last))\n\t\t}\n\t}\n}\nvar _11 = function($window) {\n\tvar renderService = coreRenderer($window)\n\trenderService.setEventCallback(function(e) {\n\t\tif (e.redraw === false) e.redraw = undefined\n\t\telse redraw()\n\t})\n\tvar callbacks = []\n\tfunction subscribe(key1, callback) {\n\t\tunsubscribe(key1)\n\t\tcallbacks.push(key1, throttle(callback))\n\t}\n\tfunction unsubscribe(key1) {\n\t\tvar index = callbacks.indexOf(key1)\n\t\tif (index > -1) callbacks.splice(index, 2)\n\t}\n\tfunction redraw() {\n\t\tfor (var i = 1; i < callbacks.length; i += 2) {\n\t\t\tcallbacks[i]()\n\t\t}\n\t}\n\treturn {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render}\n}\nvar redrawService = _11(window)\nrequestService.setCompletionCallback(redrawService.redraw)\nvar _16 = function(redrawService0) {\n\treturn function(root, component) {\n\t\tif (component === null) {\n\t\t\tredrawService0.render(root, [])\n\t\t\tredrawService0.unsubscribe(root)\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif (component.view == null && typeof component !== \"function\") throw new Error(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t\n\t\tvar run0 = function() {\n\t\t\tredrawService0.render(root, Vnode(component))\n\t\t}\n\t\tredrawService0.subscribe(root, run0)\n\t\tredrawService0.redraw()\n\t}\n}\nm.mount = _16(redrawService)\nvar Promise = PromisePolyfill\nvar parseQueryString = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\tvar entries = string.split(\"&\"), data0 = {}, counters = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key5 = decodeURIComponent(entry[0])\n\t\tvar value = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\t\tif (value === \"true\") value = true\n\t\telse if (value === \"false\") value = false\n\t\tvar levels = key5.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data0\n\t\tif (key5.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j = 0; j < levels.length; j++) {\n\t\t\tvar level = levels[j], nextLevel = levels[j + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tvar isValue = j === levels.length - 1\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key5 = levels.slice(0, j).join()\n\t\t\t\tif (counters[key5] == null) counters[key5] = 0\n\t\t\t\tlevel = counters[key5]++\n\t\t\t}\n\t\t\tif (cursor[level] == null) {\n\t\t\t\tcursor[level] = isValue ? value : isNumber ? [] : {}\n\t\t\t}\n\t\t\tcursor = cursor[level]\n\t\t}\n\t}\n\treturn data0\n}\nvar coreRouter = function($window) {\n\tvar supportsPushState = typeof $window.history.pushState === \"function\"\n\tvar callAsync0 = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction normalize1(fragment0) {\n\t\tvar data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\tif (fragment0 === \"pathname\" && data[0] !== \"/\") data = \"/\" + data\n\t\treturn data\n\t}\n\tvar asyncId\n\tfunction debounceAsync(callback0) {\n\t\treturn function() {\n\t\t\tif (asyncId != null) return\n\t\t\tasyncId = callAsync0(function() {\n\t\t\t\tasyncId = null\n\t\t\t\tcallback0()\n\t\t\t})\n\t\t}\n\t}\n\tfunction parsePath(path, queryData, hashData) {\n\t\tvar queryIndex = path.indexOf(\"?\")\n\t\tvar hashIndex = path.indexOf(\"#\")\n\t\tvar pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length\n\t\tif (queryIndex > -1) {\n\t\t\tvar queryEnd = hashIndex > -1 ? hashIndex : path.length\n\t\t\tvar queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd))\n\t\t\tfor (var key4 in queryParams) queryData[key4] = queryParams[key4]\n\t\t}\n\t\tif (hashIndex > -1) {\n\t\t\tvar hashParams = parseQueryString(path.slice(hashIndex + 1))\n\t\t\tfor (var key4 in hashParams) hashData[key4] = hashParams[key4]\n\t\t}\n\t\treturn path.slice(0, pathEnd)\n\t}\n\tvar router = {prefix: \"#!\"}\n\trouter.getPath = function() {\n\t\tvar type2 = router.prefix.charAt(0)\n\t\tswitch (type2) {\n\t\t\tcase \"#\": return normalize1(\"hash\").slice(router.prefix.length)\n\t\t\tcase \"?\": return normalize1(\"search\").slice(router.prefix.length) + normalize1(\"hash\")\n\t\t\tdefault: return normalize1(\"pathname\").slice(router.prefix.length) + normalize1(\"search\") + normalize1(\"hash\")\n\t\t}\n\t}\n\trouter.setPath = function(path, data, options) {\n\t\tvar queryData = {}, hashData = {}\n\t\tpath = parsePath(path, queryData, hashData)\n\t\tif (data != null) {\n\t\t\tfor (var key4 in data) queryData[key4] = data[key4]\n\t\t\tpath = path.replace(/:([^\\/]+)/g, function(match2, token) {\n\t\t\t\tdelete queryData[token]\n\t\t\t\treturn data[token]\n\t\t\t})\n\t\t}\n\t\tvar query = buildQueryString(queryData)\n\t\tif (query) path += \"?\" + query\n\t\tvar hash = buildQueryString(hashData)\n\t\tif (hash) path += \"#\" + hash\n\t\tif (supportsPushState) {\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\t$window.onpopstate()\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, router.prefix + path)\n\t\t\telse $window.history.pushState(state, title, router.prefix + path)\n\t\t}\n\t\telse $window.location.href = router.prefix + path\n\t}\n\trouter.defineRoutes = function(routes, resolve, reject) {\n\t\tfunction resolveRoute() {\n\t\t\tvar path = router.getPath()\n\t\t\tvar params = {}\n\t\t\tvar pathname = parsePath(path, params, params)\n\t\t\tvar state = $window.history.state\n\t\t\tif (state != null) {\n\t\t\t\tfor (var k in state) params[k] = state[k]\n\t\t\t}\n\t\t\tfor (var route0 in routes) {\n\t\t\t\tvar matcher = new RegExp(\"^\" + route0.replace(/:[^\\/]+?\\.{3}/g, \"(.*?)\").replace(/:[^\\/]+/g, \"([^\\\\/]+)\") + \"\\/?$\")\n\t\t\t\tif (matcher.test(pathname)) {\n\t\t\t\t\tpathname.replace(matcher, function() {\n\t\t\t\t\t\tvar keys = route0.match(/:[^\\/]+/g) || []\n\t\t\t\t\t\tvar values = [].slice.call(arguments, 1, -2)\n\t\t\t\t\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\t\t\t\t\tparams[keys[i].replace(/:|\\./g, \"\")] = decodeURIComponent(values[i])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(routes[route0], params, path, route0)\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\treject(path, params)\n\t\t}\n\t\tif (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute)\n\t\telse if (router.prefix.charAt(0) === \"#\") $window.onhashchange = resolveRoute\n\t\tresolveRoute()\n\t}\n\treturn router\n}\nvar _20 = function($window, redrawService0) {\n\tvar routeService = coreRouter($window)\n\tvar identity = function(v) {return v}\n\tvar render1, component, attrs3, currentPath, lastUpdate\n\tvar route = function(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\tvar run1 = function() {\n\t\t\tif (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3)))\n\t\t}\n\t\tvar bail = function(path) {\n\t\t\tif (path !== defaultRoute) routeService.setPath(defaultRoute, null, {replace: true})\n\t\t\telse throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t}\n\t\trouteService.defineRoutes(routes, function(payload, params, path) {\n\t\t\tvar update = lastUpdate = function(routeResolver, comp) {\n\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\tattrs3 = params, currentPath = path, lastUpdate = null\n\t\t\t\trender1 = (routeResolver.render || identity).bind(routeResolver)\n\t\t\t\trun1()\n\t\t\t}\n\t\t\tif (payload.view || typeof payload === \"function\") update({}, payload)\n\t\t\telse {\n\t\t\t\tif (payload.onmatch) {\n\t\t\t\t\tPromise.resolve(payload.onmatch(params, path)).then(function(resolved) {\n\t\t\t\t\t\tupdate(payload, resolved)\n\t\t\t\t\t}, bail)\n\t\t\t\t}\n\t\t\t\telse update(payload, \"div\")\n\t\t\t}\n\t\t}, bail)\n\t\tredrawService0.subscribe(root, run1)\n\t}\n\troute.set = function(path, data, options) {\n\t\tif (lastUpdate != null) {\n\t\t\toptions = options || {}\n\t\t\toptions.replace = true\n\t\t}\n\t\tlastUpdate = null\n\t\trouteService.setPath(path, data, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = function(prefix0) {routeService.prefix = prefix0}\n\troute.link = function(vnode1) {\n\t\tvnode1.dom.setAttribute(\"href\", routeService.prefix + vnode1.attrs.href)\n\t\tvnode1.dom.onclick = function(e) {\n\t\t\tif (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return\n\t\t\te.preventDefault()\n\t\t\te.redraw = false\n\t\t\tvar href = this.getAttribute(\"href\")\n\t\t\tif (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length)\n\t\t\troute.set(href, undefined, undefined)\n\t\t}\n\t}\n\troute.param = function(key3) {\n\t\tif(typeof attrs3 !== \"undefined\" && typeof key3 !== \"undefined\") return attrs3[key3]\n\t\treturn attrs3\n\t}\n\treturn route\n}\nm.route = _20(window, redrawService)\nm.withAttr = function(attrName, callback1, context) {\n\treturn function(e) {\n\t\tcallback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName))\n\t}\n}\nvar _28 = coreRenderer(window)\nm.render = _28.render\nm.redraw = redrawService.redraw\nm.request = requestService.request\nm.jsonp = requestService.jsonp\nm.parseQueryString = parseQueryString\nm.buildQueryString = buildQueryString\nm.version = \"1.1.5\"\nm.vnode = Vnode\nif (typeof module !== \"undefined\") module[\"exports\"] = m\nelse window.m = m\n}());\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],8:[function(require,module,exports){\n/*!\n * EventEmitter v5.2.4 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n\n},{}]},{},[1]);\n })();"]}
assets/js/forms-admin.js CHANGED
@@ -1,4 +1,4 @@
1
- (function () { var require = undefined; var define = undefined; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2
  'use strict';
3
 
4
  var rows = function rows(m, i18n) {
@@ -361,7 +361,7 @@ var g = function g(m) {
361
 
362
  module.exports = g;
363
 
364
- },{"html":20}],4:[function(require,module,exports){
365
  'use strict';
366
 
367
  var FieldHelper = function FieldHelper(m, tabs, editor, fields, events, i18n) {
@@ -918,7 +918,7 @@ module.exports = function (m, events) {
918
  };
919
  };
920
 
921
- },{"mithril/stream":21}],7:[function(require,module,exports){
922
  'use strict';
923
 
924
  // load CodeMirror & plugins
@@ -928,99 +928,129 @@ require('codemirror/mode/xml/xml');
928
  require('codemirror/mode/javascript/javascript');
929
  require('codemirror/mode/css/css');
930
  require('codemirror/mode/htmlmixed/htmlmixed');
931
- require('codemirror/addon/fold/xml-fold');
932
- require('codemirror/addon/edit/matchtags');
933
  require('codemirror/addon/edit/closetag.js');
 
 
934
 
935
- var FormEditor = function FormEditor(element) {
 
 
 
 
 
 
 
 
936
 
937
- // create dom representation of form
938
- var _dom = document.createElement('form'),
939
- domDirty = false,
940
- r = {},
941
- editor;
942
 
943
- _dom.innerHTML = element.value.toLowerCase();
 
 
 
944
 
945
- if (CodeMirror) {
946
- editor = CodeMirror.fromTextArea(element, {
947
- selectionPointer: true,
948
- matchTags: { bothTags: true },
949
- mode: "htmlmixed",
950
- htmlMode: true,
951
- autoCloseTags: true,
952
- autoRefresh: true
953
- });
954
 
955
- // dispatch regular "change" on element event every time editor changes (IE9+ only)
956
- window.dispatchEvent && editor.on('change', function () {
957
- if (typeof Event === "function") {
958
- // Create a new 'change' event
959
- var event = new Event('change', { bubbles: true });
960
- element.dispatchEvent(event);
961
- }
962
- });
963
- }
964
 
965
- window.addEventListener('load', function () {
966
- CodeMirror.signal(editor, "change");
967
- });
 
968
 
969
- // set domDirty to true everytime the "change" event fires (a lot..)
970
- element.addEventListener('change', function () {
971
- domDirty = true;
972
- });
973
 
974
- function dom() {
975
- if (domDirty) {
976
- _dom.innerHTML = r.getValue().toLowerCase();
977
- domDirty = false;
978
- }
979
 
980
- return _dom;
 
 
 
981
  }
982
 
983
- r.getValue = function () {
984
- return editor ? editor.getValue() : element.value;
985
- };
986
 
987
- r.query = function (query) {
988
- return dom().querySelectorAll(query.toLowerCase());
989
- };
990
 
991
- r.containsField = function (fieldName) {
992
- return dom().elements.namedItem(fieldName.toLowerCase()) !== null;
993
- };
994
 
995
- r.insert = function (html) {
996
- if (editor) {
997
- editor.replaceSelection(html);
998
- editor.focus();
999
- } else {
1000
- element.value += html;
1001
- }
1002
- };
1003
 
1004
- r.on = function (event, callback) {
1005
- if (editor) {
1006
- // translate "input" event for CodeMirror
1007
- event = event === 'input' ? 'changes' : event;
1008
- return editor.on(event, callback);
1009
- }
 
 
1010
 
1011
- return element.addEventListener(event, callback);
1012
- };
 
 
 
 
1013
 
1014
- r.refresh = function () {
1015
- editor && editor.refresh();
1016
- };
1017
 
1018
- return r;
 
1019
  };
1020
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1021
  module.exports = FormEditor;
1022
 
1023
- },{"codemirror":15,"codemirror/addon/edit/closetag.js":12,"codemirror/addon/edit/matchtags":13,"codemirror/addon/fold/xml-fold":14,"codemirror/mode/css/css":16,"codemirror/mode/htmlmixed/htmlmixed":17,"codemirror/mode/javascript/javascript":18,"codemirror/mode/xml/xml":19}],8:[function(require,module,exports){
1024
  'use strict';
1025
 
1026
  var FormWatcher = function FormWatcher(m, editor, settings, fields, events, helpers) {
@@ -1074,14 +1104,17 @@ var FormWatcher = function FormWatcher(m, editor, settings, fields, events, help
1074
  Array.prototype.forEach.call(requiredFieldElements, function (el) {
1075
  var name = el.name;
1076
 
1077
- // bail if name attr starts with underscore
1078
- if (name[0] === '_') {
1079
  return;
1080
  }
1081
 
1082
  // replace array brackets with dot style notation
1083
  name = name.replace(/\[(\w+)\]/g, '.$1');
1084
 
 
 
 
1085
  // uppercase everything before the .
1086
  var pos = name.indexOf('.');
1087
  pos = pos > 0 ? pos : name.length;
@@ -1261,8 +1294,7 @@ var FieldsFactory = require('./admin/fields-factory.js');
1261
  var fields = require('./admin/fields.js')(m, events);
1262
 
1263
  // vars
1264
- var textareaElement = document.getElementById('mc4wp-form-content');
1265
- var editor = window.formEditor = new FormEditor(textareaElement);
1266
  var watcher = new FormWatcher(m, formEditor, settings, fields, events, helpers);
1267
  var fieldHelper = new FieldHelper(m, tabs, formEditor, fields, events, i18n);
1268
  var notices = require('./admin/notices');
@@ -1460,7 +1492,149 @@ window.mc4wp.forms.fields = fields;
1460
  }
1461
  });
1462
 
1463
- },{"../../lib/codemirror":15,"../fold/xml-fold":14}],13:[function(require,module,exports){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1464
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
1465
  // Distributed under an MIT license: http://codemirror.net/LICENSE
1466
 
@@ -1528,7 +1702,7 @@ window.mc4wp.forms.fields = fields;
1528
  };
1529
  });
1530
 
1531
- },{"../../lib/codemirror":15,"../fold/xml-fold":14}],14:[function(require,module,exports){
1532
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
1533
  // Distributed under an MIT license: http://codemirror.net/LICENSE
1534
 
@@ -1712,7 +1886,81 @@ window.mc4wp.forms.fields = fields;
1712
  };
1713
  });
1714
 
1715
- },{"../../lib/codemirror":15}],15:[function(require,module,exports){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1716
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
1717
  // Distributed under an MIT license: http://codemirror.net/LICENSE
1718
 
@@ -11379,7 +11627,7 @@ return CodeMirror$1;
11379
 
11380
  })));
11381
 
11382
- },{}],16:[function(require,module,exports){
11383
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
11384
  // Distributed under an MIT license: http://codemirror.net/LICENSE
11385
 
@@ -12213,7 +12461,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
12213
 
12214
  });
12215
 
12216
- },{"../../lib/codemirror":15}],17:[function(require,module,exports){
12217
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
12218
  // Distributed under an MIT license: http://codemirror.net/LICENSE
12219
 
@@ -12367,7 +12615,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
12367
  CodeMirror.defineMIME("text/html", "htmlmixed");
12368
  });
12369
 
12370
- },{"../../lib/codemirror":15,"../css/css":16,"../javascript/javascript":18,"../xml/xml":19}],18:[function(require,module,exports){
12371
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
12372
  // Distributed under an MIT license: http://codemirror.net/LICENSE
12373
 
@@ -13244,7 +13492,7 @@ CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript
13244
 
13245
  });
13246
 
13247
- },{"../../lib/codemirror":15}],19:[function(require,module,exports){
13248
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13249
  // Distributed under an MIT license: http://codemirror.net/LICENSE
13250
 
@@ -13640,7 +13888,7 @@ if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
13640
 
13641
  });
13642
 
13643
- },{"../../lib/codemirror":15}],20:[function(require,module,exports){
13644
  /*
13645
 
13646
  Style HTML
@@ -14177,12 +14425,12 @@ function style_html(html_source, options) {
14177
  module.exports = {
14178
  prettyPrint: style_html
14179
  };
14180
- },{}],21:[function(require,module,exports){
14181
  "use strict"
14182
 
14183
  module.exports = require("./stream/stream")
14184
 
14185
- },{"./stream/stream":22}],22:[function(require,module,exports){
14186
  /* eslint-disable */
14187
  ;(function() {
14188
  "use strict"
1
+ (function () { var require = undefined; var define = undefined; (function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}return e})()({1:[function(require,module,exports){
2
  'use strict';
3
 
4
  var rows = function rows(m, i18n) {
361
 
362
  module.exports = g;
363
 
364
+ },{"html":22}],4:[function(require,module,exports){
365
  'use strict';
366
 
367
  var FieldHelper = function FieldHelper(m, tabs, editor, fields, events, i18n) {
918
  };
919
  };
920
 
921
+ },{"mithril/stream":23}],7:[function(require,module,exports){
922
  'use strict';
923
 
924
  // load CodeMirror & plugins
928
  require('codemirror/mode/javascript/javascript');
929
  require('codemirror/mode/css/css');
930
  require('codemirror/mode/htmlmixed/htmlmixed');
931
+ require('codemirror/addon/fold/xml-fold.js');
932
+ require('codemirror/addon/edit/matchtags.js');
933
  require('codemirror/addon/edit/closetag.js');
934
+ require('codemirror/addon/selection/active-line.js');
935
+ require('codemirror/addon/edit/matchbrackets.js');
936
 
937
+ /* variables */
938
+ var FormEditor = {};
939
+ var _dom = document.createElement('form');
940
+ var domDirty = false;
941
+ var editor;
942
+ var element = document.getElementById('mc4wp-form-content');
943
+ var previewFrame = document.getElementById('mc4wp-form-preview');
944
+ var previewDom;
945
+ var templateRegex = /\{[^{}]+\}/g;
946
 
947
+ /* functions */
948
+ function setPreviewDom() {
949
+ var frameContent = previewFrame.contentDocument || previewFrame.contentWindow.document;
950
+ previewDom = frameContent.querySelector('.mc4wp-form-fields');
 
951
 
952
+ if (previewDom) {
953
+ updatePreview();
954
+ }
955
+ }
956
 
957
+ function updatePreview() {
958
+ var markup = FormEditor.getValue();
 
 
 
 
 
 
 
959
 
960
+ // replace template tags (twice, to allow for nested tags)
961
+ markup = markup.replace(templateRegex, '').replace(templateRegex, '');
 
 
 
 
 
 
 
962
 
963
+ // update dom
964
+ previewDom.innerHTML = markup;
965
+ previewDom.dispatchEvent(new Event('mc4wp-refresh'));
966
+ }
967
 
968
+ window.addEventListener('load', function () {
969
+ CodeMirror.signal(editor, "change");
970
+ });
 
971
 
972
+ // set domDirty to true everytime the "change" event fires (a lot..)
973
+ element.addEventListener('change', function () {
974
+ domDirty = true;
975
+ updatePreview();
976
+ });
977
 
978
+ function dom() {
979
+ if (domDirty) {
980
+ _dom.innerHTML = FormEditor.getValue().toLowerCase();
981
+ domDirty = false;
982
  }
983
 
984
+ return _dom;
985
+ }
 
986
 
987
+ FormEditor.getValue = function () {
988
+ return editor ? editor.getValue() : element.value;
989
+ };
990
 
991
+ FormEditor.query = function (query) {
992
+ return dom().querySelectorAll(query.toLowerCase());
993
+ };
994
 
995
+ FormEditor.containsField = function (fieldName) {
996
+ return dom().elements.namedItem(fieldName.toLowerCase()) !== null;
997
+ };
 
 
 
 
 
998
 
999
+ FormEditor.insert = function (html) {
1000
+ if (editor) {
1001
+ editor.replaceSelection(html);
1002
+ editor.focus();
1003
+ } else {
1004
+ element.value += html;
1005
+ }
1006
+ };
1007
 
1008
+ FormEditor.on = function (event, callback) {
1009
+ if (editor) {
1010
+ // translate "input" event for CodeMirror
1011
+ event = event === 'input' ? 'changes' : event;
1012
+ return editor.on(event, callback);
1013
+ }
1014
 
1015
+ return element.addEventListener(event, callback);
1016
+ };
 
1017
 
1018
+ FormEditor.refresh = function () {
1019
+ editor && editor.refresh();
1020
  };
1021
 
1022
+ /* bootstrap */
1023
+ _dom.innerHTML = element.value.toLowerCase();
1024
+
1025
+ if (CodeMirror) {
1026
+ editor = CodeMirror.fromTextArea(element, {
1027
+ selectionPointer: true,
1028
+ mode: "htmlmixed",
1029
+ htmlMode: true,
1030
+ autoCloseTags: true,
1031
+ autoRefresh: true,
1032
+ styleActiveLine: true,
1033
+ matchBrackets: true,
1034
+ matchTags: { bothTags: true }
1035
+ });
1036
+
1037
+ // dispatch regular "change" on element event every time editor changes (IE9+ only)
1038
+ window.dispatchEvent && editor.on('change', function () {
1039
+ if (typeof Event === "function") {
1040
+ // Create a new 'change' event
1041
+ var event = new Event('change', { bubbles: true });
1042
+ element.dispatchEvent(event);
1043
+ }
1044
+ });
1045
+ }
1046
+
1047
+ previewFrame.addEventListener('load', setPreviewDom);
1048
+ setPreviewDom.call();
1049
+
1050
+ /* exports */
1051
  module.exports = FormEditor;
1052
 
1053
+ },{"codemirror":17,"codemirror/addon/edit/closetag.js":12,"codemirror/addon/edit/matchbrackets.js":13,"codemirror/addon/edit/matchtags.js":14,"codemirror/addon/fold/xml-fold.js":15,"codemirror/addon/selection/active-line.js":16,"codemirror/mode/css/css":18,"codemirror/mode/htmlmixed/htmlmixed":19,"codemirror/mode/javascript/javascript":20,"codemirror/mode/xml/xml":21}],8:[function(require,module,exports){
1054
  'use strict';
1055
 
1056
  var FormWatcher = function FormWatcher(m, editor, settings, fields, events, helpers) {
1104
  Array.prototype.forEach.call(requiredFieldElements, function (el) {
1105
  var name = el.name;
1106
 
1107
+ // bail if name attr empty or starts with underscore
1108
+ if (!name || name.length < 0 || name[0] === '_') {
1109
  return;
1110
  }
1111
 
1112
  // replace array brackets with dot style notation
1113
  name = name.replace(/\[(\w+)\]/g, '.$1');
1114
 
1115
+ // replace array-style fields
1116
+ name = name.replace(/\[\]$/, '');
1117
+
1118
  // uppercase everything before the .
1119
  var pos = name.indexOf('.');
1120
  pos = pos > 0 ? pos : name.length;
1294
  var fields = require('./admin/fields.js')(m, events);
1295
 
1296
  // vars
1297
+ var editor = window.formEditor = FormEditor;
 
1298
  var watcher = new FormWatcher(m, formEditor, settings, fields, events, helpers);
1299
  var fieldHelper = new FieldHelper(m, tabs, formEditor, fields, events, i18n);
1300
  var notices = require('./admin/notices');
1492
  }
1493
  });
1494
 
1495
+ },{"../../lib/codemirror":17,"../fold/xml-fold":15}],13:[function(require,module,exports){
1496
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
1497
+ // Distributed under an MIT license: http://codemirror.net/LICENSE
1498
+
1499
+ (function(mod) {
1500
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
1501
+ mod(require("../../lib/codemirror"));
1502
+ else if (typeof define == "function" && define.amd) // AMD
1503
+ define(["../../lib/codemirror"], mod);
1504
+ else // Plain browser env
1505
+ mod(CodeMirror);
1506
+ })(function(CodeMirror) {
1507
+ var ie_lt8 = /MSIE \d/.test(navigator.userAgent) &&
1508
+ (document.documentMode == null || document.documentMode < 8);
1509
+
1510
+ var Pos = CodeMirror.Pos;
1511
+
1512
+ var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
1513
+
1514
+ function findMatchingBracket(cm, where, config) {
1515
+ var line = cm.getLineHandle(where.line), pos = where.ch - 1;
1516
+ var afterCursor = config && config.afterCursor
1517
+ if (afterCursor == null)
1518
+ afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)
1519
+
1520
+ // A cursor is defined as between two characters, but in in vim command mode
1521
+ // (i.e. not insert mode), the cursor is visually represented as a
1522
+ // highlighted box on top of the 2nd character. Otherwise, we allow matches
1523
+ // from before or after the cursor.
1524
+ var match = (!afterCursor && pos >= 0 && matching[line.text.charAt(pos)]) ||
1525
+ matching[line.text.charAt(++pos)];
1526
+ if (!match) return null;
1527
+ var dir = match.charAt(1) == ">" ? 1 : -1;
1528
+ if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;
1529
+ var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));
1530
+
1531
+ var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
1532
+ if (found == null) return null;
1533
+ return {from: Pos(where.line, pos), to: found && found.pos,
1534
+ match: found && found.ch == match.charAt(0), forward: dir > 0};
1535
+ }
1536
+
1537
+ // bracketRegex is used to specify which type of bracket to scan
1538
+ // should be a regexp, e.g. /[[\]]/
1539
+ //
1540
+ // Note: If "where" is on an open bracket, then this bracket is ignored.
1541
+ //
1542
+ // Returns false when no bracket was found, null when it reached
1543
+ // maxScanLines and gave up
1544
+ function scanForBracket(cm, where, dir, style, config) {
1545
+ var maxScanLen = (config && config.maxScanLineLength) || 10000;
1546
+ var maxScanLines = (config && config.maxScanLines) || 1000;
1547
+
1548
+ var stack = [];
1549
+ var re = config && config.bracketRegex ? config.bracketRegex : /[(){}[\]]/;
1550
+ var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)
1551
+ : Math.max(cm.firstLine() - 1, where.line - maxScanLines);
1552
+ for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {
1553
+ var line = cm.getLine(lineNo);
1554
+ if (!line) continue;
1555
+ var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;
1556
+ if (line.length > maxScanLen) continue;
1557
+ if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);
1558
+ for (; pos != end; pos += dir) {
1559
+ var ch = line.charAt(pos);
1560
+ if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) {
1561
+ var match = matching[ch];
1562
+ if ((match.charAt(1) == ">") == (dir > 0)) stack.push(ch);
1563
+ else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};
1564
+ else stack.pop();
1565
+ }
1566
+ }
1567
+ }
1568
+ return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;
1569
+ }
1570
+
1571
+ function matchBrackets(cm, autoclear, config) {
1572
+ // Disable brace matching in long lines, since it'll cause hugely slow updates
1573
+ var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
1574
+ var marks = [], ranges = cm.listSelections();
1575
+ for (var i = 0; i < ranges.length; i++) {
1576
+ var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);
1577
+ if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
1578
+ var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
1579
+ marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
1580
+ if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)
1581
+ marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));
1582
+ }
1583
+ }
1584
+
1585
+ if (marks.length) {
1586
+ // Kludge to work around the IE bug from issue #1193, where text
1587
+ // input stops going to the textare whever this fires.
1588
+ if (ie_lt8 && cm.state.focused) cm.focus();
1589
+
1590
+ var clear = function() {
1591
+ cm.operation(function() {
1592
+ for (var i = 0; i < marks.length; i++) marks[i].clear();
1593
+ });
1594
+ };
1595
+ if (autoclear) setTimeout(clear, 800);
1596
+ else return clear;
1597
+ }
1598
+ }
1599
+
1600
+ var currentlyHighlighted = null;
1601
+ function doMatchBrackets(cm) {
1602
+ cm.operation(function() {
1603
+ if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
1604
+ currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);
1605
+ });
1606
+ }
1607
+
1608
+ CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
1609
+ if (old && old != CodeMirror.Init) {
1610
+ cm.off("cursorActivity", doMatchBrackets);
1611
+ if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
1612
+ }
1613
+ if (val) {
1614
+ cm.state.matchBrackets = typeof val == "object" ? val : {};
1615
+ cm.on("cursorActivity", doMatchBrackets);
1616
+ }
1617
+ });
1618
+
1619
+ CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
1620
+ CodeMirror.defineExtension("findMatchingBracket", function(pos, config, oldConfig){
1621
+ // Backwards-compatibility kludge
1622
+ if (oldConfig || typeof config == "boolean") {
1623
+ if (!oldConfig) {
1624
+ config = config ? {strict: true} : null
1625
+ } else {
1626
+ oldConfig.strict = config
1627
+ config = oldConfig
1628
+ }
1629
+ }
1630
+ return findMatchingBracket(this, pos, config)
1631
+ });
1632
+ CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
1633
+ return scanForBracket(this, pos, dir, style, config);
1634
+ });
1635
+ });
1636
+
1637
+ },{"../../lib/codemirror":17}],14:[function(require,module,exports){
1638
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
1639
  // Distributed under an MIT license: http://codemirror.net/LICENSE
1640
 
1702
  };
1703
  });
1704
 
1705
+ },{"../../lib/codemirror":17,"../fold/xml-fold":15}],15:[function(require,module,exports){
1706
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
1707
  // Distributed under an MIT license: http://codemirror.net/LICENSE
1708
 
1886
  };
1887
  });
1888
 
1889
+ },{"../../lib/codemirror":17}],16:[function(require,module,exports){
1890
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
1891
+ // Distributed under an MIT license: http://codemirror.net/LICENSE
1892
+
1893
+ (function(mod) {
1894
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
1895
+ mod(require("../../lib/codemirror"));
1896
+ else if (typeof define == "function" && define.amd) // AMD
1897
+ define(["../../lib/codemirror"], mod);
1898
+ else // Plain browser env
1899
+ mod(CodeMirror);
1900
+ })(function(CodeMirror) {
1901
+ "use strict";
1902
+ var WRAP_CLASS = "CodeMirror-activeline";
1903
+ var BACK_CLASS = "CodeMirror-activeline-background";
1904
+ var GUTT_CLASS = "CodeMirror-activeline-gutter";
1905
+
1906
+ CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) {
1907
+ var prev = old == CodeMirror.Init ? false : old;
1908
+ if (val == prev) return
1909
+ if (prev) {
1910
+ cm.off("beforeSelectionChange", selectionChange);
1911
+ clearActiveLines(cm);
1912
+ delete cm.state.activeLines;
1913
+ }
1914
+ if (val) {
1915
+ cm.state.activeLines = [];
1916
+ updateActiveLines(cm, cm.listSelections());
1917
+ cm.on("beforeSelectionChange", selectionChange);
1918
+ }
1919
+ });
1920
+
1921
+ function clearActiveLines(cm) {
1922
+ for (var i = 0; i < cm.state.activeLines.length; i++) {
1923
+ cm.removeLineClass(cm.state.activeLines[i], "wrap", WRAP_CLASS);
1924
+ cm.removeLineClass(cm.state.activeLines[i], "background", BACK_CLASS);
1925
+ cm.removeLineClass(cm.state.activeLines[i], "gutter", GUTT_CLASS);
1926
+ }
1927
+ }
1928
+
1929
+ function sameArray(a, b) {
1930
+ if (a.length != b.length) return false;
1931
+ for (var i = 0; i < a.length; i++)
1932
+ if (a[i] != b[i]) return false;
1933
+ return true;
1934
+ }
1935
+
1936
+ function updateActiveLines(cm, ranges) {
1937
+ var active = [];
1938
+ for (var i = 0; i < ranges.length; i++) {
1939
+ var range = ranges[i];
1940
+ var option = cm.getOption("styleActiveLine");
1941
+ if (typeof option == "object" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty())
1942
+ continue
1943
+ var line = cm.getLineHandleVisualStart(range.head.line);
1944
+ if (active[active.length - 1] != line) active.push(line);
1945
+ }
1946
+ if (sameArray(cm.state.activeLines, active)) return;
1947
+ cm.operation(function() {
1948
+ clearActiveLines(cm);
1949
+ for (var i = 0; i < active.length; i++) {
1950
+ cm.addLineClass(active[i], "wrap", WRAP_CLASS);
1951
+ cm.addLineClass(active[i], "background", BACK_CLASS);
1952
+ cm.addLineClass(active[i], "gutter", GUTT_CLASS);
1953
+ }
1954
+ cm.state.activeLines = active;
1955
+ });
1956
+ }
1957
+
1958
+ function selectionChange(cm, sel) {
1959
+ updateActiveLines(cm, sel.ranges);
1960
+ }
1961
+ });
1962
+
1963
+ },{"../../lib/codemirror":17}],17:[function(require,module,exports){
1964
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
1965
  // Distributed under an MIT license: http://codemirror.net/LICENSE
1966
 
11627
 
11628
  })));
11629
 
11630
+ },{}],18:[function(require,module,exports){
11631
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
11632
  // Distributed under an MIT license: http://codemirror.net/LICENSE
11633
 
12461
 
12462
  });
12463
 
12464
+ },{"../../lib/codemirror":17}],19:[function(require,module,exports){
12465
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
12466
  // Distributed under an MIT license: http://codemirror.net/LICENSE
12467
 
12615
  CodeMirror.defineMIME("text/html", "htmlmixed");
12616
  });
12617
 
12618
+ },{"../../lib/codemirror":17,"../css/css":18,"../javascript/javascript":20,"../xml/xml":21}],20:[function(require,module,exports){
12619
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
12620
  // Distributed under an MIT license: http://codemirror.net/LICENSE
12621
 
13492
 
13493
  });
13494
 
13495
+ },{"../../lib/codemirror":17}],21:[function(require,module,exports){
13496
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13497
  // Distributed under an MIT license: http://codemirror.net/LICENSE
13498
 
13888
 
13889
  });
13890
 
13891
+ },{"../../lib/codemirror":17}],22:[function(require,module,exports){
13892
  /*
13893
 
13894
  Style HTML
14425
  module.exports = {
14426
  prettyPrint: style_html
14427
  };
14428
+ },{}],23:[function(require,module,exports){
14429
  "use strict"
14430
 
14431
  module.exports = require("./stream/stream")
14432
 
14433
+ },{"./stream/stream":24}],24:[function(require,module,exports){
14434
  /* eslint-disable */
14435
  ;(function() {
14436
  "use strict"
assets/js/forms-admin.min.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(){var e=void 0,t=void 0;!function t(r,n,i){function o(l,s){if(!n[l]){if(!r[l]){var c="function"==typeof e&&e;if(!s&&c)return c(l,!0);if(a)return a(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[l]={exports:{}};r[l][0].call(d.exports,function(e){var t=r[l][1][e];return o(t||e)},d,d.exports,t,r,n,i)}return n[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}({1:[function(e,t,r){"use strict";t.exports=function(e,t){var r={};return r.showType=function(r){var n=r.type();return n=n.charAt(0).toUpperCase()+n.slice(1),e("div",[e("label",t.fieldType),e("span",n)])},r.label=function(r){return e("div",[e("label",t.fieldLabel),e("input.widefat",{type:"text",value:r.label(),onchange:e.withAttr("value",r.label),placeholder:r.title()})])},r.value=function(r){var n="hidden"===r.type();return e("div",[e("label",[n?t.value:t.initialValue," ",n?"":e("small",{style:"float: right; font-weight: normal;"},t.optional)]),e("input.widefat",{type:"text",value:r.value(),onchange:e.withAttr("value",r.value)}),n?"":e("p.help",t.valueHelp)])},r.numberMinMax=function(r){return e("div",[e("div.row",[e("div.col.col-3",[e("label",t.min),e("input",{type:"number",onchange:e.withAttr("value",r.min)})]),e("div.col.col-3",[e("label",t.max),e("input",{type:"number",onchange:e.withAttr("value",r.max)})])])])},r.isRequired=function(r){var n={type:"checkbox",checked:r.required(),onchange:e.withAttr("checked",r.required)},i=void 0;return r.forceRequired()&&(n.required=!0,n.disabled=!0,i=e("p.help",t.forceRequired)),e("div",[e("label.cb-wrap",[e("input",n),t.isFieldRequired]),i])},r.placeholder=function(r){return e("div",[e("label",[t.placeholder," ",e("small",{style:"float: right; font-weight: normal;"},t.optional)]),e("input.widefat",{type:"text",value:r.placeholder(),onchange:e.withAttr("value",r.placeholder),placeholder:""}),e("p.help",t.placeholderHelp)])},r.useParagraphs=function(r){return e("div",[e("label.cb-wrap",[e("input",{type:"checkbox",checked:r.wrap(),onchange:e.withAttr("checked",r.wrap)}),t.wrapInParagraphTags])])},r.choiceType=function(r){var n=[e("option",{value:"select",selected:"select"===r.type()&&"selected"},t.dropdown),e("option",{value:"radio",selected:"radio"===r.type()&&"selected"},t.radioButtons)];return r.acceptsMultipleValues&&n.push(e("option",{value:"checkbox",selected:"checkbox"===r.type()&&"selected"},t.checkboxes)),e("div",[e("label",t.choiceType),e("select",{value:r.type(),onchange:e.withAttr("value",r.type)},n)])},r.choices=function(r){var n=[];return n.push(e("div",[e("label",t.choices),e("div.limit-height",[e("table",[r.choices().map(function(n,i){return e("tr",{"data-id":i},[e("td.cb",e("input",{name:"selected",type:"checkbox"===r.type()?"checkbox":"radio",onchange:e.withAttr("value",r.selectChoice.bind(r)),checked:n.selected(),value:n.value(),title:t.preselect})),e("td.stretch",e("input.widefat",{type:"text",value:n.label(),placeholder:n.title(),onchange:e.withAttr("value",n.label)})),e("td",e("span",{title:t.remove,class:"dashicons dashicons-no-alt hover-activated",onclick:function(e){this.choices().splice(e,1)}.bind(r,i)},""))])})])])])),n},r}},{}],2:[function(e,t,r){"use strict";t.exports=function(t,r){var n={},i=e("./field-forms-rows.js")(t,r);return n.render=function(e){var t=e.type();if("function"==typeof n[t])return n[t](e);switch(t){case"select":case"radio":case"checkbox":return n.choice(e)}return n.text(e)},n.text=function(e){return[i.label(e),i.placeholder(e),i.value(e),i.isRequired(e),i.useParagraphs(e)]},n.choice=function(e){var t=[i.label(e),i.choiceType(e),i.choices(e)];return"select"===e.type()&&t.push(i.placeholder(e)),t.push(i.useParagraphs(e)),"select"!==e.type()&&"radio"!==e.type()||t.push(i.isRequired(e)),t},n.hidden=function(e){return e.placeholder(""),e.label(""),e.wrap(!1),[i.showType(e),i.value(e)]},n.submit=function(e){return e.label(""),e.placeholder(""),[i.value(e),i.useParagraphs(e)]},n.number=function(e){return[n.text(e),i.numberMinMax(e)]},n}},{"./field-forms-rows.js":1}],3:[function(e,t,r){"use strict";var n=e("html"),i=function(e){e.dom.checked&&e.dom.setAttribute("checked","true"),e.dom.value&&e.dom.setAttribute("value",e.dom.value),e.dom.selected&&e.dom.setAttribute("selected","true")};t.exports=function(e){var t={};return t.select=function(t){var r={name:t.name(),required:t.required()},n=!1,o=t.choices().map(function(t){return t.selected()&&(n=!0),e("option",{value:t.value()!==t.label()?t.value():void 0,selected:t.selected(),oncreate:i},t.label())}),a=t.placeholder();return a.length>0&&o.unshift(e("option",{disabled:!0,value:"",selected:!n,oncreate:i},a)),e("select",r,o)},t.checkbox=function(t){return t.choices().map(function(r){var n=t.name()+("checkbox"===t.type()?"[]":""),o=t.required()&&"radio"===t.type();return e("label",[e("input",{name:n,type:t.type(),value:r.value(),checked:r.selected(),required:o,oncreate:i})," ",e("span",r.label())])})},t.radio=t.checkbox,t.default=function(t){var r={type:t.type()};return t.name()&&(r.name=t.name()),t.min()&&(r.min=t.min()),t.max()&&(r.max=t.max()),t.value().length>0&&(r.value=t.value()),t.placeholder().length>0&&(r.placeholder=t.placeholder()),r.required=t.required(),r.oncreate=i,e("input",r)},function(r){var i=void 0,o=void 0,a=void 0,l=document.createElement("div");return i=r.label().length>0?e("label",{},r.label()):"",o="function"==typeof t[r.type()]?t[r.type()](r):t.default(r),a=r.wrap()?e("p",[i,o]):[i,o],e.render(l,a),n.prettyPrint(l.innerHTML)+"\n"}}},{html:20}],4:[function(e,t,r){"use strict";t.exports=function(t,r,n,i,o,a){function l(e){(c=i.get(e))&&c.choices().length>0&&c.value(c.choices().map(function(e){return e.label()}).join("|")),t.redraw()}function s(){var e=u(c);n.insert(e),l(""),t.redraw()}var c,u=e("./field-generator.js")(t),d=e("./overlay.js")(t,a),f=e("./field-forms.js")(t,a);return n.on("blur",t.redraw),{view:function(){var e=i.getCategories(),r=i.getAll(),n=t("div.available-fields.small-margin",[t("h4",a.chooseField),e.map(function(e){var n=r.filter(function(t){return t.category===e});if(n.length)return t("div.tiny-margin",[t("strong",e),n.map(function(e){var r="button";e.forceRequired()&&(r+=" is-required");var n=e.inFormContent();return null!==n&&(r+=" "+(n?"in-form":"not-in-form")),t("button",{className:r,type:"button",onclick:t.withAttr("value",l),value:e.index},e.title())})])})]),o=null;return c&&(o=d(t("div.field-wizard",[t("h3",[c.title(),c.forceRequired()?t("span.red","*"):"",c.name().length?t("code",c.name()):""]),c.help().length?t("p",t.trust(c.help())):"",f.render(c),t("p",[t("button",{class:"button-primary",type:"button",onkeydown:function(e){13==(e=e||window.event).keyCode&&s()},onclick:s},a.addToForm)])]),l)),[n,o]},controller:function(){}}}},{"./field-forms.js":2,"./field-generator.js":3,"./overlay.js":10}],5:[function(e,t,r){"use strict";t.exports=function(e,t){function r(t,r,n){var i=e.register(t,r);n||l.push(i)}function n(e){var t={phone:"tel",dropdown:"select",checkboxes:"checkbox",birthday:"text"};return void 0!==t[e]?t[e]:e}function i(e){var i=t.listFields,o=n(e.field_type),a={name:e.tag,title:e.name,required:e.required,forceRequired:e.required,type:o,choices:e.choices,acceptsMultipleValues:!1};return"address"!==a.type?r(i,a,!1):(r(i,{name:a.name+"[addr1]",type:"text",mailchimpType:"address",title:t.streetAddress}),r(i,{name:a.name+"[city]",type:"text",mailchimpType:"address",title:t.city}),r(i,{name:a.name+"[state]",type:"text",mailchimpType:"address",title:t.state}),r(i,{name:a.name+"[zip]",type:"text",mailchimpType:"address",title:t.zip}),r(i,{name:a.name+"[country]",type:"select",mailchimpType:"address",title:t.country,choices:mc4wp_vars.countries})),!0}function o(e){var i=t.interestCategories,o=n(e.field_type);r(i,{title:e.name,name:"INTERESTS["+e.id+"]",type:o,choices:e.interests,acceptsMultipleValues:"checkbox"===o},!1)}function a(e){e.merge_fields=e.merge_fields.sort(function(e,t){return"EMAIL"===e.tag||e.public&&!t.public?-1:!e.public&&t.public?1:0}),e.merge_fields.forEach(i),e.interest_categories.forEach(o)}var l=[];return{registerCustomFields:function(e){var n,i=t.formFields;r(i,{name:"",value:t.subscribe,type:"submit",title:t.submitButton},!0),n={};for(var o in e)n[e[o].id]=e[o].name;r(i,{name:"_mc4wp_lists",type:"checkbox",title:t.listChoice,choices:n,help:t.listChoiceDescription,acceptsMultipleValues:!0},!0),n={subscribe:"Subscribe",unsubscribe:"Unsubscribe"},r(i,{name:"_mc4wp_action",type:"radio",title:t.formAction,choices:n,value:"subscribe",help:t.formActionDescription},!0)},registerListFields:a,registerListsFields:function(t){l.forEach(e.deregister),t.forEach(a)}}}},{}],6:[function(e,t,r){"use strict";var n=e("mithril/stream");t.exports=function(e,t){function r(e,t){return o.filter(function(r){return r[e]()===t})}var i,o=[],a=[],l=function(e){this.name=n(e.name),this.title=n(e.title||e.name),this.type=n(e.type),this.mailchimpType=n(e.mailchimpType||""),this.label=n(e.title||""),this.value=n(e.value||""),this.placeholder=n(e.placeholder||""),this.required=n(e.required||!1),this.forceRequired=n(e.forceRequired||!1),this.wrap=n(e.wrap||!0),this.min=n(e.min||null),this.max=n(e.max||null),this.help=n(e.help||""),this.choices=n(e.choices||[]),this.inFormContent=n(null),this.acceptsMultipleValues=e.acceptsMultipleValues,this.selectChoice=function(e){var t=this;this.choices(this.choices().map(function(r){return r.value()===e?r.selected(!0):"checkbox"!==t.type()&&r.selected(!1),r}))}},s=function(e){this.label=n(e.label),this.title=n(e.title||e.label),this.selected=n(e.selected||!1),this.value=n(e.value||e.label)};return{get:function(e){return o[e]},getAll:function(){return o=o.map(function(e,t){return e.index=t,e})},getCategories:function(){return a},deregister:function(t){var r=o.indexOf(t);r>-1&&(delete o[r],e.redraw())},register:function(n,c){var u,d=r("name",c.name).shift();if(!d)return c.choices&&(c.choices=function(e){return"function"==typeof e.map?e.map(function(e){return new s({label:e})}):Object.keys(e).map(function(t){var r=e[t];return new s({label:r,value:t})})}(c.choices),c.value&&(c.choices=c.choices.map(function(e){return e.value()===c.value&&e.selected(!0),e}))),a.indexOf(n)<0&&a.push(n),u=new l(c),u.category=n,o.push(u),i&&window.clearTimeout(i),i=window.setTimeout(e.redraw,200),t.trigger("fields.change"),u;!d.forceRequired()&&c.forceRequired&&d.forceRequired(!0)},getAllWhere:r}}},{"mithril/stream":21}],7:[function(e,t,r){"use strict";var n=e("codemirror");e("codemirror/mode/xml/xml"),e("codemirror/mode/javascript/javascript"),e("codemirror/mode/css/css"),e("codemirror/mode/htmlmixed/htmlmixed"),e("codemirror/addon/fold/xml-fold"),e("codemirror/addon/edit/matchtags"),e("codemirror/addon/edit/closetag.js");t.exports=function(e){function t(){return o&&(i.innerHTML=a.getValue().toLowerCase(),o=!1),i}var r,i=document.createElement("form"),o=!1,a={};return i.innerHTML=e.value.toLowerCase(),n&&(r=n.fromTextArea(e,{selectionPointer:!0,matchTags:{bothTags:!0},mode:"htmlmixed",htmlMode:!0,autoCloseTags:!0,autoRefresh:!0}),window.dispatchEvent&&r.on("change",function(){if("function"==typeof Event){var t=new Event("change",{bubbles:!0});e.dispatchEvent(t)}})),window.addEventListener("load",function(){n.signal(r,"change")}),e.addEventListener("change",function(){o=!0}),a.getValue=function(){return r?r.getValue():e.value},a.query=function(e){return t().querySelectorAll(e.toLowerCase())},a.containsField=function(e){return null!==t().elements.namedItem(e.toLowerCase())},a.insert=function(t){r?(r.replaceSelection(t),r.focus()):e.value+=t},a.on=function(t,n){return r?(t="input"===t?"changes":t,r.on(t,n)):e.addEventListener(t,n)},a.refresh=function(){r&&r.refresh()},a}},{codemirror:15,"codemirror/addon/edit/closetag.js":12,"codemirror/addon/edit/matchtags":13,"codemirror/addon/fold/xml-fold":14,"codemirror/mode/css/css":16,"codemirror/mode/htmlmixed/htmlmixed":17,"codemirror/mode/javascript/javascript":18,"codemirror/mode/xml/xml":19}],8:[function(e,t,r){"use strict";t.exports=function(e,t,r,n,i,o){function a(){n.getAll().forEach(function(e){if(!(e.name().length<=0)){var r=e.name();"checkbox"===e.type()&&(r+="[]");var n=t.containsField(r);if(e.inFormContent(n),"address"===e.mailchimpType()){e.originalRequiredValue=void 0===e.originalRequiredValue?e.forceRequired():e.originalRequiredValue;var i=e.name().replace(/\[(\w+)\]/g,"");t.query('[name^="'+i+'"]').length>0?(void 0===e.originalRequiredValue&&(e.originalRequiredValue=e.forceRequired()),e.forceRequired(!0)):e.forceRequired(e.originalRequiredValue)}}}),function(){var e=n.getAllWhere("forceRequired",!0).map(function(e){return e.name().toUpperCase().replace(/\[(\w+)\]/g,".$1")}),r=t.query("[required]");Array.prototype.forEach.call(r,function(t){var r=t.name;if("_"!==r[0]){var n=(r=r.replace(/\[(\w+)\]/g,".$1")).indexOf(".");n=n>0?n:r.length,r=r.substr(0,n).toUpperCase()+r.substr(n),-1===e.indexOf(r)&&e.push(r)}}),l.value=e.join(",")}(),e.redraw()}var l=document.getElementById("required-fields");t.on("change",o.debounce(a,500)),i.on("fields.change",o.debounce(a,500))}},{}],9:[function(e,t,r){"use strict";function n(e,t){a[e]=t,o()}function i(e){delete a[e],o()}function o(){var e="";for(var t in a)e+='<div class="notice notice-warning inline"><p>'+a[t]+"</p></div>";var r=document.querySelector(".mc4wp-notices");if(!r){(r=document.createElement("div")).className="mc4wp-notices";var n=document.querySelector("h1, h2");n.parentNode.insertBefore(r,n.nextSibling)}r.innerHTML=e}var a={};t.exports={init:function(e,t){var r=function(){e.getValue().toLowerCase().indexOf('name="groupings')>-1?n("deprecated_groupings","Your form contains old style <code>GROUPINGS</code> fields. <br /><br />Please remove these fields from your form and then re-add them through the available field buttons to make sure your data is getting through to MailChimp correctly."):i("deprecated_groupings")},o=function(){var r=t.getAllWhere("forceRequired",!0).filter(function(t){return!e.containsField(t.name().toUpperCase())}),o="<strong>Heads up!</strong> Your form is missing list fields that are required in MailChimp. Either add these fields to your form or mark them as optional in MailChimp.";o+='<br /><ul class="ul-square" style="margin-bottom: 0;"><li>'+r.map(function(e){return e.title()}).join("</li><li>")+"</li></ul>",r.length>0?n("required_fields_missing",o):i("required_fields_missing")};r(),e.on("focus",r),e.on("blur",r),o(),e.on("blur",o),e.on("focus",o)}}},{}],10:[function(e,t,r){"use strict";t.exports=function(e,t){function r(){document.removeEventListener("keydown",n),window.removeEventListener("resize",i),l()}function n(e){27==(e=e||window.event).keyCode&&r(),13==e.keyCode&&e.preventDefault()}function i(){if(a){var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,t=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,r=(e-a.clientWidth-40)/2,n=(t-a.clientHeight-40)/2;a.style.left=(r>0?r:0)+"px",a.style.top=(n>0?n:0)+"px"}}function o(e){a=e.dom,i()}var a=void 0,l=void 0;return function(a,s){return l=s,document.addEventListener("keydown",n),window.addEventListener("resize",i),[e("div.overlay-wrap",e("div.overlay",{oncreate:o},[e("span",{class:"close dashicons dashicons-no",title:t.close,onclick:r}),a])),e("div.overlay-background",{title:t.close,onclick:r})]}}},{}],11:[function(e,t,r){"use strict";var n=window.mc4wp_forms_i18n,i=window.mc4wp.deps.mithril,o=mc4wp.events,a=mc4wp.settings,l=mc4wp.helpers,s=mc4wp.tabs,c=e("./admin/form-watcher.js"),u=e("./admin/form-editor.js"),d=e("./admin/field-helper.js"),f=e("./admin/fields-factory.js"),h=e("./admin/fields.js")(i,o),p=document.getElementById("mc4wp-form-content"),m=window.formEditor=new u(p),g=(new c(i,formEditor,a,h,o,l),new d(i,s,formEditor,h,o,n)),v=e("./admin/notices");i.mount(document.getElementById("mc4wp-field-wizard"),g);var y=new f(h,n);o.on("selectedLists.change",y.registerListsFields),y.registerListsFields(a.getSelectedLists()),y.registerCustomFields(mc4wp_vars.mailchimp.lists),window.setTimeout(function(){i.redraw()},2e3),v.init(m,h),window.mc4wp=window.mc4wp||{},window.mc4wp.forms=window.mc4wp.forms||{},window.mc4wp.forms.editor=m,window.mc4wp.forms.fields=h},{"./admin/field-helper.js":4,"./admin/fields-factory.js":5,"./admin/fields.js":6,"./admin/form-editor.js":7,"./admin/form-watcher.js":8,"./admin/notices":9}],12:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../fold/xml-fold")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../fold/xml-fold"],i):i(CodeMirror)}(function(e){function t(t,r){for(var i=t.listSelections(),o=[],a=r?"/":"</",l=0;l<i.length;l++){if(!i[l].empty())return e.Pass;var s=i[l].head,c=t.getTokenAt(s),u=e.innerMode(t.getMode(),c.state),d=u.state;if(r&&("string"==c.type||"<"!=c.string.charAt(0)||c.start!=s.ch-1))return e.Pass;var f;if("xml"!=u.mode.name)if("htmlmixed"==t.getMode().name&&"javascript"==u.mode.name)f=a+"script";else{if("htmlmixed"!=t.getMode().name||"css"!=u.mode.name)return e.Pass;f=a+"style"}else{if(!d.context||!d.context.tagName||n(t,d.context.tagName,s,d))return e.Pass;f=a+d.context.tagName}">"!=t.getLine(s.line).charAt(c.end)&&(f+=">"),o[l]=f}t.replaceSelections(o),i=t.listSelections();for(l=0;l<i.length;l++)(l==i.length-1||i[l].head.line<i[l+1].head.line)&&t.indentLine(i[l].head.line)}function r(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;++r)if(e[r]==t)return r;return-1}function n(t,r,n,i,o){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,n.line+500),l=e.scanForClosingTag(t,n,null,a);if(!l||l.tag!=r)return!1;for(var s=i.context,c=o?1:0;s&&s.tagName==r;s=s.prev)++c;n=l.to;for(var u=1;u<c;u++){var d=e.scanForClosingTag(t,n,null,a);if(!d||d.tag!=r)return!1;n=d.to}return!0}e.defineOption("autoCloseTags",!1,function(a,l,s){if(s!=e.Init&&s&&a.removeKeyMap("autoCloseTags"),l){var c={name:"autoCloseTags"};("object"!=typeof l||l.whenClosing)&&(c["'/'"]=function(r){return function(r){return r.getOption("disableInput")?e.Pass:t(r,!0)}(r)}),("object"!=typeof l||l.whenOpening)&&(c["'>'"]=function(t){return function(t){if(t.getOption("disableInput"))return e.Pass;for(var a=t.listSelections(),l=[],s=0;s<a.length;s++){if(!a[s].empty())return e.Pass;var c=a[s].head,u=t.getTokenAt(c),d=e.innerMode(t.getMode(),u.state),f=d.state;if("xml"!=d.mode.name||!f.tagName)return e.Pass;var h=t.getOption("autoCloseTags"),p="html"==d.mode.configuration,m="object"==typeof h&&h.dontCloseTags||p&&i,g="object"==typeof h&&h.indentTags||p&&o,v=f.tagName;u.end>c.ch&&(v=v.slice(0,v.length-u.end+c.ch));var y=v.toLowerCase();if(!v||"string"==u.type&&(u.end!=c.ch||!/[\"\']/.test(u.string.charAt(u.string.length-1))||1==u.string.length)||"tag"==u.type&&"closeTag"==f.type||u.string.indexOf("/")==u.string.length-1||m&&r(m,y)>-1||n(t,v,c,f,!0))return e.Pass;var b=g&&r(g,y)>-1;l[s]={indent:b,text:">"+(b?"\n\n":"")+"</"+v+">",newPos:b?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(s=a.length-1;s>=0;s--){var w=l[s];t.replaceRange(w.text,a[s].head,a[s].anchor,"+insert");var x=t.listSelections().slice(0);x[s]={head:w.newPos,anchor:w.newPos},t.setSelections(x),w.indent&&(t.indentLine(w.newPos.line,null,!0),t.indentLine(w.newPos.line+1,null,!0))}}(t)}),a.addKeyMap(c)}});var i=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],o=["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 t(e)}})},{"../../lib/codemirror":15,"../fold/xml-fold":14}],13:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../fold/xml-fold")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../fold/xml-fold"],i):i(CodeMirror)}(function(e){"use strict";function t(e){e.state.tagHit&&e.state.tagHit.clear(),e.state.tagOther&&e.state.tagOther.clear(),e.state.tagHit=e.state.tagOther=null}function r(r){r.state.failedTagMatch=!1,r.operation(function(){if(t(r),!r.somethingSelected()){var n=r.getCursor(),i=r.getViewport();i.from=Math.min(i.from,n.line),i.to=Math.max(n.line+1,i.to);var o=e.findMatchingTag(r,n,i);if(o){if(r.state.matchBothTags){var a="open"==o.at?o.open:o.close;a&&(r.state.tagHit=r.markText(a.from,a.to,{className:"CodeMirror-matchingtag"}))}var l="close"==o.at?o.open:o.close;l?r.state.tagOther=r.markText(l.from,l.to,{className:"CodeMirror-matchingtag"}):r.state.failedTagMatch=!0}}})}function n(e){e.state.failedTagMatch&&r(e)}e.defineOption("matchTags",!1,function(i,o,a){a&&a!=e.Init&&(i.off("cursorActivity",r),i.off("viewportChange",n),t(i)),o&&(i.state.matchBothTags="object"==typeof o&&o.bothTags,i.on("cursorActivity",r),i.on("viewportChange",n),r(i))}),e.commands.toMatchingTag=function(t){var r=e.findMatchingTag(t,t.getCursor());if(r){var n="close"==r.at?r.open:r.close;n&&t.extendSelection(n.to,n.from)}}})},{"../../lib/codemirror":15,"../fold/xml-fold":14}],14:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e,t,r,n){this.line=t,this.ch=r,this.cm=e,this.text=e.getLine(t),this.min=n?Math.max(n.from,e.firstLine()):e.firstLine(),this.max=n?Math.min(n.to-1,e.lastLine()):e.lastLine()}function r(e,t){var r=e.cm.getTokenTypeAt(d(e.line,t));return r&&/\btag\b/.test(r)}function n(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function i(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function o(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(n(e))continue;return}{if(r(e,t+1)){var i=e.text.lastIndexOf("/",t),o=i>-1&&!/\S/.test(e.text.slice(i+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t+1}}}function a(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==t){if(i(e))continue;return}if(r(e,t+1)){h.lastIndex=t,e.ch=t;var n=h.exec(e.text);if(n&&n.index==t)return n}else e.ch=t}}function l(e){for(;;){h.lastIndex=e.ch;var t=h.exec(e.text);if(!t){if(n(e))continue;return}{if(r(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}}function s(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==t){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}}}function c(e,t){for(var r=[];;){var n,i=l(e),a=e.line,s=e.ch-(i?i[0].length:0);if(!i||!(n=o(e)))return;if("selfClose"!=n)if(i[1]){for(var c=r.length-1;c>=0;--c)if(r[c]==i[2]){r.length=c;break}if(c<0&&(!t||t==i[2]))return{tag:i[2],from:d(a,s),to:d(e.line,e.ch)}}else r.push(i[2])}}function u(e,t){for(var r=[];;){var n=s(e);if(!n)return;if("selfClose"!=n){var i=e.line,o=e.ch,l=a(e);if(!l)return;if(l[1])r.push(l[2]);else{for(var c=r.length-1;c>=0;--c)if(r[c]==l[2]){r.length=c;break}if(c<0&&(!t||t==l[2]))return{tag:l[2],from:d(e.line,e.ch),to:d(i,o)}}}else a(e)}}var d=e.Pos,f="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",h=new RegExp("<(/?)(["+f+"][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-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");e.registerHelper("fold","xml",function(e,r){for(var n=new t(e,r.line,0);;){var i,a=l(n);if(!a||n.line!=r.line||!(i=o(n)))return;if(!a[1]&&"selfClose"!=i){var s=d(n.line,n.ch),u=c(n,a[2]);return u&&{from:s,to:u.from}}}}),e.findMatchingTag=function(e,r,n){var i=new t(e,r.line,r.ch,n);if(-1!=i.text.indexOf(">")||-1!=i.text.indexOf("<")){var l=o(i),s=l&&d(i.line,i.ch),f=l&&a(i);if(l&&f&&!(function(e,t){return e.line-t.line||e.ch-t.ch}(i,r)>0)){var h={from:d(i.line,i.ch),to:s,tag:f[2]};return"selfClose"==l?{open:h,close:null,at:"open"}:f[1]?{open:u(i,f[2]),close:h,at:"close"}:(i=new t(e,s.line,s.ch,n),{open:h,close:c(i,f[2]),at:"open"})}}},e.findEnclosingTag=function(e,r,n,i){for(var o=new t(e,r.line,r.ch,n);;){var a=u(o,i);if(!a)break;var l=c(new t(e,r.line,r.ch,n),a.tag);if(l)return{open:a,close:l}}},e.scanForClosingTag=function(e,r,n,i){return c(new t(e,r.line,r.ch,i?{from:0,to:i}:null),n)}})},{"../../lib/codemirror":15}],15:[function(e,r,n){!function(e,i){"object"==typeof n&&void 0!==r?r.exports=i():"function"==typeof t&&t.amd?t(i):e.CodeMirror=i()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function r(e,r){return t(e).appendChild(r)}function n(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,r,i){var o=n(e,t,r,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function a(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function l(t,r){var n=t.className;e(r).test(n)||(t.className+=(n?" ":"")+r)}function s(t,r){for(var n=t.split(" "),i=0;i<n.length;i++)n[i]&&!e(n[i]).test(r)&&(r+=" "+n[i]);return r}function c(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function u(e,t,r){t||(t={});for(var n in e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function d(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 l=e.indexOf("\t",o);if(l<0||l>=t)return a+(t-o);a+=l-o,a+=r-a%r,o=l+1}}function f(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}function h(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);-1==o&&(o=e.length);var a=o-n;if(o==e.length||i+a>=t)return n+Math.min(a,t-i);if(i+=o-n,i+=r-i%r,n=o+1,i>=t)return n}}function p(e){for(;wo.length<=e;)wo.push(m(wo)+" ");return wo[e]}function m(e){return e[e.length-1]}function g(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function v(){}function y(e,t){var r;return Object.create?r=Object.create(e):(v.prototype=e,r=new v),t&&u(t,r),r}function b(e){return/\w/.test(e)||e>"€"&&(e.toUpperCase()!=e.toLowerCase()||xo.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&b(e))||t.test(e):b(e)}function x(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function k(e){return e.charCodeAt(0)>=768&&ko.test(e)}function C(e,t,r){for(;(r<0?t>0:t<e.length)&&k(e.charAt(t));)t+=r;return t}function S(e,t,r){for(var n=t>r?-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 T(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 L(e,t,r){var n=[],i=t.line;return e.iter(t.line,r.line+1,function(e){var o=e.text;i==r.line&&(o=o.slice(0,r.ch)),i==t.line&&(o=o.slice(t.ch)),n.push(o),++i}),n}function M(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function A(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function O(e){if(null==e.parent)return null;for(var t=e.parent,r=f(t.lines,e),n=t.parent;n;t=n,n=n.parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function N(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var a=0;a<e.lines.length;++a){var l=e.lines[a].height;if(t<l)break;t-=l}return r+a}function _(e,t){return t>=e.first&&t<e.first+e.size}function E(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function W(e,t,r){if(void 0===r&&(r=null),!(this instanceof W))return new W(e,t,r);this.line=e,this.ch=t,this.sticky=r}function F(e,t){return e.line-t.line||e.ch-t.ch}function D(e,t){return e.sticky==t.sticky&&0==F(e,t)}function z(e){return W(e.line,e.ch)}function P(e,t){return F(e,t)<0?t:e}function H(e,t){return F(e,t)<0?e:t}function I(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function R(e,t){if(t.line<e.first)return W(e.first,0);var r=e.first+e.size-1;return t.line>r?W(r,T(e,r).text.length):function(e,t){var r=e.ch;return null==r||r>t?W(e.line,t):r<0?W(e.line,0):e}(t,T(e,t.line).text.length)}function j(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=R(e,t[n]);return r}function B(e,t,r){this.marker=e,this.from=t,this.to=r}function q(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function U(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function K(e,t){if(t.full)return null;var r=_(e,t.from.line)&&T(e,t.from.line).markedSpans,n=_(e,t.to.line)&&T(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,a=0==F(t.from,t.to),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.from||(a.inclusiveLeft?o.from<=t:o.from<t)||o.from==t&&"bookmark"==a.type&&(!r||!o.marker.insertLeft)){var l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new B(a,o.from,l?null:o.to))}}return n}(r,i,a),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.to||(a.inclusiveRight?o.to>=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!r||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new B(a,l?null:o.from-t,null==o.to?null:o.to-t))}}return n}(n,o,a),c=1==t.text.length,u=m(t.text).length+(c?i:0);if(l)for(var d=0;d<l.length;++d){var f=l[d];if(null==f.to){var h=q(s,f.marker);h?c&&(f.to=null==h.to?null:h.to+u):f.to=i}}if(s)for(var p=0;p<s.length;++p){var g=s[p];if(null!=g.to&&(g.to+=u),null==g.from){q(l,g.marker)||(g.from=u,c&&(l||(l=[])).push(g))}else g.from+=u,c&&(l||(l=[])).push(g)}l&&(l=V(l)),s&&s!=l&&(s=V(s));var v=[l];if(!c){var y,b=t.text.length-2;if(b>0&&l)for(var w=0;w<l.length;++w)null==l[w].to&&(y||(y=[])).push(new B(l[w].marker,null,null));for(var x=0;x<b;++x)v.push(y);v.push(s)}return v}function V(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 G(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function $(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function Y(e){return e.inclusiveLeft?-1:0}function X(e){return e.inclusiveRight?1:0}function Z(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=F(n.from,i.from)||Y(e)-Y(t);if(o)return-o;var a=F(n.to,i.to)||X(e)-X(t);return a||t.id-e.id}function J(e,t){var r,n=So&&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||Z(r,i.marker)<0)&&(r=i.marker);return r}function Q(e){return J(e,!0)}function ee(e){return J(e,!1)}function te(e,t,r,n,i){var o=T(e,t),a=So&&o.markedSpans;if(a)for(var l=0;l<a.length;++l){var s=a[l];if(s.marker.collapsed){var c=s.marker.find(0),u=F(c.from,r)||Y(s.marker)-Y(i),d=F(c.to,n)||X(s.marker)-X(i);if(!(u>=0&&d<=0||u<=0&&d>=0)&&(u<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?F(c.to,r)>=0:F(c.to,r)>0)||u>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?F(c.from,n)<=0:F(c.from,n)<0)))return!0}}}function re(e){for(var t;t=Q(e);)e=t.find(-1,!0).line;return e}function ne(e,t){var r=T(e,t),n=re(r);return r==n?t:O(n)}function ie(e,t){if(t>e.lastLine())return t;var r,n=T(e,t);if(!oe(e,n))return t;for(;r=ee(n);)n=r.find(1,!0).line;return O(n)+1}function oe(e,t){var r=So&&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&&ae(e,t,n))return!0}}function ae(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return ae(e,n.line,q(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)&&ae(e,t,i))return!0}function le(e){for(var t=0,r=(e=re(e)).parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;r=o,o=r.parent)for(var a=0;a<o.children.length;++a){var l=o.children[a];if(l==r)break;t+=l.height}return t}function se(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=Q(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=ee(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 ce(e){var t=e.display,r=e.doc;t.maxLine=T(r,r.first),t.maxLineLength=se(t.maxLine),t.maxLineChanged=!0,r.iter(function(e){var r=se(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function ue(e,t,r){var n;To=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:To=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:To=i)}return null!=n?n:To}function de(e,t){var r=e.order;return null==r&&(r=e.order=Lo(e.text,t)),r}function fe(e,t){return e._handlers&&e._handlers[t]||Mo}function he(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=f(i,r);o>-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function pe(e,t){var r=fe(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 me(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),pe(e,r||t.type,e,t),xe(t)||t.codemirrorIgnore}function ge(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==f(r,t[n])&&r.push(t[n])}function ve(e,t){return fe(e,t).length>0}function ye(e){e.prototype.on=function(e,t){Ao(this,e,t)},e.prototype.off=function(e,t){he(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function we(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function xe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function ke(e){be(e),we(e)}function Ce(e){return e.target||e.srcElement}function Se(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),ro&&e.ctrlKey&&1==t&&(t=3),t}function Te(e){if(null==ho){var t=n("span","​");r(e,n("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(ho=t.offsetWidth<=1&&t.offsetHeight>2&&!(Ui&&Ki<8))}var i=ho?n("span","​"):n("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function Le(e){if(null!=po)return po;var n=r(e,document.createTextNode("AخA")),i=ao(n,0,1).getBoundingClientRect(),o=ao(n,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(po=o.right-i.right<3)}function Me(e){if("string"==typeof e&&Do.hasOwnProperty(e))e=Do[e];else if(e&&"string"==typeof e.name&&Do.hasOwnProperty(e.name)){var t=Do[e.name];"string"==typeof t&&(t={name:t}),(e=y(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Me("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Me("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Ae(e,t){t=Me(t);var r=Fo[t.name];if(!r)return Ae(e,"text/plain");var n=r(e,t);if(zo.hasOwnProperty(t.name)){var i=zo[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)n[a]=t.modeProps[a];return n}function Oe(e,t){u(t,zo.hasOwnProperty(e)?zo[e]:zo[e]={})}function Ne(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 _e(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 Ee(e,t,r){return!e.startState||e.startState(t,r)}function We(e,t,r,n){var i=[e.state.modeGen],o={};je(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var a=r.state,l=function(n){r.baseTokens=i;var l=e.state.overlays[n],s=1,c=0;r.state=!0,je(e,t.text,l.mode,r,function(e,t){for(var r=s;c<e;){var n=i[s];n>e&&i.splice(s,1,e,i[s+1],n),s+=2,c=Math.min(e,n)}if(t)if(l.opaque)i.splice(r,s-r,e,"overlay "+t),s=r+2;else for(;r<s;r+=2){var o=i[r+1];i[r+1]=(o?o+" ":"")+"overlay "+t}},o),r.state=a,r.baseTokens=null,r.baseTokenPos=1},s=0;s<e.state.overlays.length;++s)l(s);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Fe(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=De(e,O(t)),i=t.text.length>e.options.maxHighlightLength&&Ne(e.doc.mode,n.state),o=We(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 De(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new Io(n,!0,t);var o=function(e,t,r){for(var n,i,o=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=T(o,l-1),c=s.stateAfter;if(c&&(!r||l+(c instanceof Ho?c.lookAhead:0)<=o.modeFrontier))return l;var u=d(s.text,null,e.options.tabSize);(null==i||n>u)&&(i=l-1,n=u)}return i}(e,t,r),a=o>n.first&&T(n,o-1).stateAfter,l=a?Io.fromSaved(n,a,o):new Io(n,Ee(n.mode),o);return n.iter(o,t,function(r){ze(e,r.text,l);var n=l.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&n<i.viewTo?l.save():null,l.nextLine()}),r&&(n.modeFrontier=l.line),l}function ze(e,t,r,n){var i=e.doc.mode,o=new Po(t,e.options.tabSize,r);for(o.start=o.pos=n||0,""==t&&Pe(i,r.state);!o.eol();)He(i,o,r.state),o.start=o.pos}function Pe(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=_e(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function He(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=_e(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function Ie(e,t,r,n){var i,o,a=e.doc,l=a.mode,s=T(a,(t=R(a,t)).line),c=De(e,t.line,r),u=new Po(s.text,e.options.tabSize,c);for(n&&(o=[]);(n||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=He(l,u,c.state),n&&o.push(new Ro(u,i,Ne(a.mode,c.state)));return n?o:new Ro(u,i,c.state)}function Re(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 je(e,t,r,n,i,o,a){var l=r.flattenSpans;null==l&&(l=e.options.flattenSpans);var s,c=0,u=null,d=new Po(t,e.options.tabSize,n),f=e.options.addModeClass&&[null];for(""==t&&Re(Pe(r,n.state),o);!d.eol();){if(d.pos>e.options.maxHighlightLength?(l=!1,a&&ze(e,t,n,d.pos),d.pos=t.length,s=null):s=Re(He(r,d,n.state,f),o),f){var h=f[0].name;h&&(s="m-"+(s?h+" "+s:h))}if(!l||u!=s){for(;c<d.start;)i(c=Math.min(d.start,c+5e3),u);u=s}d.start=d.pos}for(;c<d.pos;){var p=Math.min(d.pos,c+5e3);i(p,u),c=p}}function Be(e){e.parent=null,G(e)}function qe(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?Uo:qo;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function Ue(e,t){var r=i("span",null,null,Vi?"padding-right: .1px":null),n={pre:i("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(Ui||Vi)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var a=o?t.rest[o-1]:t.line,l=void 0;n.pos=0,n.addToken=Ve,Le(e.display.measure)&&(l=de(a,e.doc.direction))&&(n.addToken=function(e,t){return function(r,n,i,o,a,l,s){i=i?i+" cm-force-border":"cm-force-border";for(var c=r.pos,u=c+n.length;;){for(var d=void 0,f=0;f<t.length&&!((d=t[f]).to>c&&d.from<=c);f++);if(d.to>=u)return e(r,n,i,o,a,l,s);e(r,n.slice(0,d.to-c),i,o,null,l,s),o=null,n=n.slice(d.to-c),c=d.to}}}(n.addToken,l)),n.map=[];!function(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(!n){for(var a=1;a<r.length;a+=2)t.addToken(t,i.slice(o,o=r[a]),qe(r[a+1],t.cm.options));return}for(var l,s,c,u,d,f,h,p=i.length,m=0,g=1,v="",y=0;;){if(y==m){c=u=d=f=s="",h=null,y=1/0;for(var b=[],w=void 0,x=0;x<n.length;++x){var k=n[x],C=k.marker;"bookmark"==C.type&&k.from==m&&C.widgetNode?b.push(C):k.from<=m&&(null==k.to||k.to>m||C.collapsed&&k.to==m&&k.from==m)?(null!=k.to&&k.to!=m&&y>k.to&&(y=k.to,u=""),C.className&&(c+=" "+C.className),C.css&&(s=(s?s+";":"")+C.css),C.startStyle&&k.from==m&&(d+=" "+C.startStyle),C.endStyle&&k.to==y&&(w||(w=[])).push(C.endStyle,k.to),C.title&&!f&&(f=C.title),C.collapsed&&(!h||Z(h.marker,C)<0)&&(h=k)):k.from>m&&y>k.from&&(y=k.from)}if(w)for(var S=0;S<w.length;S+=2)w[S+1]==y&&(u+=" "+w[S]);if(!h||h.from==m)for(var T=0;T<b.length;++T)Ge(t,0,b[T]);if(h&&(h.from||0)==m){if(Ge(t,(null==h.to?p+1:h.to)-m,h.marker,null==h.from),null==h.to)return;h.to==m&&(h=!1)}}if(m>=p)break;for(var L=Math.min(p,y);;){if(v){var M=m+v.length;if(!h){var A=M>L?v.slice(0,L-m):v;t.addToken(t,A,l?l+c:c,d,m+A.length==y?u:"",f,s)}if(M>=L){v=v.slice(L-m),m=L;break}m=M,d=""}v=i.slice(o,o=r[g++]),l=qe(r[g++],t.cm.options)}}}(a,n,Fe(e,a,t!=e.display.externalMeasured&&O(a))),a.styleClasses&&(a.styleClasses.bgClass&&(n.bgClass=s(a.styleClasses.bgClass,n.bgClass||"")),a.styleClasses.textClass&&(n.textClass=s(a.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Te(e.display.measure))),0==o?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(Vi){var c=n.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return pe(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=s(n.pre.className,n.textClass||"")),n}function Ke(e){var t=n("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Ve(e,t,r,i,o,a,l){if(t){var s,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),n+=o,r=" "==o}return n}(t,e.trailingSpace):t,u=e.cm.state.specialChars,d=!1;if(u.test(t)){s=document.createDocumentFragment();for(var f=0;;){u.lastIndex=f;var h=u.exec(t),m=h?h.index-f:t.length-f;if(m){var g=document.createTextNode(c.slice(f,f+m));Ui&&Ki<9?s.appendChild(n("span",[g])):s.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!h)break;f+=m+1;var v=void 0;if("\t"==h[0]){var y=e.cm.options.tabSize,b=y-e.col%y;(v=s.appendChild(n("span",p(b),"cm-tab"))).setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==h[0]||"\n"==h[0]?((v=s.appendChild(n("span","\r"==h[0]?"␍":"␤","cm-invalidchar"))).setAttribute("cm-text",h[0]),e.col+=1):((v=e.cm.options.specialCharPlaceholder(h[0])).setAttribute("cm-text",h[0]),Ui&&Ki<9?s.appendChild(n("span",[v])):s.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,s=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,s),Ui&&Ki<9&&(d=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),r||i||o||d||l){var w=r||"";i&&(w+=i),o&&(w+=o);var x=n("span",[s],w,l);return a&&(x.title=a),e.content.appendChild(x)}e.content.appendChild(s)}}function Ge(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 $e(e,t,r){this.line=t,this.rest=function(e){for(var t,r;t=ee(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}(t),this.size=this.rest?O(m(this.rest))-r+1:1,this.node=this.text=null,this.hidden=oe(e,t)}function Ye(e,t,r){for(var n,i=[],o=t;o<r;o=n){var a=new $e(e.doc,T(e.doc,o),o);n=o+a.size,i.push(a)}return i}function Xe(e,t){var r=fe(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);Ko?n=Ko.delayedCallbacks:Vo?n=Vo:(n=Vo=[],setTimeout(Ze,0));for(var o=function(e){n.push(function(){return r[e].apply(null,i)})},a=0;a<r.length;++a)o(a)}}function Ze(){var e=Vo;Vo=null;for(var t=0;t<e.length;++t)e[t]()}function Je(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?function(e,t){var r=t.text.className,n=et(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,tt(e,t)):r&&(t.text.className=r)}(e,t):"gutter"==o?rt(e,t,r,n):"class"==o?tt(e,t):"widget"==o&&function(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);it(e,t,r)}(e,t,n)}t.changes=null}function Qe(e){return e.node==e.text&&(e.node=n("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),Ui&&Ki<8&&(e.node.style.zIndex=2)),e.node}function et(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):Ue(e,t)}function tt(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 i=Qe(t);t.background=i.insertBefore(n("div",null,r),i.firstChild),e.display.input.setUneditable(t.background)}}(e,t),t.line.wrapClass?Qe(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 rt(e,t,r,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Qe(t);t.gutterBackground=n("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var a=t.line.gutterMarkers;if(e.options.lineNumbers||a){var l=Qe(t),s=t.gutter=n("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(s),l.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=" "+t.line.gutterClass),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(t.lineNumber=s.appendChild(n("div",E(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),a)for(var c=0;c<e.options.gutters.length;++c){var u=e.options.gutters[c],d=a.hasOwnProperty(u)&&a[u];d&&s.appendChild(n("div",[d],"CodeMirror-gutter-elt","left: "+i.gutterLeft[u]+"px; width: "+i.gutterWidth[u]+"px"))}}}function nt(e,t,r,n){var i=et(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),tt(e,t),rt(e,t,r,n),it(e,t,n),t.node}function it(e,t,r){if(ot(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)ot(e,t.rest[n],t,r,!1)}function ot(e,t,r,i,o){if(t.widgets)for(var a=Qe(r),l=0,s=t.widgets;l<s.length;++l){var c=s[l],u=n("div",[c.node],"CodeMirror-linewidget");c.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),function(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"))}(c,u,r,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,r.gutter||r.text):a.appendChild(u),Xe(c,"redraw")}}function at(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),r(t.display.measure,n("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function lt(e,t){for(var r=Ce(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 st(e){return e.lineSpace.offsetTop}function ct(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function ut(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=r(e.measure,n("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function dt(e){return mo-e.display.nativeBarWidth}function ft(e){return e.display.scroller.clientWidth-dt(e)-e.display.barWidth}function ht(e){return e.display.scroller.clientHeight-dt(e)-e.display.barHeight}function pt(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(O(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function mt(e,t,r,n){return yt(e,vt(e,t),r,n)}function gt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Ut(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function vt(e,t){var n=O(t),i=gt(e,n);i&&!i.text?i=null:i&&i.changes&&(Je(e,i,n,It(e)),e.curOp.forceUpdate=!0),i||(i=function(e,t){var n=O(t=re(t)),i=e.display.externalMeasured=new $e(e.doc,t,n);i.lineN=n;var o=i.built=Ue(e,i);return i.text=o.pre,r(e.display.lineMeasure,o.pre),i}(e,t));var o=pt(i,t,n);return{line:t,view:i,rect:null,map:o.map,cache:o.cache,before:o.before,hasHeights:!1}}function yt(e,t,i,o,a){t.before&&(i=-1);var l,s=i+(o||"");return t.cache.hasOwnProperty(s)?l=t.cache[s]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(!function(e,t,r){var n=e.options.lineWrapping,i=n&&ft(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),l=0;l<a.length-1;l++){var s=a[l],c=a[l+1];Math.abs(s.bottom-c.bottom)>2&&o.push((s.bottom+c.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(l=function(e,t,i,o){var a,l=bt(t.map,i,o),s=l.node,c=l.start,u=l.end,d=l.collapse;if(3==s.nodeType){for(var f=0;f<4;f++){for(;c&&k(t.line.text.charAt(l.coverStart+c));)--c;for(;l.coverStart+u<l.coverEnd&&k(t.line.text.charAt(l.coverStart+u));)++u;if((a=Ui&&Ki<9&&0==c&&u==l.coverEnd-l.coverStart?s.parentNode.getBoundingClientRect():wt(ao(s,c,u).getClientRects(),o)).left||a.right||0==c)break;u=c,c-=1,d="right"}Ui&&Ki<11&&(a=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Wo)return Wo;var t=r(e,n("span","x")),i=t.getBoundingClientRect(),o=ao(t,0,1).getBoundingClientRect();return Wo=Math.abs(i.left-o.left)>1}(e))return t;var i=screen.logicalXDPI/screen.deviceXDPI,o=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*i,right:t.right*i,top:t.top*o,bottom:t.bottom*o}}(e.display.measure,a))}else{c>0&&(d=o="right");var h;a=e.options.lineWrapping&&(h=s.getClientRects()).length>1?h["right"==o?h.length-1:0]:s.getBoundingClientRect()}if(Ui&&Ki<9&&!c&&(!a||!a.left&&!a.right)){var p=s.parentNode.getClientRects()[0];a=p?{left:p.left,right:p.left+Ht(e.display),top:p.top,bottom:p.bottom}:Go}for(var m=a.top-t.rect.top,g=a.bottom-t.rect.top,v=(m+g)/2,y=t.view.measure.heights,b=0;b<y.length-1&&!(v<y[b]);b++);var w=b?y[b-1]:0,x=y[b],C={left:("right"==d?a.right:a.left)-t.rect.left,right:("left"==d?a.left:a.right)-t.rect.left,top:w,bottom:x};a.left||a.right||(C.bogus=!0);e.options.singleCursorHeightPerLine||(C.rtop=m,C.rbottom=g);return C}(e,t,i,o)).bogus||(t.cache[s]=l)),{left:l.left,right:l.right,top:a?l.rtop:l.top,bottom:a?l.rbottom:l.bottom}}function bt(e,t,r){for(var n,i,o,a,l,s,c=0;c<e.length;c+=3)if(l=e[c],s=e[c+1],t<l?(i=0,o=1,a="left"):t<s?o=(i=t-l)+1:(c==e.length-3||t==s&&e[c+3]>t)&&(i=(o=s-l)-1,t>=s&&(a="right")),null!=i){if(n=e[c+2],l==s&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)n=e[2+(c-=3)],a="left";if("right"==r&&i==s-l)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)n=e[(c+=3)+2],a="right";break}return{node:n,start:i,end:o,collapse:a,coverStart:l,coverEnd:s}}function wt(e,t){var r=Go;if("left"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;i>=0&&(r=e[i]).left==r.right;i--);return r}function xt(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 kt(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var r=0;r<e.display.view.length;r++)xt(e.display.view[r])}function Ct(e){kt(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function St(){return $i&&eo?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function Tt(){return $i&&eo?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function Lt(e){var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;++r)e.widgets[r].above&&(t+=at(e.widgets[r]));return t}function Mt(e,t,r,n,i){if(!i){var o=Lt(t);r.top+=o,r.bottom+=o}if("line"==n)return r;n||(n="local");var a=le(t);if("local"==n?a+=st(e.display):a-=e.display.viewOffset,"page"==n||"window"==n){var l=e.display.lineSpace.getBoundingClientRect();a+=l.top+("window"==n?0:Tt());var s=l.left+("window"==n?0:St());r.left+=s,r.right+=s}return r.top+=a,r.bottom+=a,r}function At(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=St(),i-=Tt();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 Ot(e,t,r,n,i){return n||(n=T(e.doc,t.line)),Mt(e,n,mt(e,n,t.ch,i),r)}function Nt(e,t,r,n,i,o){function a(t,a){var l=yt(e,i,t,a?"right":"left",o);return a?l.left=l.right:l.right=l.left,Mt(e,n,l,r)}function l(e,t,r){var n=1==s[t].level;return a(r?e-1:e,n!=r)}n=n||T(e.doc,t.line),i||(i=vt(e,n));var s=de(n,e.doc.direction),c=t.ch,u=t.sticky;if(c>=n.text.length?(c=n.text.length,u="before"):c<=0&&(c=0,u="after"),!s)return a("before"==u?c-1:c,"before"==u);var d=ue(s,c,u),f=To,h=l(c,d,"before"==u);return null!=f&&(h.other=l(c,f,"before"!=u)),h}function _t(e,t){var r=0;t=R(e.doc,t),e.options.lineWrapping||(r=Ht(e.display)*t.ch);var n=T(e.doc,t.line),i=le(n)+st(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function Et(e,t,r,n,i){var o=W(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function Wt(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return Et(n.first,0,null,!0,-1);var i=N(n,r),o=n.first+n.size-1;if(i>o)return Et(n.first+n.size-1,T(n,o).text.length,null,!0,1);t<0&&(t=0);for(var a=T(n,i);;){var l=function(e,t,r,n,i){i-=le(t);var o=vt(e,t),a=Lt(t),l=0,s=t.text.length,c=!0,u=de(t,e.doc.direction);if(u){var d=(e.options.lineWrapping?function(e,t,r,n,i,o,a){var l=Ft(e,t,n,a),s=l.begin,c=l.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,d=null,f=0;f<i.length;f++){var h=i[f];if(!(h.from>=c||h.to<=s)){var p=1!=h.level,m=yt(e,n,p?Math.min(c,h.to)-1:Math.max(s,h.from)).right,g=m<o?o-m+1e9:m-o;(!u||d>g)&&(u=h,d=g)}}u||(u=i[i.length-1]);u.from<s&&(u={from:s,to:u.to,level:u.level});u.to>c&&(u={from:u.from,to:c,level:u.level});return u}:function(e,t,r,n,i,o,a){var l=S(function(l){var s=i[l],c=1!=s.level;return zt(Nt(e,W(r,c?s.to:s.from,c?"before":"after"),"line",t,n),o,a,!0)},0,i.length-1),s=i[l];if(l>0){var c=1!=s.level,u=Nt(e,W(r,c?s.from:s.to,c?"after":"before"),"line",t,n);zt(u,o,a,!0)&&u.top>a&&(s=i[l-1])}return s})(e,t,r,o,u,n,i);c=1!=d.level,l=c?d.from:d.to-1,s=c?d.to:d.from-1}var f,h,p=null,m=null,g=S(function(t){var r=yt(e,o,t);return r.top+=a,r.bottom+=a,!!zt(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,m=r),!0)},l,s),v=!1;if(m){var y=n-m.left<m.right-n,b=y==c;g=p+(b?0:1),h=b?"after":"before",f=y?m.left:m.right}else{c||g!=s&&g!=l||g++,h=0==g?"after":g==t.text.length?"before":yt(e,o,g-(c?1:0)).bottom+a<=i==c?"after":"before";var w=Nt(e,W(r,g,h),"line",t,o);f=w.left,v=i<w.top||i>=w.bottom}return g=C(t.text,g,1),Et(r,g,h,v,n-f)}(e,a,i,t,r),s=ee(a),c=s&&s.find(0,!0);if(!s||!(l.ch>c.from.ch||l.ch==c.from.ch&&l.xRel>0))return l;i=O(a=c.to.line)}}function Ft(e,t,r,n){n-=Lt(t);var i=t.text.length,o=S(function(t){return yt(e,r,t-1).bottom<=n},i,0);return i=S(function(t){return yt(e,r,t).top>n},o,i),{begin:o,end:i}}function Dt(e,t,r,n){r||(r=vt(e,t));return Ft(e,t,r,Mt(e,t,yt(e,r,n),"line").top)}function zt(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Pt(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Bo){Bo=n("pre");for(var i=0;i<49;++i)Bo.appendChild(document.createTextNode("x")),Bo.appendChild(n("br"));Bo.appendChild(document.createTextNode("x"))}r(e.measure,Bo);var o=Bo.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function Ht(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=n("span","xxxxxxxxxx"),i=n("pre",[t]);r(e.measure,i);var o=t.getBoundingClientRect(),a=(o.right-o.left)/10;return a>2&&(e.cachedCharWidth=a),a||10}function It(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:Rt(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function Rt(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function jt(e){var t=Pt(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/Ht(e.display)-3);return function(i){if(oe(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function Bt(e){var t=e.doc,r=jt(e);t.iter(function(e){var t=r(e);t!=e.height&&A(e,t)})}function qt(e,t,r,n){var i=e.display;if(!r&&"true"==Ce(t).getAttribute("cm-not-content"))return null;var o,a,l=i.lineSpace.getBoundingClientRect();try{o=t.clientX-l.left,a=t.clientY-l.top}catch(t){return null}var s,c=Wt(e,o,a);if(n&&1==c.xRel&&(s=T(e.doc,c.line).text).length==c.ch){var u=d(s,s.length,e.options.tabSize)-s.length;c=W(c.line,Math.max(0,Math.round((o-ut(e.display).left)/Ht(e.display))-u))}return c}function Ut(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 Kt(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Vt(e,t){void 0===t&&(t=!0);for(var r=e.doc,i={},o=i.cursors=document.createDocumentFragment(),a=i.selection=document.createDocumentFragment(),l=0;l<r.sel.ranges.length;l++)if(t||l!=r.sel.primIndex){var s=r.sel.ranges[l];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var c=s.empty();(c||e.options.showCursorWhenSelecting)&&Gt(e,s.head,o),c||function(e,t,r){function i(e,t,r,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),s.appendChild(n("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==r?d-e:r)+"px;\n height: "+(i-t)+"px"))}function o(t,r,n){function o(r,n){return Ot(e,W(t,r),"div",h,n)}function a(t,r,n){var i=Dt(e,h,null,t),a="ltr"==r==("after"==n)?"left":"right",l="after"==n?i.begin:i.end-(/\s/.test(h.text.charAt(i.end-1))?2:1);return o(l,a)[a]}var s,c,h=T(l,t),p=h.text.length,m=de(h,l.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")}(m,r||0,null==n?p:n,function(e,t,l,h){var g="ltr"==l,v=o(e,g?"left":"right"),y=o(t-1,g?"right":"left"),b=null==r&&0==e,w=null==n&&t==p,x=0==h,k=!m||h==m.length-1;if(y.top-v.top<=3){var C=(f?b:w)&&x,S=(f?w:b)&&k,T=C?u:(g?v:y).left,L=S?d:(g?y:v).right;i(T,v.top,L-T,v.bottom)}else{var M,A,O,N;g?(M=f&&b&&x?u:v.left,A=f?d:a(e,l,"before"),O=f?u:a(t,l,"after"),N=f&&w&&k?d:y.right):(M=f?a(e,l,"before"):u,A=!f&&b&&x?d:v.right,O=!f&&w&&k?u:y.left,N=f?a(t,l,"after"):d),i(M,v.top,A-M,v.bottom),v.bottom<y.top&&i(u,v.bottom,null,y.top),i(O,y.top,N-O,y.bottom)}(!s||$t(v,s)<0)&&(s=v),$t(y,s)<0&&(s=y),(!c||$t(v,c)<0)&&(c=v),$t(y,c)<0&&(c=y)}),{start:s,end:c}}var a=e.display,l=e.doc,s=document.createDocumentFragment(),c=ut(e.display),u=c.left,d=Math.max(a.sizerWidth,ft(e)-a.sizer.offsetLeft)-c.right,f="ltr"==l.direction;var h=t.from(),p=t.to();if(h.line==p.line)o(h.line,h.ch,p.ch);else{var m=T(l,h.line),g=T(l,p.line),v=re(m)==re(g),y=o(h.line,h.ch,v?m.text.length+1:null).end,b=o(p.line,v?0:null,p.ch).start;v&&(y.top<b.top-2?(i(y.right,y.top,null,y.bottom),i(u,b.top,b.left,b.bottom)):i(y.right,y.top,b.left-y.right,y.bottom)),y.bottom<b.top&&i(u,y.bottom,null,b.top)}r.appendChild(s)}(e,s,a)}}return i}function Gt(e,t,r){var i=Nt(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=r.appendChild(n("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var a=r.appendChild(n("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=i.other.left+"px",a.style.top=i.other.top+"px",a.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function $t(e,t){return e.top-t.top||e.left-t.left}function Yt(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Xt(e){e.state.focused||(e.display.input.focus(),Jt(e))}function Zt(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Qt(e))},100)}function Jt(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(pe(e,"focus",e,t),e.state.focused=!0,l(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),Vi&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Yt(e))}function Qt(e,t){e.state.delayingBlurEvent||(e.state.focused&&(pe(e,"blur",e,t),e.state.focused=!1,co(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function er(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(Ui&&Ki<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var l=i.node.getBoundingClientRect();o=l.bottom-l.top}var s=i.line.height-o;if(o<2&&(o=Pt(t)),(s>.005||s<-.005)&&(A(i.line,o),tr(i.line),i.rest))for(var c=0;c<i.rest.length;c++)tr(i.rest[c])}}}function tr(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 rr(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-st(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=N(t,n),a=N(t,i);if(r&&r.ensure){var l=r.ensure.from.line,s=r.ensure.to.line;l<o?(o=l,a=N(t,le(T(t,l))+e.wrapper.clientHeight)):Math.min(s,t.lastLine())>=a&&(o=N(t,le(T(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function nr(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=Rt(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",a=0;a<r.length;a++)if(!r[a].hidden){e.options.fixedGutter&&(r[a].gutter&&(r[a].gutter.style.left=o),r[a].gutterBackground&&(r[a].gutterBackground.style.left=o));var l=r[a].alignable;if(l)for(var s=0;s<l.length;s++)l[s].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function ir(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=E(e.options,t.first+t.size-1),i=e.display;if(r.length!=i.lineNumChars){var o=i.measure.appendChild(n("div",[n("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),a=o.firstChild.offsetWidth,l=o.offsetWidth-a;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(a,i.lineGutter.offsetWidth-l)+1,i.lineNumWidth=i.lineNumInnerWidth+l,i.lineNumChars=i.lineNumInnerWidth?r.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Fr(e),!0}return!1}function or(e,t){var r=e.display,n=Pt(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=ht(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var l=e.doc.height+ct(r),s=t.top<n,c=t.bottom>l-n;if(t.top<i)a.scrollTop=s?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?l:t.bottom)-o);u!=i&&(a.scrollTop=u)}var d=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,f=ft(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),h=t.right-t.left>f;return h&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.left<d?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>f+d-3&&(a.scrollLeft=t.right+(h?0:10)-f),a}function ar(e,t){null!=t&&(cr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function lr(e){cr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function sr(e,t,r){null==t&&null==r||cr(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function cr(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;ur(e,_t(e,t.from),_t(e,t.to),t.margin)}}function ur(e,t,r,n){var i=or(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});sr(e,i.scrollLeft,i.scrollTop)}function dr(e,t){Math.abs(e.doc.scrollTop-t)<2||(Ri||Wr(e,{top:t}),fr(e,t,!0),Ri&&Wr(e),Or(e,100))}function fr(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 hr(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,nr(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function pr(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+ct(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+dt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function mr(e,t){t||(t=pr(e));var r=e.display.barWidth,n=e.display.barHeight;gr(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&er(e),gr(e,pr(e)),r=e.display.barWidth,n=e.display.barHeight}function gr(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function vr(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&co(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Xo[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Ao(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,r){"horizontal"==r?hr(e,t):dr(e,t)},e),e.display.scrollbars.addClass&&l(e.display.wrapper,e.display.scrollbars.addClass)}function yr(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:++Zo},function(e){Ko?Ko.ops.push(e):e.ownsGroup=Ko={ops:[e],delayedCallbacks:[]}}(e.curOp)}function br(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{Ko=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++)!function(e){var t=e.cm,r=t.display;(function(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=dt(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=dt(e)+"px",t.scrollbarsClipped=!0)})(t),e.updateMaxLine&&ce(t);e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<r.viewFrom||e.scrollToPos.to.line>=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Jo(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}(t[r]);for(var i=0;i<t.length;i++)!function(e){e.updatedDisplay=e.mustUpdate&&_r(e.cm,e.update)}(t[i]);for(var o=0;o<t.length;o++)!function(e){var t=e.cm,r=t.display;e.updatedDisplay&&er(t);e.barMeasure=pr(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=mt(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+dt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-ft(t)));(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}(t[o]);for(var l=0;l<t.length;l++)!function(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&hr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==a();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r);(e.updatedDisplay||e.startHeight!=t.doc.height)&&mr(t,e.barMeasure);e.updatedDisplay&&Dr(t,e.barMeasure);e.selectionChanged&&Yt(t);t.state.focused&&e.updateInput&&t.display.input.reset(e.typing);r&&Xt(e.cm)}(t[l]);for(var s=0;s<t.length;s++)!function(e){var t=e.cm,r=t.display,i=t.doc;e.updatedDisplay&&Er(t,e.update);null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null);null!=e.scrollTop&&fr(t,e.scrollTop,e.forceScroll);null!=e.scrollLeft&&hr(t,e.scrollLeft,!0,!0);if(e.scrollToPos){var o=function(e,t,r,n){null==n&&(n=0);var i;e.options.lineWrapping||t!=r||(r="before"==(t=t.ch?W(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?W(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,l=Nt(e,t),s=r&&r!=t?Nt(e,r):l,c=or(e,i={left:Math.min(l.left,s.left),top:Math.min(l.top,s.top)-n,right:Math.max(l.left,s.left),bottom:Math.max(l.bottom,s.bottom)+n}),u=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=c.scrollTop&&(dr(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(hr(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(a=!0)),!a)break}return i}(t,R(i,e.scrollToPos.from),R(i,e.scrollToPos.to),e.scrollToPos.margin);!function(e,t){if(!me(e,"scrollCursorIntoView")){var r=e.display,i=r.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!Ji){var a=n("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-st(e.display))+"px;\n height: "+(t.bottom-t.top+dt(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}(t,o)}var a=e.maybeHiddenMarkers,l=e.maybeUnhiddenMarkers;if(a)for(var s=0;s<a.length;++s)a[s].lines.length||pe(a[s],"hide");if(l)for(var c=0;c<l.length;++c)l[c].lines.length&&pe(l[c],"unhide");r.wrapper.offsetHeight&&(i.scrollTop=t.display.scroller.scrollTop);e.changeObjs&&pe(t,"changes",t,e.changeObjs);e.update&&e.update.finish()}(t[s])}(e)})}function wr(e,t){if(e.curOp)return t();yr(e);try{return t()}finally{br(e)}}function xr(e,t){return function(){if(e.curOp)return t.apply(e,arguments);yr(e);try{return t.apply(e,arguments)}finally{br(e)}}}function kr(e){return function(){if(this.curOp)return e.apply(this,arguments);yr(this);try{return e.apply(this,arguments)}finally{br(this)}}}function Cr(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);yr(t);try{return e.apply(this,arguments)}finally{br(t)}}}function Sr(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)So&&ne(e.doc,t)<i.viewTo&&Lr(e);else if(r<=i.viewFrom)So&&ie(e.doc,r+n)>i.viewFrom?Lr(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)Lr(e);else if(t<=i.viewFrom){var o=Mr(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):Lr(e)}else if(r>=i.viewTo){var a=Mr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Lr(e)}else{var l=Mr(e,t,t,-1),s=Mr(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(Ye(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):Lr(e)}var c=i.externalMeasured;c&&(r<c.lineN?c.lineN+=n:t<c.lineN+c.size&&(i.externalMeasured=null))}function Tr(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[Ut(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==f(a,r)&&a.push(r)}}}function Lr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Mr(e,t,r,n){var i,o=Ut(e,t),a=e.display.view;if(!So||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var l=e.display.viewFrom,s=0;s<o;s++)l+=a[s].size;if(l!=t){if(n>0){if(o==a.length-1)return null;i=l+a[o].size-t,o++}else i=l-t;t+=i,r+=i}for(;ne(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 Ar(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 Or(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,c(Nr,e))}function Nr(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=De(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(n.line>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength?Ne(t.mode,n.state):null,s=We(e,o,n,!0);l&&(n.state=l),o.styles=s.styles;var c=o.styleClasses,u=s.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var d=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),f=0;!d&&f<a.length;++f)d=a[f]!=o.styles[f];d&&i.push(n.line),o.stateAfter=n.save(),n.nextLine()}else o.text.length<=e.options.maxHighlightLength&&ze(e,o.text,n),o.stateAfter=n.line%5==0?n.save():null,n.nextLine();if(+new Date>r)return Or(e,e.options.workDelay),!0}),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&wr(e,function(){for(var t=0;t<i.length;t++)Tr(e,i[t],"text")})}}function _r(e,r){var n=e.display,i=e.doc;if(r.editorIsHidden)return Lr(e),!1;if(!r.force&&r.visible.from>=n.viewFrom&&r.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Ar(e))return!1;ir(e)&&(Lr(e),r.dims=It(e));var l=i.first+i.size,s=Math.max(r.visible.from-e.options.viewportMargin,i.first),c=Math.min(l,r.visible.to+e.options.viewportMargin);n.viewFrom<s&&s-n.viewFrom<20&&(s=Math.max(i.first,n.viewFrom)),n.viewTo>c&&n.viewTo-c<20&&(c=Math.min(l,n.viewTo)),So&&(s=ne(e.doc,s),c=ie(e.doc,c));var u=s!=n.viewFrom||c!=n.viewTo||n.lastWrapHeight!=r.wrapperHeight||n.lastWrapWidth!=r.wrapperWidth;!function(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=Ye(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=Ye(e,t,n.viewFrom).concat(n.view):n.viewFrom<t&&(n.view=n.view.slice(Ut(e,t))),n.viewFrom=t,n.viewTo<r?n.view=n.view.concat(Ye(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,Ut(e,r)))),n.viewTo=r}(e,s,c),n.viewOffset=le(T(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var d=Ar(e);if(!u&&0==d&&!r.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var h=function(e){if(e.hasFocus())return null;var t=a();if(!t||!o(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&o(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 d>4&&(n.lineDiv.style.display="none"),function(e,r,n){function i(t){var r=t.nextSibling;return Vi&&ro&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}var o=e.display,a=e.options.lineNumbers,l=o.lineDiv,s=l.firstChild;for(var c=o.view,u=o.viewFrom,d=0;d<c.length;d++){var h=c[d];if(h.hidden);else if(h.node&&h.node.parentNode==l){for(;s!=h.node;)s=i(s);var p=a&&null!=r&&r<=u&&h.lineNumber;h.changes&&(f(h.changes,"gutter")>-1&&(p=!1),Je(e,h,u,n)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(E(e.options,u)))),s=h.node.nextSibling}else{var m=nt(e,h,u,n);l.insertBefore(m,s)}u+=h.size}for(;s;)s=i(s)}(e,n.updateLineNumbers,r.dims),d>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,function(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(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(h),t(n.cursorDiv),t(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,u&&(n.lastWrapHeight=r.wrapperHeight,n.lastWrapWidth=r.wrapperWidth,Or(e,400)),n.updateLineNumbers=null,!0}function Er(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=ft(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+ct(e.display)-ht(e),r.top)}),t.visible=rr(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&_r(e,t);n=!1){er(e);var i=pr(e);Kt(e),mr(e,i),Dr(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 Wr(e,t){var r=new Jo(e,t);if(_r(e,r)){er(e),Er(e,r);var n=pr(e);Kt(e),mr(e,n),Dr(e,n),r.finish()}}function Fr(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Dr(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+dt(e)+"px"}function zr(e){var r=e.display.gutters,i=e.options.gutters;t(r);for(var o=0;o<i.length;++o){var a=i[o],l=r.appendChild(n("div",null,"CodeMirror-gutter "+a));"CodeMirror-linenumbers"==a&&(e.display.lineGutter=l,l.style.width=(e.display.lineNumWidth||1)+"px")}r.style.display=o?"":"none",Fr(e)}function Pr(e){var t=f(e.gutters,"CodeMirror-linenumbers");-1==t&&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 Hr(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 Ir(e){var t=Hr(e);return t.x*=ea,t.y*=ea,t}function Rr(e,t){var r=Hr(t),n=r.x,i=r.y,o=e.display,a=o.scroller,l=a.scrollWidth>a.clientWidth,s=a.scrollHeight>a.clientHeight;if(n&&l||i&&s){if(i&&ro&&Vi)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var d=0;d<u.length;d++)if(u[d].node==c){e.display.currentWheelTarget=c;break e}if(n&&!Ri&&!Yi&&null!=ea)return i&&s&&dr(e,Math.max(0,a.scrollTop+i*ea)),hr(e,Math.max(0,a.scrollLeft+n*ea)),(!i||i&&s)&&be(t),void(o.wheelStartX=null);if(i&&null!=ea){var f=i*ea,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;f<0?h=Math.max(0,h+f-50):p=Math.min(e.doc.height,p+f+50),Wr(e,{top:h,bottom:p})}Qo<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&&(ea=(ea*Qo+r)/(Qo+1),++Qo)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}function jr(e,t){var r=e[t];e.sort(function(e,t){return F(e.from(),t.from())}),t=f(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(F(o.to(),i.from())>=0){var a=H(o.from(),i.from()),l=P(o.to(),i.to()),s=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new ra(s?l:a,s?a:l))}}return new ta(e,t)}function Br(e,t){return new ta([new ra(e,t||e)],0)}function qr(e){return e.text?W(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ur(e,t){if(F(e,t.from)<0)return e;if(F(e,t.to)<=0)return qr(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+=qr(t).ch-t.to.ch),W(r,n)}function Kr(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new ra(Ur(i.anchor,t),Ur(i.head,t)))}return jr(r,e.sel.primIndex)}function Vr(e,t,r){return e.line==t.line?W(r.line,e.ch-t.ch+r.ch):W(r.line+(e.line-t.line),e.ch)}function Gr(e){e.doc.mode=Ae(e.options,e.doc.modeOption),$r(e)}function $r(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,Or(e,100),e.state.modeGen++,e.curOp&&Sr(e)}function Yr(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Xr(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){!function(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),G(e),$(e,r);var i=n?n(e):1;i!=e.height&&A(e,i)}(e,r,i,n),Xe(e,"change",e,t)}function a(e,t){for(var r=[],o=e;o<t;++o)r.push(new jo(c[o],i(o),n));return r}var l=t.from,s=t.to,c=t.text,u=T(e,l.line),d=T(e,s.line),f=m(c),h=i(c.length-1),p=s.line-l.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if(Yr(e,t)){var g=a(0,c.length-1);o(d,d.text,h),p&&e.remove(l.line,p),g.length&&e.insert(l.line,g)}else if(u==d)if(1==c.length)o(u,u.text.slice(0,l.ch)+f+u.text.slice(s.ch),h);else{var v=a(1,c.length-1);v.push(new jo(f+u.text.slice(s.ch),h,n)),o(u,u.text.slice(0,l.ch)+c[0],i(0)),e.insert(l.line+1,v)}else if(1==c.length)o(u,u.text.slice(0,l.ch)+c[0]+d.text.slice(s.ch),i(0)),e.remove(l.line+1,p);else{o(u,u.text.slice(0,l.ch)+c[0],i(0)),o(d,f+d.text.slice(s.ch),h);var y=a(1,c.length-1);p>1&&e.remove(l.line+1,p-1),e.insert(l.line+1,y)}Xe(e,"change",e,t)}function Zr(e,t,r){function n(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var l=e.linked[a];if(l.doc!=i){var s=o&&l.sharedHist;r&&!s||(t(l.doc,s),n(l.doc,e,s))}}}n(e,null,!0)}function Jr(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Bt(e),Gr(e),Qr(e),e.options.lineWrapping||ce(e),e.options.mode=t.modeOption,Sr(e)}function Qr(e){("rtl"==e.doc.direction?l:co)(e.display.lineDiv,"CodeMirror-rtl")}function en(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 tn(e,t){var r={from:z(t.from),to:qr(t),text:L(e,t.from,t.to)};return ln(e,r,t.from.line,t.to.line+1),Zr(e,function(e){return ln(e,r,t.from.line,t.to.line+1)},!0),r}function rn(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function nn(e,t,r,n){var i=e.history;i.undone.length=0;var o,a,l=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>l-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(rn(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}(i,i.lastOp==n)))a=m(o.changes),0==F(t.from,t.to)&&0==F(t.from,a.to)?a.to=qr(t):o.changes.push(tn(e,t));else{var s=m(i.done);for(s&&s.ranges||an(e.sel,i.done),o={changes:[tn(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||pe(e,"historyAdded")}function on(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,m(i.done),t))?i.done[i.done.length-1]=t:an(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&rn(i.undone)}function an(e,t){var r=m(t);r&&r.ranges&&r.equals(e)||t.push(e)}function ln(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o})}function sn(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 cn(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(sn(r[i]));return n}(e,t),n=K(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],a=n[i];if(o&&a)e:for(var l=0;l<a.length;++l){for(var s=a[l],c=0;c<o.length;++c)if(o[c].marker==s.marker)continue e;o.push(s)}else a&&(r[i]=a)}return r}function un(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?ta.prototype.deepCopy.call(o):o);else{var a=o.changes,l=[];n.push({changes:l});for(var s=0;s<a.length;++s){var c=a[s],u=void 0;if(l.push({from:c.from,to:c.to,text:c.text}),t)for(var d in c)(u=d.match(/^spans_(\d+)$/))&&f(t,Number(u[1]))>-1&&(m(l)[d]=c[d],delete c[d])}}}return n}function dn(e,t,r,n){if(n){var i=e.anchor;if(r){var o=F(t,i)<0;o!=F(r,i)<0?(i=t,t=r):o!=F(t,r)<0&&(t=r)}return new ra(i,t)}return new ra(r||t,t)}function fn(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),vn(e,new ta([dn(e.sel.primary(),t,r,i)],0),n)}function hn(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]=dn(e.sel.ranges[o],t[o],null,i);vn(e,jr(n,e.sel.primIndex),r)}function pn(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,vn(e,jr(i,e.sel.primIndex),n)}function mn(e,t,r,n){vn(e,Br(t,r),n)}function gn(e,t,r){var n=e.history.done,i=m(n);i&&i.ranges?(n[n.length-1]=t,yn(e,t,r)):vn(e,t,r)}function vn(e,t,r){yn(e,t,r),on(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function yn(e,t,r){(ve(e,"beforeSelectionChange")||e.cm&&ve(e.cm,"beforeSelectionChange"))&&(t=function(e,t,r){var n={ranges:t.ranges,update:function(t){this.ranges=[];for(var r=0;r<t.length;r++)this.ranges[r]=new ra(R(e,t[r].anchor),R(e,t[r].head))},origin:r&&r.origin};return pe(e,"beforeSelectionChange",e,n),e.cm&&pe(e.cm,"beforeSelectionChange",e.cm,n),n.ranges!=t.ranges?jr(n.ranges,n.ranges.length-1):t}(e,t,r));bn(e,xn(e,t,r&&r.bias||(F(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||lr(e.cm)}function bn(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,ge(e.cm)),Xe(e,"cursorActivity",e))}function wn(e){bn(e,xn(e,e.sel,null,!1))}function xn(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],l=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],s=Cn(e,a.anchor,l&&l.anchor,r,n),c=Cn(e,a.head,l&&l.head,r,n);(i||s!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new ra(s,c))}return i?jr(i,t.primIndex):t}function kn(e,t,r,n,i){var o=T(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var l=o.markedSpans[a],s=l.marker;if((null==l.from||(s.inclusiveLeft?l.from<=t.ch:l.from<t.ch))&&(null==l.to||(s.inclusiveRight?l.to>=t.ch:l.to>t.ch))){if(i&&(pe(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(r){var c=s.find(n<0?1:-1),u=void 0;if((n<0?s.inclusiveRight:s.inclusiveLeft)&&(c=Sn(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=F(c,r))&&(n<0?u<0:u>0))return kn(e,c,t,n,i)}var d=s.find(n<0?-1:1);return(n<0?s.inclusiveLeft:s.inclusiveRight)&&(d=Sn(e,d,n,d.line==t.line?o:null)),d?kn(e,d,t,n,i):null}}return t}function Cn(e,t,r,n,i){var o=n||1,a=kn(e,t,r,o,i)||!i&&kn(e,t,r,o,!0)||kn(e,t,r,-o,i)||!i&&kn(e,t,r,-o,!0);return a||(e.cantEdit=!0,W(e.first,0))}function Sn(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?R(e,W(t.line-1)):null:r>0&&t.ch==(n||T(e,t.line)).text.length?t.line<e.first+e.size-1?W(t.line+1,0):null:new W(t.line,t.ch+r)}function Tn(e){e.setSelection(W(e.firstLine(),0),W(e.lastLine()),vo)}function Ln(e,t,r){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return n.canceled=!0}};return r&&(n.update=function(t,r,i,o){t&&(n.from=R(e,t)),r&&(n.to=R(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),pe(e,"beforeChange",e,n),e.cm&&pe(e.cm,"beforeChange",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function Mn(e,t,r){if(e.cm){if(!e.cm.curOp)return xr(e.cm,Mn)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(ve(e,"beforeChange")||e.cm&&ve(e.cm,"beforeChange"))||(t=Ln(e,t,!0))){var n=Co&&!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!=f(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],l=a.find(0),s=0;s<i.length;++s){var c=i[s];if(!(F(c.to,l.from)<0||F(c.from,l.to)>0)){var u=[s,1],d=F(c.from,l.from),h=F(c.to,l.to);(d<0||!a.inclusiveLeft&&!d)&&u.push({from:c.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:l.to,to:c.to}),i.splice.apply(i,u),s+=u.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)An(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else An(e,t)}}function An(e,t){if(1!=t.text.length||""!=t.text[0]||0!=F(t.from,t.to)){var r=Kr(e,t);nn(e,t,r,e.cm?e.cm.curOp.id:NaN),_n(e,t,r,K(e,t));var n=[];Zr(e,function(e,r){r||-1!=f(n,e.history)||(Dn(e.history,t),n.push(e.history)),_n(e,t,null,K(e,t))})}}function On(e,t,r){if(!e.cm||!e.cm.state.suppressEdits||r){for(var n,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,l="undo"==t?i.undone:i.done,s=0;s<a.length&&(n=a[s],r?!n.ranges||n.equals(e.sel):n.ranges);s++);if(s!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;(n=a.pop()).ranges;){if(an(n,l),r&&!n.equals(e.sel))return void vn(e,n,{clearRedo:!1});o=n}var c=[];an(o,l),l.push({changes:c,generation:i.generation}),i.generation=n.generation||++i.maxGeneration;for(var u=ve(e,"beforeChange")||e.cm&&ve(e.cm,"beforeChange"),d=function(r){var i=n.changes[r];if(i.origin=t,u&&!Ln(e,i,!1))return a.length=0,{};c.push(tn(e,i));var o=r?Kr(e,i):m(a);_n(e,i,o,cn(e,i)),!r&&e.cm&&e.cm.scrollIntoView({from:i.from,to:qr(i)});var l=[];Zr(e,function(e,t){t||-1!=f(l,e.history)||(Dn(e.history,i),l.push(e.history)),_n(e,i,null,cn(e,i))})},h=n.changes.length-1;h>=0;--h){var p=d(h);if(p)return p.v}}}}function Nn(e,t){if(0!=t&&(e.first+=t,e.sel=new ta(g(e.sel.ranges,function(e){return new ra(W(e.anchor.line+t,e.anchor.ch),W(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Sr(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)Tr(e.cm,n,"gutter")}}function _n(e,t,r,n){if(e.cm&&!e.cm.curOp)return xr(e.cm,_n)(e,t,r,n);if(t.to.line<e.first)Nn(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);Nn(e,i),t={from:W(e.first,0),to:W(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:W(o,T(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=L(e,t.from,t.to),r||(r=Kr(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,l=!1,s=o.line;e.options.lineWrapping||(s=O(re(T(n,o.line))),n.iter(s,a.line+1,function(e){if(e==i.maxLine)return l=!0,!0}));n.sel.contains(t.from,t.to)>-1&&ge(e);Xr(n,t,r,jt(e)),e.options.lineWrapping||(n.iter(s,o.line+t.text.length,function(e){var t=se(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,l=!1)}),l&&(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;n>r;n--){var i=T(e,n).stateAfter;if(i&&(!(i instanceof Ho)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}})(n,o.line),Or(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?Sr(e):o.line!=a.line||1!=t.text.length||Yr(e.doc,t)?Sr(e,o.line,a.line+1,c):Tr(e,o.line,"text");var u=ve(e,"changes"),d=ve(e,"change");if(d||u){var f={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};d&&Xe(e,"change",e,f),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}(e.cm,t,n):Xr(e,t,n),yn(e,r,vo)}}function En(e,t,r,n,i){if(n||(n=r),F(n,r)<0){var o;r=(o=[n,r])[0],n=o[1]}"string"==typeof t&&(t=e.splitLines(t)),Mn(e,{from:r,to:n,text:t,origin:i})}function Wn(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function Fn(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 l=0;l<o.ranges.length;l++)Wn(o.ranges[l].anchor,t,r,n),Wn(o.ranges[l].head,t,r,n)}else{for(var s=0;s<o.changes.length;++s){var c=o.changes[s];if(r<c.from.line)c.from=W(c.from.line+n,c.from.ch),c.to=W(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 Dn(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;Fn(e.done,r,n,i),Fn(e.undone,r,n,i)}function zn(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=T(e,I(e,t)):i=O(t),null==i?null:(n(o,i)&&e.cm&&Tr(e.cm,i,r),o)}function Pn(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 Hn(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}function In(e,t,r){le(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&ar(e,r)}function Rn(e,t,r,n,o){if(n&&n.shared)return function(e,t,r,n,i){(n=u(n)).shared=!1;var o=[Rn(e,t,r,n,i)],a=o[0],l=n.widgetNode;return Zr(e,function(e){l&&(n.widgetNode=l.cloneNode(!0)),o.push(Rn(e,R(e,t),R(e,r),n,i));for(var s=0;s<e.linked.length;++s)if(e.linked[s].isParent)return;a=m(o)}),new aa(o,a)}(e,t,r,n,o);if(e.cm&&!e.cm.curOp)return xr(e.cm,Rn)(e,t,r,n,o);var a=new oa(e,o),l=F(t,r);if(n&&u(n,a,!1),l>0||0==l&&!1!==a.clearWhenEmpty)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=i("span",[a.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(te(e,t.line,t,r,a)||t.line!=r.line&&te(e,r.line,t,r,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");So=!0}a.addToHistory&&nn(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,c=t.line,d=e.cm;if(e.iter(c,r.line+1,function(e){d&&a.collapsed&&!d.options.lineWrapping&&re(e)==d.display.maxLine&&(s=!0),a.collapsed&&c!=t.line&&A(e,0),function(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}(e,new B(a,c==t.line?t.ch:null,c==r.line?r.ch:null)),++c}),a.collapsed&&e.iter(t.line,r.line+1,function(t){oe(e,t)&&A(t,0)}),a.clearOnEnter&&Ao(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(Co=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++ia,a.atomic=!0),d){if(s&&(d.curOp.updateMaxLine=!0),a.collapsed)Sr(d,t.line,r.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var f=t.line;f<=r.line;f++)Tr(d,f,"text");a.atomic&&wn(d.doc),Xe(d,"markerAdded",d,a)}return a}function jn(e){return e.findMarks(W(e.first,0),e.clipPos(W(e.lastLine())),function(e){return e.parent})}function Bn(e){for(var t=function(t){var r=e[t],n=[r.primary.doc];Zr(r.primary.doc,function(e){return n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];-1==f(n,o.doc)&&(o.parent=null,r.markers.splice(i--,1))}},r=0;r<e.length;r++)t(r)}function qn(e){var t=this;if(Un(t),!me(t,e)&&!lt(t.display,e)){be(e),Ui&&(ca=+new Date);var r=qt(t,e,!0),n=e.dataTransfer.files;if(r&&!t.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),a=0,l=function(e,n){if(!t.options.allowDropFileTypes||-1!=f(t.options.allowDropFileTypes,e.type)){var l=new FileReader;l.onload=xr(t,function(){var e=l.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[n]=e,++a==i){var s={from:r=R(t.doc,r),to:r,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Mn(t.doc,s),gn(t.doc,Br(r,qr(s)))}}),l.readAsText(e)}},s=0;s<i;++s)l(n[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(r)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var c=e.dataTransfer.getData("Text");if(c){var u;if(t.state.draggingText&&!t.state.draggingText.copy&&(u=t.listSelections()),yn(t.doc,Br(r,r)),u)for(var d=0;d<u.length;++d)En(t.doc,"",u[d].anchor,u[d].head,"drag");t.replaceSelection(c,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Un(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Kn(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}function Vn(){ua||(!function(){var e;Ao(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Kn(Gn)},100))}),Ao(window,"blur",function(){return Kn(Qt)})}(),ua=!0)}function Gn(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 $n(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var r,n,i,o,a=0;a<t.length-1;a++){var l=t[a];if(/^(cmd|meta|m)$/i.test(l))o=!0;else if(/^a(lt)?$/i.test(l))r=!0;else if(/^(c|ctrl|control)$/i.test(l))n=!0;else{if(!/^s(hift)?$/i.test(l))throw new Error("Unrecognized modifier name: "+l);i=!0}}return r&&(e="Alt-"+e),n&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function Yn(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if("..."==n){delete e[r];continue}for(var i=g(r.split(" "),$n),o=0;o<i.length;o++){var a=void 0,l=void 0;o==i.length-1?(l=i.join(" "),a=n):(l=i.slice(0,o+1).join(" "),a="...");var s=t[l];if(s){if(s!=a)throw new Error("Inconsistent bindings for "+l)}else t[l]=a}delete e[r]}for(var c in t)e[c]=t[c];return e}function Xn(e,t,r,n){var i=(t=ei(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 Xn(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var a=Xn(e,t.fallthrough[o],r,n);if(a)return a}}}function Zn(e){var t="string"==typeof e?e:da[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function Jn(e,t,r){var n=e;return t.altKey&&"Alt"!=n&&(e="Alt-"+e),(lo?t.metaKey:t.ctrlKey)&&"Ctrl"!=n&&(e="Ctrl-"+e),(lo?t.ctrlKey:t.metaKey)&&"Cmd"!=n&&(e="Cmd-"+e),!r&&t.shiftKey&&"Shift"!=n&&(e="Shift-"+e),e}function Qn(e,t){if(Yi&&34==e.keyCode&&e.char)return!1;var r=da[e.keyCode];return null!=r&&!e.altGraphKey&&Jn(r,e,t)}function ei(e){return"string"==typeof e?ma[e]:e}function ti(e,t){for(var r=e.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=t(r[i]);n.length&&F(o.from,m(n).to)<=0;){var a=n.pop();if(F(a.from,o.from)<0){o.from=a.from;break}}n.push(o)}wr(e,function(){for(var t=n.length-1;t>=0;t--)En(e.doc,"",n[t].from,n[t].to,"+delete");lr(e)})}function ri(e,t,r){var n=C(e.text,t+r,r);return n<0||n>e.text.length?null:n}function ni(e,t,r){var n=ri(e,t.ch,r);return null==n?null:new W(t.line,n,r<0?"after":"before")}function ii(e,t,r,n,i){if(e){var o=de(r,t.doc.direction);if(o){var a,l=i<0?m(o):o[0],s=i<0==(1==l.level)?"after":"before";if(l.level>0||"rtl"==t.doc.direction){var c=vt(t,r);a=i<0?r.text.length-1:0;var u=yt(t,c,a).top;a=S(function(e){return yt(t,c,e).top==u},i<0==(1==l.level)?l.from:l.to-1,a),"before"==s&&(a=ri(r,a,1))}else a=i<0?l.to:l.from;return new W(n,a,s)}}return new W(n,i<0?r.text.length:0,i<0?"before":"after")}function oi(e,t){var r=T(e.doc,t),n=re(r);return n!=r&&(t=O(n)),ii(!0,e,n,t,1)}function ai(e,t){var r=T(e.doc,t),n=function(e){for(var t;t=ee(e);)e=t.find(1,!0).line;return e}(r);return n!=r&&(t=O(n)),ii(!0,e,r,t,-1)}function li(e,t){var r=oi(e,t.line),n=T(e.doc,r.line),i=de(n,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\S/)),a=t.line==r.line&&t.ch<=o&&t.ch;return W(r.line,a?0:o,r.sticky)}return r}function si(e,t,r){if("string"==typeof t&&!(t=ga[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)!=go}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}function ci(e,t,r,n){var i=e.state.keySeq;if(i){if(Zn(t))return"handled";if(/\'$/.test(t)?e.state.keySeq=null:va.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),ui(e,i+" "+t,r,n))return!0}return ui(e,t,r,n)}function ui(e,t,r,n){var i=function(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=Xn(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&Xn(t,e.options.extraKeys,r,e)||Xn(t,e.options.keyMap,r,e)}(e,t,n);return"multi"==i&&(e.state.keySeq=t),"handled"==i&&Xe(e,"keyHandled",e,t,r),"handled"!=i&&"multi"!=i||(be(r),Yt(e)),!!i}function di(e,t){var r=Qn(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?ci(e,"Shift-"+r,t,function(t){return si(e,t,!0)})||ci(e,r,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return si(e,t)}):ci(e,r,t,function(t){return si(e,t)}))}function fi(e){if(this.curOp.focus=a(),!me(this,e)){Ui&&Ki<11&&27==e.keyCode&&(e.returnValue=!1);var t=e.keyCode;this.display.shift=16==t||e.shiftKey;var r=di(this,e);Yi&&(ya=r?t:null,!r&&88==t&&!Eo&&(ro?e.metaKey:e.ctrlKey)&&this.replaceSelection("",null,"cut")),18!=t||/\bCodeMirror-crosshair\b/.test(this.display.lineDiv.className)||function(e){function t(e){18!=e.keyCode&&e.altKey||(co(r,"CodeMirror-crosshair"),he(document,"keyup",t),he(document,"mouseover",t))}var r=e.display.lineDiv;l(r,"CodeMirror-crosshair");Ao(document,"keyup",t),Ao(document,"mouseover",t)}(this)}}function hi(e){16==e.keyCode&&(this.doc.sel.shift=!1),me(this,e)}function pi(e){if(!(lt(this.display,e)||me(this,e)||e.ctrlKey&&!e.altKey||ro&&e.metaKey)){var t=e.keyCode,r=e.charCode;if(Yi&&t==ya)return ya=null,void be(e);if(!Yi||e.which&&!(e.which<10)||!di(this,e)){var n=String.fromCharCode(null==r?t:r);"\b"!=n&&(function(e,t,r){return ci(e,"'"+r+"'",t,function(t){return si(e,t,!0)})}(this,e,n)||this.display.input.onKeyPress(e))}}}function mi(e){var t=this.display;if(!(me(this,e)||t.activeTouch&&t.input.supportsTouch()))if(t.input.ensurePolled(),t.shift=e.shiftKey,lt(t,e))Vi||(t.scroller.draggable=!1,setTimeout(function(){return t.scroller.draggable=!0},100));else if(!yi(this,e)){var r=qt(this,e),n=Se(e),i=r?function(e,t){var r=+new Date;return xa&&xa.compare(r,e,t)?(wa=xa=null,"triple"):wa&&wa.compare(r,e,t)?(xa=new ba(r,e,t),wa=null,"double"):(wa=new ba(r,e,t),xa=null,"single")}(r,n):"single";window.focus(),1==n&&this.state.selectingText&&this.state.selectingText(e),r&&function(e,t,r,n,i){var o="Click";"double"==n?o="Double"+o:"triple"==n&&(o="Triple"+o);return o=(1==t?"Left":2==t?"Middle":"Right")+o,ci(e,Jn(o,i),i,function(t){if("string"==typeof t&&(t=ga[t]),!t)return!1;var n=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n=t(e,r)!=go}finally{e.state.suppressEdits=!1}return n})}(this,n,r,i,e)||(1==n?r?function(e,t,r,n){Ui?setTimeout(c(Xt,e),0):e.curOp.focus=a();var i,o=function(e,t,r){var n=e.getOption("configureMouse"),i=n?n(e,t,r):{};if(null==i.unit){var o=no?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=ro?r.metaKey:r.ctrlKey);null==i.moveOnDrag&&(i.moveOnDrag=!(ro?r.altKey:r.ctrlKey));return i}(e,r,n),l=e.doc.sel;e.options.dragDrop&&Oo&&!e.isReadOnly()&&"single"==r&&(i=l.contains(t))>-1&&(F((i=l.ranges[i]).from(),t)<0||t.xRel>0)&&(F(i.to(),t)>0||t.xRel<0)?function(e,t,r,n){var i=e.display,o=!1,a=xr(e,function(t){Vi&&(i.scroller.draggable=!1),e.state.draggingText=!1,he(document,"mouseup",a),he(document,"mousemove",l),he(i.scroller,"dragstart",s),he(i.scroller,"drop",a),o||(be(t),n.addNew||fn(e.doc,r,null,null,n.extend),Vi||Ui&&9==Ki?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())}),l=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},s=function(){return o=!0};Vi&&(i.scroller.draggable=!0);e.state.draggingText=a,a.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop();Ao(document,"mouseup",a),Ao(document,"mousemove",l),Ao(i.scroller,"dragstart",s),Ao(i.scroller,"drop",a),Zt(e),setTimeout(function(){return i.input.focus()},20)}(e,n,t,o):function(e,t,r,n){function i(t){if(0!=F(v,t))if(v=t,"rectangle"==n.unit){for(var i=[],o=e.options.tabSize,a=d(T(c,r.line).text,r.ch,o),l=d(T(c,t.line).text,t.ch,o),s=Math.min(a,l),m=Math.max(a,l),g=Math.min(r.line,t.line),y=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=y;g++){var b=T(c,g).text,w=h(b,s,o);s==m?i.push(new ra(W(g,w),W(g,w))):b.length>w&&i.push(new ra(W(g,w),W(g,h(b,m,o))))}i.length||i.push(new ra(r,r)),vn(c,jr(p.ranges.slice(0,f).concat(i),f),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var x,k=u,C=gi(e,t,n.unit),S=k.anchor;F(C.anchor,S)>0?(x=C.head,S=H(k.from(),C.anchor)):(x=C.anchor,S=P(k.to(),C.head));var L=p.ranges.slice(0);L[f]=function(e,t){var r=t.anchor,n=t.head,i=T(e.doc,r.line);if(0==F(r,n)&&r.sticky==n.sticky)return t;var o=de(i);if(!o)return t;var a=ue(o,r.ch,r.sticky),l=o[a];if(l.from!=r.ch&&l.to!=r.ch)return t;var s=a+(l.from==r.ch==(1!=l.level)?0:1);if(0==s||s==o.length)return t;var c;if(n.line!=r.line)c=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var u=ue(o,n.ch,n.sticky),d=u-a||(n.ch-r.ch)*(1==l.level?-1:1);c=u==s-1||u==s?d<0:d>0}var f=o[s+(c?-1:0)],h=c==(1==f.level),p=h?f.from:f.to,m=h?"after":"before";return r.ch==p&&r.sticky==m?t:new ra(new W(r.line,p,m),n)}(e,new ra(R(c,S),x)),vn(c,jr(L,f),yo)}}function o(t){var r=++b,l=qt(e,t,!0,"rectangle"==n.unit);if(l)if(0!=F(l,v)){e.curOp.focus=a(),i(l);var u=rr(s,c);(l.line>=u.to||l.line<u.from)&&setTimeout(xr(e,function(){b==r&&o(t)}),150)}else{var d=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;d&&setTimeout(xr(e,function(){b==r&&(s.scroller.scrollTop+=d,o(t))}),50)}}function l(t){e.state.selectingText=!1,b=1/0,be(t),s.input.focus(),he(document,"mousemove",w),he(document,"mouseup",x),c.history.lastSelOrigin=null}var s=e.display,c=e.doc;be(t);var u,f,p=c.sel,m=p.ranges;n.addNew&&!n.extend?(f=c.sel.contains(r),u=f>-1?m[f]:new ra(r,r)):(u=c.sel.primary(),f=c.sel.primIndex);if("rectangle"==n.unit)n.addNew||(u=new ra(r,r)),r=qt(e,t,!0,!0),f=-1;else{var g=gi(e,r,n.unit);u=n.extend?dn(u,g.anchor,g.head,n.extend):g}n.addNew?-1==f?(f=m.length,vn(c,jr(m.concat([u]),f),{scroll:!1,origin:"*mouse"})):m.length>1&&m[f].empty()&&"char"==n.unit&&!n.extend?(vn(c,jr(m.slice(0,f).concat(m.slice(f+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):pn(c,f,u,yo):(f=0,vn(c,new ta([u],0),yo),p=c.sel);var v=r;var y=s.wrapper.getBoundingClientRect(),b=0;var w=xr(e,function(e){Se(e)?o(e):l(e)}),x=xr(e,l);e.state.selectingText=x,Ao(document,"mousemove",w),Ao(document,"mouseup",x)}(e,n,t,o)}(this,r,i,e):Ce(e)==t.scroller&&be(e):2==n?(r&&fn(this.doc,r),setTimeout(function(){return t.input.focus()},20)):3==n&&(so?bi(this,e):Zt(this)))}}function gi(e,t,r){if("char"==r)return new ra(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new ra(W(t.line,0),R(e.doc,W(t.line+1,0)));var n=r(e,t);return new ra(n.from,n.to)}function vi(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&&be(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!ve(e,r))return xe(t);o-=l.top-a.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var c=a.gutters.childNodes[s];if(c&&c.getBoundingClientRect().right>=i){return pe(e,r,e,N(e.doc,o),e.options.gutters[s],t),xe(t)}}}function yi(e,t){return vi(e,t,"gutterClick",!0)}function bi(e,t){lt(e.display,t)||function(e,t){if(!ve(e,"gutterContextMenu"))return!1;return vi(e,t,"gutterContextMenu",!1)}(e,t)||me(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function wi(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Ct(e)}function xi(e){zr(e),Sr(e),nr(e)}function ki(e,t,r){if(!t!=!(r&&r!=ka)){var n=e.display.dragFunctions,i=t?Ao:he;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 Ci(e){e.options.lineWrapping?(l(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(co(e.display.wrapper,"CodeMirror-wrap"),ce(e)),Bt(e),Sr(e),Ct(e),setTimeout(function(){return mr(e)},100)}function Si(e,t){var o=this;if(!(this instanceof Si))return new Si(e,t);this.options=t=t?u(t):{},u(Ca,t,!1),Pr(t);var a=t.value;"string"==typeof a&&(a=new sa(a,t.mode,null,t.lineSeparator,t.direction)),this.doc=a;var l=new Si.inputStyles[t.inputStyle](this),s=this.display=new function(e,t,r){this.input=r,this.scrollbarFiller=n("div",null,"CodeMirror-scrollbar-filler"),this.scrollbarFiller.setAttribute("cm-not-content","true"),this.gutterFiller=n("div",null,"CodeMirror-gutter-filler"),this.gutterFiller.setAttribute("cm-not-content","true"),this.lineDiv=i("div",null,"CodeMirror-code"),this.selectionDiv=n("div",null,null,"position: relative; z-index: 1"),this.cursorDiv=n("div",null,"CodeMirror-cursors"),this.measure=n("div",null,"CodeMirror-measure"),this.lineMeasure=n("div",null,"CodeMirror-measure"),this.lineSpace=i("div",[this.measure,this.lineMeasure,this.selectionDiv,this.cursorDiv,this.lineDiv],null,"position: relative; outline: none");var o=i("div",[this.lineSpace],"CodeMirror-lines");this.mover=n("div",[o],null,"position: relative"),this.sizer=n("div",[this.mover],"CodeMirror-sizer"),this.sizerWidth=null,this.heightForcer=n("div",null,null,"position: absolute; height: "+mo+"px; width: 1px;"),this.gutters=n("div",null,"CodeMirror-gutters"),this.lineGutter=null,this.scroller=n("div",[this.sizer,this.heightForcer,this.gutters],"CodeMirror-scroll"),this.scroller.setAttribute("tabIndex","-1"),this.wrapper=n("div",[this.scrollbarFiller,this.gutterFiller,this.scroller],"CodeMirror"),Ui&&Ki<8&&(this.gutters.style.zIndex=-1,this.scroller.style.paddingRight=0),Vi||Ri&&to||(this.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(this.wrapper):e(this.wrapper)),this.viewFrom=this.viewTo=t.first,this.reportedViewFrom=this.reportedViewTo=t.first,this.view=[],this.renderedView=null,this.externalMeasured=null,this.viewOffset=0,this.lastWrapHeight=this.lastWrapWidth=0,this.updateLineNumbers=null,this.nativeBarWidth=this.barHeight=this.barWidth=0,this.scrollbarsClipped=!1,this.lineNumWidth=this.lineNumInnerWidth=this.lineNumChars=null,this.alignWidgets=!1,this.cachedCharWidth=this.cachedTextHeight=this.cachedPaddingH=null,this.maxLine=null,this.maxLineLength=0,this.maxLineChanged=!1,this.wheelDX=this.wheelDY=this.wheelStartX=this.wheelStartY=null,this.shift=!1,this.selForContextMenu=null,this.activeTouch=null,r.init(this)}(e,a,l);s.wrapper.CodeMirror=this,zr(this),wi(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),vr(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 fo,keySeq:null,specialChars:null},t.autofocus&&!to&&s.input.focus(),Ui&&Ki<11&&setTimeout(function(){return o.display.input.reset(!0)},20),function(e){function t(){o.activeTouch&&(a=setTimeout(function(){return o.activeTouch=null},1e3),(l=o.activeTouch).end=+new Date)}function i(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}var o=e.display;Ao(o.scroller,"mousedown",xr(e,mi)),Ui&&Ki<11?Ao(o.scroller,"dblclick",xr(e,function(t){if(!me(e,t)){var r=qt(e,t);if(r&&!yi(e,t)&&!lt(e.display,t)){be(t);var n=e.findWordAt(r);fn(e.doc,n.anchor,n.head)}}})):Ao(o.scroller,"dblclick",function(t){return me(e,t)||be(t)});so||Ao(o.scroller,"contextmenu",function(t){return bi(e,t)});var a,l={end:0};Ao(o.scroller,"touchstart",function(t){if(!me(e,t)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(t)&&!yi(e,t)){o.input.ensurePolled(),clearTimeout(a);var r=+new Date;o.activeTouch={start:r,moved:!1,prev:r-l.end<=300?l:null},1==t.touches.length&&(o.activeTouch.left=t.touches[0].pageX,o.activeTouch.top=t.touches[0].pageY)}}),Ao(o.scroller,"touchmove",function(){o.activeTouch&&(o.activeTouch.moved=!0)}),Ao(o.scroller,"touchend",function(r){var n=o.activeTouch;if(n&&!lt(o,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var a,l=e.coordsChar(o.activeTouch,"page");a=!n.prev||i(n,n.prev)?new ra(l,l):!n.prev.prev||i(n,n.prev.prev)?e.findWordAt(l):new ra(W(l.line,0),R(e.doc,W(l.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),be(r)}t()}),Ao(o.scroller,"touchcancel",t),Ao(o.scroller,"scroll",function(){o.scroller.clientHeight&&(dr(e,o.scroller.scrollTop),hr(e,o.scroller.scrollLeft,!0),pe(e,"scroll",e))}),Ao(o.scroller,"mousewheel",function(t){return Rr(e,t)}),Ao(o.scroller,"DOMMouseScroll",function(t){return Rr(e,t)}),Ao(o.wrapper,"scroll",function(){return o.wrapper.scrollTop=o.wrapper.scrollLeft=0}),o.dragFunctions={enter:function(t){me(e,t)||ke(t)},over:function(t){me(e,t)||(!function(e,t){var i=qt(e,t);if(i){var o=document.createDocumentFragment();Gt(e,i,o),e.display.dragCursor||(e.display.dragCursor=n("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),r(e.display.dragCursor,o)}}(e,t),ke(t))},start:function(t){return function(e,t){if(Ui&&(!e.state.draggingText||+new Date-ca<100))ke(t);else if(!me(e,t)&&!lt(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!Xi)){var r=n("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",Yi&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),Yi&&r.parentNode.removeChild(r)}}(e,t)},drop:xr(e,qn),leave:function(t){me(e,t)||Un(e)}};var s=o.input.getField();Ao(s,"keyup",function(t){return hi.call(e,t)}),Ao(s,"keydown",xr(e,fi)),Ao(s,"keypress",xr(e,pi)),Ao(s,"focus",function(t){return Jt(e,t)}),Ao(s,"blur",function(t){return Qt(e,t)})}(this),Vn(),yr(this),this.curOp.forceUpdate=!0,Jr(this,a),t.autofocus&&!to||this.hasFocus()?setTimeout(c(Jt,this),20):Qt(this);for(var d in Sa)Sa.hasOwnProperty(d)&&Sa[d](o,t[d],ka);ir(this),t.finishInit&&t.finishInit(this);for(var f=0;f<Ta.length;++f)Ta[f](o);br(this),Vi&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(s.lineDiv).textRendering&&(s.lineDiv.style.textRendering="auto")}function Ti(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=De(e,t).state:r="prev");var a=e.options.tabSize,l=T(o,t),s=d(l.text,null,a);l.stateAfter&&(l.stateAfter=null);var c,u=l.text.match(/^\s*/)[0];if(n||/\S/.test(l.text)){if("smart"==r&&((c=o.mode.indent(i,l.text.slice(u.length),l.text))==go||c>150)){if(!n)return;r="prev"}}else c=0,r="not";"prev"==r?c=t>o.first?d(T(o,t-1).text,null,a):0:"add"==r?c=s+e.options.indentUnit:"subtract"==r?c=s-e.options.indentUnit:"number"==typeof r&&(c=s+r),c=Math.max(0,c);var f="",h=0;if(e.options.indentWithTabs)for(var m=Math.floor(c/a);m;--m)h+=a,f+="\t";if(h<c&&(f+=p(c-h)),f!=u)return En(o,f,W(t,0),W(t,u.length),"+input"),l.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var v=o.sel.ranges[g];if(v.head.line==t&&v.head.ch<u.length){var y=W(t,u.length);pn(o,g,new ra(y,y));break}}}function Li(e){La=e}function Mi(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var a=e.state.pasteIncoming||"paste"==i,l=No(t),s=null;if(a&&n.ranges.length>1)if(La&&La.text.join("\n")==t){if(n.ranges.length%La.text.length==0){s=[];for(var c=0;c<La.text.length;c++)s.push(o.splitLines(La.text[c]))}}else l.length==n.ranges.length&&e.options.pasteLinesPerSelection&&(s=g(l,function(e){return[e]}));for(var u,d=n.ranges.length-1;d>=0;d--){var f=n.ranges[d],h=f.from(),p=f.to();f.empty()&&(r&&r>0?h=W(h.line,h.ch-r):e.state.overwrite&&!a?p=W(p.line,Math.min(T(o,p.line).text.length,p.ch+m(l).length)):La&&La.lineWise&&La.text.join("\n")==t&&(h=p=W(h.line,0))),u=e.curOp.updateInput;var v={from:h,to:p,text:s?s[d%s.length]:l,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};Mn(e.doc,v),Xe(e,"inputRead",e,v)}t&&!a&&Oi(e,t),lr(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Ai(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||wr(t,function(){return Mi(t,r,0,null,"paste")}),!0}function Oi(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l<o.electricChars.length;l++)if(t.indexOf(o.electricChars.charAt(l))>-1){a=Ti(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(T(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ti(e,i.head.line,"smart"));a&&Xe(e,"electricInput",e,i.head.line)}}}function Ni(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:W(i,0),head:W(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function _i(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Ei(){var e=n("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=n("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return Vi?e.style.width="1000px":e.setAttribute("wrap","off"),Qi&&(e.style.border="1px solid black"),_i(e),t}function Wi(e,t,r,n,i){function o(n){var o;if(null==(o=i?function(e,t,r,n){var i=de(t,e.doc.direction);if(!i)return ni(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=ue(i,r.ch,r.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(n>0?a.to>r.ch:a.from<r.ch))return ni(t,r,n);var l,s=function(e,r){return ri(t,e instanceof W?e.ch:e,r)},c=function(r){return e.options.lineWrapping?(l=l||vt(e,t),Dt(e,t,l,r)):{begin:0,end:t.text.length}},u=c("before"==r.sticky?s(r,-1):r.ch);if("rtl"==e.doc.direction||1==a.level){var d=1==a.level==n<0,f=s(r,d?1:-1);if(null!=f&&(d?f<=a.to&&f<=u.end:f>=a.from&&f>=u.begin)){var h=d?"before":"after";return new W(r.line,f,h)}}var p=function(e,t,n){for(var o=function(e,t){return t?new W(r.line,s(e,1),"before"):new W(r.line,e,"after")};e>=0&&e<i.length;e+=t){var a=i[e],l=t>0==(1!=a.level),c=l?n.begin:s(n.end,-1);if(a.from<=c&&c<a.to)return o(c,l);if(c=l?a.from:s(a.to,-1),n.begin<=c&&c<n.end)return o(c,l)}},m=p(o+n,n,u);if(m)return m;var g=n>0?u.end:s(u.begin,-1);return null==g||n>0&&g==t.text.length||!(m=p(n>0?0:i.length-1,n,c(g)))?null:m}(e.cm,s,t,r):ni(s,t,r))){if(n||!function(){var n=t.line+r;return!(n<e.first||n>=e.first+e.size)&&(t=new W(n,t.ch,t.sticky),s=T(e,n))}())return!1;t=ii(i,e.cm,s,t.line,r)}else t=o;return!0}var a=t,l=r,s=T(e,t.line);if("char"==n)o();else if("column"==n)o(!0);else if("word"==n||"group"==n)for(var c=null,u="group"==n,d=e.cm&&e.cm.getHelper(t,"wordChars"),f=!0;!(r<0)||o(!f);f=!1){var h=s.text.charAt(t.ch)||"\n",p=w(h,d)?"w":u&&"\n"==h?"n":!u||/\s/.test(h)?null:"p";if(!u||f||p||(p="s"),c&&c!=p){r<0&&(r=1,o(),t.sticky="after");break}if(p&&(c=p),r>0&&!o(!f))break}var m=Cn(e,t,a,l,!0);return D(a,m)&&(m.hitSide=!0),m}function Fi(e,t,r,n){var i,o=e.doc,a=t.left;if("page"==n){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),s=Math.max(l-.5*Pt(e.display),3);i=(r>0?t.bottom:t.top)+r*s}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(var c;(c=Wt(e,a,i)).outside;){if(r<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*r}return c}function Di(e,t){var r=gt(e,t.line);if(!r||r.hidden)return null;var n=T(e.doc,t.line),i=pt(r,n,t.line),o=de(n,e.doc.direction),a="left";if(o){a=ue(o,t.ch)%2?"right":"left"}var l=bt(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function zi(e,t){return t&&(e.bad=!0),e}function Pi(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return zi(e.clipPos(W(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 a=e.display.view[i];if(a.node==n)return function(e,t,r){function n(t,r,n){for(var i=-1;i<(d?d.length:0);i++)for(var o=i<0?u.map:d[i],a=0;a<o.length;a+=3){var l=o[a+2];if(l==t||l==r){var s=O(i<0?e.line:e.rest[i]),c=o[a]+n;return(n<0||l!=t)&&(c=o[a+(n?1:0)]),W(s,c)}}}var i=e.text.firstChild,a=!1;if(!t||!o(i,t))return zi(W(O(e.line),0),!0);if(t==i&&(a=!0,t=i.childNodes[r],r=0,!t)){var l=e.rest?m(e.rest):e.line;return zi(W(O(l),l.text.length),a)}var s=3==t.nodeType?t:null,c=t;s||1!=t.childNodes.length||3!=t.firstChild.nodeType||(s=t.firstChild,r&&(r=s.nodeValue.length));for(;c.parentNode!=i;)c=c.parentNode;var u=e.measure,d=u.maps;var f=n(s,c,r);if(f)return zi(f,a);for(var h=c.nextSibling,p=s?s.nodeValue.length-r:0;h;h=h.nextSibling){if(f=n(h,h.firstChild,0))return zi(W(f.line,f.ch-p),a);p+=h.textContent.length}for(var g=c.previousSibling,v=r;g;g=g.previousSibling){if(f=n(g,g.firstChild,-1))return zi(W(f.line,f.ch+v),a);v+=g.textContent.length}}(a,t,r)}}var Hi=navigator.userAgent,Ii=navigator.platform,Ri=/gecko\/\d/i.test(Hi),ji=/MSIE \d/.test(Hi),Bi=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Hi),qi=/Edge\/(\d+)/.exec(Hi),Ui=ji||Bi||qi,Ki=Ui&&(ji?document.documentMode||6:+(qi||Bi)[1]),Vi=!qi&&/WebKit\//.test(Hi),Gi=Vi&&/Qt\/\d+\.\d+/.test(Hi),$i=!qi&&/Chrome\//.test(Hi),Yi=/Opera\//.test(Hi),Xi=/Apple Computer/.test(navigator.vendor),Zi=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(Hi),Ji=/PhantomJS/.test(Hi),Qi=!qi&&/AppleWebKit/.test(Hi)&&/Mobile\/\w+/.test(Hi),eo=/Android/.test(Hi),to=Qi||eo||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Hi),ro=Qi||/Mac/.test(Ii),no=/\bCrOS\b/.test(Hi),io=/win/i.test(Ii),oo=Yi&&Hi.match(/Version\/(\d*\.\d*)/);oo&&(oo=Number(oo[1])),oo&&oo>=15&&(Yi=!1,Vi=!0);var ao,lo=ro&&(Gi||Yi&&(null==oo||oo<12.11)),so=Ri||Ui&&Ki>=9,co=function(t,r){var n=t.className,i=e(r).exec(n);if(i){var o=n.slice(i.index+i[0].length);t.className=n.slice(0,i.index)+(o?i[1]+o:"")}};ao=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 uo=function(e){e.select()};Qi?uo=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:Ui&&(uo=function(e){try{e.select()}catch(e){}});var fo=function(){this.id=null};fo.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var ho,po,mo=30,go={toString:function(){return"CodeMirror.Pass"}},vo={scroll:!1},yo={origin:"*mouse"},bo={origin:"+move"},wo=[""],xo=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ko=/[\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]/,Co=!1,So=!1,To=null,Lo=function(){function e(e){return e<=247?r.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?n.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,r){this.level=e,this.from=t,this.to=r}var r="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",n="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,s=/[1n]/;return function(r,n){var c="ltr"==n?"L":"R";if(0==r.length||"ltr"==n&&!i.test(r))return!1;for(var u=r.length,d=[],f=0;f<u;++f)d.push(e(r.charCodeAt(f)));for(var h=0,p=c;h<u;++h){var g=d[h];"m"==g?d[h]=p:p=g}for(var v=0,y=c;v<u;++v){var b=d[v];"1"==b&&"r"==y?d[v]="n":a.test(b)&&(y=b,"r"==b&&(d[v]="R"))}for(var w=1,x=d[0];w<u-1;++w){var k=d[w];"+"==k&&"1"==x&&"1"==d[w+1]?d[w]="1":","!=k||x!=d[w+1]||"1"!=x&&"n"!=x||(d[w]=x),x=k}for(var C=0;C<u;++C){var S=d[C];if(","==S)d[C]="N";else if("%"==S){var T=void 0;for(T=C+1;T<u&&"%"==d[T];++T);for(var L=C&&"!"==d[C-1]||T<u&&"1"==d[T]?"1":"N",M=C;M<T;++M)d[M]=L;C=T-1}}for(var A=0,O=c;A<u;++A){var N=d[A];"L"==O&&"1"==N?d[A]="L":a.test(N)&&(O=N)}for(var _=0;_<u;++_)if(o.test(d[_])){var E=void 0;for(E=_+1;E<u&&o.test(d[E]);++E);for(var W="L"==(_?d[_-1]:c),F=W==("L"==(E<u?d[E]:c))?W?"L":"R":c,D=_;D<E;++D)d[D]=F;_=E-1}for(var z,P=[],H=0;H<u;)if(l.test(d[H])){var I=H;for(++H;H<u&&l.test(d[H]);++H);P.push(new t(0,I,H))}else{var R=H,j=P.length;for(++H;H<u&&"L"!=d[H];++H);for(var B=R;B<H;)if(s.test(d[B])){R<B&&P.splice(j,0,new t(1,R,B));var q=B;for(++B;B<H&&s.test(d[B]);++B);P.splice(j,0,new t(2,q,B)),R=B}else++B;R<H&&P.splice(j,0,new t(1,R,H))}return"ltr"==n&&(1==P[0].level&&(z=r.match(/^\s+/))&&(P[0].from=z[0].length,P.unshift(new t(0,0,z[0].length))),1==m(P).level&&(z=r.match(/\s+$/))&&(m(P).to-=z[0].length,P.push(new t(0,u-z[0].length,u)))),"rtl"==n?P.reverse():P}}(),Mo=[],Ao=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]||Mo).concat(r)}},Oo=function(){if(Ui&&Ki<9)return!1;var e=n("div");return"draggable"in e||"dragDrop"in e}(),No=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/)},_o=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)},Eo=function(){var e=n("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Wo=null,Fo={},Do={},zo={},Po=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};Po.prototype.eol=function(){return this.pos>=this.string.length},Po.prototype.sol=function(){return this.pos==this.lineStart},Po.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Po.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Po.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},Po.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Po.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Po.prototype.skipToEnd=function(){this.pos=this.string.length},Po.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},Po.prototype.backUp=function(e){this.pos-=e},Po.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=d(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},Po.prototype.indentation=function(){return d(this.string,null,this.tabSize)-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},Po.prototype.match=function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&!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},Po.prototype.current=function(){return this.string.slice(this.start,this.pos)},Po.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Po.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Po.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var Ho=function(e,t){this.state=e,this.lookAhead=t},Io=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};Io.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Io.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}},Io.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Io.fromSaved=function(e,t,r){return t instanceof Ho?new Io(e,Ne(e.mode,t.state),r,t.lookAhead):new Io(e,Ne(e.mode,t),r)},Io.prototype.save=function(e){var t=!1!==e?Ne(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Ho(t,this.maxLookAhead):t};var Ro=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r},jo=function(e,t,r){this.text=e,$(this,t),this.height=r?r(this):1};jo.prototype.lineNo=function(){return O(this)},ye(jo);var Bo,qo={},Uo={},Ko=null,Vo=null,Go={left:0,right:0,top:0,bottom:0},$o=function(e,t,r){this.cm=r;var i=this.vert=n("div",[n("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=n("div",[n("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),Ao(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),Ao(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,Ui&&Ki<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};$o.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},$o.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},$o.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},$o.prototype.zeroWidthHack=function(){var e=ro&&!Zi?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new fo,this.disableVert=new fo},$o.prototype.enableZeroWidthBar=function(e,t,r){function n(){var i=e.getBoundingClientRect();("vert"==r?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,n)}e.style.pointerEvents="auto",t.set(1e3,n)},$o.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Yo=function(){};Yo.prototype.update=function(){return{bottom:0,right:0}},Yo.prototype.setScrollLeft=function(){},Yo.prototype.setScrollTop=function(){},Yo.prototype.clear=function(){};var Xo={native:$o,null:Yo},Zo=0,Jo=function(e,t,r){var n=e.display;this.viewport=t,this.visible=rr(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=ft(e),this.force=r,this.dims=It(e),this.events=[]};Jo.prototype.signal=function(e,t){ve(e,t)&&this.events.push(arguments)},Jo.prototype.finish=function(){for(var e=0;e<this.events.length;e++)pe.apply(null,this.events[e])};var Qo=0,ea=null;Ui?ea=-.53:Ri?ea=15:$i?ea=-.7:Xi&&(ea=-1/3);var ta=function(e,t){this.ranges=e,this.primIndex=t};ta.prototype.primary=function(){return this.ranges[this.primIndex]},ta.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(!D(r.anchor,n.anchor)||!D(r.head,n.head))return!1}return!0},ta.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new ra(z(this.ranges[t].anchor),z(this.ranges[t].head));return new ta(e,this.primIndex)},ta.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},ta.prototype.contains=function(e,t){t||(t=e);for(var r=0;r<this.ranges.length;r++){var n=this.ranges[r];if(F(t,n.from())>=0&&F(e,n.to())<=0)return r}return-1};var ra=function(e,t){this.anchor=e,this.head=t};ra.prototype.from=function(){return H(this.anchor,this.head)},ra.prototype.to=function(){return P(this.anchor,this.head)},ra.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Pn.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r=e,n=e+t;r<n;++r){var i=this.lines[r];this.height-=i.height,Be(i),Xe(i,"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}},Hn.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&&(this.children.length>1||!(this.children[0]instanceof Pn))){var l=[];this.collapse(l),this.children=[new Pn(l)],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&&i.lines.length>50){for(var a=i.lines.length%25+25,l=a;l<i.lines.length;){var s=new Pn(i.lines.slice(l,l+=25));i.height-=s.height,this.children.splice(++n,0,s),s.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 Hn(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var r=f(e.parent.children,e);e.parent.children.splice(r+1,0,t)}else{var n=new Hn(e.children);n.parent=e,e.children=[n,t],e=n}t.parent=e.parent}while(e.children.length>10);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 na=function(e,t,r){if(r)for(var n in r)r.hasOwnProperty(n)&&(this[n]=r[n]);this.doc=e,this.node=t};na.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,r=this.line,n=O(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=at(this);A(r,Math.max(0,r.height-o)),e&&(wr(e,function(){In(e,r,-o),Tr(e,n,"widget")}),Xe(e,"lineWidgetCleared",e,this,n))}},na.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=at(this)-t;i&&(A(n,n.height+i),r&&wr(r,function(){r.curOp.forceUpdate=!0,In(r,n,i),Xe(r,"lineWidgetChanged",r,e,O(n))}))},ye(na);var ia=0,oa=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++ia};oa.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&yr(e),ve(this,"clear")){var r=this.find();r&&Xe(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;o<this.lines.length;++o){var a=this.lines[o],l=q(a.markedSpans,this);e&&!this.collapsed?Tr(e,O(a),"text"):e&&(null!=l.to&&(i=O(a)),null!=l.from&&(n=O(a))),a.markedSpans=U(a.markedSpans,l),null==l.from&&this.collapsed&&!oe(this.doc,a)&&e&&A(a,Pt(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var s=0;s<this.lines.length;++s){var c=re(this.lines[s]),u=se(c);u>e.display.maxLineLength&&(e.display.maxLine=c,e.display.maxLineLength=u,e.display.maxLineChanged=!0)}null!=n&&e&&this.collapsed&&Sr(e,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&wn(e.doc)),e&&Xe(e,"markerCleared",e,this,n,i),t&&br(e),this.parent&&this.parent.clear()}},oa.prototype.find=function(e,t){null==e&&"bookmark"==this.type&&(e=1);for(var r,n,i=0;i<this.lines.length;++i){var o=this.lines[i],a=q(o.markedSpans,this);if(null!=a.from&&(r=W(t?o:O(o),a.from),-1==e))return r;if(null!=a.to&&(n=W(t?o:O(o),a.to),1==e))return n}return r&&{from:r,to:n}},oa.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&wr(n,function(){var i=t.line,o=O(t.line),a=gt(n,o);if(a&&(xt(a),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!oe(r.doc,i)&&null!=r.height){var l=r.height;r.height=null;var s=at(r)-l;s&&A(i,i.height+s)}Xe(n,"markerChanged",n,e)})},oa.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=f(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},oa.prototype.detachLine=function(e){if(this.lines.splice(f(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},ye(oa);var aa=function(e,t){this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=this};aa.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();Xe(this,"clear")}},aa.prototype.find=function(e,t){return this.primary.find(e,t)},ye(aa);var la=0,sa=function(e,t,r,n,i){if(!(this instanceof sa))return new sa(e,t,r,n,i);null==r&&(r=0),Hn.call(this,[new Pn([new jo("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=r;var o=W(r,0);this.sel=Br(o),this.history=new en(null),this.id=++la,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Xr(this,{from:o,to:o,text:e}),vn(this,Br(o),vo)};sa.prototype=y(Hn.prototype,{constructor:sa,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=M(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Cr(function(e){var t=W(this.first,0),r=this.first+this.size-1;Mn(this,{from:t,to:W(r,T(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&sr(this.cm,0,0),vn(this,Br(t),vo)}),replaceRange:function(e,t,r,n){En(this,e,t=R(this,t),r=r?R(this,r):t,n)},getRange:function(e,t,r){var n=L(this,R(this,e),R(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(_(this,e))return T(this,e)},getLineNumber:function(e){return O(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=T(this,e)),re(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return R(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:Cr(function(e,t,r){mn(this,R(this,"number"==typeof e?W(e,t||0):e),null,r)}),setSelection:Cr(function(e,t,r){mn(this,R(this,e),R(this,t||e),r)}),extendSelection:Cr(function(e,t,r){fn(this,R(this,e),t&&R(this,t),r)}),extendSelections:Cr(function(e,t){hn(this,j(this,e),t)}),extendSelectionsBy:Cr(function(e,t){hn(this,j(this,g(this.sel.ranges,e)),t)}),setSelections:Cr(function(e,t,r){if(e.length){for(var n=[],i=0;i<e.length;i++)n[i]=new ra(R(this,e[i].anchor),R(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),vn(this,jr(n,t),r)}}),addSelection:Cr(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new ra(R(this,e),R(this,t||e))),vn(this,jr(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this.sel.ranges,n=0;n<r.length;n++){var i=L(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=L(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:Cr(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 l=t&&"end"!=t&&function(e,t,r){for(var n=[],i=W(e.first,0),o=i,a=0;a<t.length;a++){var l=t[a],s=Vr(l.from,i,o),c=Vr(qr(l),i,o);if(i=l.to,o=c,"around"==r){var u=e.sel.ranges[a],d=F(u.head,u.anchor)<0;n[a]=new ra(d?c:s,d?s:c)}else n[a]=new ra(s,s)}return new ta(n,e.sel.primIndex)}(this,n,t),s=n.length-1;s>=0;s--)Mn(this,n[s]);l?gn(this,l):this.cm&&lr(this.cm)}),undo:Cr(function(){On(this,"undo")}),redo:Cr(function(){On(this,"redo")}),undoSelection:Cr(function(){On(this,"undo",!0)}),redoSelection:Cr(function(){On(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 en(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:un(this.history.done),undone:un(this.history.undone)}},setHistory:function(e){var t=this.history=new en(this.history.maxGeneration);t.done=un(e.done.slice(0),null,!0),t.undone=un(e.undone.slice(0),null,!0)},setGutterMarker:Cr(function(e,t,r){return zn(this,e,"gutter",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&x(n)&&(e.gutterMarkers=null),!0})}),clearGutter:Cr(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&zn(t,r,"gutter",function(){return r.gutterMarkers[e]=null,x(r.gutterMarkers)&&(r.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!_(this,e))return null;if(t=e,!(e=T(this,e)))return null}else if(null==(t=O(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:Cr(function(t,r,n){return zn(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(t[i]){if(e(n).test(t[i]))return!1;t[i]+=" "+n}else t[i]=n;return!0})}),removeLineClass:Cr(function(t,r,n){return zn(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==n)t[i]=null;else{var a=o.match(e(n));if(!a)return!1;var l=a.index+a[0].length;t[i]=o.slice(0,a.index)+(a.index&&l!=o.length?" ":"")+o.slice(l)||null}return!0})}),addLineWidget:Cr(function(e,t,r){return function(e,t,r,n){var i=new na(e,r,n),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),zn(e,t,"widget",function(t){var r=t.widgets||(t.widgets=[]);if(null==i.insertAt?r.push(i):r.splice(Math.min(r.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!oe(e,t)){var n=le(t)<e.scrollTop;A(t,t.height+at(i)),n&&ar(o,i.height),o.curOp.forceUpdate=!0}return!0}),Xe(o,"lineWidgetAdded",o,i,"number"==typeof t?t:O(t)),i}(this,e,t,r)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return Rn(this,R(this,e),R(this,t),r,r&&r.type||"range")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=R(this,e),Rn(this,e,e,r,"bookmark")},findMarksAt:function(e){var t=[],r=T(this,(e=R(this,e)).line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=R(this,e),t=R(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var l=0;l<a.length;l++){var s=a[l];null!=s.to&&i==e.line&&e.ch>=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||r&&!r(s.marker)||n.push(s.marker.parent||s.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;n<r.length;++n)null!=r[n].from&&e.push(r[n].marker)}),e},posFromIndex:function(e){var t,r=this.first,n=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+n;if(o>e)return t=e,!0;e-=o,++r}),R(this,W(r,t))},indexFromPos:function(e){var t=(e=R(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 sa(M(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 sa(M(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(F(o,a)){var l=Rn(e,o,a,n.primary,n.primary.type);n.markers.push(l),l.parent=n}}}(n,jn(this)),n},unlinkDoc:function(e){if(e instanceof Si&&(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),Bn(jn(this));break}}if(e.history==this.history){var r=[e.id];Zr(e,function(e){return r.push(e.id)},!0),e.history=new en(null),e.history.done=un(this.history.done,r),e.history.undone=un(this.history.undone,r)}},iterLinkedDocs:function(e){Zr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):No(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:Cr(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&function(e){wr(e,function(){Qr(e),Sr(e)})}(this.cm))})}),sa.prototype.eachLine=sa.prototype.iter;for(var ca=0,ua=!1,da={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"},fa=0;fa<10;fa++)da[fa+48]=da[fa+96]=String(fa);for(var ha=65;ha<=90;ha++)da[ha]=String.fromCharCode(ha);for(var pa=1;pa<=12;pa++)da[pa+111]=da[pa+63235]="F"+pa;var ma={};ma.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"},ma.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"},ma.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"},ma.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"]},ma.default=ro?ma.macDefault:ma.pcDefault;var ga={selectAll:Tn,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),vo)},killLine:function(e){return ti(e,function(t){if(t.empty()){var r=T(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line<e.lastLine()?{from:t.head,to:W(t.head.line+1,0)}:{from:t.head,to:W(t.head.line,r)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return ti(e,function(t){return{from:W(t.from().line,0),to:R(e.doc,W(t.to().line+1,0))}})},delLineLeft:function(e){return ti(e,function(e){return{from:W(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return ti(e,function(t){var r=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:r},"div"),to:t.from()}})},delWrappedLineRight:function(e){return ti(e,function(t){var r=e.charCoords(t.head,"div").top+5,n=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div");return{from:t.from(),to:n}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(W(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(W(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return oi(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return li(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return ai(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div")},bo)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:r},"div")},bo)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5,n=e.coordsChar({left:0,top:r},"div");return n.ch<e.getLine(n.line).search(/\S/)?li(e,t.head):n},bo)},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=d(e.getLine(o.line),o.ch,n);t.push(p(n-a%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return wr(e,function(){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)if(t[n].empty()){var i=t[n].head,o=T(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new W(i.line,i.ch-1)),i.ch>0)i=new W(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),W(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=T(e.doc,i.line-1).text;a&&(i=new W(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),W(i.line-1,a.length-1),i,"+transpose"))}r.push(new ra(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return wr(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n<t.length;n++)e.indentLine(t[n].from().line,null,!0);lr(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},va=new fo,ya=null,ba=function(e,t,r){this.time=e,this.pos=t,this.button=r};ba.prototype.compare=function(e,t,r){return this.time+400>e&&0==F(t,this.pos)&&r==this.button};var wa,xa,ka={toString:function(){return"CodeMirror.Init"}},Ca={},Sa={};Si.defaults=Ca,Si.optionHandlers=Sa;var Ta=[];Si.defineInitHook=function(e){return Ta.push(e)};var La=null,Ma=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new fo,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Ma.prototype.init=function(e){function t(e){if(!me(i,e)){if(i.somethingSelected())Li({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=Ni(i);Li({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,vo),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=La.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var a=Ei(),l=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),l.value=La.text.join("\n");var s=document.activeElement;uo(l),setTimeout(function(){i.display.lineSpace.removeChild(a),s.focus(),s==o&&n.showPrimarySelection()},50)}}var r=this,n=this,i=n.cm,o=n.div=e.lineDiv;_i(o,i.options.spellcheck),Ao(o,"paste",function(e){me(i,e)||Ai(e,i)||Ki<=11&&setTimeout(xr(i,function(){return r.updateFromDOM()}),20)}),Ao(o,"compositionstart",function(e){r.composing={data:e.data,done:!1}}),Ao(o,"compositionupdate",function(e){r.composing||(r.composing={data:e.data,done:!1})}),Ao(o,"compositionend",function(e){r.composing&&(e.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),Ao(o,"touchstart",function(){return n.forceCompositionEnd()}),Ao(o,"input",function(){r.composing||r.readFromDOMSoon()}),Ao(o,"copy",t),Ao(o,"cut",t)},Ma.prototype.prepareSelection=function(){var e=Vt(this.cm,!1);return e.focus=this.cm.state.focused,e},Ma.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Ma.prototype.showPrimarySelection=function(){var e=window.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=Pi(t,e.anchorNode,e.anchorOffset),a=Pi(t,e.focusNode,e.focusOffset);if(!o||o.bad||!a||a.bad||0!=F(H(o,a),n)||0!=F(P(o,a),i)){var l=t.display.view,s=n.line>=t.display.viewFrom&&Di(t,n)||{node:l[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&Di(t,i);if(!c){var u=l[l.length-1].measure,d=u.maps?u.maps[u.maps.length-1]:u.map;c={node:d[d.length-1],offset:d[d.length-2]-d[d.length-3]}}if(s&&c){var f,h=e.rangeCount&&e.getRangeAt(0);try{f=ao(s.node,s.offset,c.offset,c.node)}catch(e){}f&&(!Ri&&t.state.focused?(e.collapse(s.node,s.offset),f.collapsed||(e.removeAllRanges(),e.addRange(f))):(e.removeAllRanges(),e.addRange(f)),h&&null==e.anchorNode?e.addRange(h):Ri&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},Ma.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)},Ma.prototype.showMultipleSelections=function(e){r(this.cm.display.cursorDiv,e.cursors),r(this.cm.display.selectionDiv,e.selection)},Ma.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Ma.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},Ma.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Ma.prototype.blur=function(){this.div.blur()},Ma.prototype.getField=function(){return this.div},Ma.prototype.supportsTouch=function(){return!0},Ma.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():wr(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},Ma.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Ma.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(eo&&$i&&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=Pi(t,e.anchorNode,e.anchorOffset),n=Pi(t,e.focusNode,e.focusOffset);r&&n&&wr(t,function(){vn(t.doc,Br(r,n),vo),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},Ma.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,r=e.doc.sel.primary(),n=r.from(),i=r.to();if(0==n.ch&&n.line>e.firstLine()&&(n=W(n.line-1,T(e.doc,n.line-1).length)),i.ch==T(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=W(i.line+1,0)),n.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,a,l;n.line==t.viewFrom||0==(o=Ut(e,n.line))?(a=O(t.view[0].line),l=t.view[0].node):(a=O(t.view[o].line),l=t.view[o-1].node.nextSibling);var s,c,u=Ut(e,i.line);if(u==t.view.length-1?(s=t.viewTo-1,c=t.lineDiv.lastChild):(s=O(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!l)return!1;for(var d=e.doc.splitLines(function(e,t,r,n,i){function o(){c&&(s+=u,c=!1)}function a(e){e&&(o(),s+=e)}function l(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(null!=r)return void a(r||t.textContent.replace(/\u200b/g,""));var s,d=t.getAttribute("cm-marker");if(d){var f=e.findMarks(W(n,0),W(i+1,0),function(e){return function(t){return t.id==e}}(+d));return void(f.length&&(s=f[0].find(0))&&a(L(e.doc,s.from,s.to).join(u)))}if("false"==t.getAttribute("contenteditable"))return;var h=/^(pre|div|p)$/i.test(t.nodeName);h&&o();for(var p=0;p<t.childNodes.length;p++)l(t.childNodes[p]);h&&(c=!0)}else 3==t.nodeType&&a(t.nodeValue)}for(var s="",c=!1,u=e.doc.lineSeparator();l(t),t!=r;)t=t.nextSibling;return s}(e,l,c,a,s)),f=L(e.doc,W(a,0),W(s,T(e.doc,s).text.length));d.length>1&&f.length>1;)if(m(d)==m(f))d.pop(),f.pop(),s--;else{if(d[0]!=f[0])break;d.shift(),f.shift(),a++}for(var h=0,p=0,g=d[0],v=f[0],y=Math.min(g.length,v.length);h<y&&g.charCodeAt(h)==v.charCodeAt(h);)++h;for(var b=m(d),w=m(f),x=Math.min(b.length-(1==d.length?h:0),w.length-(1==f.length?h:0));p<x&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)++p;if(1==d.length&&1==f.length&&a==n.line)for(;h&&h>n.ch&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)h--,p++;d[d.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),d[0]=d[0].slice(h).replace(/\u200b+$/,"");var k=W(a,h),C=W(s,f.length?m(f).length-p:0);return d.length>1||d[0]||F(k,C)?(En(e.doc,d,k,C,"+input"),!0):void 0},Ma.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ma.prototype.reset=function(){this.forceCompositionEnd()},Ma.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Ma.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))},Ma.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||wr(this.cm,function(){return Sr(e.cm)})},Ma.prototype.setUneditable=function(e){e.contentEditable="false"},Ma.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||xr(this.cm,Mi)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Ma.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ma.prototype.onContextMenu=function(){},Ma.prototype.resetPosition=function(){},Ma.prototype.needsContentAttribute=!0;var Aa=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new fo,this.hasSelection=!1,this.composing=null};Aa.prototype.init=function(e){function t(e){if(!me(i,e)){if(i.somethingSelected())Li({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=Ni(i);Li({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,vo):(n.prevInput="",a.value=t.text.join("\n"),uo(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var r=this,n=this,i=this.cm,o=this.wrapper=Ei(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),Qi&&(a.style.width="0px"),Ao(a,"input",function(){Ui&&Ki>=9&&r.hasSelection&&(r.hasSelection=null),n.poll()}),Ao(a,"paste",function(e){me(i,e)||Ai(e,i)||(i.state.pasteIncoming=!0,n.fastPoll())}),Ao(a,"cut",t),Ao(a,"copy",t),Ao(e.scroller,"paste",function(t){lt(e,t)||me(i,t)||(i.state.pasteIncoming=!0,n.focus())}),Ao(e.lineSpace,"selectstart",function(t){lt(e,t)||be(t)}),Ao(a,"compositionstart",function(){var e=i.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),Ao(a,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},Aa.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=Vt(e);if(e.options.moveInputWithCursor){var i=Nt(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},Aa.prototype.showSelection=function(e){var t=this.cm.display;r(t.cursorDiv,e.cursors),r(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Aa.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&&uo(this.textarea),Ui&&Ki>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",Ui&&Ki>=9&&(this.hasSelection=null))}},Aa.prototype.getField=function(){return this.textarea},Aa.prototype.supportsTouch=function(){return!1},Aa.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!to||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},Aa.prototype.blur=function(){this.textarea.blur()},Aa.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Aa.prototype.receivedFocus=function(){this.slowPoll()},Aa.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Aa.prototype.fastPoll=function(){function e(){r.poll()||t?(r.pollingFast=!1,r.slowPoll()):(t=!0,r.polling.set(60,e))}var t=!1,r=this;r.pollingFast=!0,r.polling.set(20,e)},Aa.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||_o(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(Ui&&Ki>=9&&this.hasSelection===i||ro&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,l=Math.min(n.length,i.length);a<l&&n.charCodeAt(a)==i.charCodeAt(a);)++a;return wr(t,function(){Mi(t,i.slice(a),n.length-a,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Aa.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Aa.prototype.onKeyPress=function(){Ui&&Ki>=9&&(this.hasSelection=null),this.fastPoll()},Aa.prototype.onContextMenu=function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t="​"+(e?a.value:"");a.value="⇚",a.value=t,n.prevInput=e?"":"​",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function r(){if(n.contextMenuPending=!1,n.wrapper.style.cssText=u,a.style.cssText=c,Ui&&Ki<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=a.selectionStart){(!Ui||Ui&&Ki<9)&&t();var e=0,r=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==n.prevInput?xr(i,Tn)(i):e++<10?o.detectingSelectAll=setTimeout(r,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(r,200)}}var n=this,i=n.cm,o=i.display,a=n.textarea,l=qt(i,e),s=o.scroller.scrollTop;if(l&&!Yi){i.options.resetSelectionOnContextMenu&&-1==i.doc.sel.contains(l)&&xr(i,vn)(i.doc,Br(l),vo);var c=a.style.cssText,u=n.wrapper.style.cssText;n.wrapper.style.cssText="position: absolute";var d=n.wrapper.getBoundingClientRect();a.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-d.top-5)+"px; left: "+(e.clientX-d.left-5)+"px;\n z-index: 1000; background: "+(Ui?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var f;if(Vi&&(f=window.scrollY),o.input.focus(),Vi&&window.scrollTo(null,f),o.input.reset(),i.somethingSelected()||(a.value=n.prevInput=" "),n.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),Ui&&Ki>=9&&t(),so){ke(e);var h=function(){he(window,"mouseup",h),setTimeout(r,20)};Ao(window,"mouseup",h)}else setTimeout(r,50)}},Aa.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},Aa.prototype.setUneditable=function(){},Aa.prototype.needsContentAttribute=!1,function(e){function t(t,n,i,o){e.defaults[t]=n,i&&(r[t]=o?function(e,t,r){r!=ka&&i(e,t,r)}:i)}var r=e.optionHandlers;e.defineOption=t,e.Init=ka,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Gr(e)},!0),t("indentUnit",2,Gr,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){$r(e),Ct(e),Sr(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(W(n,o))}n++});for(var i=r.length-1;i>=0;i--)En(e.doc,t,r[i],W(r[i].line,r[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=ka&&e.refresh()}),t("specialCharPlaceholder",Ke,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",to?"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",!io),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){wi(e),xi(e)},!0),t("keyMap","default",function(e,t,r){var n=ei(t),i=r!=ka&&ei(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,Ci,!0),t("gutters",[],function(e){Pr(e.options),xi(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?Rt(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return mr(e)},!0),t("scrollbarStyle","native",function(e){vr(e),mr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Pr(e.options),xi(e)},!0),t("firstLineNumber",1,xi,!0),t("lineNumberFormatter",function(e){return e},xi,!0),t("showCursorWhenSelecting",!1,Kt,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Qt(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,ki),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Kt,!0),t("singleCursorHeightPerLine",!0,Kt,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,$r,!0),t("addModeClass",!1,$r,!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,$r,!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)}(Si),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&xr(this,t[e])(this,r,i),pe(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"](ei(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:kr(function(t,r){var n=t.token?t:e.getMode(this.options,t);if(n.startState)throw new Error("Overlays may not be stateful.");!function(e,t,r){for(var n=0,i=r(t);n<e.length&&r(e[n])<=i;)n++;e.splice(n,0,t)}(this.state.overlays,{mode:n,modeSpec:t,opaque:r&&r.opaque,priority:r&&r.priority||0},function(e){return e.priority}),this.state.modeGen++,Sr(this)}),removeOverlay:kr(function(e){for(var t=this.state.overlays,r=0;r<t.length;++r){var n=t[r].modeSpec;if(n==e||"string"==typeof e&&n.name==e)return t.splice(r,1),this.state.modeGen++,void Sr(this)}}),indentLine:kr(function(e,t,r){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),_(this.doc,e)&&Ti(this,e,t,r)}),indentSelection:kr(function(e){for(var t=this.doc.sel.ranges,r=-1,n=0;n<t.length;n++){var i=t[n];if(i.empty())i.head.line>r&&(Ti(this,i.head.line,e,!0),r=i.head.line,n==this.doc.sel.primIndex&&lr(this));else{var o=i.from(),a=i.to(),l=Math.max(r,o.line);r=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var s=l;s<r;++s)Ti(this,s,e);var c=this.doc.sel.ranges;0==o.ch&&t.length==c.length&&c[n].from().ch>0&&pn(this.doc,n,new ra(o,c[n].to()),vo)}}}),getTokenAt:function(e,t){return Ie(this,e,t)},getLineTokens:function(e,t){return Ie(this,W(e),t,!0)},getTokenTypeAt:function(e){e=R(this.doc,e);var t,r=Fe(this,T(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var a=n+i>>1;if((a?r[2*a-1]:0)>=o)i=a;else{if(!(r[2*a+1]<o)){t=r[2*a+2];break}n=a+1}}var l=t?t.indexOf("overlay "):-1;return l<0?t:0==l?null:t.slice(0,l-1)},getModeAt:function(t){var r=this.doc.mode;return r.innerMode?e.innerMode(r,this.getTokenAt(t).state).mode:r},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=[];if(!r.hasOwnProperty(t))return n;var i=r[t],o=this.getModeAt(e);if("string"==typeof o[t])i[o[t]]&&n.push(i[o[t]]);else if(o[t])for(var a=0;a<o[t].length;a++){var l=i[o[t][a]];l&&n.push(l)}else o.helperType&&i[o.helperType]?n.push(i[o.helperType]):i[o.name]&&n.push(i[o.name]);for(var s=0;s<i._global.length;s++){var c=i._global[s];c.pred(o,this)&&-1==f(n,c.val)&&n.push(c.val)}return n},getStateAfter:function(e,t){var r=this.doc;return e=I(r,null==e?r.first+r.size-1:e),De(this,e+1,t).state},cursorCoords:function(e,t){var r,n=this.doc.sel.primary();return r=null==e?n.head:"object"==typeof e?R(this.doc,e):e?n.from():n.to(),Nt(this,r,t||"page")},charCoords:function(e,t){return Ot(this,R(this.doc,e),t||"page")},coordsChar:function(e,t){return e=At(this,e,t||"page"),Wt(this,e.left,e.top)},lineAtHeight:function(e,t){return e=At(this,{top:e,left:0},t||"page").top,N(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,r){var n,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),n=T(this.doc,e)}else n=e;return Mt(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-le(n):0)},defaultTextHeight:function(){return Pt(this.display)},defaultCharWidth:function(){return Ht(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o=this.display,a=(e=Nt(this,R(this.doc,e))).bottom,l=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==n)a=e.top;else if("above"==n||"near"==n){var s=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>s)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=s&&(a=e.bottom),l+t.offsetWidth>c&&(l=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(l=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?l=0:"middle"==i&&(l=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=l+"px"),r&&function(e,t){var r=or(e,t);null!=r.scrollTop&&dr(e,r.scrollTop),null!=r.scrollLeft&&hr(e,r.scrollLeft)}(this,{left:l,top:a,right:l+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:kr(fi),triggerOnKeyPress:kr(pi),triggerOnKeyUp:hi,triggerOnMouseDown:kr(mi),execCommand:function(e){if(ga.hasOwnProperty(e))return ga[e].call(null,this)},triggerElectric:kr(function(e){Oi(this,e)}),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=R(this.doc,e),a=0;a<t&&!(o=Wi(this.doc,o,i,r,n)).hitSide;++a);return o},moveH:kr(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?Wi(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},bo)}),deleteH:kr(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection("",null,"+delete"):ti(this,function(r){var i=Wi(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,r,n){var i=1,o=n;t<0&&(i=-1,t=-t);for(var a=R(this.doc,e),l=0;l<t;++l){var s=Nt(this,a,"div");if(null==o?o=s.left:s.left=o,(a=Fi(this,s,i,r)).hitSide)break}return a},moveV:kr(function(e,t){var r=this,n=this.doc,i=[],o=!this.display.shift&&!n.extend&&n.sel.somethingSelected();if(n.extendSelectionsBy(function(a){if(o)return e<0?a.from():a.to();var l=Nt(r,a.head,"div");null!=a.goalColumn&&(l.left=a.goalColumn),i.push(l.left);var s=Fi(r,l,e,t);return"page"==t&&a==n.sel.primary()&&ar(r,Ot(r,s,"div").top-l.top),s},bo),i.length)for(var a=0;a<n.sel.ranges.length;a++)n.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=T(this.doc,e.line).text,r=e.ch,n=e.ch;if(t){var i=this.getHelper(e,"wordChars");"before"!=e.sticky&&n!=t.length||!r?++n:--r;for(var o=t.charAt(r),a=w(o,i)?function(e){return w(e,i)}:/\s/.test(o)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!w(e)};r>0&&a(t.charAt(r-1));)--r;for(;n<t.length&&a(t.charAt(n));)++n}return new ra(W(e.line,r),W(e.line,n))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?l(this.display.cursorDiv,"CodeMirror-overwrite"):co(this.display.cursorDiv,"CodeMirror-overwrite"),pe(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:kr(function(e,t){sr(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-dt(this)-this.display.barHeight,width:e.scrollWidth-dt(this)-this.display.barWidth,clientHeight:ht(this),clientWidth:ft(this)}},scrollIntoView:kr(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:W(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?function(e,t){cr(e),e.curOp.scrollToPos=t}(this,e):ur(this,e.from,e.to,e.margin)}),setSize:kr(function(e,t){var r=this,n=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&kt(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){Tr(r,i,"widget");break}++i}),this.curOp.forceUpdate=!0,pe(this,"refresh",this)}),operation:function(e){return wr(this,e)},startOperation:function(){return yr(this)},endOperation:function(){return br(this)},refresh:kr(function(){var e=this.display.cachedTextHeight;Sr(this),this.curOp.forceUpdate=!0,Ct(this),sr(this,this.doc.scrollLeft,this.doc.scrollTop),Fr(this),(null==e||Math.abs(e-Pt(this.display))>.5)&&Bt(this),pe(this,"refresh",this)}),swapDoc:kr(function(e){var t=this.doc;return t.cm=null,Jr(this,e),Ct(this),this.display.input.reset(),sr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Xe(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}},ye(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Si);var Oa="iter insert remove copy getEditor constructor".split(" ");for(var Na in sa.prototype)sa.prototype.hasOwnProperty(Na)&&f(Oa,Na)<0&&(Si.prototype[Na]=function(e){return function(){return e.apply(this.doc,arguments)}}(sa.prototype[Na]));return ye(sa),Si.inputStyles={textarea:Aa,contenteditable:Ma},Si.defineMode=function(e){Si.defaults.mode||"null"==e||(Si.defaults.mode=e),function(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Fo[e]=t}.apply(this,arguments)},Si.defineMIME=function(e,t){Do[e]=t},Si.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Si.defineMIME("text/plain","null"),Si.defineExtension=function(e,t){Si.prototype[e]=t},Si.defineDocExtension=function(e,t){sa.prototype[e]=t},Si.fromTextArea=function(e,t){function r(){e.value=s.getValue()}if(t=t?u(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=a();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}var i;if(e.form&&(Ao(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(t){t.save=r,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,r(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(he(e.form,"submit",r),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var s=Si(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s},function(e){e.off=he,e.on=Ao,e.wheelEventPixels=Ir,e.Doc=sa,e.splitLines=No,e.countColumn=d,e.findColumn=h,e.isWordChar=b,e.Pass=go,e.signal=pe,e.Line=jo,e.changeEnd=qr,e.scrollbarModel=Xo,e.Pos=W,e.cmpPos=F,e.modes=Fo,e.mimeModes=Do,e.resolveMode=Me,e.getMode=Ae,e.modeExtensions=zo,e.extendMode=Oe,e.copyState=Ne,e.startState=Ee,e.innerMode=_e,e.commands=ga,e.keyMap=ma,e.keyName=Qn,e.isModifierKey=Zn,e.lookupKey=Xn,e.normalizeKeyMap=Yn,e.StringStream=Po,e.SharedTextMarker=aa,e.TextMarker=oa,e.LineWidget=na,e.e_preventDefault=be,e.e_stopPropagation=we,e.e_stop=ke,e.addClass=l,e.contains=o,e.rmClass=co,e.keyNames=da}(Si),Si.version="5.32.0",Si})},{}],16:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;return t}function r(e,t){for(var r,n=!1;null!=(r=e.next());){if(n&&"/"==r){t.tokenize=null;break}n="*"==r}return["comment","comment"]}e.defineMode("css",function(t,r){function n(e,t){return h=t,e}function i(e){return function(t,r){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){")"==e&&t.backUp(1);break}o=!o&&"\\"==i}return(i==e||!o&&")"!=e)&&(r.tokenize=null),n("string","string")}}function o(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=i(")"),n(null,"(")}function a(e,t,r){this.type=e,this.indent=t,this.prev=r}function l(e,t,r,n){return e.context=new a(r,t.indentation()+(!1===n?0:m),e.context),r}function s(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function c(e,t,r){return N[r.context.type](e,t,r)}function u(e,t,r,n){for(var i=n||1;i>0;i--)r.context=r.context.prev;return c(e,t,r)}function d(e){var t=e.current().toLowerCase();p=L.hasOwnProperty(t)?"atom":T.hasOwnProperty(t)?"keyword":"variable"}var f=r.inline;r.propertyKeywords||(r=e.resolveMode("text/css"));var h,p,m=t.indentUnit,g=r.tokenHooks,v=r.documentTypes||{},y=r.mediaTypes||{},b=r.mediaFeatures||{},w=r.mediaValueKeywords||{},x=r.propertyKeywords||{},k=r.nonStandardPropertyKeywords||{},C=r.fontProperties||{},S=r.counterDescriptors||{},T=r.colorKeywords||{},L=r.valueKeywords||{},M=r.allowNested,A=r.lineComment,O=!0===r.supportsAtComponent,N={};return N.top=function(e,t,r){if("{"==e)return l(r,t,"block");if("}"==e&&r.context.prev)return s(r);if(O&&/@component/.test(e))return l(r,t,"atComponentBlock");if(/^@(-moz-)?document$/.test(e))return l(r,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(e))return l(r,t,"atBlock");if(/^@(font-face|counter-style)/.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return l(r,t,"at");if("hash"==e)p="builtin";else if("word"==e)p="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return l(r,t,"interpolation");if(":"==e)return"pseudo";if(M&&"("==e)return l(r,t,"parens")}return r.context.type},N.block=function(e,t,r){if("word"==e){var n=t.current().toLowerCase();return x.hasOwnProperty(n)?(p="property","maybeprop"):k.hasOwnProperty(n)?(p="string-2","maybeprop"):M?(p=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(p+=" error","maybeprop")}return"meta"==e?"block":M||"hash"!=e&&"qualifier"!=e?N.top(e,t,r):(p="error","block")},N.maybeprop=function(e,t,r){return":"==e?l(r,t,"prop"):c(e,t,r)},N.prop=function(e,t,r){if(";"==e)return s(r);if("{"==e&&M)return l(r,t,"propBlock");if("}"==e||"{"==e)return u(e,t,r);if("("==e)return l(r,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)d(t);else if("interpolation"==e)return l(r,t,"interpolation")}else p+=" error";return"prop"},N.propBlock=function(e,t,r){return"}"==e?s(r):"word"==e?(p="property","maybeprop"):r.context.type},N.parens=function(e,t,r){return"{"==e||"}"==e?u(e,t,r):")"==e?s(r):"("==e?l(r,t,"parens"):"interpolation"==e?l(r,t,"interpolation"):("word"==e&&d(t),"parens")},N.pseudo=function(e,t,r){return"meta"==e?"pseudo":"word"==e?(p="variable-3",r.context.type):c(e,t,r)},N.documentTypes=function(e,t,r){return"word"==e&&v.hasOwnProperty(t.current())?(p="tag",r.context.type):N.atBlock(e,t,r)},N.atBlock=function(e,t,r){if("("==e)return l(r,t,"atBlock_parens");if("}"==e||";"==e)return u(e,t,r);if("{"==e)return s(r)&&l(r,t,M?"block":"top");if("interpolation"==e)return l(r,t,"interpolation");if("word"==e){var n=t.current().toLowerCase();p="only"==n||"not"==n||"and"==n||"or"==n?"keyword":y.hasOwnProperty(n)?"attribute":b.hasOwnProperty(n)?"property":w.hasOwnProperty(n)?"keyword":x.hasOwnProperty(n)?"property":k.hasOwnProperty(n)?"string-2":L.hasOwnProperty(n)?"atom":T.hasOwnProperty(n)?"keyword":"error"}return r.context.type},N.atComponentBlock=function(e,t,r){return"}"==e?u(e,t,r):"{"==e?s(r)&&l(r,t,M?"block":"top",!1):("word"==e&&(p="error"),r.context.type)},N.atBlock_parens=function(e,t,r){return")"==e?s(r):"{"==e||"}"==e?u(e,t,r,2):N.atBlock(e,t,r)},N.restricted_atBlock_before=function(e,t,r){return"{"==e?l(r,t,"restricted_atBlock"):"word"==e&&"@counter-style"==r.stateArg?(p="variable","restricted_atBlock_before"):c(e,t,r)},N.restricted_atBlock=function(e,t,r){return"}"==e?(r.stateArg=null,s(r)):"word"==e?(p="@font-face"==r.stateArg&&!C.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==r.stateArg&&!S.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},N.keyframes=function(e,t,r){return"word"==e?(p="variable","keyframes"):"{"==e?l(r,t,"top"):c(e,t,r)},N.at=function(e,t,r){return";"==e?s(r):"{"==e||"}"==e?u(e,t,r):("word"==e?p="tag":"hash"==e&&(p="builtin"),"at")},N.interpolation=function(e,t,r){return"}"==e?s(r):"{"==e||";"==e?u(e,t,r):("word"==e?p="variable":"variable"!=e&&"("!=e&&")"!=e&&(p="error"),"interpolation")},{startState:function(e){return{tokenize:null,state:f?"block":"top",stateArg:null,context:new a(f?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||function(e,t){var r=e.next();if(g[r]){var a=g[r](e,t);if(!1!==a)return a}return"@"==r?(e.eatWhile(/[\w\\\-]/),n("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?n(null,"compare"):'"'==r||"'"==r?(t.tokenize=i(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),n("atom","hash")):"!"==r?(e.match(/^\s*\w*/),n("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),n("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?n(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?n("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?n(null,r):"u"==r&&e.match(/rl(-prefix)?\(/)||"d"==r&&e.match("omain(")||"r"==r&&e.match("egexp(")?(e.backUp(1),t.tokenize=o,n("property","word")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),n("property","word")):n(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),n("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?n("variable-2","variable-definition"):n("variable-2","variable")):e.match(/^\w+-/)?n("meta","meta"):void 0})(e,t);return r&&"object"==typeof r&&(h=r[1],r=r[0]),p=r,"comment"!=h&&(t.state=N[t.state](h,e,t)),p},indent:function(e,t){var r=e.context,n=t&&t.charAt(0),i=r.indent;return"prop"!=r.type||"}"!=n&&")"!=n||(r=r.prev),r.prev&&("}"!=n||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type?(")"!=n||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=n||"at"!=r.type&&"atBlock"!=r.type)||(i=Math.max(0,r.indent-m)):i=(r=r.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:A,fold:"brace"}});var n=["domain","regexp","url","url-prefix"],i=t(n),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=t(o),l=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],s=t(l),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=t(c),d=["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"],f=t(d),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=t(["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),g=t(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),v=["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"],y=t(v),b=["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"],w=t(b),x=n.concat(o).concat(l).concat(c).concat(d).concat(h).concat(v).concat(b);e.registerHelper("hintWords","css",x),e.defineMIME("text/css",{documentTypes:i,mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:g,colorKeywords:y,valueKeywords:w,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:y,valueKeywords:w,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/,!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:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:y,valueKeywords:w,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:i,mediaTypes:a,mediaFeatures:s,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:g,colorKeywords:y,valueKeywords:w,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css",helperType:"gss"})})},{"../../lib/codemirror":15}],17:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../xml/xml"),e("../javascript/javascript"),e("../css/css")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],i):i(CodeMirror)}(function(e){"use strict";function t(e,t){var r=e.match(function(e){var t=o[e];return t||(o[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}(t));return r?/^\s*(.*?)\s*$/.exec(r[2])[1]:""}function r(e,t){return new RegExp((t?"^":"")+"</s*"+e+"s*>","i")}function n(e,t){for(var r in e)for(var n=t[r]||(t[r]=[]),i=e[r],o=i.length-1;o>=0;o--)n.unshift(i[o])}var i={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"]]},o={};e.defineMode("htmlmixed",function(o,a){function l(n,i){var a,u=s.token(n,i.htmlState),d=/\btag\b/.test(u);if(d&&!/[<>\s\/]/.test(n.current())&&(a=i.htmlState.tagName&&i.htmlState.tagName.toLowerCase())&&c.hasOwnProperty(a))i.inTag=a+" ";else if(i.inTag&&d&&/>$/.test(n.current())){var f=/^([\S]+) (.*)/.exec(i.inTag);i.inTag=null;var h=">"==n.current()&&function(e,r){for(var n=0;n<e.length;n++){var i=e[n];if(!i[0]||i[1].test(t(r,i[0])))return i[2]}}(c[f[1]],f[2]),p=e.getMode(o,h),m=r(f[1],!0),g=r(f[1],!1);i.token=function(e,t){return e.match(m,!1)?(t.token=l,t.localState=t.localMode=null,null):function(e,t,r){var n=e.current(),i=n.search(t);return i>-1?e.backUp(n.length-i):n.match(/<\/?$/)&&(e.backUp(n.length),e.match(t,!1)||e.match(n)),r}(e,g,t.localMode.token(e,t.localState))},i.localMode=p,i.localState=e.startState(p,s.indent(i.htmlState,""))}else i.inTag&&(i.inTag+=n.current(),n.eol()&&(i.inTag+=" "));return u}var s=e.getMode(o,{name:"xml",htmlMode:!0,multilineTagIndentFactor:a.multilineTagIndentFactor,multilineTagIndentPastTag:a.multilineTagIndentPastTag}),c={},u=a&&a.tags,d=a&&a.scriptTypes;if(n(i,c),u&&n(u,c),d)for(var f=d.length-1;f>=0;f--)c.script.unshift(["type",d[f].matches,d[f].mode]);return{startState:function(){return{token:l,inTag:null,localMode:null,localState:null,htmlState:e.startState(s)}},copyState:function(t){var r;return t.localState&&(r=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:r,htmlState:e.copyState(s,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,r,n){return!t.localMode||/^\s*<\//.test(r)?s.indent(t.htmlState,r):t.localMode.indent?t.localMode.indent(t.localState,r,n):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||s}}}},"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")})},{"../../lib/codemirror":15,"../css/css":16,"../javascript/javascript":18,"../xml/xml":19}],18:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";e.defineMode("javascript",function(t,r){function n(e,t,r){return ke=e,Ce=r,t}function i(e,t){var r=e.next();if('"'==r||"'"==r)return t.tokenize=function(e){return function(t,r){var o,a=!1;if(Le&&"@"==t.peek()&&t.match(Ee))return r.tokenize=i,n("jsonld-keyword","meta");for(;null!=(o=t.next())&&(o!=e||a);)a=!a&&"\\"==o;return a||(r.tokenize=i),n("string","string")}}(r),t.tokenize(e,t);if("."==r&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return n("number","number");if("."==r&&e.match(".."))return n("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return n(r);if("="==r&&e.eat(">"))return n("=>","operator");if("0"==r&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),n("number","number");if("0"==r&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),n("number","number");if("0"==r&&e.eat(/b/i))return e.eatWhile(/[01]/i),n("number","number");if(/\d/.test(r))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),n("number","number");if("/"==r)return e.eat("*")?(t.tokenize=o,o(e,t)):e.eat("/")?(e.skipToEnd(),n("comment","comment")):xe(e,t,1)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),n("regexp","string-2")):(e.eat("="),n("operator","operator",e.current()));if("`"==r)return t.tokenize=a,a(e,t);if("#"==r)return e.skipToEnd(),n("error","error");if(_e.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),n("operator","operator",e.current());if(Oe.test(r)){e.eatWhile(Oe);var l=e.current();if("."!=t.lastType){if(Ne.propertyIsEnumerable(l)){var s=Ne[l];return n(s.type,s.style,l)}if("async"==l&&e.match(/^(\s|\/\*.*?\*\/)*[\(\w]/,!1))return n("async","keyword",l)}return n("variable","variable",l)}}function o(e,t){for(var r,o=!1;r=e.next();){if("/"==r&&o){t.tokenize=i;break}o="*"==r}return n("comment","comment")}function a(e,t){for(var r,o=!1;null!=(r=e.next());){if(!o&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=i;break}o=!o&&"\\"==r}return n("quasi","string-2",e.current())}function l(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){if(Ae){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var i=0,o=!1,a=r-1;a>=0;--a){var l=e.string.charAt(a),s=We.indexOf(l);if(s>=0&&s<3){if(!i){++a;break}if(0==--i){"("==l&&(o=!0);break}}else if(s>=3&&s<6)++i;else if(Oe.test(l))o=!0;else{if(/["'\/]/.test(l))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}function s(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=o,null!=n&&(this.align=n)}function c(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return!0}function u(){for(var e=arguments.length-1;e>=0;e--)De.cc.push(arguments[e])}function d(){return u.apply(null,arguments),!0}function f(e){function t(t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}var n=De.state;if(De.marked="def",n.context){if(t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;r.globalVars&&(n.globalVars={name:e,next:n.globalVars})}}function h(){De.state.context={prev:De.state.context,vars:De.state.localVars},De.state.localVars=ze}function p(){De.state.localVars=De.state.context.vars,De.state.context=De.state.context.prev}function m(e,t){var r=function(){var r=De.state,n=r.indented;if("stat"==r.lexical.type)n=r.lexical.indented;else for(var i=r.lexical;i&&")"==i.type&&i.align;i=i.prev)n=i.indented;r.lexical=new s(n,De.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function g(){var e=De.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function v(e){function t(r){return r==e?d():";"==e?u():d(t)}return t}function y(e,t){return"var"==e?d(m("vardef",t.length),Y,v(";"),g):"keyword a"==e?d(m("form"),x,y,g):"keyword b"==e?d(m("form"),y,g):"keyword d"==e?De.stream.match(/^\s*$/,!1)?d():d(m("stat"),C,v(";"),g):"debugger"==e?d(v(";")):"{"==e?d(m("}"),P,g):";"==e?d():"if"==e?("else"==De.state.lexical.info&&De.state.cc[De.state.cc.length-1]==g&&De.state.cc.pop()(),d(m("form"),x,y,g,ee)):"function"==e?d(ae):"for"==e?d(m("form"),te,y,g):"variable"==e?Ae&&"type"==t?(De.marked="keyword",d(j,v("operator"),j,v(";"))):Ae&&"declare"==t?(De.marked="keyword",d(y)):Ae&&("module"==t||"enum"==t)&&De.stream.match(/^\s*\w/,!1)?(De.marked="keyword",d(m("form"),X,v("{"),m("}"),P,g,g)):d(m("stat"),N):"switch"==e?d(m("form"),x,v("{"),m("}","switch"),P,g,g):"case"==e?d(b,v(":")):"default"==e?d(v(":")):"catch"==e?d(m("form"),h,v("("),le,v(")"),y,g,p):"class"==e?d(m("form"),ce,g):"export"==e?d(m("stat"),he,g):"import"==e?d(m("stat"),me,g):"async"==e?d(y):"@"==t?d(b,y):u(m("stat"),b,v(";"),g)}function b(e){return k(e,!1)}function w(e){return k(e,!0)}function x(e){return"("!=e?u():d(m(")"),b,v(")"),g)}function k(e,t){if(De.state.fatArrowAt==De.stream.start){var r=t?O:A;if("("==e)return d(h,m(")"),D(le,")"),g,v("=>"),r,p);if("variable"==e)return u(h,X,v("=>"),r,p)}var n=t?T:S;return Fe.hasOwnProperty(e)?d(n):"function"==e?d(ae,n):"class"==e?d(m("form"),se,g):"keyword c"==e||"async"==e?d(t?w:b):"("==e?d(m(")"),C,v(")"),g,n):"operator"==e||"spread"==e?d(t?w:b):"["==e?d(m("]"),we,g,n):"{"==e?z(E,"}",null,n):"quasi"==e?u(L,n):"new"==e?d(function(e){return function(t){return"."==t?d(e?function(e,t){if("target"==t)return De.marked="keyword",d(T)}:function(e,t){if("target"==t)return De.marked="keyword",d(S)}):"variable"==t&&Ae?d(V,e?T:S):u(e?w:b)}}(t)):d()}function C(e){return e.match(/[;\}\)\],]/)?u():u(b)}function S(e,t){return","==e?d(b):T(e,t,!1)}function T(e,t,r){var n=0==r?S:T,i=0==r?b:w;return"=>"==e?d(h,r?O:A,p):"operator"==e?/\+\+|--/.test(t)||Ae&&"!"==t?d(n):Ae&&"<"==t&&De.stream.match(/^([^>]|<.*?>)*>\s*\(/,!1)?d(m(">"),D(j,">"),g,n):"?"==t?d(b,v(":"),i):d(i):"quasi"==e?u(L,n):";"!=e?"("==e?z(w,")","call",n):"."==e?d(_,n):"["==e?d(m("]"),C,v("]"),g,n):Ae&&"as"==t?(De.marked="keyword",d(j,n)):"regexp"==e?(De.state.lastType=De.marked="operator",De.stream.backUp(De.stream.pos-De.stream.start-1),d(i)):void 0:void 0}function L(e,t){return"quasi"!=e?u():"${"!=t.slice(t.length-2)?d(L):d(b,M)}function M(e){if("}"==e)return De.marked="string-2",De.state.tokenize=a,d(L)}function A(e){return l(De.stream,De.state),u("{"==e?y:b)}function O(e){return l(De.stream,De.state),u("{"==e?y:w)}function N(e){return":"==e?d(g,y):u(S,v(";"),g)}function _(e){if("variable"==e)return De.marked="property",d()}function E(e,t){if("async"==e)return De.marked="property",d(E);if("variable"==e||"keyword"==De.style){if(De.marked="property","get"==t||"set"==t)return d(W);var r;return Ae&&De.state.fatArrowAt==De.stream.start&&(r=De.stream.match(/^\s*:\s*/,!1))&&(De.state.fatArrowAt=De.stream.pos+r[0].length),d(F)}return"number"==e||"string"==e?(De.marked=Le?"property":De.style+" property",d(F)):"jsonld-keyword"==e?d(F):"modifier"==e?d(E):"["==e?d(b,v("]"),F):"spread"==e?d(w,F):"*"==t?(De.marked="keyword",d(E)):":"==e?u(F):void 0}function W(e){return"variable"!=e?u(F):(De.marked="property",d(ae))}function F(e){return":"==e?d(w):"("==e?u(ae):void 0}function D(e,t,r){function n(i,o){if(r?r.indexOf(i)>-1:","==i){var a=De.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),d(function(r,n){return r==t||n==t?u():u(e)},n)}return i==t||o==t?d():d(v(t))}return function(r,i){return r==t||i==t?d():u(e,n)}}function z(e,t,r){for(var n=3;n<arguments.length;n++)De.cc.push(arguments[n]);return d(m(t,r),D(e,t),g)}function P(e){return"}"==e?d():u(y,P)}function H(e,t){if(Ae){if(":"==e)return d(j);if("?"==t)return d(H)}}function I(e){if(Ae&&":"==e)return De.stream.match(/^\s*\w+\s+is\b/,!1)?d(b,R,j):d(j)}function R(e,t){if("is"==t)return De.marked="keyword",d()}function j(e,t){return"variable"==e||"void"==t?"keyof"==t?(De.marked="keyword",d(j)):(De.marked="type",d(K)):"string"==e||"number"==e||"atom"==e?d(K):"["==e?d(m("]"),D(j,"]",","),g,K):"{"==e?d(m("}"),D(q,"}",",;"),g,K):"("==e?d(D(U,")"),B):void 0}function B(e){if("=>"==e)return d(j)}function q(e,t){return"variable"==e||"keyword"==De.style?(De.marked="property",d(q)):"?"==t?d(q):":"==e?d(j):"["==e?d(b,H,v("]"),q):void 0}function U(e){return"variable"==e?d(U):":"==e?d(j):void 0}function K(e,t){return"<"==t?d(m(">"),D(j,">"),g,K):"|"==t||"."==e?d(j):"["==e?d(v("]"),K):"extends"==t?d(j):void 0}function V(e,t){if("<"==t)return d(m(">"),D(j,">"),g,K)}function G(){return u(j,$)}function $(e,t){if("="==t)return d(j)}function Y(){return u(X,H,J,Q)}function X(e,t){return"modifier"==e?d(X):"variable"==e?(f(t),d()):"spread"==e?d(X):"["==e?z(X,"]"):"{"==e?z(Z,"}"):void 0}function Z(e,t){return"variable"!=e||De.stream.match(/^\s*:/,!1)?("variable"==e&&(De.marked="property"),"spread"==e?d(X):"}"==e?u():d(v(":"),X,J)):(f(t),d(J))}function J(e,t){if("="==t)return d(w)}function Q(e){if(","==e)return d(Y)}function ee(e,t){if("keyword b"==e&&"else"==t)return d(m("form","else"),y,g)}function te(e){if("("==e)return d(m(")"),re,v(")"),g)}function re(e){return"var"==e?d(Y,v(";"),ie):";"==e?d(ie):"variable"==e?d(ne):u(b,v(";"),ie)}function ne(e,t){return"in"==t||"of"==t?(De.marked="keyword",d(b)):d(S,ie)}function ie(e,t){return";"==e?d(oe):"in"==t||"of"==t?(De.marked="keyword",d(b)):u(b,v(";"),oe)}function oe(e){")"!=e&&d(b)}function ae(e,t){return"*"==t?(De.marked="keyword",d(ae)):"variable"==e?(f(t),d(ae)):"("==e?d(h,m(")"),D(le,")"),g,I,y,p):Ae&&"<"==t?d(m(">"),D(G,">"),g,ae):void 0}function le(e,t){return"@"==t&&d(b,le),"spread"==e||"modifier"==e?d(le):u(X,H,J)}function se(e,t){return"variable"==e?ce(e,t):ue(e,t)}function ce(e,t){if("variable"==e)return f(t),d(ue)}function ue(e,t){return"<"==t?d(m(">"),D(G,">"),g,ue):"extends"==t||"implements"==t||Ae&&","==e?d(Ae?j:b,ue):"{"==e?d(m("}"),de,g):void 0}function de(e,t){return"modifier"==e||"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t)&&De.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(De.marked="keyword",d(de)):"variable"==e||"keyword"==De.style?(De.marked="property",d(Ae?fe:ae,de)):"["==e?d(b,v("]"),Ae?fe:ae,de):"*"==t?(De.marked="keyword",d(de)):";"==e?d(de):"}"==e?d():"@"==t?d(b,de):void 0}function fe(e,t){return"?"==t?d(fe):":"==e?d(j,J):"="==t?d(w):u(ae)}function he(e,t){return"*"==t?(De.marked="keyword",d(be,v(";"))):"default"==t?(De.marked="keyword",d(b,v(";"))):"{"==e?d(D(pe,"}"),be,v(";")):u(y)}function pe(e,t){return"as"==t?(De.marked="keyword",d(v("variable"))):"variable"==e?u(w,pe):void 0}function me(e){return"string"==e?d():u(ge,ve,be)}function ge(e,t){return"{"==e?z(ge,"}"):("variable"==e&&f(t),"*"==t&&(De.marked="keyword"),d(ye))}function ve(e){if(","==e)return d(ge,ve)}function ye(e,t){if("as"==t)return De.marked="keyword",d(ge)}function be(e,t){if("from"==t)return De.marked="keyword",d(b)}function we(e){return"]"==e?d():u(D(w,"]"))}function xe(e,t,r){return t.tokenize==i&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}var ke,Ce,Se=t.indentUnit,Te=r.statementIndent,Le=r.jsonld,Me=r.json||Le,Ae=r.typescript,Oe=r.wordCharacters||/[\w$\xa1-\uffff]/,Ne=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"},l={if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:i,break:i,continue:i,new:e("new"),delete:n,void:n,throw:n,debugger:e("debugger"),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:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n};if(Ae){var s={type:"variable",style:"type"},c={interface:e("class"),implements:n,namespace:n,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 u in c)l[u]=c[u]}return l}(),_e=/[+\-*&%=<>!?|~^@]/,Ee=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,We="([{}])",Fe={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},De={state:null,column:null,marked:null,cc:null},ze={name:"this",next:{name:"arguments"}};return g.lex=!0,{startState:function(e){var t={tokenize:i,lastType:"sof",cc:[],lexical:new s((e||0)-Se,0,"block",!1),localVars:r.localVars,context:r.localVars&&{vars:r.localVars},indented:e||0};return r.globalVars&&"object"==typeof r.globalVars&&(t.globalVars=r.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),l(e,t)),t.tokenize!=o&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==ke?r:(t.lastType="operator"!=ke||"++"!=Ce&&"--"!=Ce?ke:"incdec",function(e,t,r,n,i){var o=e.cc;for(De.state=e,De.stream=i,De.marked=null,De.cc=o,De.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():Me?b:y)(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return De.marked?De.marked:"variable"==r&&c(e,n)?"variable-2":t}}(t,r,ke,Ce,e))},indent:function(t,n){if(t.tokenize==o)return e.Pass;if(t.tokenize!=i)return 0;var a,l=n&&n.charAt(0),s=t.lexical;if(!/^\s*else\b/.test(n))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==g)s=s.prev;else if(u!=ee)break}for(;("stat"==s.type||"form"==s.type)&&("}"==l||(a=t.cc[t.cc.length-1])&&(a==S||a==T)&&!/^[,\.=+\-*:?[\(]/.test(n));)s=s.prev;Te&&")"==s.type&&"stat"==s.prev.type&&(s=s.prev);var d=s.type,f=l==d;return"vardef"==d?s.indented+("operator"==t.lastType||","==t.lastType?s.info+1:0):"form"==d&&"{"==l?s.indented:"form"==d?s.indented+Se:"stat"==d?s.indented+(function(e,t){return"operator"==e.lastType||","==e.lastType||_e.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,n)?Te||Se:0):"switch"!=s.info||f||0==r.doubleIndentSwitch?s.align?s.column+(f?0:1):s.indented+(f?0:Se):s.indented+(/^(?:case|default)\b/.test(n)?Se:2*Se)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Me?null:"/*",blockCommentEnd:Me?null:"*/",blockCommentContinue:Me?null:" * ",lineComment:Me?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Me?"json":"javascript",jsonldMode:Le,jsonMode:Me,expressionAllowed:xe,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=b&&t!=w||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})})},{"../../lib/codemirror":15}],19:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},r={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(n,i){function o(e,t){function r(r){return t.tokenize=r,r(e,t)}var n=e.next();if("<"==n)return e.eat("!")?e.eat("[")?e.match("CDATA[")?r(l("atom","]]>")):null:e.match("--")?r(l("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),r(s(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=l("meta","?>"),"meta"):(S=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==n){return(e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"))?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var r=e.next();if(">"==r||"/"==r&&e.eat(">"))return t.tokenize=o,S=">"==r?"endTag":"selfcloseTag","tag bracket";if("="==r)return S="equals",null;if("<"==r){t.tokenize=o,t.state=d,t.tagName=t.tagStart=null;var n=t.tokenize(e,t);return n?n+" tag error":"tag error"}return/[\'\"]/.test(r)?(t.tokenize=function(e){var t=function(t,r){for(;!t.eol();)if(t.next()==e){r.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}(r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function l(e,t){return function(r,n){for(;!r.eol();){if(r.match(t)){n.tokenize=o;break}r.next()}return e}}function s(e){return function(t,r){for(var n;null!=(n=t.next());){if("<"==n)return r.tokenize=s(e+1),r.tokenize(t,r);if(">"==n){if(1==e){r.tokenize=o;break}return r.tokenize=s(e-1),r.tokenize(t,r)}}return"meta"}}function c(e){e.context&&(e.context=e.context.prev)}function u(e,t){for(var r;;){if(!e.context)return;if(r=e.context.tagName,!x.contextGrabbers.hasOwnProperty(r)||!x.contextGrabbers[r].hasOwnProperty(t))return;c(e)}}function d(e,t,r){return"openTag"==e?(r.tagStart=t.column(),f):"closeTag"==e?h:d}function f(e,t,r){return"word"==e?(r.tagName=t.current(),T="tag",g):(T="error",f)}function h(e,t,r){if("word"==e){var n=t.current();return r.context&&r.context.tagName!=n&&x.implicitlyClosed.hasOwnProperty(r.context.tagName)&&c(r),r.context&&r.context.tagName==n||!1===x.matchClosing?(T="tag",p):(T="tag error",m)}return T="error",m}function p(e,t,r){return"endTag"!=e?(T="error",p):(c(r),d)}function m(e,t,r){return T="error",p(e,0,r)}function g(e,t,r){if("word"==e)return T="attribute",v;if("endTag"==e||"selfcloseTag"==e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,"selfcloseTag"==e||x.autoSelfClosers.hasOwnProperty(n)?u(r,n):(u(r,n),r.context=new function(e,t,r){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r,(x.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}(r,n,i==r.indented)),d}return T="error",g}function v(e,t,r){return"equals"==e?y:(x.allowMissing||(T="error"),g(e,0,r))}function y(e,t,r){return"string"==e?b:"word"==e&&x.allowUnquoted?(T="string",g):(T="error",g(e,0,r))}function b(e,t,r){return"string"==e?b:g(e,0,r)}var w=n.indentUnit,x={},k=i.htmlMode?t:r;for(var C in k)x[C]=k[C];for(var C in i)x[C]=i[C];var S,T;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:d,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;S=null;var r=t.tokenize(e,t);return(r||S)&&"comment"!=r&&(T=null,t.state=t.state(S||r,e,t),T&&(r="error"==T?r+" error":T)),r},indent:function(t,r,n){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+w;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return n?n.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==x.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+w*(x.multilineTagIndentFactor||1);if(x.alignCDATA&&/<!\[CDATA\[/.test(r))return 0;var l=r&&/^<(\/)?([\w_:\.-]*)/.exec(r);if(l&&l[1])for(;i;){if(i.tagName==l[2]){i=i.prev;break}if(!x.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(l)for(;i;){var s=x.contextGrabbers[i.tagName];if(!s||!s.hasOwnProperty(l[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+w:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:x.htmlMode?"html":"xml",helperType:x.htmlMode?"html":"xml",skipAttribute:function(e){e.state==y&&(e.state=g)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})},{"../../lib/codemirror":15}],20:[function(e,t,r){t.exports={prettyPrint:function(e,t){var r,n,i,o,a,l;for(n=(t=t||{}).indent_size||4,i=t.indent_char||" ",a=t.brace_style||"collapse",o=0==t.max_char?1/0:t.max_char||70,l=t.unformatted||["a","span","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"],(r=new function(){return this.pos=0,this.token="",this.current_mode="CONTENT",this.tags={parent:"parent1",parentcount:1,parent1:""},this.tag_type="",this.token_text=this.last_token=this.last_text=this.token_type="",this.Utils={whitespace:"\n\r\t ".split(""),single_token:"br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?=".split(","),extra_liners:"head,body,/html".split(","),in_array:function(e,t){for(var r=0;r<t.length;r++)if(e===t[r])return!0;return!1}},this.get_content=function(){for(var e="",t=[],r=!1;"<"!==this.input.charAt(this.pos);){if(this.pos>=this.input.length)return t.length?t.join(""):["","TK_EOF"];if(e=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(e,this.Utils.whitespace))t.length&&(r=!0),this.line_char_count--;else{if(r){if(this.line_char_count>=this.max_char){t.push("\n");for(var n=0;n<this.indent_level;n++)t.push(this.indent_string);this.line_char_count=0}else t.push(" "),this.line_char_count++;r=!1}t.push(e)}}return t.length?t.join(""):""},this.get_contents_to=function(e){if(this.pos==this.input.length)return["","TK_EOF"];var t="",r=new RegExp("</"+e+"\\s*>","igm");r.lastIndex=this.pos;var n=r.exec(this.input),i=n?n.index:this.input.length;return this.pos<i&&(t=this.input.substring(this.pos,i),this.pos=i),t},this.record_tag=function(e){this.tags[e+"count"]?(this.tags[e+"count"]++,this.tags[e+this.tags[e+"count"]]=this.indent_level):(this.tags[e+"count"]=1,this.tags[e+this.tags[e+"count"]]=this.indent_level),this.tags[e+this.tags[e+"count"]+"parent"]=this.tags.parent,this.tags.parent=e+this.tags[e+"count"]},this.retrieve_tag=function(e){if(this.tags[e+"count"]){for(var t=this.tags.parent;t&&e+this.tags[e+"count"]!==t;)t=this.tags[t+"parent"];t&&(this.indent_level=this.tags[e+this.tags[e+"count"]],this.tags.parent=this.tags[t+"parent"]),delete this.tags[e+this.tags[e+"count"]+"parent"],delete this.tags[e+this.tags[e+"count"]],1==this.tags[e+"count"]?delete this.tags[e+"count"]:this.tags[e+"count"]--}},this.get_tag=function(){var e,t,r="",n=[],i=!1;do{if(this.pos>=this.input.length)return n.length?n.join(""):["","TK_EOF"];r=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(r,this.Utils.whitespace)?(i=!0,this.line_char_count--):("'"!==r&&'"'!==r||n[1]&&"!"===n[1]||(r+=this.get_unformatted(r),i=!0),"="===r&&(i=!1),n.length&&"="!==n[n.length-1]&&">"!==r&&i&&(this.line_char_count>=this.max_char?(this.print_newline(!1,n),this.line_char_count=0):(n.push(" "),this.line_char_count++),i=!1),"<"===r&&(e=this.pos-1),n.push(r))}while(">"!==r);var o,a=n.join("");o=-1!=a.indexOf(" ")?a.indexOf(" "):a.indexOf(">");var s=a.substring(1,o).toLowerCase();if("/"===a.charAt(a.length-2)||this.Utils.in_array(s,this.Utils.single_token))this.tag_type="SINGLE";else if("script"===s)this.record_tag(s),this.tag_type="SCRIPT";else if("style"===s)this.record_tag(s),this.tag_type="STYLE";else if(this.Utils.in_array(s,l)){var c=this.get_unformatted("</"+s+">",a);n.push(c),e>0&&this.Utils.in_array(this.input.charAt(e-1),this.Utils.whitespace)&&n.splice(0,0,this.input.charAt(e-1)),t=this.pos-1,this.Utils.in_array(this.input.charAt(t+1),this.Utils.whitespace)&&n.push(this.input.charAt(t+1)),this.tag_type="SINGLE"}else"!"===s.charAt(0)?-1!=s.indexOf("[if")?(-1!=a.indexOf("!IE")&&(c=this.get_unformatted("--\x3e",a),n.push(c)),this.tag_type="START"):-1!=s.indexOf("[endif")?(this.tag_type="END",this.unindent()):-1!=s.indexOf("[cdata[")?(c=this.get_unformatted("]]>",a),n.push(c),this.tag_type="SINGLE"):(c=this.get_unformatted("--\x3e",a),n.push(c),this.tag_type="SINGLE"):("/"===s.charAt(0)?(this.retrieve_tag(s.substring(1)),this.tag_type="END"):(this.record_tag(s),this.tag_type="START"),this.Utils.in_array(s,this.Utils.extra_liners)&&this.print_newline(!0,this.output));return n.join("")},this.get_unformatted=function(e,t){if(t&&-1!=t.toLowerCase().indexOf(e))return"";var r="",n="",i=!0;do{if(this.pos>=this.input.length)return n;if(r=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(r,this.Utils.whitespace)){if(!i){this.line_char_count--;continue}if("\n"===r||"\r"===r){n+="\n",this.line_char_count=0;continue}}n+=r,this.line_char_count++,i=!0}while(-1==n.toLowerCase().indexOf(e));return n},this.get_token=function(){var e;if("TK_TAG_SCRIPT"===this.last_token||"TK_TAG_STYLE"===this.last_token){var t=this.last_token.substr(7);return"string"!=typeof(e=this.get_contents_to(t))?e:[e,"TK_"+t]}return"CONTENT"===this.current_mode?"string"!=typeof(e=this.get_content())?e:[e,"TK_CONTENT"]:"TAG"===this.current_mode?"string"!=typeof(e=this.get_tag())?e:[e,"TK_TAG_"+this.tag_type]:void 0},this.get_full_indent=function(e){return(e=this.indent_level+e||0)<1?"":Array(e+1).join(this.indent_string)},this.printer=function(e,t,r,n,i){this.input=e||"",this.output=[],this.indent_character=t,this.indent_string="",this.indent_size=r,this.brace_style=i,this.indent_level=0,this.max_char=n,this.line_char_count=0;for(var o=0;o<this.indent_size;o++)this.indent_string+=this.indent_character;this.print_newline=function(e,t){if(this.line_char_count=0,t&&t.length){if(!e)for(;this.Utils.in_array(t[t.length-1],this.Utils.whitespace);)t.pop();t.push("\n");for(var r=0;r<this.indent_level;r++)t.push(this.indent_string)}},this.print_token=function(e){this.output.push(e)},this.indent=function(){this.indent_level++},this.unindent=function(){this.indent_level>0&&this.indent_level--}},this}).printer(e,i,n,o,a);;){var s=r.get_token();if(r.token_text=s[0],r.token_type=s[1],"TK_EOF"===r.token_type)break;switch(r.token_type){case"TK_TAG_START":r.print_newline(!1,r.output),r.print_token(r.token_text),r.indent(),r.current_mode="CONTENT";break;case"TK_TAG_STYLE":case"TK_TAG_SCRIPT":r.print_newline(!1,r.output),r.print_token(r.token_text),r.current_mode="CONTENT";break;case"TK_TAG_END":if("TK_CONTENT"===r.last_token&&""===r.last_text){var c=r.token_text.match(/\w+/)[0],u=r.output[r.output.length-1].match(/<\s*(\w+)/);null!==u&&u[1]===c||r.print_newline(!0,r.output)}r.print_token(r.token_text),r.current_mode="CONTENT";break;case"TK_TAG_SINGLE":var d=r.token_text.match(/^\s*<([a-z]+)/i);d&&r.Utils.in_array(d[1],l)||r.print_newline(!1,r.output),r.print_token(r.token_text),r.current_mode="CONTENT";break;case"TK_CONTENT":""!==r.token_text&&r.print_token(r.token_text),r.current_mode="TAG";break;case"TK_STYLE":case"TK_SCRIPT":if(""!==r.token_text){r.output.push("\n");var f=r.token_text;if("TK_SCRIPT"==r.token_type)var h="function"==typeof js_beautify&&js_beautify;else"TK_STYLE"==r.token_type&&(h="function"==typeof css_beautify&&css_beautify);if("keep"==t.indent_scripts)var p=0;else p="separate"==t.indent_scripts?-r.indent_level:1;var m=r.get_full_indent(p);if(h)f=h(f.replace(/^\s*/,m),t);else{var g=f.match(/^\s*/)[0].match(/[^\n\r]*$/)[0].split(r.indent_string).length-1,v=r.get_full_indent(p-g);f=f.replace(/^\s*/,m).replace(/\r\n|\r|\n/g,"\n"+v).replace(/\s*$/,"")}f&&(r.print_token(f),r.print_newline(!0,r.output))}r.current_mode="TAG"}r.last_token=r.token_type,r.last_text=r.token_text}return r.output.join("")}}},{}],21:[function(e,t,r){"use strict";t.exports=e("./stream/stream")},{"./stream/stream":22}],22:[function(e,t,r){!function(){"use strict";function e(){function t(){return arguments.length>0&&arguments[0]!==v&&r(t,arguments[0]),t._state.value}return function(t){t.constructor=e,t._state={id:g++,value:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],endStream:void 0,unregister:void 0},t.map=t["fantasy-land/map"]=s,t["fantasy-land/ap"]=c,t["fantasy-land/of"]=e,t.valueOf=u,t.toJSON=d,t.toString=u,Object.defineProperties(t,{end:{get:function(){if(!t._state.endStream){var r=e();r.map(function(e){return!0===e&&(l(t),r._state.unregister=function(){l(r)}),e}),t._state.endStream=r}return t._state.endStream}}})}(t),arguments.length>0&&arguments[0]!==v&&r(t,arguments[0]),t}function r(e,t){n(e,t);for(var r in e._state.deps)i(e._state.deps[r],!1);null!=e._state.unregister&&e._state.unregister(),function(e){e._state.changed=!1;for(var t in e._state.deps)e._state.deps[t]._state.changed=!1}(e)}function n(e,t){e._state.value=t,e._state.changed=!0,2!==e._state.state&&(e._state.state=1)}function i(e,t){var r=e._state.parents;if(r.length>0&&r.every(h)&&(t||r.some(p))){var i=e._state.derive();if(i===v)return!1;n(e,i)}}function o(t,r){if(!r.every(f))throw new Error("Ensure that each item passed to stream.combine/stream.merge is a stream");return function(e,t,r){var n=e._state;return n.derive=r,n.parents=t.filter(m),a(e,n.parents),i(e,!0),e}(e(),r,function(){return t.apply(this,r.concat([r.filter(p)]))})}function a(e,t){for(var r=0;r<t.length;r++)t[r]._state.deps[e._state.id]=e,a(e,t[r]._state.parents)}function l(e){for(var t=0;t<e._state.parents.length;t++){delete e._state.parents[t]._state.deps[e._state.id]}for(var r in e._state.deps){var n=e._state.deps[r],i=n._state.parents.indexOf(e);i>-1&&n._state.parents.splice(i,1)}e._state.state=2,e._state.deps={}}function s(e){return o(function(t){return e(t())},[this])}function c(e){return o(function(e,t){return e()(t())},[e,this])}function u(){return this._state.value}function d(){return null!=this._state.value&&"function"==typeof this._state.value.toJSON?this._state.value.toJSON():this._state.value}function f(e){return e._state}function h(e){return 1===e._state.state}function p(e){return e._state.changed}function m(e){return 2!==e._state.state}var g=0,v={};e["fantasy-land/of"]=e,e.merge=function(e){return o(function(){return e.map(function(e){return e()})},e)},e.combine=o,e.scan=function(e,t,r){var n=o(function(r){return t=e(t,r._state.value)},[r]);return 0===n._state.state&&n(t),n},e.scanMerge=function(e,t){var r=e.map(function(e){var t=e[0];return 0===t._state.state&&t(void 0),t});return o(function(){var n=arguments[arguments.length-1];return r.forEach(function(r,i){n.indexOf(r)>-1&&(t=e[i][1](t,r._state.value))}),t},r)},e.HALT=v,void 0!==t?t.exports=e:"function"!=typeof window.m||"stream"in window.m?window.m={stream:e}:window.m.stream=e}()},{}]},{},[11])}();
2
  //# sourceMappingURL=forms-admin.min.js.map
1
+ !function(){var e=void 0,t=void 0;!function(){function t(r,n,i){function o(l,s){if(!n[l]){if(!r[l]){var c="function"==typeof e&&e;if(!s&&c)return c(l,!0);if(a)return a(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[l]={exports:{}};r[l][0].call(d.exports,function(e){var t=r[l][1][e];return o(t||e)},d,d.exports,t,r,n,i)}return n[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}return t}()({1:[function(e,t,r){"use strict";t.exports=function(e,t){var r={};return r.showType=function(r){var n=r.type();return n=n.charAt(0).toUpperCase()+n.slice(1),e("div",[e("label",t.fieldType),e("span",n)])},r.label=function(r){return e("div",[e("label",t.fieldLabel),e("input.widefat",{type:"text",value:r.label(),onchange:e.withAttr("value",r.label),placeholder:r.title()})])},r.value=function(r){var n="hidden"===r.type();return e("div",[e("label",[n?t.value:t.initialValue," ",n?"":e("small",{style:"float: right; font-weight: normal;"},t.optional)]),e("input.widefat",{type:"text",value:r.value(),onchange:e.withAttr("value",r.value)}),n?"":e("p.help",t.valueHelp)])},r.numberMinMax=function(r){return e("div",[e("div.row",[e("div.col.col-3",[e("label",t.min),e("input",{type:"number",onchange:e.withAttr("value",r.min)})]),e("div.col.col-3",[e("label",t.max),e("input",{type:"number",onchange:e.withAttr("value",r.max)})])])])},r.isRequired=function(r){var n={type:"checkbox",checked:r.required(),onchange:e.withAttr("checked",r.required)},i=void 0;return r.forceRequired()&&(n.required=!0,n.disabled=!0,i=e("p.help",t.forceRequired)),e("div",[e("label.cb-wrap",[e("input",n),t.isFieldRequired]),i])},r.placeholder=function(r){return e("div",[e("label",[t.placeholder," ",e("small",{style:"float: right; font-weight: normal;"},t.optional)]),e("input.widefat",{type:"text",value:r.placeholder(),onchange:e.withAttr("value",r.placeholder),placeholder:""}),e("p.help",t.placeholderHelp)])},r.useParagraphs=function(r){return e("div",[e("label.cb-wrap",[e("input",{type:"checkbox",checked:r.wrap(),onchange:e.withAttr("checked",r.wrap)}),t.wrapInParagraphTags])])},r.choiceType=function(r){var n=[e("option",{value:"select",selected:"select"===r.type()&&"selected"},t.dropdown),e("option",{value:"radio",selected:"radio"===r.type()&&"selected"},t.radioButtons)];return r.acceptsMultipleValues&&n.push(e("option",{value:"checkbox",selected:"checkbox"===r.type()&&"selected"},t.checkboxes)),e("div",[e("label",t.choiceType),e("select",{value:r.type(),onchange:e.withAttr("value",r.type)},n)])},r.choices=function(r){var n=[];return n.push(e("div",[e("label",t.choices),e("div.limit-height",[e("table",[r.choices().map(function(n,i){return e("tr",{"data-id":i},[e("td.cb",e("input",{name:"selected",type:"checkbox"===r.type()?"checkbox":"radio",onchange:e.withAttr("value",r.selectChoice.bind(r)),checked:n.selected(),value:n.value(),title:t.preselect})),e("td.stretch",e("input.widefat",{type:"text",value:n.label(),placeholder:n.title(),onchange:e.withAttr("value",n.label)})),e("td",e("span",{title:t.remove,class:"dashicons dashicons-no-alt hover-activated",onclick:function(e){this.choices().splice(e,1)}.bind(r,i)},""))])})])])])),n},r}},{}],2:[function(e,t,r){"use strict";t.exports=function(t,r){var n={},i=e("./field-forms-rows.js")(t,r);return n.render=function(e){var t=e.type();if("function"==typeof n[t])return n[t](e);switch(t){case"select":case"radio":case"checkbox":return n.choice(e)}return n.text(e)},n.text=function(e){return[i.label(e),i.placeholder(e),i.value(e),i.isRequired(e),i.useParagraphs(e)]},n.choice=function(e){var t=[i.label(e),i.choiceType(e),i.choices(e)];return"select"===e.type()&&t.push(i.placeholder(e)),t.push(i.useParagraphs(e)),"select"!==e.type()&&"radio"!==e.type()||t.push(i.isRequired(e)),t},n.hidden=function(e){return e.placeholder(""),e.label(""),e.wrap(!1),[i.showType(e),i.value(e)]},n.submit=function(e){return e.label(""),e.placeholder(""),[i.value(e),i.useParagraphs(e)]},n.number=function(e){return[n.text(e),i.numberMinMax(e)]},n}},{"./field-forms-rows.js":1}],3:[function(e,t,r){"use strict";var n=e("html"),i=function(e){e.dom.checked&&e.dom.setAttribute("checked","true"),e.dom.value&&e.dom.setAttribute("value",e.dom.value),e.dom.selected&&e.dom.setAttribute("selected","true")};t.exports=function(e){var t={};return t.select=function(t){var r={name:t.name(),required:t.required()},n=!1,o=t.choices().map(function(t){return t.selected()&&(n=!0),e("option",{value:t.value()!==t.label()?t.value():void 0,selected:t.selected(),oncreate:i},t.label())}),a=t.placeholder();return a.length>0&&o.unshift(e("option",{disabled:!0,value:"",selected:!n,oncreate:i},a)),e("select",r,o)},t.checkbox=function(t){return t.choices().map(function(r){var n=t.name()+("checkbox"===t.type()?"[]":""),o=t.required()&&"radio"===t.type();return e("label",[e("input",{name:n,type:t.type(),value:r.value(),checked:r.selected(),required:o,oncreate:i})," ",e("span",r.label())])})},t.radio=t.checkbox,t.default=function(t){var r={type:t.type()};return t.name()&&(r.name=t.name()),t.min()&&(r.min=t.min()),t.max()&&(r.max=t.max()),t.value().length>0&&(r.value=t.value()),t.placeholder().length>0&&(r.placeholder=t.placeholder()),r.required=t.required(),r.oncreate=i,e("input",r)},function(r){var i=void 0,o=void 0,a=void 0,l=document.createElement("div");return i=r.label().length>0?e("label",{},r.label()):"",o="function"==typeof t[r.type()]?t[r.type()](r):t.default(r),a=r.wrap()?e("p",[i,o]):[i,o],e.render(l,a),n.prettyPrint(l.innerHTML)+"\n"}}},{html:22}],4:[function(e,t,r){"use strict";t.exports=function(t,r,n,i,o,a){function l(e){(c=i.get(e))&&c.choices().length>0&&c.value(c.choices().map(function(e){return e.label()}).join("|")),t.redraw()}function s(){var e=u(c);n.insert(e),l(""),t.redraw()}var c,u=e("./field-generator.js")(t),d=e("./overlay.js")(t,a),f=e("./field-forms.js")(t,a);return n.on("blur",t.redraw),{view:function(){var e=i.getCategories(),r=i.getAll(),n=t("div.available-fields.small-margin",[t("h4",a.chooseField),e.map(function(e){var n=r.filter(function(t){return t.category===e});if(n.length)return t("div.tiny-margin",[t("strong",e),n.map(function(e){var r="button";e.forceRequired()&&(r+=" is-required");var n=e.inFormContent();return null!==n&&(r+=" "+(n?"in-form":"not-in-form")),t("button",{className:r,type:"button",onclick:t.withAttr("value",l),value:e.index},e.title())})])})]),o=null;return c&&(o=d(t("div.field-wizard",[t("h3",[c.title(),c.forceRequired()?t("span.red","*"):"",c.name().length?t("code",c.name()):""]),c.help().length?t("p",t.trust(c.help())):"",f.render(c),t("p",[t("button",{class:"button-primary",type:"button",onkeydown:function(e){13==(e=e||window.event).keyCode&&s()},onclick:s},a.addToForm)])]),l)),[n,o]},controller:function(){}}}},{"./field-forms.js":2,"./field-generator.js":3,"./overlay.js":10}],5:[function(e,t,r){"use strict";t.exports=function(e,t){function r(t,r,n){var i=e.register(t,r);n||l.push(i)}function n(e){var t={phone:"tel",dropdown:"select",checkboxes:"checkbox",birthday:"text"};return void 0!==t[e]?t[e]:e}function i(e){var i=t.listFields,o=n(e.field_type),a={name:e.tag,title:e.name,required:e.required,forceRequired:e.required,type:o,choices:e.choices,acceptsMultipleValues:!1};return"address"!==a.type?r(i,a,!1):(r(i,{name:a.name+"[addr1]",type:"text",mailchimpType:"address",title:t.streetAddress}),r(i,{name:a.name+"[city]",type:"text",mailchimpType:"address",title:t.city}),r(i,{name:a.name+"[state]",type:"text",mailchimpType:"address",title:t.state}),r(i,{name:a.name+"[zip]",type:"text",mailchimpType:"address",title:t.zip}),r(i,{name:a.name+"[country]",type:"select",mailchimpType:"address",title:t.country,choices:mc4wp_vars.countries})),!0}function o(e){var i=t.interestCategories,o=n(e.field_type);r(i,{title:e.name,name:"INTERESTS["+e.id+"]",type:o,choices:e.interests,acceptsMultipleValues:"checkbox"===o},!1)}function a(e){e.merge_fields=e.merge_fields.sort(function(e,t){return"EMAIL"===e.tag||e.public&&!t.public?-1:!e.public&&t.public?1:0}),e.merge_fields.forEach(i),e.interest_categories.forEach(o)}var l=[];return{registerCustomFields:function(e){var n,i=t.formFields;r(i,{name:"",value:t.subscribe,type:"submit",title:t.submitButton},!0),n={};for(var o in e)n[e[o].id]=e[o].name;r(i,{name:"_mc4wp_lists",type:"checkbox",title:t.listChoice,choices:n,help:t.listChoiceDescription,acceptsMultipleValues:!0},!0),n={subscribe:"Subscribe",unsubscribe:"Unsubscribe"},r(i,{name:"_mc4wp_action",type:"radio",title:t.formAction,choices:n,value:"subscribe",help:t.formActionDescription},!0)},registerListFields:a,registerListsFields:function(t){l.forEach(e.deregister),t.forEach(a)}}}},{}],6:[function(e,t,r){"use strict";var n=e("mithril/stream");t.exports=function(e,t){function r(e,t){return o.filter(function(r){return r[e]()===t})}var i,o=[],a=[],l=function(e){this.name=n(e.name),this.title=n(e.title||e.name),this.type=n(e.type),this.mailchimpType=n(e.mailchimpType||""),this.label=n(e.title||""),this.value=n(e.value||""),this.placeholder=n(e.placeholder||""),this.required=n(e.required||!1),this.forceRequired=n(e.forceRequired||!1),this.wrap=n(e.wrap||!0),this.min=n(e.min||null),this.max=n(e.max||null),this.help=n(e.help||""),this.choices=n(e.choices||[]),this.inFormContent=n(null),this.acceptsMultipleValues=e.acceptsMultipleValues,this.selectChoice=function(e){var t=this;this.choices(this.choices().map(function(r){return r.value()===e?r.selected(!0):"checkbox"!==t.type()&&r.selected(!1),r}))}},s=function(e){this.label=n(e.label),this.title=n(e.title||e.label),this.selected=n(e.selected||!1),this.value=n(e.value||e.label)};return{get:function(e){return o[e]},getAll:function(){return o=o.map(function(e,t){return e.index=t,e})},getCategories:function(){return a},deregister:function(t){var r=o.indexOf(t);r>-1&&(delete o[r],e.redraw())},register:function(n,c){var u,d=r("name",c.name).shift();if(!d)return c.choices&&(c.choices=function(e){return"function"==typeof e.map?e.map(function(e){return new s({label:e})}):Object.keys(e).map(function(t){var r=e[t];return new s({label:r,value:t})})}(c.choices),c.value&&(c.choices=c.choices.map(function(e){return e.value()===c.value&&e.selected(!0),e}))),a.indexOf(n)<0&&a.push(n),u=new l(c),u.category=n,o.push(u),i&&window.clearTimeout(i),i=window.setTimeout(e.redraw,200),t.trigger("fields.change"),u;!d.forceRequired()&&c.forceRequired&&d.forceRequired(!0)},getAllWhere:r}}},{"mithril/stream":23}],7:[function(e,t,r){"use strict";function n(){var e=h.contentDocument||h.contentWindow.document;(s=e.querySelector(".mc4wp-form-fields"))&&i()}function i(){var e=c.getValue();e=e.replace(p,"").replace(p,""),s.innerHTML=e,s.dispatchEvent(new Event("mc4wp-refresh"))}function o(){return d&&(u.innerHTML=c.getValue().toLowerCase(),d=!1),u}var a=e("codemirror");e("codemirror/mode/xml/xml"),e("codemirror/mode/javascript/javascript"),e("codemirror/mode/css/css"),e("codemirror/mode/htmlmixed/htmlmixed"),e("codemirror/addon/fold/xml-fold.js"),e("codemirror/addon/edit/matchtags.js"),e("codemirror/addon/edit/closetag.js"),e("codemirror/addon/selection/active-line.js"),e("codemirror/addon/edit/matchbrackets.js");var l,s,c={},u=document.createElement("form"),d=!1,f=document.getElementById("mc4wp-form-content"),h=document.getElementById("mc4wp-form-preview"),p=/\{[^{}]+\}/g;window.addEventListener("load",function(){a.signal(l,"change")}),f.addEventListener("change",function(){d=!0,i()}),c.getValue=function(){return l?l.getValue():f.value},c.query=function(e){return o().querySelectorAll(e.toLowerCase())},c.containsField=function(e){return null!==o().elements.namedItem(e.toLowerCase())},c.insert=function(e){l?(l.replaceSelection(e),l.focus()):f.value+=e},c.on=function(e,t){return l?(e="input"===e?"changes":e,l.on(e,t)):f.addEventListener(e,t)},c.refresh=function(){l&&l.refresh()},u.innerHTML=f.value.toLowerCase(),a&&(l=a.fromTextArea(f,{selectionPointer:!0,mode:"htmlmixed",htmlMode:!0,autoCloseTags:!0,autoRefresh:!0,styleActiveLine:!0,matchBrackets:!0,matchTags:{bothTags:!0}}),window.dispatchEvent&&l.on("change",function(){if("function"==typeof Event){var e=new Event("change",{bubbles:!0});f.dispatchEvent(e)}})),h.addEventListener("load",n),n.call(),t.exports=c},{codemirror:17,"codemirror/addon/edit/closetag.js":12,"codemirror/addon/edit/matchbrackets.js":13,"codemirror/addon/edit/matchtags.js":14,"codemirror/addon/fold/xml-fold.js":15,"codemirror/addon/selection/active-line.js":16,"codemirror/mode/css/css":18,"codemirror/mode/htmlmixed/htmlmixed":19,"codemirror/mode/javascript/javascript":20,"codemirror/mode/xml/xml":21}],8:[function(e,t,r){"use strict";t.exports=function(e,t,r,n,i,o){function a(){n.getAll().forEach(function(e){if(!(e.name().length<=0)){var r=e.name();"checkbox"===e.type()&&(r+="[]");var n=t.containsField(r);if(e.inFormContent(n),"address"===e.mailchimpType()){e.originalRequiredValue=void 0===e.originalRequiredValue?e.forceRequired():e.originalRequiredValue;var i=e.name().replace(/\[(\w+)\]/g,"");t.query('[name^="'+i+'"]').length>0?(void 0===e.originalRequiredValue&&(e.originalRequiredValue=e.forceRequired()),e.forceRequired(!0)):e.forceRequired(e.originalRequiredValue)}}}),function(){var e=n.getAllWhere("forceRequired",!0).map(function(e){return e.name().toUpperCase().replace(/\[(\w+)\]/g,".$1")}),r=t.query("[required]");Array.prototype.forEach.call(r,function(t){var r=t.name;if(r&&!(r.length<0)&&"_"!==r[0]){var n=(r=(r=r.replace(/\[(\w+)\]/g,".$1")).replace(/\[\]$/,"")).indexOf(".");n=n>0?n:r.length,r=r.substr(0,n).toUpperCase()+r.substr(n),-1===e.indexOf(r)&&e.push(r)}}),l.value=e.join(",")}(),e.redraw()}var l=document.getElementById("required-fields");t.on("change",o.debounce(a,500)),i.on("fields.change",o.debounce(a,500))}},{}],9:[function(e,t,r){"use strict";function n(e,t){a[e]=t,o()}function i(e){delete a[e],o()}function o(){var e="";for(var t in a)e+='<div class="notice notice-warning inline"><p>'+a[t]+"</p></div>";var r=document.querySelector(".mc4wp-notices");if(!r){(r=document.createElement("div")).className="mc4wp-notices";var n=document.querySelector("h1, h2");n.parentNode.insertBefore(r,n.nextSibling)}r.innerHTML=e}var a={};t.exports={init:function(e,t){var r=function(){e.getValue().toLowerCase().indexOf('name="groupings')>-1?n("deprecated_groupings","Your form contains old style <code>GROUPINGS</code> fields. <br /><br />Please remove these fields from your form and then re-add them through the available field buttons to make sure your data is getting through to MailChimp correctly."):i("deprecated_groupings")},o=function(){var r=t.getAllWhere("forceRequired",!0).filter(function(t){return!e.containsField(t.name().toUpperCase())}),o="<strong>Heads up!</strong> Your form is missing list fields that are required in MailChimp. Either add these fields to your form or mark them as optional in MailChimp.";o+='<br /><ul class="ul-square" style="margin-bottom: 0;"><li>'+r.map(function(e){return e.title()}).join("</li><li>")+"</li></ul>",r.length>0?n("required_fields_missing",o):i("required_fields_missing")};r(),e.on("focus",r),e.on("blur",r),o(),e.on("blur",o),e.on("focus",o)}}},{}],10:[function(e,t,r){"use strict";t.exports=function(e,t){function r(){document.removeEventListener("keydown",n),window.removeEventListener("resize",i),l()}function n(e){27==(e=e||window.event).keyCode&&r(),13==e.keyCode&&e.preventDefault()}function i(){if(a){var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,t=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,r=(e-a.clientWidth-40)/2,n=(t-a.clientHeight-40)/2;a.style.left=(r>0?r:0)+"px",a.style.top=(n>0?n:0)+"px"}}function o(e){a=e.dom,i()}var a=void 0,l=void 0;return function(a,s){return l=s,document.addEventListener("keydown",n),window.addEventListener("resize",i),[e("div.overlay-wrap",e("div.overlay",{oncreate:o},[e("span",{class:"close dashicons dashicons-no",title:t.close,onclick:r}),a])),e("div.overlay-background",{title:t.close,onclick:r})]}}},{}],11:[function(e,t,r){"use strict";var n=window.mc4wp_forms_i18n,i=window.mc4wp.deps.mithril,o=mc4wp.events,a=mc4wp.settings,l=mc4wp.helpers,s=mc4wp.tabs,c=e("./admin/form-watcher.js"),u=e("./admin/form-editor.js"),d=e("./admin/field-helper.js"),f=e("./admin/fields-factory.js"),h=e("./admin/fields.js")(i,o),p=window.formEditor=u,m=(new c(i,formEditor,a,h,o,l),new d(i,s,formEditor,h,o,n)),g=e("./admin/notices");i.mount(document.getElementById("mc4wp-field-wizard"),m);var v=new f(h,n);o.on("selectedLists.change",v.registerListsFields),v.registerListsFields(a.getSelectedLists()),v.registerCustomFields(mc4wp_vars.mailchimp.lists),window.setTimeout(function(){i.redraw()},2e3),g.init(p,h),window.mc4wp=window.mc4wp||{},window.mc4wp.forms=window.mc4wp.forms||{},window.mc4wp.forms.editor=p,window.mc4wp.forms.fields=h},{"./admin/field-helper.js":4,"./admin/fields-factory.js":5,"./admin/fields.js":6,"./admin/form-editor.js":7,"./admin/form-watcher.js":8,"./admin/notices":9}],12:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../fold/xml-fold")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../fold/xml-fold"],i):i(CodeMirror)}(function(e){function t(t,r){for(var i=t.listSelections(),o=[],a=r?"/":"</",l=0;l<i.length;l++){if(!i[l].empty())return e.Pass;var s=i[l].head,c=t.getTokenAt(s),u=e.innerMode(t.getMode(),c.state),d=u.state;if(r&&("string"==c.type||"<"!=c.string.charAt(0)||c.start!=s.ch-1))return e.Pass;var f;if("xml"!=u.mode.name)if("htmlmixed"==t.getMode().name&&"javascript"==u.mode.name)f=a+"script";else{if("htmlmixed"!=t.getMode().name||"css"!=u.mode.name)return e.Pass;f=a+"style"}else{if(!d.context||!d.context.tagName||n(t,d.context.tagName,s,d))return e.Pass;f=a+d.context.tagName}">"!=t.getLine(s.line).charAt(c.end)&&(f+=">"),o[l]=f}t.replaceSelections(o),i=t.listSelections();for(l=0;l<i.length;l++)(l==i.length-1||i[l].head.line<i[l+1].head.line)&&t.indentLine(i[l].head.line)}function r(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;++r)if(e[r]==t)return r;return-1}function n(t,r,n,i,o){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,n.line+500),l=e.scanForClosingTag(t,n,null,a);if(!l||l.tag!=r)return!1;for(var s=i.context,c=o?1:0;s&&s.tagName==r;s=s.prev)++c;n=l.to;for(var u=1;u<c;u++){var d=e.scanForClosingTag(t,n,null,a);if(!d||d.tag!=r)return!1;n=d.to}return!0}e.defineOption("autoCloseTags",!1,function(a,l,s){if(s!=e.Init&&s&&a.removeKeyMap("autoCloseTags"),l){var c={name:"autoCloseTags"};("object"!=typeof l||l.whenClosing)&&(c["'/'"]=function(r){return function(r){return r.getOption("disableInput")?e.Pass:t(r,!0)}(r)}),("object"!=typeof l||l.whenOpening)&&(c["'>'"]=function(t){return function(t){if(t.getOption("disableInput"))return e.Pass;for(var a=t.listSelections(),l=[],s=0;s<a.length;s++){if(!a[s].empty())return e.Pass;var c=a[s].head,u=t.getTokenAt(c),d=e.innerMode(t.getMode(),u.state),f=d.state;if("xml"!=d.mode.name||!f.tagName)return e.Pass;var h=t.getOption("autoCloseTags"),p="html"==d.mode.configuration,m="object"==typeof h&&h.dontCloseTags||p&&i,g="object"==typeof h&&h.indentTags||p&&o,v=f.tagName;u.end>c.ch&&(v=v.slice(0,v.length-u.end+c.ch));var y=v.toLowerCase();if(!v||"string"==u.type&&(u.end!=c.ch||!/[\"\']/.test(u.string.charAt(u.string.length-1))||1==u.string.length)||"tag"==u.type&&"closeTag"==f.type||u.string.indexOf("/")==u.string.length-1||m&&r(m,y)>-1||n(t,v,c,f,!0))return e.Pass;var b=g&&r(g,y)>-1;l[s]={indent:b,text:">"+(b?"\n\n":"")+"</"+v+">",newPos:b?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(s=a.length-1;s>=0;s--){var w=l[s];t.replaceRange(w.text,a[s].head,a[s].anchor,"+insert");var x=t.listSelections().slice(0);x[s]={head:w.newPos,anchor:w.newPos},t.setSelections(x),w.indent&&(t.indentLine(w.newPos.line,null,!0),t.indentLine(w.newPos.line+1,null,!0))}}(t)}),a.addKeyMap(c)}});var i=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],o=["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 t(e)}})},{"../../lib/codemirror":17,"../fold/xml-fold":15}],13:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){function t(e,t,n){var i=e.getLineHandle(t.line),o=t.ch-1,s=n&&n.afterCursor;null==s&&(s=/(^| )cm-fat-cursor($| )/.test(e.getWrapperElement().className));var c=!s&&o>=0&&l[i.text.charAt(o)]||l[i.text.charAt(++o)];if(!c)return null;var u=">"==c.charAt(1)?1:-1;if(n&&n.strict&&u>0!=(o==t.ch))return null;var d=e.getTokenTypeAt(a(t.line,o+1)),f=r(e,a(t.line,o+(u>0?1:0)),u,d||null,n);return null==f?null:{from:a(t.line,o),to:f&&f.pos,match:f&&f.ch==c.charAt(0),forward:u>0}}function r(e,t,r,n,i){for(var o=i&&i.maxScanLineLength||1e4,s=i&&i.maxScanLines||1e3,c=[],u=i&&i.bracketRegex?i.bracketRegex:/[(){}[\]]/,d=r>0?Math.min(t.line+s,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-s),f=t.line;f!=d;f+=r){var h=e.getLine(f);if(h){var p=r>0?0:h.length-1,m=r>0?h.length:-1;if(!(h.length>o))for(f==t.line&&(p=t.ch-(r<0?1:0));p!=m;p+=r){var g=h.charAt(p);if(u.test(g)&&(void 0===n||e.getTokenTypeAt(a(f,p+1))==n)){if(">"==l[g].charAt(1)==r>0)c.push(g);else{if(!c.length)return{pos:a(f,p),ch:g};c.pop()}}}}}return f-r!=(r>0?e.lastLine():e.firstLine())&&null}function n(e,r,n){for(var i=e.state.matchBrackets.maxHighlightLineLength||1e3,l=[],s=e.listSelections(),c=0;c<s.length;c++){var u=s[c].empty()&&t(e,s[c].head,n);if(u&&e.getLine(u.from.line).length<=i){var d=u.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";l.push(e.markText(u.from,a(u.from.line,u.from.ch+1),{className:d})),u.to&&e.getLine(u.to.line).length<=i&&l.push(e.markText(u.to,a(u.to.line,u.to.ch+1),{className:d}))}}if(l.length){o&&e.state.focused&&e.focus();var f=function(){e.operation(function(){for(var e=0;e<l.length;e++)l[e].clear()})};if(!r)return f;setTimeout(f,800)}}function i(e){e.operation(function(){s&&(s(),s=null),s=n(e,!1,e.state.matchBrackets)})}var o=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),a=e.Pos,l={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},s=null;e.defineOption("matchBrackets",!1,function(t,r,n){n&&n!=e.Init&&(t.off("cursorActivity",i),s&&(s(),s=null)),r&&(t.state.matchBrackets="object"==typeof r?r:{},t.on("cursorActivity",i))}),e.defineExtension("matchBrackets",function(){n(this,!0)}),e.defineExtension("findMatchingBracket",function(e,r,n){return(n||"boolean"==typeof r)&&(n?(n.strict=r,r=n):r=r?{strict:!0}:null),t(this,e,r)}),e.defineExtension("scanForBracket",function(e,t,n,i){return r(this,e,t,n,i)})})},{"../../lib/codemirror":17}],14:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../fold/xml-fold")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../fold/xml-fold"],i):i(CodeMirror)}(function(e){"use strict";function t(e){e.state.tagHit&&e.state.tagHit.clear(),e.state.tagOther&&e.state.tagOther.clear(),e.state.tagHit=e.state.tagOther=null}function r(r){r.state.failedTagMatch=!1,r.operation(function(){if(t(r),!r.somethingSelected()){var n=r.getCursor(),i=r.getViewport();i.from=Math.min(i.from,n.line),i.to=Math.max(n.line+1,i.to);var o=e.findMatchingTag(r,n,i);if(o){if(r.state.matchBothTags){var a="open"==o.at?o.open:o.close;a&&(r.state.tagHit=r.markText(a.from,a.to,{className:"CodeMirror-matchingtag"}))}var l="close"==o.at?o.open:o.close;l?r.state.tagOther=r.markText(l.from,l.to,{className:"CodeMirror-matchingtag"}):r.state.failedTagMatch=!0}}})}function n(e){e.state.failedTagMatch&&r(e)}e.defineOption("matchTags",!1,function(i,o,a){a&&a!=e.Init&&(i.off("cursorActivity",r),i.off("viewportChange",n),t(i)),o&&(i.state.matchBothTags="object"==typeof o&&o.bothTags,i.on("cursorActivity",r),i.on("viewportChange",n),r(i))}),e.commands.toMatchingTag=function(t){var r=e.findMatchingTag(t,t.getCursor());if(r){var n="close"==r.at?r.open:r.close;n&&t.extendSelection(n.to,n.from)}}})},{"../../lib/codemirror":17,"../fold/xml-fold":15}],15:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e,t,r,n){this.line=t,this.ch=r,this.cm=e,this.text=e.getLine(t),this.min=n?Math.max(n.from,e.firstLine()):e.firstLine(),this.max=n?Math.min(n.to-1,e.lastLine()):e.lastLine()}function r(e,t){var r=e.cm.getTokenTypeAt(d(e.line,t));return r&&/\btag\b/.test(r)}function n(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function i(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function o(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(n(e))continue;return}{if(r(e,t+1)){var i=e.text.lastIndexOf("/",t),o=i>-1&&!/\S/.test(e.text.slice(i+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t+1}}}function a(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==t){if(i(e))continue;return}if(r(e,t+1)){h.lastIndex=t,e.ch=t;var n=h.exec(e.text);if(n&&n.index==t)return n}else e.ch=t}}function l(e){for(;;){h.lastIndex=e.ch;var t=h.exec(e.text);if(!t){if(n(e))continue;return}{if(r(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}}function s(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==t){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}}}function c(e,t){for(var r=[];;){var n,i=l(e),a=e.line,s=e.ch-(i?i[0].length:0);if(!i||!(n=o(e)))return;if("selfClose"!=n)if(i[1]){for(var c=r.length-1;c>=0;--c)if(r[c]==i[2]){r.length=c;break}if(c<0&&(!t||t==i[2]))return{tag:i[2],from:d(a,s),to:d(e.line,e.ch)}}else r.push(i[2])}}function u(e,t){for(var r=[];;){var n=s(e);if(!n)return;if("selfClose"!=n){var i=e.line,o=e.ch,l=a(e);if(!l)return;if(l[1])r.push(l[2]);else{for(var c=r.length-1;c>=0;--c)if(r[c]==l[2]){r.length=c;break}if(c<0&&(!t||t==l[2]))return{tag:l[2],from:d(e.line,e.ch),to:d(i,o)}}}else a(e)}}var d=e.Pos,f="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",h=new RegExp("<(/?)(["+f+"][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-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");e.registerHelper("fold","xml",function(e,r){for(var n=new t(e,r.line,0);;){var i,a=l(n);if(!a||n.line!=r.line||!(i=o(n)))return;if(!a[1]&&"selfClose"!=i){var s=d(n.line,n.ch),u=c(n,a[2]);return u&&{from:s,to:u.from}}}}),e.findMatchingTag=function(e,r,n){var i=new t(e,r.line,r.ch,n);if(-1!=i.text.indexOf(">")||-1!=i.text.indexOf("<")){var l=o(i),s=l&&d(i.line,i.ch),f=l&&a(i);if(l&&f&&!(function(e,t){return e.line-t.line||e.ch-t.ch}(i,r)>0)){var h={from:d(i.line,i.ch),to:s,tag:f[2]};return"selfClose"==l?{open:h,close:null,at:"open"}:f[1]?{open:u(i,f[2]),close:h,at:"close"}:(i=new t(e,s.line,s.ch,n),{open:h,close:c(i,f[2]),at:"open"})}}},e.findEnclosingTag=function(e,r,n,i){for(var o=new t(e,r.line,r.ch,n);;){var a=u(o,i);if(!a)break;var l=c(new t(e,r.line,r.ch,n),a.tag);if(l)return{open:a,close:l}}},e.scanForClosingTag=function(e,r,n,i){return c(new t(e,r.line,r.ch,i?{from:0,to:i}:null),n)}})},{"../../lib/codemirror":17}],16:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(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",i),e.removeLineClass(e.state.activeLines[t],"background",o),e.removeLineClass(e.state.activeLines[t],"gutter",a)}function r(e,r){for(var n=[],l=0;l<r.length;l++){var s=r[l],c=e.getOption("styleActiveLine");if("object"==typeof c&&c.nonEmpty?s.anchor.line==s.head.line:s.empty()){var u=e.getLineHandleVisualStart(s.head.line);n[n.length-1]!=u&&n.push(u)}}(function(e,t){if(e.length!=t.length)return!1;for(var r=0;r<e.length;r++)if(e[r]!=t[r])return!1;return!0})(e.state.activeLines,n)||e.operation(function(){t(e);for(var r=0;r<n.length;r++)e.addLineClass(n[r],"wrap",i),e.addLineClass(n[r],"background",o),e.addLineClass(n[r],"gutter",a);e.state.activeLines=n})}function n(e,t){r(e,t.ranges)}var i="CodeMirror-activeline",o="CodeMirror-activeline-background",a="CodeMirror-activeline-gutter";e.defineOption("styleActiveLine",!1,function(i,o,a){var l=a!=e.Init&&a;o!=l&&(l&&(i.off("beforeSelectionChange",n),t(i),delete i.state.activeLines),o&&(i.state.activeLines=[],r(i,i.listSelections()),i.on("beforeSelectionChange",n)))})})},{"../../lib/codemirror":17}],17:[function(e,r,n){!function(e,i){"object"==typeof n&&void 0!==r?r.exports=i():"function"==typeof t&&t.amd?t(i):e.CodeMirror=i()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function r(e,r){return t(e).appendChild(r)}function n(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,r,i){var o=n(e,t,r,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function a(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function l(t,r){var n=t.className;e(r).test(n)||(t.className+=(n?" ":"")+r)}function s(t,r){for(var n=t.split(" "),i=0;i<n.length;i++)n[i]&&!e(n[i]).test(r)&&(r+=" "+n[i]);return r}function c(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function u(e,t,r){t||(t={});for(var n in e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function d(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 l=e.indexOf("\t",o);if(l<0||l>=t)return a+(t-o);a+=l-o,a+=r-a%r,o=l+1}}function f(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}function h(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);-1==o&&(o=e.length);var a=o-n;if(o==e.length||i+a>=t)return n+Math.min(a,t-i);if(i+=o-n,i+=r-i%r,n=o+1,i>=t)return n}}function p(e){for(;wo.length<=e;)wo.push(m(wo)+" ");return wo[e]}function m(e){return e[e.length-1]}function g(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function v(){}function y(e,t){var r;return Object.create?r=Object.create(e):(v.prototype=e,r=new v),t&&u(t,r),r}function b(e){return/\w/.test(e)||e>"€"&&(e.toUpperCase()!=e.toLowerCase()||xo.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&b(e))||t.test(e):b(e)}function x(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function k(e){return e.charCodeAt(0)>=768&&ko.test(e)}function C(e,t,r){for(;(r<0?t>0:t<e.length)&&k(e.charAt(t));)t+=r;return t}function S(e,t,r){for(var n=t>r?-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 T(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 L(e,t,r){var n=[],i=t.line;return e.iter(t.line,r.line+1,function(e){var o=e.text;i==r.line&&(o=o.slice(0,r.ch)),i==t.line&&(o=o.slice(t.ch)),n.push(o),++i}),n}function M(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function A(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function O(e){if(null==e.parent)return null;for(var t=e.parent,r=f(t.lines,e),n=t.parent;n;t=n,n=n.parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function N(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var a=0;a<e.lines.length;++a){var l=e.lines[a].height;if(t<l)break;t-=l}return r+a}function _(e,t){return t>=e.first&&t<e.first+e.size}function E(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function W(e,t,r){if(void 0===r&&(r=null),!(this instanceof W))return new W(e,t,r);this.line=e,this.ch=t,this.sticky=r}function F(e,t){return e.line-t.line||e.ch-t.ch}function D(e,t){return e.sticky==t.sticky&&0==F(e,t)}function z(e){return W(e.line,e.ch)}function P(e,t){return F(e,t)<0?t:e}function H(e,t){return F(e,t)<0?e:t}function I(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function j(e,t){if(t.line<e.first)return W(e.first,0);var r=e.first+e.size-1;return t.line>r?W(r,T(e,r).text.length):function(e,t){var r=e.ch;return null==r||r>t?W(e.line,t):r<0?W(e.line,0):e}(t,T(e,t.line).text.length)}function R(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=j(e,t[n]);return r}function B(e,t,r){this.marker=e,this.from=t,this.to=r}function q(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function U(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function K(e,t){if(t.full)return null;var r=_(e,t.from.line)&&T(e,t.from.line).markedSpans,n=_(e,t.to.line)&&T(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,a=0==F(t.from,t.to),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.from||(a.inclusiveLeft?o.from<=t:o.from<t)||o.from==t&&"bookmark"==a.type&&(!r||!o.marker.insertLeft)){var l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new B(a,o.from,l?null:o.to))}}return n}(r,i,a),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.to||(a.inclusiveRight?o.to>=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!r||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new B(a,l?null:o.from-t,null==o.to?null:o.to-t))}}return n}(n,o,a),c=1==t.text.length,u=m(t.text).length+(c?i:0);if(l)for(var d=0;d<l.length;++d){var f=l[d];if(null==f.to){var h=q(s,f.marker);h?c&&(f.to=null==h.to?null:h.to+u):f.to=i}}if(s)for(var p=0;p<s.length;++p){var g=s[p];if(null!=g.to&&(g.to+=u),null==g.from){q(l,g.marker)||(g.from=u,c&&(l||(l=[])).push(g))}else g.from+=u,c&&(l||(l=[])).push(g)}l&&(l=V(l)),s&&s!=l&&(s=V(s));var v=[l];if(!c){var y,b=t.text.length-2;if(b>0&&l)for(var w=0;w<l.length;++w)null==l[w].to&&(y||(y=[])).push(new B(l[w].marker,null,null));for(var x=0;x<b;++x)v.push(y);v.push(s)}return v}function V(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 G(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function $(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function Y(e){return e.inclusiveLeft?-1:0}function X(e){return e.inclusiveRight?1:0}function Z(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=F(n.from,i.from)||Y(e)-Y(t);if(o)return-o;var a=F(n.to,i.to)||X(e)-X(t);return a||t.id-e.id}function J(e,t){var r,n=So&&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||Z(r,i.marker)<0)&&(r=i.marker);return r}function Q(e){return J(e,!0)}function ee(e){return J(e,!1)}function te(e,t,r,n,i){var o=T(e,t),a=So&&o.markedSpans;if(a)for(var l=0;l<a.length;++l){var s=a[l];if(s.marker.collapsed){var c=s.marker.find(0),u=F(c.from,r)||Y(s.marker)-Y(i),d=F(c.to,n)||X(s.marker)-X(i);if(!(u>=0&&d<=0||u<=0&&d>=0)&&(u<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?F(c.to,r)>=0:F(c.to,r)>0)||u>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?F(c.from,n)<=0:F(c.from,n)<0)))return!0}}}function re(e){for(var t;t=Q(e);)e=t.find(-1,!0).line;return e}function ne(e,t){var r=T(e,t),n=re(r);return r==n?t:O(n)}function ie(e,t){if(t>e.lastLine())return t;var r,n=T(e,t);if(!oe(e,n))return t;for(;r=ee(n);)n=r.find(1,!0).line;return O(n)+1}function oe(e,t){var r=So&&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&&ae(e,t,n))return!0}}function ae(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return ae(e,n.line,q(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)&&ae(e,t,i))return!0}function le(e){for(var t=0,r=(e=re(e)).parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;r=o,o=r.parent)for(var a=0;a<o.children.length;++a){var l=o.children[a];if(l==r)break;t+=l.height}return t}function se(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=Q(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=ee(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 ce(e){var t=e.display,r=e.doc;t.maxLine=T(r,r.first),t.maxLineLength=se(t.maxLine),t.maxLineChanged=!0,r.iter(function(e){var r=se(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function ue(e,t,r){var n;To=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:To=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:To=i)}return null!=n?n:To}function de(e,t){var r=e.order;return null==r&&(r=e.order=Lo(e.text,t)),r}function fe(e,t){return e._handlers&&e._handlers[t]||Mo}function he(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=f(i,r);o>-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function pe(e,t){var r=fe(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 me(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),pe(e,r||t.type,e,t),xe(t)||t.codemirrorIgnore}function ge(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==f(r,t[n])&&r.push(t[n])}function ve(e,t){return fe(e,t).length>0}function ye(e){e.prototype.on=function(e,t){Ao(this,e,t)},e.prototype.off=function(e,t){he(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function we(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function xe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function ke(e){be(e),we(e)}function Ce(e){return e.target||e.srcElement}function Se(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),ro&&e.ctrlKey&&1==t&&(t=3),t}function Te(e){if(null==ho){var t=n("span","​");r(e,n("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(ho=t.offsetWidth<=1&&t.offsetHeight>2&&!(Ui&&Ki<8))}var i=ho?n("span","​"):n("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function Le(e){if(null!=po)return po;var n=r(e,document.createTextNode("AخA")),i=ao(n,0,1).getBoundingClientRect(),o=ao(n,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(po=o.right-i.right<3)}function Me(e){if("string"==typeof e&&Do.hasOwnProperty(e))e=Do[e];else if(e&&"string"==typeof e.name&&Do.hasOwnProperty(e.name)){var t=Do[e.name];"string"==typeof t&&(t={name:t}),(e=y(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Me("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Me("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Ae(e,t){t=Me(t);var r=Fo[t.name];if(!r)return Ae(e,"text/plain");var n=r(e,t);if(zo.hasOwnProperty(t.name)){var i=zo[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)n[a]=t.modeProps[a];return n}function Oe(e,t){u(t,zo.hasOwnProperty(e)?zo[e]:zo[e]={})}function Ne(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 _e(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 Ee(e,t,r){return!e.startState||e.startState(t,r)}function We(e,t,r,n){var i=[e.state.modeGen],o={};Re(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var a=r.state,l=function(n){r.baseTokens=i;var l=e.state.overlays[n],s=1,c=0;r.state=!0,Re(e,t.text,l.mode,r,function(e,t){for(var r=s;c<e;){var n=i[s];n>e&&i.splice(s,1,e,i[s+1],n),s+=2,c=Math.min(e,n)}if(t)if(l.opaque)i.splice(r,s-r,e,"overlay "+t),s=r+2;else for(;r<s;r+=2){var o=i[r+1];i[r+1]=(o?o+" ":"")+"overlay "+t}},o),r.state=a,r.baseTokens=null,r.baseTokenPos=1},s=0;s<e.state.overlays.length;++s)l(s);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Fe(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=De(e,O(t)),i=t.text.length>e.options.maxHighlightLength&&Ne(e.doc.mode,n.state),o=We(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 De(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new Io(n,!0,t);var o=function(e,t,r){for(var n,i,o=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=T(o,l-1),c=s.stateAfter;if(c&&(!r||l+(c instanceof Ho?c.lookAhead:0)<=o.modeFrontier))return l;var u=d(s.text,null,e.options.tabSize);(null==i||n>u)&&(i=l-1,n=u)}return i}(e,t,r),a=o>n.first&&T(n,o-1).stateAfter,l=a?Io.fromSaved(n,a,o):new Io(n,Ee(n.mode),o);return n.iter(o,t,function(r){ze(e,r.text,l);var n=l.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&n<i.viewTo?l.save():null,l.nextLine()}),r&&(n.modeFrontier=l.line),l}function ze(e,t,r,n){var i=e.doc.mode,o=new Po(t,e.options.tabSize,r);for(o.start=o.pos=n||0,""==t&&Pe(i,r.state);!o.eol();)He(i,o,r.state),o.start=o.pos}function Pe(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=_e(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function He(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=_e(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function Ie(e,t,r,n){var i,o,a=e.doc,l=a.mode,s=T(a,(t=j(a,t)).line),c=De(e,t.line,r),u=new Po(s.text,e.options.tabSize,c);for(n&&(o=[]);(n||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=He(l,u,c.state),n&&o.push(new jo(u,i,Ne(a.mode,c.state)));return n?o:new jo(u,i,c.state)}function je(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 Re(e,t,r,n,i,o,a){var l=r.flattenSpans;null==l&&(l=e.options.flattenSpans);var s,c=0,u=null,d=new Po(t,e.options.tabSize,n),f=e.options.addModeClass&&[null];for(""==t&&je(Pe(r,n.state),o);!d.eol();){if(d.pos>e.options.maxHighlightLength?(l=!1,a&&ze(e,t,n,d.pos),d.pos=t.length,s=null):s=je(He(r,d,n.state,f),o),f){var h=f[0].name;h&&(s="m-"+(s?h+" "+s:h))}if(!l||u!=s){for(;c<d.start;)i(c=Math.min(d.start,c+5e3),u);u=s}d.start=d.pos}for(;c<d.pos;){var p=Math.min(d.pos,c+5e3);i(p,u),c=p}}function Be(e){e.parent=null,G(e)}function qe(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?Uo:qo;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function Ue(e,t){var r=i("span",null,null,Vi?"padding-right: .1px":null),n={pre:i("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(Ui||Vi)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var a=o?t.rest[o-1]:t.line,l=void 0;n.pos=0,n.addToken=Ve,Le(e.display.measure)&&(l=de(a,e.doc.direction))&&(n.addToken=function(e,t){return function(r,n,i,o,a,l,s){i=i?i+" cm-force-border":"cm-force-border";for(var c=r.pos,u=c+n.length;;){for(var d=void 0,f=0;f<t.length&&!((d=t[f]).to>c&&d.from<=c);f++);if(d.to>=u)return e(r,n,i,o,a,l,s);e(r,n.slice(0,d.to-c),i,o,null,l,s),o=null,n=n.slice(d.to-c),c=d.to}}}(n.addToken,l)),n.map=[];!function(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(!n){for(var a=1;a<r.length;a+=2)t.addToken(t,i.slice(o,o=r[a]),qe(r[a+1],t.cm.options));return}for(var l,s,c,u,d,f,h,p=i.length,m=0,g=1,v="",y=0;;){if(y==m){c=u=d=f=s="",h=null,y=1/0;for(var b=[],w=void 0,x=0;x<n.length;++x){var k=n[x],C=k.marker;"bookmark"==C.type&&k.from==m&&C.widgetNode?b.push(C):k.from<=m&&(null==k.to||k.to>m||C.collapsed&&k.to==m&&k.from==m)?(null!=k.to&&k.to!=m&&y>k.to&&(y=k.to,u=""),C.className&&(c+=" "+C.className),C.css&&(s=(s?s+";":"")+C.css),C.startStyle&&k.from==m&&(d+=" "+C.startStyle),C.endStyle&&k.to==y&&(w||(w=[])).push(C.endStyle,k.to),C.title&&!f&&(f=C.title),C.collapsed&&(!h||Z(h.marker,C)<0)&&(h=k)):k.from>m&&y>k.from&&(y=k.from)}if(w)for(var S=0;S<w.length;S+=2)w[S+1]==y&&(u+=" "+w[S]);if(!h||h.from==m)for(var T=0;T<b.length;++T)Ge(t,0,b[T]);if(h&&(h.from||0)==m){if(Ge(t,(null==h.to?p+1:h.to)-m,h.marker,null==h.from),null==h.to)return;h.to==m&&(h=!1)}}if(m>=p)break;for(var L=Math.min(p,y);;){if(v){var M=m+v.length;if(!h){var A=M>L?v.slice(0,L-m):v;t.addToken(t,A,l?l+c:c,d,m+A.length==y?u:"",f,s)}if(M>=L){v=v.slice(L-m),m=L;break}m=M,d=""}v=i.slice(o,o=r[g++]),l=qe(r[g++],t.cm.options)}}}(a,n,Fe(e,a,t!=e.display.externalMeasured&&O(a))),a.styleClasses&&(a.styleClasses.bgClass&&(n.bgClass=s(a.styleClasses.bgClass,n.bgClass||"")),a.styleClasses.textClass&&(n.textClass=s(a.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Te(e.display.measure))),0==o?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(Vi){var c=n.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return pe(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=s(n.pre.className,n.textClass||"")),n}function Ke(e){var t=n("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Ve(e,t,r,i,o,a,l){if(t){var s,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),n+=o,r=" "==o}return n}(t,e.trailingSpace):t,u=e.cm.state.specialChars,d=!1;if(u.test(t)){s=document.createDocumentFragment();for(var f=0;;){u.lastIndex=f;var h=u.exec(t),m=h?h.index-f:t.length-f;if(m){var g=document.createTextNode(c.slice(f,f+m));Ui&&Ki<9?s.appendChild(n("span",[g])):s.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!h)break;f+=m+1;var v=void 0;if("\t"==h[0]){var y=e.cm.options.tabSize,b=y-e.col%y;(v=s.appendChild(n("span",p(b),"cm-tab"))).setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==h[0]||"\n"==h[0]?((v=s.appendChild(n("span","\r"==h[0]?"␍":"␤","cm-invalidchar"))).setAttribute("cm-text",h[0]),e.col+=1):((v=e.cm.options.specialCharPlaceholder(h[0])).setAttribute("cm-text",h[0]),Ui&&Ki<9?s.appendChild(n("span",[v])):s.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,s=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,s),Ui&&Ki<9&&(d=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),r||i||o||d||l){var w=r||"";i&&(w+=i),o&&(w+=o);var x=n("span",[s],w,l);return a&&(x.title=a),e.content.appendChild(x)}e.content.appendChild(s)}}function Ge(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 $e(e,t,r){this.line=t,this.rest=function(e){for(var t,r;t=ee(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}(t),this.size=this.rest?O(m(this.rest))-r+1:1,this.node=this.text=null,this.hidden=oe(e,t)}function Ye(e,t,r){for(var n,i=[],o=t;o<r;o=n){var a=new $e(e.doc,T(e.doc,o),o);n=o+a.size,i.push(a)}return i}function Xe(e,t){var r=fe(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);Ko?n=Ko.delayedCallbacks:Vo?n=Vo:(n=Vo=[],setTimeout(Ze,0));for(var o=function(e){n.push(function(){return r[e].apply(null,i)})},a=0;a<r.length;++a)o(a)}}function Ze(){var e=Vo;Vo=null;for(var t=0;t<e.length;++t)e[t]()}function Je(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?function(e,t){var r=t.text.className,n=et(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,tt(e,t)):r&&(t.text.className=r)}(e,t):"gutter"==o?rt(e,t,r,n):"class"==o?tt(e,t):"widget"==o&&function(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);it(e,t,r)}(e,t,n)}t.changes=null}function Qe(e){return e.node==e.text&&(e.node=n("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),Ui&&Ki<8&&(e.node.style.zIndex=2)),e.node}function et(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):Ue(e,t)}function tt(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 i=Qe(t);t.background=i.insertBefore(n("div",null,r),i.firstChild),e.display.input.setUneditable(t.background)}}(e,t),t.line.wrapClass?Qe(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 rt(e,t,r,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Qe(t);t.gutterBackground=n("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var a=t.line.gutterMarkers;if(e.options.lineNumbers||a){var l=Qe(t),s=t.gutter=n("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(s),l.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=" "+t.line.gutterClass),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(t.lineNumber=s.appendChild(n("div",E(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),a)for(var c=0;c<e.options.gutters.length;++c){var u=e.options.gutters[c],d=a.hasOwnProperty(u)&&a[u];d&&s.appendChild(n("div",[d],"CodeMirror-gutter-elt","left: "+i.gutterLeft[u]+"px; width: "+i.gutterWidth[u]+"px"))}}}function nt(e,t,r,n){var i=et(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),tt(e,t),rt(e,t,r,n),it(e,t,n),t.node}function it(e,t,r){if(ot(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)ot(e,t.rest[n],t,r,!1)}function ot(e,t,r,i,o){if(t.widgets)for(var a=Qe(r),l=0,s=t.widgets;l<s.length;++l){var c=s[l],u=n("div",[c.node],"CodeMirror-linewidget");c.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),function(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"))}(c,u,r,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,r.gutter||r.text):a.appendChild(u),Xe(c,"redraw")}}function at(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),r(t.display.measure,n("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function lt(e,t){for(var r=Ce(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 st(e){return e.lineSpace.offsetTop}function ct(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function ut(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=r(e.measure,n("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function dt(e){return mo-e.display.nativeBarWidth}function ft(e){return e.display.scroller.clientWidth-dt(e)-e.display.barWidth}function ht(e){return e.display.scroller.clientHeight-dt(e)-e.display.barHeight}function pt(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(O(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function mt(e,t,r,n){return yt(e,vt(e,t),r,n)}function gt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Ut(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function vt(e,t){var n=O(t),i=gt(e,n);i&&!i.text?i=null:i&&i.changes&&(Je(e,i,n,It(e)),e.curOp.forceUpdate=!0),i||(i=function(e,t){var n=O(t=re(t)),i=e.display.externalMeasured=new $e(e.doc,t,n);i.lineN=n;var o=i.built=Ue(e,i);return i.text=o.pre,r(e.display.lineMeasure,o.pre),i}(e,t));var o=pt(i,t,n);return{line:t,view:i,rect:null,map:o.map,cache:o.cache,before:o.before,hasHeights:!1}}function yt(e,t,i,o,a){t.before&&(i=-1);var l,s=i+(o||"");return t.cache.hasOwnProperty(s)?l=t.cache[s]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(!function(e,t,r){var n=e.options.lineWrapping,i=n&&ft(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),l=0;l<a.length-1;l++){var s=a[l],c=a[l+1];Math.abs(s.bottom-c.bottom)>2&&o.push((s.bottom+c.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(l=function(e,t,i,o){var a,l=bt(t.map,i,o),s=l.node,c=l.start,u=l.end,d=l.collapse;if(3==s.nodeType){for(var f=0;f<4;f++){for(;c&&k(t.line.text.charAt(l.coverStart+c));)--c;for(;l.coverStart+u<l.coverEnd&&k(t.line.text.charAt(l.coverStart+u));)++u;if((a=Ui&&Ki<9&&0==c&&u==l.coverEnd-l.coverStart?s.parentNode.getBoundingClientRect():wt(ao(s,c,u).getClientRects(),o)).left||a.right||0==c)break;u=c,c-=1,d="right"}Ui&&Ki<11&&(a=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Wo)return Wo;var t=r(e,n("span","x")),i=t.getBoundingClientRect(),o=ao(t,0,1).getBoundingClientRect();return Wo=Math.abs(i.left-o.left)>1}(e))return t;var i=screen.logicalXDPI/screen.deviceXDPI,o=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*i,right:t.right*i,top:t.top*o,bottom:t.bottom*o}}(e.display.measure,a))}else{c>0&&(d=o="right");var h;a=e.options.lineWrapping&&(h=s.getClientRects()).length>1?h["right"==o?h.length-1:0]:s.getBoundingClientRect()}if(Ui&&Ki<9&&!c&&(!a||!a.left&&!a.right)){var p=s.parentNode.getClientRects()[0];a=p?{left:p.left,right:p.left+Ht(e.display),top:p.top,bottom:p.bottom}:Go}for(var m=a.top-t.rect.top,g=a.bottom-t.rect.top,v=(m+g)/2,y=t.view.measure.heights,b=0;b<y.length-1&&!(v<y[b]);b++);var w=b?y[b-1]:0,x=y[b],C={left:("right"==d?a.right:a.left)-t.rect.left,right:("left"==d?a.left:a.right)-t.rect.left,top:w,bottom:x};a.left||a.right||(C.bogus=!0);e.options.singleCursorHeightPerLine||(C.rtop=m,C.rbottom=g);return C}(e,t,i,o)).bogus||(t.cache[s]=l)),{left:l.left,right:l.right,top:a?l.rtop:l.top,bottom:a?l.rbottom:l.bottom}}function bt(e,t,r){for(var n,i,o,a,l,s,c=0;c<e.length;c+=3)if(l=e[c],s=e[c+1],t<l?(i=0,o=1,a="left"):t<s?o=(i=t-l)+1:(c==e.length-3||t==s&&e[c+3]>t)&&(i=(o=s-l)-1,t>=s&&(a="right")),null!=i){if(n=e[c+2],l==s&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)n=e[2+(c-=3)],a="left";if("right"==r&&i==s-l)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)n=e[(c+=3)+2],a="right";break}return{node:n,start:i,end:o,collapse:a,coverStart:l,coverEnd:s}}function wt(e,t){var r=Go;if("left"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;i>=0&&(r=e[i]).left==r.right;i--);return r}function xt(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 kt(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var r=0;r<e.display.view.length;r++)xt(e.display.view[r])}function Ct(e){kt(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function St(){return $i&&eo?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function Tt(){return $i&&eo?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function Lt(e){var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;++r)e.widgets[r].above&&(t+=at(e.widgets[r]));return t}function Mt(e,t,r,n,i){if(!i){var o=Lt(t);r.top+=o,r.bottom+=o}if("line"==n)return r;n||(n="local");var a=le(t);if("local"==n?a+=st(e.display):a-=e.display.viewOffset,"page"==n||"window"==n){var l=e.display.lineSpace.getBoundingClientRect();a+=l.top+("window"==n?0:Tt());var s=l.left+("window"==n?0:St());r.left+=s,r.right+=s}return r.top+=a,r.bottom+=a,r}function At(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=St(),i-=Tt();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 Ot(e,t,r,n,i){return n||(n=T(e.doc,t.line)),Mt(e,n,mt(e,n,t.ch,i),r)}function Nt(e,t,r,n,i,o){function a(t,a){var l=yt(e,i,t,a?"right":"left",o);return a?l.left=l.right:l.right=l.left,Mt(e,n,l,r)}function l(e,t,r){var n=1==s[t].level;return a(r?e-1:e,n!=r)}n=n||T(e.doc,t.line),i||(i=vt(e,n));var s=de(n,e.doc.direction),c=t.ch,u=t.sticky;if(c>=n.text.length?(c=n.text.length,u="before"):c<=0&&(c=0,u="after"),!s)return a("before"==u?c-1:c,"before"==u);var d=ue(s,c,u),f=To,h=l(c,d,"before"==u);return null!=f&&(h.other=l(c,f,"before"!=u)),h}function _t(e,t){var r=0;t=j(e.doc,t),e.options.lineWrapping||(r=Ht(e.display)*t.ch);var n=T(e.doc,t.line),i=le(n)+st(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function Et(e,t,r,n,i){var o=W(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function Wt(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return Et(n.first,0,null,!0,-1);var i=N(n,r),o=n.first+n.size-1;if(i>o)return Et(n.first+n.size-1,T(n,o).text.length,null,!0,1);t<0&&(t=0);for(var a=T(n,i);;){var l=function(e,t,r,n,i){i-=le(t);var o=vt(e,t),a=Lt(t),l=0,s=t.text.length,c=!0,u=de(t,e.doc.direction);if(u){var d=(e.options.lineWrapping?function(e,t,r,n,i,o,a){var l=Ft(e,t,n,a),s=l.begin,c=l.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,d=null,f=0;f<i.length;f++){var h=i[f];if(!(h.from>=c||h.to<=s)){var p=1!=h.level,m=yt(e,n,p?Math.min(c,h.to)-1:Math.max(s,h.from)).right,g=m<o?o-m+1e9:m-o;(!u||d>g)&&(u=h,d=g)}}u||(u=i[i.length-1]);u.from<s&&(u={from:s,to:u.to,level:u.level});u.to>c&&(u={from:u.from,to:c,level:u.level});return u}:function(e,t,r,n,i,o,a){var l=S(function(l){var s=i[l],c=1!=s.level;return zt(Nt(e,W(r,c?s.to:s.from,c?"before":"after"),"line",t,n),o,a,!0)},0,i.length-1),s=i[l];if(l>0){var c=1!=s.level,u=Nt(e,W(r,c?s.from:s.to,c?"after":"before"),"line",t,n);zt(u,o,a,!0)&&u.top>a&&(s=i[l-1])}return s})(e,t,r,o,u,n,i);c=1!=d.level,l=c?d.from:d.to-1,s=c?d.to:d.from-1}var f,h,p=null,m=null,g=S(function(t){var r=yt(e,o,t);return r.top+=a,r.bottom+=a,!!zt(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,m=r),!0)},l,s),v=!1;if(m){var y=n-m.left<m.right-n,b=y==c;g=p+(b?0:1),h=b?"after":"before",f=y?m.left:m.right}else{c||g!=s&&g!=l||g++,h=0==g?"after":g==t.text.length?"before":yt(e,o,g-(c?1:0)).bottom+a<=i==c?"after":"before";var w=Nt(e,W(r,g,h),"line",t,o);f=w.left,v=i<w.top||i>=w.bottom}return g=C(t.text,g,1),Et(r,g,h,v,n-f)}(e,a,i,t,r),s=ee(a),c=s&&s.find(0,!0);if(!s||!(l.ch>c.from.ch||l.ch==c.from.ch&&l.xRel>0))return l;i=O(a=c.to.line)}}function Ft(e,t,r,n){n-=Lt(t);var i=t.text.length,o=S(function(t){return yt(e,r,t-1).bottom<=n},i,0);return i=S(function(t){return yt(e,r,t).top>n},o,i),{begin:o,end:i}}function Dt(e,t,r,n){r||(r=vt(e,t));return Ft(e,t,r,Mt(e,t,yt(e,r,n),"line").top)}function zt(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Pt(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Bo){Bo=n("pre");for(var i=0;i<49;++i)Bo.appendChild(document.createTextNode("x")),Bo.appendChild(n("br"));Bo.appendChild(document.createTextNode("x"))}r(e.measure,Bo);var o=Bo.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function Ht(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=n("span","xxxxxxxxxx"),i=n("pre",[t]);r(e.measure,i);var o=t.getBoundingClientRect(),a=(o.right-o.left)/10;return a>2&&(e.cachedCharWidth=a),a||10}function It(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:jt(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function jt(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Rt(e){var t=Pt(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/Ht(e.display)-3);return function(i){if(oe(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function Bt(e){var t=e.doc,r=Rt(e);t.iter(function(e){var t=r(e);t!=e.height&&A(e,t)})}function qt(e,t,r,n){var i=e.display;if(!r&&"true"==Ce(t).getAttribute("cm-not-content"))return null;var o,a,l=i.lineSpace.getBoundingClientRect();try{o=t.clientX-l.left,a=t.clientY-l.top}catch(t){return null}var s,c=Wt(e,o,a);if(n&&1==c.xRel&&(s=T(e.doc,c.line).text).length==c.ch){var u=d(s,s.length,e.options.tabSize)-s.length;c=W(c.line,Math.max(0,Math.round((o-ut(e.display).left)/Ht(e.display))-u))}return c}function Ut(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 Kt(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Vt(e,t){void 0===t&&(t=!0);for(var r=e.doc,i={},o=i.cursors=document.createDocumentFragment(),a=i.selection=document.createDocumentFragment(),l=0;l<r.sel.ranges.length;l++)if(t||l!=r.sel.primIndex){var s=r.sel.ranges[l];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var c=s.empty();(c||e.options.showCursorWhenSelecting)&&Gt(e,s.head,o),c||function(e,t,r){function i(e,t,r,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),s.appendChild(n("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==r?d-e:r)+"px;\n height: "+(i-t)+"px"))}function o(t,r,n){function o(r,n){return Ot(e,W(t,r),"div",h,n)}function a(t,r,n){var i=Dt(e,h,null,t),a="ltr"==r==("after"==n)?"left":"right",l="after"==n?i.begin:i.end-(/\s/.test(h.text.charAt(i.end-1))?2:1);return o(l,a)[a]}var s,c,h=T(l,t),p=h.text.length,m=de(h,l.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")}(m,r||0,null==n?p:n,function(e,t,l,h){var g="ltr"==l,v=o(e,g?"left":"right"),y=o(t-1,g?"right":"left"),b=null==r&&0==e,w=null==n&&t==p,x=0==h,k=!m||h==m.length-1;if(y.top-v.top<=3){var C=(f?b:w)&&x,S=(f?w:b)&&k,T=C?u:(g?v:y).left,L=S?d:(g?y:v).right;i(T,v.top,L-T,v.bottom)}else{var M,A,O,N;g?(M=f&&b&&x?u:v.left,A=f?d:a(e,l,"before"),O=f?u:a(t,l,"after"),N=f&&w&&k?d:y.right):(M=f?a(e,l,"before"):u,A=!f&&b&&x?d:v.right,O=!f&&w&&k?u:y.left,N=f?a(t,l,"after"):d),i(M,v.top,A-M,v.bottom),v.bottom<y.top&&i(u,v.bottom,null,y.top),i(O,y.top,N-O,y.bottom)}(!s||$t(v,s)<0)&&(s=v),$t(y,s)<0&&(s=y),(!c||$t(v,c)<0)&&(c=v),$t(y,c)<0&&(c=y)}),{start:s,end:c}}var a=e.display,l=e.doc,s=document.createDocumentFragment(),c=ut(e.display),u=c.left,d=Math.max(a.sizerWidth,ft(e)-a.sizer.offsetLeft)-c.right,f="ltr"==l.direction;var h=t.from(),p=t.to();if(h.line==p.line)o(h.line,h.ch,p.ch);else{var m=T(l,h.line),g=T(l,p.line),v=re(m)==re(g),y=o(h.line,h.ch,v?m.text.length+1:null).end,b=o(p.line,v?0:null,p.ch).start;v&&(y.top<b.top-2?(i(y.right,y.top,null,y.bottom),i(u,b.top,b.left,b.bottom)):i(y.right,y.top,b.left-y.right,y.bottom)),y.bottom<b.top&&i(u,y.bottom,null,b.top)}r.appendChild(s)}(e,s,a)}}return i}function Gt(e,t,r){var i=Nt(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=r.appendChild(n("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var a=r.appendChild(n("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=i.other.left+"px",a.style.top=i.other.top+"px",a.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function $t(e,t){return e.top-t.top||e.left-t.left}function Yt(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Xt(e){e.state.focused||(e.display.input.focus(),Jt(e))}function Zt(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Qt(e))},100)}function Jt(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(pe(e,"focus",e,t),e.state.focused=!0,l(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),Vi&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Yt(e))}function Qt(e,t){e.state.delayingBlurEvent||(e.state.focused&&(pe(e,"blur",e,t),e.state.focused=!1,co(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function er(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(Ui&&Ki<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var l=i.node.getBoundingClientRect();o=l.bottom-l.top}var s=i.line.height-o;if(o<2&&(o=Pt(t)),(s>.005||s<-.005)&&(A(i.line,o),tr(i.line),i.rest))for(var c=0;c<i.rest.length;c++)tr(i.rest[c])}}}function tr(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 rr(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-st(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=N(t,n),a=N(t,i);if(r&&r.ensure){var l=r.ensure.from.line,s=r.ensure.to.line;l<o?(o=l,a=N(t,le(T(t,l))+e.wrapper.clientHeight)):Math.min(s,t.lastLine())>=a&&(o=N(t,le(T(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function nr(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=jt(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",a=0;a<r.length;a++)if(!r[a].hidden){e.options.fixedGutter&&(r[a].gutter&&(r[a].gutter.style.left=o),r[a].gutterBackground&&(r[a].gutterBackground.style.left=o));var l=r[a].alignable;if(l)for(var s=0;s<l.length;s++)l[s].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function ir(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=E(e.options,t.first+t.size-1),i=e.display;if(r.length!=i.lineNumChars){var o=i.measure.appendChild(n("div",[n("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),a=o.firstChild.offsetWidth,l=o.offsetWidth-a;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(a,i.lineGutter.offsetWidth-l)+1,i.lineNumWidth=i.lineNumInnerWidth+l,i.lineNumChars=i.lineNumInnerWidth?r.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Fr(e),!0}return!1}function or(e,t){var r=e.display,n=Pt(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=ht(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var l=e.doc.height+ct(r),s=t.top<n,c=t.bottom>l-n;if(t.top<i)a.scrollTop=s?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?l:t.bottom)-o);u!=i&&(a.scrollTop=u)}var d=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,f=ft(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),h=t.right-t.left>f;return h&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.left<d?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>f+d-3&&(a.scrollLeft=t.right+(h?0:10)-f),a}function ar(e,t){null!=t&&(cr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function lr(e){cr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function sr(e,t,r){null==t&&null==r||cr(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function cr(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;ur(e,_t(e,t.from),_t(e,t.to),t.margin)}}function ur(e,t,r,n){var i=or(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});sr(e,i.scrollLeft,i.scrollTop)}function dr(e,t){Math.abs(e.doc.scrollTop-t)<2||(ji||Wr(e,{top:t}),fr(e,t,!0),ji&&Wr(e),Or(e,100))}function fr(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 hr(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,nr(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function pr(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+ct(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+dt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function mr(e,t){t||(t=pr(e));var r=e.display.barWidth,n=e.display.barHeight;gr(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&er(e),gr(e,pr(e)),r=e.display.barWidth,n=e.display.barHeight}function gr(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function vr(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&co(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Xo[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Ao(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,r){"horizontal"==r?hr(e,t):dr(e,t)},e),e.display.scrollbars.addClass&&l(e.display.wrapper,e.display.scrollbars.addClass)}function yr(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:++Zo},function(e){Ko?Ko.ops.push(e):e.ownsGroup=Ko={ops:[e],delayedCallbacks:[]}}(e.curOp)}function br(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{Ko=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++)!function(e){var t=e.cm,r=t.display;(function(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=dt(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=dt(e)+"px",t.scrollbarsClipped=!0)})(t),e.updateMaxLine&&ce(t);e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<r.viewFrom||e.scrollToPos.to.line>=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Jo(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}(t[r]);for(var i=0;i<t.length;i++)!function(e){e.updatedDisplay=e.mustUpdate&&_r(e.cm,e.update)}(t[i]);for(var o=0;o<t.length;o++)!function(e){var t=e.cm,r=t.display;e.updatedDisplay&&er(t);e.barMeasure=pr(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=mt(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+dt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-ft(t)));(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}(t[o]);for(var l=0;l<t.length;l++)!function(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&hr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==a();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r);(e.updatedDisplay||e.startHeight!=t.doc.height)&&mr(t,e.barMeasure);e.updatedDisplay&&Dr(t,e.barMeasure);e.selectionChanged&&Yt(t);t.state.focused&&e.updateInput&&t.display.input.reset(e.typing);r&&Xt(e.cm)}(t[l]);for(var s=0;s<t.length;s++)!function(e){var t=e.cm,r=t.display,i=t.doc;e.updatedDisplay&&Er(t,e.update);null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null);null!=e.scrollTop&&fr(t,e.scrollTop,e.forceScroll);null!=e.scrollLeft&&hr(t,e.scrollLeft,!0,!0);if(e.scrollToPos){var o=function(e,t,r,n){null==n&&(n=0);var i;e.options.lineWrapping||t!=r||(r="before"==(t=t.ch?W(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?W(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,l=Nt(e,t),s=r&&r!=t?Nt(e,r):l,c=or(e,i={left:Math.min(l.left,s.left),top:Math.min(l.top,s.top)-n,right:Math.max(l.left,s.left),bottom:Math.max(l.bottom,s.bottom)+n}),u=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=c.scrollTop&&(dr(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(hr(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(a=!0)),!a)break}return i}(t,j(i,e.scrollToPos.from),j(i,e.scrollToPos.to),e.scrollToPos.margin);!function(e,t){if(!me(e,"scrollCursorIntoView")){var r=e.display,i=r.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!Ji){var a=n("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-st(e.display))+"px;\n height: "+(t.bottom-t.top+dt(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}(t,o)}var a=e.maybeHiddenMarkers,l=e.maybeUnhiddenMarkers;if(a)for(var s=0;s<a.length;++s)a[s].lines.length||pe(a[s],"hide");if(l)for(var c=0;c<l.length;++c)l[c].lines.length&&pe(l[c],"unhide");r.wrapper.offsetHeight&&(i.scrollTop=t.display.scroller.scrollTop);e.changeObjs&&pe(t,"changes",t,e.changeObjs);e.update&&e.update.finish()}(t[s])}(e)})}function wr(e,t){if(e.curOp)return t();yr(e);try{return t()}finally{br(e)}}function xr(e,t){return function(){if(e.curOp)return t.apply(e,arguments);yr(e);try{return t.apply(e,arguments)}finally{br(e)}}}function kr(e){return function(){if(this.curOp)return e.apply(this,arguments);yr(this);try{return e.apply(this,arguments)}finally{br(this)}}}function Cr(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);yr(t);try{return e.apply(this,arguments)}finally{br(t)}}}function Sr(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)So&&ne(e.doc,t)<i.viewTo&&Lr(e);else if(r<=i.viewFrom)So&&ie(e.doc,r+n)>i.viewFrom?Lr(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)Lr(e);else if(t<=i.viewFrom){var o=Mr(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):Lr(e)}else if(r>=i.viewTo){var a=Mr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Lr(e)}else{var l=Mr(e,t,t,-1),s=Mr(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(Ye(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):Lr(e)}var c=i.externalMeasured;c&&(r<c.lineN?c.lineN+=n:t<c.lineN+c.size&&(i.externalMeasured=null))}function Tr(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[Ut(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==f(a,r)&&a.push(r)}}}function Lr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Mr(e,t,r,n){var i,o=Ut(e,t),a=e.display.view;if(!So||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var l=e.display.viewFrom,s=0;s<o;s++)l+=a[s].size;if(l!=t){if(n>0){if(o==a.length-1)return null;i=l+a[o].size-t,o++}else i=l-t;t+=i,r+=i}for(;ne(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 Ar(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 Or(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,c(Nr,e))}function Nr(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=De(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(n.line>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength?Ne(t.mode,n.state):null,s=We(e,o,n,!0);l&&(n.state=l),o.styles=s.styles;var c=o.styleClasses,u=s.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var d=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),f=0;!d&&f<a.length;++f)d=a[f]!=o.styles[f];d&&i.push(n.line),o.stateAfter=n.save(),n.nextLine()}else o.text.length<=e.options.maxHighlightLength&&ze(e,o.text,n),o.stateAfter=n.line%5==0?n.save():null,n.nextLine();if(+new Date>r)return Or(e,e.options.workDelay),!0}),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&wr(e,function(){for(var t=0;t<i.length;t++)Tr(e,i[t],"text")})}}function _r(e,r){var n=e.display,i=e.doc;if(r.editorIsHidden)return Lr(e),!1;if(!r.force&&r.visible.from>=n.viewFrom&&r.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Ar(e))return!1;ir(e)&&(Lr(e),r.dims=It(e));var l=i.first+i.size,s=Math.max(r.visible.from-e.options.viewportMargin,i.first),c=Math.min(l,r.visible.to+e.options.viewportMargin);n.viewFrom<s&&s-n.viewFrom<20&&(s=Math.max(i.first,n.viewFrom)),n.viewTo>c&&n.viewTo-c<20&&(c=Math.min(l,n.viewTo)),So&&(s=ne(e.doc,s),c=ie(e.doc,c));var u=s!=n.viewFrom||c!=n.viewTo||n.lastWrapHeight!=r.wrapperHeight||n.lastWrapWidth!=r.wrapperWidth;!function(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=Ye(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=Ye(e,t,n.viewFrom).concat(n.view):n.viewFrom<t&&(n.view=n.view.slice(Ut(e,t))),n.viewFrom=t,n.viewTo<r?n.view=n.view.concat(Ye(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,Ut(e,r)))),n.viewTo=r}(e,s,c),n.viewOffset=le(T(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var d=Ar(e);if(!u&&0==d&&!r.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var h=function(e){if(e.hasFocus())return null;var t=a();if(!t||!o(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&o(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 d>4&&(n.lineDiv.style.display="none"),function(e,r,n){function i(t){var r=t.nextSibling;return Vi&&ro&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}var o=e.display,a=e.options.lineNumbers,l=o.lineDiv,s=l.firstChild;for(var c=o.view,u=o.viewFrom,d=0;d<c.length;d++){var h=c[d];if(h.hidden);else if(h.node&&h.node.parentNode==l){for(;s!=h.node;)s=i(s);var p=a&&null!=r&&r<=u&&h.lineNumber;h.changes&&(f(h.changes,"gutter")>-1&&(p=!1),Je(e,h,u,n)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(E(e.options,u)))),s=h.node.nextSibling}else{var m=nt(e,h,u,n);l.insertBefore(m,s)}u+=h.size}for(;s;)s=i(s)}(e,n.updateLineNumbers,r.dims),d>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,function(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(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(h),t(n.cursorDiv),t(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,u&&(n.lastWrapHeight=r.wrapperHeight,n.lastWrapWidth=r.wrapperWidth,Or(e,400)),n.updateLineNumbers=null,!0}function Er(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=ft(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+ct(e.display)-ht(e),r.top)}),t.visible=rr(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&_r(e,t);n=!1){er(e);var i=pr(e);Kt(e),mr(e,i),Dr(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 Wr(e,t){var r=new Jo(e,t);if(_r(e,r)){er(e),Er(e,r);var n=pr(e);Kt(e),mr(e,n),Dr(e,n),r.finish()}}function Fr(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Dr(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+dt(e)+"px"}function zr(e){var r=e.display.gutters,i=e.options.gutters;t(r);for(var o=0;o<i.length;++o){var a=i[o],l=r.appendChild(n("div",null,"CodeMirror-gutter "+a));"CodeMirror-linenumbers"==a&&(e.display.lineGutter=l,l.style.width=(e.display.lineNumWidth||1)+"px")}r.style.display=o?"":"none",Fr(e)}function Pr(e){var t=f(e.gutters,"CodeMirror-linenumbers");-1==t&&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 Hr(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 Ir(e){var t=Hr(e);return t.x*=ea,t.y*=ea,t}function jr(e,t){var r=Hr(t),n=r.x,i=r.y,o=e.display,a=o.scroller,l=a.scrollWidth>a.clientWidth,s=a.scrollHeight>a.clientHeight;if(n&&l||i&&s){if(i&&ro&&Vi)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var d=0;d<u.length;d++)if(u[d].node==c){e.display.currentWheelTarget=c;break e}if(n&&!ji&&!Yi&&null!=ea)return i&&s&&dr(e,Math.max(0,a.scrollTop+i*ea)),hr(e,Math.max(0,a.scrollLeft+n*ea)),(!i||i&&s)&&be(t),void(o.wheelStartX=null);if(i&&null!=ea){var f=i*ea,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;f<0?h=Math.max(0,h+f-50):p=Math.min(e.doc.height,p+f+50),Wr(e,{top:h,bottom:p})}Qo<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&&(ea=(ea*Qo+r)/(Qo+1),++Qo)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}function Rr(e,t){var r=e[t];e.sort(function(e,t){return F(e.from(),t.from())}),t=f(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(F(o.to(),i.from())>=0){var a=H(o.from(),i.from()),l=P(o.to(),i.to()),s=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new ra(s?l:a,s?a:l))}}return new ta(e,t)}function Br(e,t){return new ta([new ra(e,t||e)],0)}function qr(e){return e.text?W(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ur(e,t){if(F(e,t.from)<0)return e;if(F(e,t.to)<=0)return qr(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+=qr(t).ch-t.to.ch),W(r,n)}function Kr(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new ra(Ur(i.anchor,t),Ur(i.head,t)))}return Rr(r,e.sel.primIndex)}function Vr(e,t,r){return e.line==t.line?W(r.line,e.ch-t.ch+r.ch):W(r.line+(e.line-t.line),e.ch)}function Gr(e){e.doc.mode=Ae(e.options,e.doc.modeOption),$r(e)}function $r(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,Or(e,100),e.state.modeGen++,e.curOp&&Sr(e)}function Yr(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Xr(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){!function(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),G(e),$(e,r);var i=n?n(e):1;i!=e.height&&A(e,i)}(e,r,i,n),Xe(e,"change",e,t)}function a(e,t){for(var r=[],o=e;o<t;++o)r.push(new Ro(c[o],i(o),n));return r}var l=t.from,s=t.to,c=t.text,u=T(e,l.line),d=T(e,s.line),f=m(c),h=i(c.length-1),p=s.line-l.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if(Yr(e,t)){var g=a(0,c.length-1);o(d,d.text,h),p&&e.remove(l.line,p),g.length&&e.insert(l.line,g)}else if(u==d)if(1==c.length)o(u,u.text.slice(0,l.ch)+f+u.text.slice(s.ch),h);else{var v=a(1,c.length-1);v.push(new Ro(f+u.text.slice(s.ch),h,n)),o(u,u.text.slice(0,l.ch)+c[0],i(0)),e.insert(l.line+1,v)}else if(1==c.length)o(u,u.text.slice(0,l.ch)+c[0]+d.text.slice(s.ch),i(0)),e.remove(l.line+1,p);else{o(u,u.text.slice(0,l.ch)+c[0],i(0)),o(d,f+d.text.slice(s.ch),h);var y=a(1,c.length-1);p>1&&e.remove(l.line+1,p-1),e.insert(l.line+1,y)}Xe(e,"change",e,t)}function Zr(e,t,r){function n(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var l=e.linked[a];if(l.doc!=i){var s=o&&l.sharedHist;r&&!s||(t(l.doc,s),n(l.doc,e,s))}}}n(e,null,!0)}function Jr(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Bt(e),Gr(e),Qr(e),e.options.lineWrapping||ce(e),e.options.mode=t.modeOption,Sr(e)}function Qr(e){("rtl"==e.doc.direction?l:co)(e.display.lineDiv,"CodeMirror-rtl")}function en(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 tn(e,t){var r={from:z(t.from),to:qr(t),text:L(e,t.from,t.to)};return ln(e,r,t.from.line,t.to.line+1),Zr(e,function(e){return ln(e,r,t.from.line,t.to.line+1)},!0),r}function rn(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function nn(e,t,r,n){var i=e.history;i.undone.length=0;var o,a,l=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>l-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(rn(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}(i,i.lastOp==n)))a=m(o.changes),0==F(t.from,t.to)&&0==F(t.from,a.to)?a.to=qr(t):o.changes.push(tn(e,t));else{var s=m(i.done);for(s&&s.ranges||an(e.sel,i.done),o={changes:[tn(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||pe(e,"historyAdded")}function on(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,m(i.done),t))?i.done[i.done.length-1]=t:an(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&rn(i.undone)}function an(e,t){var r=m(t);r&&r.ranges&&r.equals(e)||t.push(e)}function ln(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o})}function sn(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 cn(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(sn(r[i]));return n}(e,t),n=K(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],a=n[i];if(o&&a)e:for(var l=0;l<a.length;++l){for(var s=a[l],c=0;c<o.length;++c)if(o[c].marker==s.marker)continue e;o.push(s)}else a&&(r[i]=a)}return r}function un(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?ta.prototype.deepCopy.call(o):o);else{var a=o.changes,l=[];n.push({changes:l});for(var s=0;s<a.length;++s){var c=a[s],u=void 0;if(l.push({from:c.from,to:c.to,text:c.text}),t)for(var d in c)(u=d.match(/^spans_(\d+)$/))&&f(t,Number(u[1]))>-1&&(m(l)[d]=c[d],delete c[d])}}}return n}function dn(e,t,r,n){if(n){var i=e.anchor;if(r){var o=F(t,i)<0;o!=F(r,i)<0?(i=t,t=r):o!=F(t,r)<0&&(t=r)}return new ra(i,t)}return new ra(r||t,t)}function fn(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),vn(e,new ta([dn(e.sel.primary(),t,r,i)],0),n)}function hn(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]=dn(e.sel.ranges[o],t[o],null,i);vn(e,Rr(n,e.sel.primIndex),r)}function pn(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,vn(e,Rr(i,e.sel.primIndex),n)}function mn(e,t,r,n){vn(e,Br(t,r),n)}function gn(e,t,r){var n=e.history.done,i=m(n);i&&i.ranges?(n[n.length-1]=t,yn(e,t,r)):vn(e,t,r)}function vn(e,t,r){yn(e,t,r),on(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function yn(e,t,r){(ve(e,"beforeSelectionChange")||e.cm&&ve(e.cm,"beforeSelectionChange"))&&(t=function(e,t,r){var n={ranges:t.ranges,update:function(t){this.ranges=[];for(var r=0;r<t.length;r++)this.ranges[r]=new ra(j(e,t[r].anchor),j(e,t[r].head))},origin:r&&r.origin};return pe(e,"beforeSelectionChange",e,n),e.cm&&pe(e.cm,"beforeSelectionChange",e.cm,n),n.ranges!=t.ranges?Rr(n.ranges,n.ranges.length-1):t}(e,t,r));bn(e,xn(e,t,r&&r.bias||(F(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||lr(e.cm)}function bn(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,ge(e.cm)),Xe(e,"cursorActivity",e))}function wn(e){bn(e,xn(e,e.sel,null,!1))}function xn(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],l=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],s=Cn(e,a.anchor,l&&l.anchor,r,n),c=Cn(e,a.head,l&&l.head,r,n);(i||s!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new ra(s,c))}return i?Rr(i,t.primIndex):t}function kn(e,t,r,n,i){var o=T(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var l=o.markedSpans[a],s=l.marker;if((null==l.from||(s.inclusiveLeft?l.from<=t.ch:l.from<t.ch))&&(null==l.to||(s.inclusiveRight?l.to>=t.ch:l.to>t.ch))){if(i&&(pe(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(r){var c=s.find(n<0?1:-1),u=void 0;if((n<0?s.inclusiveRight:s.inclusiveLeft)&&(c=Sn(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=F(c,r))&&(n<0?u<0:u>0))return kn(e,c,t,n,i)}var d=s.find(n<0?-1:1);return(n<0?s.inclusiveLeft:s.inclusiveRight)&&(d=Sn(e,d,n,d.line==t.line?o:null)),d?kn(e,d,t,n,i):null}}return t}function Cn(e,t,r,n,i){var o=n||1,a=kn(e,t,r,o,i)||!i&&kn(e,t,r,o,!0)||kn(e,t,r,-o,i)||!i&&kn(e,t,r,-o,!0);return a||(e.cantEdit=!0,W(e.first,0))}function Sn(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?j(e,W(t.line-1)):null:r>0&&t.ch==(n||T(e,t.line)).text.length?t.line<e.first+e.size-1?W(t.line+1,0):null:new W(t.line,t.ch+r)}function Tn(e){e.setSelection(W(e.firstLine(),0),W(e.lastLine()),vo)}function Ln(e,t,r){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return n.canceled=!0}};return r&&(n.update=function(t,r,i,o){t&&(n.from=j(e,t)),r&&(n.to=j(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),pe(e,"beforeChange",e,n),e.cm&&pe(e.cm,"beforeChange",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function Mn(e,t,r){if(e.cm){if(!e.cm.curOp)return xr(e.cm,Mn)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(ve(e,"beforeChange")||e.cm&&ve(e.cm,"beforeChange"))||(t=Ln(e,t,!0))){var n=Co&&!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!=f(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],l=a.find(0),s=0;s<i.length;++s){var c=i[s];if(!(F(c.to,l.from)<0||F(c.from,l.to)>0)){var u=[s,1],d=F(c.from,l.from),h=F(c.to,l.to);(d<0||!a.inclusiveLeft&&!d)&&u.push({from:c.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:l.to,to:c.to}),i.splice.apply(i,u),s+=u.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)An(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else An(e,t)}}function An(e,t){if(1!=t.text.length||""!=t.text[0]||0!=F(t.from,t.to)){var r=Kr(e,t);nn(e,t,r,e.cm?e.cm.curOp.id:NaN),_n(e,t,r,K(e,t));var n=[];Zr(e,function(e,r){r||-1!=f(n,e.history)||(Dn(e.history,t),n.push(e.history)),_n(e,t,null,K(e,t))})}}function On(e,t,r){if(!e.cm||!e.cm.state.suppressEdits||r){for(var n,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,l="undo"==t?i.undone:i.done,s=0;s<a.length&&(n=a[s],r?!n.ranges||n.equals(e.sel):n.ranges);s++);if(s!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;(n=a.pop()).ranges;){if(an(n,l),r&&!n.equals(e.sel))return void vn(e,n,{clearRedo:!1});o=n}var c=[];an(o,l),l.push({changes:c,generation:i.generation}),i.generation=n.generation||++i.maxGeneration;for(var u=ve(e,"beforeChange")||e.cm&&ve(e.cm,"beforeChange"),d=function(r){var i=n.changes[r];if(i.origin=t,u&&!Ln(e,i,!1))return a.length=0,{};c.push(tn(e,i));var o=r?Kr(e,i):m(a);_n(e,i,o,cn(e,i)),!r&&e.cm&&e.cm.scrollIntoView({from:i.from,to:qr(i)});var l=[];Zr(e,function(e,t){t||-1!=f(l,e.history)||(Dn(e.history,i),l.push(e.history)),_n(e,i,null,cn(e,i))})},h=n.changes.length-1;h>=0;--h){var p=d(h);if(p)return p.v}}}}function Nn(e,t){if(0!=t&&(e.first+=t,e.sel=new ta(g(e.sel.ranges,function(e){return new ra(W(e.anchor.line+t,e.anchor.ch),W(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Sr(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)Tr(e.cm,n,"gutter")}}function _n(e,t,r,n){if(e.cm&&!e.cm.curOp)return xr(e.cm,_n)(e,t,r,n);if(t.to.line<e.first)Nn(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);Nn(e,i),t={from:W(e.first,0),to:W(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:W(o,T(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=L(e,t.from,t.to),r||(r=Kr(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,l=!1,s=o.line;e.options.lineWrapping||(s=O(re(T(n,o.line))),n.iter(s,a.line+1,function(e){if(e==i.maxLine)return l=!0,!0}));n.sel.contains(t.from,t.to)>-1&&ge(e);Xr(n,t,r,Rt(e)),e.options.lineWrapping||(n.iter(s,o.line+t.text.length,function(e){var t=se(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,l=!1)}),l&&(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;n>r;n--){var i=T(e,n).stateAfter;if(i&&(!(i instanceof Ho)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}})(n,o.line),Or(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?Sr(e):o.line!=a.line||1!=t.text.length||Yr(e.doc,t)?Sr(e,o.line,a.line+1,c):Tr(e,o.line,"text");var u=ve(e,"changes"),d=ve(e,"change");if(d||u){var f={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};d&&Xe(e,"change",e,f),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}(e.cm,t,n):Xr(e,t,n),yn(e,r,vo)}}function En(e,t,r,n,i){if(n||(n=r),F(n,r)<0){var o;r=(o=[n,r])[0],n=o[1]}"string"==typeof t&&(t=e.splitLines(t)),Mn(e,{from:r,to:n,text:t,origin:i})}function Wn(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function Fn(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 l=0;l<o.ranges.length;l++)Wn(o.ranges[l].anchor,t,r,n),Wn(o.ranges[l].head,t,r,n)}else{for(var s=0;s<o.changes.length;++s){var c=o.changes[s];if(r<c.from.line)c.from=W(c.from.line+n,c.from.ch),c.to=W(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 Dn(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;Fn(e.done,r,n,i),Fn(e.undone,r,n,i)}function zn(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=T(e,I(e,t)):i=O(t),null==i?null:(n(o,i)&&e.cm&&Tr(e.cm,i,r),o)}function Pn(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 Hn(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}function In(e,t,r){le(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&ar(e,r)}function jn(e,t,r,n,o){if(n&&n.shared)return function(e,t,r,n,i){(n=u(n)).shared=!1;var o=[jn(e,t,r,n,i)],a=o[0],l=n.widgetNode;return Zr(e,function(e){l&&(n.widgetNode=l.cloneNode(!0)),o.push(jn(e,j(e,t),j(e,r),n,i));for(var s=0;s<e.linked.length;++s)if(e.linked[s].isParent)return;a=m(o)}),new aa(o,a)}(e,t,r,n,o);if(e.cm&&!e.cm.curOp)return xr(e.cm,jn)(e,t,r,n,o);var a=new oa(e,o),l=F(t,r);if(n&&u(n,a,!1),l>0||0==l&&!1!==a.clearWhenEmpty)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=i("span",[a.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(te(e,t.line,t,r,a)||t.line!=r.line&&te(e,r.line,t,r,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");So=!0}a.addToHistory&&nn(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,c=t.line,d=e.cm;if(e.iter(c,r.line+1,function(e){d&&a.collapsed&&!d.options.lineWrapping&&re(e)==d.display.maxLine&&(s=!0),a.collapsed&&c!=t.line&&A(e,0),function(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}(e,new B(a,c==t.line?t.ch:null,c==r.line?r.ch:null)),++c}),a.collapsed&&e.iter(t.line,r.line+1,function(t){oe(e,t)&&A(t,0)}),a.clearOnEnter&&Ao(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(Co=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++ia,a.atomic=!0),d){if(s&&(d.curOp.updateMaxLine=!0),a.collapsed)Sr(d,t.line,r.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var f=t.line;f<=r.line;f++)Tr(d,f,"text");a.atomic&&wn(d.doc),Xe(d,"markerAdded",d,a)}return a}function Rn(e){return e.findMarks(W(e.first,0),e.clipPos(W(e.lastLine())),function(e){return e.parent})}function Bn(e){for(var t=function(t){var r=e[t],n=[r.primary.doc];Zr(r.primary.doc,function(e){return n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];-1==f(n,o.doc)&&(o.parent=null,r.markers.splice(i--,1))}},r=0;r<e.length;r++)t(r)}function qn(e){var t=this;if(Un(t),!me(t,e)&&!lt(t.display,e)){be(e),Ui&&(ca=+new Date);var r=qt(t,e,!0),n=e.dataTransfer.files;if(r&&!t.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),a=0,l=function(e,n){if(!t.options.allowDropFileTypes||-1!=f(t.options.allowDropFileTypes,e.type)){var l=new FileReader;l.onload=xr(t,function(){var e=l.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[n]=e,++a==i){var s={from:r=j(t.doc,r),to:r,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Mn(t.doc,s),gn(t.doc,Br(r,qr(s)))}}),l.readAsText(e)}},s=0;s<i;++s)l(n[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(r)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var c=e.dataTransfer.getData("Text");if(c){var u;if(t.state.draggingText&&!t.state.draggingText.copy&&(u=t.listSelections()),yn(t.doc,Br(r,r)),u)for(var d=0;d<u.length;++d)En(t.doc,"",u[d].anchor,u[d].head,"drag");t.replaceSelection(c,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Un(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Kn(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}function Vn(){ua||(!function(){var e;Ao(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Kn(Gn)},100))}),Ao(window,"blur",function(){return Kn(Qt)})}(),ua=!0)}function Gn(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 $n(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var r,n,i,o,a=0;a<t.length-1;a++){var l=t[a];if(/^(cmd|meta|m)$/i.test(l))o=!0;else if(/^a(lt)?$/i.test(l))r=!0;else if(/^(c|ctrl|control)$/i.test(l))n=!0;else{if(!/^s(hift)?$/i.test(l))throw new Error("Unrecognized modifier name: "+l);i=!0}}return r&&(e="Alt-"+e),n&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function Yn(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if("..."==n){delete e[r];continue}for(var i=g(r.split(" "),$n),o=0;o<i.length;o++){var a=void 0,l=void 0;o==i.length-1?(l=i.join(" "),a=n):(l=i.slice(0,o+1).join(" "),a="...");var s=t[l];if(s){if(s!=a)throw new Error("Inconsistent bindings for "+l)}else t[l]=a}delete e[r]}for(var c in t)e[c]=t[c];return e}function Xn(e,t,r,n){var i=(t=ei(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 Xn(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var a=Xn(e,t.fallthrough[o],r,n);if(a)return a}}}function Zn(e){var t="string"==typeof e?e:da[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function Jn(e,t,r){var n=e;return t.altKey&&"Alt"!=n&&(e="Alt-"+e),(lo?t.metaKey:t.ctrlKey)&&"Ctrl"!=n&&(e="Ctrl-"+e),(lo?t.ctrlKey:t.metaKey)&&"Cmd"!=n&&(e="Cmd-"+e),!r&&t.shiftKey&&"Shift"!=n&&(e="Shift-"+e),e}function Qn(e,t){if(Yi&&34==e.keyCode&&e.char)return!1;var r=da[e.keyCode];return null!=r&&!e.altGraphKey&&Jn(r,e,t)}function ei(e){return"string"==typeof e?ma[e]:e}function ti(e,t){for(var r=e.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=t(r[i]);n.length&&F(o.from,m(n).to)<=0;){var a=n.pop();if(F(a.from,o.from)<0){o.from=a.from;break}}n.push(o)}wr(e,function(){for(var t=n.length-1;t>=0;t--)En(e.doc,"",n[t].from,n[t].to,"+delete");lr(e)})}function ri(e,t,r){var n=C(e.text,t+r,r);return n<0||n>e.text.length?null:n}function ni(e,t,r){var n=ri(e,t.ch,r);return null==n?null:new W(t.line,n,r<0?"after":"before")}function ii(e,t,r,n,i){if(e){var o=de(r,t.doc.direction);if(o){var a,l=i<0?m(o):o[0],s=i<0==(1==l.level)?"after":"before";if(l.level>0||"rtl"==t.doc.direction){var c=vt(t,r);a=i<0?r.text.length-1:0;var u=yt(t,c,a).top;a=S(function(e){return yt(t,c,e).top==u},i<0==(1==l.level)?l.from:l.to-1,a),"before"==s&&(a=ri(r,a,1))}else a=i<0?l.to:l.from;return new W(n,a,s)}}return new W(n,i<0?r.text.length:0,i<0?"before":"after")}function oi(e,t){var r=T(e.doc,t),n=re(r);return n!=r&&(t=O(n)),ii(!0,e,n,t,1)}function ai(e,t){var r=T(e.doc,t),n=function(e){for(var t;t=ee(e);)e=t.find(1,!0).line;return e}(r);return n!=r&&(t=O(n)),ii(!0,e,r,t,-1)}function li(e,t){var r=oi(e,t.line),n=T(e.doc,r.line),i=de(n,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\S/)),a=t.line==r.line&&t.ch<=o&&t.ch;return W(r.line,a?0:o,r.sticky)}return r}function si(e,t,r){if("string"==typeof t&&!(t=ga[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)!=go}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}function ci(e,t,r,n){var i=e.state.keySeq;if(i){if(Zn(t))return"handled";if(/\'$/.test(t)?e.state.keySeq=null:va.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),ui(e,i+" "+t,r,n))return!0}return ui(e,t,r,n)}function ui(e,t,r,n){var i=function(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=Xn(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&Xn(t,e.options.extraKeys,r,e)||Xn(t,e.options.keyMap,r,e)}(e,t,n);return"multi"==i&&(e.state.keySeq=t),"handled"==i&&Xe(e,"keyHandled",e,t,r),"handled"!=i&&"multi"!=i||(be(r),Yt(e)),!!i}function di(e,t){var r=Qn(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?ci(e,"Shift-"+r,t,function(t){return si(e,t,!0)})||ci(e,r,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return si(e,t)}):ci(e,r,t,function(t){return si(e,t)}))}function fi(e){if(this.curOp.focus=a(),!me(this,e)){Ui&&Ki<11&&27==e.keyCode&&(e.returnValue=!1);var t=e.keyCode;this.display.shift=16==t||e.shiftKey;var r=di(this,e);Yi&&(ya=r?t:null,!r&&88==t&&!Eo&&(ro?e.metaKey:e.ctrlKey)&&this.replaceSelection("",null,"cut")),18!=t||/\bCodeMirror-crosshair\b/.test(this.display.lineDiv.className)||function(e){function t(e){18!=e.keyCode&&e.altKey||(co(r,"CodeMirror-crosshair"),he(document,"keyup",t),he(document,"mouseover",t))}var r=e.display.lineDiv;l(r,"CodeMirror-crosshair");Ao(document,"keyup",t),Ao(document,"mouseover",t)}(this)}}function hi(e){16==e.keyCode&&(this.doc.sel.shift=!1),me(this,e)}function pi(e){if(!(lt(this.display,e)||me(this,e)||e.ctrlKey&&!e.altKey||ro&&e.metaKey)){var t=e.keyCode,r=e.charCode;if(Yi&&t==ya)return ya=null,void be(e);if(!Yi||e.which&&!(e.which<10)||!di(this,e)){var n=String.fromCharCode(null==r?t:r);"\b"!=n&&(function(e,t,r){return ci(e,"'"+r+"'",t,function(t){return si(e,t,!0)})}(this,e,n)||this.display.input.onKeyPress(e))}}}function mi(e){var t=this.display;if(!(me(this,e)||t.activeTouch&&t.input.supportsTouch()))if(t.input.ensurePolled(),t.shift=e.shiftKey,lt(t,e))Vi||(t.scroller.draggable=!1,setTimeout(function(){return t.scroller.draggable=!0},100));else if(!yi(this,e)){var r=qt(this,e),n=Se(e),i=r?function(e,t){var r=+new Date;return xa&&xa.compare(r,e,t)?(wa=xa=null,"triple"):wa&&wa.compare(r,e,t)?(xa=new ba(r,e,t),wa=null,"double"):(wa=new ba(r,e,t),xa=null,"single")}(r,n):"single";window.focus(),1==n&&this.state.selectingText&&this.state.selectingText(e),r&&function(e,t,r,n,i){var o="Click";"double"==n?o="Double"+o:"triple"==n&&(o="Triple"+o);return o=(1==t?"Left":2==t?"Middle":"Right")+o,ci(e,Jn(o,i),i,function(t){if("string"==typeof t&&(t=ga[t]),!t)return!1;var n=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n=t(e,r)!=go}finally{e.state.suppressEdits=!1}return n})}(this,n,r,i,e)||(1==n?r?function(e,t,r,n){Ui?setTimeout(c(Xt,e),0):e.curOp.focus=a();var i,o=function(e,t,r){var n=e.getOption("configureMouse"),i=n?n(e,t,r):{};if(null==i.unit){var o=no?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=ro?r.metaKey:r.ctrlKey);null==i.moveOnDrag&&(i.moveOnDrag=!(ro?r.altKey:r.ctrlKey));return i}(e,r,n),l=e.doc.sel;e.options.dragDrop&&Oo&&!e.isReadOnly()&&"single"==r&&(i=l.contains(t))>-1&&(F((i=l.ranges[i]).from(),t)<0||t.xRel>0)&&(F(i.to(),t)>0||t.xRel<0)?function(e,t,r,n){var i=e.display,o=!1,a=xr(e,function(t){Vi&&(i.scroller.draggable=!1),e.state.draggingText=!1,he(document,"mouseup",a),he(document,"mousemove",l),he(i.scroller,"dragstart",s),he(i.scroller,"drop",a),o||(be(t),n.addNew||fn(e.doc,r,null,null,n.extend),Vi||Ui&&9==Ki?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())}),l=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},s=function(){return o=!0};Vi&&(i.scroller.draggable=!0);e.state.draggingText=a,a.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop();Ao(document,"mouseup",a),Ao(document,"mousemove",l),Ao(i.scroller,"dragstart",s),Ao(i.scroller,"drop",a),Zt(e),setTimeout(function(){return i.input.focus()},20)}(e,n,t,o):function(e,t,r,n){function i(t){if(0!=F(v,t))if(v=t,"rectangle"==n.unit){for(var i=[],o=e.options.tabSize,a=d(T(c,r.line).text,r.ch,o),l=d(T(c,t.line).text,t.ch,o),s=Math.min(a,l),m=Math.max(a,l),g=Math.min(r.line,t.line),y=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=y;g++){var b=T(c,g).text,w=h(b,s,o);s==m?i.push(new ra(W(g,w),W(g,w))):b.length>w&&i.push(new ra(W(g,w),W(g,h(b,m,o))))}i.length||i.push(new ra(r,r)),vn(c,Rr(p.ranges.slice(0,f).concat(i),f),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var x,k=u,C=gi(e,t,n.unit),S=k.anchor;F(C.anchor,S)>0?(x=C.head,S=H(k.from(),C.anchor)):(x=C.anchor,S=P(k.to(),C.head));var L=p.ranges.slice(0);L[f]=function(e,t){var r=t.anchor,n=t.head,i=T(e.doc,r.line);if(0==F(r,n)&&r.sticky==n.sticky)return t;var o=de(i);if(!o)return t;var a=ue(o,r.ch,r.sticky),l=o[a];if(l.from!=r.ch&&l.to!=r.ch)return t;var s=a+(l.from==r.ch==(1!=l.level)?0:1);if(0==s||s==o.length)return t;var c;if(n.line!=r.line)c=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var u=ue(o,n.ch,n.sticky),d=u-a||(n.ch-r.ch)*(1==l.level?-1:1);c=u==s-1||u==s?d<0:d>0}var f=o[s+(c?-1:0)],h=c==(1==f.level),p=h?f.from:f.to,m=h?"after":"before";return r.ch==p&&r.sticky==m?t:new ra(new W(r.line,p,m),n)}(e,new ra(j(c,S),x)),vn(c,Rr(L,f),yo)}}function o(t){var r=++b,l=qt(e,t,!0,"rectangle"==n.unit);if(l)if(0!=F(l,v)){e.curOp.focus=a(),i(l);var u=rr(s,c);(l.line>=u.to||l.line<u.from)&&setTimeout(xr(e,function(){b==r&&o(t)}),150)}else{var d=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;d&&setTimeout(xr(e,function(){b==r&&(s.scroller.scrollTop+=d,o(t))}),50)}}function l(t){e.state.selectingText=!1,b=1/0,be(t),s.input.focus(),he(document,"mousemove",w),he(document,"mouseup",x),c.history.lastSelOrigin=null}var s=e.display,c=e.doc;be(t);var u,f,p=c.sel,m=p.ranges;n.addNew&&!n.extend?(f=c.sel.contains(r),u=f>-1?m[f]:new ra(r,r)):(u=c.sel.primary(),f=c.sel.primIndex);if("rectangle"==n.unit)n.addNew||(u=new ra(r,r)),r=qt(e,t,!0,!0),f=-1;else{var g=gi(e,r,n.unit);u=n.extend?dn(u,g.anchor,g.head,n.extend):g}n.addNew?-1==f?(f=m.length,vn(c,Rr(m.concat([u]),f),{scroll:!1,origin:"*mouse"})):m.length>1&&m[f].empty()&&"char"==n.unit&&!n.extend?(vn(c,Rr(m.slice(0,f).concat(m.slice(f+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):pn(c,f,u,yo):(f=0,vn(c,new ta([u],0),yo),p=c.sel);var v=r;var y=s.wrapper.getBoundingClientRect(),b=0;var w=xr(e,function(e){Se(e)?o(e):l(e)}),x=xr(e,l);e.state.selectingText=x,Ao(document,"mousemove",w),Ao(document,"mouseup",x)}(e,n,t,o)}(this,r,i,e):Ce(e)==t.scroller&&be(e):2==n?(r&&fn(this.doc,r),setTimeout(function(){return t.input.focus()},20)):3==n&&(so?bi(this,e):Zt(this)))}}function gi(e,t,r){if("char"==r)return new ra(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new ra(W(t.line,0),j(e.doc,W(t.line+1,0)));var n=r(e,t);return new ra(n.from,n.to)}function vi(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&&be(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!ve(e,r))return xe(t);o-=l.top-a.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var c=a.gutters.childNodes[s];if(c&&c.getBoundingClientRect().right>=i){return pe(e,r,e,N(e.doc,o),e.options.gutters[s],t),xe(t)}}}function yi(e,t){return vi(e,t,"gutterClick",!0)}function bi(e,t){lt(e.display,t)||function(e,t){if(!ve(e,"gutterContextMenu"))return!1;return vi(e,t,"gutterContextMenu",!1)}(e,t)||me(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function wi(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Ct(e)}function xi(e){zr(e),Sr(e),nr(e)}function ki(e,t,r){if(!t!=!(r&&r!=ka)){var n=e.display.dragFunctions,i=t?Ao:he;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 Ci(e){e.options.lineWrapping?(l(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(co(e.display.wrapper,"CodeMirror-wrap"),ce(e)),Bt(e),Sr(e),Ct(e),setTimeout(function(){return mr(e)},100)}function Si(e,t){var o=this;if(!(this instanceof Si))return new Si(e,t);this.options=t=t?u(t):{},u(Ca,t,!1),Pr(t);var a=t.value;"string"==typeof a&&(a=new sa(a,t.mode,null,t.lineSeparator,t.direction)),this.doc=a;var l=new Si.inputStyles[t.inputStyle](this),s=this.display=new function(e,t,r){this.input=r,this.scrollbarFiller=n("div",null,"CodeMirror-scrollbar-filler"),this.scrollbarFiller.setAttribute("cm-not-content","true"),this.gutterFiller=n("div",null,"CodeMirror-gutter-filler"),this.gutterFiller.setAttribute("cm-not-content","true"),this.lineDiv=i("div",null,"CodeMirror-code"),this.selectionDiv=n("div",null,null,"position: relative; z-index: 1"),this.cursorDiv=n("div",null,"CodeMirror-cursors"),this.measure=n("div",null,"CodeMirror-measure"),this.lineMeasure=n("div",null,"CodeMirror-measure"),this.lineSpace=i("div",[this.measure,this.lineMeasure,this.selectionDiv,this.cursorDiv,this.lineDiv],null,"position: relative; outline: none");var o=i("div",[this.lineSpace],"CodeMirror-lines");this.mover=n("div",[o],null,"position: relative"),this.sizer=n("div",[this.mover],"CodeMirror-sizer"),this.sizerWidth=null,this.heightForcer=n("div",null,null,"position: absolute; height: "+mo+"px; width: 1px;"),this.gutters=n("div",null,"CodeMirror-gutters"),this.lineGutter=null,this.scroller=n("div",[this.sizer,this.heightForcer,this.gutters],"CodeMirror-scroll"),this.scroller.setAttribute("tabIndex","-1"),this.wrapper=n("div",[this.scrollbarFiller,this.gutterFiller,this.scroller],"CodeMirror"),Ui&&Ki<8&&(this.gutters.style.zIndex=-1,this.scroller.style.paddingRight=0),Vi||ji&&to||(this.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(this.wrapper):e(this.wrapper)),this.viewFrom=this.viewTo=t.first,this.reportedViewFrom=this.reportedViewTo=t.first,this.view=[],this.renderedView=null,this.externalMeasured=null,this.viewOffset=0,this.lastWrapHeight=this.lastWrapWidth=0,this.updateLineNumbers=null,this.nativeBarWidth=this.barHeight=this.barWidth=0,this.scrollbarsClipped=!1,this.lineNumWidth=this.lineNumInnerWidth=this.lineNumChars=null,this.alignWidgets=!1,this.cachedCharWidth=this.cachedTextHeight=this.cachedPaddingH=null,this.maxLine=null,this.maxLineLength=0,this.maxLineChanged=!1,this.wheelDX=this.wheelDY=this.wheelStartX=this.wheelStartY=null,this.shift=!1,this.selForContextMenu=null,this.activeTouch=null,r.init(this)}(e,a,l);s.wrapper.CodeMirror=this,zr(this),wi(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),vr(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 fo,keySeq:null,specialChars:null},t.autofocus&&!to&&s.input.focus(),Ui&&Ki<11&&setTimeout(function(){return o.display.input.reset(!0)},20),function(e){function t(){o.activeTouch&&(a=setTimeout(function(){return o.activeTouch=null},1e3),(l=o.activeTouch).end=+new Date)}function i(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}var o=e.display;Ao(o.scroller,"mousedown",xr(e,mi)),Ui&&Ki<11?Ao(o.scroller,"dblclick",xr(e,function(t){if(!me(e,t)){var r=qt(e,t);if(r&&!yi(e,t)&&!lt(e.display,t)){be(t);var n=e.findWordAt(r);fn(e.doc,n.anchor,n.head)}}})):Ao(o.scroller,"dblclick",function(t){return me(e,t)||be(t)});so||Ao(o.scroller,"contextmenu",function(t){return bi(e,t)});var a,l={end:0};Ao(o.scroller,"touchstart",function(t){if(!me(e,t)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(t)&&!yi(e,t)){o.input.ensurePolled(),clearTimeout(a);var r=+new Date;o.activeTouch={start:r,moved:!1,prev:r-l.end<=300?l:null},1==t.touches.length&&(o.activeTouch.left=t.touches[0].pageX,o.activeTouch.top=t.touches[0].pageY)}}),Ao(o.scroller,"touchmove",function(){o.activeTouch&&(o.activeTouch.moved=!0)}),Ao(o.scroller,"touchend",function(r){var n=o.activeTouch;if(n&&!lt(o,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var a,l=e.coordsChar(o.activeTouch,"page");a=!n.prev||i(n,n.prev)?new ra(l,l):!n.prev.prev||i(n,n.prev.prev)?e.findWordAt(l):new ra(W(l.line,0),j(e.doc,W(l.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),be(r)}t()}),Ao(o.scroller,"touchcancel",t),Ao(o.scroller,"scroll",function(){o.scroller.clientHeight&&(dr(e,o.scroller.scrollTop),hr(e,o.scroller.scrollLeft,!0),pe(e,"scroll",e))}),Ao(o.scroller,"mousewheel",function(t){return jr(e,t)}),Ao(o.scroller,"DOMMouseScroll",function(t){return jr(e,t)}),Ao(o.wrapper,"scroll",function(){return o.wrapper.scrollTop=o.wrapper.scrollLeft=0}),o.dragFunctions={enter:function(t){me(e,t)||ke(t)},over:function(t){me(e,t)||(!function(e,t){var i=qt(e,t);if(i){var o=document.createDocumentFragment();Gt(e,i,o),e.display.dragCursor||(e.display.dragCursor=n("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),r(e.display.dragCursor,o)}}(e,t),ke(t))},start:function(t){return function(e,t){if(Ui&&(!e.state.draggingText||+new Date-ca<100))ke(t);else if(!me(e,t)&&!lt(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!Xi)){var r=n("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",Yi&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),Yi&&r.parentNode.removeChild(r)}}(e,t)},drop:xr(e,qn),leave:function(t){me(e,t)||Un(e)}};var s=o.input.getField();Ao(s,"keyup",function(t){return hi.call(e,t)}),Ao(s,"keydown",xr(e,fi)),Ao(s,"keypress",xr(e,pi)),Ao(s,"focus",function(t){return Jt(e,t)}),Ao(s,"blur",function(t){return Qt(e,t)})}(this),Vn(),yr(this),this.curOp.forceUpdate=!0,Jr(this,a),t.autofocus&&!to||this.hasFocus()?setTimeout(c(Jt,this),20):Qt(this);for(var d in Sa)Sa.hasOwnProperty(d)&&Sa[d](o,t[d],ka);ir(this),t.finishInit&&t.finishInit(this);for(var f=0;f<Ta.length;++f)Ta[f](o);br(this),Vi&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(s.lineDiv).textRendering&&(s.lineDiv.style.textRendering="auto")}function Ti(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=De(e,t).state:r="prev");var a=e.options.tabSize,l=T(o,t),s=d(l.text,null,a);l.stateAfter&&(l.stateAfter=null);var c,u=l.text.match(/^\s*/)[0];if(n||/\S/.test(l.text)){if("smart"==r&&((c=o.mode.indent(i,l.text.slice(u.length),l.text))==go||c>150)){if(!n)return;r="prev"}}else c=0,r="not";"prev"==r?c=t>o.first?d(T(o,t-1).text,null,a):0:"add"==r?c=s+e.options.indentUnit:"subtract"==r?c=s-e.options.indentUnit:"number"==typeof r&&(c=s+r),c=Math.max(0,c);var f="",h=0;if(e.options.indentWithTabs)for(var m=Math.floor(c/a);m;--m)h+=a,f+="\t";if(h<c&&(f+=p(c-h)),f!=u)return En(o,f,W(t,0),W(t,u.length),"+input"),l.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var v=o.sel.ranges[g];if(v.head.line==t&&v.head.ch<u.length){var y=W(t,u.length);pn(o,g,new ra(y,y));break}}}function Li(e){La=e}function Mi(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var a=e.state.pasteIncoming||"paste"==i,l=No(t),s=null;if(a&&n.ranges.length>1)if(La&&La.text.join("\n")==t){if(n.ranges.length%La.text.length==0){s=[];for(var c=0;c<La.text.length;c++)s.push(o.splitLines(La.text[c]))}}else l.length==n.ranges.length&&e.options.pasteLinesPerSelection&&(s=g(l,function(e){return[e]}));for(var u,d=n.ranges.length-1;d>=0;d--){var f=n.ranges[d],h=f.from(),p=f.to();f.empty()&&(r&&r>0?h=W(h.line,h.ch-r):e.state.overwrite&&!a?p=W(p.line,Math.min(T(o,p.line).text.length,p.ch+m(l).length)):La&&La.lineWise&&La.text.join("\n")==t&&(h=p=W(h.line,0))),u=e.curOp.updateInput;var v={from:h,to:p,text:s?s[d%s.length]:l,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};Mn(e.doc,v),Xe(e,"inputRead",e,v)}t&&!a&&Oi(e,t),lr(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Ai(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||wr(t,function(){return Mi(t,r,0,null,"paste")}),!0}function Oi(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l<o.electricChars.length;l++)if(t.indexOf(o.electricChars.charAt(l))>-1){a=Ti(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(T(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ti(e,i.head.line,"smart"));a&&Xe(e,"electricInput",e,i.head.line)}}}function Ni(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:W(i,0),head:W(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function _i(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Ei(){var e=n("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=n("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return Vi?e.style.width="1000px":e.setAttribute("wrap","off"),Qi&&(e.style.border="1px solid black"),_i(e),t}function Wi(e,t,r,n,i){function o(n){var o;if(null==(o=i?function(e,t,r,n){var i=de(t,e.doc.direction);if(!i)return ni(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=ue(i,r.ch,r.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(n>0?a.to>r.ch:a.from<r.ch))return ni(t,r,n);var l,s=function(e,r){return ri(t,e instanceof W?e.ch:e,r)},c=function(r){return e.options.lineWrapping?(l=l||vt(e,t),Dt(e,t,l,r)):{begin:0,end:t.text.length}},u=c("before"==r.sticky?s(r,-1):r.ch);if("rtl"==e.doc.direction||1==a.level){var d=1==a.level==n<0,f=s(r,d?1:-1);if(null!=f&&(d?f<=a.to&&f<=u.end:f>=a.from&&f>=u.begin)){var h=d?"before":"after";return new W(r.line,f,h)}}var p=function(e,t,n){for(var o=function(e,t){return t?new W(r.line,s(e,1),"before"):new W(r.line,e,"after")};e>=0&&e<i.length;e+=t){var a=i[e],l=t>0==(1!=a.level),c=l?n.begin:s(n.end,-1);if(a.from<=c&&c<a.to)return o(c,l);if(c=l?a.from:s(a.to,-1),n.begin<=c&&c<n.end)return o(c,l)}},m=p(o+n,n,u);if(m)return m;var g=n>0?u.end:s(u.begin,-1);return null==g||n>0&&g==t.text.length||!(m=p(n>0?0:i.length-1,n,c(g)))?null:m}(e.cm,s,t,r):ni(s,t,r))){if(n||!function(){var n=t.line+r;return!(n<e.first||n>=e.first+e.size)&&(t=new W(n,t.ch,t.sticky),s=T(e,n))}())return!1;t=ii(i,e.cm,s,t.line,r)}else t=o;return!0}var a=t,l=r,s=T(e,t.line);if("char"==n)o();else if("column"==n)o(!0);else if("word"==n||"group"==n)for(var c=null,u="group"==n,d=e.cm&&e.cm.getHelper(t,"wordChars"),f=!0;!(r<0)||o(!f);f=!1){var h=s.text.charAt(t.ch)||"\n",p=w(h,d)?"w":u&&"\n"==h?"n":!u||/\s/.test(h)?null:"p";if(!u||f||p||(p="s"),c&&c!=p){r<0&&(r=1,o(),t.sticky="after");break}if(p&&(c=p),r>0&&!o(!f))break}var m=Cn(e,t,a,l,!0);return D(a,m)&&(m.hitSide=!0),m}function Fi(e,t,r,n){var i,o=e.doc,a=t.left;if("page"==n){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),s=Math.max(l-.5*Pt(e.display),3);i=(r>0?t.bottom:t.top)+r*s}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(var c;(c=Wt(e,a,i)).outside;){if(r<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*r}return c}function Di(e,t){var r=gt(e,t.line);if(!r||r.hidden)return null;var n=T(e.doc,t.line),i=pt(r,n,t.line),o=de(n,e.doc.direction),a="left";if(o){a=ue(o,t.ch)%2?"right":"left"}var l=bt(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function zi(e,t){return t&&(e.bad=!0),e}function Pi(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return zi(e.clipPos(W(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 a=e.display.view[i];if(a.node==n)return function(e,t,r){function n(t,r,n){for(var i=-1;i<(d?d.length:0);i++)for(var o=i<0?u.map:d[i],a=0;a<o.length;a+=3){var l=o[a+2];if(l==t||l==r){var s=O(i<0?e.line:e.rest[i]),c=o[a]+n;return(n<0||l!=t)&&(c=o[a+(n?1:0)]),W(s,c)}}}var i=e.text.firstChild,a=!1;if(!t||!o(i,t))return zi(W(O(e.line),0),!0);if(t==i&&(a=!0,t=i.childNodes[r],r=0,!t)){var l=e.rest?m(e.rest):e.line;return zi(W(O(l),l.text.length),a)}var s=3==t.nodeType?t:null,c=t;s||1!=t.childNodes.length||3!=t.firstChild.nodeType||(s=t.firstChild,r&&(r=s.nodeValue.length));for(;c.parentNode!=i;)c=c.parentNode;var u=e.measure,d=u.maps;var f=n(s,c,r);if(f)return zi(f,a);for(var h=c.nextSibling,p=s?s.nodeValue.length-r:0;h;h=h.nextSibling){if(f=n(h,h.firstChild,0))return zi(W(f.line,f.ch-p),a);p+=h.textContent.length}for(var g=c.previousSibling,v=r;g;g=g.previousSibling){if(f=n(g,g.firstChild,-1))return zi(W(f.line,f.ch+v),a);v+=g.textContent.length}}(a,t,r)}}var Hi=navigator.userAgent,Ii=navigator.platform,ji=/gecko\/\d/i.test(Hi),Ri=/MSIE \d/.test(Hi),Bi=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Hi),qi=/Edge\/(\d+)/.exec(Hi),Ui=Ri||Bi||qi,Ki=Ui&&(Ri?document.documentMode||6:+(qi||Bi)[1]),Vi=!qi&&/WebKit\//.test(Hi),Gi=Vi&&/Qt\/\d+\.\d+/.test(Hi),$i=!qi&&/Chrome\//.test(Hi),Yi=/Opera\//.test(Hi),Xi=/Apple Computer/.test(navigator.vendor),Zi=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(Hi),Ji=/PhantomJS/.test(Hi),Qi=!qi&&/AppleWebKit/.test(Hi)&&/Mobile\/\w+/.test(Hi),eo=/Android/.test(Hi),to=Qi||eo||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Hi),ro=Qi||/Mac/.test(Ii),no=/\bCrOS\b/.test(Hi),io=/win/i.test(Ii),oo=Yi&&Hi.match(/Version\/(\d*\.\d*)/);oo&&(oo=Number(oo[1])),oo&&oo>=15&&(Yi=!1,Vi=!0);var ao,lo=ro&&(Gi||Yi&&(null==oo||oo<12.11)),so=ji||Ui&&Ki>=9,co=function(t,r){var n=t.className,i=e(r).exec(n);if(i){var o=n.slice(i.index+i[0].length);t.className=n.slice(0,i.index)+(o?i[1]+o:"")}};ao=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 uo=function(e){e.select()};Qi?uo=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:Ui&&(uo=function(e){try{e.select()}catch(e){}});var fo=function(){this.id=null};fo.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var ho,po,mo=30,go={toString:function(){return"CodeMirror.Pass"}},vo={scroll:!1},yo={origin:"*mouse"},bo={origin:"+move"},wo=[""],xo=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ko=/[\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]/,Co=!1,So=!1,To=null,Lo=function(){function e(e){return e<=247?r.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?n.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,r){this.level=e,this.from=t,this.to=r}var r="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",n="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,s=/[1n]/;return function(r,n){var c="ltr"==n?"L":"R";if(0==r.length||"ltr"==n&&!i.test(r))return!1;for(var u=r.length,d=[],f=0;f<u;++f)d.push(e(r.charCodeAt(f)));for(var h=0,p=c;h<u;++h){var g=d[h];"m"==g?d[h]=p:p=g}for(var v=0,y=c;v<u;++v){var b=d[v];"1"==b&&"r"==y?d[v]="n":a.test(b)&&(y=b,"r"==b&&(d[v]="R"))}for(var w=1,x=d[0];w<u-1;++w){var k=d[w];"+"==k&&"1"==x&&"1"==d[w+1]?d[w]="1":","!=k||x!=d[w+1]||"1"!=x&&"n"!=x||(d[w]=x),x=k}for(var C=0;C<u;++C){var S=d[C];if(","==S)d[C]="N";else if("%"==S){var T=void 0;for(T=C+1;T<u&&"%"==d[T];++T);for(var L=C&&"!"==d[C-1]||T<u&&"1"==d[T]?"1":"N",M=C;M<T;++M)d[M]=L;C=T-1}}for(var A=0,O=c;A<u;++A){var N=d[A];"L"==O&&"1"==N?d[A]="L":a.test(N)&&(O=N)}for(var _=0;_<u;++_)if(o.test(d[_])){var E=void 0;for(E=_+1;E<u&&o.test(d[E]);++E);for(var W="L"==(_?d[_-1]:c),F=W==("L"==(E<u?d[E]:c))?W?"L":"R":c,D=_;D<E;++D)d[D]=F;_=E-1}for(var z,P=[],H=0;H<u;)if(l.test(d[H])){var I=H;for(++H;H<u&&l.test(d[H]);++H);P.push(new t(0,I,H))}else{var j=H,R=P.length;for(++H;H<u&&"L"!=d[H];++H);for(var B=j;B<H;)if(s.test(d[B])){j<B&&P.splice(R,0,new t(1,j,B));var q=B;for(++B;B<H&&s.test(d[B]);++B);P.splice(R,0,new t(2,q,B)),j=B}else++B;j<H&&P.splice(R,0,new t(1,j,H))}return"ltr"==n&&(1==P[0].level&&(z=r.match(/^\s+/))&&(P[0].from=z[0].length,P.unshift(new t(0,0,z[0].length))),1==m(P).level&&(z=r.match(/\s+$/))&&(m(P).to-=z[0].length,P.push(new t(0,u-z[0].length,u)))),"rtl"==n?P.reverse():P}}(),Mo=[],Ao=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]||Mo).concat(r)}},Oo=function(){if(Ui&&Ki<9)return!1;var e=n("div");return"draggable"in e||"dragDrop"in e}(),No=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/)},_o=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)},Eo=function(){var e=n("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Wo=null,Fo={},Do={},zo={},Po=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};Po.prototype.eol=function(){return this.pos>=this.string.length},Po.prototype.sol=function(){return this.pos==this.lineStart},Po.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Po.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Po.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},Po.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Po.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Po.prototype.skipToEnd=function(){this.pos=this.string.length},Po.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},Po.prototype.backUp=function(e){this.pos-=e},Po.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=d(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},Po.prototype.indentation=function(){return d(this.string,null,this.tabSize)-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},Po.prototype.match=function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&!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},Po.prototype.current=function(){return this.string.slice(this.start,this.pos)},Po.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Po.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Po.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var Ho=function(e,t){this.state=e,this.lookAhead=t},Io=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};Io.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Io.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}},Io.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Io.fromSaved=function(e,t,r){return t instanceof Ho?new Io(e,Ne(e.mode,t.state),r,t.lookAhead):new Io(e,Ne(e.mode,t),r)},Io.prototype.save=function(e){var t=!1!==e?Ne(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Ho(t,this.maxLookAhead):t};var jo=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r},Ro=function(e,t,r){this.text=e,$(this,t),this.height=r?r(this):1};Ro.prototype.lineNo=function(){return O(this)},ye(Ro);var Bo,qo={},Uo={},Ko=null,Vo=null,Go={left:0,right:0,top:0,bottom:0},$o=function(e,t,r){this.cm=r;var i=this.vert=n("div",[n("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=n("div",[n("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),Ao(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),Ao(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,Ui&&Ki<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};$o.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},$o.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},$o.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},$o.prototype.zeroWidthHack=function(){var e=ro&&!Zi?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new fo,this.disableVert=new fo},$o.prototype.enableZeroWidthBar=function(e,t,r){function n(){var i=e.getBoundingClientRect();("vert"==r?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,n)}e.style.pointerEvents="auto",t.set(1e3,n)},$o.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Yo=function(){};Yo.prototype.update=function(){return{bottom:0,right:0}},Yo.prototype.setScrollLeft=function(){},Yo.prototype.setScrollTop=function(){},Yo.prototype.clear=function(){};var Xo={native:$o,null:Yo},Zo=0,Jo=function(e,t,r){var n=e.display;this.viewport=t,this.visible=rr(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=ft(e),this.force=r,this.dims=It(e),this.events=[]};Jo.prototype.signal=function(e,t){ve(e,t)&&this.events.push(arguments)},Jo.prototype.finish=function(){for(var e=0;e<this.events.length;e++)pe.apply(null,this.events[e])};var Qo=0,ea=null;Ui?ea=-.53:ji?ea=15:$i?ea=-.7:Xi&&(ea=-1/3);var ta=function(e,t){this.ranges=e,this.primIndex=t};ta.prototype.primary=function(){return this.ranges[this.primIndex]},ta.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(!D(r.anchor,n.anchor)||!D(r.head,n.head))return!1}return!0},ta.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new ra(z(this.ranges[t].anchor),z(this.ranges[t].head));return new ta(e,this.primIndex)},ta.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},ta.prototype.contains=function(e,t){t||(t=e);for(var r=0;r<this.ranges.length;r++){var n=this.ranges[r];if(F(t,n.from())>=0&&F(e,n.to())<=0)return r}return-1};var ra=function(e,t){this.anchor=e,this.head=t};ra.prototype.from=function(){return H(this.anchor,this.head)},ra.prototype.to=function(){return P(this.anchor,this.head)},ra.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Pn.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r=e,n=e+t;r<n;++r){var i=this.lines[r];this.height-=i.height,Be(i),Xe(i,"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}},Hn.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&&(this.children.length>1||!(this.children[0]instanceof Pn))){var l=[];this.collapse(l),this.children=[new Pn(l)],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&&i.lines.length>50){for(var a=i.lines.length%25+25,l=a;l<i.lines.length;){var s=new Pn(i.lines.slice(l,l+=25));i.height-=s.height,this.children.splice(++n,0,s),s.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 Hn(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var r=f(e.parent.children,e);e.parent.children.splice(r+1,0,t)}else{var n=new Hn(e.children);n.parent=e,e.children=[n,t],e=n}t.parent=e.parent}while(e.children.length>10);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 na=function(e,t,r){if(r)for(var n in r)r.hasOwnProperty(n)&&(this[n]=r[n]);this.doc=e,this.node=t};na.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,r=this.line,n=O(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=at(this);A(r,Math.max(0,r.height-o)),e&&(wr(e,function(){In(e,r,-o),Tr(e,n,"widget")}),Xe(e,"lineWidgetCleared",e,this,n))}},na.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=at(this)-t;i&&(A(n,n.height+i),r&&wr(r,function(){r.curOp.forceUpdate=!0,In(r,n,i),Xe(r,"lineWidgetChanged",r,e,O(n))}))},ye(na);var ia=0,oa=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++ia};oa.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&yr(e),ve(this,"clear")){var r=this.find();r&&Xe(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;o<this.lines.length;++o){var a=this.lines[o],l=q(a.markedSpans,this);e&&!this.collapsed?Tr(e,O(a),"text"):e&&(null!=l.to&&(i=O(a)),null!=l.from&&(n=O(a))),a.markedSpans=U(a.markedSpans,l),null==l.from&&this.collapsed&&!oe(this.doc,a)&&e&&A(a,Pt(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var s=0;s<this.lines.length;++s){var c=re(this.lines[s]),u=se(c);u>e.display.maxLineLength&&(e.display.maxLine=c,e.display.maxLineLength=u,e.display.maxLineChanged=!0)}null!=n&&e&&this.collapsed&&Sr(e,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&wn(e.doc)),e&&Xe(e,"markerCleared",e,this,n,i),t&&br(e),this.parent&&this.parent.clear()}},oa.prototype.find=function(e,t){null==e&&"bookmark"==this.type&&(e=1);for(var r,n,i=0;i<this.lines.length;++i){var o=this.lines[i],a=q(o.markedSpans,this);if(null!=a.from&&(r=W(t?o:O(o),a.from),-1==e))return r;if(null!=a.to&&(n=W(t?o:O(o),a.to),1==e))return n}return r&&{from:r,to:n}},oa.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&wr(n,function(){var i=t.line,o=O(t.line),a=gt(n,o);if(a&&(xt(a),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!oe(r.doc,i)&&null!=r.height){var l=r.height;r.height=null;var s=at(r)-l;s&&A(i,i.height+s)}Xe(n,"markerChanged",n,e)})},oa.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=f(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},oa.prototype.detachLine=function(e){if(this.lines.splice(f(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},ye(oa);var aa=function(e,t){this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=this};aa.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();Xe(this,"clear")}},aa.prototype.find=function(e,t){return this.primary.find(e,t)},ye(aa);var la=0,sa=function(e,t,r,n,i){if(!(this instanceof sa))return new sa(e,t,r,n,i);null==r&&(r=0),Hn.call(this,[new Pn([new Ro("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=r;var o=W(r,0);this.sel=Br(o),this.history=new en(null),this.id=++la,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Xr(this,{from:o,to:o,text:e}),vn(this,Br(o),vo)};sa.prototype=y(Hn.prototype,{constructor:sa,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=M(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Cr(function(e){var t=W(this.first,0),r=this.first+this.size-1;Mn(this,{from:t,to:W(r,T(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&sr(this.cm,0,0),vn(this,Br(t),vo)}),replaceRange:function(e,t,r,n){En(this,e,t=j(this,t),r=r?j(this,r):t,n)},getRange:function(e,t,r){var n=L(this,j(this,e),j(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(_(this,e))return T(this,e)},getLineNumber:function(e){return O(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=T(this,e)),re(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return j(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:Cr(function(e,t,r){mn(this,j(this,"number"==typeof e?W(e,t||0):e),null,r)}),setSelection:Cr(function(e,t,r){mn(this,j(this,e),j(this,t||e),r)}),extendSelection:Cr(function(e,t,r){fn(this,j(this,e),t&&j(this,t),r)}),extendSelections:Cr(function(e,t){hn(this,R(this,e),t)}),extendSelectionsBy:Cr(function(e,t){hn(this,R(this,g(this.sel.ranges,e)),t)}),setSelections:Cr(function(e,t,r){if(e.length){for(var n=[],i=0;i<e.length;i++)n[i]=new ra(j(this,e[i].anchor),j(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),vn(this,Rr(n,t),r)}}),addSelection:Cr(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new ra(j(this,e),j(this,t||e))),vn(this,Rr(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this.sel.ranges,n=0;n<r.length;n++){var i=L(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=L(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:Cr(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 l=t&&"end"!=t&&function(e,t,r){for(var n=[],i=W(e.first,0),o=i,a=0;a<t.length;a++){var l=t[a],s=Vr(l.from,i,o),c=Vr(qr(l),i,o);if(i=l.to,o=c,"around"==r){var u=e.sel.ranges[a],d=F(u.head,u.anchor)<0;n[a]=new ra(d?c:s,d?s:c)}else n[a]=new ra(s,s)}return new ta(n,e.sel.primIndex)}(this,n,t),s=n.length-1;s>=0;s--)Mn(this,n[s]);l?gn(this,l):this.cm&&lr(this.cm)}),undo:Cr(function(){On(this,"undo")}),redo:Cr(function(){On(this,"redo")}),undoSelection:Cr(function(){On(this,"undo",!0)}),redoSelection:Cr(function(){On(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 en(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:un(this.history.done),undone:un(this.history.undone)}},setHistory:function(e){var t=this.history=new en(this.history.maxGeneration);t.done=un(e.done.slice(0),null,!0),t.undone=un(e.undone.slice(0),null,!0)},setGutterMarker:Cr(function(e,t,r){return zn(this,e,"gutter",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&x(n)&&(e.gutterMarkers=null),!0})}),clearGutter:Cr(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&zn(t,r,"gutter",function(){return r.gutterMarkers[e]=null,x(r.gutterMarkers)&&(r.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!_(this,e))return null;if(t=e,!(e=T(this,e)))return null}else if(null==(t=O(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:Cr(function(t,r,n){return zn(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(t[i]){if(e(n).test(t[i]))return!1;t[i]+=" "+n}else t[i]=n;return!0})}),removeLineClass:Cr(function(t,r,n){return zn(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==n)t[i]=null;else{var a=o.match(e(n));if(!a)return!1;var l=a.index+a[0].length;t[i]=o.slice(0,a.index)+(a.index&&l!=o.length?" ":"")+o.slice(l)||null}return!0})}),addLineWidget:Cr(function(e,t,r){return function(e,t,r,n){var i=new na(e,r,n),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),zn(e,t,"widget",function(t){var r=t.widgets||(t.widgets=[]);if(null==i.insertAt?r.push(i):r.splice(Math.min(r.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!oe(e,t)){var n=le(t)<e.scrollTop;A(t,t.height+at(i)),n&&ar(o,i.height),o.curOp.forceUpdate=!0}return!0}),Xe(o,"lineWidgetAdded",o,i,"number"==typeof t?t:O(t)),i}(this,e,t,r)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return jn(this,j(this,e),j(this,t),r,r&&r.type||"range")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=j(this,e),jn(this,e,e,r,"bookmark")},findMarksAt:function(e){var t=[],r=T(this,(e=j(this,e)).line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=j(this,e),t=j(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var l=0;l<a.length;l++){var s=a[l];null!=s.to&&i==e.line&&e.ch>=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||r&&!r(s.marker)||n.push(s.marker.parent||s.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;n<r.length;++n)null!=r[n].from&&e.push(r[n].marker)}),e},posFromIndex:function(e){var t,r=this.first,n=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+n;if(o>e)return t=e,!0;e-=o,++r}),j(this,W(r,t))},indexFromPos:function(e){var t=(e=j(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 sa(M(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 sa(M(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(F(o,a)){var l=jn(e,o,a,n.primary,n.primary.type);n.markers.push(l),l.parent=n}}}(n,Rn(this)),n},unlinkDoc:function(e){if(e instanceof Si&&(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),Bn(Rn(this));break}}if(e.history==this.history){var r=[e.id];Zr(e,function(e){return r.push(e.id)},!0),e.history=new en(null),e.history.done=un(this.history.done,r),e.history.undone=un(this.history.undone,r)}},iterLinkedDocs:function(e){Zr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):No(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:Cr(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&function(e){wr(e,function(){Qr(e),Sr(e)})}(this.cm))})}),sa.prototype.eachLine=sa.prototype.iter;for(var ca=0,ua=!1,da={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"},fa=0;fa<10;fa++)da[fa+48]=da[fa+96]=String(fa);for(var ha=65;ha<=90;ha++)da[ha]=String.fromCharCode(ha);for(var pa=1;pa<=12;pa++)da[pa+111]=da[pa+63235]="F"+pa;var ma={};ma.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"},ma.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"},ma.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"},ma.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"]},ma.default=ro?ma.macDefault:ma.pcDefault;var ga={selectAll:Tn,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),vo)},killLine:function(e){return ti(e,function(t){if(t.empty()){var r=T(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line<e.lastLine()?{from:t.head,to:W(t.head.line+1,0)}:{from:t.head,to:W(t.head.line,r)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return ti(e,function(t){return{from:W(t.from().line,0),to:j(e.doc,W(t.to().line+1,0))}})},delLineLeft:function(e){return ti(e,function(e){return{from:W(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return ti(e,function(t){var r=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:r},"div"),to:t.from()}})},delWrappedLineRight:function(e){return ti(e,function(t){var r=e.charCoords(t.head,"div").top+5,n=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div");return{from:t.from(),to:n}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(W(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(W(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return oi(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return li(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return ai(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div")},bo)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:r},"div")},bo)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5,n=e.coordsChar({left:0,top:r},"div");return n.ch<e.getLine(n.line).search(/\S/)?li(e,t.head):n},bo)},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=d(e.getLine(o.line),o.ch,n);t.push(p(n-a%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return wr(e,function(){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)if(t[n].empty()){var i=t[n].head,o=T(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new W(i.line,i.ch-1)),i.ch>0)i=new W(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),W(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=T(e.doc,i.line-1).text;a&&(i=new W(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),W(i.line-1,a.length-1),i,"+transpose"))}r.push(new ra(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return wr(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n<t.length;n++)e.indentLine(t[n].from().line,null,!0);lr(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},va=new fo,ya=null,ba=function(e,t,r){this.time=e,this.pos=t,this.button=r};ba.prototype.compare=function(e,t,r){return this.time+400>e&&0==F(t,this.pos)&&r==this.button};var wa,xa,ka={toString:function(){return"CodeMirror.Init"}},Ca={},Sa={};Si.defaults=Ca,Si.optionHandlers=Sa;var Ta=[];Si.defineInitHook=function(e){return Ta.push(e)};var La=null,Ma=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new fo,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Ma.prototype.init=function(e){function t(e){if(!me(i,e)){if(i.somethingSelected())Li({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=Ni(i);Li({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,vo),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=La.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var a=Ei(),l=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),l.value=La.text.join("\n");var s=document.activeElement;uo(l),setTimeout(function(){i.display.lineSpace.removeChild(a),s.focus(),s==o&&n.showPrimarySelection()},50)}}var r=this,n=this,i=n.cm,o=n.div=e.lineDiv;_i(o,i.options.spellcheck),Ao(o,"paste",function(e){me(i,e)||Ai(e,i)||Ki<=11&&setTimeout(xr(i,function(){return r.updateFromDOM()}),20)}),Ao(o,"compositionstart",function(e){r.composing={data:e.data,done:!1}}),Ao(o,"compositionupdate",function(e){r.composing||(r.composing={data:e.data,done:!1})}),Ao(o,"compositionend",function(e){r.composing&&(e.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),Ao(o,"touchstart",function(){return n.forceCompositionEnd()}),Ao(o,"input",function(){r.composing||r.readFromDOMSoon()}),Ao(o,"copy",t),Ao(o,"cut",t)},Ma.prototype.prepareSelection=function(){var e=Vt(this.cm,!1);return e.focus=this.cm.state.focused,e},Ma.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Ma.prototype.showPrimarySelection=function(){var e=window.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=Pi(t,e.anchorNode,e.anchorOffset),a=Pi(t,e.focusNode,e.focusOffset);if(!o||o.bad||!a||a.bad||0!=F(H(o,a),n)||0!=F(P(o,a),i)){var l=t.display.view,s=n.line>=t.display.viewFrom&&Di(t,n)||{node:l[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&Di(t,i);if(!c){var u=l[l.length-1].measure,d=u.maps?u.maps[u.maps.length-1]:u.map;c={node:d[d.length-1],offset:d[d.length-2]-d[d.length-3]}}if(s&&c){var f,h=e.rangeCount&&e.getRangeAt(0);try{f=ao(s.node,s.offset,c.offset,c.node)}catch(e){}f&&(!ji&&t.state.focused?(e.collapse(s.node,s.offset),f.collapsed||(e.removeAllRanges(),e.addRange(f))):(e.removeAllRanges(),e.addRange(f)),h&&null==e.anchorNode?e.addRange(h):ji&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},Ma.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)},Ma.prototype.showMultipleSelections=function(e){r(this.cm.display.cursorDiv,e.cursors),r(this.cm.display.selectionDiv,e.selection)},Ma.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Ma.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},Ma.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Ma.prototype.blur=function(){this.div.blur()},Ma.prototype.getField=function(){return this.div},Ma.prototype.supportsTouch=function(){return!0},Ma.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():wr(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},Ma.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Ma.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(eo&&$i&&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=Pi(t,e.anchorNode,e.anchorOffset),n=Pi(t,e.focusNode,e.focusOffset);r&&n&&wr(t,function(){vn(t.doc,Br(r,n),vo),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},Ma.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,r=e.doc.sel.primary(),n=r.from(),i=r.to();if(0==n.ch&&n.line>e.firstLine()&&(n=W(n.line-1,T(e.doc,n.line-1).length)),i.ch==T(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=W(i.line+1,0)),n.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,a,l;n.line==t.viewFrom||0==(o=Ut(e,n.line))?(a=O(t.view[0].line),l=t.view[0].node):(a=O(t.view[o].line),l=t.view[o-1].node.nextSibling);var s,c,u=Ut(e,i.line);if(u==t.view.length-1?(s=t.viewTo-1,c=t.lineDiv.lastChild):(s=O(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!l)return!1;for(var d=e.doc.splitLines(function(e,t,r,n,i){function o(){c&&(s+=u,c=!1)}function a(e){e&&(o(),s+=e)}function l(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(null!=r)return void a(r||t.textContent.replace(/\u200b/g,""));var s,d=t.getAttribute("cm-marker");if(d){var f=e.findMarks(W(n,0),W(i+1,0),function(e){return function(t){return t.id==e}}(+d));return void(f.length&&(s=f[0].find(0))&&a(L(e.doc,s.from,s.to).join(u)))}if("false"==t.getAttribute("contenteditable"))return;var h=/^(pre|div|p)$/i.test(t.nodeName);h&&o();for(var p=0;p<t.childNodes.length;p++)l(t.childNodes[p]);h&&(c=!0)}else 3==t.nodeType&&a(t.nodeValue)}for(var s="",c=!1,u=e.doc.lineSeparator();l(t),t!=r;)t=t.nextSibling;return s}(e,l,c,a,s)),f=L(e.doc,W(a,0),W(s,T(e.doc,s).text.length));d.length>1&&f.length>1;)if(m(d)==m(f))d.pop(),f.pop(),s--;else{if(d[0]!=f[0])break;d.shift(),f.shift(),a++}for(var h=0,p=0,g=d[0],v=f[0],y=Math.min(g.length,v.length);h<y&&g.charCodeAt(h)==v.charCodeAt(h);)++h;for(var b=m(d),w=m(f),x=Math.min(b.length-(1==d.length?h:0),w.length-(1==f.length?h:0));p<x&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)++p;if(1==d.length&&1==f.length&&a==n.line)for(;h&&h>n.ch&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)h--,p++;d[d.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),d[0]=d[0].slice(h).replace(/\u200b+$/,"");var k=W(a,h),C=W(s,f.length?m(f).length-p:0);return d.length>1||d[0]||F(k,C)?(En(e.doc,d,k,C,"+input"),!0):void 0},Ma.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ma.prototype.reset=function(){this.forceCompositionEnd()},Ma.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Ma.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))},Ma.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||wr(this.cm,function(){return Sr(e.cm)})},Ma.prototype.setUneditable=function(e){e.contentEditable="false"},Ma.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||xr(this.cm,Mi)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Ma.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ma.prototype.onContextMenu=function(){},Ma.prototype.resetPosition=function(){},Ma.prototype.needsContentAttribute=!0;var Aa=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new fo,this.hasSelection=!1,this.composing=null};Aa.prototype.init=function(e){function t(e){if(!me(i,e)){if(i.somethingSelected())Li({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=Ni(i);Li({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,vo):(n.prevInput="",a.value=t.text.join("\n"),uo(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var r=this,n=this,i=this.cm,o=this.wrapper=Ei(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),Qi&&(a.style.width="0px"),Ao(a,"input",function(){Ui&&Ki>=9&&r.hasSelection&&(r.hasSelection=null),n.poll()}),Ao(a,"paste",function(e){me(i,e)||Ai(e,i)||(i.state.pasteIncoming=!0,n.fastPoll())}),Ao(a,"cut",t),Ao(a,"copy",t),Ao(e.scroller,"paste",function(t){lt(e,t)||me(i,t)||(i.state.pasteIncoming=!0,n.focus())}),Ao(e.lineSpace,"selectstart",function(t){lt(e,t)||be(t)}),Ao(a,"compositionstart",function(){var e=i.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),Ao(a,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},Aa.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=Vt(e);if(e.options.moveInputWithCursor){var i=Nt(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},Aa.prototype.showSelection=function(e){var t=this.cm.display;r(t.cursorDiv,e.cursors),r(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Aa.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&&uo(this.textarea),Ui&&Ki>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",Ui&&Ki>=9&&(this.hasSelection=null))}},Aa.prototype.getField=function(){return this.textarea},Aa.prototype.supportsTouch=function(){return!1},Aa.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!to||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},Aa.prototype.blur=function(){this.textarea.blur()},Aa.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Aa.prototype.receivedFocus=function(){this.slowPoll()},Aa.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Aa.prototype.fastPoll=function(){function e(){r.poll()||t?(r.pollingFast=!1,r.slowPoll()):(t=!0,r.polling.set(60,e))}var t=!1,r=this;r.pollingFast=!0,r.polling.set(20,e)},Aa.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||_o(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(Ui&&Ki>=9&&this.hasSelection===i||ro&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,l=Math.min(n.length,i.length);a<l&&n.charCodeAt(a)==i.charCodeAt(a);)++a;return wr(t,function(){Mi(t,i.slice(a),n.length-a,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Aa.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Aa.prototype.onKeyPress=function(){Ui&&Ki>=9&&(this.hasSelection=null),this.fastPoll()},Aa.prototype.onContextMenu=function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t="​"+(e?a.value:"");a.value="⇚",a.value=t,n.prevInput=e?"":"​",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function r(){if(n.contextMenuPending=!1,n.wrapper.style.cssText=u,a.style.cssText=c,Ui&&Ki<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=a.selectionStart){(!Ui||Ui&&Ki<9)&&t();var e=0,r=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==n.prevInput?xr(i,Tn)(i):e++<10?o.detectingSelectAll=setTimeout(r,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(r,200)}}var n=this,i=n.cm,o=i.display,a=n.textarea,l=qt(i,e),s=o.scroller.scrollTop;if(l&&!Yi){i.options.resetSelectionOnContextMenu&&-1==i.doc.sel.contains(l)&&xr(i,vn)(i.doc,Br(l),vo);var c=a.style.cssText,u=n.wrapper.style.cssText;n.wrapper.style.cssText="position: absolute";var d=n.wrapper.getBoundingClientRect();a.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-d.top-5)+"px; left: "+(e.clientX-d.left-5)+"px;\n z-index: 1000; background: "+(Ui?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var f;if(Vi&&(f=window.scrollY),o.input.focus(),Vi&&window.scrollTo(null,f),o.input.reset(),i.somethingSelected()||(a.value=n.prevInput=" "),n.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),Ui&&Ki>=9&&t(),so){ke(e);var h=function(){he(window,"mouseup",h),setTimeout(r,20)};Ao(window,"mouseup",h)}else setTimeout(r,50)}},Aa.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},Aa.prototype.setUneditable=function(){},Aa.prototype.needsContentAttribute=!1,function(e){function t(t,n,i,o){e.defaults[t]=n,i&&(r[t]=o?function(e,t,r){r!=ka&&i(e,t,r)}:i)}var r=e.optionHandlers;e.defineOption=t,e.Init=ka,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Gr(e)},!0),t("indentUnit",2,Gr,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){$r(e),Ct(e),Sr(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(W(n,o))}n++});for(var i=r.length-1;i>=0;i--)En(e.doc,t,r[i],W(r[i].line,r[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=ka&&e.refresh()}),t("specialCharPlaceholder",Ke,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",to?"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",!io),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){wi(e),xi(e)},!0),t("keyMap","default",function(e,t,r){var n=ei(t),i=r!=ka&&ei(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,Ci,!0),t("gutters",[],function(e){Pr(e.options),xi(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?jt(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return mr(e)},!0),t("scrollbarStyle","native",function(e){vr(e),mr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Pr(e.options),xi(e)},!0),t("firstLineNumber",1,xi,!0),t("lineNumberFormatter",function(e){return e},xi,!0),t("showCursorWhenSelecting",!1,Kt,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Qt(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,ki),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Kt,!0),t("singleCursorHeightPerLine",!0,Kt,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,$r,!0),t("addModeClass",!1,$r,!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,$r,!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)}(Si),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&xr(this,t[e])(this,r,i),pe(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"](ei(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:kr(function(t,r){var n=t.token?t:e.getMode(this.options,t);if(n.startState)throw new Error("Overlays may not be stateful.");!function(e,t,r){for(var n=0,i=r(t);n<e.length&&r(e[n])<=i;)n++;e.splice(n,0,t)}(this.state.overlays,{mode:n,modeSpec:t,opaque:r&&r.opaque,priority:r&&r.priority||0},function(e){return e.priority}),this.state.modeGen++,Sr(this)}),removeOverlay:kr(function(e){for(var t=this.state.overlays,r=0;r<t.length;++r){var n=t[r].modeSpec;if(n==e||"string"==typeof e&&n.name==e)return t.splice(r,1),this.state.modeGen++,void Sr(this)}}),indentLine:kr(function(e,t,r){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),_(this.doc,e)&&Ti(this,e,t,r)}),indentSelection:kr(function(e){for(var t=this.doc.sel.ranges,r=-1,n=0;n<t.length;n++){var i=t[n];if(i.empty())i.head.line>r&&(Ti(this,i.head.line,e,!0),r=i.head.line,n==this.doc.sel.primIndex&&lr(this));else{var o=i.from(),a=i.to(),l=Math.max(r,o.line);r=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var s=l;s<r;++s)Ti(this,s,e);var c=this.doc.sel.ranges;0==o.ch&&t.length==c.length&&c[n].from().ch>0&&pn(this.doc,n,new ra(o,c[n].to()),vo)}}}),getTokenAt:function(e,t){return Ie(this,e,t)},getLineTokens:function(e,t){return Ie(this,W(e),t,!0)},getTokenTypeAt:function(e){e=j(this.doc,e);var t,r=Fe(this,T(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var a=n+i>>1;if((a?r[2*a-1]:0)>=o)i=a;else{if(!(r[2*a+1]<o)){t=r[2*a+2];break}n=a+1}}var l=t?t.indexOf("overlay "):-1;return l<0?t:0==l?null:t.slice(0,l-1)},getModeAt:function(t){var r=this.doc.mode;return r.innerMode?e.innerMode(r,this.getTokenAt(t).state).mode:r},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=[];if(!r.hasOwnProperty(t))return n;var i=r[t],o=this.getModeAt(e);if("string"==typeof o[t])i[o[t]]&&n.push(i[o[t]]);else if(o[t])for(var a=0;a<o[t].length;a++){var l=i[o[t][a]];l&&n.push(l)}else o.helperType&&i[o.helperType]?n.push(i[o.helperType]):i[o.name]&&n.push(i[o.name]);for(var s=0;s<i._global.length;s++){var c=i._global[s];c.pred(o,this)&&-1==f(n,c.val)&&n.push(c.val)}return n},getStateAfter:function(e,t){var r=this.doc;return e=I(r,null==e?r.first+r.size-1:e),De(this,e+1,t).state},cursorCoords:function(e,t){var r,n=this.doc.sel.primary();return r=null==e?n.head:"object"==typeof e?j(this.doc,e):e?n.from():n.to(),Nt(this,r,t||"page")},charCoords:function(e,t){return Ot(this,j(this.doc,e),t||"page")},coordsChar:function(e,t){return e=At(this,e,t||"page"),Wt(this,e.left,e.top)},lineAtHeight:function(e,t){return e=At(this,{top:e,left:0},t||"page").top,N(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,r){var n,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),n=T(this.doc,e)}else n=e;return Mt(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-le(n):0)},defaultTextHeight:function(){return Pt(this.display)},defaultCharWidth:function(){return Ht(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o=this.display,a=(e=Nt(this,j(this.doc,e))).bottom,l=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==n)a=e.top;else if("above"==n||"near"==n){var s=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>s)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=s&&(a=e.bottom),l+t.offsetWidth>c&&(l=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(l=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?l=0:"middle"==i&&(l=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=l+"px"),r&&function(e,t){var r=or(e,t);null!=r.scrollTop&&dr(e,r.scrollTop),null!=r.scrollLeft&&hr(e,r.scrollLeft)}(this,{left:l,top:a,right:l+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:kr(fi),triggerOnKeyPress:kr(pi),triggerOnKeyUp:hi,triggerOnMouseDown:kr(mi),execCommand:function(e){if(ga.hasOwnProperty(e))return ga[e].call(null,this)},triggerElectric:kr(function(e){Oi(this,e)}),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=j(this.doc,e),a=0;a<t&&!(o=Wi(this.doc,o,i,r,n)).hitSide;++a);return o},moveH:kr(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?Wi(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},bo)}),deleteH:kr(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection("",null,"+delete"):ti(this,function(r){var i=Wi(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,r,n){var i=1,o=n;t<0&&(i=-1,t=-t);for(var a=j(this.doc,e),l=0;l<t;++l){var s=Nt(this,a,"div");if(null==o?o=s.left:s.left=o,(a=Fi(this,s,i,r)).hitSide)break}return a},moveV:kr(function(e,t){var r=this,n=this.doc,i=[],o=!this.display.shift&&!n.extend&&n.sel.somethingSelected();if(n.extendSelectionsBy(function(a){if(o)return e<0?a.from():a.to();var l=Nt(r,a.head,"div");null!=a.goalColumn&&(l.left=a.goalColumn),i.push(l.left);var s=Fi(r,l,e,t);return"page"==t&&a==n.sel.primary()&&ar(r,Ot(r,s,"div").top-l.top),s},bo),i.length)for(var a=0;a<n.sel.ranges.length;a++)n.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=T(this.doc,e.line).text,r=e.ch,n=e.ch;if(t){var i=this.getHelper(e,"wordChars");"before"!=e.sticky&&n!=t.length||!r?++n:--r;for(var o=t.charAt(r),a=w(o,i)?function(e){return w(e,i)}:/\s/.test(o)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!w(e)};r>0&&a(t.charAt(r-1));)--r;for(;n<t.length&&a(t.charAt(n));)++n}return new ra(W(e.line,r),W(e.line,n))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?l(this.display.cursorDiv,"CodeMirror-overwrite"):co(this.display.cursorDiv,"CodeMirror-overwrite"),pe(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:kr(function(e,t){sr(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-dt(this)-this.display.barHeight,width:e.scrollWidth-dt(this)-this.display.barWidth,clientHeight:ht(this),clientWidth:ft(this)}},scrollIntoView:kr(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:W(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?function(e,t){cr(e),e.curOp.scrollToPos=t}(this,e):ur(this,e.from,e.to,e.margin)}),setSize:kr(function(e,t){var r=this,n=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&kt(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){Tr(r,i,"widget");break}++i}),this.curOp.forceUpdate=!0,pe(this,"refresh",this)}),operation:function(e){return wr(this,e)},startOperation:function(){return yr(this)},endOperation:function(){return br(this)},refresh:kr(function(){var e=this.display.cachedTextHeight;Sr(this),this.curOp.forceUpdate=!0,Ct(this),sr(this,this.doc.scrollLeft,this.doc.scrollTop),Fr(this),(null==e||Math.abs(e-Pt(this.display))>.5)&&Bt(this),pe(this,"refresh",this)}),swapDoc:kr(function(e){var t=this.doc;return t.cm=null,Jr(this,e),Ct(this),this.display.input.reset(),sr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Xe(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}},ye(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Si);var Oa="iter insert remove copy getEditor constructor".split(" ");for(var Na in sa.prototype)sa.prototype.hasOwnProperty(Na)&&f(Oa,Na)<0&&(Si.prototype[Na]=function(e){return function(){return e.apply(this.doc,arguments)}}(sa.prototype[Na]));return ye(sa),Si.inputStyles={textarea:Aa,contenteditable:Ma},Si.defineMode=function(e){Si.defaults.mode||"null"==e||(Si.defaults.mode=e),function(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Fo[e]=t}.apply(this,arguments)},Si.defineMIME=function(e,t){Do[e]=t},Si.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Si.defineMIME("text/plain","null"),Si.defineExtension=function(e,t){Si.prototype[e]=t},Si.defineDocExtension=function(e,t){sa.prototype[e]=t},Si.fromTextArea=function(e,t){function r(){e.value=s.getValue()}if(t=t?u(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=a();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}var i;if(e.form&&(Ao(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(t){t.save=r,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,r(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(he(e.form,"submit",r),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var s=Si(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s},function(e){e.off=he,e.on=Ao,e.wheelEventPixels=Ir,e.Doc=sa,e.splitLines=No,e.countColumn=d,e.findColumn=h,e.isWordChar=b,e.Pass=go,e.signal=pe,e.Line=Ro,e.changeEnd=qr,e.scrollbarModel=Xo,e.Pos=W,e.cmpPos=F,e.modes=Fo,e.mimeModes=Do,e.resolveMode=Me,e.getMode=Ae,e.modeExtensions=zo,e.extendMode=Oe,e.copyState=Ne,e.startState=Ee,e.innerMode=_e,e.commands=ga,e.keyMap=ma,e.keyName=Qn,e.isModifierKey=Zn,e.lookupKey=Xn,e.normalizeKeyMap=Yn,e.StringStream=Po,e.SharedTextMarker=aa,e.TextMarker=oa,e.LineWidget=na,e.e_preventDefault=be,e.e_stopPropagation=we,e.e_stop=ke,e.addClass=l,e.contains=o,e.rmClass=co,e.keyNames=da}(Si),Si.version="5.32.0",Si})},{}],18:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;return t}function r(e,t){for(var r,n=!1;null!=(r=e.next());){if(n&&"/"==r){t.tokenize=null;break}n="*"==r}return["comment","comment"]}e.defineMode("css",function(t,r){function n(e,t){return h=t,e}function i(e){return function(t,r){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){")"==e&&t.backUp(1);break}o=!o&&"\\"==i}return(i==e||!o&&")"!=e)&&(r.tokenize=null),n("string","string")}}function o(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=i(")"),n(null,"(")}function a(e,t,r){this.type=e,this.indent=t,this.prev=r}function l(e,t,r,n){return e.context=new a(r,t.indentation()+(!1===n?0:m),e.context),r}function s(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function c(e,t,r){return N[r.context.type](e,t,r)}function u(e,t,r,n){for(var i=n||1;i>0;i--)r.context=r.context.prev;return c(e,t,r)}function d(e){var t=e.current().toLowerCase();p=L.hasOwnProperty(t)?"atom":T.hasOwnProperty(t)?"keyword":"variable"}var f=r.inline;r.propertyKeywords||(r=e.resolveMode("text/css"));var h,p,m=t.indentUnit,g=r.tokenHooks,v=r.documentTypes||{},y=r.mediaTypes||{},b=r.mediaFeatures||{},w=r.mediaValueKeywords||{},x=r.propertyKeywords||{},k=r.nonStandardPropertyKeywords||{},C=r.fontProperties||{},S=r.counterDescriptors||{},T=r.colorKeywords||{},L=r.valueKeywords||{},M=r.allowNested,A=r.lineComment,O=!0===r.supportsAtComponent,N={};return N.top=function(e,t,r){if("{"==e)return l(r,t,"block");if("}"==e&&r.context.prev)return s(r);if(O&&/@component/.test(e))return l(r,t,"atComponentBlock");if(/^@(-moz-)?document$/.test(e))return l(r,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(e))return l(r,t,"atBlock");if(/^@(font-face|counter-style)/.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return l(r,t,"at");if("hash"==e)p="builtin";else if("word"==e)p="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return l(r,t,"interpolation");if(":"==e)return"pseudo";if(M&&"("==e)return l(r,t,"parens")}return r.context.type},N.block=function(e,t,r){if("word"==e){var n=t.current().toLowerCase();return x.hasOwnProperty(n)?(p="property","maybeprop"):k.hasOwnProperty(n)?(p="string-2","maybeprop"):M?(p=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(p+=" error","maybeprop")}return"meta"==e?"block":M||"hash"!=e&&"qualifier"!=e?N.top(e,t,r):(p="error","block")},N.maybeprop=function(e,t,r){return":"==e?l(r,t,"prop"):c(e,t,r)},N.prop=function(e,t,r){if(";"==e)return s(r);if("{"==e&&M)return l(r,t,"propBlock");if("}"==e||"{"==e)return u(e,t,r);if("("==e)return l(r,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)d(t);else if("interpolation"==e)return l(r,t,"interpolation")}else p+=" error";return"prop"},N.propBlock=function(e,t,r){return"}"==e?s(r):"word"==e?(p="property","maybeprop"):r.context.type},N.parens=function(e,t,r){return"{"==e||"}"==e?u(e,t,r):")"==e?s(r):"("==e?l(r,t,"parens"):"interpolation"==e?l(r,t,"interpolation"):("word"==e&&d(t),"parens")},N.pseudo=function(e,t,r){return"meta"==e?"pseudo":"word"==e?(p="variable-3",r.context.type):c(e,t,r)},N.documentTypes=function(e,t,r){return"word"==e&&v.hasOwnProperty(t.current())?(p="tag",r.context.type):N.atBlock(e,t,r)},N.atBlock=function(e,t,r){if("("==e)return l(r,t,"atBlock_parens");if("}"==e||";"==e)return u(e,t,r);if("{"==e)return s(r)&&l(r,t,M?"block":"top");if("interpolation"==e)return l(r,t,"interpolation");if("word"==e){var n=t.current().toLowerCase();p="only"==n||"not"==n||"and"==n||"or"==n?"keyword":y.hasOwnProperty(n)?"attribute":b.hasOwnProperty(n)?"property":w.hasOwnProperty(n)?"keyword":x.hasOwnProperty(n)?"property":k.hasOwnProperty(n)?"string-2":L.hasOwnProperty(n)?"atom":T.hasOwnProperty(n)?"keyword":"error"}return r.context.type},N.atComponentBlock=function(e,t,r){return"}"==e?u(e,t,r):"{"==e?s(r)&&l(r,t,M?"block":"top",!1):("word"==e&&(p="error"),r.context.type)},N.atBlock_parens=function(e,t,r){return")"==e?s(r):"{"==e||"}"==e?u(e,t,r,2):N.atBlock(e,t,r)},N.restricted_atBlock_before=function(e,t,r){return"{"==e?l(r,t,"restricted_atBlock"):"word"==e&&"@counter-style"==r.stateArg?(p="variable","restricted_atBlock_before"):c(e,t,r)},N.restricted_atBlock=function(e,t,r){return"}"==e?(r.stateArg=null,s(r)):"word"==e?(p="@font-face"==r.stateArg&&!C.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==r.stateArg&&!S.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},N.keyframes=function(e,t,r){return"word"==e?(p="variable","keyframes"):"{"==e?l(r,t,"top"):c(e,t,r)},N.at=function(e,t,r){return";"==e?s(r):"{"==e||"}"==e?u(e,t,r):("word"==e?p="tag":"hash"==e&&(p="builtin"),"at")},N.interpolation=function(e,t,r){return"}"==e?s(r):"{"==e||";"==e?u(e,t,r):("word"==e?p="variable":"variable"!=e&&"("!=e&&")"!=e&&(p="error"),"interpolation")},{startState:function(e){return{tokenize:null,state:f?"block":"top",stateArg:null,context:new a(f?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||function(e,t){var r=e.next();if(g[r]){var a=g[r](e,t);if(!1!==a)return a}return"@"==r?(e.eatWhile(/[\w\\\-]/),n("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?n(null,"compare"):'"'==r||"'"==r?(t.tokenize=i(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),n("atom","hash")):"!"==r?(e.match(/^\s*\w*/),n("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),n("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?n(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?n("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?n(null,r):"u"==r&&e.match(/rl(-prefix)?\(/)||"d"==r&&e.match("omain(")||"r"==r&&e.match("egexp(")?(e.backUp(1),t.tokenize=o,n("property","word")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),n("property","word")):n(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),n("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?n("variable-2","variable-definition"):n("variable-2","variable")):e.match(/^\w+-/)?n("meta","meta"):void 0})(e,t);return r&&"object"==typeof r&&(h=r[1],r=r[0]),p=r,"comment"!=h&&(t.state=N[t.state](h,e,t)),p},indent:function(e,t){var r=e.context,n=t&&t.charAt(0),i=r.indent;return"prop"!=r.type||"}"!=n&&")"!=n||(r=r.prev),r.prev&&("}"!=n||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type?(")"!=n||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=n||"at"!=r.type&&"atBlock"!=r.type)||(i=Math.max(0,r.indent-m)):i=(r=r.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:A,fold:"brace"}});var n=["domain","regexp","url","url-prefix"],i=t(n),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=t(o),l=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],s=t(l),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=t(c),d=["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"],f=t(d),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=t(["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),g=t(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),v=["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"],y=t(v),b=["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"],w=t(b),x=n.concat(o).concat(l).concat(c).concat(d).concat(h).concat(v).concat(b);e.registerHelper("hintWords","css",x),e.defineMIME("text/css",{documentTypes:i,mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:g,colorKeywords:y,valueKeywords:w,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:y,valueKeywords:w,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/,!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:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:y,valueKeywords:w,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:i,mediaTypes:a,mediaFeatures:s,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:g,colorKeywords:y,valueKeywords:w,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css",helperType:"gss"})})},{"../../lib/codemirror":17}],19:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../xml/xml"),e("../javascript/javascript"),e("../css/css")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],i):i(CodeMirror)}(function(e){"use strict";function t(e,t){var r=e.match(function(e){var t=o[e];return t||(o[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}(t));return r?/^\s*(.*?)\s*$/.exec(r[2])[1]:""}function r(e,t){return new RegExp((t?"^":"")+"</s*"+e+"s*>","i")}function n(e,t){for(var r in e)for(var n=t[r]||(t[r]=[]),i=e[r],o=i.length-1;o>=0;o--)n.unshift(i[o])}var i={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"]]},o={};e.defineMode("htmlmixed",function(o,a){function l(n,i){var a,u=s.token(n,i.htmlState),d=/\btag\b/.test(u);if(d&&!/[<>\s\/]/.test(n.current())&&(a=i.htmlState.tagName&&i.htmlState.tagName.toLowerCase())&&c.hasOwnProperty(a))i.inTag=a+" ";else if(i.inTag&&d&&/>$/.test(n.current())){var f=/^([\S]+) (.*)/.exec(i.inTag);i.inTag=null;var h=">"==n.current()&&function(e,r){for(var n=0;n<e.length;n++){var i=e[n];if(!i[0]||i[1].test(t(r,i[0])))return i[2]}}(c[f[1]],f[2]),p=e.getMode(o,h),m=r(f[1],!0),g=r(f[1],!1);i.token=function(e,t){return e.match(m,!1)?(t.token=l,t.localState=t.localMode=null,null):function(e,t,r){var n=e.current(),i=n.search(t);return i>-1?e.backUp(n.length-i):n.match(/<\/?$/)&&(e.backUp(n.length),e.match(t,!1)||e.match(n)),r}(e,g,t.localMode.token(e,t.localState))},i.localMode=p,i.localState=e.startState(p,s.indent(i.htmlState,""))}else i.inTag&&(i.inTag+=n.current(),n.eol()&&(i.inTag+=" "));return u}var s=e.getMode(o,{name:"xml",htmlMode:!0,multilineTagIndentFactor:a.multilineTagIndentFactor,multilineTagIndentPastTag:a.multilineTagIndentPastTag}),c={},u=a&&a.tags,d=a&&a.scriptTypes;if(n(i,c),u&&n(u,c),d)for(var f=d.length-1;f>=0;f--)c.script.unshift(["type",d[f].matches,d[f].mode]);return{startState:function(){return{token:l,inTag:null,localMode:null,localState:null,htmlState:e.startState(s)}},copyState:function(t){var r;return t.localState&&(r=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:r,htmlState:e.copyState(s,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,r,n){return!t.localMode||/^\s*<\//.test(r)?s.indent(t.htmlState,r):t.localMode.indent?t.localMode.indent(t.localState,r,n):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||s}}}},"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")})},{"../../lib/codemirror":17,"../css/css":18,"../javascript/javascript":20,"../xml/xml":21}],20:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";e.defineMode("javascript",function(t,r){function n(e,t,r){return ke=e,Ce=r,t}function i(e,t){var r=e.next();if('"'==r||"'"==r)return t.tokenize=function(e){return function(t,r){var o,a=!1;if(Le&&"@"==t.peek()&&t.match(Ee))return r.tokenize=i,n("jsonld-keyword","meta");for(;null!=(o=t.next())&&(o!=e||a);)a=!a&&"\\"==o;return a||(r.tokenize=i),n("string","string")}}(r),t.tokenize(e,t);if("."==r&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return n("number","number");if("."==r&&e.match(".."))return n("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return n(r);if("="==r&&e.eat(">"))return n("=>","operator");if("0"==r&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),n("number","number");if("0"==r&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),n("number","number");if("0"==r&&e.eat(/b/i))return e.eatWhile(/[01]/i),n("number","number");if(/\d/.test(r))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),n("number","number");if("/"==r)return e.eat("*")?(t.tokenize=o,o(e,t)):e.eat("/")?(e.skipToEnd(),n("comment","comment")):xe(e,t,1)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),n("regexp","string-2")):(e.eat("="),n("operator","operator",e.current()));if("`"==r)return t.tokenize=a,a(e,t);if("#"==r)return e.skipToEnd(),n("error","error");if(_e.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),n("operator","operator",e.current());if(Oe.test(r)){e.eatWhile(Oe);var l=e.current();if("."!=t.lastType){if(Ne.propertyIsEnumerable(l)){var s=Ne[l];return n(s.type,s.style,l)}if("async"==l&&e.match(/^(\s|\/\*.*?\*\/)*[\(\w]/,!1))return n("async","keyword",l)}return n("variable","variable",l)}}function o(e,t){for(var r,o=!1;r=e.next();){if("/"==r&&o){t.tokenize=i;break}o="*"==r}return n("comment","comment")}function a(e,t){for(var r,o=!1;null!=(r=e.next());){if(!o&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=i;break}o=!o&&"\\"==r}return n("quasi","string-2",e.current())}function l(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){if(Ae){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var i=0,o=!1,a=r-1;a>=0;--a){var l=e.string.charAt(a),s=We.indexOf(l);if(s>=0&&s<3){if(!i){++a;break}if(0==--i){"("==l&&(o=!0);break}}else if(s>=3&&s<6)++i;else if(Oe.test(l))o=!0;else{if(/["'\/]/.test(l))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}function s(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=o,null!=n&&(this.align=n)}function c(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return!0}function u(){for(var e=arguments.length-1;e>=0;e--)De.cc.push(arguments[e])}function d(){return u.apply(null,arguments),!0}function f(e){function t(t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}var n=De.state;if(De.marked="def",n.context){if(t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;r.globalVars&&(n.globalVars={name:e,next:n.globalVars})}}function h(){De.state.context={prev:De.state.context,vars:De.state.localVars},De.state.localVars=ze}function p(){De.state.localVars=De.state.context.vars,De.state.context=De.state.context.prev}function m(e,t){var r=function(){var r=De.state,n=r.indented;if("stat"==r.lexical.type)n=r.lexical.indented;else for(var i=r.lexical;i&&")"==i.type&&i.align;i=i.prev)n=i.indented;r.lexical=new s(n,De.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function g(){var e=De.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function v(e){function t(r){return r==e?d():";"==e?u():d(t)}return t}function y(e,t){return"var"==e?d(m("vardef",t.length),Y,v(";"),g):"keyword a"==e?d(m("form"),x,y,g):"keyword b"==e?d(m("form"),y,g):"keyword d"==e?De.stream.match(/^\s*$/,!1)?d():d(m("stat"),C,v(";"),g):"debugger"==e?d(v(";")):"{"==e?d(m("}"),P,g):";"==e?d():"if"==e?("else"==De.state.lexical.info&&De.state.cc[De.state.cc.length-1]==g&&De.state.cc.pop()(),d(m("form"),x,y,g,ee)):"function"==e?d(ae):"for"==e?d(m("form"),te,y,g):"variable"==e?Ae&&"type"==t?(De.marked="keyword",d(R,v("operator"),R,v(";"))):Ae&&"declare"==t?(De.marked="keyword",d(y)):Ae&&("module"==t||"enum"==t)&&De.stream.match(/^\s*\w/,!1)?(De.marked="keyword",d(m("form"),X,v("{"),m("}"),P,g,g)):d(m("stat"),N):"switch"==e?d(m("form"),x,v("{"),m("}","switch"),P,g,g):"case"==e?d(b,v(":")):"default"==e?d(v(":")):"catch"==e?d(m("form"),h,v("("),le,v(")"),y,g,p):"class"==e?d(m("form"),ce,g):"export"==e?d(m("stat"),he,g):"import"==e?d(m("stat"),me,g):"async"==e?d(y):"@"==t?d(b,y):u(m("stat"),b,v(";"),g)}function b(e){return k(e,!1)}function w(e){return k(e,!0)}function x(e){return"("!=e?u():d(m(")"),b,v(")"),g)}function k(e,t){if(De.state.fatArrowAt==De.stream.start){var r=t?O:A;if("("==e)return d(h,m(")"),D(le,")"),g,v("=>"),r,p);if("variable"==e)return u(h,X,v("=>"),r,p)}var n=t?T:S;return Fe.hasOwnProperty(e)?d(n):"function"==e?d(ae,n):"class"==e?d(m("form"),se,g):"keyword c"==e||"async"==e?d(t?w:b):"("==e?d(m(")"),C,v(")"),g,n):"operator"==e||"spread"==e?d(t?w:b):"["==e?d(m("]"),we,g,n):"{"==e?z(E,"}",null,n):"quasi"==e?u(L,n):"new"==e?d(function(e){return function(t){return"."==t?d(e?function(e,t){if("target"==t)return De.marked="keyword",d(T)}:function(e,t){if("target"==t)return De.marked="keyword",d(S)}):"variable"==t&&Ae?d(V,e?T:S):u(e?w:b)}}(t)):d()}function C(e){return e.match(/[;\}\)\],]/)?u():u(b)}function S(e,t){return","==e?d(b):T(e,t,!1)}function T(e,t,r){var n=0==r?S:T,i=0==r?b:w;return"=>"==e?d(h,r?O:A,p):"operator"==e?/\+\+|--/.test(t)||Ae&&"!"==t?d(n):Ae&&"<"==t&&De.stream.match(/^([^>]|<.*?>)*>\s*\(/,!1)?d(m(">"),D(R,">"),g,n):"?"==t?d(b,v(":"),i):d(i):"quasi"==e?u(L,n):";"!=e?"("==e?z(w,")","call",n):"."==e?d(_,n):"["==e?d(m("]"),C,v("]"),g,n):Ae&&"as"==t?(De.marked="keyword",d(R,n)):"regexp"==e?(De.state.lastType=De.marked="operator",De.stream.backUp(De.stream.pos-De.stream.start-1),d(i)):void 0:void 0}function L(e,t){return"quasi"!=e?u():"${"!=t.slice(t.length-2)?d(L):d(b,M)}function M(e){if("}"==e)return De.marked="string-2",De.state.tokenize=a,d(L)}function A(e){return l(De.stream,De.state),u("{"==e?y:b)}function O(e){return l(De.stream,De.state),u("{"==e?y:w)}function N(e){return":"==e?d(g,y):u(S,v(";"),g)}function _(e){if("variable"==e)return De.marked="property",d()}function E(e,t){if("async"==e)return De.marked="property",d(E);if("variable"==e||"keyword"==De.style){if(De.marked="property","get"==t||"set"==t)return d(W);var r;return Ae&&De.state.fatArrowAt==De.stream.start&&(r=De.stream.match(/^\s*:\s*/,!1))&&(De.state.fatArrowAt=De.stream.pos+r[0].length),d(F)}return"number"==e||"string"==e?(De.marked=Le?"property":De.style+" property",d(F)):"jsonld-keyword"==e?d(F):"modifier"==e?d(E):"["==e?d(b,v("]"),F):"spread"==e?d(w,F):"*"==t?(De.marked="keyword",d(E)):":"==e?u(F):void 0}function W(e){return"variable"!=e?u(F):(De.marked="property",d(ae))}function F(e){return":"==e?d(w):"("==e?u(ae):void 0}function D(e,t,r){function n(i,o){if(r?r.indexOf(i)>-1:","==i){var a=De.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),d(function(r,n){return r==t||n==t?u():u(e)},n)}return i==t||o==t?d():d(v(t))}return function(r,i){return r==t||i==t?d():u(e,n)}}function z(e,t,r){for(var n=3;n<arguments.length;n++)De.cc.push(arguments[n]);return d(m(t,r),D(e,t),g)}function P(e){return"}"==e?d():u(y,P)}function H(e,t){if(Ae){if(":"==e)return d(R);if("?"==t)return d(H)}}function I(e){if(Ae&&":"==e)return De.stream.match(/^\s*\w+\s+is\b/,!1)?d(b,j,R):d(R)}function j(e,t){if("is"==t)return De.marked="keyword",d()}function R(e,t){return"variable"==e||"void"==t?"keyof"==t?(De.marked="keyword",d(R)):(De.marked="type",d(K)):"string"==e||"number"==e||"atom"==e?d(K):"["==e?d(m("]"),D(R,"]",","),g,K):"{"==e?d(m("}"),D(q,"}",",;"),g,K):"("==e?d(D(U,")"),B):void 0}function B(e){if("=>"==e)return d(R)}function q(e,t){return"variable"==e||"keyword"==De.style?(De.marked="property",d(q)):"?"==t?d(q):":"==e?d(R):"["==e?d(b,H,v("]"),q):void 0}function U(e){return"variable"==e?d(U):":"==e?d(R):void 0}function K(e,t){return"<"==t?d(m(">"),D(R,">"),g,K):"|"==t||"."==e?d(R):"["==e?d(v("]"),K):"extends"==t?d(R):void 0}function V(e,t){if("<"==t)return d(m(">"),D(R,">"),g,K)}function G(){return u(R,$)}function $(e,t){if("="==t)return d(R)}function Y(){return u(X,H,J,Q)}function X(e,t){return"modifier"==e?d(X):"variable"==e?(f(t),d()):"spread"==e?d(X):"["==e?z(X,"]"):"{"==e?z(Z,"}"):void 0}function Z(e,t){return"variable"!=e||De.stream.match(/^\s*:/,!1)?("variable"==e&&(De.marked="property"),"spread"==e?d(X):"}"==e?u():d(v(":"),X,J)):(f(t),d(J))}function J(e,t){if("="==t)return d(w)}function Q(e){if(","==e)return d(Y)}function ee(e,t){if("keyword b"==e&&"else"==t)return d(m("form","else"),y,g)}function te(e){if("("==e)return d(m(")"),re,v(")"),g)}function re(e){return"var"==e?d(Y,v(";"),ie):";"==e?d(ie):"variable"==e?d(ne):u(b,v(";"),ie)}function ne(e,t){return"in"==t||"of"==t?(De.marked="keyword",d(b)):d(S,ie)}function ie(e,t){return";"==e?d(oe):"in"==t||"of"==t?(De.marked="keyword",d(b)):u(b,v(";"),oe)}function oe(e){")"!=e&&d(b)}function ae(e,t){return"*"==t?(De.marked="keyword",d(ae)):"variable"==e?(f(t),d(ae)):"("==e?d(h,m(")"),D(le,")"),g,I,y,p):Ae&&"<"==t?d(m(">"),D(G,">"),g,ae):void 0}function le(e,t){return"@"==t&&d(b,le),"spread"==e||"modifier"==e?d(le):u(X,H,J)}function se(e,t){return"variable"==e?ce(e,t):ue(e,t)}function ce(e,t){if("variable"==e)return f(t),d(ue)}function ue(e,t){return"<"==t?d(m(">"),D(G,">"),g,ue):"extends"==t||"implements"==t||Ae&&","==e?d(Ae?R:b,ue):"{"==e?d(m("}"),de,g):void 0}function de(e,t){return"modifier"==e||"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t)&&De.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(De.marked="keyword",d(de)):"variable"==e||"keyword"==De.style?(De.marked="property",d(Ae?fe:ae,de)):"["==e?d(b,v("]"),Ae?fe:ae,de):"*"==t?(De.marked="keyword",d(de)):";"==e?d(de):"}"==e?d():"@"==t?d(b,de):void 0}function fe(e,t){return"?"==t?d(fe):":"==e?d(R,J):"="==t?d(w):u(ae)}function he(e,t){return"*"==t?(De.marked="keyword",d(be,v(";"))):"default"==t?(De.marked="keyword",d(b,v(";"))):"{"==e?d(D(pe,"}"),be,v(";")):u(y)}function pe(e,t){return"as"==t?(De.marked="keyword",d(v("variable"))):"variable"==e?u(w,pe):void 0}function me(e){return"string"==e?d():u(ge,ve,be)}function ge(e,t){return"{"==e?z(ge,"}"):("variable"==e&&f(t),"*"==t&&(De.marked="keyword"),d(ye))}function ve(e){if(","==e)return d(ge,ve)}function ye(e,t){if("as"==t)return De.marked="keyword",d(ge)}function be(e,t){if("from"==t)return De.marked="keyword",d(b)}function we(e){return"]"==e?d():u(D(w,"]"))}function xe(e,t,r){return t.tokenize==i&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}var ke,Ce,Se=t.indentUnit,Te=r.statementIndent,Le=r.jsonld,Me=r.json||Le,Ae=r.typescript,Oe=r.wordCharacters||/[\w$\xa1-\uffff]/,Ne=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"},l={if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:i,break:i,continue:i,new:e("new"),delete:n,void:n,throw:n,debugger:e("debugger"),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:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n};if(Ae){var s={type:"variable",style:"type"},c={interface:e("class"),implements:n,namespace:n,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 u in c)l[u]=c[u]}return l}(),_e=/[+\-*&%=<>!?|~^@]/,Ee=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,We="([{}])",Fe={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},De={state:null,column:null,marked:null,cc:null},ze={name:"this",next:{name:"arguments"}};return g.lex=!0,{startState:function(e){var t={tokenize:i,lastType:"sof",cc:[],lexical:new s((e||0)-Se,0,"block",!1),localVars:r.localVars,context:r.localVars&&{vars:r.localVars},indented:e||0};return r.globalVars&&"object"==typeof r.globalVars&&(t.globalVars=r.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),l(e,t)),t.tokenize!=o&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==ke?r:(t.lastType="operator"!=ke||"++"!=Ce&&"--"!=Ce?ke:"incdec",function(e,t,r,n,i){var o=e.cc;for(De.state=e,De.stream=i,De.marked=null,De.cc=o,De.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():Me?b:y)(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return De.marked?De.marked:"variable"==r&&c(e,n)?"variable-2":t}}(t,r,ke,Ce,e))},indent:function(t,n){if(t.tokenize==o)return e.Pass;if(t.tokenize!=i)return 0;var a,l=n&&n.charAt(0),s=t.lexical;if(!/^\s*else\b/.test(n))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==g)s=s.prev;else if(u!=ee)break}for(;("stat"==s.type||"form"==s.type)&&("}"==l||(a=t.cc[t.cc.length-1])&&(a==S||a==T)&&!/^[,\.=+\-*:?[\(]/.test(n));)s=s.prev;Te&&")"==s.type&&"stat"==s.prev.type&&(s=s.prev);var d=s.type,f=l==d;return"vardef"==d?s.indented+("operator"==t.lastType||","==t.lastType?s.info+1:0):"form"==d&&"{"==l?s.indented:"form"==d?s.indented+Se:"stat"==d?s.indented+(function(e,t){return"operator"==e.lastType||","==e.lastType||_e.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,n)?Te||Se:0):"switch"!=s.info||f||0==r.doubleIndentSwitch?s.align?s.column+(f?0:1):s.indented+(f?0:Se):s.indented+(/^(?:case|default)\b/.test(n)?Se:2*Se)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Me?null:"/*",blockCommentEnd:Me?null:"*/",blockCommentContinue:Me?null:" * ",lineComment:Me?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Me?"json":"javascript",jsonldMode:Le,jsonMode:Me,expressionAllowed:xe,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=b&&t!=w||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})})},{"../../lib/codemirror":17}],21:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},r={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(n,i){function o(e,t){function r(r){return t.tokenize=r,r(e,t)}var n=e.next();if("<"==n)return e.eat("!")?e.eat("[")?e.match("CDATA[")?r(l("atom","]]>")):null:e.match("--")?r(l("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),r(s(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=l("meta","?>"),"meta"):(S=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==n){return(e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"))?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var r=e.next();if(">"==r||"/"==r&&e.eat(">"))return t.tokenize=o,S=">"==r?"endTag":"selfcloseTag","tag bracket";if("="==r)return S="equals",null;if("<"==r){t.tokenize=o,t.state=d,t.tagName=t.tagStart=null;var n=t.tokenize(e,t);return n?n+" tag error":"tag error"}return/[\'\"]/.test(r)?(t.tokenize=function(e){var t=function(t,r){for(;!t.eol();)if(t.next()==e){r.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}(r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function l(e,t){return function(r,n){for(;!r.eol();){if(r.match(t)){n.tokenize=o;break}r.next()}return e}}function s(e){return function(t,r){for(var n;null!=(n=t.next());){if("<"==n)return r.tokenize=s(e+1),r.tokenize(t,r);if(">"==n){if(1==e){r.tokenize=o;break}return r.tokenize=s(e-1),r.tokenize(t,r)}}return"meta"}}function c(e){e.context&&(e.context=e.context.prev)}function u(e,t){for(var r;;){if(!e.context)return;if(r=e.context.tagName,!x.contextGrabbers.hasOwnProperty(r)||!x.contextGrabbers[r].hasOwnProperty(t))return;c(e)}}function d(e,t,r){return"openTag"==e?(r.tagStart=t.column(),f):"closeTag"==e?h:d}function f(e,t,r){return"word"==e?(r.tagName=t.current(),T="tag",g):(T="error",f)}function h(e,t,r){if("word"==e){var n=t.current();return r.context&&r.context.tagName!=n&&x.implicitlyClosed.hasOwnProperty(r.context.tagName)&&c(r),r.context&&r.context.tagName==n||!1===x.matchClosing?(T="tag",p):(T="tag error",m)}return T="error",m}function p(e,t,r){return"endTag"!=e?(T="error",p):(c(r),d)}function m(e,t,r){return T="error",p(e,0,r)}function g(e,t,r){if("word"==e)return T="attribute",v;if("endTag"==e||"selfcloseTag"==e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,"selfcloseTag"==e||x.autoSelfClosers.hasOwnProperty(n)?u(r,n):(u(r,n),r.context=new function(e,t,r){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r,(x.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}(r,n,i==r.indented)),d}return T="error",g}function v(e,t,r){return"equals"==e?y:(x.allowMissing||(T="error"),g(e,0,r))}function y(e,t,r){return"string"==e?b:"word"==e&&x.allowUnquoted?(T="string",g):(T="error",g(e,0,r))}function b(e,t,r){return"string"==e?b:g(e,0,r)}var w=n.indentUnit,x={},k=i.htmlMode?t:r;for(var C in k)x[C]=k[C];for(var C in i)x[C]=i[C];var S,T;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:d,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;S=null;var r=t.tokenize(e,t);return(r||S)&&"comment"!=r&&(T=null,t.state=t.state(S||r,e,t),T&&(r="error"==T?r+" error":T)),r},indent:function(t,r,n){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+w;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return n?n.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==x.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+w*(x.multilineTagIndentFactor||1);if(x.alignCDATA&&/<!\[CDATA\[/.test(r))return 0;var l=r&&/^<(\/)?([\w_:\.-]*)/.exec(r);if(l&&l[1])for(;i;){if(i.tagName==l[2]){i=i.prev;break}if(!x.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(l)for(;i;){var s=x.contextGrabbers[i.tagName];if(!s||!s.hasOwnProperty(l[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+w:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:x.htmlMode?"html":"xml",helperType:x.htmlMode?"html":"xml",skipAttribute:function(e){e.state==y&&(e.state=g)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})},{"../../lib/codemirror":17}],22:[function(e,t,r){t.exports={prettyPrint:function(e,t){var r,n,i,o,a,l;for(n=(t=t||{}).indent_size||4,i=t.indent_char||" ",a=t.brace_style||"collapse",o=0==t.max_char?1/0:t.max_char||70,l=t.unformatted||["a","span","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"],(r=new function(){return this.pos=0,this.token="",this.current_mode="CONTENT",this.tags={parent:"parent1",parentcount:1,parent1:""},this.tag_type="",this.token_text=this.last_token=this.last_text=this.token_type="",this.Utils={whitespace:"\n\r\t ".split(""),single_token:"br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?=".split(","),extra_liners:"head,body,/html".split(","),in_array:function(e,t){for(var r=0;r<t.length;r++)if(e===t[r])return!0;return!1}},this.get_content=function(){for(var e="",t=[],r=!1;"<"!==this.input.charAt(this.pos);){if(this.pos>=this.input.length)return t.length?t.join(""):["","TK_EOF"];if(e=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(e,this.Utils.whitespace))t.length&&(r=!0),this.line_char_count--;else{if(r){if(this.line_char_count>=this.max_char){t.push("\n");for(var n=0;n<this.indent_level;n++)t.push(this.indent_string);this.line_char_count=0}else t.push(" "),this.line_char_count++;r=!1}t.push(e)}}return t.length?t.join(""):""},this.get_contents_to=function(e){if(this.pos==this.input.length)return["","TK_EOF"];var t="",r=new RegExp("</"+e+"\\s*>","igm");r.lastIndex=this.pos;var n=r.exec(this.input),i=n?n.index:this.input.length;return this.pos<i&&(t=this.input.substring(this.pos,i),this.pos=i),t},this.record_tag=function(e){this.tags[e+"count"]?(this.tags[e+"count"]++,this.tags[e+this.tags[e+"count"]]=this.indent_level):(this.tags[e+"count"]=1,this.tags[e+this.tags[e+"count"]]=this.indent_level),this.tags[e+this.tags[e+"count"]+"parent"]=this.tags.parent,this.tags.parent=e+this.tags[e+"count"]},this.retrieve_tag=function(e){if(this.tags[e+"count"]){for(var t=this.tags.parent;t&&e+this.tags[e+"count"]!==t;)t=this.tags[t+"parent"];t&&(this.indent_level=this.tags[e+this.tags[e+"count"]],this.tags.parent=this.tags[t+"parent"]),delete this.tags[e+this.tags[e+"count"]+"parent"],delete this.tags[e+this.tags[e+"count"]],1==this.tags[e+"count"]?delete this.tags[e+"count"]:this.tags[e+"count"]--}},this.get_tag=function(){var e,t,r="",n=[],i=!1;do{if(this.pos>=this.input.length)return n.length?n.join(""):["","TK_EOF"];r=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(r,this.Utils.whitespace)?(i=!0,this.line_char_count--):("'"!==r&&'"'!==r||n[1]&&"!"===n[1]||(r+=this.get_unformatted(r),i=!0),"="===r&&(i=!1),n.length&&"="!==n[n.length-1]&&">"!==r&&i&&(this.line_char_count>=this.max_char?(this.print_newline(!1,n),this.line_char_count=0):(n.push(" "),this.line_char_count++),i=!1),"<"===r&&(e=this.pos-1),n.push(r))}while(">"!==r);var o,a=n.join("");o=-1!=a.indexOf(" ")?a.indexOf(" "):a.indexOf(">");var s=a.substring(1,o).toLowerCase();if("/"===a.charAt(a.length-2)||this.Utils.in_array(s,this.Utils.single_token))this.tag_type="SINGLE";else if("script"===s)this.record_tag(s),this.tag_type="SCRIPT";else if("style"===s)this.record_tag(s),this.tag_type="STYLE";else if(this.Utils.in_array(s,l)){var c=this.get_unformatted("</"+s+">",a);n.push(c),e>0&&this.Utils.in_array(this.input.charAt(e-1),this.Utils.whitespace)&&n.splice(0,0,this.input.charAt(e-1)),t=this.pos-1,this.Utils.in_array(this.input.charAt(t+1),this.Utils.whitespace)&&n.push(this.input.charAt(t+1)),this.tag_type="SINGLE"}else"!"===s.charAt(0)?-1!=s.indexOf("[if")?(-1!=a.indexOf("!IE")&&(c=this.get_unformatted("--\x3e",a),n.push(c)),this.tag_type="START"):-1!=s.indexOf("[endif")?(this.tag_type="END",this.unindent()):-1!=s.indexOf("[cdata[")?(c=this.get_unformatted("]]>",a),n.push(c),this.tag_type="SINGLE"):(c=this.get_unformatted("--\x3e",a),n.push(c),this.tag_type="SINGLE"):("/"===s.charAt(0)?(this.retrieve_tag(s.substring(1)),this.tag_type="END"):(this.record_tag(s),this.tag_type="START"),this.Utils.in_array(s,this.Utils.extra_liners)&&this.print_newline(!0,this.output));return n.join("")},this.get_unformatted=function(e,t){if(t&&-1!=t.toLowerCase().indexOf(e))return"";var r="",n="",i=!0;do{if(this.pos>=this.input.length)return n;if(r=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(r,this.Utils.whitespace)){if(!i){this.line_char_count--;continue}if("\n"===r||"\r"===r){n+="\n",this.line_char_count=0;continue}}n+=r,this.line_char_count++,i=!0}while(-1==n.toLowerCase().indexOf(e));return n},this.get_token=function(){var e;if("TK_TAG_SCRIPT"===this.last_token||"TK_TAG_STYLE"===this.last_token){var t=this.last_token.substr(7);return"string"!=typeof(e=this.get_contents_to(t))?e:[e,"TK_"+t]}return"CONTENT"===this.current_mode?"string"!=typeof(e=this.get_content())?e:[e,"TK_CONTENT"]:"TAG"===this.current_mode?"string"!=typeof(e=this.get_tag())?e:[e,"TK_TAG_"+this.tag_type]:void 0},this.get_full_indent=function(e){return(e=this.indent_level+e||0)<1?"":Array(e+1).join(this.indent_string)},this.printer=function(e,t,r,n,i){this.input=e||"",this.output=[],this.indent_character=t,this.indent_string="",this.indent_size=r,this.brace_style=i,this.indent_level=0,this.max_char=n,this.line_char_count=0;for(var o=0;o<this.indent_size;o++)this.indent_string+=this.indent_character;this.print_newline=function(e,t){if(this.line_char_count=0,t&&t.length){if(!e)for(;this.Utils.in_array(t[t.length-1],this.Utils.whitespace);)t.pop();t.push("\n");for(var r=0;r<this.indent_level;r++)t.push(this.indent_string)}},this.print_token=function(e){this.output.push(e)},this.indent=function(){this.indent_level++},this.unindent=function(){this.indent_level>0&&this.indent_level--}},this}).printer(e,i,n,o,a);;){var s=r.get_token();if(r.token_text=s[0],r.token_type=s[1],"TK_EOF"===r.token_type)break;switch(r.token_type){case"TK_TAG_START":r.print_newline(!1,r.output),r.print_token(r.token_text),r.indent(),r.current_mode="CONTENT";break;case"TK_TAG_STYLE":case"TK_TAG_SCRIPT":r.print_newline(!1,r.output),r.print_token(r.token_text),r.current_mode="CONTENT";break;case"TK_TAG_END":if("TK_CONTENT"===r.last_token&&""===r.last_text){var c=r.token_text.match(/\w+/)[0],u=r.output[r.output.length-1].match(/<\s*(\w+)/);null!==u&&u[1]===c||r.print_newline(!0,r.output)}r.print_token(r.token_text),r.current_mode="CONTENT";break;case"TK_TAG_SINGLE":var d=r.token_text.match(/^\s*<([a-z]+)/i);d&&r.Utils.in_array(d[1],l)||r.print_newline(!1,r.output),r.print_token(r.token_text),r.current_mode="CONTENT";break;case"TK_CONTENT":""!==r.token_text&&r.print_token(r.token_text),r.current_mode="TAG";break;case"TK_STYLE":case"TK_SCRIPT":if(""!==r.token_text){r.output.push("\n");var f=r.token_text;if("TK_SCRIPT"==r.token_type)var h="function"==typeof js_beautify&&js_beautify;else"TK_STYLE"==r.token_type&&(h="function"==typeof css_beautify&&css_beautify);if("keep"==t.indent_scripts)var p=0;else p="separate"==t.indent_scripts?-r.indent_level:1;var m=r.get_full_indent(p);if(h)f=h(f.replace(/^\s*/,m),t);else{var g=f.match(/^\s*/)[0].match(/[^\n\r]*$/)[0].split(r.indent_string).length-1,v=r.get_full_indent(p-g);f=f.replace(/^\s*/,m).replace(/\r\n|\r|\n/g,"\n"+v).replace(/\s*$/,"")}f&&(r.print_token(f),r.print_newline(!0,r.output))}r.current_mode="TAG"}r.last_token=r.token_type,r.last_text=r.token_text}return r.output.join("")}}},{}],23:[function(e,t,r){"use strict";t.exports=e("./stream/stream")},{"./stream/stream":24}],24:[function(e,t,r){!function(){"use strict";function e(){function t(){return arguments.length>0&&arguments[0]!==v&&r(t,arguments[0]),t._state.value}return function(t){t.constructor=e,t._state={id:g++,value:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],endStream:void 0,unregister:void 0},t.map=t["fantasy-land/map"]=s,t["fantasy-land/ap"]=c,t["fantasy-land/of"]=e,t.valueOf=u,t.toJSON=d,t.toString=u,Object.defineProperties(t,{end:{get:function(){if(!t._state.endStream){var r=e();r.map(function(e){return!0===e&&(l(t),r._state.unregister=function(){l(r)}),e}),t._state.endStream=r}return t._state.endStream}}})}(t),arguments.length>0&&arguments[0]!==v&&r(t,arguments[0]),t}function r(e,t){n(e,t);for(var r in e._state.deps)i(e._state.deps[r],!1);null!=e._state.unregister&&e._state.unregister(),function(e){e._state.changed=!1;for(var t in e._state.deps)e._state.deps[t]._state.changed=!1}(e)}function n(e,t){e._state.value=t,e._state.changed=!0,2!==e._state.state&&(e._state.state=1)}function i(e,t){var r=e._state.parents;if(r.length>0&&r.every(h)&&(t||r.some(p))){var i=e._state.derive();if(i===v)return!1;n(e,i)}}function o(t,r){if(!r.every(f))throw new Error("Ensure that each item passed to stream.combine/stream.merge is a stream");return function(e,t,r){var n=e._state;return n.derive=r,n.parents=t.filter(m),a(e,n.parents),i(e,!0),e}(e(),r,function(){return t.apply(this,r.concat([r.filter(p)]))})}function a(e,t){for(var r=0;r<t.length;r++)t[r]._state.deps[e._state.id]=e,a(e,t[r]._state.parents)}function l(e){for(var t=0;t<e._state.parents.length;t++){delete e._state.parents[t]._state.deps[e._state.id]}for(var r in e._state.deps){var n=e._state.deps[r],i=n._state.parents.indexOf(e);i>-1&&n._state.parents.splice(i,1)}e._state.state=2,e._state.deps={}}function s(e){return o(function(t){return e(t())},[this])}function c(e){return o(function(e,t){return e()(t())},[e,this])}function u(){return this._state.value}function d(){return null!=this._state.value&&"function"==typeof this._state.value.toJSON?this._state.value.toJSON():this._state.value}function f(e){return e._state}function h(e){return 1===e._state.state}function p(e){return e._state.changed}function m(e){return 2!==e._state.state}var g=0,v={};e["fantasy-land/of"]=e,e.merge=function(e){return o(function(){return e.map(function(e){return e()})},e)},e.combine=o,e.scan=function(e,t,r){var n=o(function(r){return t=e(t,r._state.value)},[r]);return 0===n._state.state&&n(t),n},e.scanMerge=function(e,t){var r=e.map(function(e){var t=e[0];return 0===t._state.state&&t(void 0),t});return o(function(){var n=arguments[arguments.length-1];return r.forEach(function(r,i){n.indexOf(r)>-1&&(t=e[i][1](t,r._state.value))}),t},r)},e.HALT=v,void 0!==t?t.exports=e:"function"!=typeof window.m||"stream"in window.m?window.m={stream:e}:window.m.stream=e}()},{}]},{},[11])}();
2
  //# sourceMappingURL=forms-admin.min.js.map
assets/js/forms-admin.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["forms-admin.js"],"names":["require","undefined","define","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","m","i18n","showType","config","fieldType","type","charAt","toUpperCase","slice","label","fieldLabel","value","onchange","withAttr","placeholder","title","isHidden","initialValue","style","optional","valueHelp","numberMinMax","min","max","isRequired","inputAtts","checked","required","desc","forceRequired","disabled","isFieldRequired","placeholderHelp","useParagraphs","wrap","wrapInParagraphTags","choiceType","options","selected","dropdown","radioButtons","acceptsMultipleValues","push","checkboxes","choices","html","map","choice","index","data-id","name","selectChoice","bind","preselect","remove","class","onclick","key","this","splice","2","forms","rows","render","text","visibleRows","hidden","submit","number","./field-forms-rows.js","3","htmlutil","setAttributes","vnode","dom","setAttribute","generators","select","attributes","hasSelection","oncreate","unshift","checkbox","radio","field","htmlTemplate","vdom","document","createElement","prettyPrint","innerHTML","4","tabs","editor","fields","events","setActiveField","fieldConfig","get","c","join","redraw","createFieldHTMLAndAddToForm","generate","insert","overlay","on","view","fieldCategories","getCategories","availableFields","getAll","fieldsChoice","chooseField","category","categoryFields","filter","className","inForm","inFormContent","form","help","trust","onkeydown","window","event","keyCode","addToForm","controller","./field-forms.js","./field-generator.js","./overlay.js","5","register","data","sticky","registeredFields","getFieldType","phone","birthday","registerMergeField","mergeField","listFields","field_type","tag","mailchimpType","streetAddress","city","state","zip","country","mc4wp_vars","countries","registerInterestCategory","interestCategory","interestCategories","id","interests","registerListFields","list","merge_fields","sort","b","public","forEach","interest_categories","registerCustomFields","lists","formFields","subscribe","submitButton","listChoice","listChoiceDescription","unsubscribe","formAction","formActionDescription","registerListsFields","deregister","6","prop","getAllWhere","searchKey","searchValue","timeout","categories","Field","FieldChoice","indexOf","existingField","shift","choiceLabel","Object","keys","createChoices","clearTimeout","setTimeout","trigger","mithril/stream","7","CodeMirror","element","domDirty","_dom","getValue","toLowerCase","fromTextArea","selectionPointer","matchTags","bothTags","mode","htmlMode","autoCloseTags","autoRefresh","dispatchEvent","Event","bubbles","addEventListener","signal","query","querySelectorAll","containsField","fieldName","elements","namedItem","replaceSelection","focus","callback","refresh","codemirror","codemirror/addon/edit/closetag.js","codemirror/addon/edit/matchtags","codemirror/addon/fold/xml-fold","codemirror/mode/css/css","codemirror/mode/htmlmixed/htmlmixed","codemirror/mode/javascript/javascript","codemirror/mode/xml/xml","8","settings","helpers","updateFields","originalRequiredValue","nameGroup","replace","requiredFields","requiredFieldElements","Array","prototype","el","pos","substr","requiredFieldsInput","findRequiredFields","getElementById","debounce","9","show","notices","hide","container","querySelector","heading","parentNode","insertBefore","nextSibling","init","groupingsNotice","requiredFieldsNotice","missingFields","10","close","removeEventListener","onKeyDown","position","_onCloseCallback","preventDefault","_element","windowWidth","innerWidth","documentElement","clientWidth","body","windowHeight","innerHeight","clientHeight","marginLeft","marginTop","left","top","storeElementReference","content","onCloseCallback","11","mc4wp_forms_i18n","mc4wp","deps","mithril","FormWatcher","FormEditor","FieldHelper","FieldsFactory","textareaElement","formEditor","fieldHelper","mount","fieldsFactory","getSelectedLists","mailchimp","./admin/field-helper.js","./admin/fields-factory.js","./admin/fields.js","./admin/form-editor.js","./admin/form-watcher.js","./admin/notices","12","mod","amd","autoCloseCurrent","cm","typingSlash","ranges","listSelections","replacements","head","empty","Pass","tok","getTokenAt","inner","innerMode","getMode","string","start","ch","replacement","context","tagName","closingTagExists","getLine","line","end","replaceSelections","indentLine","collection","elt","newTag","scanForClosingTag","Math","lastLine","nextClose","cx","onCx","prev","to","next","defineOption","val","old","Init","removeKeyMap","whenClosing","getOption","autoCloseSlash","whenOpening","opt","configuration","dontCloseTags","htmlDontClose","indentTags","htmlIndent","lowerTagName","test","indent","newPos","Pos","info","replaceRange","anchor","sel","setSelections","autoCloseGT","addKeyMap","commands","closeTag","../../lib/codemirror","../fold/xml-fold","13","clear","tagHit","tagOther","doMatchTags","failedTagMatch","operation","somethingSelected","cur","getCursor","range","getViewport","from","match","findMatchingTag","matchBothTags","hit","at","open","markText","other","maybeUpdateMatch","off","toMatchingTag","found","extendSelection","14","Iter","firstLine","tagAt","iter","getTokenTypeAt","nextLine","prevLine","toTagEnd","gt","lastSlash","lastIndexOf","selfClose","toTagStart","lt","xmlTagStart","lastIndex","exec","toNextTag","toPrevTag","findMatchingClose","stack","startLine","startCh","findMatchingOpen","endLine","endCh","nameStartChar","RegExp","registerHelper","openTag","startPos","endPos","cmp","here","findEnclosingTag","15","global","factory","classTest","cls","removeChildren","count","childNodes","removeChild","firstChild","removeChildrenAndAdd","parent","appendChild","cssText","createTextNode","eltP","contains","child","nodeType","host","activeElt","activeElement","shadowRoot","addClass","node","current","joinClasses","as","split","args","arguments","apply","copyObj","obj","target","overwrite","hasOwnProperty","countColumn","tabSize","startIndex","startValue","search","nextTab","array","findColumn","goal","col","skipped","spaceStr","spaceStrs","lst","arr","out","nothing","createObj","base","props","inst","create","isWordCharBasic","nonASCIISingleCaseWordChar","isWordChar","helper","source","isEmpty","isExtendingChar","charCodeAt","extendingChars","skipExtendingChars","str","dir","findFirst","pred","midF","mid","ceil","floor","doc","first","size","chunk","lines","children","sz","chunkSize","getBetween","getLines","updateLineHeight","height","diff","lineNo","no","lineAtHeight","h","outer","i$1","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","clipPos","last","linelen","clipToLen","clipPosArray","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","stretchSpansOverChange","change","full","oldFirst","markedSpans","oldLast","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansBefore","startsBefore","markedSpansAfter","sameLine","offset","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","i$2","i$3","clearWhenEmpty","detachMarkedSpans","detachLine","attachMarkedSpans","attachLine","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","find","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sawCollapsedSpans","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","conflictingCollapsedRange","lineNo$$1","visualLine","merged","visualLineNo","lineN","vis","visualLineEndNo","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","p","lineLength","len","found$1","findMaxLine","d","display","maxLine","maxLineLength","maxLineChanged","getBidiPartAt","order","bidiOther","getOrder","direction","bidiOrdering","getHandlers","emitter","_handlers","noHandlers","detachEvent","map$$1","concat","handlers","signalDOMEvent","override","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","set","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","which","button","mac","ctrlKey","zeroWidthElement","measure","zwspSupported","offsetHeight","offsetWidth","ie","ie_version","hasBadBidiRects","badBidiRects","txt","r0","getBoundingClientRect","r1","right","resolveMode","spec","mimeModes","mfactory","modes","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","extendMode","properties","copyState","nstate","startState","a1","a2","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","loop","baseTokens","overlays","i_end","opaque","baseTokenPos","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","result","stateAfter","save","styleClasses","highlightFrontier","modeFrontier","precise","Context","minindent","minline","lim","after","SavedContext","lookAhead","indented","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","startAt","stream","StringStream","callBlankLine","eol","readToken","blankLine","token","takeToken","asArray","tokens","Token","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","cleanUpLine","interpretTokenStyle","cache","styleToClassCacheWithMode","styleToClassCache","buildLineContent","lineView","webkit","builder","pre","trailingSpace","splitSpaces","rest","addToken","buildToken","startStyle","endStyle","css","part","buildTokenBadBidi","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","Infinity","foundBookmarks","endStyles","j","j$1","j$2","buildCollapsedSpan","upto","tokenText","insertLineContent","externalMeasured","maps","caches","lastChild","defaultSpecialCharPlaceholder","toString","displayText","trailingBefore","spaceBefore","special","specialChars","mustWrap","createDocumentFragment","txt$1","tabWidth","specialCharPlaceholder","fullStyle","ignoreWidget","widget","input","needsContentAttribute","setUneditable","LineView","visualLineContinued","buildViewArray","nextPos","signalLater","operationGroup","delayedCallbacks","orphanDelayedCallbacks","fireOrphanDelayed","delayed","updateLineForChanges","dims","changes","built","getLineContent","replaceChild","updateLineClasses","updateLineText","updateLineGutter","alignable","insertLineWidgets","updateLineWidgets","ensureLineWrapped","zIndex","ext","background","updateLineBackground","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","markers","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutters","gutterWidth","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","noHScroll","width","wrapperWidth","coverGutter","paddingLeft","positionLineWidget","above","widgetHeight","parentStyle","wrapper","eventInWidget","getAttribute","sizer","mover","paddingTop","lineSpace","offsetTop","paddingVert","paddingH","cachedPaddingH","getComputedStyle","currentStyle","parseInt","paddingRight","isNaN","scrollGap","scrollerGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","barHeight","mapFromLineView","before","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","lineMeasure","updateExternalMeasurement","rect","hasHeights","prepared","varHeight","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","abs","bottom","ensureLineHeights","place","nodeAndOffsetInLineMap","collapse","coverStart","coverEnd","getUsefulRect","screen","logicalXDPI","deviceXDPI","badZoomedRects","normal","fromRange","hasBadZoomedRects","scaleX","scaleY","logicalYDPI","deviceYDPI","maybeUpdateRectForZooming","rSpan","charWidth","nullRect","rtop","rbot","bot","bogus","singleCursorHeightPerLine","rbottom","measureCharInner","mStart","mEnd","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","chrome","android","pageXOffset","scrollLeft","pageScrollY","pageYOffset","scrollTop","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","invert","level","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","widgetHeight$$1","begin","ltr","_lineNo","ref","wrappedLineExtent","closestDist","endX","dist","boxIsAfter","baseX","chAround","boxAround","box","atLeft","atStart","coordsCharInner","mergedPos","wrappedLineExtentChar","textHeight","measureText","clientLeft","offsetLeft","compensateForHScroll","estimateHeight","th","perLine","widgetsHeight","estimateLineHeights","est","estHeight","posFromMouse","liberal","forRect","space","clientX","clientY","colDiff","round","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","selection","primIndex","range$$1","showCursorWhenSelecting","drawSelectionCursor","add","fragment","rightSide","drawForLine","fromArg","toArg","wrapX","side","extent","lineLen","iterateBidiSections","fromPos","toPos","openStart","openEnd","openLeft","docLTR","openRight","leftSide","topLeft","topRight","botLeft","botRight","cmpCoords","padding","sizerWidth","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","drawSelectionRange","cursor","cursorHeight","otherCursor","restartBlink","focused","clearInterval","blinker","cursorDiv","visibility","cursorBlinkRate","setInterval","ensureFocus","onFocus","delayBlurEvent","delayingBlurEvent","onBlur","readOnly","selForContextMenu","reset","receivedFocus","rmClass","updateHeightsInViewport","prevBottom","lineDiv","updateWidgetHeight","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","alignHorizontally","alignWidgets","comp","gutterW","align","maybeUpdateLineNumberWidth","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","updateGutterSpace","calculateScrollPos","snapMargin","screentop","docBottom","atTop","atBottom","newTop","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","margin","cursorScrollMargin","scrollToCoords","scrollToCoordsRange","sPos","updateScrollTop","gecko","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","setScrollLeft","isScroller","scrollWidth","measureForScrollbars","docH","viewHeight","viewWidth","barLeft","docHeight","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","update","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","initScrollbars","scrollbarModel","scrollbarStyle","axis","startOperation","viewChanged","updateInput","typing","changeObjs","cursorActivityCalled","selectionChanged","updateMaxLine","nextOpId","op","ops","ownsGroup","pushOperation","endOperation","endCb","group","callbacks","fireCallbacksForOps","finishOperation","scrollbarsClipped","marginBottom","borderRightWidth","maybeClipScrollbars","mustUpdate","DisplayUpdate","endOperation_R1","updatedDisplay","updateDisplayIfNeeded","endOperation_W1","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","endOperation_R2","minWidth","takeFocus","setDocumentHeight","endOperation_W2","i$4","postUpdateDisplay","wheelStartX","wheelStartY","limit","changed","endCoords","scrollPos","startTop","startLeft","scrollPosIntoView","doScroll","phantom","scrollNode","scrollIntoView","maybeScrollWindow","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","endOperation_finish","endOperations","runInOp","methodOp","docMethodOp","regChange","lendiff","updateLineNumbers","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","countDirtyView","dirty","time","highlight","highlightWorker","Date","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","editorIsHidden","force","visible","renderedView","viewportMargin","different","lastWrapHeight","wrapperHeight","lastWrapWidth","adjustView","toUpdate","selSnapshot","hasFocus","active","getSelection","anchorNode","extend","anchorOffset","focusNode","focusOffset","selectionSnapshot","updateNumbersFrom","rm","currentWheelTarget","updateNumber","patchDisplay","snapshot","createRange","setEnd","removeAllRanges","addRange","restoreSelection","selectionDiv","minHeight","oldDisplayWidth","reportedViewFrom","reportedViewTo","updateGutters","specs","gElt","setGuttersForLineNumbers","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","wheelPixelsPerUnit","onScrollWheel","scroll","canScrollX","canScrollY","presto","pixels","wheelSamples","wheelDX","wheelDY","movedX","movedY","sample","normalizeSelection","prim","inv","Range","Selection","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","estimateHeight$$1","spansFor","updateLine","linesFor","Line","lastText","lastSpans","nlines","added","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","History","startGen","done","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","pop","addChangeToHistory","selAfter","opId","hist","history","origin","historyEventDelay","lastChangeEvent","pushSelectionToHistory","addSelectionToHistory","selectionEventCanBeMerged","clearRedo","dest","equals","existing","removeClearedSpans","explicitlyCleared","mergeOldSpans","getOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","copy","deepCopy","newChanges","Number","extendRange","posBefore","setSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","setSelectionReplaceHistory","setSelectionNoUndo","NaN","filterSelectionChange","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","atomic","near","movePos","far","cantEdit","selectAll","sel_dontScroll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","sawReadOnlySpans","mark","parts","mk","newParts","dfrom","dto","removeReadOnlyRanges","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","antiChanges","returned","v","shiftDoc","distance","removed","recomputeMaxLength","checkWidthStart","retreatFrontier","changesHandler","changeHandler","makeChangeSingleDocInEditor","assign","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","adjustScrollWhenAboveVisible","cloneNode","isParent","SharedTextMarker","markTextShared","TextMarker","replacedWith","addToHistory","curLine","addMarkedSpan","clearOnEnter","clearHistory","nextMarkerId","findSharedMarkers","findMarks","detachSharedMarkers","subMarker","onDrop","clearDragCursor","lastDrop","files","dataTransfer","isReadOnly","FileReader","File","read","loadFile","file","allowDropFileTypes","reader","onload","lineSeparator","readAsText","draggingText","text$1","getData","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","ensureGlobalHandlers","globalsRegistered","resizeTimer","onResize","registerGlobalHandlers","setSize","normalizeKeyName","alt","ctrl","cmd","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","keyNames","addModifierNames","noShift","altKey","flipCtrlCmd","metaKey","shiftKey","keyName","altGraphKey","keyMap","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","lineStart","visual","lineEnd","visualLineEnd","lineStartSmart","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","dispatchKey","seq","keySeq","stopSeq","dispatchKeyInner","keyMaps","extraKeys","lookupKeyForEditor","handleKeyBinding","motion","handled","lastStoppedKey","hasCopyEvent","up","showCrossHair","onKeyUp","onKeyPress","charCode","fromCharCode","handleCharBinding","onMouseDown","activeTouch","supportsTouch","draggable","clickInGutter","repeat","now","lastDoubleClick","compare","lastClick","PastClick","clickRepeat","selectingText","handleMappedButton","contained","behavior","option","unit","chromeOS","addNew","moveOnDrag","configureMouse","dragDrop","dragAndDrop","moved","dragEnd","mouseMove","dragStart","e2","leftButtonStartDrag","extendTo","lastPos","startCol","posCol","leftPos","startSel","ourIndex","oldRange","ourRange","rangeForUnit","ranges$1","anchorLine","boundary","headIndex","usePart","bidiSimplify","sel_mouse","curCount","counter","editorSize","move","leftButtonSelect","leftButtonDown","captureRightClick","onContextMenu","findWordAt","gutterEvent","prevent","mX","mY","touches","lineBox","g","contextMenuInGutter","themeChanged","theme","guttersChanged","dragDropChanged","funcs","dragFunctions","toggle","enter","over","leave","drop","wrappingChanged","CodeMirror$1","this$1","defaults","Doc","inputStyles","inputStyle","mobile","pasteIncoming","cutIncoming","Delayed","autofocus","finishTouch","touchFinished","prevTouch","farAway","touch","word","radiusX","radiusY","isMouseLikeTouchEvent","pageX","pageY","frag","onDragOver","setData","effectAllowed","setDragImage","safari","img","src","_top","onDragStart","inp","getField","registerEventHandlers","optionHandlers","finishInit","initHooks","textRendering","how","aggressive","curSpace","indentation","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","setLastCopied","newLastCopied","lastCopied","applyTextInput","inserted","deleted","paste","textLines","splitLinesAuto","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","getRange","disableBrowserMagic","spellcheck","hiddenTextarea","te","div","ios","border","findPosH","moveOnce","boundToLine","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","res","nextCh","moveVisually","findNextLine","origDir","sawType","getHelper","hitSide","findPosV","pageSize","moveAmount","posToDOM","badPos","bad","domToPos","lineNode","textNode","topNode","curNode","nodeValue","textContent","previousSibling","dist$1","locateNodeInLineView","userAgent","navigator","platform","ie_upto10","ie_11up","edge","documentMode","qtwebkit","vendor","mac_geMountainLion","windows","presto_version","endNode","setStart","createTextRange","moveToElementText","moveEnd","moveStart","selectInput","selectionStart","selectionEnd","_e","ms","sel_move","charType","lowTypes","arabicTypes","BidiSpan","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","outerType","types","type$1","prev$1","type$2","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","i$7","nstart","reverse","attachEvent","nl","rt","ownerDocument","parentElement","compareEndPoints","oncopy","lineOracle","lastColumnPos","lastColumnValue","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","pattern","consume","caseInsensitive","cased","hideFirstChars","oracle","baseToken","maxLookAhead","NativeScrollbars","vert","horiz","checkedZeroWidth","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","pointerEvents","bar","delay","maybeDisable","elementFromPoint","NullScrollbars","native","null","there","removeInner","insertInner","iterN","oldHeight","remaining","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","oldH","withOp","dHeight","nextDocId","lineSep","cleanGeneration","constructor","setValue","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","setCursor","extendSelectionsBy","addSelection","getSelections","dup","newSel","hint","oldPrev","newPrev","computeReplacedSel","undo","redo","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","where","removeLineClass","addLineWidget","insertAt","aboveVisible","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","mFrom","mTo","subMark","copySharedMarkers","unlinkDoc","splitIds","iterLinkedDocs","getEditor","setDirection","directionChanged","eachLine","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","44","45","46","59","61","91","92","93","106","107","109","110","111","127","173","186","187","188","189","190","191","192","219","220","221","222","63232","63233","63234","63235","63272","63273","63275","63276","63277","63302","basic","Left","Right","Up","Down","End","Home","PageUp","PageDown","Delete","Backspace","Shift-Backspace","Tab","Shift-Tab","Enter","Insert","Esc","pcDefault","Ctrl-A","Ctrl-D","Ctrl-Z","Shift-Ctrl-Z","Ctrl-Y","Ctrl-Home","Ctrl-End","Ctrl-Up","Ctrl-Down","Ctrl-Left","Ctrl-Right","Alt-Left","Alt-Right","Ctrl-Backspace","Ctrl-Delete","Ctrl-S","Ctrl-F","Ctrl-G","Shift-Ctrl-G","Shift-Ctrl-F","Shift-Ctrl-R","Ctrl-[","Ctrl-]","Ctrl-U","Shift-Ctrl-U","Alt-U","emacsy","Ctrl-B","Ctrl-P","Ctrl-N","Alt-F","Alt-B","Ctrl-E","Ctrl-V","Shift-Ctrl-V","Ctrl-H","Alt-D","Alt-Backspace","Ctrl-K","Ctrl-T","Ctrl-O","macDefault","Cmd-A","Cmd-D","Cmd-Z","Shift-Cmd-Z","Cmd-Y","Cmd-Home","Cmd-Up","Cmd-End","Cmd-Down","Cmd-Left","Cmd-Right","Ctrl-Alt-Backspace","Alt-Delete","Cmd-S","Cmd-F","Cmd-G","Shift-Cmd-G","Cmd-Alt-F","Shift-Cmd-Alt-F","Cmd-[","Cmd-]","Cmd-Backspace","Cmd-Delete","Cmd-U","Shift-Cmd-U","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","goLineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","openLine","toggleOverwrite","defineInitHook","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","blur","poll","pollSelection","pollInterval","scan","isInGutter","triggerOnKeyDown","pollContent","fromIndex","fromNode","toNode","toIndex","newText","closing","addText","walk","cmText","markerID","recognizeMarker","isBlock","nodeName","domTextBetween","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","contentEditable","readOnlyChanged","resetPosition","TextareaInput","prevInput","pollingFast","prepareCopyCut","textarea","fastPoll","moveInputWithCursor","headPos","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","prepareSelectAllHack","extval","rehide","oldWrapperCSS","oldCSS","detectingSelectAll","resetSelectionOnContextMenu","wrapperBox","oldScrollY","scrollY","scrollTo","mouseup","deflt","notOnInit","newBreaks","getInputField","detach","attach","integer","tabIndex","defineOptions","setOption","getDoc","addOverlay","score","priority","insertSorted","modeSpec","removeOverlay","newRanges","getLineTokens","getHelpers","_global","getStateAfter","defaultTextHeight","defaultCharWidth","addWidget","vspace","hspace","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","amount","rtlMoveVisually","goalColumn","goals","startChar","check","getScrollInfo","scrollToRange","interpret","swapDoc","getWrapperElement","getScrollerElement","getGutterElement","registerGlobalHelper","predicate","addEditorMethods","dontDelegate","method","contenteditable","defineMode","dependencies","defineMIME","mime","defineExtension","func","defineDocExtension","tabindex","realSubmit","leaveSubmitMethodAlone","wrappedSubmit","getTextArea","toTextArea","cmpPos","addLegacyProps","version","keySet","tokenCComment","maybeEnd","tokenize","parserConfig","ret","tp","tokenString","quote","escaped","tokenParenthesized","pushContext","popContext","pass","states","popAndPass","wordAsValue","valueKeywords","colorKeywords","inline","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","allowNested","lineComment","supportsAtComponent","stateArg","block","maybeprop","propBlock","_stream","parens","pseudo","atBlock","atComponentBlock","atBlock_parens","restricted_atBlock_before","restricted_atBlock","keyframes","interpolation","textAfter","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","/",":","$","#","@","&","getAttrValue","attr","regexp","attrRegexpCache","getAttrRegexp","getTagRegexp","anchored","addTags","defaultTags","script","htmlState","tags","inTag","tagInfo","tagText","findMatchingMode","endTagA","endTag","localState","localMode","pat","maybeBackup","multilineTagIndentFactor","multilineTagIndentPastTag","configTags","configScript","scriptTypes","matches","local","../css/css","../javascript/javascript","../xml/xml","cont","tokenBase","jsonldMode","isJsonldKeyword","tokenComment","expressionAllowed","inSet","readRegexp","tokenQuasi","isOperatorChar","lexical","wordRE","lastType","keywords","propertyIsEnumerable","kw","findFatArrow","fatArrowAt","arrow","isTS","depth","sawSomething","bracket","brackets","JSLexical","inScope","varname","localVars","vars","cc","inList","marked","globalVars","pushcontext","defaultVars","popcontext","pushlex","lex","poplex","expect","wanted","exp","statement","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","typeexpr","maybelabel","expression","funarg","afterExport","afterImport","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","atomicTypes","classExpression","arrayLiteral","contCommasep","objprop","quasi","_","maybeTypeArgs","maybeTarget","expr","property","continueQuasi","getterSetter","afterprop","what","sep","proceed","maybetype","mayberettype","isKW","afterType","typeprop","typearg","maybeReturnType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","proppattern","_type","forspec1","forspec2","formaybeinof","forspec3","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","statementIndent","jsonld","jsonMode","json","typescript","wordCharacters","A","B","C","D","operator","atom","jsKeywords","if","while","with","else","do","try","finally","return","break","continue","new","delete","void","throw","debugger","var","const","let","function","catch","for","switch","case","default","in","typeof","instanceof","true","false","super","yield","export","import","extends","await","tsKeywords","interface","implements","namespace","private","protected","abstract","readonly","boolean","any","variable","jsonld-keyword","basecolumn","parseJS","firstChar","isContinuedStatement","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","area","br","command","embed","frame","hr","keygen","link","meta","param","track","wbr","menuitem","implicitlyClosed","dd","li","optgroup","rp","tbody","td","tfoot","tr","contextGrabbers","dt","address","article","aside","blockquote","dl","fieldset","footer","h1","h2","h3","h4","h5","h6","header","hgroup","menu","nav","ol","section","table","ul","thead","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","inText","chain","parser","inBlock","doctype","baseState","tagStart","closure","isInAttribute","inAttribute","stringStartCol","terminator","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","setStyle","attrState","matchClosing","closeState","closeStateErr","attrEqState","startOfLine","noIndent","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","html_source","multi_parser","indent_size","indent_character","max_char","brace_style","unformatted","indent_char","current_mode","parentcount","parent1","tag_type","token_text","last_token","last_text","token_type","Utils","whitespace","single_token","extra_liners","in_array","get_content","input_char","line_char_count","indent_level","indent_string","get_contents_to","reg_match","reg_array","end_script","substring","record_tag","retrieve_tag","temp_parent","get_tag","tag_start","tag_end","get_unformatted","print_newline","tag_index","tag_complete","tag_check","comment","unindent","delimiter","orig_tag","get_token","get_full_indent","printer","js_source","ignore","print_token","tag_name","tag_extracted_from_last_output","_beautifier","js_beautify","css_beautify","indent_scripts","script_indent_level","_level","reindent","21","./stream/stream","22","createStream","HALT","updateStream","_state","guid","derive","recover","parents","endStream","unregister","ap","valueOf","toJSON","defineProperties","unregisterStream","initStream","updateState","updateDependency","finalize","mustSync","every","some","combine","fn","streams","valid","dep","notEnded","registerDependency","initDependency","dependent","s1","s2","merge","reducer","seed","newStream","scanMerge","tuples","tuple","idx"],"mappings":"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