git ssb

0+

dinoworm ๐Ÿ› / campjs-viii-ludditejs



Tree: 16d5679a3ddf97e78275474c2bb64e886698438b

Files: 16d5679a3ddf97e78275474c2bb64e886698438b / index.html

894488 bytesRaw
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8" />
5 <title>Luddite.js</title>
6 <style>
7 body {
8 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
9}
10h1, h2, h3 {
11 font-weight: 400;
12 margin-bottom: 0;
13 margin-top: 0.15em;
14}
15.remark-slide-content {
16 font-size: 2.0em;
17 line-height: 1.2;
18}
19.remark-slide-content h1 {
20 font-size: 3.5em;
21}
22.remark-slide-content h2 {
23 font-size: 3em;
24}
25.remark-slide-content h3 {
26 font-size: 2.2em;
27}
28.footnote {
29 position: absolute;
30 bottom: 3em;
31}
32li p { line-height: 1.25em; }
33.red { color: #fa0000; }
34.large { font-size: 2em; }
35a, a > code {
36 color: rgb(249, 38, 114);
37 text-decoration: none;
38}
39code {
40 background: none repeat scroll 0 0 #F8F8FF;
41 border: 1px solid #DEDEDE;
42 border-radius: 3px ;
43 padding: 0 0.2em;
44}
45.remark-code, .remark-inline-code { font-family: "Bitstream Vera Sans Mono", "Courier", monospace; }
46.remark-code-line-highlighted { background-color: #373832; }
47.pull-left {
48 float: left;
49 width: 47%;
50}
51.pull-right {
52 float: right;
53 width: 47%;
54}
55.pull-right ~ p {
56 clear: both;
57}
58#slideshow .slide .content code {
59 font-size: 0.8em;
60}
61#slideshow .slide .content pre code {
62 font-size: 0.9em;
63 padding: 15px;
64}
65.main-title, .title {
66 background: #272822;
67 color: #777872;
68 text-shadow: 0 0 20px #333;
69}
70.title h1, .title h2, .main-title h1, .main-title h2 {
71 color: #f3f3f3;
72 line-height: 1.2em;
73}
74.remark-code {
75 display: block;
76 padding: 0.5em;
77}
78
79.row {
80 display: flex;
81 justify-content: space-around;
82}
83
84.center {
85 margin: 0 auto;
86}
87
88 </style>
89 </head>
90 <body>
91 <textarea id="source">
92# luddite.js
93
94---
95
96## hey [CampJS](http://campjs.com)
97
98i'm [Mikey (@ahdinosaur)](http://dinosaur.is) from [Enspiral](http://enspiral.com)
99
100<div class="row">
101 <a href="http://dinosaur.is.com">
102 <img alt="Mikey's avatar" src="./avatar.png" width="200" />
103 </a>
104 <a href="http://enspiral.com">
105 <img alt="Enspiral logo" src="./enspiral.png" width="200" />
106 </a>
107</div>
108
109slides are available at <http://dinosaur.is/campjs-viii-ludditejs>.
110
111???
112
113- second time presenting at a conference.
114- i might say negative things about some JavaScript patterns, but i use those patterns too
115 - yes i'm bitter about some things, i'll try to be honest
116- everyone in the JavaScript community is doing a wonderful job
117- apologies in advance if i disguise any opinions as facts
118
119---
120
121## what?
122
123luddite.js
124
125???
126
127so...
128
129---
130
131## Luddite?
132
133the [Luddites](https://en.wikipedia.org/wiki/Luddite) was a political movement against _automated centralized technology_.
134
135<div style='display: flex; justify-content: center'>
136 <img src="./luddite.jpg" height='400' />
137</div>
138
139???
140
141- many Luddites were skilled machine operators in the textile industry
142- they wanted machines to make high-quality goods, run by workers who had gone through an apprenticeship and got paid decent wages
143- they attacked centralized factories who used automated machines operated by unskilled labor
144- they used fictious characters to make their story ring
145 - see Ned Ludd, the made-up leader
146
147---
148
149## luddite.js?
150
151**luddite.js** is a (made-up) meme for _simple decentralized JavaScript_.
152
153- decentralized userland ecosystems
154 - not centralized core committees
155- simple patterns based on function signatures
156 - not trendy libraries that lock you in
157
158???
159
160- gonna lead you on a journey through the luddite way to do things
161- a study of functional JavaScript patterns that have evolved in userland
162
163---
164
165## decent userland
166
167what if i told you...
168
169that anyone can create a _standard_?
170
171<img src="./morpheus-cat.png" height="500" class="center" />
172
173???
174
175- no corporate sponsorship necessary
176
177---
178
179## what is a standard?
180
181anything that enough people use is a "standard"
182
183example: ["standard style"](https://github.com/feross/standard)
184
185```
186npm install --global standard
187```
188
189???
190
191- tc39 is a great team advancing the state of the art in JavaScript,
192 - but the standards produced by tc39 are only one of _many_ possible JavaScript standards.
193- what other standards can you think of?
194 - JS syntax: babel plugins
195 - front-end: react
196 - back-end: express
197 - anything "best practice"
198
199---
200
201## what is a _luddite.js_ standard?
202
203a standard based on a function signature
204
205example: [Redux](https://redux.js.org) reducers
206
207```js
208const reducer = (state, action) => nextState
209```
210
211???
212
213- standard function signature
214- what other standards based on function signatures can you think of?
215 - express / connect: (req, res, next)
216
217---
218
219## why is this important?
220
221- easy to use and test
222- accessible for anyone to participate
223- no module lock-in
224
225???
226
227- you can test the functions directly without using the module
228- you don't need anyone's approval to write a "function specification"
229- you can swap libraries that are compatible with the "function specification"
230
231---
232
233## simple functional
234
235what if i told you...
236
237that you only needed _plain functions and objects_?
238
239???
240
241- no fancy syntax necessary
242 - less language clutter
243- how can we apply this pattern to the full stack?
244
245---
246
247## just a function
248
249```js
250function fn (options) { return value }
251```
252
253```js
254const fn = (...args) => ({ [key]: value })
255```
256
257---
258
259## sync function signals
260
261with a sync function, there are two possible signals:
262
2631. value: `return value`
2642. error: `throw error`
265
266???
267
268```js
269function fn (...args) { throw error }
270```
271
272```js
273try {
274 fn(...args)
275} catch (const err) {
276 // handle error
277}
278```
279
280---
281
282## es modules
283
284```js
285import thing from 'module'
286
287export default thing
288```
289
290```js
291import { thing as thingy } from 'module'
292
293export const thing = thingy
294```
295
296???
297
298- why new syntax?
299 - there's myths that es modules do something new
300 - something about "tree shaking"
301 - anything possible with es modules is possible without
302 - common shake
303 - who knew developers were so superstitious
304- what is happening here?
305 - confusing to beginners who don't understand the special syntax and complex implementation details
306- breaks CommonJS code with default
307 - yes, i'm bitter about this, i've lost many hours debugging broken code, only to realize the module author published a patch version that broke the CommonJS exports
308
309---
310
311## or node modules
312
313also known as "CommonJS"
314
315```js
316const thing = require('module')
317
318module.exports = thing
319```
320
321```js
322const { thing: thingy } = require('module')
323
324module.exports = { thing: thingy }
325```
326
327???
328
329- it's just a function!
330- implementation details are simple:
331 - `fs.readFileSync` the module file
332 - wrap in closure to provide global variables like `require`, `module`, `exports`, `global`
333 - run code in JavaScript interpreter
334 - capture result of `module.exports` variable
335- when i started using Node.js from Python, `require`-as-a-function is what excited me the most
336 - so yes, i'm somewhat bitter that now JavaScript is adopting the same syntax as Python
337
338---
339
340## jsx
341
342```js
343import React from 'react'
344
345export default Table
346
347function Table ({ table }) {
348 return <table className='table'>
349 {table.map(row => {
350 <tr className='row'>
351 {row.map(item => {
352 <td className='item'>{item}</td>
353 })
354 </tr>
355 })
356 </table>
357}
358```
359
360???
361
362- made by Facebook to make React easier to use
363- looks friendly on the surface, but underneath has non-obvious edge cases
364 - hides that React is actually `React.createElement` function calls
365 - "why can't i use `if () { first } else { second }`?
366 - can only use expressions, not statements
367
368---
369
370## or hyperscript
371
372```js
373const h = require('react-hyperscript')
374
375module.exports = Table
376
377function Table ({ rows ) {
378 return h('table.table', rows.map(row => {
379 h('tr.row', row.map(item => {
380 h('td.item', item)
381 })
382 })
383}
384```
385
386???
387
388- `React.createElement` is basically a strict hyperscript without the class/id sugar
389
390---
391
392## or hyperx
393
394```js
395const hyperx = require('hyperx')
396const React = require('react')
397const html = hyperx(React.createElement)
398
399module.exports = Table
400
401function Table ({ rows ) {
402 return html`<table class='table'>
403 ${rows.map(row => {
404 html`<tr class='row'>
405 ${row.map(item => {
406 html`<td class='item'>${item}</td>`
407 })}
408 </tr>`
409 })}
410 </table>`
411}
412```
413
414???
415
416- similar to JSX, but uses existing language features: tagged template string
417
418---
419
420## promise
421
422a "promise" is an eventual value
423
424```js
425const promise = new Promise((resolve, reject) => {
426 // do stuff...
427 resolve(value)
428 // oh no!
429 reject(error)
430}
431```
432
433???
434
435```js
436module.exports = fetchCats
437
438function fetchCats ({ cats }) {
439 return Promise.all(cats.map(cat => {
440 return fetch(cat)
441 }))
442})
443```
444
445---
446
447## continuable
448
449a "continuable" is a function that takes a single argument, a node-style error-first callback
450
451```js
452const continuable = (cb) => {
453 // do stuff...
454 cb(null, data)
455 // oh no!
456 cb(error)
457}
458```
459
460???
461
462a continuable is the callback version of a promise
463
464can be passed around as an "eventual value", same as promises. but without the resolved, pending, rejected state machine complexity.
465
466- [`continuable`](https://github.com/Raynos/continuable)
467- [`cont`](https://github.com/dominictarr/cont)
468
469
470```js
471const request = require('request')
472const parallel = require('run-parallel')
473
474module.exports = fetchCats
475
476function fetchCats ({ cats }) {
477 return cb => parallel(cats.map(cat => {
478 return request(cat, cb)
479 }))
480})
481```
482
483---
484
485## async errors
486
487with a node-style error-first callback, there are three possible signals:
488
4891. value: `cb(null, value)`
4902. user error: `cb(error)`
4913. programmer error: `throw error`
492
493???
494
495- promise errors smush the user and programmer errors together
496- promises wrap all your handlers in a `try` / `catch`, so even if you have a different opinion about error handling, promises will force it's opinion on you
497 - yes, i'm bitter about this, i've lost many hours trying to figure out where my errors went
498
499---
500
501## pull streams
502
503async streams using only functions!
504
505```js
506pull(source(), through(), sink())
507```
508
509- composable partial pipelines
510- unbuffered by default
511- pipeline error propogation
512- source and sink back-pressure
513
514
515???
516
517- [history of streams](http://dominictarr.com/post/145135293917/history-of-streams)
518- [pull stream examples](https://github.com/dominictarr/pull-stream-examples)
519- [pull streams intro](http://dominictarr.com/post/149248845122/pull-streams-pull-streams-are-a-very-simple)
520- [pull stream](https://pull-stream.github.io/)
521- [pull stream workshop](https://github.com/pull-stream/pull-stream-workshop)
522
523compare with
524
525- node streams:
526 - https://nodejs.org/api/stream.html
527 - https://github.com/substack/stream-handbook
528 - https://github.com/workshopper/stream-adventure
529- wg-stream
530 - https://streams.spec.whatwg.org/
531 - https://github.com/whatwg/streams
532
533---
534
535### source
536
537example:
538
539```js
540function values (array) {
541 var i = 0
542 return (abort, callback) => {
543 if (abort || i === array.length) {
544 callback(true)
545 }
546 else {
547 cb(null, array[i++]
548 }
549 }
550}
551```
552
553usage:
554
555```js
556const source = values([0, 1, 2, 3])
557
558source(null, (err, value) {
559 console.log('first value:', value)
560})
561// first value: 0
562```
563
564???
565
566- look ma, just functions!
567- yes, we are using callbacks even for synchronous results
568 - much faster this way, no reason to delay til next tick
569
570---
571
572### sink
573
574example:
575
576```js
577function log (read) {
578 read(null, function next (err, data) {
579 if (err) return console.log(err)
580 console.log(data)
581 // recursively call read again!
582 read(null, next)
583 })
584}
585```
586
587usage:
588
589```js
590const source = values([0, 1, 2, 3])
591
592log(source)
593// 0
594// 1
595// 2
596// 3
597```
598
599???
600
601with continuables:
602
603```js
604function log (read) {
605 return (cb) => {
606 read(null, function next (err, data) {
607 if (err) return cb(err)
608 console.log(data)
609 // recursively call read again!
610 read(null, next)
611 })
612 }
613}
614```
615
616---
617
618### through
619
620example:
621
622```js
623function map (mapper) {
624 // a sink function: accept a source
625 return function (read) {
626 // but return another source!
627 return function (abort, cb) {
628 read(abort, function (err, data) {
629 // if the stream has ended, pass that on.
630 if (err) cb(err)
631 // apply a mapping to that data
632 else cb(null, mapper(data))
633 })
634 }
635 }
636}
637```
638
639usage:
640
641```js
642const source = values([0, 1, 2, 3])
643const double = map(x => x * 2)
644
645log(double(source))
646```
647
648---
649
650### real pull streams
651
652```
653const pull = require('pull-stream')
654
655pull(
656 pull.values([0, 1, 2, 3]),
657 pull.map(x => x * 2),
658 pull.log()
659)
660```
661
662???
663
664- check out the ecosystem of modules at [pull-stream.github.io](https://pull-stream.github.io)
665
666---
667
668### pull stream errors
669
670with a pull stream source callback, there are four possible signals:
671
6721. value: `cb(null, value)`
6732. user error: `cb(error)`
6743. programmer error: `throw error`
6754. complete: `cb(true)`
676
677???
678
679- both the source and sink can signal back-pressure ("hey i'm busy") by not calling the respective callback
680
681---
682
683## luddite.js benefits
684
685---
686
687### better performance
688
689software performance is less about gaining muscle, more about losing weight
690
691---
692
693### easier to describe
694
695specification is a function signature, not a complex state machine
696
697---
698
699### easier to understand
700
701less "snippet-driven development"
702
703more learnable tools focused on power users
704
705???
706
707- is probably a contentious opinion:
708 - yes promises are more "intuitive" than callbacks, a beginner can start using with less learning, training, or practice
709- i take the Douglas Engelbart approach to developer experience
710 - technology should augment human intellect, which means it should be a learnable tool focused on power users
711 - priority is not ease of use but powerful human computer expression
712 - "You donโ€™t need any special training to operate a tricycle, and thatโ€™s fine if youโ€™re just going to go around the block. If youโ€™re trying to go up a hill or go a long distance, you want a real bike. The kind with gears and brakesโ€“ the kind that takes time to learn how to steer and balance on."
713 - how many hours do we spend writing complex code, why should we keep using the training-wheel abstractions best suited for unexperienced newbies?
714 - https://alistapart.com/column/douglas-engelbart
715 - http://www.dougengelbart.org/pubs/augment-3906.html
716 - http://99percentinvisible.org/episode/of-mice-and-men/
717
718---
719
720## stories
721
722---
723
724### story: catstack
725
726build a framework from scratch, alone
727
728<img src="./catstack.jpg" height="450" class="center" />
729
730???
731
732reinvent all the wheels!
733
734https://github.com/root-systems/catstack
735
736- ui views
737 - hyps
738 - hyper-fela
739- ui state
740 - inu-engine
741 - inu
742 - inu-log
743 - inu-router
744- http handlers
745 - http-compose
746 - http-sender
747 - http-routes
748- services
749 - vas
750 - vas-http
751- modules
752 - depject
753 - depnest
754 - depject-priority
755- framework
756 - module system
757 - command-line tasks
758
759---
760
761### learning:
762
763yay, reinventing wheels for fun and learning
764
765boo, the world on your shoulders
766
767???
768
769pros
770
771- no better way to learn how systems work than by building them from scratch
772- own your dependencies, don't consume them for granted
773- provide consistent flavoring across subsystems
774
775cons
776
777- easy to become isolated
778 - if you aren't enough to become popular, you're alone
779- spreads you thin
780 - hard to work on what you want, because you have to fix something else
781- easy to rabbit hole
782- probably miss the long tail: i18n, accessibility, tests
783- always doing maintenance
784
785---
786
787### revised: dogstack
788
789choose your battles
790
791<img src="./dogstack.jpg" height="450" class="center" />
792
793???
794
795http://dogstack.js.org/
796
797---
798
799### story: patch ecosystem
800
801bring-your-own-framework potluck
802
803<img src="./patchwork.png" height="400" class="center" />
804
805???
806
807build an app with others, bring-your-own framework
808
809references:
810
811- https://github.com/ssbc/patchcore
812- https://github.com/ssbc/patchwork
813- https://github.com/ssbc/patchbay
814- https://github.com/ssbc/patchlite
815
816---
817
818### learning: somebody should...
819
820> if you see something that needs doing, it's your job to do
821
822???
823
824- collaborate with active listening and empathy
825- mad science: find something worth doing, do it, publish, repeat
826
827---
828
829## conclusion
830
831---
832
833### so what
834
835everyone has opinions.
836
837this one is mine. :3
838
839???
840
841takaways
842
843- izs pants post: https://groups.google.com/forum/#!msg/nodejs/MWaivVTirPY/0pnRjKsggkIJ
844 - everyone has opinions, be aware of yours' and others'
845 - when you come over to someone's house, be polite and respect their opinions
846- don't force your opinions on others
847 - share what you're passionate about
848 - avoid persuading anyone that your way is better
849- the luddite.js way is just another opinion, not better or worse than yours
850
851### all the "standards"
852
853make up your own "standards"!
854
855you have just as much a right to make the next JavaScript standard as anyone else.
856
857---
858
859## thanks!
860
861<3
862
863https://dinosaur.is
864
865 </textarea>
866 <script>require=(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i})({"components/printing":[function(require,module,exports){
867module.exports=require('yoGRCZ');
868},{}],"yoGRCZ":[function(require,module,exports){
869var EventEmitter = require('events').EventEmitter
870 , styler = require('components/styler')
871 ;
872
873var LANDSCAPE = 'landscape'
874 , PORTRAIT = 'portrait'
875 , PAGE_HEIGHT = 681
876 , PAGE_WIDTH = 908
877 ;
878
879function PrintComponent () {}
880
881// Add eventing
882PrintComponent.prototype = new EventEmitter();
883
884// Sets up listener for printing
885PrintComponent.prototype.init = function () {
886 var self = this;
887
888 this.setPageOrientation(LANDSCAPE);
889
890 if (!window.matchMedia) {
891 return false;
892 }
893
894 window.matchMedia('print').addListener(function (e) {
895 self.onPrint(e);
896 });
897};
898
899// Handles printing event
900PrintComponent.prototype.onPrint = function (e) {
901 var slideHeight;
902
903 if (!e.matches) {
904 return;
905 }
906
907 this.emit('print', {
908 isPortrait: this._orientation === 'portrait'
909 , pageHeight: this._pageHeight
910 , pageWidth: this._pageWidth
911 });
912};
913
914PrintComponent.prototype.setPageOrientation = function (orientation) {
915 if (orientation === PORTRAIT) {
916 // Flip dimensions for portrait orientation
917 this._pageHeight = PAGE_WIDTH;
918 this._pageWidth = PAGE_HEIGHT;
919 }
920 else if (orientation === LANDSCAPE) {
921 this._pageHeight = PAGE_HEIGHT;
922 this._pageWidth = PAGE_WIDTH;
923 }
924 else {
925 throw new Error('Unknown print orientation: ' + orientation);
926 }
927
928 this._orientation = orientation;
929
930 styler.setPageSize(this._pageWidth + 'px ' + this._pageHeight + 'px');
931};
932
933// Export singleton instance
934module.exports = new PrintComponent();
935
936},{"events":1,"components/styler":"syTcZF"}],"components/slide-number":[function(require,module,exports){
937module.exports=require('GSZq7a');
938},{}],"GSZq7a":[function(require,module,exports){
939module.exports = SlideNumberViewModel;
940
941function SlideNumberViewModel (slide, slideshow) {
942 var self = this;
943
944 self.slide = slide;
945 self.slideshow = slideshow;
946
947 self.element = document.createElement('div');
948 self.element.className = 'remark-slide-number';
949 self.element.innerHTML = formatSlideNumber(self.slide, self.slideshow);
950}
951
952function formatSlideNumber (slide, slideshow) {
953 var format = slideshow.getSlideNumberFormat()
954 , slides = slideshow.getSlides()
955 , current = getSlideNo(slide, slideshow)
956 , total = getSlideNo(slides[slides.length - 1], slideshow)
957 ;
958
959 if (typeof format === 'function') {
960 return format.call(slideshow, current, total);
961 }
962
963 return format
964 .replace('%current%', current)
965 .replace('%total%', total);
966}
967
968function getSlideNo (slide, slideshow) {
969 var slides = slideshow.getSlides(), i, slideNo = 0;
970
971 for (i = 0; i <= slide.getSlideIndex() && i < slides.length; ++i) {
972 if (slides[i].properties.count !== 'false') {
973 slideNo += 1;
974 }
975 }
976
977 return Math.max(1, slideNo);
978}
979
980},{}],2:[function(require,module,exports){
981// shim for using process in browser
982
983var process = module.exports = {};
984
985process.nextTick = (function () {
986 var canSetImmediate = typeof window !== 'undefined'
987 && window.setImmediate;
988 var canPost = typeof window !== 'undefined'
989 && window.postMessage && window.addEventListener
990 ;
991
992 if (canSetImmediate) {
993 return function (f) { return window.setImmediate(f) };
994 }
995
996 if (canPost) {
997 var queue = [];
998 window.addEventListener('message', function (ev) {
999 var source = ev.source;
1000 if ((source === window || source === null) && ev.data === 'process-tick') {
1001 ev.stopPropagation();
1002 if (queue.length > 0) {
1003 var fn = queue.shift();
1004 fn();
1005 }
1006 }
1007 }, true);
1008
1009 return function nextTick(fn) {
1010 queue.push(fn);
1011 window.postMessage('process-tick', '*');
1012 };
1013 }
1014
1015 return function nextTick(fn) {
1016 setTimeout(fn, 0);
1017 };
1018})();
1019
1020process.title = 'browser';
1021process.browser = true;
1022process.env = {};
1023process.argv = [];
1024
1025process.binding = function (name) {
1026 throw new Error('process.binding is not supported');
1027}
1028
1029// TODO(shtylman)
1030process.cwd = function () { return '/' };
1031process.chdir = function (dir) {
1032 throw new Error('process.chdir is not supported');
1033};
1034
1035},{}],1:[function(require,module,exports){
1036(function(process){if (!process.EventEmitter) process.EventEmitter = function () {};
1037
1038var EventEmitter = exports.EventEmitter = process.EventEmitter;
1039var isArray = typeof Array.isArray === 'function'
1040 ? Array.isArray
1041 : function (xs) {
1042 return Object.prototype.toString.call(xs) === '[object Array]'
1043 }
1044;
1045function indexOf (xs, x) {
1046 if (xs.indexOf) return xs.indexOf(x);
1047 for (var i = 0; i < xs.length; i++) {
1048 if (x === xs[i]) return i;
1049 }
1050 return -1;
1051}
1052
1053// By default EventEmitters will print a warning if more than
1054// 10 listeners are added to it. This is a useful default which
1055// helps finding memory leaks.
1056//
1057// Obviously not all Emitters should be limited to 10. This function allows
1058// that to be increased. Set to zero for unlimited.
1059var defaultMaxListeners = 10;
1060EventEmitter.prototype.setMaxListeners = function(n) {
1061 if (!this._events) this._events = {};
1062 this._events.maxListeners = n;
1063};
1064
1065
1066EventEmitter.prototype.emit = function(type) {
1067 // If there is no 'error' event listener then throw.
1068 if (type === 'error') {
1069 if (!this._events || !this._events.error ||
1070 (isArray(this._events.error) && !this._events.error.length))
1071 {
1072 if (arguments[1] instanceof Error) {
1073 throw arguments[1]; // Unhandled 'error' event
1074 } else {
1075 throw new Error("Uncaught, unspecified 'error' event.");
1076 }
1077 return false;
1078 }
1079 }
1080
1081 if (!this._events) return false;
1082 var handler = this._events[type];
1083 if (!handler) return false;
1084
1085 if (typeof handler == 'function') {
1086 switch (arguments.length) {
1087 // fast cases
1088 case 1:
1089 handler.call(this);
1090 break;
1091 case 2:
1092 handler.call(this, arguments[1]);
1093 break;
1094 case 3:
1095 handler.call(this, arguments[1], arguments[2]);
1096 break;
1097 // slower
1098 default:
1099 var args = Array.prototype.slice.call(arguments, 1);
1100 handler.apply(this, args);
1101 }
1102 return true;
1103
1104 } else if (isArray(handler)) {
1105 var args = Array.prototype.slice.call(arguments, 1);
1106
1107 var listeners = handler.slice();
1108 for (var i = 0, l = listeners.length; i < l; i++) {
1109 listeners[i].apply(this, args);
1110 }
1111 return true;
1112
1113 } else {
1114 return false;
1115 }
1116};
1117
1118// EventEmitter is defined in src/node_events.cc
1119// EventEmitter.prototype.emit() is also defined there.
1120EventEmitter.prototype.addListener = function(type, listener) {
1121 if ('function' !== typeof listener) {
1122 throw new Error('addListener only takes instances of Function');
1123 }
1124
1125 if (!this._events) this._events = {};
1126
1127 // To avoid recursion in the case that type == "newListeners"! Before
1128 // adding it to the listeners, first emit "newListeners".
1129 this.emit('newListener', type, listener);
1130
1131 if (!this._events[type]) {
1132 // Optimize the case of one listener. Don't need the extra array object.
1133 this._events[type] = listener;
1134 } else if (isArray(this._events[type])) {
1135
1136 // Check for listener leak
1137 if (!this._events[type].warned) {
1138 var m;
1139 if (this._events.maxListeners !== undefined) {
1140 m = this._events.maxListeners;
1141 } else {
1142 m = defaultMaxListeners;
1143 }
1144
1145 if (m && m > 0 && this._events[type].length > m) {
1146 this._events[type].warned = true;
1147 console.error('(node) warning: possible EventEmitter memory ' +
1148 'leak detected. %d listeners added. ' +
1149 'Use emitter.setMaxListeners() to increase limit.',
1150 this._events[type].length);
1151 console.trace();
1152 }
1153 }
1154
1155 // If we've already got an array, just append.
1156 this._events[type].push(listener);
1157 } else {
1158 // Adding the second element, need to change to array.
1159 this._events[type] = [this._events[type], listener];
1160 }
1161
1162 return this;
1163};
1164
1165EventEmitter.prototype.on = EventEmitter.prototype.addListener;
1166
1167EventEmitter.prototype.once = function(type, listener) {
1168 var self = this;
1169 self.on(type, function g() {
1170 self.removeListener(type, g);
1171 listener.apply(this, arguments);
1172 });
1173
1174 return this;
1175};
1176
1177EventEmitter.prototype.removeListener = function(type, listener) {
1178 if ('function' !== typeof listener) {
1179 throw new Error('removeListener only takes instances of Function');
1180 }
1181
1182 // does not use listeners(), so no side effect of creating _events[type]
1183 if (!this._events || !this._events[type]) return this;
1184
1185 var list = this._events[type];
1186
1187 if (isArray(list)) {
1188 var i = indexOf(list, listener);
1189 if (i < 0) return this;
1190 list.splice(i, 1);
1191 if (list.length == 0)
1192 delete this._events[type];
1193 } else if (this._events[type] === listener) {
1194 delete this._events[type];
1195 }
1196
1197 return this;
1198};
1199
1200EventEmitter.prototype.removeAllListeners = function(type) {
1201 if (arguments.length === 0) {
1202 this._events = {};
1203 return this;
1204 }
1205
1206 // does not use listeners(), so no side effect of creating _events[type]
1207 if (type && this._events && this._events[type]) this._events[type] = null;
1208 return this;
1209};
1210
1211EventEmitter.prototype.listeners = function(type) {
1212 if (!this._events) this._events = {};
1213 if (!this._events[type]) this._events[type] = [];
1214 if (!isArray(this._events[type])) {
1215 this._events[type] = [this._events[type]];
1216 }
1217 return this._events[type];
1218};
1219
1220})(require("__browserify_process"))
1221},{"__browserify_process":2}],3:[function(require,module,exports){
1222var Api = require('./remark/api')
1223 , polyfills = require('./polyfills')
1224 , styler = require('components/styler')
1225 ;
1226
1227// Expose API as `remark`
1228window.remark = new Api();
1229
1230// Apply polyfills as needed
1231polyfills.apply();
1232
1233// Apply embedded styles to document
1234styler.styleDocument();
1235
1236},{"components/styler":"syTcZF","./remark/api":4,"./polyfills":5}],"components/styler":[function(require,module,exports){
1237module.exports=require('syTcZF');
1238},{}],"syTcZF":[function(require,module,exports){
1239var resources = require('../../resources')
1240 , highlighter = require('../../highlighter')
1241 ;
1242
1243module.exports = {
1244 styleDocument: styleDocument
1245, setPageSize: setPageSize
1246};
1247
1248// Applies bundled styles to document
1249function styleDocument () {
1250 var headElement, styleElement, style;
1251
1252 // Bail out if document has already been styled
1253 if (getRemarkStylesheet()) {
1254 return;
1255 }
1256
1257 headElement = document.getElementsByTagName('head')[0];
1258 styleElement = document.createElement('style');
1259 styleElement.type = 'text/css';
1260
1261 // Set title in order to enable lookup
1262 styleElement.title = 'remark';
1263
1264 // Set document styles
1265 styleElement.innerHTML = resources.documentStyles;
1266
1267 // Append highlighting styles
1268 for (style in highlighter.styles) {
1269 if (highlighter.styles.hasOwnProperty(style)) {
1270 styleElement.innerHTML = styleElement.innerHTML +
1271 highlighter.styles[style];
1272 }
1273 }
1274
1275 // Put element first to prevent overriding user styles
1276 headElement.insertBefore(styleElement, headElement.firstChild);
1277}
1278
1279function setPageSize (size) {
1280 var stylesheet = getRemarkStylesheet()
1281 , pageRule = getPageRule(stylesheet)
1282 ;
1283
1284 pageRule.style.size = size;
1285}
1286
1287// Locates the embedded remark stylesheet
1288function getRemarkStylesheet () {
1289 var i, l = document.styleSheets.length;
1290
1291 for (i = 0; i < l; ++i) {
1292 if (document.styleSheets[i].title === 'remark') {
1293 return document.styleSheets[i];
1294 }
1295 }
1296}
1297
1298// Locates the CSS @page rule
1299function getPageRule (stylesheet) {
1300 var i, l = stylesheet.cssRules.length;
1301
1302 for (i = 0; i < l; ++i) {
1303 if (stylesheet.cssRules[i] instanceof window.CSSPageRule) {
1304 return stylesheet.cssRules[i];
1305 }
1306 }
1307}
1308
1309},{"../../resources":6,"../../highlighter":7}],"components/timer":[function(require,module,exports){
1310module.exports=require('GFo1Ae');
1311},{}],"GFo1Ae":[function(require,module,exports){
1312var utils = require('../../utils');
1313
1314module.exports = TimerViewModel;
1315
1316function TimerViewModel (events, element) {
1317 var self = this;
1318
1319 self.events = events;
1320 self.element = element;
1321
1322 self.startTime = null;
1323 self.pauseStart = null;
1324 self.pauseLength = 0;
1325
1326 element.innerHTML = '0:00:00';
1327
1328 setInterval(function() {
1329 self.updateTimer();
1330 }, 100);
1331
1332 events.on('start', function () {
1333 // When we do the first slide change, start the clock.
1334 self.startTime = new Date();
1335 });
1336
1337 events.on('resetTimer', function () {
1338 // If we reset the timer, clear everything.
1339 self.startTime = null;
1340 self.pauseStart = null;
1341 self.pauseLength = 0;
1342 self.element.innerHTML = '0:00:00';
1343 });
1344
1345 events.on('pause', function () {
1346 self.pauseStart = new Date();
1347 });
1348
1349 events.on('resume', function () {
1350 self.pauseLength += new Date() - self.pauseStart;
1351 self.pauseStart = null;
1352 });
1353}
1354
1355TimerViewModel.prototype.updateTimer = function () {
1356 var self = this;
1357
1358 if (self.startTime) {
1359 var millis;
1360 // If we're currently paused, measure elapsed time from the pauseStart.
1361 // Otherwise, use "now".
1362 if (self.pauseStart) {
1363 millis = self.pauseStart - self.startTime - self.pauseLength;
1364 } else {
1365 millis = new Date() - self.startTime - self.pauseLength;
1366 }
1367
1368 var seconds = Math.floor(millis / 1000) % 60;
1369 var minutes = Math.floor(millis / 60000) % 60;
1370 var hours = Math.floor(millis / 3600000);
1371
1372 self.element.innerHTML = hours + (minutes > 9 ? ':' : ':0') + minutes + (seconds > 9 ? ':' : ':0') + seconds;
1373 }
1374};
1375
1376},{"../../utils":8}],5:[function(require,module,exports){
1377exports.apply = function () {
1378 forEach([Array, window.NodeList, window.HTMLCollection], extend);
1379};
1380
1381function forEach (list, f) {
1382 var i;
1383
1384 for (i = 0; i < list.length; ++i) {
1385 f(list[i], i);
1386 }
1387}
1388
1389function extend (object) {
1390 var prototype = object && object.prototype;
1391
1392 if (!prototype) {
1393 return;
1394 }
1395
1396 prototype.forEach = prototype.forEach || function (f) {
1397 forEach(this, f);
1398 };
1399
1400 prototype.filter = prototype.filter || function (f) {
1401 var result = [];
1402
1403 this.forEach(function (element) {
1404 if (f(element, result.length)) {
1405 result.push(element);
1406 }
1407 });
1408
1409 return result;
1410 };
1411
1412 prototype.map = prototype.map || function (f) {
1413 var result = [];
1414
1415 this.forEach(function (element) {
1416 result.push(f(element, result.length));
1417 });
1418
1419 return result;
1420 };
1421}
1422},{}],6:[function(require,module,exports){
1423/* Automatically generated */
1424
1425module.exports = {
1426 version: "0.13.0",
1427 documentStyles: "html.remark-container,body.remark-container{height:100%;width:100%;-webkit-print-color-adjust:exact;}.remark-container{background:#d7d8d2;margin:0;overflow:hidden;}.remark-container:focus{outline-style:solid;outline-width:1px;}.remark-container:-webkit-full-screen{width:100%;height:100%;}body:-webkit-full-screen{background:#000000;}body:-moz-full-screen{background:#000000;}body:fullscreen{background:#000000;}.remark-slides-area{position:relative;height:100%;width:100%;}.remark-slide-container{display:none;position:absolute;height:100%;width:100%;page-break-after:always;}.remark-slide-scaler{background-color:transparent;overflow:hidden;position:absolute;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left;-moz-box-shadow:0 0 30px #888;-webkit-box-shadow:0 0 30px #888;box-shadow:0 0 30px #888;}.remark-slide{height:100%;width:100%;display:table;table-layout:fixed;}.remark-slide>.left{text-align:left;}.remark-slide>.center{text-align:center;}.remark-slide>.right{text-align:right;}.remark-slide>.top{vertical-align:top;}.remark-slide>.middle{vertical-align:middle;}.remark-slide>.bottom{vertical-align:bottom;}.remark-slide-content{background-color:#fff;background-position:center;background-repeat:no-repeat;display:table-cell;font-size:20px;padding:1em 4em 1em 4em;}.remark-slide-content h1{font-size:55px;}.remark-slide-content h2{font-size:45px;}.remark-slide-content h3{font-size:35px;}.remark-slide-content .left{display:block;text-align:left;}.remark-slide-content .center{display:block;text-align:center;}.remark-slide-content .right{display:block;text-align:right;}.remark-slide-number{bottom:12px;opacity:0.5;position:absolute;right:20px;}.remark-slide-notes{border-top:3px solid black;position:absolute;display:none;}.remark-code{font-size:18px;}.remark-code-line{min-height:1em;}.remark-code-line-highlighted{background-color:rgba(255, 255, 0, 0.5);}.remark-code-span-highlighted{background-color:rgba(255, 255, 0, 0.5);padding:1px 2px 2px 2px;}.remark-visible{display:block;z-index:2;}.remark-fading{display:block;z-index:1;}.remark-fading .remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;}.remark-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;display:none;background:#000;z-index:2;}.remark-pause{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000;}.remark-pause .remark-pause-lozenge{margin-top:30%;text-align:center;}.remark-pause .remark-pause-lozenge span{color:white;background:black;border:2px solid black;border-radius:20px;padding:20px 30px;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:42pt;font-weight:bold;}.remark-container.remark-presenter-mode.remark-pause-mode .remark-pause{display:block;}.remark-container.remark-presenter-mode.remark-pause-mode .remark-backdrop{display:block;opacity:0.5;}.remark-help{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left;}.remark-help .remark-help-content{color:white;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:12pt;position:absolute;top:5%;bottom:10%;height:10%;left:5%;width:90%;}.remark-help .remark-help-content h1{font-size:36px;}.remark-help .remark-help-content td{color:white;font-size:12pt;padding:10px;}.remark-help .remark-help-content td:first-child{padding-left:0;}.remark-help .remark-help-content .key{background:white;color:black;min-width:1em;display:inline-block;padding:3px 6px;text-align:center;border-radius:4px;font-size:14px;}.remark-help .dismiss{top:85%;}.remark-container.remark-help-mode .remark-help{display:block;}.remark-container.remark-help-mode .remark-backdrop{display:block;opacity:0.95;}.remark-preview-area{bottom:2%;left:2%;display:none;opacity:0.5;position:absolute;height:47.25%;width:48%;}.remark-preview-area .remark-slide-container{display:block;}.remark-notes-area{background:#fff;bottom:0;color:black;display:none;left:52%;overflow:hidden;position:absolute;right:0;top:0;}.remark-notes-area .remark-top-area{height:50px;left:20px;position:absolute;right:10px;top:10px;}.remark-notes-area .remark-bottom-area{position:absolute;top:75px;bottom:10px;left:20px;right:10px;}.remark-notes-area .remark-bottom-area .remark-toggle{display:block;text-decoration:none;font-family:Helvetica,arial,freesans,clean,sans-serif;height:21px;font-size:0.75em;text-transform:uppercase;color:#ccc;}.remark-notes-area .remark-bottom-area .remark-notes-current-area{height:70%;position:relative;}.remark-notes-area .remark-bottom-area .remark-notes-current-area .remark-notes{clear:both;border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0px;left:0px;right:0px;overflow-y:auto;margin-bottom:20px;padding-top:10px;}.remark-notes-area .remark-bottom-area .remark-notes-preview-area{height:30%;position:relative;}.remark-notes-area .remark-bottom-area .remark-notes-preview-area .remark-notes-preview{border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0px;left:0px;right:0px;overflow-y:auto;}.remark-notes-area .remark-bottom-area .remark-notes>*:first-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:first-child{margin-top:5px;}.remark-notes-area .remark-bottom-area .remark-notes>*:last-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:last-child{margin-bottom:0;}.remark-toolbar{color:#979892;vertical-align:middle;}.remark-toolbar .remark-toolbar-link{border:2px solid #d7d8d2;color:#979892;display:inline-block;padding:2px 2px;text-decoration:none;text-align:center;min-width:20px;}.remark-toolbar .remark-toolbar-link:hover{border-color:#979892;color:#676862;}.remark-toolbar .remark-toolbar-timer{border:2px solid black;border-radius:10px;background:black;color:white;display:inline-block;float:right;padding:5px 10px;font-family:sans-serif;font-weight:bold;font-size:175%;text-decoration:none;text-align:center;}.remark-container.remark-presenter-mode .remark-slides-area{top:2%;left:2%;height:47.25%;width:48%;}.remark-container.remark-presenter-mode .remark-preview-area{display:block;}.remark-container.remark-presenter-mode .remark-notes-area{display:block;}.remark-container.remark-blackout-mode:not(.remark-presenter-mode) .remark-backdrop{display:block;opacity:0.99;}.remark-container.remark-mirrored-mode:not(.remark-presenter-mode) .remark-slides-area{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);}@media print{.remark-container{overflow:visible;background-color:#fff;} .remark-container.remark-presenter-mode .remark-slides-area{top:0px;left:0px;height:100%;width:681px;} .remark-container.remark-presenter-mode .remark-preview-area,.remark-container.remark-presenter-mode .remark-notes-area{display:none;} .remark-container.remark-presenter-mode .remark-slide-notes{display:block;margin-left:30px;width:621px;} .remark-slide-container{display:block;position:relative;} .remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;-webkit-transform-origin:initial;box-shadow:none;}}@page {margin:0;}",
1428 containerLayout: "<div class=\"remark-notes-area\">\n <div class=\"remark-top-area\">\n <div class=\"remark-toolbar\">\n <a class=\"remark-toolbar-link\" href=\"#increase\">+</a>\n <a class=\"remark-toolbar-link\" href=\"#decrease\">-</a>\n <span class=\"remark-toolbar-timer\"></span>\n </div>\n </div>\n <div class=\"remark-bottom-area\">\n <div class=\"remark-notes-current-area\">\n <div class=\"remark-toggle\">Notes for current slide</div>\n <div class=\"remark-notes\"></div>\n </div>\n <div class=\"remark-notes-preview-area\">\n <div class=\"remark-toggle\">Notes for next slide</div>\n <div class=\"remark-notes-preview\"></div>\n </div>\n </div>\n</div>\n<div class=\"remark-slides-area\"></div>\n<div class=\"remark-preview-area\"></div>\n<div class=\"remark-backdrop\"></div>\n<div class=\"remark-pause\">\n <div class=\"remark-pause-lozenge\">\n <span>Paused</span>\n </div>\n</div>\n<div class=\"remark-help\">\n <div class=\"remark-help-content\">\n <h1>Help</h1>\n <p><b>Keyboard shortcuts</b></p>\n <table class=\"light-keys\">\n <tr>\n <td>\n <span class=\"key\"><b>&uarr;</b></span>,\n <span class=\"key\"><b>&larr;</b></span>,\n <span class=\"key\">Pg Up</span>,\n <span class=\"key\">k</span>\n </td>\n <td>Go to previous slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\"><b>&darr;</b></span>,\n <span class=\"key\"><b>&rarr;</b></span>,\n <span class=\"key\">Pg Dn</span>,\n <span class=\"key\">Space</span>,\n <span class=\"key\">j</span>\n </td>\n <td>Go to next slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">Home</span>\n </td>\n <td>Go to first slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">End</span>\n </td>\n <td>Go to last slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">b</span>&nbsp;/\n <span class=\"key\">m</span>&nbsp;/\n <span class=\"key\">f</span>\n </td>\n <td>Toggle blackout / mirrored / fullscreen mode</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">c</span>\n </td>\n <td>Clone slideshow</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">p</span>\n </td>\n <td>Toggle presenter mode</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">t</span>\n </td>\n <td>Restart the presentation timer</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">?</span>,\n <span class=\"key\">h</span>\n </td>\n <td>Toggle this help</td>\n </tr>\n </table>\n </div>\n <div class=\"content dismiss\">\n <table class=\"light-keys\">\n <tr>\n <td>\n <span class=\"key\">Esc</span>\n </td>\n <td>Back to slideshow</td>\n </tr>\n </table>\n </div>\n</div>\n"
1429};
1430
1431},{}],7:[function(require,module,exports){
1432(function(){/* Automatically generated */
1433
1434var hljs = (function() {
1435 var exports = {};
1436 /*
1437Syntax highlighting with language autodetection.
1438https://highlightjs.org/
1439*/
1440
1441(function(factory) {
1442
1443 // Setup highlight.js for different environments. First is Node.js or
1444 // CommonJS.
1445 if(typeof exports !== 'undefined') {
1446 factory(exports);
1447 } else {
1448 // Export hljs globally even when using AMD for cases when this script
1449 // is loaded with others that may still expect a global hljs.
1450 self.hljs = factory({});
1451
1452 // Finally register the global hljs with AMD.
1453 if(typeof define === 'function' && define.amd) {
1454 define('hljs', [], function() {
1455 return self.hljs;
1456 });
1457 }
1458 }
1459
1460}(function(hljs) {
1461
1462 /* Utility functions */
1463
1464 function escape(value) {
1465 return value.replace(/&/gm, '&amp;').replace(/</gm, '&lt;').replace(/>/gm, '&gt;');
1466 }
1467
1468 function tag(node) {
1469 return node.nodeName.toLowerCase();
1470 }
1471
1472 function testRe(re, lexeme) {
1473 var match = re && re.exec(lexeme);
1474 return match && match.index == 0;
1475 }
1476
1477 function isNotHighlighted(language) {
1478 return (/^(no-?highlight|plain|text)$/i).test(language);
1479 }
1480
1481 function blockLanguage(block) {
1482 var i, match, length,
1483 classes = block.className + ' ';
1484
1485 classes += block.parentNode ? block.parentNode.className : '';
1486
1487 // language-* takes precedence over non-prefixed class names
1488 match = (/\blang(?:uage)?-([\w-]+)\b/i).exec(classes);
1489 if (match) {
1490 return getLanguage(match[1]) ? match[1] : 'no-highlight';
1491 }
1492
1493 classes = classes.split(/\s+/);
1494 for (i = 0, length = classes.length; i < length; i++) {
1495 if (getLanguage(classes[i]) || isNotHighlighted(classes[i])) {
1496 return classes[i];
1497 }
1498 }
1499 }
1500
1501 function inherit(parent, obj) {
1502 var result = {}, key;
1503 for (key in parent)
1504 result[key] = parent[key];
1505 if (obj)
1506 for (key in obj)
1507 result[key] = obj[key];
1508 return result;
1509 }
1510
1511 /* Stream merging */
1512
1513 function nodeStream(node) {
1514 var result = [];
1515 (function _nodeStream(node, offset) {
1516 for (var child = node.firstChild; child; child = child.nextSibling) {
1517 if (child.nodeType == 3)
1518 offset += child.nodeValue.length;
1519 else if (child.nodeType == 1) {
1520 result.push({
1521 event: 'start',
1522 offset: offset,
1523 node: child
1524 });
1525 offset = _nodeStream(child, offset);
1526 // Prevent void elements from having an end tag that would actually
1527 // double them in the output. There are more void elements in HTML
1528 // but we list only those realistically expected in code display.
1529 if (!tag(child).match(/br|hr|img|input/)) {
1530 result.push({
1531 event: 'stop',
1532 offset: offset,
1533 node: child
1534 });
1535 }
1536 }
1537 }
1538 return offset;
1539 })(node, 0);
1540 return result;
1541 }
1542
1543 function mergeStreams(original, highlighted, value) {
1544 var processed = 0;
1545 var result = '';
1546 var nodeStack = [];
1547
1548 function selectStream() {
1549 if (!original.length || !highlighted.length) {
1550 return original.length ? original : highlighted;
1551 }
1552 if (original[0].offset != highlighted[0].offset) {
1553 return (original[0].offset < highlighted[0].offset) ? original : highlighted;
1554 }
1555
1556 /*
1557 To avoid starting the stream just before it should stop the order is
1558 ensured that original always starts first and closes last:
1559
1560 if (event1 == 'start' && event2 == 'start')
1561 return original;
1562 if (event1 == 'start' && event2 == 'stop')
1563 return highlighted;
1564 if (event1 == 'stop' && event2 == 'start')
1565 return original;
1566 if (event1 == 'stop' && event2 == 'stop')
1567 return highlighted;
1568
1569 ... which is collapsed to:
1570 */
1571 return highlighted[0].event == 'start' ? original : highlighted;
1572 }
1573
1574 function open(node) {
1575 function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value) + '"';}
1576 result += '<' + tag(node) + Array.prototype.map.call(node.attributes, attr_str).join('') + '>';
1577 }
1578
1579 function close(node) {
1580 result += '</' + tag(node) + '>';
1581 }
1582
1583 function render(event) {
1584 (event.event == 'start' ? open : close)(event.node);
1585 }
1586
1587 while (original.length || highlighted.length) {
1588 var stream = selectStream();
1589 result += escape(value.substr(processed, stream[0].offset - processed));
1590 processed = stream[0].offset;
1591 if (stream == original) {
1592 /*
1593 On any opening or closing tag of the original markup we first close
1594 the entire highlighted node stack, then render the original tag along
1595 with all the following original tags at the same offset and then
1596 reopen all the tags on the highlighted stack.
1597 */
1598 nodeStack.reverse().forEach(close);
1599 do {
1600 render(stream.splice(0, 1)[0]);
1601 stream = selectStream();
1602 } while (stream == original && stream.length && stream[0].offset == processed);
1603 nodeStack.reverse().forEach(open);
1604 } else {
1605 if (stream[0].event == 'start') {
1606 nodeStack.push(stream[0].node);
1607 } else {
1608 nodeStack.pop();
1609 }
1610 render(stream.splice(0, 1)[0]);
1611 }
1612 }
1613 return result + escape(value.substr(processed));
1614 }
1615
1616 /* Initialization */
1617
1618 function compileLanguage(language) {
1619
1620 function reStr(re) {
1621 return (re && re.source) || re;
1622 }
1623
1624 function langRe(value, global) {
1625 return new RegExp(
1626 reStr(value),
1627 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')
1628 );
1629 }
1630
1631 function compileMode(mode, parent) {
1632 if (mode.compiled)
1633 return;
1634 mode.compiled = true;
1635
1636 mode.keywords = mode.keywords || mode.beginKeywords;
1637 if (mode.keywords) {
1638 var compiled_keywords = {};
1639
1640 var flatten = function(className, str) {
1641 if (language.case_insensitive) {
1642 str = str.toLowerCase();
1643 }
1644 str.split(' ').forEach(function(kw) {
1645 var pair = kw.split('|');
1646 compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1];
1647 });
1648 };
1649
1650 if (typeof mode.keywords == 'string') { // string
1651 flatten('keyword', mode.keywords);
1652 } else {
1653 Object.keys(mode.keywords).forEach(function (className) {
1654 flatten(className, mode.keywords[className]);
1655 });
1656 }
1657 mode.keywords = compiled_keywords;
1658 }
1659 mode.lexemesRe = langRe(mode.lexemes || /\b\w+\b/, true);
1660
1661 if (parent) {
1662 if (mode.beginKeywords) {
1663 mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b';
1664 }
1665 if (!mode.begin)
1666 mode.begin = /\B|\b/;
1667 mode.beginRe = langRe(mode.begin);
1668 if (!mode.end && !mode.endsWithParent)
1669 mode.end = /\B|\b/;
1670 if (mode.end)
1671 mode.endRe = langRe(mode.end);
1672 mode.terminator_end = reStr(mode.end) || '';
1673 if (mode.endsWithParent && parent.terminator_end)
1674 mode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;
1675 }
1676 if (mode.illegal)
1677 mode.illegalRe = langRe(mode.illegal);
1678 if (mode.relevance === undefined)
1679 mode.relevance = 1;
1680 if (!mode.contains) {
1681 mode.contains = [];
1682 }
1683 var expanded_contains = [];
1684 mode.contains.forEach(function(c) {
1685 if (c.variants) {
1686 c.variants.forEach(function(v) {expanded_contains.push(inherit(c, v));});
1687 } else {
1688 expanded_contains.push(c == 'self' ? mode : c);
1689 }
1690 });
1691 mode.contains = expanded_contains;
1692 mode.contains.forEach(function(c) {compileMode(c, mode);});
1693
1694 if (mode.starts) {
1695 compileMode(mode.starts, parent);
1696 }
1697
1698 var terminators =
1699 mode.contains.map(function(c) {
1700 return c.beginKeywords ? '\\.?(' + c.begin + ')\\.?' : c.begin;
1701 })
1702 .concat([mode.terminator_end, mode.illegal])
1703 .map(reStr)
1704 .filter(Boolean);
1705 mode.terminators = terminators.length ? langRe(terminators.join('|'), true) : {exec: function(/*s*/) {return null;}};
1706 }
1707
1708 compileMode(language);
1709 }
1710
1711 /*
1712 Core highlighting function. Accepts a language name, or an alias, and a
1713 string with the code to highlight. Returns an object with the following
1714 properties:
1715
1716 - relevance (int)
1717 - value (an HTML string with highlighting markup)
1718
1719 */
1720 function highlight(name, value, ignore_illegals, continuation) {
1721
1722 function subMode(lexeme, mode) {
1723 for (var i = 0; i < mode.contains.length; i++) {
1724 if (testRe(mode.contains[i].beginRe, lexeme)) {
1725 return mode.contains[i];
1726 }
1727 }
1728 }
1729
1730 function endOfMode(mode, lexeme) {
1731 if (testRe(mode.endRe, lexeme)) {
1732 while (mode.endsParent && mode.parent) {
1733 mode = mode.parent;
1734 }
1735 return mode;
1736 }
1737 if (mode.endsWithParent) {
1738 return endOfMode(mode.parent, lexeme);
1739 }
1740 }
1741
1742 function isIllegal(lexeme, mode) {
1743 return !ignore_illegals && testRe(mode.illegalRe, lexeme);
1744 }
1745
1746 function keywordMatch(mode, match) {
1747 var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0];
1748 return mode.keywords.hasOwnProperty(match_str) && mode.keywords[match_str];
1749 }
1750
1751 function buildSpan(classname, insideSpan, leaveOpen, noPrefix) {
1752 var classPrefix = noPrefix ? '' : options.classPrefix,
1753 openSpan = '<span class="' + classPrefix,
1754 closeSpan = leaveOpen ? '' : '</span>';
1755
1756 openSpan += classname + '">';
1757
1758 return openSpan + insideSpan + closeSpan;
1759 }
1760
1761 function processKeywords() {
1762 if (!top.keywords)
1763 return escape(mode_buffer);
1764 var result = '';
1765 var last_index = 0;
1766 top.lexemesRe.lastIndex = 0;
1767 var match = top.lexemesRe.exec(mode_buffer);
1768 while (match) {
1769 result += escape(mode_buffer.substr(last_index, match.index - last_index));
1770 var keyword_match = keywordMatch(top, match);
1771 if (keyword_match) {
1772 relevance += keyword_match[1];
1773 result += buildSpan(keyword_match[0], escape(match[0]));
1774 } else {
1775 result += escape(match[0]);
1776 }
1777 last_index = top.lexemesRe.lastIndex;
1778 match = top.lexemesRe.exec(mode_buffer);
1779 }
1780 return result + escape(mode_buffer.substr(last_index));
1781 }
1782
1783 function processSubLanguage() {
1784 var explicit = typeof top.subLanguage == 'string';
1785 if (explicit && !languages[top.subLanguage]) {
1786 return escape(mode_buffer);
1787 }
1788
1789 var result = explicit ?
1790 highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]) :
1791 highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : undefined);
1792
1793 // Counting embedded language score towards the host language may be disabled
1794 // with zeroing the containing mode relevance. Usecase in point is Markdown that
1795 // allows XML everywhere and makes every XML snippet to have a much larger Markdown
1796 // score.
1797 if (top.relevance > 0) {
1798 relevance += result.relevance;
1799 }
1800 if (explicit) {
1801 continuations[top.subLanguage] = result.top;
1802 }
1803 return buildSpan(result.language, result.value, false, true);
1804 }
1805
1806 function processBuffer() {
1807 return top.subLanguage !== undefined ? processSubLanguage() : processKeywords();
1808 }
1809
1810 function startNewMode(mode, lexeme) {
1811 var markup = mode.className? buildSpan(mode.className, '', true): '';
1812 if (mode.returnBegin) {
1813 result += markup;
1814 mode_buffer = '';
1815 } else if (mode.excludeBegin) {
1816 result += escape(lexeme) + markup;
1817 mode_buffer = '';
1818 } else {
1819 result += markup;
1820 mode_buffer = lexeme;
1821 }
1822 top = Object.create(mode, {parent: {value: top}});
1823 }
1824
1825 function processLexeme(buffer, lexeme) {
1826
1827 mode_buffer += buffer;
1828 if (lexeme === undefined) {
1829 result += processBuffer();
1830 return 0;
1831 }
1832
1833 var new_mode = subMode(lexeme, top);
1834 if (new_mode) {
1835 result += processBuffer();
1836 startNewMode(new_mode, lexeme);
1837 return new_mode.returnBegin ? 0 : lexeme.length;
1838 }
1839
1840 var end_mode = endOfMode(top, lexeme);
1841 if (end_mode) {
1842 var origin = top;
1843 if (!(origin.returnEnd || origin.excludeEnd)) {
1844 mode_buffer += lexeme;
1845 }
1846 result += processBuffer();
1847 do {
1848 if (top.className) {
1849 result += '</span>';
1850 }
1851 relevance += top.relevance;
1852 top = top.parent;
1853 } while (top != end_mode.parent);
1854 if (origin.excludeEnd) {
1855 result += escape(lexeme);
1856 }
1857 mode_buffer = '';
1858 if (end_mode.starts) {
1859 startNewMode(end_mode.starts, '');
1860 }
1861 return origin.returnEnd ? 0 : lexeme.length;
1862 }
1863
1864 if (isIllegal(lexeme, top))
1865 throw new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '<unnamed>') + '"');
1866
1867 /*
1868 Parser should not reach this point as all types of lexemes should be caught
1869 earlier, but if it does due to some bug make sure it advances at least one
1870 character forward to prevent infinite looping.
1871 */
1872 mode_buffer += lexeme;
1873 return lexeme.length || 1;
1874 }
1875
1876 var language = getLanguage(name);
1877 if (!language) {
1878 throw new Error('Unknown language: "' + name + '"');
1879 }
1880
1881 compileLanguage(language);
1882 var top = continuation || language;
1883 var continuations = {}; // keep continuations for sub-languages
1884 var result = '', current;
1885 for(current = top; current != language; current = current.parent) {
1886 if (current.className) {
1887 result = buildSpan(current.className, '', true) + result;
1888 }
1889 }
1890 var mode_buffer = '';
1891 var relevance = 0;
1892 try {
1893 var match, count, index = 0;
1894 while (true) {
1895 top.terminators.lastIndex = index;
1896 match = top.terminators.exec(value);
1897 if (!match)
1898 break;
1899 count = processLexeme(value.substr(index, match.index - index), match[0]);
1900 index = match.index + count;
1901 }
1902 processLexeme(value.substr(index));
1903 for(current = top; current.parent; current = current.parent) { // close dangling modes
1904 if (current.className) {
1905 result += '</span>';
1906 }
1907 }
1908 return {
1909 relevance: relevance,
1910 value: result,
1911 language: name,
1912 top: top
1913 };
1914 } catch (e) {
1915 if (e.message.indexOf('Illegal') != -1) {
1916 return {
1917 relevance: 0,
1918 value: escape(value)
1919 };
1920 } else {
1921 throw e;
1922 }
1923 }
1924 }
1925
1926 /*
1927 Highlighting with language detection. Accepts a string with the code to
1928 highlight. Returns an object with the following properties:
1929
1930 - language (detected language)
1931 - relevance (int)
1932 - value (an HTML string with highlighting markup)
1933 - second_best (object with the same structure for second-best heuristically
1934 detected language, may be absent)
1935
1936 */
1937 function highlightAuto(text, languageSubset) {
1938 languageSubset = languageSubset || options.languages || Object.keys(languages);
1939 var result = {
1940 relevance: 0,
1941 value: escape(text)
1942 };
1943 var second_best = result;
1944 languageSubset.forEach(function(name) {
1945 if (!getLanguage(name)) {
1946 return;
1947 }
1948 var current = highlight(name, text, false);
1949 current.language = name;
1950 if (current.relevance > second_best.relevance) {
1951 second_best = current;
1952 }
1953 if (current.relevance > result.relevance) {
1954 second_best = result;
1955 result = current;
1956 }
1957 });
1958 if (second_best.language) {
1959 result.second_best = second_best;
1960 }
1961 return result;
1962 }
1963
1964 /*
1965 Post-processing of the highlighted markup:
1966
1967 - replace TABs with something more useful
1968 - replace real line-breaks with '<br>' for non-pre containers
1969
1970 */
1971 function fixMarkup(value) {
1972 if (options.tabReplace) {
1973 value = value.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1 /*..., offset, s*/) {
1974 return p1.replace(/\t/g, options.tabReplace);
1975 });
1976 }
1977 if (options.useBR) {
1978 value = value.replace(/\n/g, '<br>');
1979 }
1980 return value;
1981 }
1982
1983 function buildClassName(prevClassName, currentLang, resultLang) {
1984 var language = currentLang ? aliases[currentLang] : resultLang,
1985 result = [prevClassName.trim()];
1986
1987 if (!prevClassName.match(/\bhljs\b/)) {
1988 result.push('hljs');
1989 }
1990
1991 if (prevClassName.indexOf(language) === -1) {
1992 result.push(language);
1993 }
1994
1995 return result.join(' ').trim();
1996 }
1997
1998 /*
1999 Applies highlighting to a DOM node containing code. Accepts a DOM node and
2000 two optional parameters for fixMarkup.
2001 */
2002 function highlightBlock(block) {
2003 var language = blockLanguage(block);
2004 if (isNotHighlighted(language))
2005 return;
2006
2007 var node;
2008 if (options.useBR) {
2009 node = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
2010 node.innerHTML = block.innerHTML.replace(/\n/g, '').replace(/<br[ \/]*>/g, '\n');
2011 } else {
2012 node = block;
2013 }
2014 var text = node.textContent;
2015 var result = language ? highlight(language, text, true) : highlightAuto(text);
2016
2017 var originalStream = nodeStream(node);
2018 if (originalStream.length) {
2019 var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
2020 resultNode.innerHTML = result.value;
2021 result.value = mergeStreams(originalStream, nodeStream(resultNode), text);
2022 }
2023 result.value = fixMarkup(result.value);
2024
2025 block.innerHTML = result.value;
2026 block.className = buildClassName(block.className, language, result.language);
2027 block.result = {
2028 language: result.language,
2029 re: result.relevance
2030 };
2031 if (result.second_best) {
2032 block.second_best = {
2033 language: result.second_best.language,
2034 re: result.second_best.relevance
2035 };
2036 }
2037 }
2038
2039 var options = {
2040 classPrefix: 'hljs-',
2041 tabReplace: null,
2042 useBR: false,
2043 languages: undefined
2044 };
2045
2046 /*
2047 Updates highlight.js global options with values passed in the form of an object
2048 */
2049 function configure(user_options) {
2050 options = inherit(options, user_options);
2051 }
2052
2053 /*
2054 Applies highlighting to all <pre><code>..</code></pre> blocks on a page.
2055 */
2056 function initHighlighting() {
2057 if (initHighlighting.called)
2058 return;
2059 initHighlighting.called = true;
2060
2061 var blocks = document.querySelectorAll('pre code');
2062 Array.prototype.forEach.call(blocks, highlightBlock);
2063 }
2064
2065 /*
2066 Attaches highlighting to the page load event.
2067 */
2068 function initHighlightingOnLoad() {
2069 addEventListener('DOMContentLoaded', initHighlighting, false);
2070 addEventListener('load', initHighlighting, false);
2071 }
2072
2073 var languages = {};
2074 var aliases = {};
2075
2076 function registerLanguage(name, language) {
2077 var lang = languages[name] = language(hljs);
2078 if (lang.aliases) {
2079 lang.aliases.forEach(function(alias) {aliases[alias] = name;});
2080 }
2081 }
2082
2083 function listLanguages() {
2084 return Object.keys(languages);
2085 }
2086
2087 function getLanguage(name) {
2088 name = (name || '').toLowerCase();
2089 return languages[name] || languages[aliases[name]];
2090 }
2091
2092 /* Interface definition */
2093
2094 hljs.highlight = highlight;
2095 hljs.highlightAuto = highlightAuto;
2096 hljs.fixMarkup = fixMarkup;
2097 hljs.highlightBlock = highlightBlock;
2098 hljs.configure = configure;
2099 hljs.initHighlighting = initHighlighting;
2100 hljs.initHighlightingOnLoad = initHighlightingOnLoad;
2101 hljs.registerLanguage = registerLanguage;
2102 hljs.listLanguages = listLanguages;
2103 hljs.getLanguage = getLanguage;
2104 hljs.inherit = inherit;
2105
2106 // Common regexps
2107 hljs.IDENT_RE = '[a-zA-Z]\\w*';
2108 hljs.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
2109 hljs.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
2110 hljs.C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
2111 hljs.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
2112 hljs.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
2113
2114 // Common modes
2115 hljs.BACKSLASH_ESCAPE = {
2116 begin: '\\\\[\\s\\S]', relevance: 0
2117 };
2118 hljs.APOS_STRING_MODE = {
2119 className: 'string',
2120 begin: '\'', end: '\'',
2121 illegal: '\\n',
2122 contains: [hljs.BACKSLASH_ESCAPE]
2123 };
2124 hljs.QUOTE_STRING_MODE = {
2125 className: 'string',
2126 begin: '"', end: '"',
2127 illegal: '\\n',
2128 contains: [hljs.BACKSLASH_ESCAPE]
2129 };
2130 hljs.PHRASAL_WORDS_MODE = {
2131 begin: /\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/
2132 };
2133 hljs.COMMENT = function (begin, end, inherits) {
2134 var mode = hljs.inherit(
2135 {
2136 className: 'comment',
2137 begin: begin, end: end,
2138 contains: []
2139 },
2140 inherits || {}
2141 );
2142 mode.contains.push(hljs.PHRASAL_WORDS_MODE);
2143 mode.contains.push({
2144 className: 'doctag',
2145 begin: "(?:TODO|FIXME|NOTE|BUG|XXX):",
2146 relevance: 0
2147 });
2148 return mode;
2149 };
2150 hljs.C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$');
2151 hljs.C_BLOCK_COMMENT_MODE = hljs.COMMENT('/\\*', '\\*/');
2152 hljs.HASH_COMMENT_MODE = hljs.COMMENT('#', '$');
2153 hljs.NUMBER_MODE = {
2154 className: 'number',
2155 begin: hljs.NUMBER_RE,
2156 relevance: 0
2157 };
2158 hljs.C_NUMBER_MODE = {
2159 className: 'number',
2160 begin: hljs.C_NUMBER_RE,
2161 relevance: 0
2162 };
2163 hljs.BINARY_NUMBER_MODE = {
2164 className: 'number',
2165 begin: hljs.BINARY_NUMBER_RE,
2166 relevance: 0
2167 };
2168 hljs.CSS_NUMBER_MODE = {
2169 className: 'number',
2170 begin: hljs.NUMBER_RE + '(' +
2171 '%|em|ex|ch|rem' +
2172 '|vw|vh|vmin|vmax' +
2173 '|cm|mm|in|pt|pc|px' +
2174 '|deg|grad|rad|turn' +
2175 '|s|ms' +
2176 '|Hz|kHz' +
2177 '|dpi|dpcm|dppx' +
2178 ')?',
2179 relevance: 0
2180 };
2181 hljs.REGEXP_MODE = {
2182 className: 'regexp',
2183 begin: /\//, end: /\/[gimuy]*/,
2184 illegal: /\n/,
2185 contains: [
2186 hljs.BACKSLASH_ESCAPE,
2187 {
2188 begin: /\[/, end: /\]/,
2189 relevance: 0,
2190 contains: [hljs.BACKSLASH_ESCAPE]
2191 }
2192 ]
2193 };
2194 hljs.TITLE_MODE = {
2195 className: 'title',
2196 begin: hljs.IDENT_RE,
2197 relevance: 0
2198 };
2199 hljs.UNDERSCORE_TITLE_MODE = {
2200 className: 'title',
2201 begin: hljs.UNDERSCORE_IDENT_RE,
2202 relevance: 0
2203 };
2204
2205 return hljs;
2206}));
2207;
2208 return exports;
2209 }())
2210 , languages = [{name:"1c",create:/*
2211Language: 1C
2212Author: Yuri Ivanov <ivanov@supersoft.ru>
2213Contributors: Sergey Baranov <segyrn@yandex.ru>
2214Category: enterprise
2215*/
2216
2217function(hljs){
2218 var IDENT_RE_RU = '[a-zA-Zะฐ-ัะ-ะฏ][a-zA-Z0-9_ะฐ-ัะ-ะฏ]*';
2219 var OneS_KEYWORDS = 'ะฒะพะทะฒั€ะฐั‚ ะดะฐั‚ะฐ ะดะปั ะตัะปะธ ะธ ะธะปะธ ะธะฝะฐั‡ะต ะธะฝะฐั‡ะตะตัะปะธ ะธัะบะปัŽั‡ะตะฝะธะต ะบะพะฝะตั†ะตัะปะธ ' +
2220 'ะบะพะฝะตั†ะฟะพะฟั‹ั‚ะบะธ ะบะพะฝะตั†ะฟั€ะพั†ะตะดัƒั€ั‹ ะบะพะฝะตั†ั„ัƒะฝะบั†ะธะธ ะบะพะฝะตั†ั†ะธะบะปะฐ ะบะพะฝัั‚ะฐะฝั‚ะฐ ะฝะต ะฟะตั€ะตะนั‚ะธ ะฟะตั€ะตะผ ' +
2221 'ะฟะตั€ะตั‡ะธัะปะตะฝะธะต ะฟะพ ะฟะพะบะฐ ะฟะพะฟั‹ั‚ะบะฐ ะฟั€ะตั€ะฒะฐั‚ัŒ ะฟั€ะพะดะพะปะถะธั‚ัŒ ะฟั€ะพั†ะตะดัƒั€ะฐ ัั‚ั€ะพะบะฐ ั‚ะพะณะดะฐ ั„ั ั„ัƒะฝะบั†ะธั ั†ะธะบะป ' +
2222 'ั‡ะธัะปะพ ัะบัะฟะพั€ั‚';
2223 var OneS_BUILT_IN = 'ansitooem oemtoansi ะฒะฒะตัั‚ะธะฒะธะดััƒะฑะบะพะฝั‚ะพ ะฒะฒะตัั‚ะธะดะฐั‚ัƒ ะฒะฒะตัั‚ะธะทะฝะฐั‡ะตะฝะธะต ' +
2224 'ะฒะฒะตัั‚ะธะฟะตั€ะตั‡ะธัะปะตะฝะธะต ะฒะฒะตัั‚ะธะฟะตั€ะธะพะด ะฒะฒะตัั‚ะธะฟะปะฐะฝัั‡ะตั‚ะพะฒ ะฒะฒะตัั‚ะธัั‚ั€ะพะบัƒ ะฒะฒะตัั‚ะธั‡ะธัะปะพ ะฒะพะฟั€ะพั ' +
2225 'ะฒะพััั‚ะฐะฝะพะฒะธั‚ัŒะทะฝะฐั‡ะตะฝะธะต ะฒั€ะตะณ ะฒั‹ะฑั€ะฐะฝะฝั‹ะนะฟะปะฐะฝัั‡ะตั‚ะพะฒ ะฒั‹ะทะฒะฐั‚ัŒะธัะบะปัŽั‡ะตะฝะธะต ะดะฐั‚ะฐะณะพะด ะดะฐั‚ะฐะผะตััั† ' +
2226 'ะดะฐั‚ะฐั‡ะธัะปะพ ะดะพะฑะฐะฒะธั‚ัŒะผะตััั† ะทะฐะฒะตั€ัˆะธั‚ัŒั€ะฐะฑะพั‚ัƒัะธัั‚ะตะผั‹ ะทะฐะณะพะปะพะฒะพะบัะธัั‚ะตะผั‹ ะทะฐะฟะธััŒะถัƒั€ะฝะฐะปะฐั€ะตะณะธัั‚ั€ะฐั†ะธะธ ' +
2227 'ะทะฐะฟัƒัั‚ะธั‚ัŒะฟั€ะธะปะพะถะตะฝะธะต ะทะฐั„ะธะบัะธั€ะพะฒะฐั‚ัŒั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ะทะฝะฐั‡ะตะฝะธะตะฒัั‚ั€ะพะบัƒ ะทะฝะฐั‡ะตะฝะธะตะฒัั‚ั€ะพะบัƒะฒะฝัƒั‚ั€ ' +
2228 'ะทะฝะฐั‡ะตะฝะธะตะฒั„ะฐะนะป ะทะฝะฐั‡ะตะฝะธะตะธะทัั‚ั€ะพะบะธ ะทะฝะฐั‡ะตะฝะธะตะธะทัั‚ั€ะพะบะธะฒะฝัƒั‚ั€ ะทะฝะฐั‡ะตะฝะธะตะธะทั„ะฐะนะปะฐ ะธะผัะบะพะผะฟัŒัŽั‚ะตั€ะฐ ' +
2229 'ะธะผัะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะบะฐั‚ะฐะปะพะณะฒั€ะตะผะตะฝะฝั‹ั…ั„ะฐะนะปะพะฒ ะบะฐั‚ะฐะปะพะณะธะฑ ะบะฐั‚ะฐะปะพะณะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะบะฐั‚ะฐะปะพะณะฟั€ะพะณั€ะฐะผะผั‹ ' +
2230 'ะบะพะดัะธะผะฒ ะบะพะผะฐะฝะดะฐัะธัั‚ะตะผั‹ ะบะพะฝะณะพะดะฐ ะบะพะฝะตั†ะฟะตั€ะธะพะดะฐะฑะธ ะบะพะฝะตั†ั€ะฐััั‡ะธั‚ะฐะฝะฝะพะณะพะฟะตั€ะธะพะดะฐะฑะธ ' +
2231 'ะบะพะฝะตั†ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะณะพะธะฝั‚ะตั€ะฒะฐะปะฐ ะบะพะฝะบะฒะฐั€ั‚ะฐะปะฐ ะบะพะฝะผะตััั†ะฐ ะบะพะฝะฝะตะดะตะปะธ ะปะตะฒ ะปะพะณ ะปะพะณ10 ะผะฐะบั ' +
2232 'ะผะฐะบัะธะผะฐะปัŒะฝะพะตะบะพะปะธั‡ะตัั‚ะฒะพััƒะฑะบะพะฝั‚ะพ ะผะธะฝ ะผะพะฝะพะฟะพะปัŒะฝั‹ะนั€ะตะถะธะผ ะฝะฐะทะฒะฐะฝะธะตะธะฝั‚ะตั€ั„ะตะนัะฐ ะฝะฐะทะฒะฐะฝะธะตะฝะฐะฑะพั€ะฐะฟั€ะฐะฒ ' +
2233 'ะฝะฐะทะฝะฐั‡ะธั‚ัŒะฒะธะด ะฝะฐะทะฝะฐั‡ะธั‚ัŒัั‡ะตั‚ ะฝะฐะนั‚ะธ ะฝะฐะนั‚ะธะฟะพะผะตั‡ะตะฝะฝั‹ะตะฝะฐัƒะดะฐะปะตะฝะธะต ะฝะฐะนั‚ะธััั‹ะปะบะธ ะฝะฐั‡ะฐะปะพะฟะตั€ะธะพะดะฐะฑะธ ' +
2234 'ะฝะฐั‡ะฐะปะพัั‚ะฐะฝะดะฐั€ั‚ะฝะพะณะพะธะฝั‚ะตั€ะฒะฐะปะฐ ะฝะฐั‡ะฐั‚ัŒั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ะฝะฐั‡ะณะพะดะฐ ะฝะฐั‡ะบะฒะฐั€ั‚ะฐะปะฐ ะฝะฐั‡ะผะตััั†ะฐ ะฝะฐั‡ะฝะตะดะตะปะธ ' +
2235 'ะฝะพะผะตั€ะดะฝัะณะพะดะฐ ะฝะพะผะตั€ะดะฝัะฝะตะดะตะปะธ ะฝะพะผะตั€ะฝะตะดะตะปะธะณะพะดะฐ ะฝั€ะตะณ ะพะฑั€ะฐะฑะพั‚ะบะฐะพะถะธะดะฐะฝะธั ะพะบั€ ะพะฟะธัะฐะฝะธะตะพัˆะธะฑะบะธ ' +
2236 'ะพัะฝะพะฒะฝะพะนะถัƒั€ะฝะฐะปั€ะฐัั‡ะตั‚ะพะฒ ะพัะฝะพะฒะฝะพะนะฟะปะฐะฝัั‡ะตั‚ะพะฒ ะพัะฝะพะฒะฝะพะนัะทั‹ะบ ะพั‚ะบั€ั‹ั‚ัŒั„ะพั€ะผัƒ ะพั‚ะบั€ั‹ั‚ัŒั„ะพั€ะผัƒะผะพะดะฐะปัŒะฝะพ ' +
2237 'ะพั‚ะผะตะฝะธั‚ัŒั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ะพั‡ะธัั‚ะธั‚ัŒะพะบะฝะพัะพะพะฑั‰ะตะฝะธะน ะฟะตั€ะธะพะดัั‚ั€ ะฟะพะปะฝะพะตะธะผัะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะฟะพะปัƒั‡ะธั‚ัŒะฒั€ะตะผัั‚ะฐ ' +
2238 'ะฟะพะปัƒั‡ะธั‚ัŒะดะฐั‚ัƒั‚ะฐ ะฟะพะปัƒั‡ะธั‚ัŒะดะพะบัƒะผะตะฝั‚ั‚ะฐ ะฟะพะปัƒั‡ะธั‚ัŒะทะฝะฐั‡ะตะฝะธัะพั‚ะฑะพั€ะฐ ะฟะพะปัƒั‡ะธั‚ัŒะฟะพะทะธั†ะธัŽั‚ะฐ ' +
2239 'ะฟะพะปัƒั‡ะธั‚ัŒะฟัƒัั‚ะพะตะทะฝะฐั‡ะตะฝะธะต ะฟะพะปัƒั‡ะธั‚ัŒั‚ะฐ ะฟั€ะฐะฒ ะฟั€ะฐะฒะพะดะพัั‚ัƒะฟะฐ ะฟั€ะตะดัƒะฟั€ะตะถะดะตะฝะธะต ะฟั€ะตั„ะธะบัะฐะฒั‚ะพะฝัƒะผะตั€ะฐั†ะธะธ ' +
2240 'ะฟัƒัั‚ะฐััั‚ั€ะพะบะฐ ะฟัƒัั‚ะพะตะทะฝะฐั‡ะตะฝะธะต ั€ะฐะฑะพั‡ะฐัะดะฐั‚ั‚ัŒะฟัƒัั‚ะพะตะทะฝะฐั‡ะตะฝะธะต ั€ะฐะฑะพั‡ะฐัะดะฐั‚ะฐ ั€ะฐะทะดะตะปะธั‚ะตะปัŒัั‚ั€ะฐะฝะธั† ' +
2241 'ั€ะฐะทะดะตะปะธั‚ะตะปัŒัั‚ั€ะพะบ ั€ะฐะทะผ ั€ะฐะทะพะฑั€ะฐั‚ัŒะฟะพะทะธั†ะธัŽะดะพะบัƒะผะตะฝั‚ะฐ ั€ะฐััั‡ะธั‚ะฐั‚ัŒั€ะตะณะธัั‚ั€ั‹ะฝะฐ ' +
2242 'ั€ะฐััั‡ะธั‚ะฐั‚ัŒั€ะตะณะธัั‚ั€ั‹ะฟะพ ัะธะณะฝะฐะป ัะธะผะฒ ัะธะผะฒะพะปั‚ะฐะฑัƒะปัั†ะธะธ ัะพะทะดะฐั‚ัŒะพะฑัŠะตะบั‚ ัะพะบั€ะป ัะพะบั€ะปะฟ ัะพะบั€ะฟ ' +
2243 'ัะพะพะฑั‰ะธั‚ัŒ ัะพัั‚ะพัะฝะธะต ัะพั…ั€ะฐะฝะธั‚ัŒะทะฝะฐั‡ะตะฝะธะต ัั€ะตะด ัั‚ะฐั‚ัƒัะฒะพะทะฒั€ะฐั‚ะฐ ัั‚ั€ะดะปะธะฝะฐ ัั‚ั€ะทะฐะผะตะฝะธั‚ัŒ ' +
2244 'ัั‚ั€ะบะพะปะธั‡ะตัั‚ะฒะพัั‚ั€ะพะบ ัั‚ั€ะฟะพะปัƒั‡ะธั‚ัŒัั‚ั€ะพะบัƒ ัั‚ั€ั‡ะธัะปะพะฒั…ะพะถะดะตะฝะธะน ัั„ะพั€ะผะธั€ะพะฒะฐั‚ัŒะฟะพะทะธั†ะธัŽะดะพะบัƒะผะตะฝั‚ะฐ ' +
2245 'ัั‡ะตั‚ะฟะพะบะพะดัƒ ั‚ะตะบัƒั‰ะฐัะดะฐั‚ะฐ ั‚ะตะบัƒั‰ะตะตะฒั€ะตะผั ั‚ะธะฟะทะฝะฐั‡ะตะฝะธั ั‚ะธะฟะทะฝะฐั‡ะตะฝะธััั‚ั€ ัƒะดะฐะปะธั‚ัŒะพะฑัŠะตะบั‚ั‹ ' +
2246 'ัƒัั‚ะฐะฝะพะฒะธั‚ัŒั‚ะฐะฝะฐ ัƒัั‚ะฐะฝะพะฒะธั‚ัŒั‚ะฐะฟะพ ั„ะธะบััˆะฐะฑะปะพะฝ ั„ะพั€ะผะฐั‚ ั†ะตะป ัˆะฐะฑะปะพะฝ';
2247 var DQUOTE = {begin: '""'};
2248 var STR_START = {
2249 className: 'string',
2250 begin: '"', end: '"|$',
2251 contains: [DQUOTE]
2252 };
2253 var STR_CONT = {
2254 className: 'string',
2255 begin: '\\|', end: '"|$',
2256 contains: [DQUOTE]
2257 };
2258
2259 return {
2260 case_insensitive: true,
2261 lexemes: IDENT_RE_RU,
2262 keywords: {keyword: OneS_KEYWORDS, built_in: OneS_BUILT_IN},
2263 contains: [
2264 hljs.C_LINE_COMMENT_MODE,
2265 hljs.NUMBER_MODE,
2266 STR_START, STR_CONT,
2267 {
2268 className: 'function',
2269 begin: '(ะฟั€ะพั†ะตะดัƒั€ะฐ|ั„ัƒะฝะบั†ะธั)', end: '$',
2270 lexemes: IDENT_RE_RU,
2271 keywords: 'ะฟั€ะพั†ะตะดัƒั€ะฐ ั„ัƒะฝะบั†ะธั',
2272 contains: [
2273 {
2274 begin: 'ัะบัะฟะพั€ั‚', endsWithParent: true,
2275 lexemes: IDENT_RE_RU,
2276 keywords: 'ัะบัะฟะพั€ั‚',
2277 contains: [hljs.C_LINE_COMMENT_MODE]
2278 },
2279 {
2280 className: 'params',
2281 begin: '\\(', end: '\\)',
2282 lexemes: IDENT_RE_RU,
2283 keywords: 'ะทะฝะฐั‡',
2284 contains: [STR_START, STR_CONT]
2285 },
2286 hljs.C_LINE_COMMENT_MODE,
2287 hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE_RU})
2288 ]
2289 },
2290 {className: 'meta', begin: '#', end: '$'},
2291 {className: 'number', begin: '\'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})\''} // date
2292 ]
2293 };
2294}
2295},{name:"accesslog",create:/*
2296 Language: Access log
2297 Author: Oleg Efimov <efimovov@gmail.com>
2298 Description: Apache/Nginx Access Logs
2299 */
2300
2301function(hljs) {
2302 return {
2303 contains: [
2304 // IP
2305 {
2306 className: 'number',
2307 begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
2308 },
2309 // Other numbers
2310 {
2311 className: 'number',
2312 begin: '\\b\\d+\\b',
2313 relevance: 0
2314 },
2315 // Requests
2316 {
2317 className: 'string',
2318 begin: '"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)', end: '"',
2319 keywords: 'GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE',
2320 illegal: '\\n',
2321 relevance: 10
2322 },
2323 // Dates
2324 {
2325 className: 'string',
2326 begin: /\[/, end: /\]/,
2327 illegal: '\\n'
2328 },
2329 // Strings
2330 {
2331 className: 'string',
2332 begin: '"', end: '"',
2333 illegal: '\\n'
2334 }
2335 ]
2336 };
2337}
2338},{name:"actionscript",create:/*
2339Language: ActionScript
2340Author: Alexander Myadzel <myadzel@gmail.com>
2341Category: scripting
2342*/
2343
2344function(hljs) {
2345 var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
2346 var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
2347
2348 var AS3_REST_ARG_MODE = {
2349 className: 'rest_arg',
2350 begin: '[.]{3}', end: IDENT_RE,
2351 relevance: 10
2352 };
2353
2354 return {
2355 aliases: ['as'],
2356 keywords: {
2357 keyword: 'as break case catch class const continue default delete do dynamic each ' +
2358 'else extends final finally for function get if implements import in include ' +
2359 'instanceof interface internal is namespace native new override package private ' +
2360 'protected public return set static super switch this throw try typeof use var void ' +
2361 'while with',
2362 literal: 'true false null undefined'
2363 },
2364 contains: [
2365 hljs.APOS_STRING_MODE,
2366 hljs.QUOTE_STRING_MODE,
2367 hljs.C_LINE_COMMENT_MODE,
2368 hljs.C_BLOCK_COMMENT_MODE,
2369 hljs.C_NUMBER_MODE,
2370 {
2371 className: 'class',
2372 beginKeywords: 'package', end: '{',
2373 contains: [hljs.TITLE_MODE]
2374 },
2375 {
2376 className: 'class',
2377 beginKeywords: 'class interface', end: '{', excludeEnd: true,
2378 contains: [
2379 {
2380 beginKeywords: 'extends implements'
2381 },
2382 hljs.TITLE_MODE
2383 ]
2384 },
2385 {
2386 className: 'meta',
2387 beginKeywords: 'import include', end: ';',
2388 keywords: {'meta-keyword': 'import include'}
2389 },
2390 {
2391 className: 'function',
2392 beginKeywords: 'function', end: '[{;]', excludeEnd: true,
2393 illegal: '\\S',
2394 contains: [
2395 hljs.TITLE_MODE,
2396 {
2397 className: 'params',
2398 begin: '\\(', end: '\\)',
2399 contains: [
2400 hljs.APOS_STRING_MODE,
2401 hljs.QUOTE_STRING_MODE,
2402 hljs.C_LINE_COMMENT_MODE,
2403 hljs.C_BLOCK_COMMENT_MODE,
2404 AS3_REST_ARG_MODE
2405 ]
2406 },
2407 {
2408 begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
2409 }
2410 ]
2411 }
2412 ],
2413 illegal: /#/
2414 };
2415}
2416},{name:"apache",create:/*
2417Language: Apache
2418Author: Ruslan Keba <rukeba@gmail.com>
2419Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
2420Website: http://rukeba.com/
2421Description: language definition for Apache configuration files (httpd.conf & .htaccess)
2422Category: common, config
2423*/
2424
2425function(hljs) {
2426 var NUMBER = {className: 'number', begin: '[\\$%]\\d+'};
2427 return {
2428 aliases: ['apacheconf'],
2429 case_insensitive: true,
2430 contains: [
2431 hljs.HASH_COMMENT_MODE,
2432 {className: 'section', begin: '</?', end: '>'},
2433 {
2434 className: 'attribute',
2435 begin: /\w+/,
2436 relevance: 0,
2437 // keywords arenโ€™t needed for highlighting per se, they only boost relevance
2438 // for a very generally defined mode (starts with a word, ends with line-end
2439 keywords: {
2440 nomarkup:
2441 'order deny allow setenv rewriterule rewriteengine rewritecond documentroot ' +
2442 'sethandler errordocument loadmodule options header listen serverroot ' +
2443 'servername'
2444 },
2445 starts: {
2446 end: /$/,
2447 relevance: 0,
2448 keywords: {
2449 literal: 'on off all'
2450 },
2451 contains: [
2452 {
2453 className: 'meta',
2454 begin: '\\s\\[', end: '\\]$'
2455 },
2456 {
2457 className: 'variable',
2458 begin: '[\\$%]\\{', end: '\\}',
2459 contains: ['self', NUMBER]
2460 },
2461 NUMBER,
2462 hljs.QUOTE_STRING_MODE
2463 ]
2464 }
2465 }
2466 ],
2467 illegal: /\S/
2468 };
2469}
2470},{name:"applescript",create:/*
2471Language: AppleScript
2472Authors: Nathan Grigg <nathan@nathanamy.org>, Dr. Drang <drdrang@gmail.com>
2473Category: scripting
2474*/
2475
2476function(hljs) {
2477 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: ''});
2478 var PARAMS = {
2479 className: 'params',
2480 begin: '\\(', end: '\\)',
2481 contains: ['self', hljs.C_NUMBER_MODE, STRING]
2482 };
2483 var COMMENT_MODE_1 = hljs.COMMENT('--', '$');
2484 var COMMENT_MODE_2 = hljs.COMMENT(
2485 '\\(\\*',
2486 '\\*\\)',
2487 {
2488 contains: ['self', COMMENT_MODE_1] //allow nesting
2489 }
2490 );
2491 var COMMENTS = [
2492 COMMENT_MODE_1,
2493 COMMENT_MODE_2,
2494 hljs.HASH_COMMENT_MODE
2495 ];
2496
2497 return {
2498 aliases: ['osascript'],
2499 keywords: {
2500 keyword:
2501 'about above after against and around as at back before beginning ' +
2502 'behind below beneath beside between but by considering ' +
2503 'contain contains continue copy div does eighth else end equal ' +
2504 'equals error every exit fifth first for fourth from front ' +
2505 'get given global if ignoring in into is it its last local me ' +
2506 'middle mod my ninth not of on onto or over prop property put ref ' +
2507 'reference repeat returning script second set seventh since ' +
2508 'sixth some tell tenth that the|0 then third through thru ' +
2509 'timeout times to transaction try until where while whose with ' +
2510 'without',
2511 literal:
2512 'AppleScript false linefeed return pi quote result space tab true',
2513 built_in:
2514 'alias application boolean class constant date file integer list ' +
2515 'number real record string text ' +
2516 'activate beep count delay launch log offset read round ' +
2517 'run say summarize write ' +
2518 'character characters contents day frontmost id item length ' +
2519 'month name paragraph paragraphs rest reverse running time version ' +
2520 'weekday word words year'
2521 },
2522 contains: [
2523 STRING,
2524 hljs.C_NUMBER_MODE,
2525 {
2526 className: 'built_in',
2527 begin:
2528 '\\b(clipboard info|the clipboard|info for|list (disks|folder)|' +
2529 'mount volume|path to|(close|open for) access|(get|set) eof|' +
2530 'current date|do shell script|get volume settings|random number|' +
2531 'set volume|system attribute|system info|time to GMT|' +
2532 '(load|run|store) script|scripting components|' +
2533 'ASCII (character|number)|localized string|' +
2534 'choose (application|color|file|file name|' +
2535 'folder|from list|remote application|URL)|' +
2536 'display (alert|dialog))\\b|^\\s*return\\b'
2537 },
2538 {
2539 className: 'literal',
2540 begin:
2541 '\\b(text item delimiters|current application|missing value)\\b'
2542 },
2543 {
2544 className: 'keyword',
2545 begin:
2546 '\\b(apart from|aside from|instead of|out of|greater than|' +
2547 "isn't|(doesn't|does not) (equal|come before|come after|contain)|" +
2548 '(greater|less) than( or equal)?|(starts?|ends|begins?) with|' +
2549 'contained by|comes (before|after)|a (ref|reference)|POSIX file|' +
2550 'POSIX path|(date|time) string|quoted form)\\b'
2551 },
2552 {
2553 beginKeywords: 'on',
2554 illegal: '[${=;\\n]',
2555 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
2556 }
2557 ].concat(COMMENTS),
2558 illegal: '//|->|=>|\\[\\['
2559 };
2560}
2561},{name:"armasm",create:/*
2562Language: ARM Assembly
2563Author: Dan Panzarella <alsoelp@gmail.com>
2564Description: ARM Assembly including Thumb and Thumb2 instructions
2565Category: assembler
2566*/
2567
2568function(hljs) {
2569 //local labels: %?[FB]?[AT]?\d{1,2}\w+
2570 return {
2571 case_insensitive: true,
2572 aliases: ['arm'],
2573 lexemes: '\\.?' + hljs.IDENT_RE,
2574 keywords: {
2575 meta:
2576 //GNU preprocs
2577 '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg '+
2578 //ARM directives
2579 'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',
2580 built_in:
2581 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 '+ //standard registers
2582 'pc lr sp ip sl sb fp '+ //typical regs plus backward compatibility
2583 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 '+ //more regs and fp
2584 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 '+ //coprocessor regs
2585 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 '+ //more coproc
2586 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 '+ //advanced SIMD NEON regs
2587
2588 //program status registers
2589 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '+
2590 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '+
2591
2592 //NEON and VFP registers
2593 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '+
2594 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '+
2595 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '+
2596 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +
2597
2598 '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'
2599 },
2600 contains: [
2601 {
2602 className: 'keyword',
2603 begin: '\\b('+ //mnemonics
2604 'adc|'+
2605 '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'+
2606 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'+
2607 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'+
2608 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'+
2609 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'+
2610 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'+
2611 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'+
2612 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'+
2613 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'+
2614 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'+
2615 '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'+
2616 'wfe|wfi|yield'+
2617 ')'+
2618 '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?'+ //condition codes
2619 '[sptrx]?' , //legal postfixes
2620 end: '\\s'
2621 },
2622 hljs.COMMENT('[;@]', '$', {relevance: 0}),
2623 hljs.C_BLOCK_COMMENT_MODE,
2624 hljs.QUOTE_STRING_MODE,
2625 {
2626 className: 'string',
2627 begin: '\'',
2628 end: '[^\\\\]\'',
2629 relevance: 0
2630 },
2631 {
2632 className: 'title',
2633 begin: '\\|', end: '\\|',
2634 illegal: '\\n',
2635 relevance: 0
2636 },
2637 {
2638 className: 'number',
2639 variants: [
2640 {begin: '[#$=]?0x[0-9a-f]+'}, //hex
2641 {begin: '[#$=]?0b[01]+'}, //bin
2642 {begin: '[#$=]\\d+'}, //literal
2643 {begin: '\\b\\d+'} //bare number
2644 ],
2645 relevance: 0
2646 },
2647 {
2648 className: 'symbol',
2649 variants: [
2650 {begin: '^[a-z_\\.\\$][a-z0-9_\\.\\$]+'}, //ARM syntax
2651 {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU ARM syntax
2652 {begin: '[=#]\\w+' } //label reference
2653 ],
2654 relevance: 0
2655 }
2656 ]
2657 };
2658}
2659},{name:"asciidoc",create:/*
2660Language: AsciiDoc
2661Requires: xml.js
2662Author: Dan Allen <dan.j.allen@gmail.com>
2663Website: http://google.com/profiles/dan.j.allen
2664Description: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.
2665Category: markup
2666*/
2667
2668function(hljs) {
2669 return {
2670 aliases: ['adoc'],
2671 contains: [
2672 // block comment
2673 hljs.COMMENT(
2674 '^/{4,}\\n',
2675 '\\n/{4,}$',
2676 // can also be done as...
2677 //'^/{4,}$',
2678 //'^/{4,}$',
2679 {
2680 relevance: 10
2681 }
2682 ),
2683 // line comment
2684 hljs.COMMENT(
2685 '^//',
2686 '$',
2687 {
2688 relevance: 0
2689 }
2690 ),
2691 // title
2692 {
2693 className: 'title',
2694 begin: '^\\.\\w.*$'
2695 },
2696 // example, admonition & sidebar blocks
2697 {
2698 begin: '^[=\\*]{4,}\\n',
2699 end: '\\n^[=\\*]{4,}$',
2700 relevance: 10
2701 },
2702 // headings
2703 {
2704 className: 'section',
2705 relevance: 10,
2706 variants: [
2707 {begin: '^(={1,5}) .+?( \\1)?$'},
2708 {begin: '^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$'},
2709 ]
2710 },
2711 // document attributes
2712 {
2713 className: 'meta',
2714 begin: '^:.+?:',
2715 end: '\\s',
2716 excludeEnd: true,
2717 relevance: 10
2718 },
2719 // block attributes
2720 {
2721 className: 'meta',
2722 begin: '^\\[.+?\\]$',
2723 relevance: 0
2724 },
2725 // quoteblocks
2726 {
2727 className: 'quote',
2728 begin: '^_{4,}\\n',
2729 end: '\\n_{4,}$',
2730 relevance: 10
2731 },
2732 // listing and literal blocks
2733 {
2734 className: 'code',
2735 begin: '^[\\-\\.]{4,}\\n',
2736 end: '\\n[\\-\\.]{4,}$',
2737 relevance: 10
2738 },
2739 // passthrough blocks
2740 {
2741 begin: '^\\+{4,}\\n',
2742 end: '\\n\\+{4,}$',
2743 contains: [
2744 {
2745 begin: '<', end: '>',
2746 subLanguage: 'xml',
2747 relevance: 0
2748 }
2749 ],
2750 relevance: 10
2751 },
2752 // lists (can only capture indicators)
2753 {
2754 className: 'bullet',
2755 begin: '^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+'
2756 },
2757 // admonition
2758 {
2759 className: 'symbol',
2760 begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+',
2761 relevance: 10
2762 },
2763 // inline strong
2764 {
2765 className: 'strong',
2766 // must not follow a word character or be followed by an asterisk or space
2767 begin: '\\B\\*(?![\\*\\s])',
2768 end: '(\\n{2}|\\*)',
2769 // allow escaped asterisk followed by word char
2770 contains: [
2771 {
2772 begin: '\\\\*\\w',
2773 relevance: 0
2774 }
2775 ]
2776 },
2777 // inline emphasis
2778 {
2779 className: 'emphasis',
2780 // must not follow a word character or be followed by a single quote or space
2781 begin: '\\B\'(?![\'\\s])',
2782 end: '(\\n{2}|\')',
2783 // allow escaped single quote followed by word char
2784 contains: [
2785 {
2786 begin: '\\\\\'\\w',
2787 relevance: 0
2788 }
2789 ],
2790 relevance: 0
2791 },
2792 // inline emphasis (alt)
2793 {
2794 className: 'emphasis',
2795 // must not follow a word character or be followed by an underline or space
2796 begin: '_(?![_\\s])',
2797 end: '(\\n{2}|_)',
2798 relevance: 0
2799 },
2800 // inline smart quotes
2801 {
2802 className: 'string',
2803 variants: [
2804 {begin: "``.+?''"},
2805 {begin: "`.+?'"}
2806 ]
2807 },
2808 // inline code snippets (TODO should get same treatment as strong and emphasis)
2809 {
2810 className: 'code',
2811 begin: '(`.+?`|\\+.+?\\+)',
2812 relevance: 0
2813 },
2814 // indented literal block
2815 {
2816 className: 'code',
2817 begin: '^[ \\t]',
2818 end: '$',
2819 relevance: 0
2820 },
2821 // horizontal rules
2822 {
2823 begin: '^\'{3,}[ \\t]*$',
2824 relevance: 10
2825 },
2826 // images and links
2827 {
2828 begin: '(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]',
2829 returnBegin: true,
2830 contains: [
2831 {
2832 begin: '(link|image:?):',
2833 relevance: 0
2834 },
2835 {
2836 className: 'link',
2837 begin: '\\w',
2838 end: '[^\\[]+',
2839 relevance: 0
2840 },
2841 {
2842 className: 'string',
2843 begin: '\\[',
2844 end: '\\]',
2845 excludeBegin: true,
2846 excludeEnd: true,
2847 relevance: 0
2848 }
2849 ],
2850 relevance: 10
2851 }
2852 ]
2853 };
2854}
2855},{name:"aspectj",create:/*
2856Language: AspectJ
2857Author: Hakan Ozler <ozler.hakan@gmail.com>
2858Description: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.
2859 */
2860function (hljs) {
2861 var KEYWORDS =
2862 'false synchronized int abstract float private char boolean static null if const ' +
2863 'for true while long throw strictfp finally protected import native final return void ' +
2864 'enum else extends implements break transient new catch instanceof byte super volatile case ' +
2865 'assert short package default double public try this switch continue throws privileged ' +
2866 'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' +
2867 'staticinitialization withincode target within execution getWithinTypeName handler ' +
2868 'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents '+
2869 'warning error soft precedence thisAspectInstance';
2870 var SHORTKEYS = 'get set args call';
2871 return {
2872 keywords : KEYWORDS,
2873 illegal : /<\/|#/,
2874 contains : [
2875 hljs.COMMENT(
2876 '/\\*\\*',
2877 '\\*/',
2878 {
2879 relevance : 0,
2880 contains : [
2881 {
2882 // eat up @'s in emails to prevent them to be recognized as doctags
2883 begin: /\w+@/, relevance: 0
2884 },
2885 {
2886 className : 'doctag',
2887 begin : '@[A-Za-z]+'
2888 }
2889 ]
2890 }
2891 ),
2892 hljs.C_LINE_COMMENT_MODE,
2893 hljs.C_BLOCK_COMMENT_MODE,
2894 hljs.APOS_STRING_MODE,
2895 hljs.QUOTE_STRING_MODE,
2896 {
2897 className : 'class',
2898 beginKeywords : 'aspect',
2899 end : /[{;=]/,
2900 excludeEnd : true,
2901 illegal : /[:;"\[\]]/,
2902 contains : [
2903 {
2904 beginKeywords : 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'
2905 },
2906 hljs.UNDERSCORE_TITLE_MODE,
2907 {
2908 begin : /\([^\)]*/,
2909 end : /[)]+/,
2910 keywords : KEYWORDS + ' ' + SHORTKEYS,
2911 excludeEnd : false
2912 }
2913 ]
2914 },
2915 {
2916 className : 'class',
2917 beginKeywords : 'class interface',
2918 end : /[{;=]/,
2919 excludeEnd : true,
2920 relevance: 0,
2921 keywords : 'class interface',
2922 illegal : /[:"\[\]]/,
2923 contains : [
2924 {beginKeywords : 'extends implements'},
2925 hljs.UNDERSCORE_TITLE_MODE
2926 ]
2927 },
2928 {
2929 // AspectJ Constructs
2930 beginKeywords : 'pointcut after before around throwing returning',
2931 end : /[)]/,
2932 excludeEnd : false,
2933 illegal : /["\[\]]/,
2934 contains : [
2935 {
2936 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
2937 returnBegin : true,
2938 contains : [hljs.UNDERSCORE_TITLE_MODE]
2939 }
2940 ]
2941 },
2942 {
2943 begin : /[:]/,
2944 returnBegin : true,
2945 end : /[{;]/,
2946 relevance: 0,
2947 excludeEnd : false,
2948 keywords : KEYWORDS,
2949 illegal : /["\[\]]/,
2950 contains : [
2951 {
2952 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
2953 keywords : KEYWORDS + ' ' + SHORTKEYS
2954 },
2955 hljs.QUOTE_STRING_MODE
2956 ]
2957 },
2958 {
2959 // this prevents 'new Name(...), or throw ...' from being recognized as a function definition
2960 beginKeywords : 'new throw',
2961 relevance : 0
2962 },
2963 {
2964 // the function class is a bit different for AspectJ compared to the Java language
2965 className : 'function',
2966 begin : /\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,
2967 returnBegin : true,
2968 end : /[{;=]/,
2969 keywords : KEYWORDS,
2970 excludeEnd : true,
2971 contains : [
2972 {
2973 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
2974 returnBegin : true,
2975 relevance: 0,
2976 contains : [hljs.UNDERSCORE_TITLE_MODE]
2977 },
2978 {
2979 className : 'params',
2980 begin : /\(/, end : /\)/,
2981 relevance: 0,
2982 keywords : KEYWORDS,
2983 contains : [
2984 hljs.APOS_STRING_MODE,
2985 hljs.QUOTE_STRING_MODE,
2986 hljs.C_NUMBER_MODE,
2987 hljs.C_BLOCK_COMMENT_MODE
2988 ]
2989 },
2990 hljs.C_LINE_COMMENT_MODE,
2991 hljs.C_BLOCK_COMMENT_MODE
2992 ]
2993 },
2994 hljs.C_NUMBER_MODE,
2995 {
2996 // annotation is also used in this language
2997 className : 'meta',
2998 begin : '@[A-Za-z]+'
2999 }
3000 ]
3001 };
3002}
3003},{name:"autohotkey",create:/*
3004Language: AutoHotkey
3005Author: Seongwon Lee <dlimpid@gmail.com>
3006Description: AutoHotkey language definition
3007Category: scripting
3008*/
3009
3010function(hljs) {
3011 var BACKTICK_ESCAPE = {
3012 begin: /`[\s\S]/
3013 };
3014
3015 return {
3016 case_insensitive: true,
3017 keywords: {
3018 keyword: 'Break Continue Else Gosub If Loop Return While',
3019 literal: 'A true false NOT AND OR',
3020 built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel',
3021 },
3022 contains: [
3023 {
3024 className: 'built_in',
3025 begin: 'A_[a-zA-Z0-9]+'
3026 },
3027 BACKTICK_ESCAPE,
3028 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}),
3029 hljs.COMMENT(';', '$', {relevance: 0}),
3030 {
3031 className: 'number',
3032 begin: hljs.NUMBER_RE,
3033 relevance: 0
3034 },
3035 {
3036 className: 'variable', // FIXME
3037 begin: '%', end: '%',
3038 illegal: '\\n',
3039 contains: [BACKTICK_ESCAPE]
3040 },
3041 {
3042 className: 'symbol',
3043 contains: [BACKTICK_ESCAPE],
3044 variants: [
3045 {begin: '^[^\\n";]+::(?!=)'},
3046 {begin: '^[^\\n";]+:(?!=)', relevance: 0} // zero relevance as it catches a lot of things
3047 // followed by a single ':' in many languages
3048 ]
3049 },
3050 {
3051 // consecutive commas, not for highlighting but just for relevance
3052 begin: ',\\s*,'
3053 }
3054 ]
3055 }
3056}
3057},{name:"autoit",create:/*
3058Language: AutoIt
3059Author: Manh Tuan <junookyo@gmail.com>
3060Description: AutoIt language definition
3061Category: scripting
3062*/
3063
3064function(hljs) {
3065 var KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' +
3066 'Default Dim Do Else ElseIf EndFunc EndIf EndSelect ' +
3067 'EndSwitch EndWith Enum Exit ExitLoop For Func ' +
3068 'Global If In Local Next ReDim Return Select Static ' +
3069 'Step Switch Then To Until Volatile WEnd While With',
3070
3071 LITERAL = 'True False And Null Not Or',
3072
3073 BUILT_IN = 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin ' +
3074 'Assign ATan AutoItSetOption AutoItWinGetTitle ' +
3075 'AutoItWinSetTitle Beep Binary BinaryLen BinaryMid ' +
3076 'BinaryToString BitAND BitNOT BitOR BitRotate BitShift ' +
3077 'BitXOR BlockInput Break Call CDTray Ceiling Chr ' +
3078 'ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ' +
3079 'ConsoleWriteError ControlClick ControlCommand ' +
3080 'ControlDisable ControlEnable ControlFocus ControlGetFocus ' +
3081 'ControlGetHandle ControlGetPos ControlGetText ControlHide ' +
3082 'ControlListView ControlMove ControlSend ControlSetText ' +
3083 'ControlShow ControlTreeView Cos Dec DirCopy DirCreate ' +
3084 'DirGetSize DirMove DirRemove DllCall DllCallAddress ' +
3085 'DllCallbackFree DllCallbackGetPtr DllCallbackRegister ' +
3086 'DllClose DllOpen DllStructCreate DllStructGetData ' +
3087 'DllStructGetPtr DllStructGetSize DllStructSetData ' +
3088 'DriveGetDrive DriveGetFileSystem DriveGetLabel ' +
3089 'DriveGetSerial DriveGetType DriveMapAdd DriveMapDel ' +
3090 'DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal ' +
3091 'DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp ' +
3092 'FileChangeDir FileClose FileCopy FileCreateNTFSLink ' +
3093 'FileCreateShortcut FileDelete FileExists FileFindFirstFile ' +
3094 'FileFindNextFile FileFlush FileGetAttrib FileGetEncoding ' +
3095 'FileGetLongName FileGetPos FileGetShortcut FileGetShortName ' +
3096 'FileGetSize FileGetTime FileGetVersion FileInstall ' +
3097 'FileMove FileOpen FileOpenDialog FileRead FileReadLine ' +
3098 'FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog ' +
3099 'FileSelectFolder FileSetAttrib FileSetEnd FileSetPos ' +
3100 'FileSetTime FileWrite FileWriteLine Floor FtpSetProxy ' +
3101 'FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton ' +
3102 'GUICtrlCreateCheckbox GUICtrlCreateCombo ' +
3103 'GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy ' +
3104 'GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup ' +
3105 'GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel ' +
3106 'GUICtrlCreateList GUICtrlCreateListView ' +
3107 'GUICtrlCreateListViewItem GUICtrlCreateMenu ' +
3108 'GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj ' +
3109 'GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio ' +
3110 'GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem ' +
3111 'GUICtrlCreateTreeView GUICtrlCreateTreeViewItem ' +
3112 'GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle ' +
3113 'GUICtrlGetState GUICtrlRead GUICtrlRecvMsg ' +
3114 'GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy ' +
3115 'GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor ' +
3116 'GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor ' +
3117 'GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage ' +
3118 'GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos ' +
3119 'GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle ' +
3120 'GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg ' +
3121 'GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor ' +
3122 'GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon ' +
3123 'GUISetOnEvent GUISetState GUISetStyle GUIStartGroup ' +
3124 'GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent ' +
3125 'HWnd InetClose InetGet InetGetInfo InetGetSize InetRead ' +
3126 'IniDelete IniRead IniReadSection IniReadSectionNames ' +
3127 'IniRenameSection IniWrite IniWriteSection InputBox Int ' +
3128 'IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct ' +
3129 'IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj ' +
3130 'IsPtr IsString Log MemGetStats Mod MouseClick ' +
3131 'MouseClickDrag MouseDown MouseGetCursor MouseGetPos ' +
3132 'MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ' +
3133 'ObjCreateInterface ObjEvent ObjGet ObjName ' +
3134 'OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping ' +
3135 'PixelChecksum PixelGetColor PixelSearch ProcessClose ' +
3136 'ProcessExists ProcessGetStats ProcessList ' +
3137 'ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ' +
3138 'ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey ' +
3139 'RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait ' +
3140 'RunWait Send SendKeepActive SetError SetExtended ' +
3141 'ShellExecute ShellExecuteWait Shutdown Sin Sleep ' +
3142 'SoundPlay SoundSetWaveVolume SplashImageOn SplashOff ' +
3143 'SplashTextOn Sqrt SRandom StatusbarGetText StderrRead ' +
3144 'StdinWrite StdioClose StdoutRead String StringAddCR ' +
3145 'StringCompare StringFormat StringFromASCIIArray StringInStr ' +
3146 'StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit ' +
3147 'StringIsFloat StringIsInt StringIsLower StringIsSpace ' +
3148 'StringIsUpper StringIsXDigit StringLeft StringLen ' +
3149 'StringLower StringMid StringRegExp StringRegExpReplace ' +
3150 'StringReplace StringReverse StringRight StringSplit ' +
3151 'StringStripCR StringStripWS StringToASCIIArray ' +
3152 'StringToBinary StringTrimLeft StringTrimRight StringUpper ' +
3153 'Tan TCPAccept TCPCloseSocket TCPConnect TCPListen ' +
3154 'TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup ' +
3155 'TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu ' +
3156 'TrayGetMsg TrayItemDelete TrayItemGetHandle ' +
3157 'TrayItemGetState TrayItemGetText TrayItemSetOnEvent ' +
3158 'TrayItemSetState TrayItemSetText TraySetClick TraySetIcon ' +
3159 'TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip ' +
3160 'TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv ' +
3161 'UDPSend UDPShutdown UDPStartup VarGetType WinActivate ' +
3162 'WinActive WinClose WinExists WinFlash WinGetCaretPos ' +
3163 'WinGetClassList WinGetClientSize WinGetHandle WinGetPos ' +
3164 'WinGetProcess WinGetState WinGetText WinGetTitle WinKill ' +
3165 'WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo ' +
3166 'WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans ' +
3167 'WinWait WinWaitActive WinWaitClose WinWaitNotActive ' +
3168 'Array1DToHistogram ArrayAdd ArrayBinarySearch ' +
3169 'ArrayColDelete ArrayColInsert ArrayCombinations ' +
3170 'ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ' +
3171 'ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ' +
3172 'ArrayMinIndex ArrayPermute ArrayPop ArrayPush ' +
3173 'ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ' +
3174 'ArrayToClip ArrayToString ArrayTranspose ArrayTrim ' +
3175 'ArrayUnique Assert ChooseColor ChooseFont ' +
3176 'ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ' +
3177 'ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ' +
3178 'ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ' +
3179 'ClipBoard_GetOpenWindow ClipBoard_GetOwner ' +
3180 'ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ' +
3181 'ClipBoard_GetViewer ClipBoard_IsFormatAvailable ' +
3182 'ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ' +
3183 'ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ' +
3184 'ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ' +
3185 'ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ' +
3186 'ColorSetCOLORREF ColorSetRGB Crypt_DecryptData ' +
3187 'Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey ' +
3188 'Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom ' +
3189 'Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup ' +
3190 'DateAdd DateDayOfWeek DateDaysInMonth DateDiff ' +
3191 'DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit ' +
3192 'DateToDayOfWeek DateToDayOfWeekISO DateToDayValue ' +
3193 'DateToMonth Date_Time_CompareFileTime ' +
3194 'Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime ' +
3195 'Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray ' +
3196 'Date_Time_DOSDateToStr Date_Time_DOSTimeToArray ' +
3197 'Date_Time_DOSTimeToStr Date_Time_EncodeFileTime ' +
3198 'Date_Time_EncodeSystemTime Date_Time_FileTimeToArray ' +
3199 'Date_Time_FileTimeToDOSDateTime ' +
3200 'Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr ' +
3201 'Date_Time_FileTimeToSystemTime Date_Time_GetFileTime ' +
3202 'Date_Time_GetLocalTime Date_Time_GetSystemTime ' +
3203 'Date_Time_GetSystemTimeAdjustment ' +
3204 'Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes ' +
3205 'Date_Time_GetTickCount Date_Time_GetTimeZoneInformation ' +
3206 'Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime ' +
3207 'Date_Time_SetLocalTime Date_Time_SetSystemTime ' +
3208 'Date_Time_SetSystemTimeAdjustment ' +
3209 'Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray ' +
3210 'Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr ' +
3211 'Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr ' +
3212 'Date_Time_SystemTimeToTzSpecificLocalTime ' +
3213 'Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate ' +
3214 'DebugBugReportEnv DebugCOMError DebugOut DebugReport ' +
3215 'DebugReportEx DebugReportVar DebugSetup Degree ' +
3216 'EventLog__Backup EventLog__Clear EventLog__Close ' +
3217 'EventLog__Count EventLog__DeregisterSource EventLog__Full ' +
3218 'EventLog__Notify EventLog__Oldest EventLog__Open ' +
3219 'EventLog__OpenBackup EventLog__Read EventLog__RegisterSource ' +
3220 'EventLog__Report Excel_BookAttach Excel_BookClose ' +
3221 'Excel_BookList Excel_BookNew Excel_BookOpen ' +
3222 'Excel_BookOpenText Excel_BookSave Excel_BookSaveAs ' +
3223 'Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber ' +
3224 'Excel_ConvertFormula Excel_Export Excel_FilterGet ' +
3225 'Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print ' +
3226 'Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind ' +
3227 'Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead ' +
3228 'Excel_RangeReplace Excel_RangeSort Excel_RangeValidate ' +
3229 'Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove ' +
3230 'Excel_SheetDelete Excel_SheetList FileCountLines FileCreate ' +
3231 'FileListToArray FileListToArrayRec FilePrint ' +
3232 'FileReadToArray FileWriteFromArray FileWriteLog ' +
3233 'FileWriteToLine FTP_Close FTP_Command FTP_Connect ' +
3234 'FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete ' +
3235 'FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent ' +
3236 'FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize ' +
3237 'FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename ' +
3238 'FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst ' +
3239 'FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray ' +
3240 'FTP_ListToArray2D FTP_ListToArrayEx FTP_Open ' +
3241 'FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback ' +
3242 'GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose ' +
3243 'GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight ' +
3244 'GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth ' +
3245 'GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight ' +
3246 'GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth ' +
3247 'GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx ' +
3248 'GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat ' +
3249 'GDIPlus_BitmapCreateApplyEffect ' +
3250 'GDIPlus_BitmapCreateApplyEffectEx ' +
3251 'GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile ' +
3252 'GDIPlus_BitmapCreateFromGraphics ' +
3253 'GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON ' +
3254 'GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory ' +
3255 'GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 ' +
3256 'GDIPlus_BitmapCreateFromStream ' +
3257 'GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose ' +
3258 'GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx ' +
3259 'GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel ' +
3260 'GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel ' +
3261 'GDIPlus_BitmapUnlockBits GDIPlus_BrushClone ' +
3262 'GDIPlus_BrushCreateSolid GDIPlus_BrushDispose ' +
3263 'GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType ' +
3264 'GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate ' +
3265 'GDIPlus_ColorMatrixCreateGrayScale ' +
3266 'GDIPlus_ColorMatrixCreateNegative ' +
3267 'GDIPlus_ColorMatrixCreateSaturation ' +
3268 'GDIPlus_ColorMatrixCreateScale ' +
3269 'GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone ' +
3270 'GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose ' +
3271 'GDIPlus_CustomLineCapGetStrokeCaps ' +
3272 'GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders ' +
3273 'GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize ' +
3274 'GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx ' +
3275 'GDIPlus_DrawImagePoints GDIPlus_EffectCreate ' +
3276 'GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast ' +
3277 'GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve ' +
3278 'GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix ' +
3279 'GDIPlus_EffectCreateHueSaturationLightness ' +
3280 'GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection ' +
3281 'GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint ' +
3282 'GDIPlus_EffectDispose GDIPlus_EffectGetParameters ' +
3283 'GDIPlus_EffectSetParameters GDIPlus_Encoders ' +
3284 'GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount ' +
3285 'GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize ' +
3286 'GDIPlus_EncodersGetSize GDIPlus_FontCreate ' +
3287 'GDIPlus_FontDispose GDIPlus_FontFamilyCreate ' +
3288 'GDIPlus_FontFamilyCreateFromCollection ' +
3289 'GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent ' +
3290 'GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight ' +
3291 'GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight ' +
3292 'GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont ' +
3293 'GDIPlus_FontPrivateCollectionDispose ' +
3294 'GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear ' +
3295 'GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND ' +
3296 'GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc ' +
3297 'GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve ' +
3298 'GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve ' +
3299 'GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse ' +
3300 'GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect ' +
3301 'GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect ' +
3302 'GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath ' +
3303 'GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon ' +
3304 'GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString ' +
3305 'GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve ' +
3306 'GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse ' +
3307 'GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie ' +
3308 'GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect ' +
3309 'GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode ' +
3310 'GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC ' +
3311 'GDIPlus_GraphicsGetInterpolationMode ' +
3312 'GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform ' +
3313 'GDIPlus_GraphicsMeasureCharacterRanges ' +
3314 'GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC ' +
3315 'GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform ' +
3316 'GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform ' +
3317 'GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform ' +
3318 'GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect ' +
3319 'GDIPlus_GraphicsSetClipRegion ' +
3320 'GDIPlus_GraphicsSetCompositingMode ' +
3321 'GDIPlus_GraphicsSetCompositingQuality ' +
3322 'GDIPlus_GraphicsSetInterpolationMode ' +
3323 'GDIPlus_GraphicsSetPixelOffsetMode ' +
3324 'GDIPlus_GraphicsSetSmoothingMode ' +
3325 'GDIPlus_GraphicsSetTextRenderingHint ' +
3326 'GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints ' +
3327 'GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate ' +
3328 'GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate ' +
3329 'GDIPlus_ImageAttributesDispose ' +
3330 'GDIPlus_ImageAttributesSetColorKeys ' +
3331 'GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose ' +
3332 'GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags ' +
3333 'GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight ' +
3334 'GDIPlus_ImageGetHorizontalResolution ' +
3335 'GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat ' +
3336 'GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType ' +
3337 'GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth ' +
3338 'GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream ' +
3339 'GDIPlus_ImageResize GDIPlus_ImageRotateFlip ' +
3340 'GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx ' +
3341 'GDIPlus_ImageSaveToStream GDIPlus_ImageScale ' +
3342 'GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect ' +
3343 'GDIPlus_LineBrushCreateFromRectWithAngle ' +
3344 'GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect ' +
3345 'GDIPlus_LineBrushMultiplyTransform ' +
3346 'GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend ' +
3347 'GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection ' +
3348 'GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend ' +
3349 'GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform ' +
3350 'GDIPlus_MatrixClone GDIPlus_MatrixCreate ' +
3351 'GDIPlus_MatrixDispose GDIPlus_MatrixGetElements ' +
3352 'GDIPlus_MatrixInvert GDIPlus_MatrixMultiply ' +
3353 'GDIPlus_MatrixRotate GDIPlus_MatrixScale ' +
3354 'GDIPlus_MatrixSetElements GDIPlus_MatrixShear ' +
3355 'GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate ' +
3356 'GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit ' +
3357 'GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier ' +
3358 'GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 ' +
3359 'GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 ' +
3360 'GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse ' +
3361 'GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath ' +
3362 'GDIPlus_PathAddPie GDIPlus_PathAddPolygon ' +
3363 'GDIPlus_PathAddRectangle GDIPlus_PathAddString ' +
3364 'GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath ' +
3365 'GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales ' +
3366 'GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect ' +
3367 'GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform ' +
3368 'GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend ' +
3369 'GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint ' +
3370 'GDIPlus_PathBrushSetFocusScales ' +
3371 'GDIPlus_PathBrushSetGammaCorrection ' +
3372 'GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend ' +
3373 'GDIPlus_PathBrushSetSigmaBlend ' +
3374 'GDIPlus_PathBrushSetSurroundColor ' +
3375 'GDIPlus_PathBrushSetSurroundColorsWithCount ' +
3376 'GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode ' +
3377 'GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate ' +
3378 'GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten ' +
3379 'GDIPlus_PathGetData GDIPlus_PathGetFillMode ' +
3380 'GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount ' +
3381 'GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds ' +
3382 'GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint ' +
3383 'GDIPlus_PathIterCreate GDIPlus_PathIterDispose ' +
3384 'GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath ' +
3385 'GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind ' +
3386 'GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode ' +
3387 'GDIPlus_PathSetMarker GDIPlus_PathStartFigure ' +
3388 'GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden ' +
3389 'GDIPlus_PathWindingModeOutline GDIPlus_PenCreate ' +
3390 'GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment ' +
3391 'GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap ' +
3392 'GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle ' +
3393 'GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit ' +
3394 'GDIPlus_PenGetWidth GDIPlus_PenSetAlignment ' +
3395 'GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap ' +
3396 'GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle ' +
3397 'GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap ' +
3398 'GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit ' +
3399 'GDIPlus_PenSetStartCap GDIPlus_PenSetWidth ' +
3400 'GDIPlus_RectFCreate GDIPlus_RegionClone ' +
3401 'GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect ' +
3402 'GDIPlus_RegionCombineRegion GDIPlus_RegionCreate ' +
3403 'GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect ' +
3404 'GDIPlus_RegionDispose GDIPlus_RegionGetBounds ' +
3405 'GDIPlus_RegionGetHRgn GDIPlus_RegionTransform ' +
3406 'GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup ' +
3407 'GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose ' +
3408 'GDIPlus_StringFormatGetMeasurableCharacterRangeCount ' +
3409 'GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign ' +
3410 'GDIPlus_StringFormatSetMeasurableCharacterRanges ' +
3411 'GDIPlus_TextureCreate GDIPlus_TextureCreate2 ' +
3412 'GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close ' +
3413 'GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying ' +
3414 'GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play ' +
3415 'GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop ' +
3416 'GUICtrlButton_Click GUICtrlButton_Create ' +
3417 'GUICtrlButton_Destroy GUICtrlButton_Enable ' +
3418 'GUICtrlButton_GetCheck GUICtrlButton_GetFocus ' +
3419 'GUICtrlButton_GetIdealSize GUICtrlButton_GetImage ' +
3420 'GUICtrlButton_GetImageList GUICtrlButton_GetNote ' +
3421 'GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo ' +
3422 'GUICtrlButton_GetState GUICtrlButton_GetText ' +
3423 'GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck ' +
3424 'GUICtrlButton_SetDontClick GUICtrlButton_SetFocus ' +
3425 'GUICtrlButton_SetImage GUICtrlButton_SetImageList ' +
3426 'GUICtrlButton_SetNote GUICtrlButton_SetShield ' +
3427 'GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo ' +
3428 'GUICtrlButton_SetState GUICtrlButton_SetStyle ' +
3429 'GUICtrlButton_SetText GUICtrlButton_SetTextMargin ' +
3430 'GUICtrlButton_Show GUICtrlComboBoxEx_AddDir ' +
3431 'GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate ' +
3432 'GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap ' +
3433 'GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy ' +
3434 'GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact ' +
3435 'GUICtrlComboBoxEx_GetComboBoxInfo ' +
3436 'GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount ' +
3437 'GUICtrlComboBoxEx_GetCurSel ' +
3438 'GUICtrlComboBoxEx_GetDroppedControlRect ' +
3439 'GUICtrlComboBoxEx_GetDroppedControlRectEx ' +
3440 'GUICtrlComboBoxEx_GetDroppedState ' +
3441 'GUICtrlComboBoxEx_GetDroppedWidth ' +
3442 'GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel ' +
3443 'GUICtrlComboBoxEx_GetEditText ' +
3444 'GUICtrlComboBoxEx_GetExtendedStyle ' +
3445 'GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList ' +
3446 'GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx ' +
3447 'GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage ' +
3448 'GUICtrlComboBoxEx_GetItemIndent ' +
3449 'GUICtrlComboBoxEx_GetItemOverlayImage ' +
3450 'GUICtrlComboBoxEx_GetItemParam ' +
3451 'GUICtrlComboBoxEx_GetItemSelectedImage ' +
3452 'GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen ' +
3453 'GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray ' +
3454 'GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry ' +
3455 'GUICtrlComboBoxEx_GetLocaleLang ' +
3456 'GUICtrlComboBoxEx_GetLocalePrimLang ' +
3457 'GUICtrlComboBoxEx_GetLocaleSubLang ' +
3458 'GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex ' +
3459 'GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage ' +
3460 'GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText ' +
3461 'GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent ' +
3462 'GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth ' +
3463 'GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText ' +
3464 'GUICtrlComboBoxEx_SetExtendedStyle ' +
3465 'GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList ' +
3466 'GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx ' +
3467 'GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage ' +
3468 'GUICtrlComboBoxEx_SetItemIndent ' +
3469 'GUICtrlComboBoxEx_SetItemOverlayImage ' +
3470 'GUICtrlComboBoxEx_SetItemParam ' +
3471 'GUICtrlComboBoxEx_SetItemSelectedImage ' +
3472 'GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex ' +
3473 'GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown ' +
3474 'GUICtrlComboBox_AddDir GUICtrlComboBox_AddString ' +
3475 'GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate ' +
3476 'GUICtrlComboBox_Create GUICtrlComboBox_DeleteString ' +
3477 'GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate ' +
3478 'GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact ' +
3479 'GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount ' +
3480 'GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel ' +
3481 'GUICtrlComboBox_GetDroppedControlRect ' +
3482 'GUICtrlComboBox_GetDroppedControlRectEx ' +
3483 'GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth ' +
3484 'GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText ' +
3485 'GUICtrlComboBox_GetExtendedUI ' +
3486 'GUICtrlComboBox_GetHorizontalExtent ' +
3487 'GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText ' +
3488 'GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList ' +
3489 'GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale ' +
3490 'GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang ' +
3491 'GUICtrlComboBox_GetLocalePrimLang ' +
3492 'GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible ' +
3493 'GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage ' +
3494 'GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText ' +
3495 'GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent ' +
3496 'GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner ' +
3497 'GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth ' +
3498 'GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText ' +
3499 'GUICtrlComboBox_SetExtendedUI ' +
3500 'GUICtrlComboBox_SetHorizontalExtent ' +
3501 'GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible ' +
3502 'GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown ' +
3503 'GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor ' +
3504 'GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal ' +
3505 'GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx ' +
3506 'GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx ' +
3507 'GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor ' +
3508 'GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange ' +
3509 'GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime ' +
3510 'GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText ' +
3511 'GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo ' +
3512 'GUICtrlEdit_CharFromPos GUICtrlEdit_Create ' +
3513 'GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer ' +
3514 'GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines ' +
3515 'GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine ' +
3516 'GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine ' +
3517 'GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins ' +
3518 'GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar ' +
3519 'GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel ' +
3520 'GUICtrlEdit_GetText GUICtrlEdit_GetTextLen ' +
3521 'GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText ' +
3522 'GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex ' +
3523 'GUICtrlEdit_LineLength GUICtrlEdit_LineScroll ' +
3524 'GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel ' +
3525 'GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner ' +
3526 'GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins ' +
3527 'GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar ' +
3528 'GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT ' +
3529 'GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP ' +
3530 'GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel ' +
3531 'GUICtrlEdit_SetTabStops GUICtrlEdit_SetText ' +
3532 'GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo ' +
3533 'GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter ' +
3534 'GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create ' +
3535 'GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem ' +
3536 'GUICtrlHeader_Destroy GUICtrlHeader_EditFilter ' +
3537 'GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList ' +
3538 'GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign ' +
3539 'GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount ' +
3540 'GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags ' +
3541 'GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage ' +
3542 'GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam ' +
3543 'GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx ' +
3544 'GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth ' +
3545 'GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat ' +
3546 'GUICtrlHeader_HitTest GUICtrlHeader_InsertItem ' +
3547 'GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex ' +
3548 'GUICtrlHeader_SetBitmapMargin ' +
3549 'GUICtrlHeader_SetFilterChangeTimeout ' +
3550 'GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList ' +
3551 'GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign ' +
3552 'GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay ' +
3553 'GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat ' +
3554 'GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder ' +
3555 'GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText ' +
3556 'GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray ' +
3557 'GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress ' +
3558 'GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy ' +
3559 'GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray ' +
3560 'GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank ' +
3561 'GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray ' +
3562 'GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus ' +
3563 'GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange ' +
3564 'GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile ' +
3565 'GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate ' +
3566 'GUICtrlListBox_ClickItem GUICtrlListBox_Create ' +
3567 'GUICtrlListBox_DeleteString GUICtrlListBox_Destroy ' +
3568 'GUICtrlListBox_Dir GUICtrlListBox_EndUpdate ' +
3569 'GUICtrlListBox_FindInText GUICtrlListBox_FindString ' +
3570 'GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex ' +
3571 'GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel ' +
3572 'GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData ' +
3573 'GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect ' +
3574 'GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo ' +
3575 'GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry ' +
3576 'GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang ' +
3577 'GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel ' +
3578 'GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems ' +
3579 'GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText ' +
3580 'GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex ' +
3581 'GUICtrlListBox_InitStorage GUICtrlListBox_InsertString ' +
3582 'GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString ' +
3583 'GUICtrlListBox_ResetContent GUICtrlListBox_SelectString ' +
3584 'GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx ' +
3585 'GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex ' +
3586 'GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel ' +
3587 'GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData ' +
3588 'GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale ' +
3589 'GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops ' +
3590 'GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort ' +
3591 'GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll ' +
3592 'GUICtrlListView_AddArray GUICtrlListView_AddColumn ' +
3593 'GUICtrlListView_AddItem GUICtrlListView_AddSubItem ' +
3594 'GUICtrlListView_ApproximateViewHeight ' +
3595 'GUICtrlListView_ApproximateViewRect ' +
3596 'GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange ' +
3597 'GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel ' +
3598 'GUICtrlListView_ClickItem GUICtrlListView_CopyItems ' +
3599 'GUICtrlListView_Create GUICtrlListView_CreateDragImage ' +
3600 'GUICtrlListView_CreateSolidBitMap ' +
3601 'GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn ' +
3602 'GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected ' +
3603 'GUICtrlListView_Destroy GUICtrlListView_DrawDragImage ' +
3604 'GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView ' +
3605 'GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible ' +
3606 'GUICtrlListView_FindInText GUICtrlListView_FindItem ' +
3607 'GUICtrlListView_FindNearest GUICtrlListView_FindParam ' +
3608 'GUICtrlListView_FindText GUICtrlListView_GetBkColor ' +
3609 'GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask ' +
3610 'GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount ' +
3611 'GUICtrlListView_GetColumnOrder ' +
3612 'GUICtrlListView_GetColumnOrderArray ' +
3613 'GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage ' +
3614 'GUICtrlListView_GetEditControl ' +
3615 'GUICtrlListView_GetExtendedListViewStyle ' +
3616 'GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount ' +
3617 'GUICtrlListView_GetGroupInfo ' +
3618 'GUICtrlListView_GetGroupInfoByIndex ' +
3619 'GUICtrlListView_GetGroupRect ' +
3620 'GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader ' +
3621 'GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem ' +
3622 'GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList ' +
3623 'GUICtrlListView_GetISearchString GUICtrlListView_GetItem ' +
3624 'GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount ' +
3625 'GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited ' +
3626 'GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused ' +
3627 'GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage ' +
3628 'GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam ' +
3629 'GUICtrlListView_GetItemPosition ' +
3630 'GUICtrlListView_GetItemPositionX ' +
3631 'GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect ' +
3632 'GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected ' +
3633 'GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX ' +
3634 'GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState ' +
3635 'GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText ' +
3636 'GUICtrlListView_GetItemTextArray ' +
3637 'GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem ' +
3638 'GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin ' +
3639 'GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY ' +
3640 'GUICtrlListView_GetOutlineColor ' +
3641 'GUICtrlListView_GetSelectedColumn ' +
3642 'GUICtrlListView_GetSelectedCount ' +
3643 'GUICtrlListView_GetSelectedIndices ' +
3644 'GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth ' +
3645 'GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor ' +
3646 'GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips ' +
3647 'GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat ' +
3648 'GUICtrlListView_GetView GUICtrlListView_GetViewDetails ' +
3649 'GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList ' +
3650 'GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall ' +
3651 'GUICtrlListView_GetViewTile GUICtrlListView_HideColumn ' +
3652 'GUICtrlListView_HitTest GUICtrlListView_InsertColumn ' +
3653 'GUICtrlListView_InsertGroup GUICtrlListView_InsertItem ' +
3654 'GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex ' +
3655 'GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems ' +
3656 'GUICtrlListView_RegisterSortCallBack ' +
3657 'GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup ' +
3658 'GUICtrlListView_Scroll GUICtrlListView_SetBkColor ' +
3659 'GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask ' +
3660 'GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder ' +
3661 'GUICtrlListView_SetColumnOrderArray ' +
3662 'GUICtrlListView_SetColumnWidth ' +
3663 'GUICtrlListView_SetExtendedListViewStyle ' +
3664 'GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem ' +
3665 'GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing ' +
3666 'GUICtrlListView_SetImageList GUICtrlListView_SetItem ' +
3667 'GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount ' +
3668 'GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited ' +
3669 'GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused ' +
3670 'GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage ' +
3671 'GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam ' +
3672 'GUICtrlListView_SetItemPosition ' +
3673 'GUICtrlListView_SetItemPosition32 ' +
3674 'GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState ' +
3675 'GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText ' +
3676 'GUICtrlListView_SetOutlineColor ' +
3677 'GUICtrlListView_SetSelectedColumn ' +
3678 'GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor ' +
3679 'GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips ' +
3680 'GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView ' +
3681 'GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort ' +
3682 'GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest ' +
3683 'GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem ' +
3684 'GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition ' +
3685 'GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem ' +
3686 'GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup ' +
3687 'GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu ' +
3688 'GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem ' +
3689 'GUICtrlMenu_FindItem GUICtrlMenu_FindParent ' +
3690 'GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked ' +
3691 'GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked ' +
3692 'GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData ' +
3693 'GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled ' +
3694 'GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed ' +
3695 'GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID ' +
3696 'GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect ' +
3697 'GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState ' +
3698 'GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu ' +
3699 'GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType ' +
3700 'GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground ' +
3701 'GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID ' +
3702 'GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem ' +
3703 'GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo ' +
3704 'GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu ' +
3705 'GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx ' +
3706 'GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu ' +
3707 'GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint ' +
3708 'GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps ' +
3709 'GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked ' +
3710 'GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked ' +
3711 'GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault ' +
3712 'GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled ' +
3713 'GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted ' +
3714 'GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo ' +
3715 'GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu ' +
3716 'GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType ' +
3717 'GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground ' +
3718 'GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData ' +
3719 'GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight ' +
3720 'GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle ' +
3721 'GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create ' +
3722 'GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder ' +
3723 'GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor ' +
3724 'GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel ' +
3725 'GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW ' +
3726 'GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount ' +
3727 'GUICtrlMonthCal_GetMaxTodayWidth ' +
3728 'GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect ' +
3729 'GUICtrlMonthCal_GetMinReqRectArray ' +
3730 'GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta ' +
3731 'GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax ' +
3732 'GUICtrlMonthCal_GetMonthRangeMaxStr ' +
3733 'GUICtrlMonthCal_GetMonthRangeMin ' +
3734 'GUICtrlMonthCal_GetMonthRangeMinStr ' +
3735 'GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange ' +
3736 'GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr ' +
3737 'GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr ' +
3738 'GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax ' +
3739 'GUICtrlMonthCal_GetSelRangeMaxStr ' +
3740 'GUICtrlMonthCal_GetSelRangeMin ' +
3741 'GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday ' +
3742 'GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat ' +
3743 'GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder ' +
3744 'GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel ' +
3745 'GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW ' +
3746 'GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta ' +
3747 'GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange ' +
3748 'GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat ' +
3749 'GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand ' +
3750 'GUICtrlRebar_BeginDrag GUICtrlRebar_Create ' +
3751 'GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy ' +
3752 'GUICtrlRebar_DragMove GUICtrlRebar_EndDrag ' +
3753 'GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders ' +
3754 'GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle ' +
3755 'GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount ' +
3756 'GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize ' +
3757 'GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize ' +
3758 'GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam ' +
3759 'GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx ' +
3760 'GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx ' +
3761 'GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak ' +
3762 'GUICtrlRebar_GetBandStyleChildEdge ' +
3763 'GUICtrlRebar_GetBandStyleFixedBMP ' +
3764 'GUICtrlRebar_GetBandStyleFixedSize ' +
3765 'GUICtrlRebar_GetBandStyleGripperAlways ' +
3766 'GUICtrlRebar_GetBandStyleHidden ' +
3767 'GUICtrlRebar_GetBandStyleHideTitle ' +
3768 'GUICtrlRebar_GetBandStyleNoGripper ' +
3769 'GUICtrlRebar_GetBandStyleTopAlign ' +
3770 'GUICtrlRebar_GetBandStyleUseChevron ' +
3771 'GUICtrlRebar_GetBandStyleVariableHeight ' +
3772 'GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight ' +
3773 'GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor ' +
3774 'GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount ' +
3775 'GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor ' +
3776 'GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat ' +
3777 'GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex ' +
3778 'GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand ' +
3779 'GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor ' +
3780 'GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize ' +
3781 'GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize ' +
3782 'GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam ' +
3783 'GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak ' +
3784 'GUICtrlRebar_SetBandStyleChildEdge ' +
3785 'GUICtrlRebar_SetBandStyleFixedBMP ' +
3786 'GUICtrlRebar_SetBandStyleFixedSize ' +
3787 'GUICtrlRebar_SetBandStyleGripperAlways ' +
3788 'GUICtrlRebar_SetBandStyleHidden ' +
3789 'GUICtrlRebar_SetBandStyleHideTitle ' +
3790 'GUICtrlRebar_SetBandStyleNoGripper ' +
3791 'GUICtrlRebar_SetBandStyleTopAlign ' +
3792 'GUICtrlRebar_SetBandStyleUseChevron ' +
3793 'GUICtrlRebar_SetBandStyleVariableHeight ' +
3794 'GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo ' +
3795 'GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme ' +
3796 'GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips ' +
3797 'GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand ' +
3798 'GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL ' +
3799 'GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial ' +
3800 'GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo ' +
3801 'GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy ' +
3802 'GUICtrlRichEdit_Create GUICtrlRichEdit_Cut ' +
3803 'GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy ' +
3804 'GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText ' +
3805 'GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor ' +
3806 'GUICtrlRichEdit_GetCharAttributes ' +
3807 'GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor ' +
3808 'GUICtrlRichEdit_GetCharPosFromXY ' +
3809 'GUICtrlRichEdit_GetCharPosOfNextWord ' +
3810 'GUICtrlRichEdit_GetCharPosOfPreviousWord ' +
3811 'GUICtrlRichEdit_GetCharWordBreakInfo ' +
3812 'GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont ' +
3813 'GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength ' +
3814 'GUICtrlRichEdit_GetLineNumberFromCharPos ' +
3815 'GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo ' +
3816 'GUICtrlRichEdit_GetNumberOfFirstVisibleLine ' +
3817 'GUICtrlRichEdit_GetParaAlignment ' +
3818 'GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder ' +
3819 'GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering ' +
3820 'GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing ' +
3821 'GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar ' +
3822 'GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos ' +
3823 'GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA ' +
3824 'GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit ' +
3825 'GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine ' +
3826 'GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength ' +
3827 'GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos ' +
3828 'GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos ' +
3829 'GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText ' +
3830 'GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected ' +
3831 'GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial ' +
3832 'GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo ' +
3833 'GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw ' +
3834 'GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines ' +
3835 'GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor ' +
3836 'GUICtrlRichEdit_SetCharAttributes ' +
3837 'GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor ' +
3838 'GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont ' +
3839 'GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified ' +
3840 'GUICtrlRichEdit_SetParaAlignment ' +
3841 'GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder ' +
3842 'GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering ' +
3843 'GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing ' +
3844 'GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar ' +
3845 'GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT ' +
3846 'GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel ' +
3847 'GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops ' +
3848 'GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit ' +
3849 'GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile ' +
3850 'GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile ' +
3851 'GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo ' +
3852 'GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics ' +
3853 'GUICtrlSlider_Create GUICtrlSlider_Destroy ' +
3854 'GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect ' +
3855 'GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize ' +
3856 'GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics ' +
3857 'GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos ' +
3858 'GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax ' +
3859 'GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel ' +
3860 'GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart ' +
3861 'GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect ' +
3862 'GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic ' +
3863 'GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips ' +
3864 'GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy ' +
3865 'GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize ' +
3866 'GUICtrlSlider_SetPos GUICtrlSlider_SetRange ' +
3867 'GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin ' +
3868 'GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd ' +
3869 'GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength ' +
3870 'GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq ' +
3871 'GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips ' +
3872 'GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create ' +
3873 'GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl ' +
3874 'GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz ' +
3875 'GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert ' +
3876 'GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight ' +
3877 'GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts ' +
3878 'GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx ' +
3879 'GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags ' +
3880 'GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx ' +
3881 'GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat ' +
3882 'GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple ' +
3883 'GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor ' +
3884 'GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight ' +
3885 'GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple ' +
3886 'GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText ' +
3887 'GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide ' +
3888 'GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create ' +
3889 'GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem ' +
3890 'GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab ' +
3891 'GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel ' +
3892 'GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx ' +
3893 'GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList ' +
3894 'GUICtrlTab_GetItem GUICtrlTab_GetItemCount ' +
3895 'GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam ' +
3896 'GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx ' +
3897 'GUICtrlTab_GetItemState GUICtrlTab_GetItemText ' +
3898 'GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips ' +
3899 'GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem ' +
3900 'GUICtrlTab_HitTest GUICtrlTab_InsertItem ' +
3901 'GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus ' +
3902 'GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle ' +
3903 'GUICtrlTab_SetImageList GUICtrlTab_SetItem ' +
3904 'GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam ' +
3905 'GUICtrlTab_SetItemSize GUICtrlTab_SetItemState ' +
3906 'GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth ' +
3907 'GUICtrlTab_SetPadding GUICtrlTab_SetToolTips ' +
3908 'GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap ' +
3909 'GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep ' +
3910 'GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount ' +
3911 'GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel ' +
3912 'GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex ' +
3913 'GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create ' +
3914 'GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton ' +
3915 'GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton ' +
3916 'GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight ' +
3917 'GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap ' +
3918 'GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx ' +
3919 'GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect ' +
3920 'GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize ' +
3921 'GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle ' +
3922 'GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme ' +
3923 'GUICtrlToolbar_GetDisabledImageList ' +
3924 'GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList ' +
3925 'GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList ' +
3926 'GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor ' +
3927 'GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics ' +
3928 'GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows ' +
3929 'GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle ' +
3930 'GUICtrlToolbar_GetStyleAltDrag ' +
3931 'GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat ' +
3932 'GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop ' +
3933 'GUICtrlToolbar_GetStyleToolTips ' +
3934 'GUICtrlToolbar_GetStyleTransparent ' +
3935 'GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows ' +
3936 'GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat ' +
3937 'GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton ' +
3938 'GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand ' +
3939 'GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest ' +
3940 'GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled ' +
3941 'GUICtrlToolbar_IsButtonHidden ' +
3942 'GUICtrlToolbar_IsButtonHighlighted ' +
3943 'GUICtrlToolbar_IsButtonIndeterminate ' +
3944 'GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap ' +
3945 'GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator ' +
3946 'GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton ' +
3947 'GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize ' +
3948 'GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo ' +
3949 'GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam ' +
3950 'GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState ' +
3951 'GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText ' +
3952 'GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID ' +
3953 'GUICtrlToolbar_SetColorScheme ' +
3954 'GUICtrlToolbar_SetDisabledImageList ' +
3955 'GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle ' +
3956 'GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem ' +
3957 'GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent ' +
3958 'GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark ' +
3959 'GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows ' +
3960 'GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding ' +
3961 'GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows ' +
3962 'GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag ' +
3963 'GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat ' +
3964 'GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop ' +
3965 'GUICtrlToolbar_SetStyleToolTips ' +
3966 'GUICtrlToolbar_SetStyleTransparent ' +
3967 'GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips ' +
3968 'GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme ' +
3969 'GUICtrlTreeView_Add GUICtrlTreeView_AddChild ' +
3970 'GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst ' +
3971 'GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem ' +
3972 'GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage ' +
3973 'GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete ' +
3974 'GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren ' +
3975 'GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect ' +
3976 'GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText ' +
3977 'GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate ' +
3978 'GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand ' +
3979 'GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem ' +
3980 'GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor ' +
3981 'GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked ' +
3982 'GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren ' +
3983 'GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut ' +
3984 'GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl ' +
3985 'GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild ' +
3986 'GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible ' +
3987 'GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight ' +
3988 'GUICtrlTreeView_GetImageIndex ' +
3989 'GUICtrlTreeView_GetImageListIconHandle ' +
3990 'GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor ' +
3991 'GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex ' +
3992 'GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam ' +
3993 'GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor ' +
3994 'GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild ' +
3995 'GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible ' +
3996 'GUICtrlTreeView_GetNormalImageList ' +
3997 'GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam ' +
3998 'GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild ' +
3999 'GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible ' +
4000 'GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected ' +
4001 'GUICtrlTreeView_GetSelectedImageIndex ' +
4002 'GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount ' +
4003 'GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex ' +
4004 'GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText ' +
4005 'GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips ' +
4006 'GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat ' +
4007 'GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount ' +
4008 'GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx ' +
4009 'GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index ' +
4010 'GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem ' +
4011 'GUICtrlTreeView_IsParent GUICtrlTreeView_Level ' +
4012 'GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex ' +
4013 'GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold ' +
4014 'GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex ' +
4015 'GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut ' +
4016 'GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused ' +
4017 'GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon ' +
4018 'GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent ' +
4019 'GUICtrlTreeView_SetInsertMark ' +
4020 'GUICtrlTreeView_SetInsertMarkColor ' +
4021 'GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam ' +
4022 'GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList ' +
4023 'GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected ' +
4024 'GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState ' +
4025 'GUICtrlTreeView_SetStateImageIndex ' +
4026 'GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText ' +
4027 'GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips ' +
4028 'GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort ' +
4029 'GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon ' +
4030 'GUIImageList_AddMasked GUIImageList_BeginDrag ' +
4031 'GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy ' +
4032 'GUIImageList_DestroyIcon GUIImageList_DragEnter ' +
4033 'GUIImageList_DragLeave GUIImageList_DragMove ' +
4034 'GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate ' +
4035 'GUIImageList_EndDrag GUIImageList_GetBkColor ' +
4036 'GUIImageList_GetIcon GUIImageList_GetIconHeight ' +
4037 'GUIImageList_GetIconSize GUIImageList_GetIconSizeEx ' +
4038 'GUIImageList_GetIconWidth GUIImageList_GetImageCount ' +
4039 'GUIImageList_GetImageInfoEx GUIImageList_Remove ' +
4040 'GUIImageList_ReplaceIcon GUIImageList_SetBkColor ' +
4041 'GUIImageList_SetIconSize GUIImageList_SetImageCount ' +
4042 'GUIImageList_Swap GUIScrollBars_EnableScrollBar ' +
4043 'GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect ' +
4044 'GUIScrollBars_GetScrollBarRGState ' +
4045 'GUIScrollBars_GetScrollBarXYLineButton ' +
4046 'GUIScrollBars_GetScrollBarXYThumbBottom ' +
4047 'GUIScrollBars_GetScrollBarXYThumbTop ' +
4048 'GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx ' +
4049 'GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin ' +
4050 'GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos ' +
4051 'GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos ' +
4052 'GUIScrollBars_GetScrollRange GUIScrollBars_Init ' +
4053 'GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo ' +
4054 'GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin ' +
4055 'GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos ' +
4056 'GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar ' +
4057 'GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect ' +
4058 'GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate ' +
4059 'GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools ' +
4060 'GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize ' +
4061 'GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool ' +
4062 'GUIToolTip_GetDelayTime GUIToolTip_GetMargin ' +
4063 'GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth ' +
4064 'GUIToolTip_GetText GUIToolTip_GetTipBkColor ' +
4065 'GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap ' +
4066 'GUIToolTip_GetTitleText GUIToolTip_GetToolCount ' +
4067 'GUIToolTip_GetToolInfo GUIToolTip_HitTest ' +
4068 'GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp ' +
4069 'GUIToolTip_SetDelayTime GUIToolTip_SetMargin ' +
4070 'GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor ' +
4071 'GUIToolTip_SetTipTextColor GUIToolTip_SetTitle ' +
4072 'GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme ' +
4073 'GUIToolTip_ToolExists GUIToolTip_ToolToArray ' +
4074 'GUIToolTip_TrackActivate GUIToolTip_TrackPosition ' +
4075 'GUIToolTip_Update GUIToolTip_UpdateTipText HexToString ' +
4076 'IEAction IEAttach IEBodyReadHTML IEBodyReadText ' +
4077 'IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj ' +
4078 'IEDocInsertHTML IEDocInsertText IEDocReadHTML ' +
4079 'IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect ' +
4080 'IEFormElementGetCollection IEFormElementGetObjByName ' +
4081 'IEFormElementGetValue IEFormElementOptionSelect ' +
4082 'IEFormElementRadioSelect IEFormElementSetValue ' +
4083 'IEFormGetCollection IEFormGetObjByName IEFormImageClick ' +
4084 'IEFormReset IEFormSubmit IEFrameGetCollection ' +
4085 'IEFrameGetObjByName IEGetObjById IEGetObjByName ' +
4086 'IEHeadInsertEventScript IEImgClick IEImgGetCollection ' +
4087 'IEIsFrameSet IELinkClickByIndex IELinkClickByText ' +
4088 'IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate ' +
4089 'IEPropertyGet IEPropertySet IEQuit IETableGetCollection ' +
4090 'IETableWriteToArray IETagNameAllGetCollection ' +
4091 'IETagNameGetCollection IE_Example IE_Introduction ' +
4092 'IE_VersionInfo INetExplorerCapable INetGetSource INetMail ' +
4093 'INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc ' +
4094 'MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock ' +
4095 'MemMoveMemory MemVirtualAlloc MemVirtualAllocEx ' +
4096 'MemVirtualFree MemVirtualFreeEx Min MouseTrap ' +
4097 'NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe ' +
4098 'NamedPipes_CreateNamedPipe NamedPipes_CreatePipe ' +
4099 'NamedPipes_DisconnectNamedPipe ' +
4100 'NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo ' +
4101 'NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState ' +
4102 'NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe ' +
4103 'Net_Share_ConnectionEnum Net_Share_FileClose ' +
4104 'Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr ' +
4105 'Net_Share_ResourceStr Net_Share_SessionDel ' +
4106 'Net_Share_SessionEnum Net_Share_SessionGetInfo ' +
4107 'Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel ' +
4108 'Net_Share_ShareEnum Net_Share_ShareGetInfo ' +
4109 'Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr ' +
4110 'Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate ' +
4111 'NowDate NowTime PathFull PathGetRelative PathMake ' +
4112 'PathSplit ProcessGetName ProcessGetPriority Radian ' +
4113 'ReplaceStringInFile RunDos ScreenCapture_Capture ' +
4114 'ScreenCapture_CaptureWnd ScreenCapture_SaveImage ' +
4115 'ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ' +
4116 'ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression ' +
4117 'Security__AdjustTokenPrivileges ' +
4118 'Security__CreateProcessWithToken Security__DuplicateTokenEx ' +
4119 'Security__GetAccountSid Security__GetLengthSid ' +
4120 'Security__GetTokenInformation Security__ImpersonateSelf ' +
4121 'Security__IsValidSid Security__LookupAccountName ' +
4122 'Security__LookupAccountSid Security__LookupPrivilegeValue ' +
4123 'Security__OpenProcessToken Security__OpenThreadToken ' +
4124 'Security__OpenThreadTokenEx Security__SetPrivilege ' +
4125 'Security__SetTokenInformation Security__SidToStringSid ' +
4126 'Security__SidTypeStr Security__StringSidToSid SendMessage ' +
4127 'SendMessageA SetDate SetTime Singleton SoundClose ' +
4128 'SoundLength SoundOpen SoundPause SoundPlay SoundPos ' +
4129 'SoundResume SoundSeek SoundStatus SoundStop ' +
4130 'SQLite_Changes SQLite_Close SQLite_Display2DResult ' +
4131 'SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape ' +
4132 'SQLite_Exec SQLite_FastEncode SQLite_FastEscape ' +
4133 'SQLite_FetchData SQLite_FetchNames SQLite_GetTable ' +
4134 'SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion ' +
4135 'SQLite_Open SQLite_Query SQLite_QueryFinalize ' +
4136 'SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode ' +
4137 'SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe ' +
4138 'SQLite_Startup SQLite_TotalChanges StringBetween ' +
4139 'StringExplode StringInsert StringProper StringRepeat ' +
4140 'StringTitleCase StringToHex TCPIpToName TempFile ' +
4141 'TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID ' +
4142 'Timer_Init Timer_KillAllTimers Timer_KillTimer ' +
4143 'Timer_SetTimer TimeToTicks VersionCompare viClose ' +
4144 'viExecCommand viFindGpib viGpibBusReset viGTL ' +
4145 'viInteractiveControl viOpen viSetAttribute viSetTimeout ' +
4146 'WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout ' +
4147 'WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx ' +
4148 'WinAPI_AddFontResourceEx WinAPI_AddIconOverlay ' +
4149 'WinAPI_AddIconTransparency WinAPI_AddMRUString ' +
4150 'WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges ' +
4151 'WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc ' +
4152 'WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo ' +
4153 'WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject ' +
4154 'WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString ' +
4155 'WinAPI_AttachConsole WinAPI_AttachThreadInput ' +
4156 'WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek ' +
4157 'WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep ' +
4158 'WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos ' +
4159 'WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource ' +
4160 'WinAPI_BitBlt WinAPI_BringWindowToTop ' +
4161 'WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg ' +
4162 'WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit ' +
4163 'WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit ' +
4164 'WinAPI_CallNextHookEx WinAPI_CallWindowProc ' +
4165 'WinAPI_CallWindowProcW WinAPI_CascadeWindows ' +
4166 'WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem ' +
4167 'WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen ' +
4168 'WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile ' +
4169 'WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData ' +
4170 'WinAPI_CloseWindow WinAPI_CloseWindowStation ' +
4171 'WinAPI_CLSIDFromProgID WinAPI_CoInitialize ' +
4172 'WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB ' +
4173 'WinAPI_ColorRGBToHLS WinAPI_CombineRgn ' +
4174 'WinAPI_CombineTransform WinAPI_CommandLineToArgv ' +
4175 'WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx ' +
4176 'WinAPI_CompareString WinAPI_CompressBitmapBits ' +
4177 'WinAPI_CompressBuffer WinAPI_ComputeCrc32 ' +
4178 'WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor ' +
4179 'WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon ' +
4180 'WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct ' +
4181 'WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree ' +
4182 'WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize ' +
4183 'WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON ' +
4184 'WinAPI_CreateANDBitmap WinAPI_CreateBitmap ' +
4185 'WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect ' +
4186 'WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct ' +
4187 'WinAPI_CreateCaret WinAPI_CreateColorAdjustment ' +
4188 'WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx ' +
4189 'WinAPI_CreateCompatibleDC WinAPI_CreateDesktop ' +
4190 'WinAPI_CreateDIB WinAPI_CreateDIBColorTable ' +
4191 'WinAPI_CreateDIBitmap WinAPI_CreateDIBSection ' +
4192 'WinAPI_CreateDirectory WinAPI_CreateDirectoryEx ' +
4193 'WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon ' +
4194 'WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile ' +
4195 'WinAPI_CreateFileEx WinAPI_CreateFileMapping ' +
4196 'WinAPI_CreateFont WinAPI_CreateFontEx ' +
4197 'WinAPI_CreateFontIndirect WinAPI_CreateGUID ' +
4198 'WinAPI_CreateHardLink WinAPI_CreateIcon ' +
4199 'WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect ' +
4200 'WinAPI_CreateJobObject WinAPI_CreateMargins ' +
4201 'WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn ' +
4202 'WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID ' +
4203 'WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn ' +
4204 'WinAPI_CreateProcess WinAPI_CreateProcessWithToken ' +
4205 'WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn ' +
4206 'WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn ' +
4207 'WinAPI_CreateSemaphore WinAPI_CreateSize ' +
4208 'WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush ' +
4209 'WinAPI_CreateStreamOnHGlobal WinAPI_CreateString ' +
4210 'WinAPI_CreateSymbolicLink WinAPI_CreateTransform ' +
4211 'WinAPI_CreateWindowEx WinAPI_CreateWindowStation ' +
4212 'WinAPI_DecompressBuffer WinAPI_DecryptFile ' +
4213 'WinAPI_DeferWindowPos WinAPI_DefineDosDevice ' +
4214 'WinAPI_DefRawInputProc WinAPI_DefSubclassProc ' +
4215 'WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC ' +
4216 'WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile ' +
4217 'WinAPI_DeleteObject WinAPI_DeleteObjectID ' +
4218 'WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow ' +
4219 'WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon ' +
4220 'WinAPI_DestroyWindow WinAPI_DeviceIoControl ' +
4221 'WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall ' +
4222 'WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles ' +
4223 'WinAPI_DragFinish WinAPI_DragQueryFileEx ' +
4224 'WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects ' +
4225 'WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect ' +
4226 'WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx ' +
4227 'WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText ' +
4228 'WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge ' +
4229 'WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground ' +
4230 'WinAPI_DrawThemeText WinAPI_DrawThemeTextEx ' +
4231 'WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle ' +
4232 'WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc ' +
4233 'WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition ' +
4234 'WinAPI_DwmExtendFrameIntoClientArea ' +
4235 'WinAPI_DwmGetColorizationColor ' +
4236 'WinAPI_DwmGetColorizationParameters ' +
4237 'WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps ' +
4238 'WinAPI_DwmIsCompositionEnabled ' +
4239 'WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail ' +
4240 'WinAPI_DwmSetColorizationParameters ' +
4241 'WinAPI_DwmSetIconicLivePreviewBitmap ' +
4242 'WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute ' +
4243 'WinAPI_DwmUnregisterThumbnail ' +
4244 'WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat ' +
4245 'WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse ' +
4246 'WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile ' +
4247 'WinAPI_EncryptionDisable WinAPI_EndBufferedPaint ' +
4248 'WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath ' +
4249 'WinAPI_EndUpdateResource WinAPI_EnumChildProcess ' +
4250 'WinAPI_EnumChildWindows WinAPI_EnumDesktops ' +
4251 'WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers ' +
4252 'WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors ' +
4253 'WinAPI_EnumDisplaySettings WinAPI_EnumDllProc ' +
4254 'WinAPI_EnumFiles WinAPI_EnumFileStreams ' +
4255 'WinAPI_EnumFontFamilies WinAPI_EnumHardLinks ' +
4256 'WinAPI_EnumMRUList WinAPI_EnumPageFiles ' +
4257 'WinAPI_EnumProcessHandles WinAPI_EnumProcessModules ' +
4258 'WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows ' +
4259 'WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages ' +
4260 'WinAPI_EnumResourceNames WinAPI_EnumResourceTypes ' +
4261 'WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales ' +
4262 'WinAPI_EnumUILanguages WinAPI_EnumWindows ' +
4263 'WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations ' +
4264 'WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect ' +
4265 'WinAPI_EqualRgn WinAPI_ExcludeClipRect ' +
4266 'WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen ' +
4267 'WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon ' +
4268 'WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn ' +
4269 'WinAPI_FatalAppExit WinAPI_FatalExit ' +
4270 'WinAPI_FileEncryptionStatus WinAPI_FileExists ' +
4271 'WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory ' +
4272 'WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn ' +
4273 'WinAPI_FindClose WinAPI_FindCloseChangeNotification ' +
4274 'WinAPI_FindExecutable WinAPI_FindFirstChangeNotification ' +
4275 'WinAPI_FindFirstFile WinAPI_FindFirstFileName ' +
4276 'WinAPI_FindFirstStream WinAPI_FindNextChangeNotification ' +
4277 'WinAPI_FindNextFile WinAPI_FindNextFileName ' +
4278 'WinAPI_FindNextStream WinAPI_FindResource ' +
4279 'WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow ' +
4280 'WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath ' +
4281 'WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers ' +
4282 'WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile ' +
4283 'WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect ' +
4284 'WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory ' +
4285 'WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment ' +
4286 'WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory ' +
4287 'WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings ' +
4288 'WinAPI_GetArcDirection WinAPI_GetAsyncKeyState ' +
4289 'WinAPI_GetBinaryType WinAPI_GetBitmapBits ' +
4290 'WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx ' +
4291 'WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect ' +
4292 'WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits ' +
4293 'WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC ' +
4294 'WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue ' +
4295 'WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType ' +
4296 'WinAPI_GetClassInfoEx WinAPI_GetClassLongEx ' +
4297 'WinAPI_GetClassName WinAPI_GetClientHeight ' +
4298 'WinAPI_GetClientRect WinAPI_GetClientWidth ' +
4299 'WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox ' +
4300 'WinAPI_GetClipCursor WinAPI_GetClipRgn ' +
4301 'WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize ' +
4302 'WinAPI_GetCompression WinAPI_GetConnectedDlg ' +
4303 'WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile ' +
4304 'WinAPI_GetCurrentObject WinAPI_GetCurrentPosition ' +
4305 'WinAPI_GetCurrentProcess ' +
4306 'WinAPI_GetCurrentProcessExplicitAppUserModelID ' +
4307 'WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName ' +
4308 'WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId ' +
4309 'WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat ' +
4310 'WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter ' +
4311 'WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow ' +
4312 'WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName ' +
4313 'WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp ' +
4314 'WinAPI_GetDIBColorTable WinAPI_GetDIBits ' +
4315 'WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID ' +
4316 'WinAPI_GetDlgItem WinAPI_GetDllDirectory ' +
4317 'WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx ' +
4318 'WinAPI_GetDriveNumber WinAPI_GetDriveType ' +
4319 'WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect ' +
4320 'WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits ' +
4321 'WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension ' +
4322 'WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage ' +
4323 'WinAPI_GetErrorMode WinAPI_GetExitCodeProcess ' +
4324 'WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID ' +
4325 'WinAPI_GetFileInformationByHandle ' +
4326 'WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx ' +
4327 'WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk ' +
4328 'WinAPI_GetFileTitle WinAPI_GetFileType ' +
4329 'WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle ' +
4330 'WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus ' +
4331 'WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName ' +
4332 'WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow ' +
4333 'WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo ' +
4334 'WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode ' +
4335 'WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo ' +
4336 'WinAPI_GetGValue WinAPI_GetHandleInformation ' +
4337 'WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension ' +
4338 'WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime ' +
4339 'WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList ' +
4340 'WinAPI_GetKeyboardState WinAPI_GetKeyboardType ' +
4341 'WinAPI_GetKeyNameText WinAPI_GetKeyState ' +
4342 'WinAPI_GetLastActivePopup WinAPI_GetLastError ' +
4343 'WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes ' +
4344 'WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives ' +
4345 'WinAPI_GetMapMode WinAPI_GetMemorySize ' +
4346 'WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx ' +
4347 'WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx ' +
4348 'WinAPI_GetModuleInformation WinAPI_GetMonitorInfo ' +
4349 'WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY ' +
4350 'WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject ' +
4351 'WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle ' +
4352 'WinAPI_GetObjectNameByHandle WinAPI_GetObjectType ' +
4353 'WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics ' +
4354 'WinAPI_GetOverlappedResult WinAPI_GetParent ' +
4355 'WinAPI_GetParentProcess WinAPI_GetPerformanceInfo ' +
4356 'WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory ' +
4357 'WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect ' +
4358 'WinAPI_GetPriorityClass WinAPI_GetProcAddress ' +
4359 'WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine ' +
4360 'WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount ' +
4361 'WinAPI_GetProcessID WinAPI_GetProcessIoCounters ' +
4362 'WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName ' +
4363 'WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes ' +
4364 'WinAPI_GetProcessUser WinAPI_GetProcessWindowStation ' +
4365 'WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory ' +
4366 'WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer ' +
4367 'WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData ' +
4368 'WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData ' +
4369 'WinAPI_GetRegisteredRawInputDevices ' +
4370 'WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 ' +
4371 'WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow ' +
4372 'WinAPI_GetStartupInfo WinAPI_GetStdHandle ' +
4373 'WinAPI_GetStockObject WinAPI_GetStretchBltMode ' +
4374 'WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush ' +
4375 'WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID ' +
4376 'WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy ' +
4377 'WinAPI_GetSystemInfo WinAPI_GetSystemMetrics ' +
4378 'WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes ' +
4379 'WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent ' +
4380 'WinAPI_GetTempFileName WinAPI_GetTextAlign ' +
4381 'WinAPI_GetTextCharacterExtra WinAPI_GetTextColor ' +
4382 'WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace ' +
4383 'WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties ' +
4384 'WinAPI_GetThemeBackgroundContentRect ' +
4385 'WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion ' +
4386 'WinAPI_GetThemeBitmap WinAPI_GetThemeBool ' +
4387 'WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty ' +
4388 'WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename ' +
4389 'WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins ' +
4390 'WinAPI_GetThemeMetric WinAPI_GetThemePartSize ' +
4391 'WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin ' +
4392 'WinAPI_GetThemeRect WinAPI_GetThemeString ' +
4393 'WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor ' +
4394 'WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont ' +
4395 'WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize ' +
4396 'WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent ' +
4397 'WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration ' +
4398 'WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode ' +
4399 'WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage ' +
4400 'WinAPI_GetTickCount WinAPI_GetTickCount64 ' +
4401 'WinAPI_GetTimeFormat WinAPI_GetTopWindow ' +
4402 'WinAPI_GetUDFColorMode WinAPI_GetUpdateRect ' +
4403 'WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID ' +
4404 'WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage ' +
4405 'WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation ' +
4406 'WinAPI_GetVersion WinAPI_GetVersionEx ' +
4407 'WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle ' +
4408 'WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow ' +
4409 'WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity ' +
4410 'WinAPI_GetWindowExt WinAPI_GetWindowFileName ' +
4411 'WinAPI_GetWindowHeight WinAPI_GetWindowInfo ' +
4412 'WinAPI_GetWindowLong WinAPI_GetWindowOrg ' +
4413 'WinAPI_GetWindowPlacement WinAPI_GetWindowRect ' +
4414 'WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox ' +
4415 'WinAPI_GetWindowSubclass WinAPI_GetWindowText ' +
4416 'WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId ' +
4417 'WinAPI_GetWindowWidth WinAPI_GetWorkArea ' +
4418 'WinAPI_GetWorldTransform WinAPI_GetXYFromPoint ' +
4419 'WinAPI_GlobalMemoryStatus WinAPI_GradientFill ' +
4420 'WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData ' +
4421 'WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret ' +
4422 'WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect ' +
4423 'WinAPI_InitMUILanguage WinAPI_InProcess ' +
4424 'WinAPI_IntersectClipRect WinAPI_IntersectRect ' +
4425 'WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect ' +
4426 'WinAPI_InvalidateRgn WinAPI_InvertANDBitmap ' +
4427 'WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn ' +
4428 'WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr ' +
4429 'WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr ' +
4430 'WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName ' +
4431 'WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow ' +
4432 'WinAPI_IsIconic WinAPI_IsInternetConnected ' +
4433 'WinAPI_IsLoadKBLayout WinAPI_IsMemory ' +
4434 'WinAPI_IsNameInExpression WinAPI_IsNetworkAlive ' +
4435 'WinAPI_IsPathShared WinAPI_IsProcessInJob ' +
4436 'WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty ' +
4437 'WinAPI_IsThemeActive ' +
4438 'WinAPI_IsThemeBackgroundPartiallyTransparent ' +
4439 'WinAPI_IsThemePartDefined WinAPI_IsValidLocale ' +
4440 'WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode ' +
4441 'WinAPI_IsWindowVisible WinAPI_IsWow64Process ' +
4442 'WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event ' +
4443 'WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo ' +
4444 'WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile ' +
4445 'WinAPI_LoadIcon WinAPI_LoadIconMetric ' +
4446 'WinAPI_LoadIconWithScaleDown WinAPI_LoadImage ' +
4447 'WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout ' +
4448 'WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia ' +
4449 'WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString ' +
4450 'WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree ' +
4451 'WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource ' +
4452 'WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord ' +
4453 'WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx ' +
4454 'WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID ' +
4455 'WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord ' +
4456 'WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey ' +
4457 'WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck ' +
4458 'WinAPI_MessageBoxIndirect WinAPI_MirrorIcon ' +
4459 'WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint ' +
4460 'WinAPI_MonitorFromRect WinAPI_MonitorFromWindow ' +
4461 'WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory ' +
4462 'WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow ' +
4463 'WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar ' +
4464 'WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError ' +
4465 'WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints ' +
4466 'WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg ' +
4467 'WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg ' +
4468 'WinAPI_OpenFileMapping WinAPI_OpenIcon ' +
4469 'WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex ' +
4470 'WinAPI_OpenProcess WinAPI_OpenProcessToken ' +
4471 'WinAPI_OpenSemaphore WinAPI_OpenThemeData ' +
4472 'WinAPI_OpenWindowStation WinAPI_PageSetupDlg ' +
4473 'WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL ' +
4474 'WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash ' +
4475 'WinAPI_PathAddExtension WinAPI_PathAppend ' +
4476 'WinAPI_PathBuildRoot WinAPI_PathCanonicalize ' +
4477 'WinAPI_PathCommonPrefix WinAPI_PathCompactPath ' +
4478 'WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl ' +
4479 'WinAPI_PathFindExtension WinAPI_PathFindFileName ' +
4480 'WinAPI_PathFindNextComponent WinAPI_PathFindOnPath ' +
4481 'WinAPI_PathGetArgs WinAPI_PathGetCharType ' +
4482 'WinAPI_PathGetDriveNumber WinAPI_PathIsContentType ' +
4483 'WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty ' +
4484 'WinAPI_PathIsExe WinAPI_PathIsFileSpec ' +
4485 'WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative ' +
4486 'WinAPI_PathIsRoot WinAPI_PathIsSameRoot ' +
4487 'WinAPI_PathIsSystemFolder WinAPI_PathIsUNC ' +
4488 'WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare ' +
4489 'WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec ' +
4490 'WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo ' +
4491 'WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash ' +
4492 'WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec ' +
4493 'WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify ' +
4494 'WinAPI_PathSkipRoot WinAPI_PathStripPath ' +
4495 'WinAPI_PathStripToRoot WinAPI_PathToRegion ' +
4496 'WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings ' +
4497 'WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces ' +
4498 'WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg ' +
4499 'WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt ' +
4500 'WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo ' +
4501 'WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage ' +
4502 'WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx ' +
4503 'WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect ' +
4504 'WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible ' +
4505 'WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject ' +
4506 'WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency ' +
4507 'WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges ' +
4508 'WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle ' +
4509 'WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible ' +
4510 'WinAPI_RedrawWindow WinAPI_RegCloseKey ' +
4511 'WinAPI_RegConnectRegistry WinAPI_RegCopyTree ' +
4512 'WinAPI_RegCopyTreeEx WinAPI_RegCreateKey ' +
4513 'WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey ' +
4514 'WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree ' +
4515 'WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue ' +
4516 'WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey ' +
4517 'WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey ' +
4518 'WinAPI_RegEnumValue WinAPI_RegFlushKey ' +
4519 'WinAPI_RegisterApplicationRestart WinAPI_RegisterClass ' +
4520 'WinAPI_RegisterClassEx WinAPI_RegisterHotKey ' +
4521 'WinAPI_RegisterPowerSettingNotification ' +
4522 'WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow ' +
4523 'WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString ' +
4524 'WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey ' +
4525 'WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime ' +
4526 'WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey ' +
4527 'WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey ' +
4528 'WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC ' +
4529 'WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore ' +
4530 'WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener ' +
4531 'WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx ' +
4532 'WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass ' +
4533 'WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg ' +
4534 'WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC ' +
4535 'WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect ' +
4536 'WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile ' +
4537 'WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt ' +
4538 'WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath ' +
4539 'WinAPI_SelectClipRgn WinAPI_SelectObject ' +
4540 'WinAPI_SendMessageTimeout WinAPI_SetActiveWindow ' +
4541 'WinAPI_SetArcDirection WinAPI_SetBitmapBits ' +
4542 'WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor ' +
4543 'WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg ' +
4544 'WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos ' +
4545 'WinAPI_SetClassLongEx WinAPI_SetColorAdjustment ' +
4546 'WinAPI_SetCompression WinAPI_SetCurrentDirectory ' +
4547 'WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor ' +
4548 'WinAPI_SetDCBrushColor WinAPI_SetDCPenColor ' +
4549 'WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp ' +
4550 'WinAPI_SetDIBColorTable WinAPI_SetDIBits ' +
4551 'WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory ' +
4552 'WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits ' +
4553 'WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes ' +
4554 'WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer ' +
4555 'WinAPI_SetFilePointerEx WinAPI_SetFileShortName ' +
4556 'WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont ' +
4557 'WinAPI_SetForegroundWindow WinAPI_SetFRBuffer ' +
4558 'WinAPI_SetGraphicsMode WinAPI_SetHandleInformation ' +
4559 'WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout ' +
4560 'WinAPI_SetKeyboardState WinAPI_SetLastError ' +
4561 'WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo ' +
4562 'WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent ' +
4563 'WinAPI_SetPixel WinAPI_SetPolyFillMode ' +
4564 'WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask ' +
4565 'WinAPI_SetProcessShutdownParameters ' +
4566 'WinAPI_SetProcessWindowStation WinAPI_SetRectRgn ' +
4567 'WinAPI_SetROP2 WinAPI_SetSearchPathMode ' +
4568 'WinAPI_SetStretchBltMode WinAPI_SetSysColors ' +
4569 'WinAPI_SetSystemCursor WinAPI_SetTextAlign ' +
4570 'WinAPI_SetTextCharacterExtra WinAPI_SetTextColor ' +
4571 'WinAPI_SetTextJustification WinAPI_SetThemeAppProperties ' +
4572 'WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode ' +
4573 'WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale ' +
4574 'WinAPI_SetThreadUILanguage WinAPI_SetTimer ' +
4575 'WinAPI_SetUDFColorMode WinAPI_SetUserGeoID ' +
4576 'WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint ' +
4577 'WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt ' +
4578 'WinAPI_SetWindowLong WinAPI_SetWindowOrg ' +
4579 'WinAPI_SetWindowPlacement WinAPI_SetWindowPos ' +
4580 'WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx ' +
4581 'WinAPI_SetWindowSubclass WinAPI_SetWindowText ' +
4582 'WinAPI_SetWindowTheme WinAPI_SetWinEventHook ' +
4583 'WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected ' +
4584 'WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg ' +
4585 'WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify ' +
4586 'WinAPI_ShellChangeNotifyDeregister ' +
4587 'WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory ' +
4588 'WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute ' +
4589 'WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon ' +
4590 'WinAPI_ShellExtractIcon WinAPI_ShellFileOperation ' +
4591 'WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo ' +
4592 'WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList ' +
4593 'WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath ' +
4594 'WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList ' +
4595 'WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings ' +
4596 'WinAPI_ShellGetSpecialFolderLocation ' +
4597 'WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo ' +
4598 'WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon ' +
4599 'WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties ' +
4600 'WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg ' +
4601 'WinAPI_ShellQueryRecycleBin ' +
4602 'WinAPI_ShellQueryUserNotificationState ' +
4603 'WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted ' +
4604 'WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName ' +
4605 'WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg ' +
4606 'WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg ' +
4607 'WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord ' +
4608 'WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError ' +
4609 'WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups ' +
4610 'WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate ' +
4611 'WinAPI_ShutdownBlockReasonDestroy ' +
4612 'WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource ' +
4613 'WinAPI_StretchBlt WinAPI_StretchDIBits ' +
4614 'WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx ' +
4615 'WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval ' +
4616 'WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW ' +
4617 'WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath ' +
4618 'WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect ' +
4619 'WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord ' +
4620 'WinAPI_SwitchColor WinAPI_SwitchDesktop ' +
4621 'WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo ' +
4622 'WinAPI_TabbedTextOut WinAPI_TerminateJobObject ' +
4623 'WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows ' +
4624 'WinAPI_TrackMouseEvent WinAPI_TransparentBlt ' +
4625 'WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY ' +
4626 'WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent ' +
4627 'WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID ' +
4628 'WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile ' +
4629 'WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart ' +
4630 'WinAPI_UnregisterClass WinAPI_UnregisterHotKey ' +
4631 'WinAPI_UnregisterPowerSettingNotification ' +
4632 'WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx ' +
4633 'WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource ' +
4634 'WinAPI_UpdateWindow WinAPI_UrlApplyScheme ' +
4635 'WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare ' +
4636 'WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart ' +
4637 'WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess ' +
4638 'WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot ' +
4639 'WinAPI_VerQueryValue WinAPI_VerQueryValueEx ' +
4640 'WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects ' +
4641 'WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte ' +
4642 'WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint ' +
4643 'WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection ' +
4644 'WinAPI_WriteConsole WinAPI_WriteFile ' +
4645 'WinAPI_WriteProcessMemory WinAPI_ZeroMemory ' +
4646 'WinNet_AddConnection WinNet_AddConnection2 ' +
4647 'WinNet_AddConnection3 WinNet_CancelConnection ' +
4648 'WinNet_CancelConnection2 WinNet_CloseEnum ' +
4649 'WinNet_ConnectionDialog WinNet_ConnectionDialog1 ' +
4650 'WinNet_DisconnectDialog WinNet_DisconnectDialog1 ' +
4651 'WinNet_EnumResource WinNet_GetConnection ' +
4652 'WinNet_GetConnectionPerformance WinNet_GetLastError ' +
4653 'WinNet_GetNetworkInformation WinNet_GetProviderName ' +
4654 'WinNet_GetResourceInformation WinNet_GetResourceParent ' +
4655 'WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum ' +
4656 'WinNet_RestoreConnection WinNet_UseConnection Word_Create ' +
4657 'Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport ' +
4658 'Word_DocFind Word_DocFindReplace Word_DocGet ' +
4659 'Word_DocLinkAdd Word_DocLinkGet Word_DocOpen ' +
4660 'Word_DocPictureAdd Word_DocPrint Word_DocRangeSet ' +
4661 'Word_DocSave Word_DocSaveAs Word_DocTableRead ' +
4662 'Word_DocTableWrite Word_Quit',
4663
4664 COMMENT = {
4665 variants: [
4666 hljs.COMMENT(';', '$', {relevance: 0}),
4667 hljs.COMMENT('#cs', '#ce'),
4668 hljs.COMMENT('#comments-start', '#comments-end')
4669 ]
4670 },
4671
4672 VARIABLE = {
4673 begin: '\\$[A-z0-9_]+'
4674 },
4675
4676 STRING = {
4677 className: 'string',
4678 variants: [{
4679 begin: /"/,
4680 end: /"/,
4681 contains: [{
4682 begin: /""/,
4683 relevance: 0
4684 }]
4685 }, {
4686 begin: /'/,
4687 end: /'/,
4688 contains: [{
4689 begin: /''/,
4690 relevance: 0
4691 }]
4692 }]
4693 },
4694
4695 NUMBER = {
4696 variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
4697 },
4698
4699 PREPROCESSOR = {
4700 className: 'meta',
4701 begin: '#',
4702 end: '$',
4703 keywords: {'meta-keyword': 'include include-once NoTrayIcon OnAutoItStartRegister RequireAdmin pragma ' +
4704 'Au3Stripper_Ignore_Funcs Au3Stripper_Ignore_Variables ' +
4705 'Au3Stripper_Off Au3Stripper_On Au3Stripper_Parameters ' +
4706 'AutoIt3Wrapper_Add_Constants AutoIt3Wrapper_Au3Check_Parameters ' +
4707 'AutoIt3Wrapper_Au3Check_Stop_OnWarning AutoIt3Wrapper_Aut2Exe ' +
4708 'AutoIt3Wrapper_AutoIt3 AutoIt3Wrapper_AutoIt3Dir ' +
4709 'AutoIt3Wrapper_Change2CUI AutoIt3Wrapper_Compile_Both ' +
4710 'AutoIt3Wrapper_Compression AutoIt3Wrapper_EndIf ' +
4711 'AutoIt3Wrapper_Icon AutoIt3Wrapper_If_Compile ' +
4712 'AutoIt3Wrapper_If_Run AutoIt3Wrapper_Jump_To_First_Error ' +
4713 'AutoIt3Wrapper_OutFile AutoIt3Wrapper_OutFile_Type ' +
4714 'AutoIt3Wrapper_OutFile_X64 AutoIt3Wrapper_PlugIn_Funcs ' +
4715 'AutoIt3Wrapper_Res_Comment Autoit3Wrapper_Res_Compatibility ' +
4716 'AutoIt3Wrapper_Res_Description AutoIt3Wrapper_Res_Field ' +
4717 'AutoIt3Wrapper_Res_File_Add AutoIt3Wrapper_Res_FileVersion ' +
4718 'AutoIt3Wrapper_Res_FileVersion_AutoIncrement ' +
4719 'AutoIt3Wrapper_Res_Icon_Add AutoIt3Wrapper_Res_Language ' +
4720 'AutoIt3Wrapper_Res_LegalCopyright ' +
4721 'AutoIt3Wrapper_Res_ProductVersion ' +
4722 'AutoIt3Wrapper_Res_requestedExecutionLevel ' +
4723 'AutoIt3Wrapper_Res_SaveSource AutoIt3Wrapper_Run_After ' +
4724 'AutoIt3Wrapper_Run_Au3Check AutoIt3Wrapper_Run_Au3Stripper ' +
4725 'AutoIt3Wrapper_Run_Before AutoIt3Wrapper_Run_Debug_Mode ' +
4726 'AutoIt3Wrapper_Run_SciTE_Minimized ' +
4727 'AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized ' +
4728 'AutoIt3Wrapper_Run_Tidy AutoIt3Wrapper_ShowProgress ' +
4729 'AutoIt3Wrapper_Testing AutoIt3Wrapper_Tidy_Stop_OnError ' +
4730 'AutoIt3Wrapper_UPX_Parameters AutoIt3Wrapper_UseUPX ' +
4731 'AutoIt3Wrapper_UseX64 AutoIt3Wrapper_Version ' +
4732 'AutoIt3Wrapper_Versioning AutoIt3Wrapper_Versioning_Parameters ' +
4733 'Tidy_Off Tidy_On Tidy_Parameters EndRegion Region'},
4734 contains: [{
4735 begin: /\\\n/,
4736 relevance: 0
4737 }, {
4738 beginKeywords: 'include',
4739 keywords: {'meta-keyword': 'include'},
4740 end: '$',
4741 contains: [
4742 STRING, {
4743 className: 'meta-string',
4744 variants: [{
4745 begin: '<',
4746 end: '>'
4747 }, {
4748 begin: /"/,
4749 end: /"/,
4750 contains: [{
4751 begin: /""/,
4752 relevance: 0
4753 }]
4754 }, {
4755 begin: /'/,
4756 end: /'/,
4757 contains: [{
4758 begin: /''/,
4759 relevance: 0
4760 }]
4761 }]
4762 }
4763 ]
4764 },
4765 STRING,
4766 COMMENT
4767 ]
4768 },
4769
4770 CONSTANT = {
4771 className: 'symbol',
4772 // begin: '@',
4773 // end: '$',
4774 // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR',
4775 // relevance: 5
4776 begin: '@[A-z0-9_]+'
4777 },
4778
4779 FUNCTION = {
4780 className: 'function',
4781 beginKeywords: 'Func',
4782 end: '$',
4783 illegal: '\\$|\\[|%',
4784 contains: [
4785 hljs.UNDERSCORE_TITLE_MODE, {
4786 className: 'params',
4787 begin: '\\(',
4788 end: '\\)',
4789 contains: [
4790 VARIABLE,
4791 STRING,
4792 NUMBER
4793 ]
4794 }
4795 ]
4796 };
4797
4798 return {
4799 case_insensitive: true,
4800 illegal: /\/\*/,
4801 keywords: {
4802 keyword: KEYWORDS,
4803 built_in: BUILT_IN,
4804 literal: LITERAL
4805 },
4806 contains: [
4807 COMMENT,
4808 VARIABLE,
4809 STRING,
4810 NUMBER,
4811 PREPROCESSOR,
4812 CONSTANT,
4813 FUNCTION
4814 ]
4815 }
4816}
4817},{name:"avrasm",create:/*
4818Language: AVR Assembler
4819Author: Vladimir Ermakov <vooon341@gmail.com>
4820Category: assembler
4821*/
4822
4823function(hljs) {
4824 return {
4825 case_insensitive: true,
4826 lexemes: '\\.?' + hljs.IDENT_RE,
4827 keywords: {
4828 keyword:
4829 /* mnemonic */
4830 'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +
4831 'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +
4832 'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +
4833 'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +
4834 'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +
4835 'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +
4836 'subi swap tst wdr',
4837 built_in:
4838 /* general purpose registers */
4839 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +
4840 'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +
4841 /* IO Registers (ATMega128) */
4842 'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +
4843 'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +
4844 'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +
4845 'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +
4846 'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +
4847 'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +
4848 'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +
4849 'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',
4850 meta:
4851 '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +
4852 '.listmac .macro .nolist .org .set'
4853 },
4854 contains: [
4855 hljs.C_BLOCK_COMMENT_MODE,
4856 hljs.COMMENT(
4857 ';',
4858 '$',
4859 {
4860 relevance: 0
4861 }
4862 ),
4863 hljs.C_NUMBER_MODE, // 0x..., decimal, float
4864 hljs.BINARY_NUMBER_MODE, // 0b...
4865 {
4866 className: 'number',
4867 begin: '\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...
4868 },
4869 hljs.QUOTE_STRING_MODE,
4870 {
4871 className: 'string',
4872 begin: '\'', end: '[^\\\\]\'',
4873 illegal: '[^\\\\][^\']'
4874 },
4875 {className: 'symbol', begin: '^[A-Za-z0-9_.$]+:'},
4876 {className: 'meta', begin: '#', end: '$'},
4877 { // ะฟะพะดัั‚ะฐะฝะพะฒะบะฐ ะฒ ยซ.macroยป
4878 className: 'subst',
4879 begin: '@[0-9]+'
4880 }
4881 ]
4882 };
4883}
4884},{name:"axapta",create:/*
4885Language: Axapta
4886Author: Dmitri Roudakov <dmitri@roudakov.ru>
4887Category: enterprise
4888*/
4889
4890function(hljs) {
4891 return {
4892 keywords: 'false int abstract private char boolean static null if for true ' +
4893 'while long throw finally protected final return void enum else ' +
4894 'break new catch byte super case short default double public try this switch ' +
4895 'continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count ' +
4896 'order group by asc desc index hint like dispaly edit client server ttsbegin ' +
4897 'ttscommit str real date container anytype common div mod',
4898 contains: [
4899 hljs.C_LINE_COMMENT_MODE,
4900 hljs.C_BLOCK_COMMENT_MODE,
4901 hljs.APOS_STRING_MODE,
4902 hljs.QUOTE_STRING_MODE,
4903 hljs.C_NUMBER_MODE,
4904 {
4905 className: 'meta',
4906 begin: '#', end: '$'
4907 },
4908 {
4909 className: 'class',
4910 beginKeywords: 'class interface', end: '{', excludeEnd: true,
4911 illegal: ':',
4912 contains: [
4913 {beginKeywords: 'extends implements'},
4914 hljs.UNDERSCORE_TITLE_MODE
4915 ]
4916 }
4917 ]
4918 };
4919}
4920},{name:"bash",create:/*
4921Language: Bash
4922Author: vah <vahtenberg@gmail.com>
4923Contributrors: Benjamin Pannell <contact@sierrasoftworks.com>
4924Category: common
4925*/
4926
4927function(hljs) {
4928 var VAR = {
4929 className: 'variable',
4930 variants: [
4931 {begin: /\$[\w\d#@][\w\d_]*/},
4932 {begin: /\$\{(.*?)}/}
4933 ]
4934 };
4935 var QUOTE_STRING = {
4936 className: 'string',
4937 begin: /"/, end: /"/,
4938 contains: [
4939 hljs.BACKSLASH_ESCAPE,
4940 VAR,
4941 {
4942 className: 'variable',
4943 begin: /\$\(/, end: /\)/,
4944 contains: [hljs.BACKSLASH_ESCAPE]
4945 }
4946 ]
4947 };
4948 var APOS_STRING = {
4949 className: 'string',
4950 begin: /'/, end: /'/
4951 };
4952
4953 return {
4954 aliases: ['sh', 'zsh'],
4955 lexemes: /-?[a-z\.]+/,
4956 keywords: {
4957 keyword:
4958 'if then else elif fi for while in do done case esac function',
4959 literal:
4960 'true false',
4961 built_in:
4962 // Shell built-ins
4963 // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
4964 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +
4965 'trap umask unset ' +
4966 // Bash built-ins
4967 'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +
4968 'read readarray source type typeset ulimit unalias ' +
4969 // Shell modifiers
4970 'set shopt ' +
4971 // Zsh built-ins
4972 'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +
4973 'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +
4974 'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +
4975 'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +
4976 'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +
4977 'zpty zregexparse zsocket zstyle ztcp',
4978 _:
4979 '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster
4980 },
4981 contains: [
4982 {
4983 className: 'meta',
4984 begin: /^#![^\n]+sh\s*$/,
4985 relevance: 10
4986 },
4987 {
4988 className: 'function',
4989 begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
4990 returnBegin: true,
4991 contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\w[\w\d_]*/})],
4992 relevance: 0
4993 },
4994 hljs.HASH_COMMENT_MODE,
4995 QUOTE_STRING,
4996 APOS_STRING,
4997 VAR
4998 ]
4999 };
5000}
5001},{name:"brainfuck",create:/*
5002Language: Brainfuck
5003Author: Evgeny Stepanischev <imbolk@gmail.com>
5004*/
5005
5006function(hljs){
5007 var LITERAL = {
5008 className: 'literal',
5009 begin: '[\\+\\-]',
5010 relevance: 0
5011 };
5012 return {
5013 aliases: ['bf'],
5014 contains: [
5015 hljs.COMMENT(
5016 '[^\\[\\]\\.,\\+\\-<> \r\n]',
5017 '[\\[\\]\\.,\\+\\-<> \r\n]',
5018 {
5019 returnEnd: true,
5020 relevance: 0
5021 }
5022 ),
5023 {
5024 className: 'title',
5025 begin: '[\\[\\]]',
5026 relevance: 0
5027 },
5028 {
5029 className: 'string',
5030 begin: '[\\.,]',
5031 relevance: 0
5032 },
5033 {
5034 // this mode works as the only relevance counter
5035 begin: /\+\+|\-\-/, returnBegin: true,
5036 contains: [LITERAL]
5037 },
5038 LITERAL
5039 ]
5040 };
5041}
5042},{name:"cal",create:/*
5043Language: C/AL
5044Author: Kenneth Fuglsang Christensen <kfuglsang@gmail.com>
5045Description: Provides highlighting of Microsoft Dynamics NAV C/AL code files
5046*/
5047
5048function(hljs) {
5049 var KEYWORDS =
5050 'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +
5051 'until while with var';
5052 var LITERALS = 'false true';
5053 var COMMENT_MODES = [
5054 hljs.C_LINE_COMMENT_MODE,
5055 hljs.COMMENT(
5056 /\{/,
5057 /\}/,
5058 {
5059 relevance: 0
5060 }
5061 ),
5062 hljs.COMMENT(
5063 /\(\*/,
5064 /\*\)/,
5065 {
5066 relevance: 10
5067 }
5068 )
5069 ];
5070 var STRING = {
5071 className: 'string',
5072 begin: /'/, end: /'/,
5073 contains: [{begin: /''/}]
5074 };
5075 var CHAR_STRING = {
5076 className: 'string', begin: /(#\d+)+/
5077 };
5078 var DATE = {
5079 className: 'number',
5080 begin: '\\b\\d+(\\.\\d+)?(DT|D|T)',
5081 relevance: 0
5082 };
5083 var DBL_QUOTED_VARIABLE = {
5084 className: 'string', // not a string technically but makes sense to be highlighted in the same style
5085 begin: '"',
5086 end: '"'
5087 };
5088
5089 var PROCEDURE = {
5090 className: 'function',
5091 beginKeywords: 'procedure', end: /[:;]/,
5092 keywords: 'procedure|10',
5093 contains: [
5094 hljs.TITLE_MODE,
5095 {
5096 className: 'params',
5097 begin: /\(/, end: /\)/,
5098 keywords: KEYWORDS,
5099 contains: [STRING, CHAR_STRING]
5100 }
5101 ].concat(COMMENT_MODES)
5102 };
5103
5104 var OBJECT = {
5105 className: 'class',
5106 begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)',
5107 returnBegin: true,
5108 contains: [
5109 hljs.TITLE_MODE,
5110 PROCEDURE
5111 ]
5112 };
5113
5114 return {
5115 case_insensitive: true,
5116 keywords: { keyword: KEYWORDS, literal: LITERALS },
5117 illegal: /\/\*/,
5118 contains: [
5119 STRING, CHAR_STRING,
5120 DATE, DBL_QUOTED_VARIABLE,
5121 hljs.NUMBER_MODE,
5122 OBJECT,
5123 PROCEDURE
5124 ]
5125 };
5126}
5127},{name:"capnproto",create:/*
5128Language: Capโ€™n Proto
5129Author: Oleg Efimov <efimovov@gmail.com>
5130Description: Capโ€™n Proto message definition format
5131Category: protocols
5132*/
5133
5134function(hljs) {
5135 return {
5136 aliases: ['capnp'],
5137 keywords: {
5138 keyword:
5139 'struct enum interface union group import using const annotation extends in of on as with from fixed',
5140 built_in:
5141 'Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 ' +
5142 'Text Data AnyPointer AnyStruct Capability List',
5143 literal:
5144 'true false'
5145 },
5146 contains: [
5147 hljs.QUOTE_STRING_MODE,
5148 hljs.NUMBER_MODE,
5149 hljs.HASH_COMMENT_MODE,
5150 {
5151 className: 'meta',
5152 begin: /@0x[\w\d]{16};/,
5153 illegal: /\n/
5154 },
5155 {
5156 className: 'symbol',
5157 begin: /@\d+\b/
5158 },
5159 {
5160 className: 'class',
5161 beginKeywords: 'struct enum', end: /\{/,
5162 illegal: /\n/,
5163 contains: [
5164 hljs.inherit(hljs.TITLE_MODE, {
5165 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
5166 })
5167 ]
5168 },
5169 {
5170 className: 'class',
5171 beginKeywords: 'interface', end: /\{/,
5172 illegal: /\n/,
5173 contains: [
5174 hljs.inherit(hljs.TITLE_MODE, {
5175 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
5176 })
5177 ]
5178 }
5179 ]
5180 };
5181}
5182},{name:"ceylon",create:/*
5183Language: Ceylon
5184Author: Lucas Werkmeister <mail@lucaswerkmeister.de>
5185*/
5186function(hljs) {
5187 // 2.3. Identifiers and keywords
5188 var KEYWORDS =
5189 'assembly module package import alias class interface object given value ' +
5190 'assign void function new of extends satisfies abstracts in out return ' +
5191 'break continue throw assert dynamic if else switch case for while try ' +
5192 'catch finally then let this outer super is exists nonempty';
5193 // 7.4.1 Declaration Modifiers
5194 var DECLARATION_MODIFIERS =
5195 'shared abstract formal default actual variable late native deprecated' +
5196 'final sealed annotation suppressWarnings small';
5197 // 7.4.2 Documentation
5198 var DOCUMENTATION =
5199 'doc by license see throws tagged';
5200 var SUBST = {
5201 className: 'subst', excludeBegin: true, excludeEnd: true,
5202 begin: /``/, end: /``/,
5203 keywords: KEYWORDS,
5204 relevance: 10
5205 };
5206 var EXPRESSIONS = [
5207 {
5208 // verbatim string
5209 className: 'string',
5210 begin: '"""',
5211 end: '"""',
5212 relevance: 10
5213 },
5214 {
5215 // string literal or template
5216 className: 'string',
5217 begin: '"', end: '"',
5218 contains: [SUBST]
5219 },
5220 {
5221 // character literal
5222 className: 'string',
5223 begin: "'",
5224 end: "'"
5225 },
5226 {
5227 // numeric literal
5228 className: 'number',
5229 begin: '#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?',
5230 relevance: 0
5231 }
5232 ];
5233 SUBST.contains = EXPRESSIONS;
5234
5235 return {
5236 keywords: {
5237 keyword: KEYWORDS + ' ' + DECLARATION_MODIFIERS,
5238 meta: DOCUMENTATION
5239 },
5240 illegal: '\\$[^01]|#[^0-9a-fA-F]',
5241 contains: [
5242 hljs.C_LINE_COMMENT_MODE,
5243 hljs.COMMENT('/\\*', '\\*/', {contains: ['self']}),
5244 {
5245 // compiler annotation
5246 className: 'meta',
5247 begin: '@[a-z]\\w*(?:\\:\"[^\"]*\")?'
5248 }
5249 ].concat(EXPRESSIONS)
5250 };
5251}
5252},{name:"clojure-repl",create:/*
5253Language: Clojure REPL
5254Description: Clojure REPL sessions
5255Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
5256Requires: clojure.js
5257Category: lisp
5258*/
5259
5260function(hljs) {
5261 return {
5262 contains: [
5263 {
5264 className: 'meta',
5265 begin: /^([\w.-]+|\s*#_)=>/,
5266 starts: {
5267 end: /$/,
5268 subLanguage: 'clojure'
5269 }
5270 }
5271 ]
5272 }
5273}
5274},{name:"clojure",create:/*
5275Language: Clojure
5276Description: Clojure syntax (based on lisp.js)
5277Author: mfornos
5278Category: lisp
5279*/
5280
5281function(hljs) {
5282 var keywords = {
5283 'builtin-name':
5284 // Clojure keywords
5285 'def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem '+
5286 'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? '+
5287 'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? '+
5288 'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? '+
5289 'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . '+
5290 'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last '+
5291 'drop-while while intern condp case reduced cycle split-at split-with repeat replicate '+
5292 'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext '+
5293 'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends '+
5294 'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler '+
5295 'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter '+
5296 'monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or '+
5297 'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert '+
5298 'peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast '+
5299 'sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import '+
5300 'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! '+
5301 'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger '+
5302 'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline '+
5303 'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking '+
5304 'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! '+
5305 'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! '+
5306 'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty '+
5307 'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list '+
5308 'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer '+
5309 'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate '+
5310 'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta '+
5311 'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'
5312 };
5313
5314 var SYMBOLSTART = 'a-zA-Z_\\-!.?+*=<>&#\'';
5315 var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';
5316 var SIMPLE_NUMBER_RE = '[-+]?\\d+(\\.\\d+)?';
5317
5318 var SYMBOL = {
5319 begin: SYMBOL_RE,
5320 relevance: 0
5321 };
5322 var NUMBER = {
5323 className: 'number', begin: SIMPLE_NUMBER_RE,
5324 relevance: 0
5325 };
5326 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
5327 var COMMENT = hljs.COMMENT(
5328 ';',
5329 '$',
5330 {
5331 relevance: 0
5332 }
5333 );
5334 var LITERAL = {
5335 className: 'literal',
5336 begin: /\b(true|false|nil)\b/
5337 };
5338 var COLLECTION = {
5339 begin: '[\\[\\{]', end: '[\\]\\}]'
5340 };
5341 var HINT = {
5342 className: 'comment',
5343 begin: '\\^' + SYMBOL_RE
5344 };
5345 var HINT_COL = hljs.COMMENT('\\^\\{', '\\}');
5346 var KEY = {
5347 className: 'symbol',
5348 begin: '[:]' + SYMBOL_RE
5349 };
5350 var LIST = {
5351 begin: '\\(', end: '\\)'
5352 };
5353 var BODY = {
5354 endsWithParent: true,
5355 relevance: 0
5356 };
5357 var NAME = {
5358 keywords: keywords,
5359 lexemes: SYMBOL_RE,
5360 className: 'name', begin: SYMBOL_RE,
5361 starts: BODY
5362 };
5363 var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];
5364
5365 LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];
5366 BODY.contains = DEFAULT_CONTAINS;
5367 COLLECTION.contains = DEFAULT_CONTAINS;
5368
5369 return {
5370 aliases: ['clj'],
5371 illegal: /\S/,
5372 contains: [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]
5373 }
5374}
5375},{name:"cmake",create:/*
5376Language: CMake
5377Description: CMake is an open-source cross-platform system for build automation.
5378Author: Igor Kalnitsky <igor@kalnitsky.org>
5379Website: http://kalnitsky.org/
5380*/
5381
5382function(hljs) {
5383 return {
5384 aliases: ['cmake.in'],
5385 case_insensitive: true,
5386 keywords: {
5387 keyword:
5388 'add_custom_command add_custom_target add_definitions add_dependencies ' +
5389 'add_executable add_library add_subdirectory add_test aux_source_directory ' +
5390 'break build_command cmake_minimum_required cmake_policy configure_file ' +
5391 'create_test_sourcelist define_property else elseif enable_language enable_testing ' +
5392 'endforeach endfunction endif endmacro endwhile execute_process export find_file ' +
5393 'find_library find_package find_path find_program fltk_wrap_ui foreach function ' +
5394 'get_cmake_property get_directory_property get_filename_component get_property ' +
5395 'get_source_file_property get_target_property get_test_property if include ' +
5396 'include_directories include_external_msproject include_regular_expression install ' +
5397 'link_directories load_cache load_command macro mark_as_advanced message option ' +
5398 'output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return ' +
5399 'separate_arguments set set_directory_properties set_property ' +
5400 'set_source_files_properties set_target_properties set_tests_properties site_name ' +
5401 'source_group string target_link_libraries try_compile try_run unset variable_watch ' +
5402 'while build_name exec_program export_library_dependencies install_files ' +
5403 'install_programs install_targets link_libraries make_directory remove subdir_depends ' +
5404 'subdirs use_mangled_mesa utility_source variable_requires write_file ' +
5405 'qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or ' +
5406 'equal less greater strless strgreater strequal matches'
5407 },
5408 contains: [
5409 {
5410 className: 'variable',
5411 begin: '\\${', end: '}'
5412 },
5413 hljs.HASH_COMMENT_MODE,
5414 hljs.QUOTE_STRING_MODE,
5415 hljs.NUMBER_MODE
5416 ]
5417 };
5418}
5419},{name:"coffeescript",create:/*
5420Language: CoffeeScript
5421Author: Dmytrii Nagirniak <dnagir@gmail.com>
5422Contributors: Oleg Efimov <efimovov@gmail.com>, Cรฉdric Nรฉhรฉmie <cedric.nehemie@gmail.com>
5423Description: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/
5424Category: common, scripting
5425*/
5426
5427function(hljs) {
5428 var KEYWORDS = {
5429 keyword:
5430 // JS keywords
5431 'in if for while finally new do return else break catch instanceof throw try this ' +
5432 'switch continue typeof delete debugger super ' +
5433 // Coffee keywords
5434 'then unless until loop of by when and or is isnt not',
5435 literal:
5436 // JS literals
5437 'true false null undefined ' +
5438 // Coffee literals
5439 'yes no on off',
5440 built_in:
5441 'npm require console print module global window document'
5442 };
5443 var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
5444 var SUBST = {
5445 className: 'subst',
5446 begin: /#\{/, end: /}/,
5447 keywords: KEYWORDS
5448 };
5449 var EXPRESSIONS = [
5450 hljs.BINARY_NUMBER_MODE,
5451 hljs.inherit(hljs.C_NUMBER_MODE, {starts: {end: '(\\s*/)?', relevance: 0}}), // a number tries to eat the following slash to prevent treating it as a regexp
5452 {
5453 className: 'string',
5454 variants: [
5455 {
5456 begin: /'''/, end: /'''/,
5457 contains: [hljs.BACKSLASH_ESCAPE]
5458 },
5459 {
5460 begin: /'/, end: /'/,
5461 contains: [hljs.BACKSLASH_ESCAPE]
5462 },
5463 {
5464 begin: /"""/, end: /"""/,
5465 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
5466 },
5467 {
5468 begin: /"/, end: /"/,
5469 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
5470 }
5471 ]
5472 },
5473 {
5474 className: 'regexp',
5475 variants: [
5476 {
5477 begin: '///', end: '///',
5478 contains: [SUBST, hljs.HASH_COMMENT_MODE]
5479 },
5480 {
5481 begin: '//[gim]*',
5482 relevance: 0
5483 },
5484 {
5485 // regex can't start with space to parse x / 2 / 3 as two divisions
5486 // regex can't start with *, and it supports an "illegal" in the main mode
5487 begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
5488 }
5489 ]
5490 },
5491 {
5492 begin: '@' + JS_IDENT_RE // relevance booster
5493 },
5494 {
5495 begin: '`', end: '`',
5496 excludeBegin: true, excludeEnd: true,
5497 subLanguage: 'javascript'
5498 }
5499 ];
5500 SUBST.contains = EXPRESSIONS;
5501
5502 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
5503 var PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>';
5504 var PARAMS = {
5505 className: 'params',
5506 begin: '\\([^\\(]', returnBegin: true,
5507 /* We need another contained nameless mode to not have every nested
5508 pair of parens to be called "params" */
5509 contains: [{
5510 begin: /\(/, end: /\)/,
5511 keywords: KEYWORDS,
5512 contains: ['self'].concat(EXPRESSIONS)
5513 }]
5514 };
5515
5516 return {
5517 aliases: ['coffee', 'cson', 'iced'],
5518 keywords: KEYWORDS,
5519 illegal: /\/\*/,
5520 contains: EXPRESSIONS.concat([
5521 hljs.COMMENT('###', '###'),
5522 hljs.HASH_COMMENT_MODE,
5523 {
5524 className: 'function',
5525 begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, end: '[-=]>',
5526 returnBegin: true,
5527 contains: [TITLE, PARAMS]
5528 },
5529 {
5530 // anonymous function start
5531 begin: /[:\(,=]\s*/,
5532 relevance: 0,
5533 contains: [
5534 {
5535 className: 'function',
5536 begin: PARAMS_RE, end: '[-=]>',
5537 returnBegin: true,
5538 contains: [PARAMS]
5539 }
5540 ]
5541 },
5542 {
5543 className: 'class',
5544 beginKeywords: 'class',
5545 end: '$',
5546 illegal: /[:="\[\]]/,
5547 contains: [
5548 {
5549 beginKeywords: 'extends',
5550 endsWithParent: true,
5551 illegal: /[:="\[\]]/,
5552 contains: [TITLE]
5553 },
5554 TITLE
5555 ]
5556 },
5557 {
5558 begin: JS_IDENT_RE + ':', end: ':',
5559 returnBegin: true, returnEnd: true,
5560 relevance: 0
5561 }
5562 ])
5563 };
5564}
5565},{name:"cos",create:/*
5566Language: Cachรฉ Object Script
5567Author: Nikita Savchenko <zitros.lab@gmail.com>
5568Category: common
5569*/
5570function cos (hljs) {
5571
5572 var STRINGS = {
5573 className: 'string',
5574 variants: [
5575 {
5576 begin: '"',
5577 end: '"',
5578 contains: [{ // escaped
5579 begin: "\"\"",
5580 relevance: 0
5581 }]
5582 }
5583 ]
5584 };
5585
5586 var NUMBERS = {
5587 className: "number",
5588 begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)",
5589 relevance: 0
5590 };
5591
5592 var METHOD_TITLE = hljs.IDENT_RE + "\\s*\\(";
5593
5594 var COS_KEYWORDS = {
5595 keyword: [
5596
5597 "break", "catch", "close", "continue", "do", "d", "else",
5598 "elseif", "for", "goto", "halt", "hang", "h", "if", "job",
5599 "j", "kill", "k", "lock", "l", "merge", "new", "open", "quit",
5600 "q", "read", "r", "return", "set", "s", "tcommit", "throw",
5601 "trollback", "try", "tstart", "use", "view", "while", "write",
5602 "w", "xecute", "x", "zkill", "znspace", "zn", "ztrap", "zwrite",
5603 "zw", "zzdump", "zzwrite", "print", "zbreak", "zinsert", "zload",
5604 "zprint", "zremove", "zsave", "zzprint", "mv", "mvcall", "mvcrt",
5605 "mvdim", "mvprint", "zquit", "zsync", "ascii"
5606
5607 // registered function - no need in them due to all functions are highlighted,
5608 // but I'll just leave this here.
5609
5610 //"$bit", "$bitcount",
5611 //"$bitfind", "$bitlogic", "$case", "$char", "$classmethod", "$classname",
5612 //"$compile", "$data", "$decimal", "$double", "$extract", "$factor",
5613 //"$find", "$fnumber", "$get", "$increment", "$inumber", "$isobject",
5614 //"$isvaliddouble", "$isvalidnum", "$justify", "$length", "$list",
5615 //"$listbuild", "$listdata", "$listfind", "$listfromstring", "$listget",
5616 //"$listlength", "$listnext", "$listsame", "$listtostring", "$listvalid",
5617 //"$locate", "$match", "$method", "$name", "$nconvert", "$next",
5618 //"$normalize", "$now", "$number", "$order", "$parameter", "$piece",
5619 //"$prefetchoff", "$prefetchon", "$property", "$qlength", "$qsubscript",
5620 //"$query", "$random", "$replace", "$reverse", "$sconvert", "$select",
5621 //"$sortbegin", "$sortend", "$stack", "$text", "$translate", "$view",
5622 //"$wascii", "$wchar", "$wextract", "$wfind", "$wiswide", "$wlength",
5623 //"$wreverse", "$xecute", "$zabs", "$zarccos", "$zarcsin", "$zarctan",
5624 //"$zcos", "$zcot", "$zcsc", "$zdate", "$zdateh", "$zdatetime",
5625 //"$zdatetimeh", "$zexp", "$zhex", "$zln", "$zlog", "$zpower", "$zsec",
5626 //"$zsin", "$zsqr", "$ztan", "$ztime", "$ztimeh", "$zboolean",
5627 //"$zconvert", "$zcrc", "$zcyc", "$zdascii", "$zdchar", "$zf",
5628 //"$ziswide", "$zlascii", "$zlchar", "$zname", "$zposition", "$zqascii",
5629 //"$zqchar", "$zsearch", "$zseek", "$zstrip", "$zwascii", "$zwchar",
5630 //"$zwidth", "$zwpack", "$zwbpack", "$zwunpack", "$zwbunpack", "$zzenkaku",
5631 //"$change", "$mv", "$mvat", "$mvfmt", "$mvfmts", "$mviconv",
5632 //"$mviconvs", "$mvinmat", "$mvlover", "$mvoconv", "$mvoconvs", "$mvraise",
5633 //"$mvtrans", "$mvv", "$mvname", "$zbitand", "$zbitcount", "$zbitfind",
5634 //"$zbitget", "$zbitlen", "$zbitnot", "$zbitor", "$zbitset", "$zbitstr",
5635 //"$zbitxor", "$zincrement", "$znext", "$zorder", "$zprevious", "$zsort",
5636 //"device", "$ecode", "$estack", "$etrap", "$halt", "$horolog",
5637 //"$io", "$job", "$key", "$namespace", "$principal", "$quit", "$roles",
5638 //"$storage", "$system", "$test", "$this", "$tlevel", "$username",
5639 //"$x", "$y", "$za", "$zb", "$zchild", "$zeof", "$zeos", "$zerror",
5640 //"$zhorolog", "$zio", "$zjob", "$zmode", "$znspace", "$zparent", "$zpi",
5641 //"$zpos", "$zreference", "$zstorage", "$ztimestamp", "$ztimezone",
5642 //"$ztrap", "$zversion"
5643
5644 ].join(" ")
5645 };
5646
5647 return {
5648 case_insensitive: true,
5649 aliases: ["cos", "cls"],
5650 keywords: COS_KEYWORDS,
5651 contains: [
5652 NUMBERS,
5653 STRINGS,
5654 hljs.C_LINE_COMMENT_MODE,
5655 hljs.C_BLOCK_COMMENT_MODE,
5656 { // functions
5657 className: "built_in",
5658 begin: /\$\$?[a-zA-Z]+/
5659 },
5660 { // macro
5661 className: "keyword",
5662 begin: /\$\$\$[a-zA-Z]+/
5663 },
5664 { // globals
5665 className: "symbol",
5666 begin: /\^%?[a-zA-Z][\w]*/
5667 },
5668 { // static class reference constructions
5669 className: 'keyword',
5670 begin: /##class/
5671 },
5672
5673 // sub-languages: are not fully supported by hljs by 11/15/2015
5674 // left for the future implementation.
5675 {
5676 begin: /&sql\(/, end: /\)/,
5677 excludeBegin: true, excludeEnd: true,
5678 subLanguage: "sql"
5679 },
5680 {
5681 begin: /&(js|jscript|javascript)</, end: />/,
5682 excludeBegin: true, excludeEnd: true,
5683 subLanguage: "javascript"
5684 },
5685 {
5686 begin: /&html<\s*</, end: />\s*>/, // brakes first tag, but the only way to embed valid html
5687 subLanguage: "xml" // no html?
5688 }
5689 ]
5690 };
5691}
5692},{name:"cpp",create:/*
5693Language: C++
5694Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
5695Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Zaven Muradyan <megalivoithos@gmail.com>, Roel Deckers <admin@codingcat.nl>
5696Category: common, system
5697*/
5698
5699function(hljs) {
5700 var CPP_PRIMATIVE_TYPES = {
5701 className: 'keyword',
5702 begin: '\\b[a-z\\d_]*_t\\b'
5703 };
5704
5705 var STRINGS = {
5706 className: 'string',
5707 variants: [
5708 hljs.inherit(hljs.QUOTE_STRING_MODE, { begin: '((u8?|U)|L)?"' }),
5709 {
5710 begin: '(u8?|U)?R"', end: '"',
5711 contains: [hljs.BACKSLASH_ESCAPE]
5712 },
5713 {
5714 begin: '\'\\\\?.', end: '\'',
5715 illegal: '.'
5716 }
5717 ]
5718 };
5719
5720 var NUMBERS = {
5721 className: 'number',
5722 variants: [
5723 { begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)' },
5724 { begin: hljs.C_NUMBER_RE }
5725 ],
5726 relevance: 0
5727 };
5728
5729 var PREPROCESSOR = {
5730 className: 'meta',
5731 begin: '#', end: '$',
5732 keywords: {'meta-keyword': 'if else elif endif define undef warning error line ' +
5733 'pragma ifdef ifndef'},
5734 contains: [
5735 {
5736 begin: /\\\n/, relevance: 0
5737 },
5738 {
5739 beginKeywords: 'include', end: '$',
5740 keywords: {'meta-keyword': 'include'},
5741 contains: [
5742 hljs.inherit(STRINGS, {className: 'meta-string'}),
5743 {
5744 className: 'meta-string',
5745 begin: '<', end: '>',
5746 illegal: '\\n',
5747 }
5748 ]
5749 },
5750 STRINGS,
5751 hljs.C_LINE_COMMENT_MODE,
5752 hljs.C_BLOCK_COMMENT_MODE
5753 ]
5754 };
5755
5756 var FUNCTION_TITLE = hljs.IDENT_RE + '\\s*\\(';
5757
5758 var CPP_KEYWORDS = {
5759 keyword: 'int float while private char catch export virtual operator sizeof ' +
5760 'dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace ' +
5761 'unsigned long volatile static protected bool template mutable if public friend ' +
5762 'do goto auto void enum else break extern using class asm case typeid ' +
5763 'short reinterpret_cast|10 default double register explicit signed typename try this ' +
5764 'switch continue inline delete alignof constexpr decltype ' +
5765 'noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary ' +
5766 'atomic_bool atomic_char atomic_schar ' +
5767 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +
5768 'atomic_ullong',
5769 built_in: 'std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +
5770 'auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set ' +
5771 'unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos ' +
5772 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' +
5773 'fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' +
5774 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' +
5775 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' +
5776 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' +
5777 'vfprintf vprintf vsprintf endl initializer_list unique_ptr',
5778 literal: 'true false nullptr NULL'
5779 };
5780
5781 return {
5782 aliases: ['c', 'cc', 'h', 'c++', 'h++', 'hpp'],
5783 keywords: CPP_KEYWORDS,
5784 illegal: '</',
5785 contains: [
5786 CPP_PRIMATIVE_TYPES,
5787 hljs.C_LINE_COMMENT_MODE,
5788 hljs.C_BLOCK_COMMENT_MODE,
5789 NUMBERS,
5790 STRINGS,
5791 PREPROCESSOR,
5792 {
5793 begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
5794 keywords: CPP_KEYWORDS,
5795 contains: ['self', CPP_PRIMATIVE_TYPES]
5796 },
5797 {
5798 begin: hljs.IDENT_RE + '::',
5799 keywords: CPP_KEYWORDS
5800 },
5801 {
5802 // Expression keywords prevent 'keyword Name(...) or else if(...)' from
5803 // being recognized as a function definition
5804 beginKeywords: 'new throw return else',
5805 relevance: 0
5806 },
5807 {
5808 className: 'function',
5809 begin: '(' + hljs.IDENT_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE,
5810 returnBegin: true, end: /[{;=]/,
5811 excludeEnd: true,
5812 keywords: CPP_KEYWORDS,
5813 illegal: /[^\w\s\*&]/,
5814 contains: [
5815 {
5816 begin: FUNCTION_TITLE, returnBegin: true,
5817 contains: [hljs.TITLE_MODE],
5818 relevance: 0
5819 },
5820 {
5821 className: 'params',
5822 begin: /\(/, end: /\)/,
5823 keywords: CPP_KEYWORDS,
5824 relevance: 0,
5825 contains: [
5826 hljs.C_LINE_COMMENT_MODE,
5827 hljs.C_BLOCK_COMMENT_MODE,
5828 STRINGS,
5829 NUMBERS
5830 ]
5831 },
5832 hljs.C_LINE_COMMENT_MODE,
5833 hljs.C_BLOCK_COMMENT_MODE,
5834 PREPROCESSOR
5835 ]
5836 }
5837 ]
5838 };
5839}
5840},{name:"crmsh",create:/*
5841Language: crmsh
5842Author: Kristoffer Gronlund <kgronlund@suse.com>
5843Website: http://crmsh.github.io
5844Description: Syntax Highlighting for the crmsh DSL
5845Category: config
5846*/
5847
5848function(hljs) {
5849 var RESOURCES = 'primitive rsc_template';
5850
5851 var COMMANDS = 'group clone ms master location colocation order fencing_topology ' +
5852 'rsc_ticket acl_target acl_group user role ' +
5853 'tag xml';
5854
5855 var PROPERTY_SETS = 'property rsc_defaults op_defaults';
5856
5857 var KEYWORDS = 'params meta operations op rule attributes utilization';
5858
5859 var OPERATORS = 'read write deny defined not_defined in_range date spec in ' +
5860 'ref reference attribute type xpath version and or lt gt tag ' +
5861 'lte gte eq ne \\';
5862
5863 var TYPES = 'number string';
5864
5865 var LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false';
5866
5867 return {
5868 aliases: ['crm', 'pcmk'],
5869 case_insensitive: true,
5870 keywords: {
5871 keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES,
5872 literal: LITERALS
5873 },
5874 contains: [
5875 hljs.HASH_COMMENT_MODE,
5876 {
5877 beginKeywords: 'node',
5878 starts: {
5879 end: '\\s*([\\w_-]+:)?',
5880 starts: {
5881 className: 'title',
5882 end: '\\s*[\\$\\w_][\\w_-]*'
5883 }
5884 }
5885 },
5886 {
5887 beginKeywords: RESOURCES,
5888 starts: {
5889 className: 'title',
5890 end: '\\s*[\\$\\w_][\\w_-]*',
5891 starts: {
5892 end: '\\s*@?[\\w_][\\w_\\.:-]*'
5893 }
5894 }
5895 },
5896 {
5897 begin: '\\b(' + COMMANDS.split(' ').join('|') + ')\\s+',
5898 keywords: COMMANDS,
5899 starts: {
5900 className: 'title',
5901 end: '[\\$\\w_][\\w_-]*'
5902 }
5903 },
5904 {
5905 beginKeywords: PROPERTY_SETS,
5906 starts: {
5907 className: 'title',
5908 end: '\\s*([\\w_-]+:)?'
5909 }
5910 },
5911 hljs.QUOTE_STRING_MODE,
5912 {
5913 className: 'meta',
5914 begin: '(ocf|systemd|service|lsb):[\\w_:-]+',
5915 relevance: 0
5916 },
5917 {
5918 className: 'number',
5919 begin: '\\b\\d+(\\.\\d+)?(ms|s|h|m)?',
5920 relevance: 0
5921 },
5922 {
5923 className: 'literal',
5924 begin: '[-]?(infinity|inf)',
5925 relevance: 0
5926 },
5927 {
5928 className: 'attr',
5929 begin: /([A-Za-z\$_\#][\w_-]+)=/,
5930 relevance: 0
5931 },
5932 {
5933 className: 'tag',
5934 begin: '</?',
5935 end: '/?>',
5936 relevance: 0
5937 }
5938 ]
5939 };
5940}
5941},{name:"crystal",create:/*
5942Language: Crystal
5943Author: TSUYUSATO Kitsune <make.just.on@gmail.com>
5944*/
5945
5946function(hljs) {
5947 var NUM_SUFFIX = '(_[uif](8|16|32|64))?';
5948 var CRYSTAL_IDENT_RE = '[a-zA-Z_]\\w*[!?=]?';
5949 var RE_STARTER = '!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|' +
5950 '>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
5951 var CRYSTAL_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?';
5952 var CRYSTAL_KEYWORDS = {
5953 keyword:
5954 'abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef ' +
5955 'include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? ' +
5956 'return require self sizeof struct super then type typeof union unless until when while with yield ' +
5957 '__DIR__ __FILE__ __LINE__',
5958 literal: 'false nil true'
5959 };
5960 var SUBST = {
5961 className: 'subst',
5962 begin: '#{', end: '}',
5963 keywords: CRYSTAL_KEYWORDS
5964 };
5965 var EXPANSION = {
5966 className: 'template-variable',
5967 variants: [
5968 {begin: '\\{\\{', end: '\\}\\}'},
5969 {begin: '\\{%', end: '%\\}'}
5970 ],
5971 keywords: CRYSTAL_KEYWORDS,
5972 relevance: 10
5973 };
5974
5975 function recursiveParen(begin, end) {
5976 var
5977 contains = [{begin: begin, end: end}];
5978 contains[0].contains = contains;
5979 return contains;
5980 }
5981 var STRING = {
5982 className: 'string',
5983 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
5984 variants: [
5985 {begin: /'/, end: /'/},
5986 {begin: /"/, end: /"/},
5987 {begin: /`/, end: /`/},
5988 {begin: '%w?\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
5989 {begin: '%w?\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
5990 {begin: '%w?{', end: '}', contains: recursiveParen('{', '}')},
5991 {begin: '%w?<', end: '>', contains: recursiveParen('<', '>')},
5992 {begin: '%w?/', end: '/'},
5993 {begin: '%w?%', end: '%'},
5994 {begin: '%w?-', end: '-'},
5995 {begin: '%w?\\|', end: '\\|'},
5996 ],
5997 relevance: 0,
5998 };
5999 var REGEXP = {
6000 begin: '(' + RE_STARTER + ')\\s*',
6001 contains: [
6002 {
6003 className: 'regexp',
6004 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6005 variants: [
6006 {begin: '/', end: '/[a-z]*'},
6007 {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
6008 {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
6009 {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
6010 {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
6011 {begin: '%r/', end: '/'},
6012 {begin: '%r%', end: '%'},
6013 {begin: '%r-', end: '-'},
6014 {begin: '%r\\|', end: '\\|'},
6015 ]
6016 }
6017 ],
6018 relevance: 0
6019 };
6020 var REGEXP2 = {
6021 className: 'regexp',
6022 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6023 variants: [
6024 {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
6025 {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
6026 {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
6027 {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
6028 {begin: '%r/', end: '/'},
6029 {begin: '%r%', end: '%'},
6030 {begin: '%r-', end: '-'},
6031 {begin: '%r\\|', end: '\\|'},
6032 ],
6033 relevance: 0
6034 };
6035 var ATTRIBUTE = {
6036 className: 'meta',
6037 begin: '@\\[', end: '\\]',
6038 relevance: 5
6039 };
6040 var CRYSTAL_DEFAULT_CONTAINS = [
6041 EXPANSION,
6042 STRING,
6043 REGEXP,
6044 REGEXP2,
6045 ATTRIBUTE,
6046 hljs.HASH_COMMENT_MODE,
6047 {
6048 className: 'class',
6049 beginKeywords: 'class module struct', end: '$|;',
6050 illegal: /=/,
6051 contains: [
6052 hljs.HASH_COMMENT_MODE,
6053 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
6054 {begin: '<'} // relevance booster for inheritance
6055 ]
6056 },
6057 {
6058 className: 'class',
6059 beginKeywords: 'lib enum union', end: '$|;',
6060 illegal: /=/,
6061 contains: [
6062 hljs.HASH_COMMENT_MODE,
6063 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
6064 ],
6065 relevance: 10
6066 },
6067 {
6068 className: 'function',
6069 beginKeywords: 'def', end: /\B\b/,
6070 contains: [
6071 hljs.inherit(hljs.TITLE_MODE, {
6072 begin: CRYSTAL_METHOD_RE,
6073 endsParent: true
6074 })
6075 ]
6076 },
6077 {
6078 className: 'function',
6079 beginKeywords: 'fun macro', end: /\B\b/,
6080 contains: [
6081 hljs.inherit(hljs.TITLE_MODE, {
6082 begin: CRYSTAL_METHOD_RE,
6083 endsParent: true
6084 })
6085 ],
6086 relevance: 5
6087 },
6088 {
6089 className: 'symbol',
6090 begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
6091 relevance: 0
6092 },
6093 {
6094 className: 'symbol',
6095 begin: ':',
6096 contains: [STRING, {begin: CRYSTAL_METHOD_RE}],
6097 relevance: 0
6098 },
6099 {
6100 className: 'number',
6101 variants: [
6102 { begin: '\\b0b([01_]*[01])' + NUM_SUFFIX },
6103 { begin: '\\b0o([0-7_]*[0-7])' + NUM_SUFFIX },
6104 { begin: '\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])' + NUM_SUFFIX },
6105 { begin: '\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)' + NUM_SUFFIX}
6106 ],
6107 relevance: 0
6108 }
6109 ];
6110 SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;
6111 ATTRIBUTE.contains = CRYSTAL_DEFAULT_CONTAINS;
6112 EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1); // without EXPANSION
6113
6114 return {
6115 aliases: ['cr'],
6116 lexemes: CRYSTAL_IDENT_RE,
6117 keywords: CRYSTAL_KEYWORDS,
6118 contains: CRYSTAL_DEFAULT_CONTAINS
6119 };
6120}
6121},{name:"cs",create:/*
6122Language: C#
6123Author: Jason Diamond <jason@diamond.name>
6124Category: common
6125*/
6126
6127function(hljs) {
6128 var KEYWORDS =
6129 // Normal keywords.
6130 'abstract as base bool break byte case catch char checked const continue decimal dynamic ' +
6131 'default delegate do double else enum event explicit extern false finally fixed float ' +
6132 'for foreach goto if implicit in int interface internal is lock long null when ' +
6133 'object operator out override params private protected public readonly ref sbyte ' +
6134 'sealed short sizeof stackalloc static string struct switch this true try typeof ' +
6135 'uint ulong unchecked unsafe ushort using virtual volatile void while async ' +
6136 'protected public private internal ' +
6137 // Contextual keywords.
6138 'ascending descending from get group into join let orderby partial select set value var ' +
6139 'where yield';
6140 var GENERIC_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '>)?';
6141 return {
6142 aliases: ['csharp'],
6143 keywords: KEYWORDS,
6144 illegal: /::/,
6145 contains: [
6146 hljs.COMMENT(
6147 '///',
6148 '$',
6149 {
6150 returnBegin: true,
6151 contains: [
6152 {
6153 className: 'doctag',
6154 variants: [
6155 {
6156 begin: '///', relevance: 0
6157 },
6158 {
6159 begin: '<!--|-->'
6160 },
6161 {
6162 begin: '</?', end: '>'
6163 }
6164 ]
6165 }
6166 ]
6167 }
6168 ),
6169 hljs.C_LINE_COMMENT_MODE,
6170 hljs.C_BLOCK_COMMENT_MODE,
6171 {
6172 className: 'meta',
6173 begin: '#', end: '$',
6174 keywords: {'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'}
6175 },
6176 {
6177 className: 'string',
6178 begin: '@"', end: '"',
6179 contains: [{begin: '""'}]
6180 },
6181 hljs.APOS_STRING_MODE,
6182 hljs.QUOTE_STRING_MODE,
6183 hljs.C_NUMBER_MODE,
6184 {
6185 beginKeywords: 'class interface', end: /[{;=]/,
6186 illegal: /[^\s:]/,
6187 contains: [
6188 hljs.TITLE_MODE,
6189 hljs.C_LINE_COMMENT_MODE,
6190 hljs.C_BLOCK_COMMENT_MODE
6191 ]
6192 },
6193 {
6194 beginKeywords: 'namespace', end: /[{;=]/,
6195 illegal: /[^\s:]/,
6196 contains: [
6197 hljs.inherit(hljs.TITLE_MODE, {begin: '[a-zA-Z](\\.?\\w)*'}),
6198 hljs.C_LINE_COMMENT_MODE,
6199 hljs.C_BLOCK_COMMENT_MODE
6200 ]
6201 },
6202 {
6203 // Expression keywords prevent 'keyword Name(...)' from being
6204 // recognized as a function definition
6205 beginKeywords: 'new return throw await',
6206 relevance: 0
6207 },
6208 {
6209 className: 'function',
6210 begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
6211 excludeEnd: true,
6212 keywords: KEYWORDS,
6213 contains: [
6214 {
6215 begin: hljs.IDENT_RE + '\\s*\\(', returnBegin: true,
6216 contains: [hljs.TITLE_MODE],
6217 relevance: 0
6218 },
6219 {
6220 className: 'params',
6221 begin: /\(/, end: /\)/,
6222 excludeBegin: true,
6223 excludeEnd: true,
6224 keywords: KEYWORDS,
6225 relevance: 0,
6226 contains: [
6227 hljs.APOS_STRING_MODE,
6228 hljs.QUOTE_STRING_MODE,
6229 hljs.C_NUMBER_MODE,
6230 hljs.C_BLOCK_COMMENT_MODE
6231 ]
6232 },
6233 hljs.C_LINE_COMMENT_MODE,
6234 hljs.C_BLOCK_COMMENT_MODE
6235 ]
6236 }
6237 ]
6238 };
6239}
6240},{name:"css",create:/*
6241Language: CSS
6242Category: common, css
6243*/
6244
6245function(hljs) {
6246 var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
6247 var RULE = {
6248 begin: /[A-Z\_\.\-]+\s*:/, returnBegin: true, end: ';', endsWithParent: true,
6249 contains: [
6250 {
6251 className: 'attribute',
6252 begin: /\S/, end: ':', excludeEnd: true,
6253 starts: {
6254 endsWithParent: true, excludeEnd: true,
6255 contains: [
6256 {
6257 begin: /[\w-]+\s*\(/, returnBegin: true,
6258 contains: [
6259 {
6260 className: 'built_in',
6261 begin: /[\w-]+/
6262 }
6263 ]
6264 },
6265 hljs.CSS_NUMBER_MODE,
6266 hljs.QUOTE_STRING_MODE,
6267 hljs.APOS_STRING_MODE,
6268 hljs.C_BLOCK_COMMENT_MODE,
6269 {
6270 className: 'number', begin: '#[0-9A-Fa-f]+'
6271 },
6272 {
6273 className: 'meta', begin: '!important'
6274 }
6275 ]
6276 }
6277 }
6278 ]
6279 };
6280
6281 return {
6282 case_insensitive: true,
6283 illegal: /[=\/|'\$]/,
6284 contains: [
6285 hljs.C_BLOCK_COMMENT_MODE,
6286 {
6287 className: 'selector-id', begin: /#[A-Za-z0-9_-]+/
6288 },
6289 {
6290 className: 'selector-class', begin: /\.[A-Za-z0-9_-]+/
6291 },
6292 {
6293 className: 'selector-attr',
6294 begin: /\[/, end: /\]/,
6295 illegal: '$'
6296 },
6297 {
6298 className: 'selector-pseudo',
6299 begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/
6300 },
6301 {
6302 begin: '@(font-face|page)',
6303 lexemes: '[a-z-]+',
6304 keywords: 'font-face page'
6305 },
6306 {
6307 begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
6308 // because it doesnโ€™t let it to be parsed as
6309 // a rule set but instead drops parser into
6310 // the default mode which is how it should be.
6311 contains: [
6312 {
6313 className: 'keyword',
6314 begin: /\S+/
6315 },
6316 {
6317 begin: /\s/, endsWithParent: true, excludeEnd: true,
6318 relevance: 0,
6319 contains: [
6320 hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
6321 hljs.CSS_NUMBER_MODE
6322 ]
6323 }
6324 ]
6325 },
6326 {
6327 className: 'selector-tag', begin: IDENT_RE,
6328 relevance: 0
6329 },
6330 {
6331 begin: '{', end: '}',
6332 illegal: /\S/,
6333 contains: [
6334 hljs.C_BLOCK_COMMENT_MODE,
6335 RULE,
6336 ]
6337 }
6338 ]
6339 };
6340}
6341},{name:"d",create:/*
6342Language: D
6343Author: Aleksandar Ruzicic <aleksandar@ruzicic.info>
6344Description: D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity.
6345Version: 1.0a
6346Date: 2012-04-08
6347*/
6348
6349/**
6350 * Known issues:
6351 *
6352 * - invalid hex string literals will be recognized as a double quoted strings
6353 * but 'x' at the beginning of string will not be matched
6354 *
6355 * - delimited string literals are not checked for matching end delimiter
6356 * (not possible to do with js regexp)
6357 *
6358 * - content of token string is colored as a string (i.e. no keyword coloring inside a token string)
6359 * also, content of token string is not validated to contain only valid D tokens
6360 *
6361 * - special token sequence rule is not strictly following D grammar (anything following #line
6362 * up to the end of line is matched as special token sequence)
6363 */
6364
6365function(hljs) {
6366 /**
6367 * Language keywords
6368 *
6369 * @type {Object}
6370 */
6371 var D_KEYWORDS = {
6372 keyword:
6373 'abstract alias align asm assert auto body break byte case cast catch class ' +
6374 'const continue debug default delete deprecated do else enum export extern final ' +
6375 'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' +
6376 'interface invariant is lazy macro mixin module new nothrow out override package ' +
6377 'pragma private protected public pure ref return scope shared static struct ' +
6378 'super switch synchronized template this throw try typedef typeid typeof union ' +
6379 'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' +
6380 '__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__',
6381 built_in:
6382 'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' +
6383 'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' +
6384 'wstring',
6385 literal:
6386 'false null true'
6387 };
6388
6389 /**
6390 * Number literal regexps
6391 *
6392 * @type {String}
6393 */
6394 var decimal_integer_re = '(0|[1-9][\\d_]*)',
6395 decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)',
6396 binary_integer_re = '0[bB][01_]+',
6397 hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)',
6398 hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re,
6399
6400 decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')',
6401 decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' +
6402 '\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' +
6403 '\\.' + decimal_integer_re + decimal_exponent_re + '?' +
6404 ')',
6405 hexadecimal_float_re = '(0[xX](' +
6406 hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+
6407 '\\.?' + hexadecimal_digits_re +
6408 ')[pP][+-]?' + decimal_integer_nosus_re + ')',
6409
6410 integer_re = '(' +
6411 decimal_integer_re + '|' +
6412 binary_integer_re + '|' +
6413 hexadecimal_integer_re +
6414 ')',
6415
6416 float_re = '(' +
6417 hexadecimal_float_re + '|' +
6418 decimal_float_re +
6419 ')';
6420
6421 /**
6422 * Escape sequence supported in D string and character literals
6423 *
6424 * @type {String}
6425 */
6426 var escape_sequence_re = '\\\\(' +
6427 '[\'"\\?\\\\abfnrtv]|' + // common escapes
6428 'u[\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint
6429 '[0-7]{1,3}|' + // one to three octal digit ascii char code
6430 'x[\\dA-Fa-f]{2}|' + // two hex digit ascii char code
6431 'U[\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint
6432 ')|' +
6433 '&[a-zA-Z\\d]{2,};'; // named character entity
6434
6435 /**
6436 * D integer number literals
6437 *
6438 * @type {Object}
6439 */
6440 var D_INTEGER_MODE = {
6441 className: 'number',
6442 begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?',
6443 relevance: 0
6444 };
6445
6446 /**
6447 * [D_FLOAT_MODE description]
6448 * @type {Object}
6449 */
6450 var D_FLOAT_MODE = {
6451 className: 'number',
6452 begin: '\\b(' +
6453 float_re + '([fF]|L|i|[fF]i|Li)?|' +
6454 integer_re + '(i|[fF]i|Li)' +
6455 ')',
6456 relevance: 0
6457 };
6458
6459 /**
6460 * D character literal
6461 *
6462 * @type {Object}
6463 */
6464 var D_CHARACTER_MODE = {
6465 className: 'string',
6466 begin: '\'(' + escape_sequence_re + '|.)', end: '\'',
6467 illegal: '.'
6468 };
6469
6470 /**
6471 * D string escape sequence
6472 *
6473 * @type {Object}
6474 */
6475 var D_ESCAPE_SEQUENCE = {
6476 begin: escape_sequence_re,
6477 relevance: 0
6478 };
6479
6480 /**
6481 * D double quoted string literal
6482 *
6483 * @type {Object}
6484 */
6485 var D_STRING_MODE = {
6486 className: 'string',
6487 begin: '"',
6488 contains: [D_ESCAPE_SEQUENCE],
6489 end: '"[cwd]?'
6490 };
6491
6492 /**
6493 * D wysiwyg and delimited string literals
6494 *
6495 * @type {Object}
6496 */
6497 var D_WYSIWYG_DELIMITED_STRING_MODE = {
6498 className: 'string',
6499 begin: '[rq]"',
6500 end: '"[cwd]?',
6501 relevance: 5
6502 };
6503
6504 /**
6505 * D alternate wysiwyg string literal
6506 *
6507 * @type {Object}
6508 */
6509 var D_ALTERNATE_WYSIWYG_STRING_MODE = {
6510 className: 'string',
6511 begin: '`',
6512 end: '`[cwd]?'
6513 };
6514
6515 /**
6516 * D hexadecimal string literal
6517 *
6518 * @type {Object}
6519 */
6520 var D_HEX_STRING_MODE = {
6521 className: 'string',
6522 begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',
6523 relevance: 10
6524 };
6525
6526 /**
6527 * D delimited string literal
6528 *
6529 * @type {Object}
6530 */
6531 var D_TOKEN_STRING_MODE = {
6532 className: 'string',
6533 begin: 'q"\\{',
6534 end: '\\}"'
6535 };
6536
6537 /**
6538 * Hashbang support
6539 *
6540 * @type {Object}
6541 */
6542 var D_HASHBANG_MODE = {
6543 className: 'meta',
6544 begin: '^#!',
6545 end: '$',
6546 relevance: 5
6547 };
6548
6549 /**
6550 * D special token sequence
6551 *
6552 * @type {Object}
6553 */
6554 var D_SPECIAL_TOKEN_SEQUENCE_MODE = {
6555 className: 'meta',
6556 begin: '#(line)',
6557 end: '$',
6558 relevance: 5
6559 };
6560
6561 /**
6562 * D attributes
6563 *
6564 * @type {Object}
6565 */
6566 var D_ATTRIBUTE_MODE = {
6567 className: 'keyword',
6568 begin: '@[a-zA-Z_][a-zA-Z_\\d]*'
6569 };
6570
6571 /**
6572 * D nesting comment
6573 *
6574 * @type {Object}
6575 */
6576 var D_NESTING_COMMENT_MODE = hljs.COMMENT(
6577 '\\/\\+',
6578 '\\+\\/',
6579 {
6580 contains: ['self'],
6581 relevance: 10
6582 }
6583 );
6584
6585 return {
6586 lexemes: hljs.UNDERSCORE_IDENT_RE,
6587 keywords: D_KEYWORDS,
6588 contains: [
6589 hljs.C_LINE_COMMENT_MODE,
6590 hljs.C_BLOCK_COMMENT_MODE,
6591 D_NESTING_COMMENT_MODE,
6592 D_HEX_STRING_MODE,
6593 D_STRING_MODE,
6594 D_WYSIWYG_DELIMITED_STRING_MODE,
6595 D_ALTERNATE_WYSIWYG_STRING_MODE,
6596 D_TOKEN_STRING_MODE,
6597 D_FLOAT_MODE,
6598 D_INTEGER_MODE,
6599 D_CHARACTER_MODE,
6600 D_HASHBANG_MODE,
6601 D_SPECIAL_TOKEN_SEQUENCE_MODE,
6602 D_ATTRIBUTE_MODE
6603 ]
6604 };
6605}
6606},{name:"dart",create:/*
6607Language: Dart
6608Requires: markdown.js
6609Author: Maxim Dikun <dikmax@gmail.com>
6610Description: Dart is a JavaScript replacement language developed by Google. For more information see http://dartlang.org/
6611Category: scripting
6612*/
6613
6614function (hljs) {
6615 var SUBST = {
6616 className: 'subst',
6617 begin: '\\$\\{', end: '}',
6618 keywords: 'true false null this is new super'
6619 };
6620
6621 var STRING = {
6622 className: 'string',
6623 variants: [
6624 {
6625 begin: 'r\'\'\'', end: '\'\'\''
6626 },
6627 {
6628 begin: 'r"""', end: '"""'
6629 },
6630 {
6631 begin: 'r\'', end: '\'',
6632 illegal: '\\n'
6633 },
6634 {
6635 begin: 'r"', end: '"',
6636 illegal: '\\n'
6637 },
6638 {
6639 begin: '\'\'\'', end: '\'\'\'',
6640 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
6641 },
6642 {
6643 begin: '"""', end: '"""',
6644 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
6645 },
6646 {
6647 begin: '\'', end: '\'',
6648 illegal: '\\n',
6649 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
6650 },
6651 {
6652 begin: '"', end: '"',
6653 illegal: '\\n',
6654 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
6655 }
6656 ]
6657 };
6658 SUBST.contains = [
6659 hljs.C_NUMBER_MODE, STRING
6660 ];
6661
6662 var KEYWORDS = {
6663 keyword: 'assert break case catch class const continue default do else enum extends false final finally for if ' +
6664 'in is new null rethrow return super switch this throw true try var void while with ' +
6665 'abstract as dynamic export external factory get implements import library operator part set static typedef',
6666 built_in:
6667 // dart:core
6668 'print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set ' +
6669 'Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num ' +
6670 // dart:html
6671 'document window querySelector querySelectorAll Element ElementList'
6672 };
6673
6674 return {
6675 keywords: KEYWORDS,
6676 contains: [
6677 STRING,
6678 hljs.COMMENT(
6679 '/\\*\\*',
6680 '\\*/',
6681 {
6682 subLanguage: 'markdown'
6683 }
6684 ),
6685 hljs.COMMENT(
6686 '///',
6687 '$',
6688 {
6689 subLanguage: 'markdown'
6690 }
6691 ),
6692 hljs.C_LINE_COMMENT_MODE,
6693 hljs.C_BLOCK_COMMENT_MODE,
6694 {
6695 className: 'class',
6696 beginKeywords: 'class interface', end: '{', excludeEnd: true,
6697 contains: [
6698 {
6699 beginKeywords: 'extends implements'
6700 },
6701 hljs.UNDERSCORE_TITLE_MODE
6702 ]
6703 },
6704 hljs.C_NUMBER_MODE,
6705 {
6706 className: 'meta', begin: '@[A-Za-z]+'
6707 },
6708 {
6709 begin: '=>' // No markup, just a relevance booster
6710 }
6711 ]
6712 }
6713}
6714
6715},{name:"delphi",create:/*
6716Language: Delphi
6717*/
6718
6719function(hljs) {
6720 var KEYWORDS =
6721 'exports register file shl array record property for mod while set ally label uses raise not ' +
6722 'stored class safecall var interface or private static exit index inherited to else stdcall ' +
6723 'override shr asm far resourcestring finalization packed virtual out and protected library do ' +
6724 'xorwrite goto near function end div overload object unit begin string on inline repeat until ' +
6725 'destructor write message program with read initialization except default nil if case cdecl in ' +
6726 'downto threadvar of try pascal const external constructor type public then implementation ' +
6727 'finally published procedure';
6728 var COMMENT_MODES = [
6729 hljs.C_LINE_COMMENT_MODE,
6730 hljs.COMMENT(
6731 /\{/,
6732 /\}/,
6733 {
6734 relevance: 0
6735 }
6736 ),
6737 hljs.COMMENT(
6738 /\(\*/,
6739 /\*\)/,
6740 {
6741 relevance: 10
6742 }
6743 )
6744 ];
6745 var STRING = {
6746 className: 'string',
6747 begin: /'/, end: /'/,
6748 contains: [{begin: /''/}]
6749 };
6750 var CHAR_STRING = {
6751 className: 'string', begin: /(#\d+)+/
6752 };
6753 var CLASS = {
6754 begin: hljs.IDENT_RE + '\\s*=\\s*class\\s*\\(', returnBegin: true,
6755 contains: [
6756 hljs.TITLE_MODE
6757 ]
6758 };
6759 var FUNCTION = {
6760 className: 'function',
6761 beginKeywords: 'function constructor destructor procedure', end: /[:;]/,
6762 keywords: 'function constructor|10 destructor|10 procedure|10',
6763 contains: [
6764 hljs.TITLE_MODE,
6765 {
6766 className: 'params',
6767 begin: /\(/, end: /\)/,
6768 keywords: KEYWORDS,
6769 contains: [STRING, CHAR_STRING]
6770 }
6771 ].concat(COMMENT_MODES)
6772 };
6773 return {
6774 case_insensitive: true,
6775 keywords: KEYWORDS,
6776 illegal: /"|\$[G-Zg-z]|\/\*|<\/|\|/,
6777 contains: [
6778 STRING, CHAR_STRING,
6779 hljs.NUMBER_MODE,
6780 CLASS,
6781 FUNCTION
6782 ].concat(COMMENT_MODES)
6783 };
6784}
6785},{name:"diff",create:/*
6786Language: Diff
6787Description: Unified and context diff
6788Author: Vasily Polovnyov <vast@whiteants.net>
6789Category: common
6790*/
6791
6792function(hljs) {
6793 return {
6794 aliases: ['patch'],
6795 contains: [
6796 {
6797 className: 'meta',
6798 relevance: 10,
6799 variants: [
6800 {begin: /^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},
6801 {begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/},
6802 {begin: /^\-\-\- +\d+,\d+ +\-\-\-\-$/}
6803 ]
6804 },
6805 {
6806 className: 'comment',
6807 variants: [
6808 {begin: /Index: /, end: /$/},
6809 {begin: /=====/, end: /=====$/},
6810 {begin: /^\-\-\-/, end: /$/},
6811 {begin: /^\*{3} /, end: /$/},
6812 {begin: /^\+\+\+/, end: /$/},
6813 {begin: /\*{5}/, end: /\*{5}$/}
6814 ]
6815 },
6816 {
6817 className: 'addition',
6818 begin: '^\\+', end: '$'
6819 },
6820 {
6821 className: 'deletion',
6822 begin: '^\\-', end: '$'
6823 },
6824 {
6825 className: 'addition',
6826 begin: '^\\!', end: '$'
6827 }
6828 ]
6829 };
6830}
6831},{name:"django",create:/*
6832Language: Django
6833Requires: xml.js
6834Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
6835Contributors: Ilya Baryshev <baryshev@gmail.com>
6836Category: template
6837*/
6838
6839function(hljs) {
6840 var FILTER = {
6841 begin: /\|[A-Za-z]+:?/,
6842 keywords: {
6843 name:
6844 'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +
6845 'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +
6846 'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +
6847 'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +
6848 'dictsortreversed default_if_none pluralize lower join center default ' +
6849 'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +
6850 'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +
6851 'localtime utc timezone'
6852 },
6853 contains: [
6854 hljs.QUOTE_STRING_MODE,
6855 hljs.APOS_STRING_MODE
6856 ]
6857 };
6858
6859 return {
6860 aliases: ['jinja'],
6861 case_insensitive: true,
6862 subLanguage: 'xml',
6863 contains: [
6864 hljs.COMMENT(/\{%\s*comment\s*%}/, /\{%\s*endcomment\s*%}/),
6865 hljs.COMMENT(/\{#/, /#}/),
6866 {
6867 className: 'template-tag',
6868 begin: /\{%/, end: /%}/,
6869 contains: [
6870 {
6871 className: 'name',
6872 begin: /\w+/,
6873 keywords: {
6874 name:
6875 'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +
6876 'endfor ifnotequal endifnotequal widthratio extends include spaceless ' +
6877 'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' +
6878 'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +
6879 'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +
6880 'plural get_current_language language get_available_languages ' +
6881 'get_current_language_bidi get_language_info get_language_info_list localize ' +
6882 'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' +
6883 'verbatim'
6884 },
6885 starts: {
6886 endsWithParent: true,
6887 keywords: 'in by as',
6888 contains: [FILTER],
6889 relevance: 0
6890 }
6891 }
6892 ]
6893 },
6894 {
6895 className: 'template-variable',
6896 begin: /\{\{/, end: /}}/,
6897 contains: [FILTER]
6898 }
6899 ]
6900 };
6901}
6902},{name:"dns",create:/*
6903Language: DNS Zone file
6904Author: Tim Schumacher <tim@datenknoten.me>
6905Category: config
6906*/
6907
6908function(hljs) {
6909 return {
6910 aliases: ['bind', 'zone'],
6911 keywords: {
6912 keyword:
6913 'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' +
6914 'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT'
6915 },
6916 contains: [
6917 hljs.COMMENT(';', '$'),
6918 {
6919 className: 'meta',
6920 begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/
6921 },
6922 // IPv6
6923 {
6924 className: 'number',
6925 begin: '((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b'
6926 },
6927 // IPv4
6928 {
6929 className: 'number',
6930 begin: '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b'
6931 },
6932 hljs.inherit(hljs.NUMBER_MODE, {begin: /\b\d+[dhwm]?/})
6933 ]
6934 };
6935}
6936},{name:"dockerfile",create:/*
6937Language: Dockerfile
6938Requires: bash.js
6939Author: Alexis Hรฉnaut <alexis@henaut.net>
6940Description: language definition for Dockerfile files
6941Category: config
6942*/
6943
6944function(hljs) {
6945 return {
6946 aliases: ['docker'],
6947 case_insensitive: true,
6948 keywords: 'from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label',
6949 contains: [
6950 hljs.HASH_COMMENT_MODE,
6951 {
6952 keywords: 'run cmd entrypoint volume add copy workdir onbuild label',
6953 begin: /^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,
6954 starts: {
6955 end: /[^\\]\n/,
6956 subLanguage: 'bash'
6957 }
6958 },
6959 {
6960 keywords: 'from maintainer expose env user onbuild',
6961 begin: /^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/, end: /[^\\]\n/,
6962 contains: [
6963 hljs.APOS_STRING_MODE,
6964 hljs.QUOTE_STRING_MODE,
6965 hljs.NUMBER_MODE,
6966 hljs.HASH_COMMENT_MODE
6967 ]
6968 }
6969 ]
6970 }
6971}
6972},{name:"dos",create:/*
6973Language: DOS .bat
6974Author: Alexander Makarov <sam@rmcreative.ru>
6975Contributors: Anton Kochkov <anton.kochkov@gmail.com>
6976*/
6977
6978function(hljs) {
6979 var COMMENT = hljs.COMMENT(
6980 /@?rem\b/, /$/,
6981 {
6982 relevance: 10
6983 }
6984 );
6985 var LABEL = {
6986 className: 'symbol',
6987 begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)',
6988 relevance: 0
6989 };
6990 return {
6991 aliases: ['bat', 'cmd'],
6992 case_insensitive: true,
6993 illegal: /\/\*/,
6994 keywords: {
6995 keyword:
6996 'if else goto for in do call exit not exist errorlevel defined ' +
6997 'equ neq lss leq gtr geq',
6998 built_in:
6999 'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux ' +
7000 'shift cd dir echo setlocal endlocal set pause copy ' +
7001 'append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color ' +
7002 'comp compact convert date dir diskcomp diskcopy doskey erase fs ' +
7003 'find findstr format ftype graftabl help keyb label md mkdir mode more move path ' +
7004 'pause print popd pushd promt rd recover rem rename replace restore rmdir shift' +
7005 'sort start subst time title tree type ver verify vol ' +
7006 // winutils
7007 'ping net ipconfig taskkill xcopy ren del'
7008 },
7009 contains: [
7010 {
7011 className: 'variable', begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/
7012 },
7013 {
7014 className: 'function',
7015 begin: LABEL.begin, end: 'goto:eof',
7016 contains: [
7017 hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
7018 COMMENT
7019 ]
7020 },
7021 {
7022 className: 'number', begin: '\\b\\d+',
7023 relevance: 0
7024 },
7025 COMMENT
7026 ]
7027 };
7028}
7029},{name:"dust",create:/*
7030Language: Dust
7031Requires: xml.js
7032Author: Michael Allen <michael.allen@benefitfocus.com>
7033Description: Matcher for dust.js templates.
7034Category: template
7035*/
7036
7037function(hljs) {
7038 var EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';
7039 return {
7040 aliases: ['dst'],
7041 case_insensitive: true,
7042 subLanguage: 'xml',
7043 contains: [
7044 {
7045 className: 'template-tag',
7046 begin: /\{[#\/]/, end: /\}/, illegal: /;/,
7047 contains: [
7048 {
7049 className: 'name',
7050 begin: /[a-zA-Z\.-]+/,
7051 starts: {
7052 endsWithParent: true, relevance: 0,
7053 contains: [
7054 hljs.QUOTE_STRING_MODE
7055 ]
7056 }
7057 }
7058 ]
7059 },
7060 {
7061 className: 'template-variable',
7062 begin: /\{/, end: /\}/, illegal: /;/,
7063 keywords: EXPRESSION_KEYWORDS
7064 }
7065 ]
7066 };
7067}
7068},{name:"elixir",create:/*
7069Language: Elixir
7070Author: Josh Adams <josh@isotope11.com>
7071Description: language definition for Elixir source code files (.ex and .exs). Based on ruby language support.
7072Category: functional
7073*/
7074
7075function(hljs) {
7076 var ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?';
7077 var ELIXIR_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
7078 var ELIXIR_KEYWORDS =
7079 'and false then defined module in return redo retry end for true self when ' +
7080 'next until do begin unless nil break not case cond alias while ensure or ' +
7081 'include use alias fn quote';
7082 var SUBST = {
7083 className: 'subst',
7084 begin: '#\\{', end: '}',
7085 lexemes: ELIXIR_IDENT_RE,
7086 keywords: ELIXIR_KEYWORDS
7087 };
7088 var STRING = {
7089 className: 'string',
7090 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
7091 variants: [
7092 {
7093 begin: /'/, end: /'/
7094 },
7095 {
7096 begin: /"/, end: /"/
7097 }
7098 ]
7099 };
7100 var FUNCTION = {
7101 className: 'function',
7102 beginKeywords: 'def defp defmacro', end: /\B\b/, // the mode is ended by the title
7103 contains: [
7104 hljs.inherit(hljs.TITLE_MODE, {
7105 begin: ELIXIR_IDENT_RE,
7106 endsParent: true
7107 })
7108 ]
7109 };
7110 var CLASS = hljs.inherit(FUNCTION, {
7111 className: 'class',
7112 beginKeywords: 'defmodule defrecord', end: /\bdo\b|$|;/
7113 });
7114 var ELIXIR_DEFAULT_CONTAINS = [
7115 STRING,
7116 hljs.HASH_COMMENT_MODE,
7117 CLASS,
7118 FUNCTION,
7119 {
7120 className: 'symbol',
7121 begin: ':',
7122 contains: [STRING, {begin: ELIXIR_METHOD_RE}],
7123 relevance: 0
7124 },
7125 {
7126 className: 'symbol',
7127 begin: ELIXIR_IDENT_RE + ':',
7128 relevance: 0
7129 },
7130 {
7131 className: 'number',
7132 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
7133 relevance: 0
7134 },
7135 {
7136 className: 'variable',
7137 begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))'
7138 },
7139 {
7140 begin: '->'
7141 },
7142 { // regexp container
7143 begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
7144 contains: [
7145 hljs.HASH_COMMENT_MODE,
7146 {
7147 className: 'regexp',
7148 illegal: '\\n',
7149 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
7150 variants: [
7151 {
7152 begin: '/', end: '/[a-z]*'
7153 },
7154 {
7155 begin: '%r\\[', end: '\\][a-z]*'
7156 }
7157 ]
7158 }
7159 ],
7160 relevance: 0
7161 }
7162 ];
7163 SUBST.contains = ELIXIR_DEFAULT_CONTAINS;
7164
7165 return {
7166 lexemes: ELIXIR_IDENT_RE,
7167 keywords: ELIXIR_KEYWORDS,
7168 contains: ELIXIR_DEFAULT_CONTAINS
7169 };
7170}
7171},{name:"elm",create:/*
7172Language: Elm
7173Author: Janis Voigtlaender <janis.voigtlaender@gmail.com>
7174Category: functional
7175*/
7176
7177function(hljs) {
7178 var COMMENT = {
7179 variants: [
7180 hljs.COMMENT('--', '$'),
7181 hljs.COMMENT(
7182 '{-',
7183 '-}',
7184 {
7185 contains: ['self']
7186 }
7187 )
7188 ]
7189 };
7190
7191 var CONSTRUCTOR = {
7192 className: 'type',
7193 begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (built-in, infix).
7194 relevance: 0
7195 };
7196
7197 var LIST = {
7198 begin: '\\(', end: '\\)',
7199 illegal: '"',
7200 contains: [
7201 {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
7202 COMMENT
7203 ]
7204 };
7205
7206 var RECORD = {
7207 begin: '{', end: '}',
7208 contains: LIST.contains
7209 };
7210
7211 return {
7212 keywords:
7213 'let in if then else case of where module import exposing ' +
7214 'type alias as infix infixl infixr port',
7215 contains: [
7216
7217 // Top-level constructions.
7218
7219 {
7220 beginKeywords: 'module', end: 'where',
7221 keywords: 'module where',
7222 contains: [LIST, COMMENT],
7223 illegal: '\\W\\.|;'
7224 },
7225 {
7226 begin: 'import', end: '$',
7227 keywords: 'import as exposing',
7228 contains: [LIST, COMMENT],
7229 illegal: '\\W\\.|;'
7230 },
7231 {
7232 begin: 'type', end: '$',
7233 keywords: 'type alias',
7234 contains: [CONSTRUCTOR, LIST, RECORD, COMMENT]
7235 },
7236 {
7237 beginKeywords: 'infix infixl infixr', end: '$',
7238 contains: [hljs.C_NUMBER_MODE, COMMENT]
7239 },
7240 {
7241 begin: 'port', end: '$',
7242 keywords: 'port',
7243 contains: [COMMENT]
7244 },
7245
7246 // Literals and names.
7247
7248 // TODO: characters.
7249 hljs.QUOTE_STRING_MODE,
7250 hljs.C_NUMBER_MODE,
7251 CONSTRUCTOR,
7252 hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
7253 COMMENT,
7254
7255 {begin: '->|<-'} // No markup, relevance booster
7256 ]
7257 };
7258}
7259},{name:"erb",create:/*
7260Language: ERB (Embedded Ruby)
7261Requires: xml.js, ruby.js
7262Author: Lucas Mazza <lucastmazza@gmail.com>
7263Contributors: Kassio Borges <kassioborgesm@gmail.com>
7264Description: "Bridge" language defining fragments of Ruby in HTML within <% .. %>
7265Category: template
7266*/
7267
7268function(hljs) {
7269 return {
7270 subLanguage: 'xml',
7271 contains: [
7272 hljs.COMMENT('<%#', '%>'),
7273 {
7274 begin: '<%[%=-]?', end: '[%-]?%>',
7275 subLanguage: 'ruby',
7276 excludeBegin: true,
7277 excludeEnd: true
7278 }
7279 ]
7280 };
7281}
7282},{name:"erlang-repl",create:/*
7283 Language: Erlang REPL
7284 Author: Sergey Ignatov <sergey@ignatov.spb.su>
7285Category: functional
7286 */
7287
7288function(hljs) {
7289 return {
7290 keywords: {
7291 built_in:
7292 'spawn spawn_link self',
7293 keyword:
7294 'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if ' +
7295 'let not of or orelse|10 query receive rem try when xor'
7296 },
7297 contains: [
7298 {
7299 className: 'meta', begin: '^[0-9]+> ',
7300 relevance: 10
7301 },
7302 hljs.COMMENT('%', '$'),
7303 {
7304 className: 'number',
7305 begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
7306 relevance: 0
7307 },
7308 hljs.APOS_STRING_MODE,
7309 hljs.QUOTE_STRING_MODE,
7310 {
7311 begin: '\\?(::)?([A-Z]\\w*(::)?)+'
7312 },
7313 {
7314 begin: '->'
7315 },
7316 {
7317 begin: 'ok'
7318 },
7319 {
7320 begin: '!'
7321 },
7322 {
7323 begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
7324 relevance: 0
7325 },
7326 {
7327 begin: '[A-Z][a-zA-Z0-9_\']*',
7328 relevance: 0
7329 }
7330 ]
7331 };
7332}
7333},{name:"erlang",create:/*
7334Language: Erlang
7335Description: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.
7336Author: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>
7337Category: functional
7338*/
7339
7340function(hljs) {
7341 var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*';
7342 var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';
7343 var ERLANG_RESERVED = {
7344 keyword:
7345 'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' +
7346 'let not of orelse|10 query receive rem try when xor',
7347 literal:
7348 'false true'
7349 };
7350
7351 var COMMENT = hljs.COMMENT('%', '$');
7352 var NUMBER = {
7353 className: 'number',
7354 begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
7355 relevance: 0
7356 };
7357 var NAMED_FUN = {
7358 begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+'
7359 };
7360 var FUNCTION_CALL = {
7361 begin: FUNCTION_NAME_RE + '\\(', end: '\\)',
7362 returnBegin: true,
7363 relevance: 0,
7364 contains: [
7365 {
7366 begin: FUNCTION_NAME_RE, relevance: 0
7367 },
7368 {
7369 begin: '\\(', end: '\\)', endsWithParent: true,
7370 returnEnd: true,
7371 relevance: 0
7372 // "contains" defined later
7373 }
7374 ]
7375 };
7376 var TUPLE = {
7377 begin: '{', end: '}',
7378 relevance: 0
7379 // "contains" defined later
7380 };
7381 var VAR1 = {
7382 begin: '\\b_([A-Z][A-Za-z0-9_]*)?',
7383 relevance: 0
7384 };
7385 var VAR2 = {
7386 begin: '[A-Z][a-zA-Z0-9_]*',
7387 relevance: 0
7388 };
7389 var RECORD_ACCESS = {
7390 begin: '#' + hljs.UNDERSCORE_IDENT_RE,
7391 relevance: 0,
7392 returnBegin: true,
7393 contains: [
7394 {
7395 begin: '#' + hljs.UNDERSCORE_IDENT_RE,
7396 relevance: 0
7397 },
7398 {
7399 begin: '{', end: '}',
7400 relevance: 0
7401 // "contains" defined later
7402 }
7403 ]
7404 };
7405
7406 var BLOCK_STATEMENTS = {
7407 beginKeywords: 'fun receive if try case', end: 'end',
7408 keywords: ERLANG_RESERVED
7409 };
7410 BLOCK_STATEMENTS.contains = [
7411 COMMENT,
7412 NAMED_FUN,
7413 hljs.inherit(hljs.APOS_STRING_MODE, {className: ''}),
7414 BLOCK_STATEMENTS,
7415 FUNCTION_CALL,
7416 hljs.QUOTE_STRING_MODE,
7417 NUMBER,
7418 TUPLE,
7419 VAR1, VAR2,
7420 RECORD_ACCESS
7421 ];
7422
7423 var BASIC_MODES = [
7424 COMMENT,
7425 NAMED_FUN,
7426 BLOCK_STATEMENTS,
7427 FUNCTION_CALL,
7428 hljs.QUOTE_STRING_MODE,
7429 NUMBER,
7430 TUPLE,
7431 VAR1, VAR2,
7432 RECORD_ACCESS
7433 ];
7434 FUNCTION_CALL.contains[1].contains = BASIC_MODES;
7435 TUPLE.contains = BASIC_MODES;
7436 RECORD_ACCESS.contains[1].contains = BASIC_MODES;
7437
7438 var PARAMS = {
7439 className: 'params',
7440 begin: '\\(', end: '\\)',
7441 contains: BASIC_MODES
7442 };
7443 return {
7444 aliases: ['erl'],
7445 keywords: ERLANG_RESERVED,
7446 illegal: '(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))',
7447 contains: [
7448 {
7449 className: 'function',
7450 begin: '^' + BASIC_ATOM_RE + '\\s*\\(', end: '->',
7451 returnBegin: true,
7452 illegal: '\\(|#|//|/\\*|\\\\|:|;',
7453 contains: [
7454 PARAMS,
7455 hljs.inherit(hljs.TITLE_MODE, {begin: BASIC_ATOM_RE})
7456 ],
7457 starts: {
7458 end: ';|\\.',
7459 keywords: ERLANG_RESERVED,
7460 contains: BASIC_MODES
7461 }
7462 },
7463 COMMENT,
7464 {
7465 begin: '^-', end: '\\.',
7466 relevance: 0,
7467 excludeEnd: true,
7468 returnBegin: true,
7469 lexemes: '-' + hljs.IDENT_RE,
7470 keywords:
7471 '-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn ' +
7472 '-import -include -include_lib -compile -define -else -endif -file -behaviour ' +
7473 '-behavior -spec',
7474 contains: [PARAMS]
7475 },
7476 NUMBER,
7477 hljs.QUOTE_STRING_MODE,
7478 RECORD_ACCESS,
7479 VAR1, VAR2,
7480 TUPLE,
7481 {begin: /\.$/} // relevance booster
7482 ]
7483 };
7484}
7485},{name:"fix",create:/*
7486Language: FIX
7487Author: Brent Bradbury <brent@brentium.com>
7488*/
7489
7490function(hljs) {
7491 return {
7492 contains: [
7493 {
7494 begin: /[^\u2401\u0001]+/,
7495 end: /[\u2401\u0001]/,
7496 excludeEnd: true,
7497 returnBegin: true,
7498 returnEnd: false,
7499 contains: [
7500 {
7501 begin: /([^\u2401\u0001=]+)/,
7502 end: /=([^\u2401\u0001=]+)/,
7503 returnEnd: true,
7504 returnBegin: false,
7505 className: 'attr'
7506 },
7507 {
7508 begin: /=/,
7509 end: /([\u2401\u0001])/,
7510 excludeEnd: true,
7511 excludeBegin: true,
7512 className: 'string'
7513 }]
7514 }],
7515 case_insensitive: true
7516 };
7517}
7518},{name:"fortran",create:/*
7519Language: Fortran
7520Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
7521Category: scientific
7522*/
7523
7524function(hljs) {
7525 var PARAMS = {
7526 className: 'params',
7527 begin: '\\(', end: '\\)'
7528 };
7529
7530 var F_KEYWORDS = {
7531 literal: '.False. .True.',
7532 keyword: 'kind do while private call intrinsic where elsewhere ' +
7533 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
7534 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
7535 'goto save else use module select case ' +
7536 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
7537 'continue format pause cycle exit ' +
7538 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
7539 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
7540 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
7541 'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +
7542 'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +
7543 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
7544 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +
7545 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
7546 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
7547 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
7548 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
7549 'integer real character complex logical dimension allocatable|10 parameter ' +
7550 'external implicit|10 none double precision assign intent optional pointer ' +
7551 'target in out common equivalence data',
7552 built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +
7553 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
7554 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
7555 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
7556 'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +
7557 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
7558 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
7559 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
7560 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
7561 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
7562 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
7563 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
7564 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
7565 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of' +
7566 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
7567 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
7568 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
7569 'num_images parity popcnt poppar shifta shiftl shiftr this_image'
7570 };
7571 return {
7572 case_insensitive: true,
7573 aliases: ['f90', 'f95'],
7574 keywords: F_KEYWORDS,
7575 illegal: /\/\*/,
7576 contains: [
7577 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
7578 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
7579 {
7580 className: 'function',
7581 beginKeywords: 'subroutine function program',
7582 illegal: '[${=\\n]',
7583 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
7584 },
7585 hljs.COMMENT('!', '$', {relevance: 0}),
7586 {
7587 className: 'number',
7588 begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
7589 relevance: 0
7590 }
7591 ]
7592 };
7593}
7594},{name:"fsharp",create:/*
7595Language: F#
7596Author: Jonas Follesรธ <jonas@follesoe.no>
7597Contributors: Troy Kershaw <hello@troykershaw.com>, Henrik Feldt <henrik@haf.se>
7598Category: functional
7599*/
7600function(hljs) {
7601 var TYPEPARAM = {
7602 begin: '<', end: '>',
7603 contains: [
7604 hljs.inherit(hljs.TITLE_MODE, {begin: /'[a-zA-Z0-9_]+/})
7605 ]
7606 };
7607
7608 return {
7609 aliases: ['fs'],
7610 keywords:
7611 'abstract and as assert base begin class default delegate do done ' +
7612 'downcast downto elif else end exception extern false finally for ' +
7613 'fun function global if in inherit inline interface internal lazy let ' +
7614 'match member module mutable namespace new null of open or ' +
7615 'override private public rec return sig static struct then to ' +
7616 'true try type upcast use val void when while with yield',
7617 illegal: /\/\*/,
7618 contains: [
7619 {
7620 // monad builder keywords (matches before non-bang kws)
7621 className: 'keyword',
7622 begin: /\b(yield|return|let|do)!/
7623 },
7624 {
7625 className: 'string',
7626 begin: '@"', end: '"',
7627 contains: [{begin: '""'}]
7628 },
7629 {
7630 className: 'string',
7631 begin: '"""', end: '"""'
7632 },
7633 hljs.COMMENT('\\(\\*', '\\*\\)'),
7634 {
7635 className: 'class',
7636 beginKeywords: 'type', end: '\\(|=|$', excludeEnd: true,
7637 contains: [
7638 hljs.UNDERSCORE_TITLE_MODE,
7639 TYPEPARAM
7640 ]
7641 },
7642 {
7643 className: 'meta',
7644 begin: '\\[<', end: '>\\]',
7645 relevance: 10
7646 },
7647 {
7648 className: 'symbol',
7649 begin: '\\B(\'[A-Za-z])\\b',
7650 contains: [hljs.BACKSLASH_ESCAPE]
7651 },
7652 hljs.C_LINE_COMMENT_MODE,
7653 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
7654 hljs.C_NUMBER_MODE
7655 ]
7656 };
7657}
7658},{name:"gams",create:/*
7659 Language: GAMS
7660 Author: Stefan Bechert <stefan.bechert@gmx.net>
7661 Contributors: Oleg Efimov <efimovov@gmail.com>
7662 Description: The General Algebraic Modeling System language
7663 Category: scientific
7664 */
7665
7666function (hljs) {
7667 var KEYWORDS =
7668 'abort acronym acronyms alias all and assign binary card diag display else1 eps eq equation equations file files ' +
7669 'for1 free ge gt if inf integer le loop lt maximizing minimizing model models na ne negative no not option ' +
7670 'options or ord parameter parameters positive prod putpage puttl repeat sameas scalar scalars semicont semiint ' +
7671 'set1 sets smax smin solve sos1 sos2 sum system table then until using variable variables while1 xor yes';
7672
7673 return {
7674 aliases: ['gms'],
7675 case_insensitive: true,
7676 keywords: KEYWORDS,
7677 contains: [
7678 {
7679 beginKeywords: 'sets parameters variables equations',
7680 end: ';',
7681 contains: [
7682 {
7683 begin: '/',
7684 end: '/',
7685 contains: [hljs.NUMBER_MODE]
7686 }
7687 ]
7688 },
7689 {
7690 className: 'string',
7691 begin: '\\*{3}', end: '\\*{3}'
7692 },
7693 hljs.NUMBER_MODE,
7694 {
7695 className: 'number',
7696 begin: '\\$[a-zA-Z0-9]+'
7697 }
7698 ]
7699 };
7700}
7701
7702},{name:"gcode",create:/*
7703 Language: G-code (ISO 6983)
7704 Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
7705 Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls.
7706 */
7707
7708function(hljs) {
7709 var GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
7710 var GCODE_CLOSE_RE = '\\%';
7711 var GCODE_KEYWORDS =
7712 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' +
7713 'EQ LT GT NE GE LE OR XOR';
7714 var GCODE_START = {
7715 className: 'meta',
7716 begin: '([O])([0-9]+)'
7717 };
7718 var GCODE_CODE = [
7719 hljs.C_LINE_COMMENT_MODE,
7720 hljs.C_BLOCK_COMMENT_MODE,
7721 hljs.COMMENT(/\(/, /\)/),
7722 hljs.inherit(hljs.C_NUMBER_MODE, {begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + hljs.C_NUMBER_RE}),
7723 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
7724 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
7725 {
7726 className: 'name',
7727 begin: '([G])([0-9]+\\.?[0-9]?)'
7728 },
7729 {
7730 className: 'name',
7731 begin: '([M])([0-9]+\\.?[0-9]?)'
7732 },
7733 {
7734 className: 'attr',
7735 begin: '(VC|VS|#)',
7736 end: '(\\d+)'
7737 },
7738 {
7739 className: 'attr',
7740 begin: '(VZOFX|VZOFY|VZOFZ)'
7741 },
7742 {
7743 className: 'built_in',
7744 begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)',
7745 end: '([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])'
7746 },
7747 {
7748 className: 'symbol',
7749 variants: [
7750 {
7751 begin: 'N', end: '\\d+',
7752 illegal: '\\W'
7753 }
7754 ]
7755 }
7756 ];
7757
7758 return {
7759 aliases: ['nc'],
7760 // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.
7761 // However, most prefer all uppercase and uppercase is customary.
7762 case_insensitive: true,
7763 lexemes: GCODE_IDENT_RE,
7764 keywords: GCODE_KEYWORDS,
7765 contains: [
7766 {
7767 className: 'meta',
7768 begin: GCODE_CLOSE_RE
7769 },
7770 GCODE_START
7771 ].concat(GCODE_CODE)
7772 };
7773}
7774},{name:"gherkin",create:/*
7775 Language: Gherkin
7776 Author: Sam Pikesley (@pikesley) <sam.pikesley@theodi.org>
7777 Description: Gherkin (Cucumber etc)
7778 */
7779
7780function (hljs) {
7781 return {
7782 aliases: ['feature'],
7783 keywords: 'Feature Background Ability Business\ Need Scenario Scenarios Scenario\ Outline Scenario\ Template Examples Given And Then But When',
7784 contains: [
7785 {
7786 className: 'keyword',
7787 begin: '\\*'
7788 },
7789 {
7790 className: 'meta',
7791 begin: '@[^@\\s]+'
7792 },
7793 {
7794 begin: '\\|', end: '\\|\\w*$',
7795 contains: [
7796 {
7797 className: 'string',
7798 begin: '[^|]+'
7799 }
7800 ]
7801 },
7802 {
7803 className: 'variable',
7804 begin: '<', end: '>'
7805 },
7806 hljs.HASH_COMMENT_MODE,
7807 {
7808 className: 'string',
7809 begin: '"""', end: '"""'
7810 },
7811 hljs.QUOTE_STRING_MODE
7812 ]
7813 };
7814}
7815},{name:"glsl",create:/*
7816Language: GLSL
7817Description: OpenGL Shading Language
7818Author: Sergey Tikhomirov <sergey@tikhomirov.io>
7819Category: graphics
7820*/
7821
7822function(hljs) {
7823 return {
7824 keywords: {
7825 keyword:
7826 // Statements
7827 'break continue discard do else for if return while' +
7828 // Qualifiers
7829 'attribute binding buffer ccw centroid centroid varying coherent column_major const cw ' +
7830 'depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing ' +
7831 'flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant ' +
7832 'invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y ' +
7833 'local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left ' +
7834 'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f '+
7835 'r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict ' +
7836 'rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 ' +
7837 'rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 ' +
7838 'rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip ' +
7839 'triangles triangles_adjacency uniform varying vertices volatile writeonly',
7840 type:
7841 'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 ' +
7842 'dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray ' +
7843 'iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer' +
7844 'iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray ' +
7845 'image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray ' +
7846 'isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D ' +
7847 'isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 ' +
7848 'mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray ' +
7849 'sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow ' +
7850 'sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D ' +
7851 'samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow ' +
7852 'image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect ' +
7853 'uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray ' +
7854 'usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D ' +
7855 'samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',
7856 built_in:
7857 // Constants
7858 'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes ' +
7859 'gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms ' +
7860 'gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers ' +
7861 'gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits ' +
7862 'gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize ' +
7863 'gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters ' +
7864 'gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors ' +
7865 'gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers ' +
7866 'gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents ' +
7867 'gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits ' +
7868 'gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents ' +
7869 'gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset ' +
7870 'gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms ' +
7871 'gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits ' +
7872 'gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents ' +
7873 'gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters ' +
7874 'gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents ' +
7875 'gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents ' +
7876 'gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits ' +
7877 'gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors ' +
7878 'gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms ' +
7879 'gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits ' +
7880 'gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset ' +
7881 // Variables
7882 'gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial ' +
7883 'gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color ' +
7884 'gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord ' +
7885 'gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor ' +
7886 'gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial ' +
7887 'gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel ' +
7888 'gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix ' +
7889 'gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose ' +
7890 'gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose ' +
7891 'gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 ' +
7892 'gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 ' +
7893 'gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ ' +
7894 'gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord ' +
7895 'gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse ' +
7896 'gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask ' +
7897 'gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter ' +
7898 'gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose ' +
7899 'gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out ' +
7900 // Functions
7901 'EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin ' +
7902 'asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ' +
7903 'atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier ' +
7904 'bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross ' +
7905 'dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB ' +
7906 'floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan ' +
7907 'greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap ' +
7908 'imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad ' +
7909 'imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset ' +
7910 'interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log ' +
7911 'log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer ' +
7912 'memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 ' +
7913 'normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 ' +
7914 'packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod ' +
7915 'shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh ' +
7916 'smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod ' +
7917 'texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod ' +
7918 'texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod ' +
7919 'textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset ' +
7920 'textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset ' +
7921 'textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod ' +
7922 'textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 ' +
7923 'unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',
7924 literal: 'true false'
7925 },
7926 illegal: '"',
7927 contains: [
7928 hljs.C_LINE_COMMENT_MODE,
7929 hljs.C_BLOCK_COMMENT_MODE,
7930 hljs.C_NUMBER_MODE,
7931 {
7932 className: 'meta',
7933 begin: '#', end: '$'
7934 }
7935 ]
7936 };
7937}
7938},{name:"go",create:/*
7939Language: Go
7940Author: Stephan Kountso aka StepLg <steplg@gmail.com>
7941Contributors: Evgeny Stepanischev <imbolk@gmail.com>
7942Description: Google go language (golang). For info about language see http://golang.org/
7943Category: system
7944*/
7945
7946function(hljs) {
7947 var GO_KEYWORDS = {
7948 keyword:
7949 'break default func interface select case map struct chan else goto package switch ' +
7950 'const fallthrough if range type continue for import return var go defer ' +
7951 'bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 ' +
7952 'uint16 uint32 uint64 int uint uintptr rune',
7953 literal:
7954 'true false iota nil',
7955 built_in:
7956 'append cap close complex copy imag len make new panic print println real recover delete'
7957 };
7958 return {
7959 aliases: ['golang'],
7960 keywords: GO_KEYWORDS,
7961 illegal: '</',
7962 contains: [
7963 hljs.C_LINE_COMMENT_MODE,
7964 hljs.C_BLOCK_COMMENT_MODE,
7965 hljs.QUOTE_STRING_MODE,
7966 {
7967 className: 'string',
7968 begin: '\'', end: '[^\\\\]\''
7969 },
7970 {
7971 className: 'string',
7972 begin: '`', end: '`'
7973 },
7974 {
7975 className: 'number',
7976 begin: hljs.C_NUMBER_RE + '[dflsi]?',
7977 relevance: 0
7978 },
7979 hljs.C_NUMBER_MODE
7980 ]
7981 };
7982}
7983},{name:"golo",create:/*
7984Language: Golo
7985Author: Philippe Charriere <ph.charriere@gmail.com>
7986Description: a lightweight dynamic language for the JVM, see http://golo-lang.org/
7987*/
7988
7989function(hljs) {
7990 return {
7991 keywords: {
7992 keyword:
7993 'println readln print import module function local return let var ' +
7994 'while for foreach times in case when match with break continue ' +
7995 'augment augmentation each find filter reduce ' +
7996 'if then else otherwise try catch finally raise throw orIfNull ' +
7997 'DynamicObject|10 DynamicVariable struct Observable map set vector list array',
7998 literal:
7999 'true false null'
8000 },
8001 contains: [
8002 hljs.HASH_COMMENT_MODE,
8003 hljs.QUOTE_STRING_MODE,
8004 hljs.C_NUMBER_MODE,
8005 {
8006 className: 'meta', begin: '@[A-Za-z]+'
8007 }
8008 ]
8009 }
8010}
8011},{name:"gradle",create:/*
8012Language: Gradle
8013Author: Damian Mee <mee.damian@gmail.com>
8014Website: http://meeDamian.com
8015*/
8016
8017function(hljs) {
8018 return {
8019 case_insensitive: true,
8020 keywords: {
8021 keyword:
8022 'task project allprojects subprojects artifacts buildscript configurations ' +
8023 'dependencies repositories sourceSets description delete from into include ' +
8024 'exclude source classpath destinationDir includes options sourceCompatibility ' +
8025 'targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant ' +
8026 'def abstract break case catch continue default do else extends final finally ' +
8027 'for if implements instanceof native new private protected public return static ' +
8028 'switch synchronized throw throws transient try volatile while strictfp package ' +
8029 'import false null super this true antlrtask checkstyle codenarc copy boolean ' +
8030 'byte char class double float int interface long short void compile runTime ' +
8031 'file fileTree abs any append asList asWritable call collect compareTo count ' +
8032 'div dump each eachByte eachFile eachLine every find findAll flatten getAt ' +
8033 'getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods ' +
8034 'isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter ' +
8035 'newReader newWriter next plus pop power previous print println push putAt read ' +
8036 'readBytes readLines reverse reverseEach round size sort splitEachLine step subMap ' +
8037 'times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader ' +
8038 'withStream withWriter withWriterAppend write writeLine'
8039 },
8040 contains: [
8041 hljs.C_LINE_COMMENT_MODE,
8042 hljs.C_BLOCK_COMMENT_MODE,
8043 hljs.APOS_STRING_MODE,
8044 hljs.QUOTE_STRING_MODE,
8045 hljs.NUMBER_MODE,
8046 hljs.REGEXP_MODE
8047
8048 ]
8049 }
8050}
8051},{name:"groovy",create:/*
8052 Language: Groovy
8053 Author: Guillaume Laforge <glaforge@gmail.com>
8054 Website: http://glaforge.appspot.com
8055 Description: Groovy programming language implementation inspired from Vsevolod's Java mode
8056 */
8057
8058function(hljs) {
8059 return {
8060 keywords: {
8061 literal : 'true false null',
8062 keyword:
8063 'byte short char int long boolean float double void ' +
8064 // groovy specific keywords
8065 'def as in assert trait ' +
8066 // common keywords with Java
8067 'super this abstract static volatile transient public private protected synchronized final ' +
8068 'class interface enum if else for while switch case break default continue ' +
8069 'throw throws try catch finally implements extends new import package return instanceof'
8070 },
8071
8072 contains: [
8073 hljs.COMMENT(
8074 '/\\*\\*',
8075 '\\*/',
8076 {
8077 relevance : 0,
8078 contains : [
8079 {
8080 // eat up @'s in emails to prevent them to be recognized as doctags
8081 begin: /\w+@/, relevance: 0
8082 },
8083 {
8084 className : 'doctag',
8085 begin : '@[A-Za-z]+'
8086 }
8087 ]
8088 }
8089 ),
8090 hljs.C_LINE_COMMENT_MODE,
8091 hljs.C_BLOCK_COMMENT_MODE,
8092 {
8093 className: 'string',
8094 begin: '"""', end: '"""'
8095 },
8096 {
8097 className: 'string',
8098 begin: "'''", end: "'''"
8099 },
8100 {
8101 className: 'string',
8102 begin: "\\$/", end: "/\\$",
8103 relevance: 10
8104 },
8105 hljs.APOS_STRING_MODE,
8106 {
8107 className: 'regexp',
8108 begin: /~?\/[^\/\n]+\//,
8109 contains: [
8110 hljs.BACKSLASH_ESCAPE
8111 ]
8112 },
8113 hljs.QUOTE_STRING_MODE,
8114 {
8115 className: 'meta',
8116 begin: "^#!/usr/bin/env", end: '$',
8117 illegal: '\n'
8118 },
8119 hljs.BINARY_NUMBER_MODE,
8120 {
8121 className: 'class',
8122 beginKeywords: 'class interface trait enum', end: '{',
8123 illegal: ':',
8124 contains: [
8125 {beginKeywords: 'extends implements'},
8126 hljs.UNDERSCORE_TITLE_MODE,
8127 ]
8128 },
8129 hljs.C_NUMBER_MODE,
8130 {
8131 className: 'meta', begin: '@[A-Za-z]+'
8132 },
8133 {
8134 // highlight map keys and named parameters as strings
8135 className: 'string', begin: /[^\?]{0}[A-Za-z0-9_$]+ *:/
8136 },
8137 {
8138 // catch middle element of the ternary operator
8139 // to avoid highlight it as a label, named parameter, or map key
8140 begin: /\?/, end: /\:/
8141 },
8142 {
8143 // highlight labeled statements
8144 className: 'symbol', begin: '^\\s*[A-Za-z0-9_$]+:',
8145 relevance: 0
8146 },
8147 ],
8148 illegal: /#|<\//
8149 }
8150}
8151},{name:"haml",create:/*
8152Language: Haml
8153Requires: ruby.js
8154Author: Dan Allen <dan.j.allen@gmail.com>
8155Website: http://google.com/profiles/dan.j.allen
8156Category: template
8157*/
8158
8159// TODO support filter tags like :javascript, support inline HTML
8160function(hljs) {
8161 return {
8162 case_insensitive: true,
8163 contains: [
8164 {
8165 className: 'meta',
8166 begin: '^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$',
8167 relevance: 10
8168 },
8169 // FIXME these comments should be allowed to span indented lines
8170 hljs.COMMENT(
8171 '^\\s*(!=#|=#|-#|/).*$',
8172 false,
8173 {
8174 relevance: 0
8175 }
8176 ),
8177 {
8178 begin: '^\\s*(-|=|!=)(?!#)',
8179 starts: {
8180 end: '\\n',
8181 subLanguage: 'ruby'
8182 }
8183 },
8184 {
8185 className: 'tag',
8186 begin: '^\\s*%',
8187 contains: [
8188 {
8189 className: 'selector-tag',
8190 begin: '\\w+'
8191 },
8192 {
8193 className: 'selector-id',
8194 begin: '#[\\w-]+'
8195 },
8196 {
8197 className: 'selector-class',
8198 begin: '\\.[\\w-]+'
8199 },
8200 {
8201 begin: '{\\s*',
8202 end: '\\s*}',
8203 contains: [
8204 {
8205 begin: ':\\w+\\s*=>',
8206 end: ',\\s+',
8207 returnBegin: true,
8208 endsWithParent: true,
8209 contains: [
8210 {
8211 className: 'attr',
8212 begin: ':\\w+'
8213 },
8214 hljs.APOS_STRING_MODE,
8215 hljs.QUOTE_STRING_MODE,
8216 {
8217 begin: '\\w+',
8218 relevance: 0
8219 }
8220 ]
8221 }
8222 ]
8223 },
8224 {
8225 begin: '\\(\\s*',
8226 end: '\\s*\\)',
8227 excludeEnd: true,
8228 contains: [
8229 {
8230 begin: '\\w+\\s*=',
8231 end: '\\s+',
8232 returnBegin: true,
8233 endsWithParent: true,
8234 contains: [
8235 {
8236 className: 'attr',
8237 begin: '\\w+',
8238 relevance: 0
8239 },
8240 hljs.APOS_STRING_MODE,
8241 hljs.QUOTE_STRING_MODE,
8242 {
8243 begin: '\\w+',
8244 relevance: 0
8245 }
8246 ]
8247 }
8248 ]
8249 }
8250 ]
8251 },
8252 {
8253 begin: '^\\s*[=~]\\s*'
8254 },
8255 {
8256 begin: '#{',
8257 starts: {
8258 end: '}',
8259 subLanguage: 'ruby'
8260 }
8261 }
8262 ]
8263 };
8264}
8265},{name:"handlebars",create:/*
8266Language: Handlebars
8267Requires: xml.js
8268Author: Robin Ward <robin.ward@gmail.com>
8269Description: Matcher for Handlebars as well as EmberJS additions.
8270Category: template
8271*/
8272
8273function(hljs) {
8274 var BUILT_INS = {'builtin-name': 'each in with if else unless bindattr action collection debugger log outlet template unbound view yield'};
8275 return {
8276 aliases: ['hbs', 'html.hbs', 'html.handlebars'],
8277 case_insensitive: true,
8278 subLanguage: 'xml',
8279 contains: [
8280 hljs.COMMENT('{{!(--)?', '(--)?}}'),
8281 {
8282 className: 'template-tag',
8283 begin: /\{\{[#\/]/, end: /\}\}/,
8284 contains: [
8285 {
8286 className: 'name',
8287 begin: /[a-zA-Z\.-]+/,
8288 keywords: BUILT_INS,
8289 starts: {
8290 endsWithParent: true, relevance: 0,
8291 contains: [
8292 hljs.QUOTE_STRING_MODE
8293 ]
8294 }
8295 }
8296 ]
8297 },
8298 {
8299 className: 'template-variable',
8300 begin: /\{\{/, end: /\}\}/,
8301 keywords: BUILT_INS
8302 }
8303 ]
8304 };
8305}
8306},{name:"haskell",create:/*
8307Language: Haskell
8308Author: Jeremy Hull <sourdrums@gmail.com>
8309Contributors: Zena Treep <zena.treep@gmail.com>
8310Category: functional
8311*/
8312
8313function(hljs) {
8314 var COMMENT = {
8315 variants: [
8316 hljs.COMMENT('--', '$'),
8317 hljs.COMMENT(
8318 '{-',
8319 '-}',
8320 {
8321 contains: ['self']
8322 }
8323 )
8324 ]
8325 };
8326
8327 var PRAGMA = {
8328 className: 'meta',
8329 begin: '{-#', end: '#-}'
8330 };
8331
8332 var PREPROCESSOR = {
8333 className: 'meta',
8334 begin: '^#', end: '$'
8335 };
8336
8337 var CONSTRUCTOR = {
8338 className: 'type',
8339 begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (build-in, infix).
8340 relevance: 0
8341 };
8342
8343 var LIST = {
8344 begin: '\\(', end: '\\)',
8345 illegal: '"',
8346 contains: [
8347 PRAGMA,
8348 PREPROCESSOR,
8349 {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
8350 hljs.inherit(hljs.TITLE_MODE, {begin: '[_a-z][\\w\']*'}),
8351 COMMENT
8352 ]
8353 };
8354
8355 var RECORD = {
8356 begin: '{', end: '}',
8357 contains: LIST.contains
8358 };
8359
8360 return {
8361 aliases: ['hs'],
8362 keywords:
8363 'let in if then else case of where do module import hiding ' +
8364 'qualified type data newtype deriving class instance as default ' +
8365 'infix infixl infixr foreign export ccall stdcall cplusplus ' +
8366 'jvm dotnet safe unsafe family forall mdo proc rec',
8367 contains: [
8368
8369 // Top-level constructions.
8370
8371 {
8372 beginKeywords: 'module', end: 'where',
8373 keywords: 'module where',
8374 contains: [LIST, COMMENT],
8375 illegal: '\\W\\.|;'
8376 },
8377 {
8378 begin: '\\bimport\\b', end: '$',
8379 keywords: 'import qualified as hiding',
8380 contains: [LIST, COMMENT],
8381 illegal: '\\W\\.|;'
8382 },
8383
8384 {
8385 className: 'class',
8386 begin: '^(\\s*)?(class|instance)\\b', end: 'where',
8387 keywords: 'class family instance where',
8388 contains: [CONSTRUCTOR, LIST, COMMENT]
8389 },
8390 {
8391 className: 'class',
8392 begin: '\\b(data|(new)?type)\\b', end: '$',
8393 keywords: 'data family type newtype deriving',
8394 contains: [PRAGMA, CONSTRUCTOR, LIST, RECORD, COMMENT]
8395 },
8396 {
8397 beginKeywords: 'default', end: '$',
8398 contains: [CONSTRUCTOR, LIST, COMMENT]
8399 },
8400 {
8401 beginKeywords: 'infix infixl infixr', end: '$',
8402 contains: [hljs.C_NUMBER_MODE, COMMENT]
8403 },
8404 {
8405 begin: '\\bforeign\\b', end: '$',
8406 keywords: 'foreign import export ccall stdcall cplusplus jvm ' +
8407 'dotnet safe unsafe',
8408 contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT]
8409 },
8410 {
8411 className: 'meta',
8412 begin: '#!\\/usr\\/bin\\/env\ runhaskell', end: '$'
8413 },
8414
8415 // "Whitespaces".
8416
8417 PRAGMA,
8418 PREPROCESSOR,
8419
8420 // Literals and names.
8421
8422 // TODO: characters.
8423 hljs.QUOTE_STRING_MODE,
8424 hljs.C_NUMBER_MODE,
8425 CONSTRUCTOR,
8426 hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
8427
8428 COMMENT,
8429
8430 {begin: '->|<-'} // No markup, relevance booster
8431 ]
8432 };
8433}
8434},{name:"haxe",create:/*
8435Language: Haxe
8436Author: Christopher Kaster <ikasoki@gmail.com> (Based on the actionscript.js language file by Alexander Myadzel)
8437*/
8438
8439function(hljs) {
8440 var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
8441 var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
8442
8443 return {
8444 aliases: ['hx'],
8445 keywords: {
8446 keyword: 'break callback case cast catch class continue default do dynamic else enum extends extern ' +
8447 'for function here if implements import in inline interface never new override package private ' +
8448 'public return static super switch this throw trace try typedef untyped using var while',
8449 literal: 'true false null'
8450 },
8451 contains: [
8452 hljs.APOS_STRING_MODE,
8453 hljs.QUOTE_STRING_MODE,
8454 hljs.C_LINE_COMMENT_MODE,
8455 hljs.C_BLOCK_COMMENT_MODE,
8456 hljs.C_NUMBER_MODE,
8457 {
8458 className: 'class',
8459 beginKeywords: 'class interface', end: '{', excludeEnd: true,
8460 contains: [
8461 {
8462 beginKeywords: 'extends implements'
8463 },
8464 hljs.TITLE_MODE
8465 ]
8466 },
8467 {
8468 className: 'meta',
8469 begin: '#', end: '$',
8470 keywords: {'meta-keyword': 'if else elseif end error'}
8471 },
8472 {
8473 className: 'function',
8474 beginKeywords: 'function', end: '[{;]', excludeEnd: true,
8475 illegal: '\\S',
8476 contains: [
8477 hljs.TITLE_MODE,
8478 {
8479 className: 'params',
8480 begin: '\\(', end: '\\)',
8481 contains: [
8482 hljs.APOS_STRING_MODE,
8483 hljs.QUOTE_STRING_MODE,
8484 hljs.C_LINE_COMMENT_MODE,
8485 hljs.C_BLOCK_COMMENT_MODE
8486 ]
8487 },
8488 {
8489 begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
8490 }
8491 ]
8492 }
8493 ]
8494 };
8495}
8496},{name:"hsp",create:/*
8497Language: HSP
8498Author: prince <MC.prince.0203@gmail.com>
8499Website: http://prince.webcrow.jp/
8500Category: scripting
8501*/
8502
8503function(hljs) {
8504 return {
8505 case_insensitive: true,
8506 keywords: 'goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop',
8507 contains: [
8508 hljs.C_LINE_COMMENT_MODE,
8509 hljs.C_BLOCK_COMMENT_MODE,
8510 hljs.QUOTE_STRING_MODE,
8511 hljs.APOS_STRING_MODE,
8512
8513 {
8514 // multi-line string
8515 className: 'string',
8516 begin: '{"', end: '"}',
8517 contains: [hljs.BACKSLASH_ESCAPE]
8518 },
8519
8520 hljs.COMMENT(';', '$'),
8521
8522 {
8523 // pre-processor
8524 className: 'meta',
8525 begin: '#', end: '$',
8526 keywords: {'meta-keyword': 'addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib'},
8527 contains: [
8528 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'meta-string'}),
8529 hljs.NUMBER_MODE,
8530 hljs.C_NUMBER_MODE,
8531 hljs.C_LINE_COMMENT_MODE,
8532 hljs.C_BLOCK_COMMENT_MODE
8533 ]
8534 },
8535
8536 {
8537 // label
8538 className: 'symbol',
8539 begin: '^\\*(\\w+|@)'
8540 },
8541
8542 hljs.NUMBER_MODE,
8543 hljs.C_NUMBER_MODE
8544 ]
8545 };
8546}
8547},{name:"http",create:/*
8548Language: HTTP
8549Description: HTTP request and response headers with automatic body highlighting
8550Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
8551Category: common, protocols
8552*/
8553
8554function(hljs) {
8555 var VERSION = 'HTTP/[0-9\\.]+';
8556 return {
8557 aliases: ['https'],
8558 illegal: '\\S',
8559 contains: [
8560 {
8561 begin: '^' + VERSION, end: '$',
8562 contains: [{className: 'number', begin: '\\b\\d{3}\\b'}]
8563 },
8564 {
8565 begin: '^[A-Z]+ (.*?) ' + VERSION + '$', returnBegin: true, end: '$',
8566 contains: [
8567 {
8568 className: 'string',
8569 begin: ' ', end: ' ',
8570 excludeBegin: true, excludeEnd: true
8571 },
8572 {
8573 begin: VERSION
8574 },
8575 {
8576 className: 'keyword',
8577 begin: '[A-Z]+'
8578 }
8579 ]
8580 },
8581 {
8582 className: 'attribute',
8583 begin: '^\\w', end: ': ', excludeEnd: true,
8584 illegal: '\\n|\\s|=',
8585 starts: {end: '$', relevance: 0}
8586 },
8587 {
8588 begin: '\\n\\n',
8589 starts: {subLanguage: [], endsWithParent: true}
8590 }
8591 ]
8592 };
8593}
8594},{name:"inform7",create:/*
8595Language: Inform 7
8596Author: Bruno Dias <bruno.r.dias@gmail.com>
8597Description: Language definition for Inform 7, a DSL for writing parser interactive fiction.
8598*/
8599
8600function(hljs) {
8601 var START_BRACKET = '\\[';
8602 var END_BRACKET = '\\]';
8603 return {
8604 aliases: ['i7'],
8605 case_insensitive: true,
8606 keywords: {
8607 // Some keywords more or less unique to I7, for relevance.
8608 keyword:
8609 // kind:
8610 'thing room person man woman animal container ' +
8611 'supporter backdrop door ' +
8612 // characteristic:
8613 'scenery open closed locked inside gender ' +
8614 // verb:
8615 'is are say understand ' +
8616 // misc keyword:
8617 'kind of rule'
8618 },
8619 contains: [
8620 {
8621 className: 'string',
8622 begin: '"', end: '"',
8623 relevance: 0,
8624 contains: [
8625 {
8626 className: 'subst',
8627 begin: START_BRACKET, end: END_BRACKET
8628 }
8629 ]
8630 },
8631 {
8632 className: 'section',
8633 begin: /^(Volume|Book|Part|Chapter|Section|Table)\b/,
8634 end: '$'
8635 },
8636 {
8637 // Rule definition
8638 // This is here for relevance.
8639 begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,
8640 end: ':',
8641 contains: [
8642 {
8643 //Rule name
8644 begin: '\\(This', end: '\\)'
8645 }
8646 ]
8647 },
8648 {
8649 className: 'comment',
8650 begin: START_BRACKET, end: END_BRACKET,
8651 contains: ['self']
8652 }
8653 ]
8654 };
8655}
8656},{name:"ini",create:/*
8657Language: Ini
8658Contributors: Guillaume Gomez <guillaume1.gomez@gmail.com>
8659Category: common, config
8660*/
8661
8662function(hljs) {
8663 var STRING = {
8664 className: "string",
8665 contains: [hljs.BACKSLASH_ESCAPE],
8666 variants: [
8667 {
8668 begin: "'''", end: "'''",
8669 relevance: 10
8670 }, {
8671 begin: '"""', end: '"""',
8672 relevance: 10
8673 }, {
8674 begin: '"', end: '"'
8675 }, {
8676 begin: "'", end: "'"
8677 }
8678 ]
8679 };
8680 return {
8681 aliases: ['toml'],
8682 case_insensitive: true,
8683 illegal: /\S/,
8684 contains: [
8685 hljs.COMMENT(';', '$'),
8686 hljs.HASH_COMMENT_MODE,
8687 {
8688 className: 'section',
8689 begin: /^\s*\[+/, end: /\]+/
8690 },
8691 {
8692 begin: /^[a-z0-9\[\]_-]+\s*=\s*/, end: '$',
8693 returnBegin: true,
8694 contains: [
8695 {
8696 className: 'attr',
8697 begin: /[a-z0-9\[\]_-]+/
8698 },
8699 {
8700 begin: /=/, endsWithParent: true,
8701 relevance: 0,
8702 contains: [
8703 {
8704 className: 'literal',
8705 begin: /\bon|off|true|false|yes|no\b/
8706 },
8707 {
8708 className: 'variable',
8709 variants: [
8710 {begin: /\$[\w\d"][\w\d_]*/},
8711 {begin: /\$\{(.*?)}/}
8712 ]
8713 },
8714 STRING,
8715 {
8716 className: 'number',
8717 begin: /([\+\-]+)?[\d]+_[\d_]+/
8718 },
8719 hljs.NUMBER_MODE
8720 ]
8721 }
8722 ]
8723 }
8724 ]
8725 };
8726}
8727},{name:"irpf90",create:/*
8728Language: IRPF90
8729Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
8730Description: IRPF90 is an open-source Fortran code generator : http://irpf90.ups-tlse.fr
8731Category: scientific
8732*/
8733
8734function(hljs) {
8735 var PARAMS = {
8736 className: 'params',
8737 begin: '\\(', end: '\\)'
8738 };
8739
8740 var F_KEYWORDS = {
8741 literal: '.False. .True.',
8742 keyword: 'kind do while private call intrinsic where elsewhere ' +
8743 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
8744 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
8745 'goto save else use module select case ' +
8746 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
8747 'continue format pause cycle exit ' +
8748 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
8749 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
8750 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
8751 'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +
8752 'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +
8753 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
8754 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +
8755 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
8756 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
8757 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
8758 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
8759 'integer real character complex logical dimension allocatable|10 parameter ' +
8760 'external implicit|10 none double precision assign intent optional pointer ' +
8761 'target in out common equivalence data ' +
8762 // IRPF90 special keywords
8763 'begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch ' +
8764 'soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read',
8765 built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +
8766 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
8767 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
8768 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
8769 'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +
8770 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
8771 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
8772 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
8773 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
8774 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
8775 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
8776 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
8777 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
8778 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of' +
8779 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
8780 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
8781 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
8782 'num_images parity popcnt poppar shifta shiftl shiftr this_image ' +
8783 // IRPF90 special built_ins
8784 'IRP_ALIGN irp_here'
8785 };
8786 return {
8787 case_insensitive: true,
8788 keywords: F_KEYWORDS,
8789 illegal: /\/\*/,
8790 contains: [
8791 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
8792 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
8793 {
8794 className: 'function',
8795 beginKeywords: 'subroutine function program',
8796 illegal: '[${=\\n]',
8797 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
8798 },
8799 hljs.COMMENT('!', '$', {relevance: 0}),
8800 hljs.COMMENT('begin_doc', 'end_doc', {relevance: 10}),
8801 {
8802 className: 'number',
8803 begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
8804 relevance: 0
8805 }
8806 ]
8807 };
8808}
8809},{name:"java",create:/*
8810Language: Java
8811Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
8812Category: common, enterprise
8813*/
8814
8815function(hljs) {
8816 var GENERIC_IDENT_RE = hljs.UNDERSCORE_IDENT_RE + '(<(' + hljs.UNDERSCORE_IDENT_RE + '|\\s*,\\s*)+>)?';
8817 var KEYWORDS =
8818 'false synchronized int abstract float private char boolean static null if const ' +
8819 'for true while long strictfp finally protected import native final void ' +
8820 'enum else break transient catch instanceof byte super volatile case assert short ' +
8821 'package default double public try this switch continue throws protected public private';
8822
8823 // https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html
8824 var JAVA_NUMBER_RE = '\\b' +
8825 '(' +
8826 '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b...
8827 '|' +
8828 '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x...
8829 '|' +
8830 '(' +
8831 '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' +
8832 '|' +
8833 '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' +
8834 ')' +
8835 '([eE][-+]?\\d+)?' + // octal, decimal, float
8836 ')' +
8837 '[lLfF]?';
8838 var JAVA_NUMBER_MODE = {
8839 className: 'number',
8840 begin: JAVA_NUMBER_RE,
8841 relevance: 0
8842 };
8843
8844 return {
8845 aliases: ['jsp'],
8846 keywords: KEYWORDS,
8847 illegal: /<\/|#/,
8848 contains: [
8849 hljs.COMMENT(
8850 '/\\*\\*',
8851 '\\*/',
8852 {
8853 relevance : 0,
8854 contains : [
8855 {
8856 // eat up @'s in emails to prevent them to be recognized as doctags
8857 begin: /\w+@/, relevance: 0
8858 },
8859 {
8860 className : 'doctag',
8861 begin : '@[A-Za-z]+'
8862 }
8863 ]
8864 }
8865 ),
8866 hljs.C_LINE_COMMENT_MODE,
8867 hljs.C_BLOCK_COMMENT_MODE,
8868 hljs.APOS_STRING_MODE,
8869 hljs.QUOTE_STRING_MODE,
8870 {
8871 className: 'class',
8872 beginKeywords: 'class interface', end: /[{;=]/, excludeEnd: true,
8873 keywords: 'class interface',
8874 illegal: /[:"\[\]]/,
8875 contains: [
8876 {beginKeywords: 'extends implements'},
8877 hljs.UNDERSCORE_TITLE_MODE
8878 ]
8879 },
8880 {
8881 // Expression keywords prevent 'keyword Name(...)' from being
8882 // recognized as a function definition
8883 beginKeywords: 'new throw return else',
8884 relevance: 0
8885 },
8886 {
8887 className: 'function',
8888 begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
8889 excludeEnd: true,
8890 keywords: KEYWORDS,
8891 contains: [
8892 {
8893 begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
8894 relevance: 0,
8895 contains: [hljs.UNDERSCORE_TITLE_MODE]
8896 },
8897 {
8898 className: 'params',
8899 begin: /\(/, end: /\)/,
8900 keywords: KEYWORDS,
8901 relevance: 0,
8902 contains: [
8903 hljs.APOS_STRING_MODE,
8904 hljs.QUOTE_STRING_MODE,
8905 hljs.C_NUMBER_MODE,
8906 hljs.C_BLOCK_COMMENT_MODE
8907 ]
8908 },
8909 hljs.C_LINE_COMMENT_MODE,
8910 hljs.C_BLOCK_COMMENT_MODE
8911 ]
8912 },
8913 JAVA_NUMBER_MODE,
8914 {
8915 className: 'meta', begin: '@[A-Za-z]+'
8916 }
8917 ]
8918 };
8919}
8920},{name:"javascript",create:/*
8921Language: JavaScript
8922Category: common, scripting
8923*/
8924
8925function(hljs) {
8926 return {
8927 aliases: ['js'],
8928 keywords: {
8929 keyword:
8930 'in of if for while finally var new function do return void else break catch ' +
8931 'instanceof with throw case default try this switch continue typeof delete ' +
8932 'let yield const export super debugger as async await ' +
8933 // ECMAScript 6 modules import
8934 'import from as'
8935 ,
8936 literal:
8937 'true false null undefined NaN Infinity',
8938 built_in:
8939 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
8940 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
8941 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
8942 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
8943 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
8944 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
8945 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +
8946 'Promise'
8947 },
8948 contains: [
8949 {
8950 className: 'meta',
8951 relevance: 10,
8952 begin: /^\s*['"]use (strict|asm)['"]/
8953 },
8954 hljs.APOS_STRING_MODE,
8955 hljs.QUOTE_STRING_MODE,
8956 { // template string
8957 className: 'string',
8958 begin: '`', end: '`',
8959 contains: [
8960 hljs.BACKSLASH_ESCAPE,
8961 {
8962 className: 'subst',
8963 begin: '\\$\\{', end: '\\}'
8964 }
8965 ]
8966 },
8967 hljs.C_LINE_COMMENT_MODE,
8968 hljs.C_BLOCK_COMMENT_MODE,
8969 {
8970 className: 'number',
8971 variants: [
8972 { begin: '\\b(0[bB][01]+)' },
8973 { begin: '\\b(0[oO][0-7]+)' },
8974 { begin: hljs.C_NUMBER_RE }
8975 ],
8976 relevance: 0
8977 },
8978 { // "value" container
8979 begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
8980 keywords: 'return throw case',
8981 contains: [
8982 hljs.C_LINE_COMMENT_MODE,
8983 hljs.C_BLOCK_COMMENT_MODE,
8984 hljs.REGEXP_MODE,
8985 { // E4X / JSX
8986 begin: /</, end: />\s*[);\]]/,
8987 relevance: 0,
8988 subLanguage: 'xml'
8989 }
8990 ],
8991 relevance: 0
8992 },
8993 {
8994 className: 'function',
8995 beginKeywords: 'function', end: /\{/, excludeEnd: true,
8996 contains: [
8997 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
8998 {
8999 className: 'params',
9000 begin: /\(/, end: /\)/,
9001 excludeBegin: true,
9002 excludeEnd: true,
9003 contains: [
9004 hljs.C_LINE_COMMENT_MODE,
9005 hljs.C_BLOCK_COMMENT_MODE
9006 ]
9007 }
9008 ],
9009 illegal: /\[|%/
9010 },
9011 {
9012 begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
9013 },
9014 {
9015 begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
9016 },
9017 { // ES6 class
9018 className: 'class',
9019 beginKeywords: 'class', end: /[{;=]/, excludeEnd: true,
9020 illegal: /[:"\[\]]/,
9021 contains: [
9022 {beginKeywords: 'extends'},
9023 hljs.UNDERSCORE_TITLE_MODE
9024 ]
9025 },
9026 {
9027 beginKeywords: 'constructor', end: /\{/, excludeEnd: true
9028 }
9029 ],
9030 illegal: /#/
9031 };
9032}
9033},{name:"json",create:/*
9034Language: JSON
9035Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
9036Category: common, protocols
9037*/
9038
9039function(hljs) {
9040 var LITERALS = {literal: 'true false null'};
9041 var TYPES = [
9042 hljs.QUOTE_STRING_MODE,
9043 hljs.C_NUMBER_MODE
9044 ];
9045 var VALUE_CONTAINER = {
9046 end: ',', endsWithParent: true, excludeEnd: true,
9047 contains: TYPES,
9048 keywords: LITERALS
9049 };
9050 var OBJECT = {
9051 begin: '{', end: '}',
9052 contains: [
9053 {
9054 className: 'attr',
9055 begin: '\\s*"', end: '"\\s*:\\s*', excludeBegin: true, excludeEnd: true,
9056 contains: [hljs.BACKSLASH_ESCAPE],
9057 illegal: '\\n',
9058 starts: VALUE_CONTAINER
9059 }
9060 ],
9061 illegal: '\\S'
9062 };
9063 var ARRAY = {
9064 begin: '\\[', end: '\\]',
9065 contains: [hljs.inherit(VALUE_CONTAINER)], // inherit is a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents
9066 illegal: '\\S'
9067 };
9068 TYPES.splice(TYPES.length, 0, OBJECT, ARRAY);
9069 return {
9070 contains: TYPES,
9071 keywords: LITERALS,
9072 illegal: '\\S'
9073 };
9074}
9075},{name:"julia",create:/*
9076Language: Julia
9077Author: Kenta Sato <bicycle1885@gmail.com>
9078*/
9079
9080function(hljs) {
9081 // Since there are numerous special names in Julia, it is too much trouble
9082 // to maintain them by hand. Hence these names (i.e. keywords, literals and
9083 // built-ins) are automatically generated from Julia (v0.3.0 and v0.4.1)
9084 // itself through following scripts for each.
9085
9086 var KEYWORDS = {
9087 // # keyword generator
9088 // println("in")
9089 // for kw in Base.REPLCompletions.complete_keyword("")
9090 // println(kw)
9091 // end
9092 keyword:
9093 'in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export ' +
9094 'finally for function global if immutable import importall let local macro module quote return try type ' +
9095 'typealias using while',
9096
9097 // # literal generator
9098 // println("true")
9099 // println("false")
9100 // for name in Base.REPLCompletions.completions("", 0)[1]
9101 // try
9102 // s = symbol(name)
9103 // v = eval(s)
9104 // if !isa(v, Function) &&
9105 // !isa(v, DataType) &&
9106 // !isa(v, IntrinsicFunction) &&
9107 // !issubtype(typeof(v), Tuple) &&
9108 // !isa(v, Union) &&
9109 // !isa(v, Module) &&
9110 // !isa(v, TypeConstructor) &&
9111 // !isa(v, TypeVar) &&
9112 // !isa(v, Colon)
9113 // println(name)
9114 // end
9115 // end
9116 // end
9117 literal:
9118 // v0.3
9119 'true false ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 ' +
9120 'InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort ' +
9121 'RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown ' +
9122 'RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 ' +
9123 'eulergamma golden im nothing pi ฮณ ฯ€ ฯ† ' +
9124 // v0.4 (diff)
9125 'Inf64 NaN64 RoundNearestTiesAway RoundNearestTiesUp ',
9126
9127 // # built_in generator:
9128 // for name in Base.REPLCompletions.completions("", 0)[1]
9129 // try
9130 // v = eval(symbol(name))
9131 // if isa(v, DataType) || isa(v, TypeConstructor) || isa(v, TypeVar)
9132 // println(name)
9133 // end
9134 // end
9135 // end
9136 built_in:
9137 // v0.3
9138 'ANY ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe ' +
9139 'Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char ' +
9140 'CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 ' +
9141 'Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType ' +
9142 'DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError ' +
9143 'EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 ' +
9144 'Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 ' +
9145 'InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError ' +
9146 'LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister ' +
9147 'Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange ' +
9148 'OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 ' +
9149 'Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set ' +
9150 'SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString ' +
9151 'SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular ' +
9152 'Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket ' +
9153 'Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange ' +
9154 'Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip ' +
9155 // v0.4 (diff)
9156 'AbstractChannel AbstractFloat AbstractString AssertionError Base64DecodePipe Base64EncodePipe BufferStream ' +
9157 'CapturedException CartesianIndex CartesianRange Channel Cintmax_t CompositeException Cstring Cuintmax_t ' +
9158 'Cwstring Date DateTime Dims Enum GenSym GlobalRef HTML InitError InvalidStateException Irrational LinSpace ' +
9159 'LowerTriangular NullException Nullable OutOfMemoryError Pair PartialQuickSort Pipe RandomDevice ' +
9160 'ReadOnlyMemoryError ReentrantLock Ref RemoteException SegmentationFault SerializationState SimpleVector ' +
9161 'TCPSocket Text Tuple UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UnicodeError Union UpperTriangular ' +
9162 'Val Void WorkerConfig AbstractMatrix AbstractSparseMatrix AbstractSparseVector AbstractVecOrMat AbstractVector ' +
9163 'DenseMatrix DenseVecOrMat DenseVector Matrix SharedMatrix SharedVector StridedArray StridedMatrix ' +
9164 'StridedVecOrMat StridedVector VecOrMat Vector '
9165 };
9166
9167 // ref: http://julia.readthedocs.org/en/latest/manual/variables/#allowed-variable-names
9168 var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*';
9169
9170 // placeholder for recursive self-reference
9171 var DEFAULT = { lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\// };
9172
9173 var TYPE_ANNOTATION = {
9174 className: 'type',
9175 begin: /::/
9176 };
9177
9178 var SUBTYPE = {
9179 className: 'type',
9180 begin: /<:/
9181 };
9182
9183 // ref: http://julia.readthedocs.org/en/latest/manual/integers-and-floating-point-numbers/
9184 var NUMBER = {
9185 className: 'number',
9186 // supported numeric literals:
9187 // * binary literal (e.g. 0x10)
9188 // * octal literal (e.g. 0o76543210)
9189 // * hexadecimal literal (e.g. 0xfedcba876543210)
9190 // * hexadecimal floating point literal (e.g. 0x1p0, 0x1.2p2)
9191 // * decimal literal (e.g. 9876543210, 100_000_000)
9192 // * floating pointe literal (e.g. 1.2, 1.2f, .2, 1., 1.2e10, 1.2e-10)
9193 begin: /(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,
9194 relevance: 0
9195 };
9196
9197 var CHAR = {
9198 className: 'string',
9199 begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
9200 };
9201
9202 var INTERPOLATION = {
9203 className: 'subst',
9204 begin: /\$\(/, end: /\)/,
9205 keywords: KEYWORDS
9206 };
9207
9208 var INTERPOLATED_VARIABLE = {
9209 className: 'variable',
9210 begin: '\\$' + VARIABLE_NAME_RE
9211 };
9212
9213 // TODO: neatly escape normal code in string literal
9214 var STRING = {
9215 className: 'string',
9216 contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
9217 variants: [
9218 { begin: /\w*"""/, end: /"""\w*/, relevance: 10 },
9219 { begin: /\w*"/, end: /"\w*/ }
9220 ]
9221 };
9222
9223 var COMMAND = {
9224 className: 'string',
9225 contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
9226 begin: '`', end: '`'
9227 };
9228
9229 var MACROCALL = {
9230 className: 'meta',
9231 begin: '@' + VARIABLE_NAME_RE
9232 };
9233
9234 var COMMENT = {
9235 className: 'comment',
9236 variants: [
9237 { begin: '#=', end: '=#', relevance: 10 },
9238 { begin: '#', end: '$' }
9239 ]
9240 };
9241
9242 DEFAULT.contains = [
9243 NUMBER,
9244 CHAR,
9245 TYPE_ANNOTATION,
9246 SUBTYPE,
9247 STRING,
9248 COMMAND,
9249 MACROCALL,
9250 COMMENT,
9251 hljs.HASH_COMMENT_MODE
9252 ];
9253 INTERPOLATION.contains = DEFAULT.contains;
9254
9255 return DEFAULT;
9256}
9257},{name:"kotlin",create:/*
9258 Language: Kotlin
9259 Author: Sergey Mashkov <cy6erGn0m@gmail.com>
9260 Category: misc
9261 */
9262
9263
9264function (hljs) {
9265 var KEYWORDS = 'val var get set class trait object open private protected public ' +
9266 'final enum if else do while for when break continue throw try catch finally ' +
9267 'import package is as in return fun override default companion reified inline volatile transient native ' +
9268 'Byte Short Char Int Long Boolean Float Double Void Unit Nothing';
9269
9270 return {
9271 keywords: {
9272 keyword: KEYWORDS,
9273 literal: 'true false null'
9274 },
9275 contains : [
9276 hljs.COMMENT(
9277 '/\\*\\*',
9278 '\\*/',
9279 {
9280 relevance : 0,
9281 contains : [{
9282 className : 'doctag',
9283 begin : '@[A-Za-z]+'
9284 }]
9285 }
9286 ),
9287 hljs.C_LINE_COMMENT_MODE,
9288 hljs.C_BLOCK_COMMENT_MODE,
9289 {
9290 className: 'type',
9291 begin: /</, end: />/,
9292 returnBegin: true,
9293 excludeEnd: false,
9294 relevance: 0
9295 },
9296 {
9297 className: 'function',
9298 beginKeywords: 'fun', end: '[(]|$',
9299 returnBegin: true,
9300 excludeEnd: true,
9301 keywords: KEYWORDS,
9302 illegal: /fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,
9303 relevance: 5,
9304 contains: [
9305 {
9306 begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
9307 relevance: 0,
9308 contains: [hljs.UNDERSCORE_TITLE_MODE]
9309 },
9310 {
9311 className: 'type',
9312 begin: /</, end: />/, keywords: 'reified',
9313 relevance: 0
9314 },
9315 {
9316 className: 'params',
9317 begin: /\(/, end: /\)/,
9318 keywords: KEYWORDS,
9319 relevance: 0,
9320 illegal: /\([^\(,\s:]+,/,
9321 contains: [
9322 {
9323 className: 'type',
9324 begin: /:\s*/, end: /\s*[=\)]/, excludeBegin: true, returnEnd: true,
9325 relevance: 0
9326 }
9327 ]
9328 },
9329 hljs.C_LINE_COMMENT_MODE,
9330 hljs.C_BLOCK_COMMENT_MODE
9331 ]
9332 },
9333 {
9334 className: 'class',
9335 beginKeywords: 'class trait', end: /[:\{(]|$/,
9336 excludeEnd: true,
9337 illegal: 'extends implements',
9338 contains: [
9339 hljs.UNDERSCORE_TITLE_MODE,
9340 {
9341 className: 'type',
9342 begin: /</, end: />/, excludeBegin: true, excludeEnd: true,
9343 relevance: 0
9344 },
9345 {
9346 className: 'type',
9347 begin: /[,:]\s*/, end: /[<\(,]|$/, excludeBegin: true, returnEnd: true
9348 }
9349 ]
9350 },
9351 {
9352 className: 'variable', beginKeywords: 'var val', end: /\s*[=:$]/, excludeEnd: true
9353 },
9354 hljs.QUOTE_STRING_MODE,
9355 {
9356 className: 'meta',
9357 begin: "^#!/usr/bin/env", end: '$',
9358 illegal: '\n'
9359 },
9360 hljs.C_NUMBER_MODE
9361 ]
9362 };
9363}
9364},{name:"lasso",create:/*
9365Language: Lasso
9366Author: Eric Knibbe <eric@lassosoft.com>
9367Description: Lasso is a language and server platform for database-driven web applications. This definition handles Lasso 9 syntax and LassoScript for Lasso 8.6 and earlier.
9368*/
9369
9370function(hljs) {
9371 var LASSO_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*';
9372 var LASSO_ANGLE_RE = '<\\?(lasso(script)?|=)';
9373 var LASSO_CLOSE_RE = '\\]|\\?>';
9374 var LASSO_KEYWORDS = {
9375 literal:
9376 'true false none minimal full all void ' +
9377 'bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft',
9378 built_in:
9379 'array date decimal duration integer map pair string tag xml null ' +
9380 'boolean bytes keyword list locale queue set stack staticarray ' +
9381 'local var variable global data self inherited currentcapture givenblock',
9382 keyword:
9383 'error_code error_msg error_pop error_push error_reset cache ' +
9384 'database_names database_schemanames database_tablenames define_tag ' +
9385 'define_type email_batch encode_set html_comment handle handle_error ' +
9386 'header if inline iterate ljax_target link link_currentaction ' +
9387 'link_currentgroup link_currentrecord link_detail link_firstgroup ' +
9388 'link_firstrecord link_lastgroup link_lastrecord link_nextgroup ' +
9389 'link_nextrecord link_prevgroup link_prevrecord log loop ' +
9390 'namespace_using output_none portal private protect records referer ' +
9391 'referrer repeating resultset rows search_args search_arguments ' +
9392 'select sort_args sort_arguments thread_atomic value_list while ' +
9393 'abort case else if_empty if_false if_null if_true loop_abort ' +
9394 'loop_continue loop_count params params_up return return_value ' +
9395 'run_children soap_definetag soap_lastrequest soap_lastresponse ' +
9396 'tag_name ascending average by define descending do equals ' +
9397 'frozen group handle_failure import in into join let match max ' +
9398 'min on order parent protected provide public require returnhome ' +
9399 'skip split_thread sum take thread to trait type where with ' +
9400 'yield yieldhome and or not'
9401 };
9402 var HTML_COMMENT = hljs.COMMENT(
9403 '<!--',
9404 '-->',
9405 {
9406 relevance: 0
9407 }
9408 );
9409 var LASSO_NOPROCESS = {
9410 className: 'meta',
9411 begin: '\\[noprocess\\]',
9412 starts: {
9413 end: '\\[/noprocess\\]',
9414 returnEnd: true,
9415 contains: [HTML_COMMENT]
9416 }
9417 };
9418 var LASSO_START = {
9419 className: 'meta',
9420 begin: '\\[/noprocess|' + LASSO_ANGLE_RE
9421 };
9422 var LASSO_DATAMEMBER = {
9423 className: 'symbol',
9424 begin: '\'' + LASSO_IDENT_RE + '\''
9425 };
9426 var LASSO_CODE = [
9427 hljs.COMMENT(
9428 '/\\*\\*!',
9429 '\\*/'
9430 ),
9431 hljs.C_LINE_COMMENT_MODE,
9432 hljs.C_BLOCK_COMMENT_MODE,
9433 hljs.inherit(hljs.C_NUMBER_MODE, {begin: hljs.C_NUMBER_RE + '|(infinity|nan)\\b'}),
9434 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
9435 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
9436 {
9437 className: 'string',
9438 begin: '`', end: '`'
9439 },
9440 { // variables
9441 variants: [
9442 {
9443 begin: '[#$]' + LASSO_IDENT_RE
9444 },
9445 {
9446 begin: '#', end: '\\d+',
9447 illegal: '\\W'
9448 }
9449 ]
9450 },
9451 {
9452 className: 'type',
9453 begin: '::\\s*', end: LASSO_IDENT_RE,
9454 illegal: '\\W'
9455 },
9456 {
9457 className: 'attr',
9458 variants: [
9459 {
9460 begin: '-(?!infinity)' + hljs.UNDERSCORE_IDENT_RE,
9461 relevance: 0
9462 },
9463 {
9464 begin: '(\\.\\.\\.)'
9465 }
9466 ]
9467 },
9468 {
9469 begin: /(->|\.\.?)\s*/,
9470 relevance: 0,
9471 contains: [LASSO_DATAMEMBER]
9472 },
9473 {
9474 className: 'class',
9475 beginKeywords: 'define',
9476 returnEnd: true, end: '\\(|=>',
9477 contains: [
9478 hljs.inherit(hljs.TITLE_MODE, {begin: hljs.UNDERSCORE_IDENT_RE + '(=(?!>))?'})
9479 ]
9480 }
9481 ];
9482 return {
9483 aliases: ['ls', 'lassoscript'],
9484 case_insensitive: true,
9485 lexemes: LASSO_IDENT_RE + '|&[lg]t;',
9486 keywords: LASSO_KEYWORDS,
9487 contains: [
9488 {
9489 className: 'meta',
9490 begin: LASSO_CLOSE_RE,
9491 relevance: 0,
9492 starts: { // markup
9493 end: '\\[|' + LASSO_ANGLE_RE,
9494 returnEnd: true,
9495 relevance: 0,
9496 contains: [HTML_COMMENT]
9497 }
9498 },
9499 LASSO_NOPROCESS,
9500 LASSO_START,
9501 {
9502 className: 'meta',
9503 begin: '\\[no_square_brackets',
9504 starts: {
9505 end: '\\[/no_square_brackets\\]', // not implemented in the language
9506 lexemes: LASSO_IDENT_RE + '|&[lg]t;',
9507 keywords: LASSO_KEYWORDS,
9508 contains: [
9509 {
9510 className: 'meta',
9511 begin: LASSO_CLOSE_RE,
9512 relevance: 0,
9513 starts: {
9514 end: '\\[noprocess\\]|' + LASSO_ANGLE_RE,
9515 returnEnd: true,
9516 contains: [HTML_COMMENT]
9517 }
9518 },
9519 LASSO_NOPROCESS,
9520 LASSO_START
9521 ].concat(LASSO_CODE)
9522 }
9523 },
9524 {
9525 className: 'meta',
9526 begin: '\\[',
9527 relevance: 0
9528 },
9529 {
9530 className: 'meta',
9531 begin: '^#!.+lasso9\\b',
9532 relevance: 10
9533 }
9534 ].concat(LASSO_CODE)
9535 };
9536}
9537},{name:"less",create:/*
9538Language: Less
9539Author: Max Mikhailov <seven.phases.max@gmail.com>
9540Category: css
9541*/
9542
9543function(hljs) {
9544 var IDENT_RE = '[\\w-]+'; // yes, Less identifiers may begin with a digit
9545 var INTERP_IDENT_RE = '(' + IDENT_RE + '|@{' + IDENT_RE + '})';
9546
9547 /* Generic Modes */
9548
9549 var RULES = [], VALUE = []; // forward def. for recursive modes
9550
9551 var STRING_MODE = function(c) { return {
9552 // Less strings are not multiline (also include '~' for more consistent coloring of "escaped" strings)
9553 className: 'string', begin: '~?' + c + '.*?' + c
9554 };};
9555
9556 var IDENT_MODE = function(name, begin, relevance) { return {
9557 className: name, begin: begin, relevance: relevance
9558 };};
9559
9560 var PARENS_MODE = {
9561 // used only to properly balance nested parens inside mixin call, def. arg list
9562 begin: '\\(', end: '\\)', contains: VALUE, relevance: 0
9563 };
9564
9565 // generic Less highlighter (used almost everywhere except selectors):
9566 VALUE.push(
9567 hljs.C_LINE_COMMENT_MODE,
9568 hljs.C_BLOCK_COMMENT_MODE,
9569 STRING_MODE("'"),
9570 STRING_MODE('"'),
9571 hljs.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(
9572 {
9573 begin: '(url|data-uri)\\(',
9574 starts: {className: 'string', end: '[\\)\\n]', excludeEnd: true}
9575 },
9576 IDENT_MODE('number', '#[0-9A-Fa-f]+\\b'),
9577 PARENS_MODE,
9578 IDENT_MODE('variable', '@@?' + IDENT_RE, 10),
9579 IDENT_MODE('variable', '@{' + IDENT_RE + '}'),
9580 IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string
9581 { // @media features (itโ€™s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):
9582 className: 'attribute', begin: IDENT_RE + '\\s*:', end: ':', returnBegin: true, excludeEnd: true
9583 },
9584 {
9585 className: 'meta',
9586 begin: '!important'
9587 }
9588 );
9589
9590 var VALUE_WITH_RULESETS = VALUE.concat({
9591 begin: '{', end: '}', contains: RULES
9592 });
9593
9594 var MIXIN_GUARD_MODE = {
9595 beginKeywords: 'when', endsWithParent: true,
9596 contains: [{beginKeywords: 'and not'}].concat(VALUE) // using this form to override VALUEโ€™s 'function' match
9597 };
9598
9599 /* Rule-Level Modes */
9600
9601 var RULE_MODE = {
9602 className: 'attribute',
9603 begin: INTERP_IDENT_RE, end: ':', excludeEnd: true,
9604 contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE],
9605 illegal: /\S/,
9606 starts: {end: '[;}]', returnEnd: true, contains: VALUE, illegal: '[<=$]'}
9607 };
9608
9609 var AT_RULE_MODE = {
9610 className: 'keyword',
9611 begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b',
9612 starts: {end: '[;{}]', returnEnd: true, contains: VALUE, relevance: 0}
9613 };
9614
9615 // variable definitions and calls
9616 var VAR_RULE_MODE = {
9617 className: 'variable',
9618 variants: [
9619 // using more strict pattern for higher relevance to increase chances of Less detection.
9620 // this is *the only* Less specific statement used in most of the sources, so...
9621 // (weโ€™ll still often loose to the css-parser unless there's '//' comment,
9622 // simply because 1 variable just can't beat 99 properties :)
9623 {begin: '@' + IDENT_RE + '\\s*:', relevance: 15},
9624 {begin: '@' + IDENT_RE}
9625 ],
9626 starts: {end: '[;}]', returnEnd: true, contains: VALUE_WITH_RULESETS}
9627 };
9628
9629 var SELECTOR_MODE = {
9630 // first parse unambiguous selectors (i.e. those not starting with tag)
9631 // then fall into the scary lookahead-discriminator variant.
9632 // this mode also handles mixin definitions and calls
9633 variants: [{
9634 begin: '[\\.#:&\\[]', end: '[;{}]' // mixin calls end with ';'
9635 }, {
9636 begin: INTERP_IDENT_RE + '[^;]*{',
9637 end: '{'
9638 }],
9639 returnBegin: true,
9640 returnEnd: true,
9641 illegal: '[<=\'$"]',
9642 contains: [
9643 hljs.C_LINE_COMMENT_MODE,
9644 hljs.C_BLOCK_COMMENT_MODE,
9645 MIXIN_GUARD_MODE,
9646 IDENT_MODE('keyword', 'all\\b'),
9647 IDENT_MODE('variable', '@{' + IDENT_RE + '}'), // otherwise itโ€™s identified as tag
9648 IDENT_MODE('selector-tag', INTERP_IDENT_RE + '%?', 0), // '%' for more consistent coloring of @keyframes "tags"
9649 IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),
9650 IDENT_MODE('selector-class', '\\.' + INTERP_IDENT_RE, 0),
9651 IDENT_MODE('selector-tag', '&', 0),
9652 {className: 'selector-attr', begin: '\\[', end: '\\]'},
9653 {begin: '\\(', end: '\\)', contains: VALUE_WITH_RULESETS}, // argument list of parametric mixins
9654 {begin: '!important'} // eat !important after mixin call or it will be colored as tag
9655 ]
9656 };
9657
9658 RULES.push(
9659 hljs.C_LINE_COMMENT_MODE,
9660 hljs.C_BLOCK_COMMENT_MODE,
9661 AT_RULE_MODE,
9662 VAR_RULE_MODE,
9663 SELECTOR_MODE,
9664 RULE_MODE
9665 );
9666
9667 return {
9668 case_insensitive: true,
9669 illegal: '[=>\'/<($"]',
9670 contains: RULES
9671 };
9672}
9673},{name:"lisp",create:/*
9674Language: Lisp
9675Description: Generic lisp syntax
9676Author: Vasily Polovnyov <vast@whiteants.net>
9677Category: lisp
9678*/
9679
9680function(hljs) {
9681 var LISP_IDENT_RE = '[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*';
9682 var MEC_RE = '\\|[^]*?\\|';
9683 var LISP_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?';
9684 var SHEBANG = {
9685 className: 'meta',
9686 begin: '^#!', end: '$'
9687 };
9688 var LITERAL = {
9689 className: 'literal',
9690 begin: '\\b(t{1}|nil)\\b'
9691 };
9692 var NUMBER = {
9693 className: 'number',
9694 variants: [
9695 {begin: LISP_SIMPLE_NUMBER_RE, relevance: 0},
9696 {begin: '#(b|B)[0-1]+(/[0-1]+)?'},
9697 {begin: '#(o|O)[0-7]+(/[0-7]+)?'},
9698 {begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?'},
9699 {begin: '#(c|C)\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\)'}
9700 ]
9701 };
9702 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
9703 var COMMENT = hljs.COMMENT(
9704 ';', '$',
9705 {
9706 relevance: 0
9707 }
9708 );
9709 var VARIABLE = {
9710 begin: '\\*', end: '\\*'
9711 };
9712 var KEYWORD = {
9713 className: 'symbol',
9714 begin: '[:&]' + LISP_IDENT_RE
9715 };
9716 var IDENT = {
9717 begin: LISP_IDENT_RE,
9718 relevance: 0
9719 };
9720 var MEC = {
9721 begin: MEC_RE
9722 };
9723 var QUOTED_LIST = {
9724 begin: '\\(', end: '\\)',
9725 contains: ['self', LITERAL, STRING, NUMBER, IDENT]
9726 };
9727 var QUOTED = {
9728 contains: [NUMBER, STRING, VARIABLE, KEYWORD, QUOTED_LIST, IDENT],
9729 variants: [
9730 {
9731 begin: '[\'`]\\(', end: '\\)'
9732 },
9733 {
9734 begin: '\\(quote ', end: '\\)',
9735 keywords: {name: 'quote'}
9736 },
9737 {
9738 begin: '\'' + MEC_RE
9739 }
9740 ]
9741 };
9742 var QUOTED_ATOM = {
9743 variants: [
9744 {begin: '\'' + LISP_IDENT_RE},
9745 {begin: '#\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*'}
9746 ]
9747 };
9748 var LIST = {
9749 begin: '\\(\\s*', end: '\\)'
9750 };
9751 var BODY = {
9752 endsWithParent: true,
9753 relevance: 0
9754 };
9755 LIST.contains = [
9756 {
9757 className: 'name',
9758 variants: [
9759 {begin: LISP_IDENT_RE},
9760 {begin: MEC_RE}
9761 ]
9762 },
9763 BODY
9764 ];
9765 BODY.contains = [QUOTED, QUOTED_ATOM, LIST, LITERAL, NUMBER, STRING, COMMENT, VARIABLE, KEYWORD, MEC, IDENT];
9766
9767 return {
9768 illegal: /\S/,
9769 contains: [
9770 NUMBER,
9771 SHEBANG,
9772 LITERAL,
9773 STRING,
9774 COMMENT,
9775 QUOTED,
9776 QUOTED_ATOM,
9777 LIST,
9778 IDENT
9779 ]
9780 };
9781}
9782},{name:"livecodeserver",create:/*
9783Language: LiveCode
9784Author: Ralf Bitter <rabit@revigniter.com>
9785Description: Language definition for LiveCode server accounting for revIgniter (a web application framework) characteristics.
9786Version: 1.0a
9787Date: 2013-06-03
9788Category: enterprise
9789*/
9790
9791function(hljs) {
9792 var VARIABLE = {
9793 begin: '\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+',
9794 relevance: 0
9795 };
9796 var COMMENT_MODES = [
9797 hljs.C_BLOCK_COMMENT_MODE,
9798 hljs.HASH_COMMENT_MODE,
9799 hljs.COMMENT('--', '$'),
9800 hljs.COMMENT('[^:]//', '$')
9801 ];
9802 var TITLE1 = hljs.inherit(hljs.TITLE_MODE, {
9803 variants: [
9804 {begin: '\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*'},
9805 {begin: '\\b_[a-z0-9\\-]+'}
9806 ]
9807 });
9808 var TITLE2 = hljs.inherit(hljs.TITLE_MODE, {begin: '\\b([A-Za-z0-9_\\-]+)\\b'});
9809 return {
9810 case_insensitive: false,
9811 keywords: {
9812 keyword:
9813 '$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER ' +
9814 'codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph ' +
9815 'after byte bytes english the until http forever descending using line real8 with seventh ' +
9816 'for stdout finally element word words fourth before black ninth sixth characters chars stderr ' +
9817 'uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid ' +
9818 'at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 ' +
9819 'int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat ' +
9820 'end repeat URL in try into switch to words https token binfile each tenth as ticks tick ' +
9821 'system real4 by dateItems without char character ascending eighth whole dateTime numeric short ' +
9822 'first ftp integer abbreviated abbr abbrev private case while if ' +
9823 'div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within ' +
9824 'contains ends with begins the keys of keys',
9825 literal:
9826 'SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE ' +
9827 'QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO ' +
9828 'six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five ' +
9829 'quote empty one true return cr linefeed right backslash null seven tab three two ' +
9830 'RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK ' +
9831 'FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK',
9832 built_in:
9833 'put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode ' +
9834 'base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum ' +
9835 'cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress ' +
9836 'constantNames cos date dateFormat decompress directories ' +
9837 'diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global ' +
9838 'globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset ' +
9839 'keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders ' +
9840 'libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 ' +
9841 'longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec ' +
9842 'millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar ' +
9843 'numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets ' +
9844 'paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation ' +
9845 'populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile ' +
9846 'revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull ' +
9847 'revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered ' +
9848 'revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames ' +
9849 'revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull ' +
9850 'revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections ' +
9851 'revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype ' +
9852 'revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext ' +
9853 'revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames ' +
9854 'revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase ' +
9855 'revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute ' +
9856 'revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces ' +
9857 'revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode ' +
9858 'revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling ' +
9859 'revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error ' +
9860 'revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute ' +
9861 'revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort ' +
9862 'revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree ' +
9863 'revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance ' +
9864 'sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound ' +
9865 'stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper ' +
9866 'transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames ' +
9867 'variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet ' +
9868 'xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process ' +
9869 'combine constant convert create new alias folder directory decrypt delete variable word line folder ' +
9870 'directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile ' +
9871 'libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback ' +
9872 'libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime ' +
9873 'libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename ' +
9874 'replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase ' +
9875 'revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees ' +
9876 'revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord ' +
9877 'revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase ' +
9878 'revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD ' +
9879 'revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost ' +
9880 'revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData ' +
9881 'revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel ' +
9882 'revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback ' +
9883 'revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop ' +
9884 'subtract union unload wait write'
9885 },
9886 contains: [
9887 VARIABLE,
9888 {
9889 className: 'keyword',
9890 begin: '\\bend\\sif\\b'
9891 },
9892 {
9893 className: 'function',
9894 beginKeywords: 'function', end: '$',
9895 contains: [
9896 VARIABLE,
9897 TITLE2,
9898 hljs.APOS_STRING_MODE,
9899 hljs.QUOTE_STRING_MODE,
9900 hljs.BINARY_NUMBER_MODE,
9901 hljs.C_NUMBER_MODE,
9902 TITLE1
9903 ]
9904 },
9905 {
9906 className: 'function',
9907 begin: '\\bend\\s+', end: '$',
9908 keywords: 'end',
9909 contains: [
9910 TITLE2,
9911 TITLE1
9912 ]
9913 },
9914 {
9915 beginKeywords: 'command on', end: '$',
9916 contains: [
9917 VARIABLE,
9918 TITLE2,
9919 hljs.APOS_STRING_MODE,
9920 hljs.QUOTE_STRING_MODE,
9921 hljs.BINARY_NUMBER_MODE,
9922 hljs.C_NUMBER_MODE,
9923 TITLE1
9924 ]
9925 },
9926 {
9927 className: 'meta',
9928 variants: [
9929 {
9930 begin: '<\\?(rev|lc|livecode)',
9931 relevance: 10
9932 },
9933 { begin: '<\\?' },
9934 { begin: '\\?>' }
9935 ]
9936 },
9937 hljs.APOS_STRING_MODE,
9938 hljs.QUOTE_STRING_MODE,
9939 hljs.BINARY_NUMBER_MODE,
9940 hljs.C_NUMBER_MODE,
9941 TITLE1
9942 ].concat(COMMENT_MODES),
9943 illegal: ';$|^\\[|^='
9944 };
9945}
9946},{name:"livescript",create:/*
9947Language: LiveScript
9948Author: Taneli Vatanen <taneli.vatanen@gmail.com>
9949Contributors: Jen Evers-Corvina <jen@sevvie.net>
9950Origin: coffeescript.js
9951Description: LiveScript is a programming language that transcompiles to JavaScript. For info about language see http://livescript.net/
9952Category: scripting
9953*/
9954
9955function(hljs) {
9956 var KEYWORDS = {
9957 keyword:
9958 // JS keywords
9959 'in if for while finally new do return else break catch instanceof throw try this ' +
9960 'switch continue typeof delete debugger case default function var with ' +
9961 // LiveScript keywords
9962 'then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super ' +
9963 'case default function var void const let enum export import native ' +
9964 '__hasProp __extends __slice __bind __indexOf',
9965 literal:
9966 // JS literals
9967 'true false null undefined ' +
9968 // LiveScript literals
9969 'yes no on off it that void',
9970 built_in:
9971 'npm require console print module global window document'
9972 };
9973 var JS_IDENT_RE = '[A-Za-z$_](?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*';
9974 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
9975 var SUBST = {
9976 className: 'subst',
9977 begin: /#\{/, end: /}/,
9978 keywords: KEYWORDS
9979 };
9980 var SUBST_SIMPLE = {
9981 className: 'subst',
9982 begin: /#[A-Za-z$_]/, end: /(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,
9983 keywords: KEYWORDS
9984 };
9985 var EXPRESSIONS = [
9986 hljs.BINARY_NUMBER_MODE,
9987 {
9988 className: 'number',
9989 begin: '(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)',
9990 relevance: 0,
9991 starts: {end: '(\\s*/)?', relevance: 0} // a number tries to eat the following slash to prevent treating it as a regexp
9992 },
9993 {
9994 className: 'string',
9995 variants: [
9996 {
9997 begin: /'''/, end: /'''/,
9998 contains: [hljs.BACKSLASH_ESCAPE]
9999 },
10000 {
10001 begin: /'/, end: /'/,
10002 contains: [hljs.BACKSLASH_ESCAPE]
10003 },
10004 {
10005 begin: /"""/, end: /"""/,
10006 contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
10007 },
10008 {
10009 begin: /"/, end: /"/,
10010 contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
10011 },
10012 {
10013 begin: /\\/, end: /(\s|$)/,
10014 excludeEnd: true
10015 }
10016 ]
10017 },
10018 {
10019 className: 'regexp',
10020 variants: [
10021 {
10022 begin: '//', end: '//[gim]*',
10023 contains: [SUBST, hljs.HASH_COMMENT_MODE]
10024 },
10025 {
10026 // regex can't start with space to parse x / 2 / 3 as two divisions
10027 // regex can't start with *, and it supports an "illegal" in the main mode
10028 begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
10029 }
10030 ]
10031 },
10032 {
10033 begin: '@' + JS_IDENT_RE
10034 },
10035 {
10036 begin: '``', end: '``',
10037 excludeBegin: true, excludeEnd: true,
10038 subLanguage: 'javascript'
10039 }
10040 ];
10041 SUBST.contains = EXPRESSIONS;
10042
10043 var PARAMS = {
10044 className: 'params',
10045 begin: '\\(', returnBegin: true,
10046 /* We need another contained nameless mode to not have every nested
10047 pair of parens to be called "params" */
10048 contains: [
10049 {
10050 begin: /\(/, end: /\)/,
10051 keywords: KEYWORDS,
10052 contains: ['self'].concat(EXPRESSIONS)
10053 }
10054 ]
10055 };
10056
10057 return {
10058 aliases: ['ls'],
10059 keywords: KEYWORDS,
10060 illegal: /\/\*/,
10061 contains: EXPRESSIONS.concat([
10062 hljs.COMMENT('\\/\\*', '\\*\\/'),
10063 hljs.HASH_COMMENT_MODE,
10064 {
10065 className: 'function',
10066 contains: [TITLE, PARAMS],
10067 returnBegin: true,
10068 variants: [
10069 {
10070 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?', end: '\\->\\*?'
10071 },
10072 {
10073 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?', end: '[-~]{1,2}>\\*?'
10074 },
10075 {
10076 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?', end: '!?[-~]{1,2}>\\*?'
10077 }
10078 ]
10079 },
10080 {
10081 className: 'class',
10082 beginKeywords: 'class',
10083 end: '$',
10084 illegal: /[:="\[\]]/,
10085 contains: [
10086 {
10087 beginKeywords: 'extends',
10088 endsWithParent: true,
10089 illegal: /[:="\[\]]/,
10090 contains: [TITLE]
10091 },
10092 TITLE
10093 ]
10094 },
10095 {
10096 begin: JS_IDENT_RE + ':', end: ':',
10097 returnBegin: true, returnEnd: true,
10098 relevance: 0
10099 }
10100 ])
10101 };
10102}
10103},{name:"lua",create:/*
10104Language: Lua
10105Author: Andrew Fedorov <dmmdrs@mail.ru>
10106Category: scripting
10107*/
10108
10109function(hljs) {
10110 var OPENING_LONG_BRACKET = '\\[=*\\[';
10111 var CLOSING_LONG_BRACKET = '\\]=*\\]';
10112 var LONG_BRACKETS = {
10113 begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
10114 contains: ['self']
10115 };
10116 var COMMENTS = [
10117 hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),
10118 hljs.COMMENT(
10119 '--' + OPENING_LONG_BRACKET,
10120 CLOSING_LONG_BRACKET,
10121 {
10122 contains: [LONG_BRACKETS],
10123 relevance: 10
10124 }
10125 )
10126 ];
10127 return {
10128 lexemes: hljs.UNDERSCORE_IDENT_RE,
10129 keywords: {
10130 keyword:
10131 'and break do else elseif end false for if in local nil not or repeat return then ' +
10132 'true until while',
10133 built_in:
10134 '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +
10135 'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +
10136 'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +
10137 'io math os package string table'
10138 },
10139 contains: COMMENTS.concat([
10140 {
10141 className: 'function',
10142 beginKeywords: 'function', end: '\\)',
10143 contains: [
10144 hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
10145 {
10146 className: 'params',
10147 begin: '\\(', endsWithParent: true,
10148 contains: COMMENTS
10149 }
10150 ].concat(COMMENTS)
10151 },
10152 hljs.C_NUMBER_MODE,
10153 hljs.APOS_STRING_MODE,
10154 hljs.QUOTE_STRING_MODE,
10155 {
10156 className: 'string',
10157 begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
10158 contains: [LONG_BRACKETS],
10159 relevance: 5
10160 }
10161 ])
10162 };
10163}
10164},{name:"makefile",create:/*
10165Language: Makefile
10166Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
10167Category: common
10168*/
10169
10170function(hljs) {
10171 var VARIABLE = {
10172 className: 'variable',
10173 begin: /\$\(/, end: /\)/,
10174 contains: [hljs.BACKSLASH_ESCAPE]
10175 };
10176 return {
10177 aliases: ['mk', 'mak'],
10178 contains: [
10179 hljs.HASH_COMMENT_MODE,
10180 {
10181 begin: /^\w+\s*\W*=/, returnBegin: true,
10182 relevance: 0,
10183 starts: {
10184 end: /\s*\W*=/, excludeEnd: true,
10185 starts: {
10186 end: /$/,
10187 relevance: 0,
10188 contains: [
10189 VARIABLE
10190 ]
10191 }
10192 }
10193 },
10194 {
10195 className: 'section',
10196 begin: /^[\w]+:\s*$/
10197 },
10198 {
10199 className: 'meta',
10200 begin: /^\.PHONY:/, end: /$/,
10201 keywords: {'meta-keyword': '.PHONY'}, lexemes: /[\.\w]+/
10202 },
10203 {
10204 begin: /^\t+/, end: /$/,
10205 relevance: 0,
10206 contains: [
10207 hljs.QUOTE_STRING_MODE,
10208 VARIABLE
10209 ]
10210 }
10211 ]
10212 };
10213}
10214},{name:"markdown",create:/*
10215Language: Markdown
10216Requires: xml.js
10217Author: John Crepezzi <john.crepezzi@gmail.com>
10218Website: http://seejohncode.com/
10219Category: common, markup
10220*/
10221
10222function(hljs) {
10223 return {
10224 aliases: ['md', 'mkdown', 'mkd'],
10225 contains: [
10226 // highlight headers
10227 {
10228 className: 'section',
10229 variants: [
10230 { begin: '^#{1,6}', end: '$' },
10231 { begin: '^.+?\\n[=-]{2,}$' }
10232 ]
10233 },
10234 // inline html
10235 {
10236 begin: '<', end: '>',
10237 subLanguage: 'xml',
10238 relevance: 0
10239 },
10240 // lists (indicators only)
10241 {
10242 className: 'bullet',
10243 begin: '^([*+-]|(\\d+\\.))\\s+'
10244 },
10245 // strong segments
10246 {
10247 className: 'strong',
10248 begin: '[*_]{2}.+?[*_]{2}'
10249 },
10250 // emphasis segments
10251 {
10252 className: 'emphasis',
10253 variants: [
10254 { begin: '\\*.+?\\*' },
10255 { begin: '_.+?_'
10256 , relevance: 0
10257 }
10258 ]
10259 },
10260 // blockquotes
10261 {
10262 className: 'quote',
10263 begin: '^>\\s+', end: '$'
10264 },
10265 // code snippets
10266 {
10267 className: 'code',
10268 variants: [
10269 { begin: '`.+?`' },
10270 { begin: '^( {4}|\t)', end: '$'
10271 , relevance: 0
10272 }
10273 ]
10274 },
10275 // horizontal rules
10276 {
10277 begin: '^[-\\*]{3,}', end: '$'
10278 },
10279 // using links - title and link
10280 {
10281 begin: '\\[.+?\\][\\(\\[].*?[\\)\\]]',
10282 returnBegin: true,
10283 contains: [
10284 {
10285 className: 'string',
10286 begin: '\\[', end: '\\]',
10287 excludeBegin: true,
10288 returnEnd: true,
10289 relevance: 0
10290 },
10291 {
10292 className: 'link',
10293 begin: '\\]\\(', end: '\\)',
10294 excludeBegin: true, excludeEnd: true
10295 },
10296 {
10297 className: 'symbol',
10298 begin: '\\]\\[', end: '\\]',
10299 excludeBegin: true, excludeEnd: true
10300 }
10301 ],
10302 relevance: 10
10303 },
10304 {
10305 begin: '^\\[\.+\\]:',
10306 returnBegin: true,
10307 contains: [
10308 {
10309 className: 'symbol',
10310 begin: '\\[', end: '\\]:',
10311 excludeBegin: true, excludeEnd: true,
10312 starts: {
10313 className: 'link',
10314 end: '$'
10315 }
10316 }
10317 ]
10318 }
10319 ]
10320 };
10321}
10322},{name:"mathematica",create:/*
10323Language: Mathematica
10324Author: Daniel Kvasnicka <dkvasnicka@vendavo.com>
10325Category: scientific
10326*/
10327
10328function(hljs) {
10329 return {
10330 aliases: ['mma'],
10331 lexemes: '(\\$|\\b)' + hljs.IDENT_RE + '\\b',
10332 keywords: 'AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis ' +
10333 'BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering ' +
10334 'C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ' +
10335 'ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition ' +
10336 'D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform ' +
10337 'DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions ' +
10338 'E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution ' +
10339 'FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve ' +
10340 'FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance ' +
10341 'GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion ' +
10342 'GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution ' +
10343 'HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData ' +
10344 'I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction ' +
10345 'InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess ' +
10346 'JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition ' +
10347 'K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter ' +
10348 'Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions ' +
10349 'LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy ' +
10350 'MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution ' +
10351 'N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator ' +
10352 'NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot ' +
10353 'O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues ' +
10354 'PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList ' +
10355 'PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions ' +
10356 'QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder ' +
10357 'RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity ' +
10358 'SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity ' +
10359 'SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders ' +
10360 'SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub ' +
10361 'Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine ' +
10362 'Transparent ' +
10363 'UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd ' +
10364 'V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution ' +
10365 'WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian ' +
10366 'XMLElement XMLObject Xnor Xor ' +
10367 'Yellow YuleDissimilarity ' +
10368 'ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform ' +
10369 '$Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber',
10370 contains: [
10371 {
10372 className: 'comment',
10373 begin: /\(\*/, end: /\*\)/
10374 },
10375 hljs.APOS_STRING_MODE,
10376 hljs.QUOTE_STRING_MODE,
10377 hljs.C_NUMBER_MODE,
10378 {
10379 begin: /\{/, end: /\}/,
10380 illegal: /:/
10381 }
10382 ]
10383 };
10384}
10385},{name:"matlab",create:/*
10386Language: Matlab
10387Author: Denis Bardadym <bardadymchik@gmail.com>
10388Contributors: Eugene Nizhibitsky <nizhibitsky@ya.ru>
10389Category: scientific
10390*/
10391
10392function(hljs) {
10393 var COMMON_CONTAINS = [
10394 hljs.C_NUMBER_MODE,
10395 {
10396 className: 'string',
10397 begin: '\'', end: '\'',
10398 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
10399 }
10400 ];
10401 var TRANSPOSE = {
10402 relevance: 0,
10403 contains: [
10404 {
10405 begin: /'['\.]*/
10406 }
10407 ]
10408 };
10409
10410 return {
10411 keywords: {
10412 keyword:
10413 'break case catch classdef continue else elseif end enumerated events for function ' +
10414 'global if methods otherwise parfor persistent properties return spmd switch try while',
10415 built_in:
10416 'sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan ' +
10417 'atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot ' +
10418 'cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog ' +
10419 'realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal ' +
10420 'cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli ' +
10421 'besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma ' +
10422 'gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms ' +
10423 'nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones ' +
10424 'eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ' +
10425 'ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril ' +
10426 'triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute ' +
10427 'shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan ' +
10428 'isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal ' +
10429 'rosser toeplitz vander wilkinson'
10430 },
10431 illegal: '(//|"|#|/\\*|\\s+/\\w+)',
10432 contains: [
10433 {
10434 className: 'function',
10435 beginKeywords: 'function', end: '$',
10436 contains: [
10437 hljs.UNDERSCORE_TITLE_MODE,
10438 {
10439 className: 'params',
10440 variants: [
10441 {begin: '\\(', end: '\\)'},
10442 {begin: '\\[', end: '\\]'}
10443 ]
10444 }
10445 ]
10446 },
10447 {
10448 begin: /[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,
10449 returnBegin: true,
10450 relevance: 0,
10451 contains: [
10452 {begin: /[a-zA-Z_][a-zA-Z_0-9]*/, relevance: 0},
10453 TRANSPOSE.contains[0]
10454 ]
10455 },
10456 {
10457 begin: '\\[', end: '\\]',
10458 contains: COMMON_CONTAINS,
10459 relevance: 0,
10460 starts: TRANSPOSE
10461 },
10462 {
10463 begin: '\\{', end: /}/,
10464 contains: COMMON_CONTAINS,
10465 relevance: 0,
10466 starts: TRANSPOSE
10467 },
10468 {
10469 // transpose operators at the end of a function call
10470 begin: /\)/,
10471 relevance: 0,
10472 starts: TRANSPOSE
10473 },
10474 hljs.COMMENT('^\\s*\\%\\{\\s*$', '^\\s*\\%\\}\\s*$'),
10475 hljs.COMMENT('\\%', '$')
10476 ].concat(COMMON_CONTAINS)
10477 };
10478}
10479},{name:"mel",create:/*
10480Language: MEL
10481Description: Maya Embedded Language
10482Author: Shuen-Huei Guan <drake.guan@gmail.com>
10483Category: graphics
10484*/
10485
10486function(hljs) {
10487 return {
10488 keywords:
10489 'int float string vector matrix if else switch case default while do for in break ' +
10490 'continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic ' +
10491 'addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey ' +
10492 'affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve ' +
10493 'alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor ' +
10494 'animDisplay animView annotate appendStringArray applicationName applyAttrPreset ' +
10495 'applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx ' +
10496 'artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu ' +
10497 'artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand ' +
10498 'assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface ' +
10499 'attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu ' +
10500 'attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp ' +
10501 'attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery ' +
10502 'autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults ' +
10503 'bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership ' +
10504 'bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType ' +
10505 'boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu ' +
10506 'buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge ' +
10507 'cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch ' +
10508 'catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox ' +
10509 'character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp ' +
10510 'checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip ' +
10511 'clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore ' +
10512 'closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter ' +
10513 'cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color ' +
10514 'colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp ' +
10515 'colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem ' +
10516 'componentEditor compositingInterop computePolysetVolume condition cone confirmDialog ' +
10517 'connectAttr connectControl connectDynamic connectJoint connectionInfo constrain ' +
10518 'constrainValue constructionHistory container containsMultibyte contextInfo control ' +
10519 'convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation ' +
10520 'convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache ' +
10521 'cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel ' +
10522 'cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver ' +
10523 'cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor ' +
10524 'createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer ' +
10525 'createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse ' +
10526 'currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx ' +
10527 'curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface ' +
10528 'curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox ' +
10529 'defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete ' +
10530 'deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes ' +
10531 'delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo ' +
10532 'dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable ' +
10533 'disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected ' +
10534 'displayColor displayCull displayLevelOfDetail displayPref displayRGBColor ' +
10535 'displaySmoothness displayStats displayString displaySurface distanceDimContext ' +
10536 'distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct ' +
10537 'doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator ' +
10538 'duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression ' +
10539 'dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor ' +
10540 'dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers ' +
10541 'editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor ' +
10542 'editorTemplate effector emit emitter enableDevice encodeString endString endsWith env ' +
10543 'equivalent equivalentTol erf error eval evalDeferred evalEcho event ' +
10544 'exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp ' +
10545 'expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof ' +
10546 'fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo ' +
10547 'filetest filletCurve filter filterCurve filterExpand filterStudioImport ' +
10548 'findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster ' +
10549 'finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar ' +
10550 'floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo ' +
10551 'fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint ' +
10552 'frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss ' +
10553 'geometryConstraint getApplicationVersionAsFloat getAttr getClassification ' +
10554 'getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes ' +
10555 'getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender ' +
10556 'glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl ' +
10557 'gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid ' +
10558 'gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap ' +
10559 'HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor ' +
10560 'HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached ' +
10561 'HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel ' +
10562 'headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey ' +
10563 'hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender ' +
10564 'hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox ' +
10565 'iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ' +
10566 'ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ' +
10567 'ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform ' +
10568 'insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance ' +
10569 'instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp ' +
10570 'interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf ' +
10571 'isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect ' +
10572 'itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx ' +
10573 'jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner ' +
10574 'keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx ' +
10575 'keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx ' +
10576 'keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx ' +
10577 'keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor ' +
10578 'layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList ' +
10579 'lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep ' +
10580 'listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory ' +
10581 'listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation ' +
10582 'listNodeTypes listPanelCategories listRelatives listSets listTransforms ' +
10583 'listUnselected listerEditor loadFluid loadNewShelf loadPlugin ' +
10584 'loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log ' +
10585 'longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive ' +
10586 'makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext ' +
10587 'manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx ' +
10588 'manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout ' +
10589 'menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp ' +
10590 'mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move ' +
10591 'moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute ' +
10592 'nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast ' +
10593 'nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint ' +
10594 'normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect ' +
10595 'nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref ' +
10596 'nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType ' +
10597 'objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface ' +
10598 'offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit ' +
10599 'orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier ' +
10600 'paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration ' +
10601 'panelHistory paramDimContext paramDimension paramLocator parent parentConstraint ' +
10602 'particle particleExists particleInstancer particleRenderInfo partition pasteKey ' +
10603 'pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture ' +
10604 'pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo ' +
10605 'pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult ' +
10606 'pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend ' +
10607 'polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal ' +
10608 'polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge ' +
10609 'polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge ' +
10610 'polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet ' +
10611 'polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet ' +
10612 'polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection ' +
10613 'polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge ' +
10614 'polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet ' +
10615 'polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix ' +
10616 'polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut ' +
10617 'polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet ' +
10618 'polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge ' +
10619 'polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex ' +
10620 'polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection ' +
10621 'polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection ' +
10622 'polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint ' +
10623 'polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate ' +
10624 'polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge ' +
10625 'polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing ' +
10626 'polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet ' +
10627 'polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace ' +
10628 'popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer ' +
10629 'projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx ' +
10630 'propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd ' +
10631 'python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection ' +
10632 'radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl ' +
10633 'readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference ' +
10634 'referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE ' +
10635 'registerPluginResource rehash reloadImage removeJoint removeMultiInstance ' +
10636 'removePanelCategory rename renameAttr renameSelectionList renameUI render ' +
10637 'renderGlobalsNode renderInfo renderLayerButton renderLayerParent ' +
10638 'renderLayerPostProcess renderLayerUnparent renderManip renderPartition ' +
10639 'renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor ' +
10640 'renderWindowSelectContext renderer reorder reorderDeformers requires reroot ' +
10641 'resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget ' +
10642 'reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx ' +
10643 'rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout ' +
10644 'runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage ' +
10645 'saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale ' +
10646 'scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor ' +
10647 'sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable ' +
10648 'scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt ' +
10649 'searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey ' +
10650 'selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType ' +
10651 'selectedNodes selectionConnection separator setAttr setAttrEnumResource ' +
10652 'setAttrMapping setAttrNiceNameResource setConstraintRestPosition ' +
10653 'setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr ' +
10654 'setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe ' +
10655 'setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag ' +
10656 'setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject ' +
10657 'setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets ' +
10658 'shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare ' +
10659 'shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField ' +
10660 'shortNameOf showHelp showHidden showManipCtx showSelectionInTitle ' +
10661 'showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface ' +
10662 'size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep ' +
10663 'snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound ' +
10664 'soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort ' +
10665 'spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString ' +
10666 'startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp ' +
10667 'stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex ' +
10668 'stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex ' +
10669 'stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString ' +
10670 'stringToStringArray strip stripPrefixFromName stroke subdAutoProjection ' +
10671 'subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV ' +
10672 'subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror ' +
10673 'subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease ' +
10674 'subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring ' +
10675 'surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton ' +
10676 'symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext ' +
10677 'texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext ' +
10678 'texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text ' +
10679 'textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList ' +
10680 'textToShelf textureDisplacePlane textureHairColor texturePlacementContext ' +
10681 'textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath ' +
10682 'toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower ' +
10683 'toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper ' +
10684 'trace track trackCtx transferAttributes transformCompare transformLimits translator ' +
10685 'trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence ' +
10686 'twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit ' +
10687 'unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink ' +
10688 'uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane ' +
10689 'viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex ' +
10690 'waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire ' +
10691 'wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform',
10692 illegal: '</',
10693 contains: [
10694 hljs.C_NUMBER_MODE,
10695 hljs.APOS_STRING_MODE,
10696 hljs.QUOTE_STRING_MODE,
10697 {
10698 className: 'string',
10699 begin: '`', end: '`',
10700 contains: [hljs.BACKSLASH_ESCAPE]
10701 },
10702 { // eats variables
10703 begin: '[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)'
10704 },
10705 hljs.C_LINE_COMMENT_MODE,
10706 hljs.C_BLOCK_COMMENT_MODE
10707 ]
10708 };
10709}
10710},{name:"mercury",create:/*
10711Language: Mercury
10712Author: mucaho <mkucko@gmail.com>
10713Description: Mercury is a logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features.
10714*/
10715
10716function(hljs) {
10717 var KEYWORDS = {
10718 keyword:
10719 'module use_module import_module include_module end_module initialise ' +
10720 'mutable initialize finalize finalise interface implementation pred ' +
10721 'mode func type inst solver any_pred any_func is semidet det nondet ' +
10722 'multi erroneous failure cc_nondet cc_multi typeclass instance where ' +
10723 'pragma promise external trace atomic or_else require_complete_switch ' +
10724 'require_det require_semidet require_multi require_nondet ' +
10725 'require_cc_multi require_cc_nondet require_erroneous require_failure',
10726 meta:
10727 // pragma
10728 'inline no_inline type_spec source_file fact_table obsolete memo ' +
10729 'loop_check minimal_model terminates does_not_terminate ' +
10730 'check_termination promise_equivalent_clauses ' +
10731 // preprocessor
10732 'foreign_proc foreign_decl foreign_code foreign_type ' +
10733 'foreign_import_module foreign_export_enum foreign_export ' +
10734 'foreign_enum may_call_mercury will_not_call_mercury thread_safe ' +
10735 'not_thread_safe maybe_thread_safe promise_pure promise_semipure ' +
10736 'tabled_for_io local untrailed trailed attach_to_io_state ' +
10737 'can_pass_as_mercury_type stable will_not_throw_exception ' +
10738 'may_modify_trail will_not_modify_trail may_duplicate ' +
10739 'may_not_duplicate affects_liveness does_not_affect_liveness ' +
10740 'doesnt_affect_liveness no_sharing unknown_sharing sharing',
10741 built_in:
10742 'some all not if then else true fail false try catch catch_any ' +
10743 'semidet_true semidet_false semidet_fail impure_true impure semipure'
10744 };
10745
10746 var COMMENT = hljs.COMMENT('%', '$');
10747
10748 var NUMCODE = {
10749 className: 'number',
10750 begin: "0'.\\|0[box][0-9a-fA-F]*"
10751 };
10752
10753 var ATOM = hljs.inherit(hljs.APOS_STRING_MODE, {relevance: 0});
10754 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {relevance: 0});
10755 var STRING_FMT = {
10756 className: 'subst',
10757 begin: '\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]',
10758 relevance: 0
10759 };
10760 STRING.contains.push(STRING_FMT);
10761
10762 var IMPLICATION = {
10763 className: 'built_in',
10764 variants: [
10765 {begin: '<=>'},
10766 {begin: '<=', relevance: 0},
10767 {begin: '=>', relevance: 0},
10768 {begin: '/\\\\'},
10769 {begin: '\\\\/'}
10770 ]
10771 };
10772
10773 var HEAD_BODY_CONJUNCTION = {
10774 className: 'built_in',
10775 variants: [
10776 {begin: ':-\\|-->'},
10777 {begin: '=', relevance: 0}
10778 ]
10779 };
10780
10781 return {
10782 aliases: ['m', 'moo'],
10783 keywords: KEYWORDS,
10784 contains: [
10785 IMPLICATION,
10786 HEAD_BODY_CONJUNCTION,
10787 COMMENT,
10788 hljs.C_BLOCK_COMMENT_MODE,
10789 NUMCODE,
10790 hljs.NUMBER_MODE,
10791 ATOM,
10792 STRING,
10793 {begin: /:-/} // relevance booster
10794 ]
10795 };
10796}
10797},{name:"mipsasm",create:/*
10798Language: MIPS Assembly
10799Author: Nebuleon Fumika <nebuleon.fumika@gmail.com>
10800Description: MIPS Assembly (up to MIPS32R2)
10801Category: assembler
10802*/
10803
10804function(hljs) {
10805 //local labels: %?[FB]?[AT]?\d{1,2}\w+
10806 return {
10807 case_insensitive: true,
10808 aliases: ['mips'],
10809 lexemes: '\\.?' + hljs.IDENT_RE,
10810 keywords: {
10811 meta:
10812 //GNU preprocs
10813 '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ',
10814 built_in:
10815 '$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ' + // integer registers
10816 '$16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 ' + // integer registers
10817 'zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 ' + // integer register aliases
10818 't0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 ' + // integer register aliases
10819 'k0 k1 gp sp fp ra ' + // integer register aliases
10820 '$f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 ' + // floating-point registers
10821 '$f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 ' + // floating-point registers
10822 'Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi ' + // Coprocessor 0 registers
10823 'HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId ' + // Coprocessor 0 registers
10824 'EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ' + // Coprocessor 0 registers
10825 'ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt ' // Coprocessor 0 registers
10826 },
10827 contains: [
10828 {
10829 className: 'keyword',
10830 begin: '\\b('+ //mnemonics
10831 // 32-bit integer instructions
10832 'addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|' +
10833 'bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\.hb)?|jr(\.hb)?|lbu?|lhu?|' +
10834 'll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|msubu?|mthi|mtlo|mul|' +
10835 'multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|' +
10836 'srlv?|subu?|sw[lr]?|xori?|wsbh|' +
10837 // floating-point instructions
10838 'abs\.[sd]|add\.[sd]|alnv.ps|bc1[ft]l?|' +
10839 'c\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\.[sd]|' +
10840 '(ceil|floor|round|trunc)\.[lw]\.[sd]|cfc1|cvt\.d\.[lsw]|' +
10841 'cvt\.l\.[dsw]|cvt\.ps\.s|cvt\.s\.[dlw]|cvt\.s\.p[lu]|cvt\.w\.[dls]|' +
10842 'div\.[ds]|ldx?c1|luxc1|lwx?c1|madd\.[sd]|mfc1|mov[fntz]?\.[ds]|' +
10843 'msub\.[sd]|mth?c1|mul\.[ds]|neg\.[ds]|nmadd\.[ds]|nmsub\.[ds]|' +
10844 'p[lu][lu]\.ps|recip\.fmt|r?sqrt\.[ds]|sdx?c1|sub\.[ds]|suxc1|' +
10845 'swx?c1|' +
10846 // system control instructions
10847 'break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|' +
10848 'rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|' +
10849 'tlti?u?|tnei?|wait|wrpgpr'+
10850 ')',
10851 end: '\\s'
10852 },
10853 hljs.COMMENT('[;#]', '$'),
10854 hljs.C_BLOCK_COMMENT_MODE,
10855 hljs.QUOTE_STRING_MODE,
10856 {
10857 className: 'string',
10858 begin: '\'',
10859 end: '[^\\\\]\'',
10860 relevance: 0
10861 },
10862 {
10863 className: 'title',
10864 begin: '\\|', end: '\\|',
10865 illegal: '\\n',
10866 relevance: 0
10867 },
10868 {
10869 className: 'number',
10870 variants: [
10871 {begin: '0x[0-9a-f]+'}, //hex
10872 {begin: '\\b-?\\d+'} //bare number
10873 ],
10874 relevance: 0
10875 },
10876 {
10877 className: 'symbol',
10878 variants: [
10879 {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU MIPS syntax
10880 {begin: '^\\s*[0-9]+:'}, // numbered local labels
10881 {begin: '[0-9]+[bf]' } // number local label reference (backwards, forwards)
10882 ],
10883 relevance: 0
10884 }
10885 ],
10886 illegal: '\/'
10887 };
10888}
10889},{name:"mizar",create:/*
10890Language: Mizar
10891Author: Kelley van Evert <kelleyvanevert@gmail.com>
10892Category: scientific
10893*/
10894
10895function(hljs) {
10896 return {
10897 keywords:
10898 'environ vocabularies notations constructors definitions ' +
10899 'registrations theorems schemes requirements begin end definition ' +
10900 'registration cluster existence pred func defpred deffunc theorem ' +
10901 'proof let take assume then thus hence ex for st holds consider ' +
10902 'reconsider such that and in provided of as from be being by means ' +
10903 'equals implies iff redefine define now not or attr is mode ' +
10904 'suppose per cases set thesis contradiction scheme reserve struct ' +
10905 'correctness compatibility coherence symmetry assymetry ' +
10906 'reflexivity irreflexivity connectedness uniqueness commutativity ' +
10907 'idempotence involutiveness projectivity',
10908 contains: [
10909 hljs.COMMENT('::', '$')
10910 ]
10911 };
10912}
10913},{name:"mojolicious",create:/*
10914Language: Mojolicious
10915Requires: xml.js, perl.js
10916Author: Dotan Dimet <dotan@corky.net>
10917Description: Mojolicious .ep (Embedded Perl) templates
10918Category: template
10919*/
10920function(hljs) {
10921 return {
10922 subLanguage: 'xml',
10923 contains: [
10924 {
10925 className: 'meta',
10926 begin: '^__(END|DATA)__$'
10927 },
10928 // mojolicious line
10929 {
10930 begin: "^\\s*%{1,2}={0,2}", end: '$',
10931 subLanguage: 'perl'
10932 },
10933 // mojolicious block
10934 {
10935 begin: "<%{1,2}={0,2}",
10936 end: "={0,1}%>",
10937 subLanguage: 'perl',
10938 excludeBegin: true,
10939 excludeEnd: true
10940 }
10941 ]
10942 };
10943}
10944},{name:"monkey",create:/*
10945Language: Monkey
10946Author: Arthur Bikmullin <devolonter@gmail.com>
10947*/
10948
10949function(hljs) {
10950 var NUMBER = {
10951 className: 'number', relevance: 0,
10952 variants: [
10953 {
10954 begin: '[$][a-fA-F0-9]+'
10955 },
10956 hljs.NUMBER_MODE
10957 ]
10958 };
10959
10960 return {
10961 case_insensitive: true,
10962 keywords: {
10963 keyword: 'public private property continue exit extern new try catch ' +
10964 'eachin not abstract final select case default const local global field ' +
10965 'end if then else elseif endif while wend repeat until forever for ' +
10966 'to step next return module inline throw import',
10967
10968 built_in: 'DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil ' +
10969 'Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI',
10970
10971 literal: 'true false null and or shl shr mod'
10972 },
10973 illegal: /\/\*/,
10974 contains: [
10975 hljs.COMMENT('#rem', '#end'),
10976 hljs.COMMENT(
10977 "'",
10978 '$',
10979 {
10980 relevance: 0
10981 }
10982 ),
10983 {
10984 className: 'function',
10985 beginKeywords: 'function method', end: '[(=:]|$',
10986 illegal: /\n/,
10987 contains: [
10988 hljs.UNDERSCORE_TITLE_MODE
10989 ]
10990 },
10991 {
10992 className: 'class',
10993 beginKeywords: 'class interface', end: '$',
10994 contains: [
10995 {
10996 beginKeywords: 'extends implements'
10997 },
10998 hljs.UNDERSCORE_TITLE_MODE
10999 ]
11000 },
11001 {
11002 className: 'built_in',
11003 begin: '\\b(self|super)\\b'
11004 },
11005 {
11006 className: 'meta',
11007 begin: '\\s*#', end: '$',
11008 keywords: {'meta-keyword': 'if else elseif endif end then'}
11009 },
11010 {
11011 className: 'meta',
11012 begin: '^\\s*strict\\b'
11013 },
11014 {
11015 beginKeywords: 'alias', end: '=',
11016 contains: [hljs.UNDERSCORE_TITLE_MODE]
11017 },
11018 hljs.QUOTE_STRING_MODE,
11019 NUMBER
11020 ]
11021 }
11022}
11023},{name:"nginx",create:/*
11024Language: Nginx
11025Author: Peter Leonov <gojpeg@yandex.ru>
11026Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
11027Category: common, config
11028*/
11029
11030function(hljs) {
11031 var VAR = {
11032 className: 'variable',
11033 variants: [
11034 {begin: /\$\d+/},
11035 {begin: /\$\{/, end: /}/},
11036 {begin: '[\\$\\@]' + hljs.UNDERSCORE_IDENT_RE}
11037 ]
11038 };
11039 var DEFAULT = {
11040 endsWithParent: true,
11041 lexemes: '[a-z/_]+',
11042 keywords: {
11043 literal:
11044 'on off yes no true false none blocked debug info notice warn error crit ' +
11045 'select break last permanent redirect kqueue rtsig epoll poll /dev/poll'
11046 },
11047 relevance: 0,
11048 illegal: '=>',
11049 contains: [
11050 hljs.HASH_COMMENT_MODE,
11051 {
11052 className: 'string',
11053 contains: [hljs.BACKSLASH_ESCAPE, VAR],
11054 variants: [
11055 {begin: /"/, end: /"/},
11056 {begin: /'/, end: /'/}
11057 ]
11058 },
11059 // this swallows entire URLs to avoid detecting numbers within
11060 {
11061 begin: '([a-z]+):/', end: '\\s', endsWithParent: true, excludeEnd: true,
11062 contains: [VAR]
11063 },
11064 {
11065 className: 'regexp',
11066 contains: [hljs.BACKSLASH_ESCAPE, VAR],
11067 variants: [
11068 {begin: "\\s\\^", end: "\\s|{|;", returnEnd: true},
11069 // regexp locations (~, ~*)
11070 {begin: "~\\*?\\s+", end: "\\s|{|;", returnEnd: true},
11071 // *.example.com
11072 {begin: "\\*(\\.[a-z\\-]+)+"},
11073 // sub.example.*
11074 {begin: "([a-z\\-]+\\.)+\\*"}
11075 ]
11076 },
11077 // IP
11078 {
11079 className: 'number',
11080 begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
11081 },
11082 // units
11083 {
11084 className: 'number',
11085 begin: '\\b\\d+[kKmMgGdshdwy]*\\b',
11086 relevance: 0
11087 },
11088 VAR
11089 ]
11090 };
11091
11092 return {
11093 aliases: ['nginxconf'],
11094 contains: [
11095 hljs.HASH_COMMENT_MODE,
11096 {
11097 begin: hljs.UNDERSCORE_IDENT_RE + '\\s+{', returnBegin: true,
11098 end: '{',
11099 contains: [
11100 {
11101 className: 'section',
11102 begin: hljs.UNDERSCORE_IDENT_RE
11103 }
11104 ],
11105 relevance: 0
11106 },
11107 {
11108 begin: hljs.UNDERSCORE_IDENT_RE + '\\s', end: ';|{', returnBegin: true,
11109 contains: [
11110 {
11111 className: 'attribute',
11112 begin: hljs.UNDERSCORE_IDENT_RE,
11113 starts: DEFAULT
11114 }
11115 ],
11116 relevance: 0
11117 }
11118 ],
11119 illegal: '[^\\s\\}]'
11120 };
11121}
11122},{name:"nimrod",create:/*
11123Language: Nimrod
11124*/
11125
11126function(hljs) {
11127 return {
11128 aliases: ['nim'],
11129 keywords: {
11130 keyword: 'addr and as asm bind block break|0 case|0 cast const|0 continue|0 converter discard distinct|10 div do elif else|0 end|0 enum|0 except export finally for from generic if|0 import|0 in include|0 interface is isnot|10 iterator|10 let|0 macro method|10 mixin mod nil not notin|10 object|0 of or out proc|10 ptr raise ref|10 return shl shr static template try|0 tuple type|0 using|0 var|0 when while|0 with without xor yield',
11131 literal: 'shared guarded stdin stdout stderr result|10 true false'
11132 },
11133 contains: [ {
11134 className: 'meta', // Actually pragma
11135 begin: /{\./,
11136 end: /\.}/,
11137 relevance: 10
11138 }, {
11139 className: 'string',
11140 begin: /[a-zA-Z]\w*"/,
11141 end: /"/,
11142 contains: [{begin: /""/}]
11143 }, {
11144 className: 'string',
11145 begin: /([a-zA-Z]\w*)?"""/,
11146 end: /"""/
11147 },
11148 hljs.QUOTE_STRING_MODE,
11149 {
11150 className: 'type',
11151 begin: /\b[A-Z]\w+\b/,
11152 relevance: 0
11153 }, {
11154 className: 'built_in',
11155 begin: /\b(int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|float|float32|float64|bool|char|string|cstring|pointer|expr|stmt|void|auto|any|range|array|openarray|varargs|seq|set|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringarray|semistatic)\b/
11156 }, {
11157 className: 'number',
11158 relevance: 0,
11159 variants: [
11160 {begin: /\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},
11161 {begin: /\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},
11162 {begin: /\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},
11163 {begin: /\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}
11164 ]
11165 },
11166 hljs.HASH_COMMENT_MODE
11167 ]
11168 }
11169}
11170},{name:"nix",create:/*
11171Language: Nix
11172Author: Domen Koลพar <domen@dev.si>
11173Description: Nix functional language. See http://nixos.org/nix
11174*/
11175
11176
11177function(hljs) {
11178 var NIX_KEYWORDS = {
11179 keyword:
11180 'rec with let in inherit assert if else then',
11181 literal:
11182 'true false or and null',
11183 built_in:
11184 'import abort baseNameOf dirOf isNull builtins map removeAttrs throw ' +
11185 'toString derivation'
11186 };
11187 var ANTIQUOTE = {
11188 className: 'subst',
11189 begin: /\$\{/,
11190 end: /}/,
11191 keywords: NIX_KEYWORDS
11192 };
11193 var ATTRS = {
11194 begin: /[a-zA-Z0-9-_]+(\s*=)/, returnBegin: true,
11195 relevance: 0,
11196 contains: [
11197 {
11198 className: 'attr',
11199 begin: /\S+/
11200 }
11201 ]
11202 };
11203 var STRING = {
11204 className: 'string',
11205 contains: [ANTIQUOTE],
11206 variants: [
11207 {begin: "''", end: "''"},
11208 {begin: '"', end: '"'}
11209 ]
11210 };
11211 var EXPRESSIONS = [
11212 hljs.NUMBER_MODE,
11213 hljs.HASH_COMMENT_MODE,
11214 hljs.C_BLOCK_COMMENT_MODE,
11215 STRING,
11216 ATTRS
11217 ];
11218 ANTIQUOTE.contains = EXPRESSIONS;
11219 return {
11220 aliases: ["nixos"],
11221 keywords: NIX_KEYWORDS,
11222 contains: EXPRESSIONS
11223 };
11224}
11225},{name:"nsis",create:/*
11226Language: NSIS
11227Description: Nullsoft Scriptable Install System
11228Author: Jan T. Sott <jan.sott@gmail.com>
11229Website: http://github.com/idleberg
11230*/
11231
11232function(hljs) {
11233 var CONSTANTS = {
11234 className: 'variable',
11235 begin: '\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)'
11236 };
11237
11238 var DEFINES = {
11239 // ${defines}
11240 className: 'variable',
11241 begin: '\\$+{[a-zA-Z0-9_]+}'
11242 };
11243
11244 var VARIABLES = {
11245 // $variables
11246 className: 'variable',
11247 begin: '\\$+[a-zA-Z0-9_]+',
11248 illegal: '\\(\\){}'
11249 };
11250
11251 var LANGUAGES = {
11252 // $(language_strings)
11253 className: 'variable',
11254 begin: '\\$+\\([a-zA-Z0-9_]+\\)'
11255 };
11256
11257 var PARAMETERS = {
11258 // command parameters
11259 className: 'built_in',
11260 begin: '(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)'
11261 };
11262
11263 var COMPILER ={
11264 // !compiler_flags
11265 className: 'keyword',
11266 begin: '\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)'
11267 };
11268
11269 return {
11270 case_insensitive: false,
11271 keywords: {
11272 keyword:
11273 'Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle',
11274 literal:
11275 'admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user '
11276 },
11277 contains: [
11278 hljs.HASH_COMMENT_MODE,
11279 hljs.C_BLOCK_COMMENT_MODE,
11280 {
11281 className: 'string',
11282 begin: '"', end: '"',
11283 illegal: '\\n',
11284 contains: [
11285 { // $\n, $\r, $\t, $$
11286 begin: '\\$(\\\\(n|r|t)|\\$)'
11287 },
11288 CONSTANTS,
11289 DEFINES,
11290 VARIABLES,
11291 LANGUAGES
11292 ]
11293 },
11294 hljs.COMMENT(
11295 ';',
11296 '$',
11297 {
11298 relevance: 0
11299 }
11300 ),
11301 {
11302 className: 'function',
11303 beginKeywords: 'Function PageEx Section SectionGroup SubSection', end: '$'
11304 },
11305 COMPILER,
11306 DEFINES,
11307 VARIABLES,
11308 LANGUAGES,
11309 PARAMETERS,
11310 hljs.NUMBER_MODE,
11311 { // plug::ins
11312 begin: hljs.IDENT_RE + '::' + hljs.IDENT_RE
11313 }
11314 ]
11315 };
11316}
11317},{name:"objectivec",create:/*
11318Language: Objective C
11319Author: Valerii Hiora <valerii.hiora@gmail.com>
11320Contributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>, Matt Diephouse <matt@diephouse.com>, Andrew Farmer <ahfarmer@gmail.com>
11321Category: common
11322*/
11323
11324function(hljs) {
11325 var API_CLASS = {
11326 className: 'built_in',
11327 begin: '(AV|CA|CF|CG|CI|MK|MP|NS|UI|XC)\\w+',
11328 };
11329 var OBJC_KEYWORDS = {
11330 keyword:
11331 'int float while char export sizeof typedef const struct for union ' +
11332 'unsigned long volatile static bool mutable if do return goto void ' +
11333 'enum else break extern asm case short default double register explicit ' +
11334 'signed typename this switch continue wchar_t inline readonly assign ' +
11335 'readwrite self @synchronized id typeof ' +
11336 'nonatomic super unichar IBOutlet IBAction strong weak copy ' +
11337 'in out inout bycopy byref oneway __strong __weak __block __autoreleasing ' +
11338 '@private @protected @public @try @property @end @throw @catch @finally ' +
11339 '@autoreleasepool @synthesize @dynamic @selector @optional @required',
11340 literal:
11341 'false true FALSE TRUE nil YES NO NULL',
11342 built_in:
11343 'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once'
11344 };
11345 var LEXEMES = /[a-zA-Z@][a-zA-Z0-9_]*/;
11346 var CLASS_KEYWORDS = '@interface @class @protocol @implementation';
11347 return {
11348 aliases: ['mm', 'objc', 'obj-c'],
11349 keywords: OBJC_KEYWORDS,
11350 lexemes: LEXEMES,
11351 illegal: '</',
11352 contains: [
11353 API_CLASS,
11354 hljs.C_LINE_COMMENT_MODE,
11355 hljs.C_BLOCK_COMMENT_MODE,
11356 hljs.C_NUMBER_MODE,
11357 hljs.QUOTE_STRING_MODE,
11358 {
11359 className: 'string',
11360 variants: [
11361 {
11362 begin: '@"', end: '"',
11363 illegal: '\\n',
11364 contains: [hljs.BACKSLASH_ESCAPE]
11365 },
11366 {
11367 begin: '\'', end: '[^\\\\]\'',
11368 illegal: '[^\\\\][^\']'
11369 }
11370 ]
11371 },
11372 {
11373 className: 'meta',
11374 begin: '#',
11375 end: '$',
11376 contains: [
11377 {
11378 className: 'meta-string',
11379 variants: [
11380 { begin: '\"', end: '\"' },
11381 { begin: '<', end: '>' }
11382 ]
11383 }
11384 ]
11385 },
11386 {
11387 className: 'class',
11388 begin: '(' + CLASS_KEYWORDS.split(' ').join('|') + ')\\b', end: '({|$)', excludeEnd: true,
11389 keywords: CLASS_KEYWORDS, lexemes: LEXEMES,
11390 contains: [
11391 hljs.UNDERSCORE_TITLE_MODE
11392 ]
11393 },
11394 {
11395 begin: '\\.'+hljs.UNDERSCORE_IDENT_RE,
11396 relevance: 0
11397 }
11398 ]
11399 };
11400}
11401},{name:"ocaml",create:/*
11402Language: OCaml
11403Author: Mehdi Dogguy <mehdi@dogguy.org>
11404Contributors: Nicolas Braud-Santoni <nicolas.braud-santoni@ens-cachan.fr>, Mickael Delahaye <mickael.delahaye@gmail.com>
11405Description: OCaml language definition.
11406Category: functional
11407*/
11408function(hljs) {
11409 /* missing support for heredoc-like string (OCaml 4.0.2+) */
11410 return {
11411 aliases: ['ml'],
11412 keywords: {
11413 keyword:
11414 'and as assert asr begin class constraint do done downto else end ' +
11415 'exception external for fun function functor if in include ' +
11416 'inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method ' +
11417 'mod module mutable new object of open! open or private rec sig struct ' +
11418 'then to try type val! val virtual when while with ' +
11419 /* camlp4 */
11420 'parser value',
11421 built_in:
11422 /* built-in types */
11423 'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit ' +
11424 /* (some) types in Pervasives */
11425 'in_channel out_channel ref',
11426 literal:
11427 'true false'
11428 },
11429 illegal: /\/\/|>>/,
11430 lexemes: '[a-z_]\\w*!?',
11431 contains: [
11432 {
11433 className: 'literal',
11434 begin: '\\[(\\|\\|)?\\]|\\(\\)',
11435 relevance: 0
11436 },
11437 hljs.COMMENT(
11438 '\\(\\*',
11439 '\\*\\)',
11440 {
11441 contains: ['self']
11442 }
11443 ),
11444 { /* type variable */
11445 className: 'symbol',
11446 begin: '\'[A-Za-z_](?!\')[\\w\']*'
11447 /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
11448 },
11449 { /* polymorphic variant */
11450 className: 'type',
11451 begin: '`[A-Z][\\w\']*'
11452 },
11453 { /* module or constructor */
11454 className: 'type',
11455 begin: '\\b[A-Z][\\w\']*',
11456 relevance: 0
11457 },
11458 { /* don't color identifiers, but safely catch all identifiers with '*/
11459 begin: '[a-z_]\\w*\'[\\w\']*', relevance: 0
11460 },
11461 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
11462 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
11463 {
11464 className: 'number',
11465 begin:
11466 '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
11467 '0[oO][0-7_]+[Lln]?|' +
11468 '0[bB][01_]+[Lln]?|' +
11469 '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
11470 relevance: 0
11471 },
11472 {
11473 begin: /[-=]>/ // relevance booster
11474 }
11475 ]
11476 }
11477}
11478},{name:"openscad",create:/*
11479Language: OpenSCAD
11480Author: Dan Panzarella <alsoelp@gmail.com>
11481Description: OpenSCAD is a language for the 3D CAD modeling software of the same name.
11482Category: scientific
11483*/
11484
11485function(hljs) {
11486 var SPECIAL_VARS = {
11487 className: 'keyword',
11488 begin: '\\$(f[asn]|t|vp[rtd]|children)'
11489 },
11490 LITERALS = {
11491 className: 'literal',
11492 begin: 'false|true|PI|undef'
11493 },
11494 NUMBERS = {
11495 className: 'number',
11496 begin: '\\b\\d+(\\.\\d+)?(e-?\\d+)?', //adds 1e5, 1e-10
11497 relevance: 0
11498 },
11499 STRING = hljs.inherit(hljs.QUOTE_STRING_MODE,{illegal: null}),
11500 PREPRO = {
11501 className: 'meta',
11502 keywords: {'meta-keyword': 'include use'},
11503 begin: 'include|use <',
11504 end: '>'
11505 },
11506 PARAMS = {
11507 className: 'params',
11508 begin: '\\(', end: '\\)',
11509 contains: ['self', NUMBERS, STRING, SPECIAL_VARS, LITERALS]
11510 },
11511 MODIFIERS = {
11512 begin: '[*!#%]',
11513 relevance: 0
11514 },
11515 FUNCTIONS = {
11516 className: 'function',
11517 beginKeywords: 'module function',
11518 end: '\\=|\\{',
11519 contains: [PARAMS, hljs.UNDERSCORE_TITLE_MODE]
11520 };
11521
11522 return {
11523 aliases: ['scad'],
11524 keywords: {
11525 keyword: 'function module include use for intersection_for if else \\%',
11526 literal: 'false true PI undef',
11527 built_in: 'circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign'
11528 },
11529 contains: [
11530 hljs.C_LINE_COMMENT_MODE,
11531 hljs.C_BLOCK_COMMENT_MODE,
11532 NUMBERS,
11533 PREPRO,
11534 STRING,
11535 SPECIAL_VARS,
11536 MODIFIERS,
11537 FUNCTIONS
11538 ]
11539 }
11540}
11541},{name:"oxygene",create:/*
11542Language: Oxygene
11543Author: Carlo Kok <ck@remobjects.com>
11544Description: Language definition for RemObjects Oxygene (http://www.remobjects.com)
11545*/
11546
11547function(hljs) {
11548 var OXYGENE_KEYWORDS = 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue '+
11549 'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false '+
11550 'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited '+
11551 'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of '+
11552 'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly '+
11553 'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple '+
11554 'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal '+
11555 'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained';
11556 var CURLY_COMMENT = hljs.COMMENT(
11557 '{',
11558 '}',
11559 {
11560 relevance: 0
11561 }
11562 );
11563 var PAREN_COMMENT = hljs.COMMENT(
11564 '\\(\\*',
11565 '\\*\\)',
11566 {
11567 relevance: 10
11568 }
11569 );
11570 var STRING = {
11571 className: 'string',
11572 begin: '\'', end: '\'',
11573 contains: [{begin: '\'\''}]
11574 };
11575 var CHAR_STRING = {
11576 className: 'string', begin: '(#\\d+)+'
11577 };
11578 var FUNCTION = {
11579 className: 'function',
11580 beginKeywords: 'function constructor destructor procedure method', end: '[:;]',
11581 keywords: 'function constructor|10 destructor|10 procedure|10 method|10',
11582 contains: [
11583 hljs.TITLE_MODE,
11584 {
11585 className: 'params',
11586 begin: '\\(', end: '\\)',
11587 keywords: OXYGENE_KEYWORDS,
11588 contains: [STRING, CHAR_STRING]
11589 },
11590 CURLY_COMMENT, PAREN_COMMENT
11591 ]
11592 };
11593 return {
11594 case_insensitive: true,
11595 keywords: OXYGENE_KEYWORDS,
11596 illegal: '("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',
11597 contains: [
11598 CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
11599 STRING, CHAR_STRING,
11600 hljs.NUMBER_MODE,
11601 FUNCTION,
11602 {
11603 className: 'class',
11604 begin: '=\\bclass\\b', end: 'end;',
11605 keywords: OXYGENE_KEYWORDS,
11606 contains: [
11607 STRING, CHAR_STRING,
11608 CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
11609 FUNCTION
11610 ]
11611 }
11612 ]
11613 };
11614}
11615},{name:"parser3",create:/*
11616Language: Parser3
11617Requires: xml.js
11618Author: Oleg Volchkov <oleg@volchkov.net>
11619Category: template
11620*/
11621
11622function(hljs) {
11623 var CURLY_SUBCOMMENT = hljs.COMMENT(
11624 '{',
11625 '}',
11626 {
11627 contains: ['self']
11628 }
11629 );
11630 return {
11631 subLanguage: 'xml', relevance: 0,
11632 contains: [
11633 hljs.COMMENT('^#', '$'),
11634 hljs.COMMENT(
11635 '\\^rem{',
11636 '}',
11637 {
11638 relevance: 10,
11639 contains: [
11640 CURLY_SUBCOMMENT
11641 ]
11642 }
11643 ),
11644 {
11645 className: 'meta',
11646 begin: '^@(?:BASE|USE|CLASS|OPTIONS)$',
11647 relevance: 10
11648 },
11649 {
11650 className: 'title',
11651 begin: '@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$'
11652 },
11653 {
11654 className: 'variable',
11655 begin: '\\$\\{?[\\w\\-\\.\\:]+\\}?'
11656 },
11657 {
11658 className: 'keyword',
11659 begin: '\\^[\\w\\-\\.\\:]+'
11660 },
11661 {
11662 className: 'number',
11663 begin: '\\^#[0-9a-fA-F]+'
11664 },
11665 hljs.C_NUMBER_MODE
11666 ]
11667 };
11668}
11669},{name:"perl",create:/*
11670Language: Perl
11671Author: Peter Leonov <gojpeg@yandex.ru>
11672Category: common
11673*/
11674
11675function(hljs) {
11676 var PERL_KEYWORDS = 'getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ' +
11677 'ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime ' +
11678 'readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq' +
11679 'fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent ' +
11680 'shutdown dump chomp connect getsockname die socketpair close flock exists index shmget' +
11681 'sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr ' +
11682 'unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 ' +
11683 'getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline ' +
11684 'endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand ' +
11685 'mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink ' +
11686 'getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr ' +
11687 'untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link ' +
11688 'getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller ' +
11689 'lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and ' +
11690 'sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 ' +
11691 'chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach ' +
11692 'tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir' +
11693 'ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe ' +
11694 'atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when';
11695 var SUBST = {
11696 className: 'subst',
11697 begin: '[$@]\\{', end: '\\}',
11698 keywords: PERL_KEYWORDS
11699 };
11700 var METHOD = {
11701 begin: '->{', end: '}'
11702 // contains defined later
11703 };
11704 var VAR = {
11705 variants: [
11706 {begin: /\$\d/},
11707 {begin: /[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},
11708 {begin: /[\$%@][^\s\w{]/, relevance: 0}
11709 ]
11710 };
11711 var STRING_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST, VAR];
11712 var PERL_DEFAULT_CONTAINS = [
11713 VAR,
11714 hljs.HASH_COMMENT_MODE,
11715 hljs.COMMENT(
11716 '^\\=\\w',
11717 '\\=cut',
11718 {
11719 endsWithParent: true
11720 }
11721 ),
11722 METHOD,
11723 {
11724 className: 'string',
11725 contains: STRING_CONTAINS,
11726 variants: [
11727 {
11728 begin: 'q[qwxr]?\\s*\\(', end: '\\)',
11729 relevance: 5
11730 },
11731 {
11732 begin: 'q[qwxr]?\\s*\\[', end: '\\]',
11733 relevance: 5
11734 },
11735 {
11736 begin: 'q[qwxr]?\\s*\\{', end: '\\}',
11737 relevance: 5
11738 },
11739 {
11740 begin: 'q[qwxr]?\\s*\\|', end: '\\|',
11741 relevance: 5
11742 },
11743 {
11744 begin: 'q[qwxr]?\\s*\\<', end: '\\>',
11745 relevance: 5
11746 },
11747 {
11748 begin: 'qw\\s+q', end: 'q',
11749 relevance: 5
11750 },
11751 {
11752 begin: '\'', end: '\'',
11753 contains: [hljs.BACKSLASH_ESCAPE]
11754 },
11755 {
11756 begin: '"', end: '"'
11757 },
11758 {
11759 begin: '`', end: '`',
11760 contains: [hljs.BACKSLASH_ESCAPE]
11761 },
11762 {
11763 begin: '{\\w+}',
11764 contains: [],
11765 relevance: 0
11766 },
11767 {
11768 begin: '\-?\\w+\\s*\\=\\>',
11769 contains: [],
11770 relevance: 0
11771 }
11772 ]
11773 },
11774 {
11775 className: 'number',
11776 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
11777 relevance: 0
11778 },
11779 { // regexp container
11780 begin: '(\\/\\/|' + hljs.RE_STARTERS_RE + '|\\b(split|return|print|reverse|grep)\\b)\\s*',
11781 keywords: 'split return print reverse grep',
11782 relevance: 0,
11783 contains: [
11784 hljs.HASH_COMMENT_MODE,
11785 {
11786 className: 'regexp',
11787 begin: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*',
11788 relevance: 10
11789 },
11790 {
11791 className: 'regexp',
11792 begin: '(m|qr)?/', end: '/[a-z]*',
11793 contains: [hljs.BACKSLASH_ESCAPE],
11794 relevance: 0 // allows empty "//" which is a common comment delimiter in other languages
11795 }
11796 ]
11797 },
11798 {
11799 className: 'function',
11800 beginKeywords: 'sub', end: '(\\s*\\(.*?\\))?[;{]', excludeEnd: true,
11801 relevance: 5,
11802 contains: [hljs.TITLE_MODE]
11803 },
11804 {
11805 begin: '-\\w\\b',
11806 relevance: 0
11807 },
11808 {
11809 begin: "^__DATA__$",
11810 end: "^__END__$",
11811 subLanguage: 'mojolicious',
11812 contains: [
11813 {
11814 begin: "^@@.*",
11815 end: "$",
11816 className: "comment"
11817 }
11818 ]
11819 }
11820 ];
11821 SUBST.contains = PERL_DEFAULT_CONTAINS;
11822 METHOD.contains = PERL_DEFAULT_CONTAINS;
11823
11824 return {
11825 aliases: ['pl'],
11826 keywords: PERL_KEYWORDS,
11827 contains: PERL_DEFAULT_CONTAINS
11828 };
11829}
11830},{name:"pf",create:/*
11831Language: pf
11832Category: config
11833Author: Peter Piwowarski <oldlaptop654@aol.com>
11834Description: The pf.conf(5) format as of OpenBSD 5.6
11835*/
11836
11837function(hljs) {
11838 var MACRO = {
11839 className: 'variable',
11840 begin: /\$[\w\d#@][\w\d_]*/
11841 };
11842 var TABLE = {
11843 className: 'variable',
11844 begin: /</, end: />/
11845 };
11846 var QUOTE_STRING = {
11847 className: 'string',
11848 begin: /"/, end: /"/
11849 };
11850
11851 return {
11852 aliases: ['pf.conf'],
11853 lexemes: /[a-z0-9_<>-]+/,
11854 keywords: {
11855 built_in: /* block match pass are "actions" in pf.conf(5), the rest are
11856 * lexically similar top-level commands.
11857 */
11858 'block match pass load anchor|5 antispoof|10 set table',
11859 keyword:
11860 'in out log quick on rdomain inet inet6 proto from port os to route' +
11861 'allow-opts divert-packet divert-reply divert-to flags group icmp-type' +
11862 'icmp6-type label once probability recieved-on rtable prio queue' +
11863 'tos tag tagged user keep fragment for os drop' +
11864 'af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin' +
11865 'source-hash static-port' +
11866 'dup-to reply-to route-to' +
11867 'parent bandwidth default min max qlimit' +
11868 'block-policy debug fingerprints hostid limit loginterface optimization' +
11869 'reassemble ruleset-optimization basic none profile skip state-defaults' +
11870 'state-policy timeout' +
11871 'const counters persist' +
11872 'no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy' +
11873 'source-track global rule max-src-nodes max-src-states max-src-conn' +
11874 'max-src-conn-rate overload flush' +
11875 'scrub|5 max-mss min-ttl no-df|10 random-id',
11876 literal:
11877 'all any no-route self urpf-failed egress|5 unknown'
11878 },
11879 contains: [
11880 hljs.HASH_COMMENT_MODE,
11881 hljs.NUMBER_MODE,
11882 hljs.QUOTE_STRING_MODE,
11883 MACRO,
11884 TABLE
11885 ]
11886 };
11887}
11888},{name:"php",create:/*
11889Language: PHP
11890Author: Victor Karamzin <Victor.Karamzin@enterra-inc.com>
11891Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>
11892Category: common
11893*/
11894
11895function(hljs) {
11896 var VARIABLE = {
11897 begin: '\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
11898 };
11899 var PREPROCESSOR = {
11900 className: 'meta', begin: /<\?(php)?|\?>/
11901 };
11902 var STRING = {
11903 className: 'string',
11904 contains: [hljs.BACKSLASH_ESCAPE, PREPROCESSOR],
11905 variants: [
11906 {
11907 begin: 'b"', end: '"'
11908 },
11909 {
11910 begin: 'b\'', end: '\''
11911 },
11912 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
11913 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
11914 ]
11915 };
11916 var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
11917 return {
11918 aliases: ['php3', 'php4', 'php5', 'php6'],
11919 case_insensitive: true,
11920 keywords:
11921 'and include_once list abstract global private echo interface as static endswitch ' +
11922 'array null if endwhile or const for endforeach self var while isset public ' +
11923 'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
11924 'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
11925 'catch __METHOD__ case exception default die require __FUNCTION__ ' +
11926 'enddeclare final try switch continue endfor endif declare unset true false ' +
11927 'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
11928 'yield finally',
11929 contains: [
11930 hljs.C_LINE_COMMENT_MODE,
11931 hljs.HASH_COMMENT_MODE,
11932 hljs.COMMENT(
11933 '/\\*',
11934 '\\*/',
11935 {
11936 contains: [
11937 {
11938 className: 'doctag',
11939 begin: '@[A-Za-z]+'
11940 },
11941 PREPROCESSOR
11942 ]
11943 }
11944 ),
11945 hljs.COMMENT(
11946 '__halt_compiler.+?;',
11947 false,
11948 {
11949 endsWithParent: true,
11950 keywords: '__halt_compiler',
11951 lexemes: hljs.UNDERSCORE_IDENT_RE
11952 }
11953 ),
11954 {
11955 className: 'string',
11956 begin: /<<<['"]?\w+['"]?$/, end: /^\w+;?$/,
11957 contains: [
11958 hljs.BACKSLASH_ESCAPE,
11959 {
11960 className: 'subst',
11961 variants: [
11962 {begin: /\$\w+/},
11963 {begin: /\{\$/, end: /\}/}
11964 ]
11965 }
11966 ]
11967 },
11968 PREPROCESSOR,
11969 VARIABLE,
11970 {
11971 // swallow composed identifiers to avoid parsing them as keywords
11972 begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
11973 },
11974 {
11975 className: 'function',
11976 beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
11977 illegal: '\\$|\\[|%',
11978 contains: [
11979 hljs.UNDERSCORE_TITLE_MODE,
11980 {
11981 className: 'params',
11982 begin: '\\(', end: '\\)',
11983 contains: [
11984 'self',
11985 VARIABLE,
11986 hljs.C_BLOCK_COMMENT_MODE,
11987 STRING,
11988 NUMBER
11989 ]
11990 }
11991 ]
11992 },
11993 {
11994 className: 'class',
11995 beginKeywords: 'class interface', end: '{', excludeEnd: true,
11996 illegal: /[:\(\$"]/,
11997 contains: [
11998 {beginKeywords: 'extends implements'},
11999 hljs.UNDERSCORE_TITLE_MODE
12000 ]
12001 },
12002 {
12003 beginKeywords: 'namespace', end: ';',
12004 illegal: /[\.']/,
12005 contains: [hljs.UNDERSCORE_TITLE_MODE]
12006 },
12007 {
12008 beginKeywords: 'use', end: ';',
12009 contains: [hljs.UNDERSCORE_TITLE_MODE]
12010 },
12011 {
12012 begin: '=>' // No markup, just a relevance booster
12013 },
12014 STRING,
12015 NUMBER
12016 ]
12017 };
12018}
12019},{name:"powershell",create:/*
12020Language: PowerShell
12021Author: David Mohundro <david@mohundro.com>
12022Contributors: Nicholas Blumhardt <nblumhardt@nblumhardt.com>
12023*/
12024
12025function(hljs) {
12026 var backtickEscape = {
12027 begin: '`[\\s\\S]',
12028 relevance: 0
12029 };
12030 var VAR = {
12031 className: 'variable',
12032 variants: [
12033 {begin: /\$[\w\d][\w\d_:]*/}
12034 ]
12035 };
12036 var LITERAL = {
12037 className: 'literal',
12038 begin: /\$(null|true|false)\b/
12039 };
12040 var QUOTE_STRING = {
12041 className: 'string',
12042 begin: /"/, end: /"/,
12043 contains: [
12044 backtickEscape,
12045 VAR,
12046 {
12047 className: 'variable',
12048 begin: /\$[A-z]/, end: /[^A-z]/
12049 }
12050 ]
12051 };
12052 var APOS_STRING = {
12053 className: 'string',
12054 begin: /'/, end: /'/
12055 };
12056
12057 return {
12058 aliases: ['ps'],
12059 lexemes: /-?[A-z\.\-]+/,
12060 case_insensitive: true,
12061 keywords: {
12062 keyword: 'if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch',
12063 built_in: 'Add-Content Add-History Add-Member Add-PSSnapin Clear-Content Clear-Item Clear-Item Property Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ConvertTo-Html ConvertTo-SecureString Copy-Item Copy-ItemProperty Export-Alias Export-Clixml Export-Console Export-Csv ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item Join-Path Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug Set-Service Set-TraceSource Set-Variable Sort-Object Split-Path Start-Service Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where-Object Write-Debug Write-Error Write-Host Write-Output Write-Progress Write-Verbose Write-Warning',
12064 nomarkup: '-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace'
12065 },
12066 contains: [
12067 hljs.HASH_COMMENT_MODE,
12068 hljs.NUMBER_MODE,
12069 QUOTE_STRING,
12070 APOS_STRING,
12071 LITERAL,
12072 VAR
12073 ]
12074 };
12075}
12076},{name:"processing",create:/*
12077Language: Processing
12078Author: Erik Paluka <erik.paluka@gmail.com>
12079Category: graphics
12080*/
12081
12082function(hljs) {
12083 return {
12084 keywords: {
12085 keyword: 'BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color ' +
12086 'double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject ' +
12087 'Object StringDict StringList Table TableRow XML ' +
12088 // Java keywords
12089 'false synchronized int abstract float private char boolean static null if const ' +
12090 'for true while long throw strictfp finally protected import native final return void ' +
12091 'enum else break transient new catch instanceof byte super volatile case assert short ' +
12092 'package default double public try this switch continue throws protected public private',
12093 literal: 'P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI',
12094 title: 'setup draw',
12095 built_in: 'displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key ' +
12096 'keyCode pixels focused frameCount frameRate height width ' +
12097 'size createGraphics beginDraw createShape loadShape PShape arc ellipse line point ' +
12098 'quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint ' +
12099 'curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex ' +
12100 'endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap ' +
12101 'strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased ' +
12102 'mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour ' +
12103 'millis minute month second year background clear colorMode fill noFill noStroke stroke alpha ' +
12104 'blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY ' +
12105 'screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ' +
12106 'ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle ' +
12107 'pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf ' +
12108 'nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset ' +
12109 'box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings ' +
12110 'loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput ' +
12111 'createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings ' +
12112 'saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale ' +
12113 'shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal ' +
12114 'pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap ' +
12115 'blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont ' +
12116 'loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil ' +
12117 'constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees ' +
12118 'radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed'
12119 },
12120 contains: [
12121 hljs.C_LINE_COMMENT_MODE,
12122 hljs.C_BLOCK_COMMENT_MODE,
12123 hljs.APOS_STRING_MODE,
12124 hljs.QUOTE_STRING_MODE,
12125 hljs.C_NUMBER_MODE
12126 ]
12127 };
12128}
12129},{name:"profile",create:/*
12130Language: Python profile
12131Description: Python profiler results
12132Author: Brian Beck <exogen@gmail.com>
12133*/
12134
12135function(hljs) {
12136 return {
12137 contains: [
12138 hljs.C_NUMBER_MODE,
12139 {
12140 begin: '[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}', end: ':',
12141 excludeEnd: true
12142 },
12143 {
12144 begin: '(ncalls|tottime|cumtime)', end: '$',
12145 keywords: 'ncalls tottime|10 cumtime|10 filename',
12146 relevance: 10
12147 },
12148 {
12149 begin: 'function calls', end: '$',
12150 contains: [hljs.C_NUMBER_MODE],
12151 relevance: 10
12152 },
12153 hljs.APOS_STRING_MODE,
12154 hljs.QUOTE_STRING_MODE,
12155 {
12156 className: 'string',
12157 begin: '\\(', end: '\\)$',
12158 excludeBegin: true, excludeEnd: true,
12159 relevance: 0
12160 }
12161 ]
12162 };
12163}
12164},{name:"prolog",create:/*
12165Language: Prolog
12166Description: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.
12167Author: Raivo Laanemets <raivo@infdot.com>
12168*/
12169
12170function(hljs) {
12171
12172 var ATOM = {
12173
12174 begin: /[a-z][A-Za-z0-9_]*/,
12175 relevance: 0
12176 };
12177
12178 var VAR = {
12179
12180 className: 'symbol',
12181 variants: [
12182 {begin: /[A-Z][a-zA-Z0-9_]*/},
12183 {begin: /_[A-Za-z0-9_]*/},
12184 ],
12185 relevance: 0
12186 };
12187
12188 var PARENTED = {
12189
12190 begin: /\(/,
12191 end: /\)/,
12192 relevance: 0
12193 };
12194
12195 var LIST = {
12196
12197 begin: /\[/,
12198 end: /\]/
12199 };
12200
12201 var LINE_COMMENT = {
12202
12203 className: 'comment',
12204 begin: /%/, end: /$/,
12205 contains: [hljs.PHRASAL_WORDS_MODE]
12206 };
12207
12208 var BACKTICK_STRING = {
12209
12210 className: 'string',
12211 begin: /`/, end: /`/,
12212 contains: [hljs.BACKSLASH_ESCAPE]
12213 };
12214
12215 var CHAR_CODE = {
12216
12217 className: 'string', // 0'a etc.
12218 begin: /0\'(\\\'|.)/
12219 };
12220
12221 var SPACE_CODE = {
12222
12223 className: 'string',
12224 begin: /0\'\\s/ // 0'\s
12225 };
12226
12227 var PRED_OP = { // relevance booster
12228 begin: /:-/
12229 };
12230
12231 var inner = [
12232
12233 ATOM,
12234 VAR,
12235 PARENTED,
12236 PRED_OP,
12237 LIST,
12238 LINE_COMMENT,
12239 hljs.C_BLOCK_COMMENT_MODE,
12240 hljs.QUOTE_STRING_MODE,
12241 hljs.APOS_STRING_MODE,
12242 BACKTICK_STRING,
12243 CHAR_CODE,
12244 SPACE_CODE,
12245 hljs.C_NUMBER_MODE
12246 ];
12247
12248 PARENTED.contains = inner;
12249 LIST.contains = inner;
12250
12251 return {
12252 contains: inner.concat([
12253 {begin: /\.$/} // relevance booster
12254 ])
12255 };
12256}
12257},{name:"protobuf",create:/*
12258Language: Protocol Buffers
12259Author: Dan Tao <daniel.tao@gmail.com>
12260Description: Protocol buffer message definition format
12261Category: protocols
12262*/
12263
12264function(hljs) {
12265 return {
12266 keywords: {
12267 keyword: 'package import option optional required repeated group',
12268 built_in: 'double float int32 int64 uint32 uint64 sint32 sint64 ' +
12269 'fixed32 fixed64 sfixed32 sfixed64 bool string bytes',
12270 literal: 'true false'
12271 },
12272 contains: [
12273 hljs.QUOTE_STRING_MODE,
12274 hljs.NUMBER_MODE,
12275 hljs.C_LINE_COMMENT_MODE,
12276 {
12277 className: 'class',
12278 beginKeywords: 'message enum service', end: /\{/,
12279 illegal: /\n/,
12280 contains: [
12281 hljs.inherit(hljs.TITLE_MODE, {
12282 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
12283 })
12284 ]
12285 },
12286 {
12287 className: 'function',
12288 beginKeywords: 'rpc',
12289 end: /;/, excludeEnd: true,
12290 keywords: 'rpc returns'
12291 },
12292 {
12293 begin: /^\s*[A-Z_]+/,
12294 end: /\s*=/, excludeEnd: true
12295 }
12296 ]
12297 };
12298}
12299},{name:"puppet",create:/*
12300Language: Puppet
12301Author: Jose Molina Colmenero <gaudy41@gmail.com>
12302Category: config
12303*/
12304
12305function(hljs) {
12306
12307 var PUPPET_KEYWORDS = {
12308 keyword:
12309 /* language keywords */
12310 'and case default else elsif false if in import enherits node or true undef unless main settings $string ',
12311 literal:
12312 /* metaparameters */
12313 'alias audit before loglevel noop require subscribe tag ' +
12314 /* normal attributes */
12315 'owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check ' +
12316 'en_address ip_address realname command environment hour monute month monthday special target weekday '+
12317 'creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore ' +
12318 'links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source ' +
12319 'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid '+
12320 'ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel ' +
12321 'native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options ' +
12322 'device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use ' +
12323 'message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform ' +
12324 'responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running ' +
12325 'start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age ' +
12326 'password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled ' +
12327 'enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist ' +
12328 'priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey ' +
12329 'sslverify mounted',
12330 built_in:
12331 /* core facts */
12332 'architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers ' +
12333 'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces '+
12334 'ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion ' +
12335 'kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease ' +
12336 'lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major ' +
12337 'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease '+
12338 'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion '+
12339 'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced '+
12340 'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime '+
12341 'uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version'
12342 };
12343
12344 var COMMENT = hljs.COMMENT('#', '$');
12345
12346 var IDENT_RE = '([A-Za-z_]|::)(\\w|::)*';
12347
12348 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE});
12349
12350 var VARIABLE = {className: 'variable', begin: '\\$' + IDENT_RE};
12351
12352 var STRING = {
12353 className: 'string',
12354 contains: [hljs.BACKSLASH_ESCAPE, VARIABLE],
12355 variants: [
12356 {begin: /'/, end: /'/},
12357 {begin: /"/, end: /"/}
12358 ]
12359 };
12360
12361 return {
12362 aliases: ['pp'],
12363 contains: [
12364 COMMENT,
12365 VARIABLE,
12366 STRING,
12367 {
12368 beginKeywords: 'class', end: '\\{|;',
12369 illegal: /=/,
12370 contains: [TITLE, COMMENT]
12371 },
12372 {
12373 beginKeywords: 'define', end: /\{/,
12374 contains: [
12375 {
12376 className: 'section', begin: hljs.IDENT_RE, endsParent: true
12377 }
12378 ]
12379 },
12380 {
12381 begin: hljs.IDENT_RE + '\\s+\\{', returnBegin: true,
12382 end: /\S/,
12383 contains: [
12384 {
12385 className: 'keyword',
12386 begin: hljs.IDENT_RE
12387 },
12388 {
12389 begin: /\{/, end: /\}/,
12390 keywords: PUPPET_KEYWORDS,
12391 relevance: 0,
12392 contains: [
12393 STRING,
12394 COMMENT,
12395 {
12396 begin:'[a-zA-Z_]+\\s*=>',
12397 returnBegin: true, end: '=>',
12398 contains: [
12399 {
12400 className: 'attr',
12401 begin: hljs.IDENT_RE,
12402 }
12403 ]
12404 },
12405 {
12406 className: 'number',
12407 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
12408 relevance: 0
12409 },
12410 VARIABLE
12411 ]
12412 }
12413 ],
12414 relevance: 0
12415 }
12416 ]
12417 }
12418}
12419},{name:"python",create:/*
12420Language: Python
12421Category: common
12422*/
12423
12424function(hljs) {
12425 var PROMPT = {
12426 className: 'meta', begin: /^(>>>|\.\.\.) /
12427 };
12428 var STRING = {
12429 className: 'string',
12430 contains: [hljs.BACKSLASH_ESCAPE],
12431 variants: [
12432 {
12433 begin: /(u|b)?r?'''/, end: /'''/,
12434 contains: [PROMPT],
12435 relevance: 10
12436 },
12437 {
12438 begin: /(u|b)?r?"""/, end: /"""/,
12439 contains: [PROMPT],
12440 relevance: 10
12441 },
12442 {
12443 begin: /(u|r|ur)'/, end: /'/,
12444 relevance: 10
12445 },
12446 {
12447 begin: /(u|r|ur)"/, end: /"/,
12448 relevance: 10
12449 },
12450 {
12451 begin: /(b|br)'/, end: /'/
12452 },
12453 {
12454 begin: /(b|br)"/, end: /"/
12455 },
12456 hljs.APOS_STRING_MODE,
12457 hljs.QUOTE_STRING_MODE
12458 ]
12459 };
12460 var NUMBER = {
12461 className: 'number', relevance: 0,
12462 variants: [
12463 {begin: hljs.BINARY_NUMBER_RE + '[lLjJ]?'},
12464 {begin: '\\b(0o[0-7]+)[lLjJ]?'},
12465 {begin: hljs.C_NUMBER_RE + '[lLjJ]?'}
12466 ]
12467 };
12468 var PARAMS = {
12469 className: 'params',
12470 begin: /\(/, end: /\)/,
12471 contains: ['self', PROMPT, NUMBER, STRING]
12472 };
12473 return {
12474 aliases: ['py', 'gyp'],
12475 keywords: {
12476 keyword:
12477 'and elif is global as in if from raise for except finally print import pass return ' +
12478 'exec else break not with class assert yield try while continue del or def lambda ' +
12479 'async await nonlocal|10 None True False',
12480 built_in:
12481 'Ellipsis NotImplemented'
12482 },
12483 illegal: /(<\/|->|\?)/,
12484 contains: [
12485 PROMPT,
12486 NUMBER,
12487 STRING,
12488 hljs.HASH_COMMENT_MODE,
12489 {
12490 variants: [
12491 {className: 'function', beginKeywords: 'def', relevance: 10},
12492 {className: 'class', beginKeywords: 'class'}
12493 ],
12494 end: /:/,
12495 illegal: /[${=;\n,]/,
12496 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
12497 },
12498 {
12499 className: 'meta',
12500 begin: /^[\t ]*@/, end: /$/
12501 },
12502 {
12503 begin: /\b(print|exec)\(/ // donโ€™t highlight keywords-turned-functions in Python 3
12504 }
12505 ]
12506 };
12507}
12508},{name:"q",create:/*
12509Language: Q
12510Author: Sergey Vidyuk <svidyuk@gmail.com>
12511Description: K/Q/Kdb+ from Kx Systems
12512*/
12513function(hljs) {
12514 var Q_KEYWORDS = {
12515 keyword:
12516 'do while select delete by update from',
12517 literal:
12518 '0b 1b',
12519 built_in:
12520 'neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum',
12521 type:
12522 '`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid'
12523 };
12524 return {
12525 aliases:['k', 'kdb'],
12526 keywords: Q_KEYWORDS,
12527 lexemes: /(`?)[A-Za-z0-9_]+\b/,
12528 contains: [
12529 hljs.C_LINE_COMMENT_MODE,
12530 hljs.QUOTE_STRING_MODE,
12531 hljs.C_NUMBER_MODE
12532 ]
12533 };
12534}
12535},{name:"r",create:/*
12536Language: R
12537Author: Joe Cheng <joe@rstudio.org>
12538Category: scientific
12539*/
12540
12541function(hljs) {
12542 var IDENT_RE = '([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*';
12543
12544 return {
12545 contains: [
12546 hljs.HASH_COMMENT_MODE,
12547 {
12548 begin: IDENT_RE,
12549 lexemes: IDENT_RE,
12550 keywords: {
12551 keyword:
12552 'function if in break next repeat else for return switch while try tryCatch ' +
12553 'stop warning require library attach detach source setMethod setGeneric ' +
12554 'setGroupGeneric setClass ...',
12555 literal:
12556 'NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 ' +
12557 'NA_complex_|10'
12558 },
12559 relevance: 0
12560 },
12561 {
12562 // hex value
12563 className: 'number',
12564 begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
12565 relevance: 0
12566 },
12567 {
12568 // explicit integer
12569 className: 'number',
12570 begin: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
12571 relevance: 0
12572 },
12573 {
12574 // number with trailing decimal
12575 className: 'number',
12576 begin: "\\d+\\.(?!\\d)(?:i\\b)?",
12577 relevance: 0
12578 },
12579 {
12580 // number
12581 className: 'number',
12582 begin: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
12583 relevance: 0
12584 },
12585 {
12586 // number with leading decimal
12587 className: 'number',
12588 begin: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
12589 relevance: 0
12590 },
12591
12592 {
12593 // escaped identifier
12594 begin: '`',
12595 end: '`',
12596 relevance: 0
12597 },
12598
12599 {
12600 className: 'string',
12601 contains: [hljs.BACKSLASH_ESCAPE],
12602 variants: [
12603 {begin: '"', end: '"'},
12604 {begin: "'", end: "'"}
12605 ]
12606 }
12607 ]
12608 };
12609}
12610},{name:"rib",create:/*
12611Language: RenderMan RIB
12612Author: Konstantin Evdokimenko <qewerty@gmail.com>
12613Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
12614Category: graphics
12615*/
12616
12617function(hljs) {
12618 return {
12619 keywords:
12620 'ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis ' +
12621 'Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone ' +
12622 'CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail ' +
12623 'DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format ' +
12624 'FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry ' +
12625 'Hider Hyperboloid Identity Illuminate Imager Interior LightSource ' +
12626 'MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte ' +
12627 'MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option ' +
12628 'Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples ' +
12629 'PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection ' +
12630 'Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ' +
12631 'ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere ' +
12632 'SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd ' +
12633 'TransformPoints Translate TrimCurve WorldBegin WorldEnd',
12634 illegal: '</',
12635 contains: [
12636 hljs.HASH_COMMENT_MODE,
12637 hljs.C_NUMBER_MODE,
12638 hljs.APOS_STRING_MODE,
12639 hljs.QUOTE_STRING_MODE
12640 ]
12641 };
12642}
12643},{name:"roboconf",create:/*
12644Language: Roboconf
12645Author: Vincent Zurczak <vzurczak@linagora.com>
12646Website: http://roboconf.net
12647Description: Syntax highlighting for Roboconf's DSL
12648Category: config
12649*/
12650
12651function(hljs) {
12652 var IDENTIFIER = '[a-zA-Z-_][^\\n{]+\\{';
12653
12654 var PROPERTY = {
12655 className: 'attribute',
12656 begin: /[a-zA-Z-_]+/, end: /\s*:/, excludeEnd: true,
12657 starts: {
12658 end: ';',
12659 relevance: 0,
12660 contains: [
12661 {
12662 className: 'variable',
12663 begin: /\.[a-zA-Z-_]+/
12664 },
12665 {
12666 className: 'keyword',
12667 begin: /\(optional\)/
12668 }
12669 ]
12670 }
12671 };
12672
12673 return {
12674 aliases: ['graph', 'instances'],
12675 case_insensitive: true,
12676 keywords: 'import',
12677 contains: [
12678 // Facet sections
12679 {
12680 begin: '^facet ' + IDENTIFIER,
12681 end: '}',
12682 keywords: 'facet',
12683 contains: [
12684 PROPERTY,
12685 hljs.HASH_COMMENT_MODE
12686 ]
12687 },
12688
12689 // Instance sections
12690 {
12691 begin: '^\\s*instance of ' + IDENTIFIER,
12692 end: '}',
12693 keywords: 'name count channels instance-data instance-state instance of',
12694 illegal: /\S/,
12695 contains: [
12696 'self',
12697 PROPERTY,
12698 hljs.HASH_COMMENT_MODE
12699 ]
12700 },
12701
12702 // Component sections
12703 {
12704 begin: '^' + IDENTIFIER,
12705 end: '}',
12706 contains: [
12707 PROPERTY,
12708 hljs.HASH_COMMENT_MODE
12709 ]
12710 },
12711
12712 // Comments
12713 hljs.HASH_COMMENT_MODE
12714 ]
12715 };
12716}
12717},{name:"rsl",create:/*
12718Language: RenderMan RSL
12719Author: Konstantin Evdokimenko <qewerty@gmail.com>
12720Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
12721Category: graphics
12722*/
12723
12724function(hljs) {
12725 return {
12726 keywords: {
12727 keyword:
12728 'float color point normal vector matrix while for if do return else break extern continue',
12729 built_in:
12730 'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +
12731 'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +
12732 'faceforward filterstep floor format fresnel incident length lightsource log match ' +
12733 'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +
12734 'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +
12735 'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +
12736 'texture textureinfo trace transform vtransform xcomp ycomp zcomp'
12737 },
12738 illegal: '</',
12739 contains: [
12740 hljs.C_LINE_COMMENT_MODE,
12741 hljs.C_BLOCK_COMMENT_MODE,
12742 hljs.QUOTE_STRING_MODE,
12743 hljs.APOS_STRING_MODE,
12744 hljs.C_NUMBER_MODE,
12745 {
12746 className: 'meta',
12747 begin: '#', end: '$'
12748 },
12749 {
12750 className: 'class',
12751 beginKeywords: 'surface displacement light volume imager', end: '\\('
12752 },
12753 {
12754 beginKeywords: 'illuminate illuminance gather', end: '\\('
12755 }
12756 ]
12757 };
12758}
12759},{name:"ruby",create:/*
12760Language: Ruby
12761Author: Anton Kovalyov <anton@kovalyov.net>
12762Contributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>, Pascal Hurni <phi@ruby-reactive.org>, Cedric Sohrauer <sohrauer@googlemail.com>
12763Category: common
12764*/
12765
12766function(hljs) {
12767 var RUBY_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
12768 var RUBY_KEYWORDS =
12769 'and false then defined module in return redo if BEGIN retry end for true self when ' +
12770 'next until do begin unless END rescue nil else break undef not super class case ' +
12771 'require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor';
12772 var YARDOCTAG = {
12773 className: 'doctag',
12774 begin: '@[A-Za-z]+'
12775 };
12776 var IRB_OBJECT = {
12777 begin: '#<', end: '>'
12778 };
12779 var COMMENT_MODES = [
12780 hljs.COMMENT(
12781 '#',
12782 '$',
12783 {
12784 contains: [YARDOCTAG]
12785 }
12786 ),
12787 hljs.COMMENT(
12788 '^\\=begin',
12789 '^\\=end',
12790 {
12791 contains: [YARDOCTAG],
12792 relevance: 10
12793 }
12794 ),
12795 hljs.COMMENT('^__END__', '\\n$')
12796 ];
12797 var SUBST = {
12798 className: 'subst',
12799 begin: '#\\{', end: '}',
12800 keywords: RUBY_KEYWORDS
12801 };
12802 var STRING = {
12803 className: 'string',
12804 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
12805 variants: [
12806 {begin: /'/, end: /'/},
12807 {begin: /"/, end: /"/},
12808 {begin: /`/, end: /`/},
12809 {begin: '%[qQwWx]?\\(', end: '\\)'},
12810 {begin: '%[qQwWx]?\\[', end: '\\]'},
12811 {begin: '%[qQwWx]?{', end: '}'},
12812 {begin: '%[qQwWx]?<', end: '>'},
12813 {begin: '%[qQwWx]?/', end: '/'},
12814 {begin: '%[qQwWx]?%', end: '%'},
12815 {begin: '%[qQwWx]?-', end: '-'},
12816 {begin: '%[qQwWx]?\\|', end: '\\|'},
12817 {
12818 // \B in the beginning suppresses recognition of ?-sequences where ?
12819 // is the last character of a preceding identifier, as in: `func?4`
12820 begin: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/
12821 }
12822 ]
12823 };
12824 var PARAMS = {
12825 className: 'params',
12826 begin: '\\(', end: '\\)', endsParent: true,
12827 keywords: RUBY_KEYWORDS
12828 };
12829
12830 var RUBY_DEFAULT_CONTAINS = [
12831 STRING,
12832 IRB_OBJECT,
12833 {
12834 className: 'class',
12835 beginKeywords: 'class module', end: '$|;',
12836 illegal: /=/,
12837 contains: [
12838 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
12839 {
12840 begin: '<\\s*',
12841 contains: [{
12842 begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE
12843 }]
12844 }
12845 ].concat(COMMENT_MODES)
12846 },
12847 {
12848 className: 'function',
12849 beginKeywords: 'def', end: '$|;',
12850 contains: [
12851 hljs.inherit(hljs.TITLE_MODE, {begin: RUBY_METHOD_RE}),
12852 PARAMS
12853 ].concat(COMMENT_MODES)
12854 },
12855 {
12856 className: 'symbol',
12857 begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
12858 relevance: 0
12859 },
12860 {
12861 className: 'symbol',
12862 begin: ':',
12863 contains: [STRING, {begin: RUBY_METHOD_RE}],
12864 relevance: 0
12865 },
12866 {
12867 className: 'number',
12868 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
12869 relevance: 0
12870 },
12871 {
12872 begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))' // variables
12873 },
12874 { // regexp container
12875 begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
12876 contains: [
12877 IRB_OBJECT,
12878 {
12879 className: 'regexp',
12880 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
12881 illegal: /\n/,
12882 variants: [
12883 {begin: '/', end: '/[a-z]*'},
12884 {begin: '%r{', end: '}[a-z]*'},
12885 {begin: '%r\\(', end: '\\)[a-z]*'},
12886 {begin: '%r!', end: '![a-z]*'},
12887 {begin: '%r\\[', end: '\\][a-z]*'}
12888 ]
12889 }
12890 ].concat(COMMENT_MODES),
12891 relevance: 0
12892 }
12893 ].concat(COMMENT_MODES);
12894
12895 SUBST.contains = RUBY_DEFAULT_CONTAINS;
12896 PARAMS.contains = RUBY_DEFAULT_CONTAINS;
12897
12898 var SIMPLE_PROMPT = "[>?]>";
12899 var DEFAULT_PROMPT = "[\\w#]+\\(\\w+\\):\\d+:\\d+>";
12900 var RVM_PROMPT = "(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>";
12901
12902 var IRB_DEFAULT = [
12903 {
12904 begin: /^\s*=>/,
12905 starts: {
12906 end: '$', contains: RUBY_DEFAULT_CONTAINS
12907 }
12908 },
12909 {
12910 className: 'meta',
12911 begin: '^('+SIMPLE_PROMPT+"|"+DEFAULT_PROMPT+'|'+RVM_PROMPT+')',
12912 starts: {
12913 end: '$', contains: RUBY_DEFAULT_CONTAINS
12914 }
12915 }
12916 ];
12917
12918 return {
12919 aliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb'],
12920 keywords: RUBY_KEYWORDS,
12921 illegal: /\/\*/,
12922 contains: COMMENT_MODES.concat(IRB_DEFAULT).concat(RUBY_DEFAULT_CONTAINS)
12923 };
12924}
12925},{name:"ruleslanguage",create:/*
12926Language: Oracle Rules Language
12927Author: Jason Jacobson <jason.a.jacobson@gmail.com>
12928Description: The Oracle Utilities Rules Language is used to program the Oracle Utilities Applications acquired from LODESTAR Corporation. The products include Billing Component, LPSS, Pricing Component etc. through version 1.6.1.
12929Category: enterprise
12930*/
12931
12932function(hljs) {
12933 return {
12934 keywords: {
12935 keyword: 'BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE ' +
12936 'INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 ' +
12937 'INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 ' +
12938 'INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 ' +
12939 'INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 ' +
12940 'INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 ' +
12941 'INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 ' +
12942 'INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 ' +
12943 'INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 ' +
12944 'INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 ' +
12945 'INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 ' +
12946 'INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 ' +
12947 'INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 ' +
12948 'INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 ' +
12949 'INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 ' +
12950 'MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER ' +
12951 'OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE ' +
12952 'NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH ' +
12953 'IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND ' +
12954 'UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ' +
12955 'ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE ' +
12956 'GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE ' +
12957 'SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING ' +
12958 'DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF ' +
12959 'MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY ' +
12960 'YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE ' +
12961 'COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR ' +
12962 'READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ' +
12963 'ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE ' +
12964 'EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE ' +
12965 'SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL ' +
12966 'COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN ' +
12967 'MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING ' +
12968 'FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ' +
12969 'NUMDAYS READ_DATE STAGING',
12970 built_in: 'IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML ' +
12971 'DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT ' +
12972 'DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE ' +
12973 'DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT ' +
12974 'DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME'
12975 },
12976 contains: [
12977 hljs.C_LINE_COMMENT_MODE,
12978 hljs.C_BLOCK_COMMENT_MODE,
12979 hljs.APOS_STRING_MODE,
12980 hljs.QUOTE_STRING_MODE,
12981 hljs.C_NUMBER_MODE,
12982 {
12983 className: 'literal',
12984 variants: [
12985 {begin: '#\\s+[a-zA-Z\\ \\.]*', relevance: 0}, // looks like #-comment
12986 {begin: '#[a-zA-Z\\ \\.]+'}
12987 ]
12988 }
12989 ]
12990 };
12991}
12992},{name:"rust",create:/*
12993Language: Rust
12994Author: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
12995Contributors: Roman Shmatov <romanshmatov@gmail.com>
12996Category: system
12997*/
12998
12999function(hljs) {
13000 var NUM_SUFFIX = '([uif](8|16|32|64|size))\?';
13001 var BLOCK_COMMENT = hljs.inherit(hljs.C_BLOCK_COMMENT_MODE);
13002 BLOCK_COMMENT.contains.push('self');
13003 var BUILTINS =
13004 // prelude
13005 'Copy Send Sized Sync Drop Fn FnMut FnOnce drop Box ToOwned Clone ' +
13006 'PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator ' +
13007 'Extend IntoIterator DoubleEndedIterator ExactSizeIterator Option ' +
13008 'Some None Result Ok Err SliceConcatExt String ToString Vec ' +
13009 // macros
13010 'assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! ' +
13011 'debug_assert! debug_assert_eq! env! panic! file! format! format_args! ' +
13012 'include_bin! include_str! line! local_data_key! module_path! ' +
13013 'option_env! print! println! select! stringify! try! unimplemented! ' +
13014 'unreachable! vec! write! writeln!';
13015 return {
13016 aliases: ['rs'],
13017 keywords: {
13018 keyword:
13019 'alignof as be box break const continue crate do else enum extern ' +
13020 'false fn for if impl in let loop match mod mut offsetof once priv ' +
13021 'proc pub pure ref return self Self sizeof static struct super trait true ' +
13022 'type typeof unsafe unsized use virtual while where yield ' +
13023 'int i8 i16 i32 i64 ' +
13024 'uint u8 u32 u64 ' +
13025 'float f32 f64 ' +
13026 'str char bool',
13027 literal:
13028 'true false',
13029 built_in:
13030 BUILTINS
13031 },
13032 lexemes: hljs.IDENT_RE + '!?',
13033 illegal: '</',
13034 contains: [
13035 hljs.C_LINE_COMMENT_MODE,
13036 BLOCK_COMMENT,
13037 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
13038 {
13039 className: 'string',
13040 variants: [
13041 { begin: /r(#*)".*?"\1(?!#)/ },
13042 { begin: /'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/ },
13043 ]
13044 },
13045 {
13046 className: 'symbol',
13047 begin: /'[a-zA-Z_][a-zA-Z0-9_]*/
13048 },
13049 {
13050 className: 'number',
13051 variants: [
13052 { begin: '\\b0b([01_]+)' + NUM_SUFFIX },
13053 { begin: '\\b0o([0-7_]+)' + NUM_SUFFIX },
13054 { begin: '\\b0x([A-Fa-f0-9_]+)' + NUM_SUFFIX },
13055 { begin: '\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)' +
13056 NUM_SUFFIX
13057 }
13058 ],
13059 relevance: 0
13060 },
13061 {
13062 className: 'function',
13063 beginKeywords: 'fn', end: '(\\(|<)', excludeEnd: true,
13064 contains: [hljs.UNDERSCORE_TITLE_MODE]
13065 },
13066 {
13067 className: 'meta',
13068 begin: '#\\!?\\[', end: '\\]'
13069 },
13070 {
13071 className: 'class',
13072 beginKeywords: 'type', end: '(=|<)',
13073 contains: [hljs.UNDERSCORE_TITLE_MODE],
13074 illegal: '\\S'
13075 },
13076 {
13077 className: 'class',
13078 beginKeywords: 'trait enum', end: '{',
13079 contains: [
13080 hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {endsParent: true})
13081 ],
13082 illegal: '[\\w\\d]'
13083 },
13084 {
13085 begin: hljs.IDENT_RE + '::',
13086 keywords: {built_in: BUILTINS}
13087 },
13088 {
13089 begin: '->'
13090 }
13091 ]
13092 };
13093}
13094},{name:"scala",create:/*
13095Language: Scala
13096Category: functional
13097Author: Jan Berkel <jan.berkel@gmail.com>
13098Contributors: Erik Osheim <d_m@plastic-idolatry.com>
13099*/
13100
13101function(hljs) {
13102
13103 var ANNOTATION = { className: 'meta', begin: '@[A-Za-z]+' };
13104
13105 // used in strings for escaping/interpolation/substitution
13106 var SUBST = {
13107 className: 'subst',
13108 variants: [
13109 {begin: '\\$[A-Za-z0-9_]+'},
13110 {begin: '\\${', end: '}'}
13111 ]
13112 };
13113
13114 var STRING = {
13115 className: 'string',
13116 variants: [
13117 {
13118 begin: '"', end: '"',
13119 illegal: '\\n',
13120 contains: [hljs.BACKSLASH_ESCAPE]
13121 },
13122 {
13123 begin: '"""', end: '"""',
13124 relevance: 10
13125 },
13126 {
13127 begin: '[a-z]+"', end: '"',
13128 illegal: '\\n',
13129 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
13130 },
13131 {
13132 className: 'string',
13133 begin: '[a-z]+"""', end: '"""',
13134 contains: [SUBST],
13135 relevance: 10
13136 }
13137 ]
13138
13139 };
13140
13141 var SYMBOL = {
13142 className: 'symbol',
13143 begin: '\'\\w[\\w\\d_]*(?!\')'
13144 };
13145
13146 var TYPE = {
13147 className: 'type',
13148 begin: '\\b[A-Z][A-Za-z0-9_]*',
13149 relevance: 0
13150 };
13151
13152 var NAME = {
13153 className: 'title',
13154 begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,
13155 relevance: 0
13156 };
13157
13158 var CLASS = {
13159 className: 'class',
13160 beginKeywords: 'class object trait type',
13161 end: /[:={\[\n;]/,
13162 excludeEnd: true,
13163 contains: [
13164 {
13165 beginKeywords: 'extends with',
13166 relevance: 10
13167 },
13168 {
13169 begin: /\[/,
13170 end: /\]/,
13171 excludeBegin: true,
13172 excludeEnd: true,
13173 relevance: 0,
13174 contains: [TYPE]
13175 },
13176 {
13177 className: 'params',
13178 begin: /\(/,
13179 end: /\)/,
13180 excludeBegin: true,
13181 excludeEnd: true,
13182 relevance: 0,
13183 contains: [TYPE]
13184 },
13185 NAME
13186 ]
13187 };
13188
13189 var METHOD = {
13190 className: 'function',
13191 beginKeywords: 'def',
13192 end: /[:={\[(\n;]/,
13193 excludeEnd: true,
13194 contains: [NAME]
13195 };
13196
13197 return {
13198 keywords: {
13199 literal: 'true false null',
13200 keyword: 'type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit'
13201 },
13202 contains: [
13203 hljs.C_LINE_COMMENT_MODE,
13204 hljs.C_BLOCK_COMMENT_MODE,
13205 STRING,
13206 SYMBOL,
13207 TYPE,
13208 METHOD,
13209 CLASS,
13210 hljs.C_NUMBER_MODE,
13211 ANNOTATION
13212 ]
13213 };
13214}
13215},{name:"scheme",create:/*
13216Language: Scheme
13217Description: Keywords based on http://community.schemewiki.org/?scheme-keywords
13218Author: JP Verkamp <me@jverkamp.com>
13219Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
13220Origin: clojure.js
13221Category: lisp
13222*/
13223
13224function(hljs) {
13225 var SCHEME_IDENT_RE = '[^\\(\\)\\[\\]\\{\\}",\'`;#|\\\\\\s]+';
13226 var SCHEME_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+([./]\\d+)?';
13227 var SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i';
13228 var BUILTINS = {
13229 'builtin-name':
13230 'case-lambda call/cc class define-class exit-handler field import ' +
13231 'inherit init-field interface let*-values let-values let/ec mixin ' +
13232 'opt-lambda override protect provide public rename require ' +
13233 'require-for-syntax syntax syntax-case syntax-error unit/sig unless ' +
13234 'when with-syntax and begin call-with-current-continuation ' +
13235 'call-with-input-file call-with-output-file case cond define ' +
13236 'define-syntax delay do dynamic-wind else for-each if lambda let let* ' +
13237 'let-syntax letrec letrec-syntax map or syntax-rules \' * + , ,@ - ... / ' +
13238 '; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan ' +
13239 'boolean? caar cadr call-with-input-file call-with-output-file ' +
13240 'call-with-values car cdddar cddddr cdr ceiling char->integer ' +
13241 'char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? ' +
13242 'char-downcase char-lower-case? char-numeric? char-ready? char-upcase ' +
13243 'char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? ' +
13244 'char? close-input-port close-output-port complex? cons cos ' +
13245 'current-input-port current-output-port denominator display eof-object? ' +
13246 'eq? equal? eqv? eval even? exact->inexact exact? exp expt floor ' +
13247 'force gcd imag-part inexact->exact inexact? input-port? integer->char ' +
13248 'integer? interaction-environment lcm length list list->string ' +
13249 'list->vector list-ref list-tail list? load log magnitude make-polar ' +
13250 'make-rectangular make-string make-vector max member memq memv min ' +
13251 'modulo negative? newline not null-environment null? number->string ' +
13252 'number? numerator odd? open-input-file open-output-file output-port? ' +
13253 'pair? peek-char port? positive? procedure? quasiquote quote quotient ' +
13254 'rational? rationalize read read-char real-part real? remainder reverse ' +
13255 'round scheme-report-environment set! set-car! set-cdr! sin sqrt string ' +
13256 'string->list string->number string->symbol string-append string-ci<=? ' +
13257 'string-ci<? string-ci=? string-ci>=? string-ci>? string-copy ' +
13258 'string-fill! string-length string-ref string-set! string<=? string<? ' +
13259 'string=? string>=? string>? string? substring symbol->string symbol? ' +
13260 'tan transcript-off transcript-on truncate values vector ' +
13261 'vector->list vector-fill! vector-length vector-ref vector-set! ' +
13262 'with-input-from-file with-output-to-file write write-char zero?'
13263 };
13264
13265 var SHEBANG = {
13266 className: 'meta',
13267 begin: '^#!',
13268 end: '$'
13269 };
13270
13271 var LITERAL = {
13272 className: 'literal',
13273 begin: '(#t|#f|#\\\\' + SCHEME_IDENT_RE + '|#\\\\.)'
13274 };
13275
13276 var NUMBER = {
13277 className: 'number',
13278 variants: [
13279 { begin: SCHEME_SIMPLE_NUMBER_RE, relevance: 0 },
13280 { begin: SCHEME_COMPLEX_NUMBER_RE, relevance: 0 },
13281 { begin: '#b[0-1]+(/[0-1]+)?' },
13282 { begin: '#o[0-7]+(/[0-7]+)?' },
13283 { begin: '#x[0-9a-f]+(/[0-9a-f]+)?' }
13284 ]
13285 };
13286
13287 var STRING = hljs.QUOTE_STRING_MODE;
13288
13289 var REGULAR_EXPRESSION = {
13290 className: 'regexp',
13291 begin: '#[pr]x"',
13292 end: '[^\\\\]"'
13293 };
13294
13295 var COMMENT_MODES = [
13296 hljs.COMMENT(
13297 ';',
13298 '$',
13299 {
13300 relevance: 0
13301 }
13302 ),
13303 hljs.COMMENT('#\\|', '\\|#')
13304 ];
13305
13306 var IDENT = {
13307 begin: SCHEME_IDENT_RE,
13308 relevance: 0
13309 };
13310
13311 var QUOTED_IDENT = {
13312 className: 'symbol',
13313 begin: '\'' + SCHEME_IDENT_RE
13314 };
13315
13316 var BODY = {
13317 endsWithParent: true,
13318 relevance: 0
13319 };
13320
13321 var LIST = {
13322 variants: [
13323 { begin: '\\(', end: '\\)' },
13324 { begin: '\\[', end: '\\]' }
13325 ],
13326 contains: [
13327 {
13328 className: 'name',
13329 begin: SCHEME_IDENT_RE,
13330 lexemes: SCHEME_IDENT_RE,
13331 keywords: BUILTINS
13332 },
13333 BODY
13334 ]
13335 };
13336
13337 BODY.contains = [LITERAL, NUMBER, STRING, IDENT, QUOTED_IDENT, LIST].concat(COMMENT_MODES);
13338
13339 return {
13340 illegal: /\S/,
13341 contains: [SHEBANG, NUMBER, STRING, QUOTED_IDENT, LIST].concat(COMMENT_MODES)
13342 };
13343}
13344},{name:"scilab",create:/*
13345Language: Scilab
13346Author: Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com>
13347Origin: matlab.js
13348Description: Scilab is a port from Matlab
13349Category: scientific
13350*/
13351
13352function(hljs) {
13353
13354 var COMMON_CONTAINS = [
13355 hljs.C_NUMBER_MODE,
13356 {
13357 className: 'string',
13358 begin: '\'|\"', end: '\'|\"',
13359 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
13360 }
13361 ];
13362
13363 return {
13364 aliases: ['sci'],
13365 lexemes: /%?\w+/,
13366 keywords: {
13367 keyword: 'abort break case clear catch continue do elseif else endfunction end for function '+
13368 'global if pause return resume select try then while',
13369 literal:
13370 '%f %F %t %T %pi %eps %inf %nan %e %i %z %s',
13371 built_in: // Scilab has more than 2000 functions. Just list the most commons
13372 'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error '+
13373 'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty '+
13374 'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log '+
13375 'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real '+
13376 'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan '+
13377 'type typename warning zeros matrix'
13378 },
13379 illegal: '("|#|/\\*|\\s+/\\w+)',
13380 contains: [
13381 {
13382 className: 'function',
13383 beginKeywords: 'function', end: '$',
13384 contains: [
13385 hljs.UNDERSCORE_TITLE_MODE,
13386 {
13387 className: 'params',
13388 begin: '\\(', end: '\\)'
13389 }
13390 ]
13391 },
13392 {
13393 begin: '[a-zA-Z_][a-zA-Z_0-9]*(\'+[\\.\']*|[\\.\']+)', end: '',
13394 relevance: 0
13395 },
13396 {
13397 begin: '\\[', end: '\\]\'*[\\.\']*',
13398 relevance: 0,
13399 contains: COMMON_CONTAINS
13400 },
13401 hljs.COMMENT('//', '$')
13402 ].concat(COMMON_CONTAINS)
13403 };
13404}
13405},{name:"scss",create:/*
13406Language: SCSS
13407Author: Kurt Emch <kurt@kurtemch.com>
13408Category: css
13409*/
13410function(hljs) {
13411 var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
13412 var VARIABLE = {
13413 className: 'variable',
13414 begin: '(\\$' + IDENT_RE + ')\\b'
13415 };
13416 var HEXCOLOR = {
13417 className: 'number', begin: '#[0-9A-Fa-f]+'
13418 };
13419 var DEF_INTERNALS = {
13420 className: 'attribute',
13421 begin: '[A-Z\\_\\.\\-]+', end: ':',
13422 excludeEnd: true,
13423 illegal: '[^\\s]',
13424 starts: {
13425 endsWithParent: true, excludeEnd: true,
13426 contains: [
13427 HEXCOLOR,
13428 hljs.CSS_NUMBER_MODE,
13429 hljs.QUOTE_STRING_MODE,
13430 hljs.APOS_STRING_MODE,
13431 hljs.C_BLOCK_COMMENT_MODE,
13432 {
13433 className: 'meta', begin: '!important'
13434 }
13435 ]
13436 }
13437 };
13438 return {
13439 case_insensitive: true,
13440 illegal: '[=/|\']',
13441 contains: [
13442 hljs.C_LINE_COMMENT_MODE,
13443 hljs.C_BLOCK_COMMENT_MODE,
13444 {
13445 className: 'selector-id', begin: '\\#[A-Za-z0-9_-]+',
13446 relevance: 0
13447 },
13448 {
13449 className: 'selector-class', begin: '\\.[A-Za-z0-9_-]+',
13450 relevance: 0
13451 },
13452 {
13453 className: 'selector-attr', begin: '\\[', end: '\\]',
13454 illegal: '$'
13455 },
13456 {
13457 className: 'selector-tag', // begin: IDENT_RE, end: '[,|\\s]'
13458 begin: '\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b',
13459 relevance: 0
13460 },
13461 {
13462 begin: ':(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)'
13463 },
13464 {
13465 begin: '::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)'
13466 },
13467 VARIABLE,
13468 {
13469 className: 'attribute',
13470 begin: '\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b',
13471 illegal: '[^\\s]'
13472 },
13473 {
13474 begin: '\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b'
13475 },
13476 {
13477 begin: ':', end: ';',
13478 contains: [
13479 VARIABLE,
13480 HEXCOLOR,
13481 hljs.CSS_NUMBER_MODE,
13482 hljs.QUOTE_STRING_MODE,
13483 hljs.APOS_STRING_MODE,
13484 {
13485 className: 'meta', begin: '!important'
13486 }
13487 ]
13488 },
13489 {
13490 begin: '@', end: '[{;]',
13491 keywords: 'mixin include extend for if else each while charset import debug media page content font-face namespace warn',
13492 contains: [
13493 VARIABLE,
13494 hljs.QUOTE_STRING_MODE,
13495 hljs.APOS_STRING_MODE,
13496 HEXCOLOR,
13497 hljs.CSS_NUMBER_MODE,
13498 {
13499 begin: '\\s[A-Za-z0-9_.-]+',
13500 relevance: 0
13501 }
13502 ]
13503 }
13504 ]
13505 };
13506}
13507},{name:"smali",create:/*
13508Language: Smali
13509Author: Dennis Titze <dennis.titze@gmail.com>
13510Description: Basic Smali highlighting
13511*/
13512
13513function(hljs) {
13514 var smali_instr_low_prio = ['add', 'and', 'cmp', 'cmpg', 'cmpl', 'const', 'div', 'double', 'float', 'goto', 'if', 'int', 'long', 'move', 'mul', 'neg', 'new', 'nop', 'not', 'or', 'rem', 'return', 'shl', 'shr', 'sput', 'sub', 'throw', 'ushr', 'xor'];
13515 var smali_instr_high_prio = ['aget', 'aput', 'array', 'check', 'execute', 'fill', 'filled', 'goto/16', 'goto/32', 'iget', 'instance', 'invoke', 'iput', 'monitor', 'packed', 'sget', 'sparse'];
13516 var smali_keywords = ['transient', 'constructor', 'abstract', 'final', 'synthetic', 'public', 'private', 'protected', 'static', 'bridge', 'system'];
13517 return {
13518 aliases: ['smali'],
13519 contains: [
13520 {
13521 className: 'string',
13522 begin: '"', end: '"',
13523 relevance: 0
13524 },
13525 hljs.COMMENT(
13526 '#',
13527 '$',
13528 {
13529 relevance: 0
13530 }
13531 ),
13532 {
13533 className: 'keyword',
13534 variants: [
13535 {begin: '\\s*\\.end\\s[a-zA-Z0-9]*'},
13536 {begin: '^[ ]*\\.[a-zA-Z]*', relevance: 0},
13537 {begin: '\\s:[a-zA-Z_0-9]*', relevance: 0},
13538 {begin: '\\s(' + smali_keywords.join('|') + ')'}
13539 ]
13540 },
13541 {
13542 className: 'built_in',
13543 variants : [
13544 {
13545 begin: '\\s('+smali_instr_low_prio.join('|')+')\\s'
13546 },
13547 {
13548 begin: '\\s('+smali_instr_low_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)+\\s',
13549 relevance: 10
13550 },
13551 {
13552 begin: '\\s('+smali_instr_high_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)*\\s',
13553 relevance: 10
13554 },
13555 ]
13556 },
13557 {
13558 className: 'class',
13559 begin: 'L[^\(;:\n]*;',
13560 relevance: 0
13561 },
13562 {
13563 begin: '[vp][0-9]+',
13564 }
13565 ]
13566 };
13567}
13568},{name:"smalltalk",create:/*
13569Language: Smalltalk
13570Author: Vladimir Gubarkov <xonixx@gmail.com>
13571*/
13572
13573function(hljs) {
13574 var VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*';
13575 var CHAR = {
13576 className: 'string',
13577 begin: '\\$.{1}'
13578 };
13579 var SYMBOL = {
13580 className: 'symbol',
13581 begin: '#' + hljs.UNDERSCORE_IDENT_RE
13582 };
13583 return {
13584 aliases: ['st'],
13585 keywords: 'self super nil true false thisContext', // only 6
13586 contains: [
13587 hljs.COMMENT('"', '"'),
13588 hljs.APOS_STRING_MODE,
13589 {
13590 className: 'type',
13591 begin: '\\b[A-Z][A-Za-z0-9_]*',
13592 relevance: 0
13593 },
13594 {
13595 begin: VAR_IDENT_RE + ':',
13596 relevance: 0
13597 },
13598 hljs.C_NUMBER_MODE,
13599 SYMBOL,
13600 CHAR,
13601 {
13602 // This looks more complicated than needed to avoid combinatorial
13603 // explosion under V8. It effectively means `| var1 var2 ... |` with
13604 // whitespace adjacent to `|` being optional.
13605 begin: '\\|[ ]*' + VAR_IDENT_RE + '([ ]+' + VAR_IDENT_RE + ')*[ ]*\\|',
13606 returnBegin: true, end: /\|/,
13607 illegal: /\S/,
13608 contains: [{begin: '(\\|[ ]*)?' + VAR_IDENT_RE}]
13609 },
13610 {
13611 begin: '\\#\\(', end: '\\)',
13612 contains: [
13613 hljs.APOS_STRING_MODE,
13614 CHAR,
13615 hljs.C_NUMBER_MODE,
13616 SYMBOL
13617 ]
13618 }
13619 ]
13620 };
13621}
13622},{name:"sml",create:/*
13623Language: SML
13624Author: Edwin Dalorzo <edwin@dalorzo.org>
13625Description: SML language definition.
13626Origin: ocaml.js
13627Category: functional
13628*/
13629function(hljs) {
13630 return {
13631 aliases: ['ml'],
13632 keywords: {
13633 keyword:
13634 /* according to Definition of Standard ML 97 */
13635 'abstype and andalso as case datatype do else end eqtype ' +
13636 'exception fn fun functor handle if in include infix infixr ' +
13637 'let local nonfix of op open orelse raise rec sharing sig ' +
13638 'signature struct structure then type val with withtype where while',
13639 built_in:
13640 /* built-in types according to basis library */
13641 'array bool char exn int list option order real ref string substring vector unit word',
13642 literal:
13643 'true false NONE SOME LESS EQUAL GREATER nil'
13644 },
13645 illegal: /\/\/|>>/,
13646 lexemes: '[a-z_]\\w*!?',
13647 contains: [
13648 {
13649 className: 'literal',
13650 begin: '\\[(\\|\\|)?\\]|\\(\\)'
13651 },
13652 hljs.COMMENT(
13653 '\\(\\*',
13654 '\\*\\)',
13655 {
13656 contains: ['self']
13657 }
13658 ),
13659 { /* type variable */
13660 className: 'symbol',
13661 begin: '\'[A-Za-z_](?!\')[\\w\']*'
13662 /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
13663 },
13664 { /* polymorphic variant */
13665 className: 'type',
13666 begin: '`[A-Z][\\w\']*'
13667 },
13668 { /* module or constructor */
13669 className: 'type',
13670 begin: '\\b[A-Z][\\w\']*',
13671 relevance: 0
13672 },
13673 { /* don't color identifiers, but safely catch all identifiers with '*/
13674 begin: '[a-z_]\\w*\'[\\w\']*'
13675 },
13676 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
13677 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
13678 {
13679 className: 'number',
13680 begin:
13681 '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
13682 '0[oO][0-7_]+[Lln]?|' +
13683 '0[bB][01_]+[Lln]?|' +
13684 '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
13685 relevance: 0
13686 },
13687 {
13688 begin: /[-=]>/ // relevance booster
13689 }
13690 ]
13691 };
13692}
13693},{name:"sqf",create:/*
13694Language: SQF
13695Author: Sรธren Enevoldsen <senevoldsen90@gmail.com>
13696Description: Scripting language for the Arma game series
13697*/
13698
13699function(hljs) {
13700 var allCommands = ['!', '-', '+', '!=', '%', '&&', '*', '/', '=', '==', '>', '>=', '<', '<=', 'or', 'plus', '^', ':', '>>', 'abs', 'accTime', 'acos', 'action', 'actionKeys', 'actionKeysImages', 'actionKeysNames', 'actionKeysNamesArray', 'actionName', 'activateAddons', 'activatedAddons', 'activateKey', 'addAction', 'addBackpack', 'addBackpackCargo', 'addBackpackCargoGlobal', 'addBackpackGlobal', 'addCamShake', 'addCuratorAddons', 'addCuratorCameraArea', 'addCuratorEditableObjects', 'addCuratorEditingArea', 'addCuratorPoints', 'addEditorObject', 'addEventHandler', 'addGoggles', 'addGroupIcon', 'addHandgunItem', 'addHeadgear', 'addItem', 'addItemCargo', 'addItemCargoGlobal', 'addItemPool', 'addItemToBackpack', 'addItemToUniform', 'addItemToVest', 'addLiveStats', 'addMagazine', 'addMagazine array', 'addMagazineAmmoCargo', 'addMagazineCargo', 'addMagazineCargoGlobal', 'addMagazineGlobal', 'addMagazinePool', 'addMagazines', 'addMagazineTurret', 'addMenu', 'addMenuItem', 'addMissionEventHandler', 'addMPEventHandler', 'addMusicEventHandler', 'addPrimaryWeaponItem', 'addPublicVariableEventHandler', 'addRating', 'addResources', 'addScore', 'addScoreSide', 'addSecondaryWeaponItem', 'addSwitchableUnit', 'addTeamMember', 'addToRemainsCollector', 'addUniform', 'addVehicle', 'addVest', 'addWaypoint', 'addWeapon', 'addWeaponCargo', 'addWeaponCargoGlobal', 'addWeaponGlobal', 'addWeaponPool', 'addWeaponTurret', 'agent', 'agents', 'AGLToASL', 'aimedAtTarget', 'aimPos', 'airDensityRTD', 'airportSide', 'AISFinishHeal', 'alive', 'allControls', 'allCurators', 'allDead', 'allDeadMen', 'allDisplays', 'allGroups', 'allMapMarkers', 'allMines', 'allMissionObjects', 'allow3DMode', 'allowCrewInImmobile', 'allowCuratorLogicIgnoreAreas', 'allowDamage', 'allowDammage', 'allowFileOperations', 'allowFleeing', 'allowGetIn', 'allPlayers', 'allSites', 'allTurrets', 'allUnits', 'allUnitsUAV', 'allVariables', 'ammo', 'and', 'animate', 'animateDoor', 'animationPhase', 'animationState', 'append', 'armoryPoints', 'arrayIntersect', 'asin', 'ASLToAGL', 'ASLToATL', 'assert', 'assignAsCargo', 'assignAsCargoIndex', 'assignAsCommander', 'assignAsDriver', 'assignAsGunner', 'assignAsTurret', 'assignCurator', 'assignedCargo', 'assignedCommander', 'assignedDriver', 'assignedGunner', 'assignedItems', 'assignedTarget', 'assignedTeam', 'assignedVehicle', 'assignedVehicleRole', 'assignItem', 'assignTeam', 'assignToAirport', 'atan', 'atan2', 'atg', 'ATLToASL', 'attachedObject', 'attachedObjects', 'attachedTo', 'attachObject', 'attachTo', 'attackEnabled', 'backpack', 'backpackCargo', 'backpackContainer', 'backpackItems', 'backpackMagazines', 'backpackSpaceFor', 'behaviour', 'benchmark', 'binocular', 'blufor', 'boundingBox', 'boundingBoxReal', 'boundingCenter', 'breakOut', 'breakTo', 'briefingName', 'buildingExit', 'buildingPos', 'buttonAction', 'buttonSetAction', 'cadetMode', 'call', 'callExtension', 'camCommand', 'camCommit', 'camCommitPrepared', 'camCommitted', 'camConstuctionSetParams', 'camCreate', 'camDestroy', 'cameraEffect', 'cameraEffectEnableHUD', 'cameraInterest', 'cameraOn', 'cameraView', 'campaignConfigFile', 'camPreload', 'camPreloaded', 'camPrepareBank', 'camPrepareDir', 'camPrepareDive', 'camPrepareFocus', 'camPrepareFov', 'camPrepareFovRange', 'camPreparePos', 'camPrepareRelPos', 'camPrepareTarget', 'camSetBank', 'camSetDir', 'camSetDive', 'camSetFocus', 'camSetFov', 'camSetFovRange', 'camSetPos', 'camSetRelPos', 'camSetTarget', 'camTarget', 'camUseNVG', 'canAdd', 'canAddItemToBackpack', 'canAddItemToUniform', 'canAddItemToVest', 'cancelSimpleTaskDestination', 'canFire', 'canMove', 'canSlingLoad', 'canStand', 'canUnloadInCombat', 'captive', 'captiveNum', 'case', 'catch', 'cbChecked', 'cbSetChecked', 'ceil', 'cheatsEnabled', 'checkAIFeature', 'civilian', 'className', 'clearAllItemsFromBackpack', 'clearBackpackCargo', 'clearBackpackCargoGlobal', 'clearGroupIcons', 'clearItemCargo', 'clearItemCargoGlobal', 'clearItemPool', 'clearMagazineCargo', 'clearMagazineCargoGlobal', 'clearMagazinePool', 'clearOverlay', 'clearRadio', 'clearWeaponCargo', 'clearWeaponCargoGlobal', 'clearWeaponPool', 'closeDialog', 'closeDisplay', 'closeOverlay', 'collapseObjectTree', 'combatMode', 'commandArtilleryFire', 'commandChat', 'commander', 'commandFire', 'commandFollow', 'commandFSM', 'commandGetOut', 'commandingMenu', 'commandMove', 'commandRadio', 'commandStop', 'commandTarget', 'commandWatch', 'comment', 'commitOverlay', 'compile', 'compileFinal', 'completedFSM', 'composeText', 'configClasses', 'configFile', 'configHierarchy', 'configName', 'configProperties', 'configSourceMod', 'configSourceModList', 'connectTerminalToUAV', 'controlNull', 'controlsGroupCtrl', 'copyFromClipboard', 'copyToClipboard', 'copyWaypoints', 'cos', 'count', 'countEnemy', 'countFriendly', 'countSide', 'countType', 'countUnknown', 'createAgent', 'createCenter', 'createDialog', 'createDiaryLink', 'createDiaryRecord', 'createDiarySubject', 'createDisplay', 'createGearDialog', 'createGroup', 'createGuardedPoint', 'createLocation', 'createMarker', 'createMarkerLocal', 'createMenu', 'createMine', 'createMissionDisplay', 'createSimpleTask', 'createSite', 'createSoundSource', 'createTask', 'createTeam', 'createTrigger', 'createUnit', 'createUnit array', 'createVehicle', 'createVehicle array', 'createVehicleCrew', 'createVehicleLocal', 'crew', 'ctrlActivate', 'ctrlAddEventHandler', 'ctrlAutoScrollDelay', 'ctrlAutoScrollRewind', 'ctrlAutoScrollSpeed', 'ctrlChecked', 'ctrlClassName', 'ctrlCommit', 'ctrlCommitted', 'ctrlCreate', 'ctrlDelete', 'ctrlEnable', 'ctrlEnabled', 'ctrlFade', 'ctrlHTMLLoaded', 'ctrlIDC', 'ctrlIDD', 'ctrlMapAnimAdd', 'ctrlMapAnimClear', 'ctrlMapAnimCommit', 'ctrlMapAnimDone', 'ctrlMapCursor', 'ctrlMapMouseOver', 'ctrlMapScale', 'ctrlMapScreenToWorld', 'ctrlMapWorldToScreen', 'ctrlModel', 'ctrlModelDirAndUp', 'ctrlModelScale', 'ctrlParent', 'ctrlPosition', 'ctrlRemoveAllEventHandlers', 'ctrlRemoveEventHandler', 'ctrlScale', 'ctrlSetActiveColor', 'ctrlSetAutoScrollDelay', 'ctrlSetAutoScrollRewind', 'ctrlSetAutoScrollSpeed', 'ctrlSetBackgroundColor', 'ctrlSetChecked', 'ctrlSetEventHandler', 'ctrlSetFade', 'ctrlSetFocus', 'ctrlSetFont', 'ctrlSetFontH1', 'ctrlSetFontH1B', 'ctrlSetFontH2', 'ctrlSetFontH2B', 'ctrlSetFontH3', 'ctrlSetFontH3B', 'ctrlSetFontH4', 'ctrlSetFontH4B', 'ctrlSetFontH5', 'ctrlSetFontH5B', 'ctrlSetFontH6', 'ctrlSetFontH6B', 'ctrlSetFontHeight', 'ctrlSetFontHeightH1', 'ctrlSetFontHeightH2', 'ctrlSetFontHeightH3', 'ctrlSetFontHeightH4', 'ctrlSetFontHeightH5', 'ctrlSetFontHeightH6', 'ctrlSetFontP', 'ctrlSetFontPB', 'ctrlSetForegroundColor', 'ctrlSetModel', 'ctrlSetModelDirAndUp', 'ctrlSetModelScale', 'ctrlSetPosition', 'ctrlSetScale', 'ctrlSetStructuredText', 'ctrlSetText', 'ctrlSetTextColor', 'ctrlSetTooltip', 'ctrlSetTooltipColorBox', 'ctrlSetTooltipColorShade', 'ctrlSetTooltipColorText', 'ctrlShow', 'ctrlShown', 'ctrlText', 'ctrlTextHeight', 'ctrlType', 'ctrlVisible', 'curatorAddons', 'curatorCamera', 'curatorCameraArea', 'curatorCameraAreaCeiling', 'curatorCoef', 'curatorEditableObjects', 'curatorEditingArea', 'curatorEditingAreaType', 'curatorMouseOver', 'curatorPoints', 'curatorRegisteredObjects', 'curatorSelected', 'curatorWaypointCost', 'currentChannel', 'currentCommand', 'currentMagazine', 'currentMagazineDetail', 'currentMagazineDetailTurret', 'currentMagazineTurret', 'currentMuzzle', 'currentNamespace', 'currentTask', 'currentTasks', 'currentThrowable', 'currentVisionMode', 'currentWaypoint', 'currentWeapon', 'currentWeaponMode', 'currentWeaponTurret', 'currentZeroing', 'cursorTarget', 'customChat', 'customRadio', 'cutFadeOut', 'cutObj', 'cutRsc', 'cutText', 'damage', 'date', 'dateToNumber', 'daytime', 'deActivateKey', 'debriefingText', 'debugFSM', 'debugLog', 'default', 'deg', 'deleteAt', 'deleteCenter', 'deleteCollection', 'deleteEditorObject', 'deleteGroup', 'deleteIdentity', 'deleteLocation', 'deleteMarker', 'deleteMarkerLocal', 'deleteRange', 'deleteResources', 'deleteSite', 'deleteStatus', 'deleteTeam', 'deleteVehicle', 'deleteVehicleCrew', 'deleteWaypoint', 'detach', 'detectedMines', 'diag activeMissionFSMs', 'diag activeSQFScripts', 'diag activeSQSScripts', 'diag captureFrame', 'diag captureSlowFrame', 'diag fps', 'diag fpsMin', 'diag frameNo', 'diag log', 'diag logSlowFrame', 'diag tickTime', 'dialog', 'diarySubjectExists', 'didJIP', 'didJIPOwner', 'difficulty', 'difficultyEnabled', 'difficultyEnabledRTD', 'direction', 'directSay', 'disableAI', 'disableCollisionWith', 'disableConversation', 'disableDebriefingStats', 'disableSerialization', 'disableTIEquipment', 'disableUAVConnectability', 'disableUserInput', 'displayAddEventHandler', 'displayCtrl', 'displayNull', 'displayRemoveAllEventHandlers', 'displayRemoveEventHandler', 'displaySetEventHandler', 'dissolveTeam', 'distance', 'distance2D', 'distanceSqr', 'distributionRegion', 'do', 'doArtilleryFire', 'doFire', 'doFollow', 'doFSM', 'doGetOut', 'doMove', 'doorPhase', 'doStop', 'doTarget', 'doWatch', 'drawArrow', 'drawEllipse', 'drawIcon', 'drawIcon3D', 'drawLine', 'drawLine3D', 'drawLink', 'drawLocation', 'drawRectangle', 'driver', 'drop', 'east', 'echo', 'editObject', 'editorSetEventHandler', 'effectiveCommander', 'else', 'emptyPositions', 'enableAI', 'enableAIFeature', 'enableAttack', 'enableCamShake', 'enableCaustics', 'enableCollisionWith', 'enableCopilot', 'enableDebriefingStats', 'enableDiagLegend', 'enableEndDialog', 'enableEngineArtillery', 'enableEnvironment', 'enableFatigue', 'enableGunLights', 'enableIRLasers', 'enableMimics', 'enablePersonTurret', 'enableRadio', 'enableReload', 'enableRopeAttach', 'enableSatNormalOnDetail', 'enableSaving', 'enableSentences', 'enableSimulation', 'enableSimulationGlobal', 'enableTeamSwitch', 'enableUAVConnectability', 'enableUAVWaypoints', 'endLoadingScreen', 'endMission', 'engineOn', 'enginesIsOnRTD', 'enginesRpmRTD', 'enginesTorqueRTD', 'entities', 'estimatedEndServerTime', 'estimatedTimeLeft', 'evalObjectArgument', 'everyBackpack', 'everyContainer', 'exec', 'execEditorScript', 'execFSM', 'execVM', 'exit', 'exitWith', 'exp', 'expectedDestination', 'eyeDirection', 'eyePos', 'face', 'faction', 'fadeMusic', 'fadeRadio', 'fadeSound', 'fadeSpeech', 'failMission', 'false', 'fillWeaponsFromPool', 'find', 'findCover', 'findDisplay', 'findEditorObject', 'findEmptyPosition', 'findEmptyPositionReady', 'findNearestEnemy', 'finishMissionInit', 'finite', 'fire', 'fireAtTarget', 'firstBackpack', 'flag', 'flagOwner', 'fleeing', 'floor', 'flyInHeight', 'fog', 'fogForecast', 'fogParams', 'for', 'forceAddUniform', 'forceEnd', 'forceMap', 'forceRespawn', 'forceSpeed', 'forceWalk', 'forceWeaponFire', 'forceWeatherChange', 'forEach', 'forEachMember', 'forEachMemberAgent', 'forEachMemberTeam', 'format', 'formation', 'formationDirection', 'formationLeader', 'formationMembers', 'formationPosition', 'formationTask', 'formatText', 'formLeader', 'freeLook', 'from', 'fromEditor', 'fuel', 'fullCrew', 'gearSlotAmmoCount', 'gearSlotData', 'getAllHitPointsDamage', 'getAmmoCargo', 'getArray', 'getArtilleryAmmo', 'getArtilleryComputerSettings', 'getArtilleryETA', 'getAssignedCuratorLogic', 'getAssignedCuratorUnit', 'getBackpackCargo', 'getBleedingRemaining', 'getBurningValue', 'getCargoIndex', 'getCenterOfMass', 'getClientState', 'getConnectedUAV', 'getDammage', 'getDescription', 'getDir', 'getDirVisual', 'getDLCs', 'getEditorCamera', 'getEditorMode', 'getEditorObjectScope', 'getElevationOffset', 'getFatigue', 'getFriend', 'getFSMVariable', 'getFuelCargo', 'getGroupIcon', 'getGroupIconParams', 'getGroupIcons', 'getHideFrom', 'getHit', 'getHitIndex', 'getHitPointDamage', 'getItemCargo', 'getMagazineCargo', 'getMarkerColor', 'getMarkerPos', 'getMarkerSize', 'getMarkerType', 'getMass', 'getModelInfo', 'getNumber', 'getObjectArgument', 'getObjectChildren', 'getObjectDLC', 'getObjectMaterials', 'getObjectProxy', 'getObjectTextures', 'getObjectType', 'getObjectViewDistance', 'getOxygenRemaining', 'getPersonUsedDLCs', 'getPlayerChannel', 'getPlayerUID', 'getPos', 'getPosASL', 'getPosASLVisual', 'getPosASLW', 'getPosATL', 'getPosATLVisual', 'getPosVisual', 'getPosWorld', 'getRepairCargo', 'getResolution', 'getShadowDistance', 'getSlingLoad', 'getSpeed', 'getSuppression', 'getTerrainHeightASL', 'getText', 'getVariable', 'getWeaponCargo', 'getWPPos', 'glanceAt', 'globalChat', 'globalRadio', 'goggles', 'goto', 'group', 'groupChat', 'groupFromNetId', 'groupIconSelectable', 'groupIconsVisible', 'groupId', 'groupOwner', 'groupRadio', 'groupSelectedUnits', 'groupSelectUnit', 'grpNull', 'gunner', 'gusts', 'halt', 'handgunItems', 'handgunMagazine', 'handgunWeapon', 'handsHit', 'hasInterface', 'hasWeapon', 'hcAllGroups', 'hcGroupParams', 'hcLeader', 'hcRemoveAllGroups', 'hcRemoveGroup', 'hcSelected', 'hcSelectGroup', 'hcSetGroup', 'hcShowBar', 'hcShownBar', 'headgear', 'hideBody', 'hideObject', 'hideObjectGlobal', 'hint', 'hintC', 'hintCadet', 'hintSilent', 'hmd', 'hostMission', 'htmlLoad', 'HUDMovementLevels', 'humidity', 'if', 'image', 'importAllGroups', 'importance', 'in', 'incapacitatedState', 'independent', 'inflame', 'inflamed', 'inGameUISetEventHandler', 'inheritsFrom', 'initAmbientLife', 'inputAction', 'inRangeOfArtillery', 'insertEditorObject', 'intersect', 'isAbleToBreathe', 'isAgent', 'isArray', 'isAutoHoverOn', 'isAutonomous', 'isAutotest', 'isBleeding', 'isBurning', 'isClass', 'isCollisionLightOn', 'isCopilotEnabled', 'isDedicated', 'isDLCAvailable', 'isEngineOn', 'isEqualTo', 'isFlashlightOn', 'isFlatEmpty', 'isForcedWalk', 'isFormationLeader', 'isHidden', 'isInRemainsCollector', 'isInstructorFigureEnabled', 'isIRLaserOn', 'isKeyActive', 'isKindOf', 'isLightOn', 'isLocalized', 'isManualFire', 'isMarkedForCollection', 'isMultiplayer', 'isNil', 'isNull', 'isNumber', 'isObjectHidden', 'isObjectRTD', 'isOnRoad', 'isPipEnabled', 'isPlayer', 'isRealTime', 'isServer', 'isShowing3DIcons', 'isSteamMission', 'isStreamFriendlyUIEnabled', 'isText', 'isTouchingGround', 'isTurnedOut', 'isTutHintsEnabled', 'isUAVConnectable', 'isUAVConnected', 'isUniformAllowed', 'isWalking', 'isWeaponDeployed', 'isWeaponRested', 'itemCargo', 'items', 'itemsWithMagazines', 'join', 'joinAs', 'joinAsSilent', 'joinSilent', 'joinString', 'kbAddDatabase', 'kbAddDatabaseTargets', 'kbAddTopic', 'kbHasTopic', 'kbReact', 'kbRemoveTopic', 'kbTell', 'kbWasSaid', 'keyImage', 'keyName', 'knowsAbout', 'land', 'landAt', 'landResult', 'language', 'laserTarget', 'lbAdd', 'lbClear', 'lbColor', 'lbCurSel', 'lbData', 'lbDelete', 'lbIsSelected', 'lbPicture', 'lbSelection', 'lbSetColor', 'lbSetCurSel', 'lbSetData', 'lbSetPicture', 'lbSetPictureColor', 'lbSetPictureColorDisabled', 'lbSetPictureColorSelected', 'lbSetSelectColor', 'lbSetSelectColorRight', 'lbSetSelected', 'lbSetTooltip', 'lbSetValue', 'lbSize', 'lbSort', 'lbSortByValue', 'lbText', 'lbValue', 'leader', 'leaderboardDeInit', 'leaderboardGetRows', 'leaderboardInit', 'leaveVehicle', 'libraryCredits', 'libraryDisclaimers', 'lifeState', 'lightAttachObject', 'lightDetachObject', 'lightIsOn', 'lightnings', 'limitSpeed', 'linearConversion', 'lineBreak', 'lineIntersects', 'lineIntersectsObjs', 'lineIntersectsSurfaces', 'lineIntersectsWith', 'linkItem', 'list', 'listObjects', 'ln', 'lnbAddArray', 'lnbAddColumn', 'lnbAddRow', 'lnbClear', 'lnbColor', 'lnbCurSelRow', 'lnbData', 'lnbDeleteColumn', 'lnbDeleteRow', 'lnbGetColumnsPosition', 'lnbPicture', 'lnbSetColor', 'lnbSetColumnsPos', 'lnbSetCurSelRow', 'lnbSetData', 'lnbSetPicture', 'lnbSetText', 'lnbSetValue', 'lnbSize', 'lnbText', 'lnbValue', 'load', 'loadAbs', 'loadBackpack', 'loadFile', 'loadGame', 'loadIdentity', 'loadMagazine', 'loadOverlay', 'loadStatus', 'loadUniform', 'loadVest', 'local', 'localize', 'locationNull', 'locationPosition', 'lock', 'lockCameraTo', 'lockCargo', 'lockDriver', 'locked', 'lockedCargo', 'lockedDriver', 'lockedTurret', 'lockTurret', 'lockWP', 'log', 'logEntities', 'lookAt', 'lookAtPos', 'magazineCargo', 'magazines', 'magazinesAllTurrets', 'magazinesAmmo', 'magazinesAmmoCargo', 'magazinesAmmoFull', 'magazinesDetail', 'magazinesDetailBackpack', 'magazinesDetailUniform', 'magazinesDetailVest', 'magazinesTurret', 'magazineTurretAmmo', 'mapAnimAdd', 'mapAnimClear', 'mapAnimCommit', 'mapAnimDone', 'mapCenterOnCamera', 'mapGridPosition', 'markAsFinishedOnSteam', 'markerAlpha', 'markerBrush', 'markerColor', 'markerDir', 'markerPos', 'markerShape', 'markerSize', 'markerText', 'markerType', 'max', 'members', 'min', 'mineActive', 'mineDetectedBy', 'missionConfigFile', 'missionName', 'missionNamespace', 'missionStart', 'mod', 'modelToWorld', 'modelToWorldVisual', 'moonIntensity', 'morale', 'move', 'moveInAny', 'moveInCargo', 'moveInCommander', 'moveInDriver', 'moveInGunner', 'moveInTurret', 'moveObjectToEnd', 'moveOut', 'moveTime', 'moveTo', 'moveToCompleted', 'moveToFailed', 'musicVolume', 'name', 'name location', 'nameSound', 'nearEntities', 'nearestBuilding', 'nearestLocation', 'nearestLocations', 'nearestLocationWithDubbing', 'nearestObject', 'nearestObjects', 'nearObjects', 'nearObjectsReady', 'nearRoads', 'nearSupplies', 'nearTargets', 'needReload', 'netId', 'netObjNull', 'newOverlay', 'nextMenuItemIndex', 'nextWeatherChange', 'nil', 'nMenuItems', 'not', 'numberToDate', 'objectCurators', 'objectFromNetId', 'objectParent', 'objNull', 'objStatus', 'onBriefingGroup', 'onBriefingNotes', 'onBriefingPlan', 'onBriefingTeamSwitch', 'onCommandModeChanged', 'onDoubleClick', 'onEachFrame', 'onGroupIconClick', 'onGroupIconOverEnter', 'onGroupIconOverLeave', 'onHCGroupSelectionChanged', 'onMapSingleClick', 'onPlayerConnected', 'onPlayerDisconnected', 'onPreloadFinished', 'onPreloadStarted', 'onShowNewObject', 'onTeamSwitch', 'openCuratorInterface', 'openMap', 'openYoutubeVideo', 'opfor', 'or', 'orderGetIn', 'overcast', 'overcastForecast', 'owner', 'param', 'params', 'parseNumber', 'parseText', 'parsingNamespace', 'particlesQuality', 'pi', 'pickWeaponPool', 'pitch', 'playableSlotsNumber', 'playableUnits', 'playAction', 'playActionNow', 'player', 'playerRespawnTime', 'playerSide', 'playersNumber', 'playGesture', 'playMission', 'playMove', 'playMoveNow', 'playMusic', 'playScriptedMission', 'playSound', 'playSound3D', 'position', 'positionCameraToWorld', 'posScreenToWorld', 'posWorldToScreen', 'ppEffectAdjust', 'ppEffectCommit', 'ppEffectCommitted', 'ppEffectCreate', 'ppEffectDestroy', 'ppEffectEnable', 'ppEffectForceInNVG', 'precision', 'preloadCamera', 'preloadObject', 'preloadSound', 'preloadTitleObj', 'preloadTitleRsc', 'preprocessFile', 'preprocessFileLineNumbers', 'primaryWeapon', 'primaryWeaponItems', 'primaryWeaponMagazine', 'priority', 'private', 'processDiaryLink', 'productVersion', 'profileName', 'profileNamespace', 'profileNameSteam', 'progressLoadingScreen', 'progressPosition', 'progressSetPosition', 'publicVariable', 'publicVariableClient', 'publicVariableServer', 'pushBack', 'putWeaponPool', 'queryItemsPool', 'queryMagazinePool', 'queryWeaponPool', 'rad', 'radioChannelAdd', 'radioChannelCreate', 'radioChannelRemove', 'radioChannelSetCallSign', 'radioChannelSetLabel', 'radioVolume', 'rain', 'rainbow', 'random', 'rank', 'rankId', 'rating', 'rectangular', 'registeredTasks', 'registerTask', 'reload', 'reloadEnabled', 'remoteControl', 'remoteExec', 'remoteExecCall', 'removeAction', 'removeAllActions', 'removeAllAssignedItems', 'removeAllContainers', 'removeAllCuratorAddons', 'removeAllCuratorCameraAreas', 'removeAllCuratorEditingAreas', 'removeAllEventHandlers', 'removeAllHandgunItems', 'removeAllItems', 'removeAllItemsWithMagazines', 'removeAllMissionEventHandlers', 'removeAllMPEventHandlers', 'removeAllMusicEventHandlers', 'removeAllPrimaryWeaponItems', 'removeAllWeapons', 'removeBackpack', 'removeBackpackGlobal', 'removeCuratorAddons', 'removeCuratorCameraArea', 'removeCuratorEditableObjects', 'removeCuratorEditingArea', 'removeDrawIcon', 'removeDrawLinks', 'removeEventHandler', 'removeFromRemainsCollector', 'removeGoggles', 'removeGroupIcon', 'removeHandgunItem', 'removeHeadgear', 'removeItem', 'removeItemFromBackpack', 'removeItemFromUniform', 'removeItemFromVest', 'removeItems', 'removeMagazine', 'removeMagazineGlobal', 'removeMagazines', 'removeMagazinesTurret', 'removeMagazineTurret', 'removeMenuItem', 'removeMissionEventHandler', 'removeMPEventHandler', 'removeMusicEventHandler', 'removePrimaryWeaponItem', 'removeSecondaryWeaponItem', 'removeSimpleTask', 'removeSwitchableUnit', 'removeTeamMember', 'removeUniform', 'removeVest', 'removeWeapon', 'removeWeaponGlobal', 'removeWeaponTurret', 'requiredVersion', 'resetCamShake', 'resetSubgroupDirection', 'resistance', 'resize', 'resources', 'respawnVehicle', 'restartEditorCamera', 'reveal', 'revealMine', 'reverse', 'reversedMouseY', 'roadsConnectedTo', 'roleDescription', 'ropeAttachedObjects', 'ropeAttachedTo', 'ropeAttachEnabled', 'ropeAttachTo', 'ropeCreate', 'ropeCut', 'ropeEndPosition', 'ropeLength', 'ropes', 'ropeUnwind', 'ropeUnwound', 'rotorsForcesRTD', 'rotorsRpmRTD', 'round', 'runInitScript', 'safeZoneH', 'safeZoneW', 'safeZoneWAbs', 'safeZoneX', 'safeZoneXAbs', 'safeZoneY', 'saveGame', 'saveIdentity', 'saveJoysticks', 'saveOverlay', 'saveProfileNamespace', 'saveStatus', 'saveVar', 'savingEnabled', 'say', 'say2D', 'say3D', 'scopeName', 'score', 'scoreSide', 'screenToWorld', 'scriptDone', 'scriptName', 'scriptNull', 'scudState', 'secondaryWeapon', 'secondaryWeaponItems', 'secondaryWeaponMagazine', 'select', 'selectBestPlaces', 'selectDiarySubject', 'selectedEditorObjects', 'selectEditorObject', 'selectionPosition', 'selectLeader', 'selectNoPlayer', 'selectPlayer', 'selectWeapon', 'selectWeaponTurret', 'sendAUMessage', 'sendSimpleCommand', 'sendTask', 'sendTaskResult', 'sendUDPMessage', 'serverCommand', 'serverCommandAvailable', 'serverCommandExecutable', 'serverName', 'serverTime', 'set', 'setAccTime', 'setAirportSide', 'setAmmo', 'setAmmoCargo', 'setAperture', 'setApertureNew', 'setArmoryPoints', 'setAttributes', 'setAutonomous', 'setBehaviour', 'setBleedingRemaining', 'setCameraInterest', 'setCamShakeDefParams', 'setCamShakeParams', 'setCamUseTi', 'setCaptive', 'setCenterOfMass', 'setCollisionLight', 'setCombatMode', 'setCompassOscillation', 'setCuratorCameraAreaCeiling', 'setCuratorCoef', 'setCuratorEditingAreaType', 'setCuratorWaypointCost', 'setCurrentChannel', 'setCurrentTask', 'setCurrentWaypoint', 'setDamage', 'setDammage', 'setDate', 'setDebriefingText', 'setDefaultCamera', 'setDestination', 'setDetailMapBlendPars', 'setDir', 'setDirection', 'setDrawIcon', 'setDropInterval', 'setEditorMode', 'setEditorObjectScope', 'setEffectCondition', 'setFace', 'setFaceAnimation', 'setFatigue', 'setFlagOwner', 'setFlagSide', 'setFlagTexture', 'setFog', 'setFog array', 'setFormation', 'setFormationTask', 'setFormDir', 'setFriend', 'setFromEditor', 'setFSMVariable', 'setFuel', 'setFuelCargo', 'setGroupIcon', 'setGroupIconParams', 'setGroupIconsSelectable', 'setGroupIconsVisible', 'setGroupId', 'setGroupIdGlobal', 'setGroupOwner', 'setGusts', 'setHideBehind', 'setHit', 'setHitIndex', 'setHitPointDamage', 'setHorizonParallaxCoef', 'setHUDMovementLevels', 'setIdentity', 'setImportance', 'setLeader', 'setLightAmbient', 'setLightAttenuation', 'setLightBrightness', 'setLightColor', 'setLightDayLight', 'setLightFlareMaxDistance', 'setLightFlareSize', 'setLightIntensity', 'setLightnings', 'setLightUseFlare', 'setLocalWindParams', 'setMagazineTurretAmmo', 'setMarkerAlpha', 'setMarkerAlphaLocal', 'setMarkerBrush', 'setMarkerBrushLocal', 'setMarkerColor', 'setMarkerColorLocal', 'setMarkerDir', 'setMarkerDirLocal', 'setMarkerPos', 'setMarkerPosLocal', 'setMarkerShape', 'setMarkerShapeLocal', 'setMarkerSize', 'setMarkerSizeLocal', 'setMarkerText', 'setMarkerTextLocal', 'setMarkerType', 'setMarkerTypeLocal', 'setMass', 'setMimic', 'setMousePosition', 'setMusicEffect', 'setMusicEventHandler', 'setName', 'setNameSound', 'setObjectArguments', 'setObjectMaterial', 'setObjectProxy', 'setObjectTexture', 'setObjectTextureGlobal', 'setObjectViewDistance', 'setOvercast', 'setOwner', 'setOxygenRemaining', 'setParticleCircle', 'setParticleClass', 'setParticleFire', 'setParticleParams', 'setParticleRandom', 'setPilotLight', 'setPiPEffect', 'setPitch', 'setPlayable', 'setPlayerRespawnTime', 'setPos', 'setPosASL', 'setPosASL2', 'setPosASLW', 'setPosATL', 'setPosition', 'setPosWorld', 'setRadioMsg', 'setRain', 'setRainbow', 'setRandomLip', 'setRank', 'setRectangular', 'setRepairCargo', 'setShadowDistance', 'setSide', 'setSimpleTaskDescription', 'setSimpleTaskDestination', 'setSimpleTaskTarget', 'setSimulWeatherLayers', 'setSize', 'setSkill', 'setSkill array', 'setSlingLoad', 'setSoundEffect', 'setSpeaker', 'setSpeech', 'setSpeedMode', 'setStatValue', 'setSuppression', 'setSystemOfUnits', 'setTargetAge', 'setTaskResult', 'setTaskState', 'setTerrainGrid', 'setText', 'setTimeMultiplier', 'setTitleEffect', 'setTriggerActivation', 'setTriggerArea', 'setTriggerStatements', 'setTriggerText', 'setTriggerTimeout', 'setTriggerType', 'setType', 'setUnconscious', 'setUnitAbility', 'setUnitPos', 'setUnitPosWeak', 'setUnitRank', 'setUnitRecoilCoefficient', 'setUnloadInCombat', 'setUserActionText', 'setVariable', 'setVectorDir', 'setVectorDirAndUp', 'setVectorUp', 'setVehicleAmmo', 'setVehicleAmmoDef', 'setVehicleArmor', 'setVehicleId', 'setVehicleLock', 'setVehiclePosition', 'setVehicleTiPars', 'setVehicleVarName', 'setVelocity', 'setVelocityTransformation', 'setViewDistance', 'setVisibleIfTreeCollapsed', 'setWaves', 'setWaypointBehaviour', 'setWaypointCombatMode', 'setWaypointCompletionRadius', 'setWaypointDescription', 'setWaypointFormation', 'setWaypointHousePosition', 'setWaypointLoiterRadius', 'setWaypointLoiterType', 'setWaypointName', 'setWaypointPosition', 'setWaypointScript', 'setWaypointSpeed', 'setWaypointStatements', 'setWaypointTimeout', 'setWaypointType', 'setWaypointVisible', 'setWeaponReloadingTime', 'setWind', 'setWindDir', 'setWindForce', 'setWindStr', 'setWPPos', 'show3DIcons', 'showChat', 'showCinemaBorder', 'showCommandingMenu', 'showCompass', 'showCuratorCompass', 'showGPS', 'showHUD', 'showLegend', 'showMap', 'shownArtilleryComputer', 'shownChat', 'shownCompass', 'shownCuratorCompass', 'showNewEditorObject', 'shownGPS', 'shownHUD', 'shownMap', 'shownPad', 'shownRadio', 'shownUAVFeed', 'shownWarrant', 'shownWatch', 'showPad', 'showRadio', 'showSubtitles', 'showUAVFeed', 'showWarrant', 'showWatch', 'showWaypoint', 'side', 'sideChat', 'sideEnemy', 'sideFriendly', 'sideLogic', 'sideRadio', 'sideUnknown', 'simpleTasks', 'simulationEnabled', 'simulCloudDensity', 'simulCloudOcclusion', 'simulInClouds', 'simulWeatherSync', 'sin', 'size', 'sizeOf', 'skill', 'skillFinal', 'skipTime', 'sleep', 'sliderPosition', 'sliderRange', 'sliderSetPosition', 'sliderSetRange', 'sliderSetSpeed', 'sliderSpeed', 'slingLoadAssistantShown', 'soldierMagazines', 'someAmmo', 'sort', 'soundVolume', 'spawn', 'speaker', 'speed', 'speedMode', 'splitString', 'sqrt', 'squadParams', 'stance', 'startLoadingScreen', 'step', 'stop', 'stopped', 'str', 'sunOrMoon', 'supportInfo', 'suppressFor', 'surfaceIsWater', 'surfaceNormal', 'surfaceType', 'swimInDepth', 'switch', 'switchableUnits', 'switchAction', 'switchCamera', 'switchGesture', 'switchLight', 'switchMove', 'synchronizedObjects', 'synchronizedTriggers', 'synchronizedWaypoints', 'synchronizeObjectsAdd', 'synchronizeObjectsRemove', 'synchronizeTrigger', 'synchronizeWaypoint', 'synchronizeWaypoint trigger', 'systemChat', 'systemOfUnits', 'tan', 'targetKnowledge', 'targetsAggregate', 'targetsQuery', 'taskChildren', 'taskCompleted', 'taskDescription', 'taskDestination', 'taskHint', 'taskNull', 'taskParent', 'taskResult', 'taskState', 'teamMember', 'teamMemberNull', 'teamName', 'teams', 'teamSwitch', 'teamSwitchEnabled', 'teamType', 'terminate', 'terrainIntersect', 'terrainIntersectASL', 'text', 'text location', 'textLog', 'textLogFormat', 'tg', 'then', 'throw', 'time', 'timeMultiplier', 'titleCut', 'titleFadeOut', 'titleObj', 'titleRsc', 'titleText', 'to', 'toArray', 'toLower', 'toString', 'toUpper', 'triggerActivated', 'triggerActivation', 'triggerArea', 'triggerAttachedVehicle', 'triggerAttachObject', 'triggerAttachVehicle', 'triggerStatements', 'triggerText', 'triggerTimeout', 'triggerTimeoutCurrent', 'triggerType', 'true', 'try', 'turretLocal', 'turretOwner', 'turretUnit', 'tvAdd', 'tvClear', 'tvCollapse', 'tvCount', 'tvCurSel', 'tvData', 'tvDelete', 'tvExpand', 'tvPicture', 'tvSetCurSel', 'tvSetData', 'tvSetPicture', 'tvSetPictureColor', 'tvSetTooltip', 'tvSetValue', 'tvSort', 'tvSortByValue', 'tvText', 'tvValue', 'type', 'typeName', 'typeOf', 'UAVControl', 'uiNamespace', 'uiSleep', 'unassignCurator', 'unassignItem', 'unassignTeam', 'unassignVehicle', 'underwater', 'uniform', 'uniformContainer', 'uniformItems', 'uniformMagazines', 'unitAddons', 'unitBackpack', 'unitPos', 'unitReady', 'unitRecoilCoefficient', 'units', 'unitsBelowHeight', 'unlinkItem', 'unlockAchievement', 'unregisterTask', 'updateDrawIcon', 'updateMenuItem', 'updateObjectTree', 'useAudioTimeForMoves', 'vectorAdd', 'vectorCos', 'vectorCrossProduct', 'vectorDiff', 'vectorDir', 'vectorDirVisual', 'vectorDistance', 'vectorDistanceSqr', 'vectorDotProduct', 'vectorFromTo', 'vectorMagnitude', 'vectorMagnitudeSqr', 'vectorMultiply', 'vectorNormalized', 'vectorUp', 'vectorUpVisual', 'vehicle', 'vehicleChat', 'vehicleRadio', 'vehicles', 'vehicleVarName', 'velocity', 'velocityModelSpace', 'verifySignature', 'vest', 'vestContainer', 'vestItems', 'vestMagazines', 'viewDistance', 'visibleCompass', 'visibleGPS', 'visibleMap', 'visiblePosition', 'visiblePositionASL', 'visibleWatch', 'waitUntil', 'waves', 'waypointAttachedObject', 'waypointAttachedVehicle', 'waypointAttachObject', 'waypointAttachVehicle', 'waypointBehaviour', 'waypointCombatMode', 'waypointCompletionRadius', 'waypointDescription', 'waypointFormation', 'waypointHousePosition', 'waypointLoiterRadius', 'waypointLoiterType', 'waypointName', 'waypointPosition', 'waypoints', 'waypointScript', 'waypointsEnabledUAV', 'waypointShow', 'waypointSpeed', 'waypointStatements', 'waypointTimeout', 'waypointTimeoutCurrent', 'waypointType', 'waypointVisible', 'weaponAccessories', 'weaponCargo', 'weaponDirection', 'weaponLowered', 'weapons', 'weaponsItems', 'weaponsItemsCargo', 'weaponState', 'weaponsTurret', 'weightRTD', 'west', 'WFSideText', 'while', 'wind', 'windDir', 'windStr', 'wingsForcesRTD', 'with', 'worldName', 'worldSize', 'worldToModel', 'worldToModelVisual', 'worldToScreen'];
13701 var control = ['case', 'catch', 'default', 'do', 'else', 'exit', 'exitWith|5', 'for', 'forEach', 'from', 'if', 'switch', 'then', 'throw', 'to', 'try', 'while', 'with'];
13702 var operators = ['!', '-', '+', '!=', '%', '&&', '*', '/', '=', '==', '>', '>=', '<', '<=', '^', ':', '>>'];
13703 var specials = ['_forEachIndex|10', '_this|10', '_x|10'];
13704 var literals = ['true', 'false', 'nil'];
13705 var builtins = allCommands.filter(function (command) {
13706 return control.indexOf(command) == -1 &&
13707 literals.indexOf(command) == -1 &&
13708 operators.indexOf(command) == -1;
13709 });
13710 //Note: operators will not be treated as builtins due to the lexeme rules
13711 builtins = builtins.concat(specials);
13712
13713 // In SQF strings, quotes matching the start are escaped by adding a consecutive.
13714 // Example of single escaped quotes: " "" " and ' '' '.
13715 var STRINGS = {
13716 className: 'string',
13717 relevance: 0,
13718 variants: [
13719 {
13720 begin: '"',
13721 end: '"',
13722 contains: [{begin: '""'}]
13723 },
13724 {
13725 begin: '\'',
13726 end: '\'',
13727 contains: [{begin: '\'\''}]
13728 }
13729 ]
13730 };
13731
13732 var NUMBERS = {
13733 className: 'number',
13734 begin: hljs.NUMBER_RE,
13735 relevance: 0
13736 };
13737
13738 // Preprocessor definitions borrowed from C++
13739 var PREPROCESSOR_STRINGS = {
13740 className: 'string',
13741 variants: [
13742 hljs.QUOTE_STRING_MODE,
13743 {
13744 begin: '\'\\\\?.', end: '\'',
13745 illegal: '.'
13746 }
13747 ]
13748 };
13749
13750 var PREPROCESSOR = {
13751 className: 'meta',
13752 begin: '#', end: '$',
13753 keywords: {'meta-keyword': 'if else elif endif define undef warning error line ' +
13754 'pragma ifdef ifndef'},
13755 contains: [
13756 {
13757 begin: /\\\n/, relevance: 0
13758 },
13759 {
13760 beginKeywords: 'include', end: '$',
13761 keywords: {'meta-keyword': 'include'},
13762 contains: [
13763 PREPROCESSOR_STRINGS,
13764 {
13765 className: 'meta-string',
13766 begin: '<', end: '>',
13767 illegal: '\\n'
13768 }
13769 ]
13770 },
13771 PREPROCESSOR_STRINGS,
13772 NUMBERS,
13773 hljs.C_LINE_COMMENT_MODE,
13774 hljs.C_BLOCK_COMMENT_MODE
13775 ]
13776 };
13777
13778 return {
13779 aliases: ['sqf'],
13780 case_insensitive: true,
13781 keywords: {
13782 keyword: control.join(' '),
13783 built_in: builtins.join(' '),
13784 literal: literals.join(' ')
13785 },
13786 contains: [
13787 hljs.C_LINE_COMMENT_MODE,
13788 hljs.C_BLOCK_COMMENT_MODE,
13789 NUMBERS,
13790 STRINGS,
13791 PREPROCESSOR
13792 ]
13793 };
13794}
13795},{name:"sql",create:/*
13796 Language: SQL
13797 Contributors: Nikolay Lisienko <info@neor.ru>, Heiko August <post@auge8472.de>, Travis Odom <travis.a.odom@gmail.com>, Vadimtro <vadimtro@yahoo.com>, Benjamin Auder <benjamin.auder@gmail.com>
13798 Category: common
13799 */
13800
13801function(hljs) {
13802 var COMMENT_MODE = hljs.COMMENT('--', '$');
13803 return {
13804 case_insensitive: true,
13805 illegal: /[<>{}*]/,
13806 contains: [
13807 {
13808 beginKeywords:
13809 'begin end start commit rollback savepoint lock alter create drop rename call ' +
13810 'delete do handler insert load replace select truncate update set show pragma grant ' +
13811 'merge describe use explain help declare prepare execute deallocate release ' +
13812 'unlock purge reset change stop analyze cache flush optimize repair kill ' +
13813 'install uninstall checksum restore check backup revoke',
13814 end: /;/, endsWithParent: true,
13815 keywords: {
13816 keyword:
13817 'abort abs absolute acc acce accep accept access accessed accessible account acos action activate add ' +
13818 'addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias ' +
13819 'allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply ' +
13820 'archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan ' +
13821 'atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid ' +
13822 'authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile ' +
13823 'before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float ' +
13824 'binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound ' +
13825 'buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel ' +
13826 'capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base ' +
13827 'char_length character_length characters characterset charindex charset charsetform charsetid check ' +
13828 'checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close ' +
13829 'cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation ' +
13830 'collect colu colum column column_value columns columns_updated comment commit compact compatibility ' +
13831 'compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn ' +
13832 'connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection ' +
13833 'consider consistent constant constraint constraints constructor container content contents context ' +
13834 'contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost ' +
13835 'count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation ' +
13836 'critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user ' +
13837 'cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add ' +
13838 'date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts ' +
13839 'day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate ' +
13840 'declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults ' +
13841 'deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank ' +
13842 'depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor ' +
13843 'deterministic diagnostics difference dimension direct_load directory disable disable_all ' +
13844 'disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div ' +
13845 'do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable ' +
13846 'editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt ' +
13847 'end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors ' +
13848 'escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding ' +
13849 'execu execut execute exempt exists exit exp expire explain export export_set extended extent external ' +
13850 'external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast ' +
13851 'feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final ' +
13852 'finish first first_value fixed flash_cache flashback floor flush following follows for forall force ' +
13853 'form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ' +
13854 'ftp full function g general generated get get_format get_lock getdate getutcdate global global_name ' +
13855 'globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups ' +
13856 'gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex ' +
13857 'hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified ' +
13858 'identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment ' +
13859 'index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile ' +
13860 'initial initialized initially initrans inmemory inner innodb input insert install instance instantiable ' +
13861 'instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat ' +
13862 'is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists ' +
13863 'k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase ' +
13864 'lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit ' +
13865 'lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate ' +
13866 'locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call ' +
13867 'logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime ' +
13868 'managed management manual map mapping mask master master_pos_wait match matched materialized max ' +
13869 'maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans ' +
13870 'md5 measures median medium member memcompress memory merge microsecond mid migration min minextents ' +
13871 'minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month ' +
13872 'months mount move movement multiset mutex n name name_const names nan national native natural nav nchar ' +
13873 'nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile ' +
13874 'nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile ' +
13875 'nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder ' +
13876 'nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck ' +
13877 'noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe ' +
13878 'nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ' +
13879 'ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old ' +
13880 'on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date ' +
13881 'oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary ' +
13882 'out outer outfile outline output over overflow overriding p package pad parallel parallel_enable ' +
13883 'parameters parent parse partial partition partitions pascal passing password password_grace_time ' +
13884 'password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex ' +
13885 'pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc ' +
13886 'performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin ' +
13887 'policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction ' +
13888 'prediction_cost prediction_details prediction_probability prediction_set prepare present preserve ' +
13889 'prior priority private private_sga privileges procedural procedure procedure_analyze processlist ' +
13890 'profiles project prompt protection public publishingservername purge quarter query quick quiesce quota ' +
13891 'quotename radians raise rand range rank raw read reads readsize rebuild record records ' +
13892 'recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh ' +
13893 'regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy ' +
13894 'reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename ' +
13895 'repair repeat replace replicate replication required reset resetlogs resize resource respect restore ' +
13896 'restricted result result_cache resumable resume retention return returning returns reuse reverse revoke ' +
13897 'right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows ' +
13898 'rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll ' +
13899 'sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select ' +
13900 'self sequence sequential serializable server servererror session session_user sessions_per_user set ' +
13901 'sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor ' +
13902 'si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin ' +
13903 'size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex ' +
13904 'source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows ' +
13905 'sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone ' +
13906 'standby start starting startup statement static statistics stats_binomial_test stats_crosstab ' +
13907 'stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep ' +
13908 'stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev ' +
13909 'stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate ' +
13910 'subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum ' +
13911 'suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate ' +
13912 'sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo ' +
13913 'template temporary terminated tertiary_weights test than then thread through tier ties time time_format ' +
13914 'time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr ' +
13915 'timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking ' +
13916 'transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate ' +
13917 'try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress ' +
13918 'under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot ' +
13919 'unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert ' +
13920 'url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date ' +
13921 'utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var ' +
13922 'var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray ' +
13923 'verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear ' +
13924 'wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped ' +
13925 'xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces ' +
13926 'xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek',
13927 literal:
13928 'true false null',
13929 built_in:
13930 'array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number ' +
13931 'numeric real record serial serial8 smallint text varchar varying void'
13932 },
13933 contains: [
13934 {
13935 className: 'string',
13936 begin: '\'', end: '\'',
13937 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
13938 },
13939 {
13940 className: 'string',
13941 begin: '"', end: '"',
13942 contains: [hljs.BACKSLASH_ESCAPE, {begin: '""'}]
13943 },
13944 {
13945 className: 'string',
13946 begin: '`', end: '`',
13947 contains: [hljs.BACKSLASH_ESCAPE]
13948 },
13949 hljs.C_NUMBER_MODE,
13950 hljs.C_BLOCK_COMMENT_MODE,
13951 COMMENT_MODE
13952 ]
13953 },
13954 hljs.C_BLOCK_COMMENT_MODE,
13955 COMMENT_MODE
13956 ]
13957 };
13958}
13959},{name:"stata",create:/*
13960Language: Stata
13961Author: Brian Quistorff <bquistorff@gmail.com>
13962Contributors: Drew McDonald <drewmcdo@gmail.com>
13963Description: Syntax highlighting for Stata code. This is a fork and modification of Drew McDonald's file (https://github.com/drewmcdonald/stata-highlighting). I have also included a list of builtin commands from https://bugs.kde.org/show_bug.cgi?id=135646.
13964Category: scientific
13965*/
13966
13967function(hljs) {
13968 return {
13969 aliases: ['do', 'ado'],
13970 case_insensitive: true,
13971 keywords: 'if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5',
13972 contains: [
13973 {
13974 className: 'symbol',
13975 begin: /`[a-zA-Z0-9_]+'/
13976 },
13977 {
13978 className: 'variable',
13979 begin: /\$\{?[a-zA-Z0-9_]+\}?/
13980 },
13981 {
13982 className: 'string',
13983 variants: [
13984 {begin: '`"[^\r\n]*?"\''},
13985 {begin: '"[^\r\n"]*"'}
13986 ]
13987 },
13988
13989 {
13990 className: 'built_in',
13991 variants: [
13992 {
13993 begin: '\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)'
13994 }
13995 ]
13996 },
13997
13998 hljs.COMMENT('^[ \t]*\\*.*$', false),
13999 hljs.C_LINE_COMMENT_MODE,
14000 hljs.C_BLOCK_COMMENT_MODE
14001 ]
14002 };
14003}
14004},{name:"step21",create:/*
14005Language: STEP Part 21 (ISO 10303-21)
14006Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
14007Description: Syntax highlighter for STEP Part 21 files (ISO 10303-21).
14008*/
14009
14010function(hljs) {
14011 var STEP21_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
14012 var STEP21_KEYWORDS = {
14013 keyword: 'HEADER ENDSEC DATA'
14014 };
14015 var STEP21_START = {
14016 className: 'meta',
14017 begin: 'ISO-10303-21;',
14018 relevance: 10
14019 };
14020 var STEP21_CLOSE = {
14021 className: 'meta',
14022 begin: 'END-ISO-10303-21;',
14023 relevance: 10
14024 };
14025
14026 return {
14027 aliases: ['p21', 'step', 'stp'],
14028 case_insensitive: true, // STEP 21 is case insensitive in theory, in practice all non-comments are capitalized.
14029 lexemes: STEP21_IDENT_RE,
14030 keywords: STEP21_KEYWORDS,
14031 contains: [
14032 STEP21_START,
14033 STEP21_CLOSE,
14034 hljs.C_LINE_COMMENT_MODE,
14035 hljs.C_BLOCK_COMMENT_MODE,
14036 hljs.COMMENT('/\\*\\*!', '\\*/'),
14037 hljs.C_NUMBER_MODE,
14038 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
14039 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
14040 {
14041 className: 'string',
14042 begin: "'", end: "'"
14043 },
14044 {
14045 className: 'symbol',
14046 variants: [
14047 {
14048 begin: '#', end: '\\d+',
14049 illegal: '\\W'
14050 }
14051 ]
14052 }
14053 ]
14054 };
14055}
14056},{name:"stylus",create:/*
14057Language: Stylus
14058Author: Bryant Williams <b.n.williams@gmail.com>
14059Description: Stylus (https://github.com/LearnBoost/stylus/)
14060Category: css
14061*/
14062
14063function(hljs) {
14064
14065 var VARIABLE = {
14066 className: 'variable',
14067 begin: '\\$' + hljs.IDENT_RE
14068 };
14069
14070 var HEX_COLOR = {
14071 className: 'number',
14072 begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'
14073 };
14074
14075 var AT_KEYWORDS = [
14076 'charset',
14077 'css',
14078 'debug',
14079 'extend',
14080 'font-face',
14081 'for',
14082 'import',
14083 'include',
14084 'media',
14085 'mixin',
14086 'page',
14087 'warn',
14088 'while'
14089 ];
14090
14091 var PSEUDO_SELECTORS = [
14092 'after',
14093 'before',
14094 'first-letter',
14095 'first-line',
14096 'active',
14097 'first-child',
14098 'focus',
14099 'hover',
14100 'lang',
14101 'link',
14102 'visited'
14103 ];
14104
14105 var TAGS = [
14106 'a',
14107 'abbr',
14108 'address',
14109 'article',
14110 'aside',
14111 'audio',
14112 'b',
14113 'blockquote',
14114 'body',
14115 'button',
14116 'canvas',
14117 'caption',
14118 'cite',
14119 'code',
14120 'dd',
14121 'del',
14122 'details',
14123 'dfn',
14124 'div',
14125 'dl',
14126 'dt',
14127 'em',
14128 'fieldset',
14129 'figcaption',
14130 'figure',
14131 'footer',
14132 'form',
14133 'h1',
14134 'h2',
14135 'h3',
14136 'h4',
14137 'h5',
14138 'h6',
14139 'header',
14140 'hgroup',
14141 'html',
14142 'i',
14143 'iframe',
14144 'img',
14145 'input',
14146 'ins',
14147 'kbd',
14148 'label',
14149 'legend',
14150 'li',
14151 'mark',
14152 'menu',
14153 'nav',
14154 'object',
14155 'ol',
14156 'p',
14157 'q',
14158 'quote',
14159 'samp',
14160 'section',
14161 'span',
14162 'strong',
14163 'summary',
14164 'sup',
14165 'table',
14166 'tbody',
14167 'td',
14168 'textarea',
14169 'tfoot',
14170 'th',
14171 'thead',
14172 'time',
14173 'tr',
14174 'ul',
14175 'var',
14176 'video'
14177 ];
14178
14179 var TAG_END = '[\\.\\s\\n\\[\\:,]';
14180
14181 var ATTRIBUTES = [
14182 'align-content',
14183 'align-items',
14184 'align-self',
14185 'animation',
14186 'animation-delay',
14187 'animation-direction',
14188 'animation-duration',
14189 'animation-fill-mode',
14190 'animation-iteration-count',
14191 'animation-name',
14192 'animation-play-state',
14193 'animation-timing-function',
14194 'auto',
14195 'backface-visibility',
14196 'background',
14197 'background-attachment',
14198 'background-clip',
14199 'background-color',
14200 'background-image',
14201 'background-origin',
14202 'background-position',
14203 'background-repeat',
14204 'background-size',
14205 'border',
14206 'border-bottom',
14207 'border-bottom-color',
14208 'border-bottom-left-radius',
14209 'border-bottom-right-radius',
14210 'border-bottom-style',
14211 'border-bottom-width',
14212 'border-collapse',
14213 'border-color',
14214 'border-image',
14215 'border-image-outset',
14216 'border-image-repeat',
14217 'border-image-slice',
14218 'border-image-source',
14219 'border-image-width',
14220 'border-left',
14221 'border-left-color',
14222 'border-left-style',
14223 'border-left-width',
14224 'border-radius',
14225 'border-right',
14226 'border-right-color',
14227 'border-right-style',
14228 'border-right-width',
14229 'border-spacing',
14230 'border-style',
14231 'border-top',
14232 'border-top-color',
14233 'border-top-left-radius',
14234 'border-top-right-radius',
14235 'border-top-style',
14236 'border-top-width',
14237 'border-width',
14238 'bottom',
14239 'box-decoration-break',
14240 'box-shadow',
14241 'box-sizing',
14242 'break-after',
14243 'break-before',
14244 'break-inside',
14245 'caption-side',
14246 'clear',
14247 'clip',
14248 'clip-path',
14249 'color',
14250 'column-count',
14251 'column-fill',
14252 'column-gap',
14253 'column-rule',
14254 'column-rule-color',
14255 'column-rule-style',
14256 'column-rule-width',
14257 'column-span',
14258 'column-width',
14259 'columns',
14260 'content',
14261 'counter-increment',
14262 'counter-reset',
14263 'cursor',
14264 'direction',
14265 'display',
14266 'empty-cells',
14267 'filter',
14268 'flex',
14269 'flex-basis',
14270 'flex-direction',
14271 'flex-flow',
14272 'flex-grow',
14273 'flex-shrink',
14274 'flex-wrap',
14275 'float',
14276 'font',
14277 'font-family',
14278 'font-feature-settings',
14279 'font-kerning',
14280 'font-language-override',
14281 'font-size',
14282 'font-size-adjust',
14283 'font-stretch',
14284 'font-style',
14285 'font-variant',
14286 'font-variant-ligatures',
14287 'font-weight',
14288 'height',
14289 'hyphens',
14290 'icon',
14291 'image-orientation',
14292 'image-rendering',
14293 'image-resolution',
14294 'ime-mode',
14295 'inherit',
14296 'initial',
14297 'justify-content',
14298 'left',
14299 'letter-spacing',
14300 'line-height',
14301 'list-style',
14302 'list-style-image',
14303 'list-style-position',
14304 'list-style-type',
14305 'margin',
14306 'margin-bottom',
14307 'margin-left',
14308 'margin-right',
14309 'margin-top',
14310 'marks',
14311 'mask',
14312 'max-height',
14313 'max-width',
14314 'min-height',
14315 'min-width',
14316 'nav-down',
14317 'nav-index',
14318 'nav-left',
14319 'nav-right',
14320 'nav-up',
14321 'none',
14322 'normal',
14323 'object-fit',
14324 'object-position',
14325 'opacity',
14326 'order',
14327 'orphans',
14328 'outline',
14329 'outline-color',
14330 'outline-offset',
14331 'outline-style',
14332 'outline-width',
14333 'overflow',
14334 'overflow-wrap',
14335 'overflow-x',
14336 'overflow-y',
14337 'padding',
14338 'padding-bottom',
14339 'padding-left',
14340 'padding-right',
14341 'padding-top',
14342 'page-break-after',
14343 'page-break-before',
14344 'page-break-inside',
14345 'perspective',
14346 'perspective-origin',
14347 'pointer-events',
14348 'position',
14349 'quotes',
14350 'resize',
14351 'right',
14352 'tab-size',
14353 'table-layout',
14354 'text-align',
14355 'text-align-last',
14356 'text-decoration',
14357 'text-decoration-color',
14358 'text-decoration-line',
14359 'text-decoration-style',
14360 'text-indent',
14361 'text-overflow',
14362 'text-rendering',
14363 'text-shadow',
14364 'text-transform',
14365 'text-underline-position',
14366 'top',
14367 'transform',
14368 'transform-origin',
14369 'transform-style',
14370 'transition',
14371 'transition-delay',
14372 'transition-duration',
14373 'transition-property',
14374 'transition-timing-function',
14375 'unicode-bidi',
14376 'vertical-align',
14377 'visibility',
14378 'white-space',
14379 'widows',
14380 'width',
14381 'word-break',
14382 'word-spacing',
14383 'word-wrap',
14384 'z-index'
14385 ];
14386
14387 // illegals
14388 var ILLEGAL = [
14389 '\\{',
14390 '\\}',
14391 '\\?',
14392 '(\\bReturn\\b)', // monkey
14393 '(\\bEnd\\b)', // monkey
14394 '(\\bend\\b)', // vbscript
14395 ';', // sql
14396 '#\\s', // markdown
14397 '\\*\\s', // markdown
14398 '===\\s', // markdown
14399 '\\|',
14400 '%', // prolog
14401 ];
14402
14403 return {
14404 aliases: ['styl'],
14405 case_insensitive: false,
14406 illegal: '(' + ILLEGAL.join('|') + ')',
14407 keywords: 'if else for in',
14408 contains: [
14409
14410 // strings
14411 hljs.QUOTE_STRING_MODE,
14412 hljs.APOS_STRING_MODE,
14413
14414 // comments
14415 hljs.C_LINE_COMMENT_MODE,
14416 hljs.C_BLOCK_COMMENT_MODE,
14417
14418 // hex colors
14419 HEX_COLOR,
14420
14421 // class tag
14422 {
14423 begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
14424 returnBegin: true,
14425 contains: [
14426 {className: 'selector-class', begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*'}
14427 ]
14428 },
14429
14430 // id tag
14431 {
14432 begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
14433 returnBegin: true,
14434 contains: [
14435 {className: 'selector-id', begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*'}
14436 ]
14437 },
14438
14439 // tags
14440 {
14441 begin: '\\b(' + TAGS.join('|') + ')' + TAG_END,
14442 returnBegin: true,
14443 contains: [
14444 {className: 'selector-tag', begin: '\\b[a-zA-Z][a-zA-Z0-9_-]*'}
14445 ]
14446 },
14447
14448 // psuedo selectors
14449 {
14450 begin: '&?:?:\\b(' + PSEUDO_SELECTORS.join('|') + ')' + TAG_END
14451 },
14452
14453 // @ keywords
14454 {
14455 begin: '\@(' + AT_KEYWORDS.join('|') + ')\\b'
14456 },
14457
14458 // variables
14459 VARIABLE,
14460
14461 // dimension
14462 hljs.CSS_NUMBER_MODE,
14463
14464 // number
14465 hljs.NUMBER_MODE,
14466
14467 // functions
14468 // - only from beginning of line + whitespace
14469 {
14470 className: 'function',
14471 begin: '^[a-zA-Z][a-zA-Z0-9_\-]*\\(.*\\)',
14472 illegal: '[\\n]',
14473 returnBegin: true,
14474 contains: [
14475 {className: 'title', begin: '\\b[a-zA-Z][a-zA-Z0-9_\-]*'},
14476 {
14477 className: 'params',
14478 begin: /\(/,
14479 end: /\)/,
14480 contains: [
14481 HEX_COLOR,
14482 VARIABLE,
14483 hljs.APOS_STRING_MODE,
14484 hljs.CSS_NUMBER_MODE,
14485 hljs.NUMBER_MODE,
14486 hljs.QUOTE_STRING_MODE
14487 ]
14488 }
14489 ]
14490 },
14491
14492 // attributes
14493 // - only from beginning of line + whitespace
14494 // - must have whitespace after it
14495 {
14496 className: 'attribute',
14497 begin: '\\b(' + ATTRIBUTES.reverse().join('|') + ')\\b'
14498 }
14499 ]
14500 };
14501}
14502},{name:"swift",create:/*
14503Language: Swift
14504Author: Chris Eidhof <chris@eidhof.nl>
14505Contributors: Nate Cook <natecook@gmail.com>
14506Category: system
14507*/
14508
14509
14510function(hljs) {
14511 var SWIFT_KEYWORDS = {
14512 keyword: '__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity ' +
14513 'break case catch class continue convenience default defer deinit didSet do ' +
14514 'dynamic dynamicType else enum extension fallthrough false final for func ' +
14515 'get guard if import in indirect infix init inout internal is lazy left let ' +
14516 'mutating nil none nonmutating operator optional override postfix precedence ' +
14517 'prefix private protocol Protocol public repeat required rethrows return ' +
14518 'right self Self set static struct subscript super switch throw throws true ' +
14519 'try try! try? Type typealias unowned var weak where while willSet',
14520 literal: 'true false nil',
14521 built_in: 'abs advance alignof alignofValue anyGenerator assert assertionFailure ' +
14522 'bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC ' +
14523 'bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros ' +
14524 'debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords ' +
14525 'enumerate equal fatalError filter find getBridgedObjectiveCType getVaList ' +
14526 'indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC ' +
14527 'isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare ' +
14528 'map max maxElement min minElement numericCast overlaps partition posix ' +
14529 'precondition preconditionFailure print println quickSort readLine reduce reflect ' +
14530 'reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split ' +
14531 'startsWith stride strideof strideofValue swap toString transcode ' +
14532 'underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap ' +
14533 'unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer ' +
14534 'withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers ' +
14535 'withUnsafePointer withUnsafePointers withVaList zip'
14536 };
14537
14538 var TYPE = {
14539 className: 'type',
14540 begin: '\\b[A-Z][\\w\']*',
14541 relevance: 0
14542 };
14543 var BLOCK_COMMENT = hljs.COMMENT(
14544 '/\\*',
14545 '\\*/',
14546 {
14547 contains: ['self']
14548 }
14549 );
14550 var SUBST = {
14551 className: 'subst',
14552 begin: /\\\(/, end: '\\)',
14553 keywords: SWIFT_KEYWORDS,
14554 contains: [] // assigned later
14555 };
14556 var NUMBERS = {
14557 className: 'number',
14558 begin: '\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b',
14559 relevance: 0
14560 };
14561 var QUOTE_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, {
14562 contains: [SUBST, hljs.BACKSLASH_ESCAPE]
14563 });
14564 SUBST.contains = [NUMBERS];
14565
14566 return {
14567 keywords: SWIFT_KEYWORDS,
14568 contains: [
14569 QUOTE_STRING_MODE,
14570 hljs.C_LINE_COMMENT_MODE,
14571 BLOCK_COMMENT,
14572 TYPE,
14573 NUMBERS,
14574 {
14575 className: 'function',
14576 beginKeywords: 'func', end: '{', excludeEnd: true,
14577 contains: [
14578 hljs.inherit(hljs.TITLE_MODE, {
14579 begin: /[A-Za-z$_][0-9A-Za-z$_]*/,
14580 illegal: /\(/
14581 }),
14582 {
14583 begin: /</, end: />/,
14584 illegal: />/
14585 },
14586 {
14587 className: 'params',
14588 begin: /\(/, end: /\)/, endsParent: true,
14589 keywords: SWIFT_KEYWORDS,
14590 contains: [
14591 'self',
14592 NUMBERS,
14593 QUOTE_STRING_MODE,
14594 hljs.C_BLOCK_COMMENT_MODE,
14595 {begin: ':'} // relevance booster
14596 ],
14597 illegal: /["']/
14598 }
14599 ],
14600 illegal: /\[|%/
14601 },
14602 {
14603 className: 'class',
14604 beginKeywords: 'struct protocol class extension enum',
14605 keywords: SWIFT_KEYWORDS,
14606 end: '\\{',
14607 excludeEnd: true,
14608 contains: [
14609 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/})
14610 ]
14611 },
14612 {
14613 className: 'meta', // @attributes
14614 begin: '(@warn_unused_result|@exported|@lazy|@noescape|' +
14615 '@NSCopying|@NSManaged|@objc|@convention|@required|' +
14616 '@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|' +
14617 '@infix|@prefix|@postfix|@autoclosure|@testable|@available|' +
14618 '@nonobjc|@NSApplicationMain|@UIApplicationMain)'
14619
14620 },
14621 {
14622 beginKeywords: 'import', end: /$/,
14623 contains: [hljs.C_LINE_COMMENT_MODE, BLOCK_COMMENT]
14624 }
14625 ]
14626 };
14627}
14628},{name:"tcl",create:/*
14629Language: Tcl
14630Author: Radek Liska <radekliska@gmail.com>
14631*/
14632
14633function(hljs) {
14634 return {
14635 aliases: ['tk'],
14636 keywords: 'after append apply array auto_execok auto_import auto_load auto_mkindex ' +
14637 'auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock ' +
14638 'close concat continue dde dict encoding eof error eval exec exit expr fblocked ' +
14639 'fconfigure fcopy file fileevent filename flush for foreach format gets glob global ' +
14640 'history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list ' +
14641 'llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 '+
14642 'mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex '+
14643 'platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename '+
14644 'return safe scan seek set socket source split string subst switch tcl_endOfWord '+
14645 'tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter '+
14646 'tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update '+
14647 'uplevel upvar variable vwait while',
14648 contains: [
14649 hljs.COMMENT(';[ \\t]*#', '$'),
14650 hljs.COMMENT('^[ \\t]*#', '$'),
14651 {
14652 beginKeywords: 'proc',
14653 end: '[\\{]',
14654 excludeEnd: true,
14655 contains: [
14656 {
14657 className: 'title',
14658 begin: '[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
14659 end: '[ \\t\\n\\r]',
14660 endsWithParent: true,
14661 excludeEnd: true
14662 }
14663 ]
14664 },
14665 {
14666 excludeEnd: true,
14667 variants: [
14668 {
14669 begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)',
14670 end: '[^a-zA-Z0-9_\\}\\$]'
14671 },
14672 {
14673 begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
14674 end: '(\\))?[^a-zA-Z0-9_\\}\\$]'
14675 }
14676 ]
14677 },
14678 {
14679 className: 'string',
14680 contains: [hljs.BACKSLASH_ESCAPE],
14681 variants: [
14682 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
14683 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
14684 ]
14685 },
14686 {
14687 className: 'number',
14688 variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
14689 }
14690 ]
14691 }
14692}
14693},{name:"tex",create:/*
14694Language: TeX
14695Author: Vladimir Moskva <vladmos@gmail.com>
14696Website: http://fulc.ru/
14697Category: markup
14698*/
14699
14700function(hljs) {
14701 var COMMAND = {
14702 className: 'tag',
14703 begin: /\\/,
14704 relevance: 0,
14705 contains: [
14706 {
14707 className: 'name',
14708 variants: [
14709 {begin: /[a-zA-Zะฐ-ัะ-ั]+[*]?/},
14710 {begin: /[^a-zA-Zะฐ-ัะ-ั0-9]/}
14711 ],
14712 starts: {
14713 endsWithParent: true,
14714 relevance: 0,
14715 contains: [
14716 {
14717 className: 'string', // because it looks like attributes in HTML tags
14718 variants: [
14719 {begin: /\[/, end: /\]/},
14720 {begin: /\{/, end: /\}/}
14721 ]
14722 },
14723 {
14724 begin: /\s*=\s*/, endsWithParent: true,
14725 relevance: 0,
14726 contains: [
14727 {
14728 className: 'number',
14729 begin: /-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/
14730 }
14731 ]
14732 }
14733 ]
14734 }
14735 }
14736 ]
14737 };
14738
14739 return {
14740 contains: [
14741 COMMAND,
14742 {
14743 className: 'formula',
14744 contains: [COMMAND],
14745 relevance: 0,
14746 variants: [
14747 {begin: /\$\$/, end: /\$\$/},
14748 {begin: /\$/, end: /\$/}
14749 ]
14750 },
14751 hljs.COMMENT(
14752 '%',
14753 '$',
14754 {
14755 relevance: 0
14756 }
14757 )
14758 ]
14759 };
14760}
14761},{name:"thrift",create:/*
14762Language: Thrift
14763Author: Oleg Efimov <efimovov@gmail.com>
14764Description: Thrift message definition format
14765Category: protocols
14766*/
14767
14768function(hljs) {
14769 var BUILT_IN_TYPES = 'bool byte i16 i32 i64 double string binary';
14770 return {
14771 keywords: {
14772 keyword:
14773 'namespace const typedef struct enum service exception void oneway set list map required optional',
14774 built_in:
14775 BUILT_IN_TYPES,
14776 literal:
14777 'true false'
14778 },
14779 contains: [
14780 hljs.QUOTE_STRING_MODE,
14781 hljs.NUMBER_MODE,
14782 hljs.C_LINE_COMMENT_MODE,
14783 hljs.C_BLOCK_COMMENT_MODE,
14784 {
14785 className: 'class',
14786 beginKeywords: 'struct enum service exception', end: /\{/,
14787 illegal: /\n/,
14788 contains: [
14789 hljs.inherit(hljs.TITLE_MODE, {
14790 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
14791 })
14792 ]
14793 },
14794 {
14795 begin: '\\b(set|list|map)\\s*<', end: '>',
14796 keywords: BUILT_IN_TYPES,
14797 contains: ['self']
14798 }
14799 ]
14800 };
14801}
14802},{name:"tp",create:/*
14803Language: TP
14804Author: Jay Strybis <jay.strybis@gmail.com>
14805Description: FANUC TP programming language (TPP).
14806*/
14807
14808
14809function(hljs) {
14810 var TPID = {
14811 className: 'number',
14812 begin: '[1-9][0-9]*', /* no leading zeros */
14813 relevance: 0
14814 };
14815 var TPLABEL = {
14816 className: 'symbol',
14817 begin: ':[^\\]]+'
14818 };
14819 var TPDATA = {
14820 className: 'built_in',
14821 begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|\
14822 TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[', end: '\\]',
14823 contains: [
14824 'self',
14825 TPID,
14826 TPLABEL
14827 ]
14828 };
14829 var TPIO = {
14830 className: 'built_in',
14831 begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[', end: '\\]',
14832 contains: [
14833 'self',
14834 TPID,
14835 hljs.QUOTE_STRING_MODE, /* for pos section at bottom */
14836 TPLABEL
14837 ]
14838 };
14839
14840 return {
14841 keywords: {
14842 keyword:
14843 'ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB ' +
14844 'DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC ' +
14845 'IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE ' +
14846 'PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET ' +
14847 'Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN ' +
14848 'SUBSTR FINDSTR VOFFSET PROG ATTR MN POS',
14849 literal:
14850 'ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET'
14851 },
14852 contains: [
14853 TPDATA,
14854 TPIO,
14855 {
14856 className: 'keyword',
14857 begin: '/(PROG|ATTR|MN|POS|END)\\b'
14858 },
14859 {
14860 /* this is for cases like ,CALL */
14861 className: 'keyword',
14862 begin: '(CALL|RUN|POINT_LOGIC|LBL)\\b'
14863 },
14864 {
14865 /* this is for cases like CNT100 where the default lexemes do not
14866 * separate the keyword and the number */
14867 className: 'keyword',
14868 begin: '\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)'
14869 },
14870 {
14871 /* to catch numbers that do not have a word boundary on the left */
14872 className: 'number',
14873 begin: '\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b',
14874 relevance: 0
14875 },
14876 hljs.COMMENT('//', '[;$]'),
14877 hljs.COMMENT('!', '[;$]'),
14878 hljs.COMMENT('--eg:', '$'),
14879 hljs.QUOTE_STRING_MODE,
14880 {
14881 className: 'string',
14882 begin: '\'', end: '\''
14883 },
14884 hljs.C_NUMBER_MODE,
14885 {
14886 className: 'variable',
14887 begin: '\\$[A-Za-z0-9_]+'
14888 }
14889 ]
14890 };
14891}
14892},{name:"twig",create:/*
14893Language: Twig
14894Requires: xml.js
14895Author: Luke Holder <lukemh@gmail.com>
14896Description: Twig is a templating language for PHP
14897Category: template
14898*/
14899
14900function(hljs) {
14901 var PARAMS = {
14902 className: 'params',
14903 begin: '\\(', end: '\\)'
14904 };
14905
14906 var FUNCTION_NAMES = 'attribute block constant cycle date dump include ' +
14907 'max min parent random range source template_from_string';
14908
14909 var FUNCTIONS = {
14910 beginKeywords: FUNCTION_NAMES,
14911 keywords: {name: FUNCTION_NAMES},
14912 relevance: 0,
14913 contains: [
14914 PARAMS
14915 ]
14916 };
14917
14918 var FILTER = {
14919 begin: /\|[A-Za-z_]+:?/,
14920 keywords:
14921 'abs batch capitalize convert_encoding date date_modify default ' +
14922 'escape first format join json_encode keys last length lower ' +
14923 'merge nl2br number_format raw replace reverse round slice sort split ' +
14924 'striptags title trim upper url_encode',
14925 contains: [
14926 FUNCTIONS
14927 ]
14928 };
14929
14930 var TAGS = 'autoescape block do embed extends filter flush for ' +
14931 'if import include macro sandbox set spaceless use verbatim';
14932
14933 TAGS = TAGS + ' ' + TAGS.split(' ').map(function(t){return 'end' + t}).join(' ');
14934
14935 return {
14936 aliases: ['craftcms'],
14937 case_insensitive: true,
14938 subLanguage: 'xml',
14939 contains: [
14940 hljs.COMMENT(/\{#/, /#}/),
14941 {
14942 className: 'template-tag',
14943 begin: /\{%/, end: /%}/,
14944 contains: [
14945 {
14946 className: 'name',
14947 begin: /\w+/,
14948 keywords: TAGS,
14949 starts: {
14950 endsWithParent: true,
14951 contains: [FILTER, FUNCTIONS],
14952 relevance: 0
14953 }
14954 }
14955 ]
14956 },
14957 {
14958 className: 'template-variable',
14959 begin: /\{\{/, end: /}}/,
14960 contains: ['self', FILTER, FUNCTIONS]
14961 }
14962 ]
14963 };
14964}
14965},{name:"typescript",create:/*
14966Language: TypeScript
14967Author: Panu Horsmalahti <panu.horsmalahti@iki.fi>
14968Description: TypeScript is a strict superset of JavaScript
14969Category: scripting
14970*/
14971
14972function(hljs) {
14973 var KEYWORDS = {
14974 keyword:
14975 'in if for while finally var new function do return void else break catch ' +
14976 'instanceof with throw case default try this switch continue typeof delete ' +
14977 'let yield const class public private protected get set super ' +
14978 'static implements enum export import declare type namespace abstract',
14979 literal:
14980 'true false null undefined NaN Infinity',
14981 built_in:
14982 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
14983 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
14984 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
14985 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
14986 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
14987 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
14988 'module console window document any number boolean string void'
14989 };
14990
14991 return {
14992 aliases: ['ts'],
14993 keywords: KEYWORDS,
14994 contains: [
14995 {
14996 className: 'meta',
14997 begin: /^\s*['"]use strict['"]/
14998 },
14999 hljs.APOS_STRING_MODE,
15000 hljs.QUOTE_STRING_MODE,
15001 { // template string
15002 className: 'string',
15003 begin: '`', end: '`',
15004 contains: [
15005 hljs.BACKSLASH_ESCAPE,
15006 {
15007 className: 'subst',
15008 begin: '\\$\\{', end: '\\}'
15009 }
15010 ]
15011 },
15012 hljs.C_LINE_COMMENT_MODE,
15013 hljs.C_BLOCK_COMMENT_MODE,
15014 {
15015 className: 'number',
15016 variants: [
15017 { begin: '\\b(0[bB][01]+)' },
15018 { begin: '\\b(0[oO][0-7]+)' },
15019 { begin: hljs.C_NUMBER_RE }
15020 ],
15021 relevance: 0
15022 },
15023 { // "value" container
15024 begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
15025 keywords: 'return throw case',
15026 contains: [
15027 hljs.C_LINE_COMMENT_MODE,
15028 hljs.C_BLOCK_COMMENT_MODE,
15029 hljs.REGEXP_MODE
15030 ],
15031 relevance: 0
15032 },
15033 {
15034 className: 'function',
15035 begin: 'function', end: /[\{;]/, excludeEnd: true,
15036 keywords: KEYWORDS,
15037 contains: [
15038 'self',
15039 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
15040 {
15041 className: 'params',
15042 begin: /\(/, end: /\)/,
15043 excludeBegin: true,
15044 excludeEnd: true,
15045 keywords: KEYWORDS,
15046 contains: [
15047 hljs.C_LINE_COMMENT_MODE,
15048 hljs.C_BLOCK_COMMENT_MODE
15049 ],
15050 illegal: /["'\(]/
15051 }
15052 ],
15053 illegal: /\[|%/,
15054 relevance: 0 // () => {} is more typical in TypeScript
15055 },
15056 {
15057 beginKeywords: 'constructor', end: /\{/, excludeEnd: true
15058 },
15059 {
15060 beginKeywords: 'module', end: /\{/, excludeEnd: true
15061 },
15062 {
15063 beginKeywords: 'interface', end: /\{/, excludeEnd: true,
15064 keywords: 'interface extends'
15065 },
15066 {
15067 begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
15068 },
15069 {
15070 begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
15071 }
15072 ]
15073 };
15074}
15075},{name:"vala",create:/*
15076Language: Vala
15077Author: Antono Vasiljev <antono.vasiljev@gmail.com>
15078Description: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.
15079*/
15080
15081function(hljs) {
15082 return {
15083 keywords: {
15084 keyword:
15085 // Value types
15086 'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +
15087 'uint16 uint32 uint64 float double bool struct enum string void ' +
15088 // Reference types
15089 'weak unowned owned ' +
15090 // Modifiers
15091 'async signal static abstract interface override ' +
15092 // Control Structures
15093 'while do for foreach else switch case break default return try catch ' +
15094 // Visibility
15095 'public private protected internal ' +
15096 // Other
15097 'using new this get set const stdout stdin stderr var',
15098 built_in:
15099 'DBus GLib CCode Gee Object',
15100 literal:
15101 'false true null'
15102 },
15103 contains: [
15104 {
15105 className: 'class',
15106 beginKeywords: 'class interface delegate namespace', end: '{', excludeEnd: true,
15107 illegal: '[^,:\\n\\s\\.]',
15108 contains: [
15109 hljs.UNDERSCORE_TITLE_MODE
15110 ]
15111 },
15112 hljs.C_LINE_COMMENT_MODE,
15113 hljs.C_BLOCK_COMMENT_MODE,
15114 {
15115 className: 'string',
15116 begin: '"""', end: '"""',
15117 relevance: 5
15118 },
15119 hljs.APOS_STRING_MODE,
15120 hljs.QUOTE_STRING_MODE,
15121 hljs.C_NUMBER_MODE,
15122 {
15123 className: 'meta',
15124 begin: '^#', end: '$',
15125 relevance: 2
15126 }
15127 ]
15128 };
15129}
15130},{name:"vbnet",create:/*
15131Language: VB.NET
15132Author: Poren Chiang <ren.chiang@gmail.com>
15133*/
15134
15135function(hljs) {
15136 return {
15137 aliases: ['vb'],
15138 case_insensitive: true,
15139 keywords: {
15140 keyword:
15141 'addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval ' + /* a-b */
15142 'call case catch class compare const continue custom declare default delegate dim distinct do ' + /* c-d */
15143 'each equals else elseif end enum erase error event exit explicit finally for friend from function ' + /* e-f */
15144 'get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue ' + /* g-i */
15145 'join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass ' + /* j-m */
15146 'namespace narrowing new next not notinheritable notoverridable ' + /* n */
15147 'of off on operator option optional or order orelse overloads overridable overrides ' + /* o */
15148 'paramarray partial preserve private property protected public ' + /* p */
15149 'raiseevent readonly redim rem removehandler resume return ' + /* r */
15150 'select set shadows shared skip static step stop structure strict sub synclock ' + /* s */
15151 'take text then throw to try unicode until using when where while widening with withevents writeonly xor', /* t-x */
15152 built_in:
15153 'boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype ' + /* b-c */
15154 'date decimal directcast double gettype getxmlnamespace iif integer long object ' + /* d-o */
15155 'sbyte short single string trycast typeof uinteger ulong ushort', /* s-u */
15156 literal:
15157 'true false nothing'
15158 },
15159 illegal: '//|{|}|endif|gosub|variant|wend', /* reserved deprecated keywords */
15160 contains: [
15161 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
15162 hljs.COMMENT(
15163 '\'',
15164 '$',
15165 {
15166 returnBegin: true,
15167 contains: [
15168 {
15169 className: 'doctag',
15170 begin: '\'\'\'|<!--|-->',
15171 contains: [hljs.PHRASAL_WORDS_MODE]
15172 },
15173 {
15174 className: 'doctag',
15175 begin: '</?', end: '>',
15176 contains: [hljs.PHRASAL_WORDS_MODE]
15177 }
15178 ]
15179 }
15180 ),
15181 hljs.C_NUMBER_MODE,
15182 {
15183 className: 'meta',
15184 begin: '#', end: '$',
15185 keywords: {'meta-keyword': 'if else elseif end region externalsource'}
15186 }
15187 ]
15188 };
15189}
15190},{name:"vbscript-html",create:/*
15191Language: VBScript in HTML
15192Requires: xml.js, vbscript.js
15193Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
15194Description: "Bridge" language defining fragments of VBScript in HTML within <% .. %>
15195Category: scripting
15196*/
15197
15198function(hljs) {
15199 return {
15200 subLanguage: 'xml',
15201 contains: [
15202 {
15203 begin: '<%', end: '%>',
15204 subLanguage: 'vbscript'
15205 }
15206 ]
15207 };
15208}
15209},{name:"vbscript",create:/*
15210Language: VBScript
15211Author: Nikita Ledyaev <lenikita@yandex.ru>
15212Contributors: Michal Gabrukiewicz <mgabru@gmail.com>
15213Category: scripting
15214*/
15215
15216function(hljs) {
15217 return {
15218 aliases: ['vbs'],
15219 case_insensitive: true,
15220 keywords: {
15221 keyword:
15222 'call class const dim do loop erase execute executeglobal exit for each next function ' +
15223 'if then else on error option explicit new private property let get public randomize ' +
15224 'redim rem select case set stop sub while wend with end to elseif is or xor and not ' +
15225 'class_initialize class_terminate default preserve in me byval byref step resume goto',
15226 built_in:
15227 'lcase month vartype instrrev ubound setlocale getobject rgb getref string ' +
15228 'weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency ' +
15229 'conversions csng timevalue second year space abs clng timeserial fixs len asc ' +
15230 'isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate ' +
15231 'instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex ' +
15232 'chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim ' +
15233 'strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion ' +
15234 'scriptengine split scriptengineminorversion cint sin datepart ltrim sqr ' +
15235 'scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw ' +
15236 'chrw regexp server response request cstr err',
15237 literal:
15238 'true false null nothing empty'
15239 },
15240 illegal: '//',
15241 contains: [
15242 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
15243 hljs.COMMENT(
15244 /'/,
15245 /$/,
15246 {
15247 relevance: 0
15248 }
15249 ),
15250 hljs.C_NUMBER_MODE
15251 ]
15252 };
15253}
15254},{name:"verilog",create:/*
15255Language: Verilog
15256Author: Jon Evans <jon@craftyjon.com>
15257Description: Verilog is a hardware description language used in electronic design automation to describe digital and mixed-signal systems. This highlighter is based on Verilog-1995.
15258*/
15259
15260function(hljs) {
15261 return {
15262 aliases: ['v'],
15263 case_insensitive: true,
15264 keywords: {
15265 keyword:
15266 'always and assign begin buf bufif0 bufif1 case casex casez cmos deassign ' +
15267 'default defparam disable edge else end endcase endfunction endmodule ' +
15268 'endprimitive endspecify endtable endtask event for force forever fork ' +
15269 'function if ifnone initial inout input join macromodule module nand ' +
15270 'negedge nmos nor not notif0 notif1 or output parameter pmos posedge ' +
15271 'primitive pulldown pullup rcmos release repeat rnmos rpmos rtran ' +
15272 'rtranif0 rtranif1 specify specparam table task timescale tran ' +
15273 'tranif0 tranif1 wait while xnor xor ' +
15274 // types
15275 'highz0 highz1 integer large medium pull0 pull1 real realtime reg ' +
15276 'scalared signed small strong0 strong1 supply0 supply0 supply1 supply1 ' +
15277 'time tri tri0 tri1 triand trior trireg vectored wand weak0 weak1 wire wor'
15278 },
15279 contains: [
15280 hljs.C_BLOCK_COMMENT_MODE,
15281 hljs.C_LINE_COMMENT_MODE,
15282 hljs.QUOTE_STRING_MODE,
15283 {
15284 className: 'number',
15285 begin: '\\b(\\d+\'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+',
15286 contains: [hljs.BACKSLASH_ESCAPE],
15287 relevance: 0
15288 },
15289 /* parameters to instances */
15290 {
15291 className: 'variable',
15292 begin: '#\\((?!parameter).+\\)'
15293 }
15294 ]
15295 }; // return
15296}
15297},{name:"vhdl",create:/*
15298Language: VHDL
15299Author: Igor Kalnitsky <igor@kalnitsky.org>
15300Contributors: Daniel C.K. Kho <daniel.kho@gmail.com>, Guillaume Savaton <guillaume.savaton@eseo.fr>
15301Description: VHDL is a hardware description language used in electronic design automation to describe digital and mixed-signal systems.
15302*/
15303
15304function(hljs) {
15305 // Regular expression for VHDL numeric literals.
15306
15307 // Decimal literal:
15308 var INTEGER_RE = '\\d(_|\\d)*';
15309 var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;
15310 var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';
15311 // Based literal:
15312 var BASED_INTEGER_RE = '\\w+';
15313 var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';
15314
15315 var NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';
15316
15317 return {
15318 case_insensitive: true,
15319 keywords: {
15320 keyword:
15321 'abs access after alias all and architecture array assert attribute begin block ' +
15322 'body buffer bus case component configuration constant context cover disconnect ' +
15323 'downto default else elsif end entity exit fairness file for force function generate ' +
15324 'generic group guarded if impure in inertial inout is label library linkage literal ' +
15325 'loop map mod nand new next nor not null of on open or others out package port ' +
15326 'postponed procedure process property protected pure range record register reject ' +
15327 'release rem report restrict restrict_guarantee return rol ror select sequence ' +
15328 'severity shared signal sla sll sra srl strong subtype then to transport type ' +
15329 'unaffected units until use variable vmode vprop vunit wait when while with xnor xor',
15330 built_in:
15331 'boolean bit character severity_level integer time delay_length natural positive ' +
15332 'string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector ' +
15333 'std_logic std_logic_vector unsigned signed boolean_vector integer_vector ' +
15334 'real_vector time_vector'
15335 },
15336 illegal: '{',
15337 contains: [
15338 hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting.
15339 hljs.COMMENT('--', '$'),
15340 hljs.QUOTE_STRING_MODE,
15341 {
15342 className: 'number',
15343 begin: NUMBER_RE,
15344 relevance: 0
15345 },
15346 {
15347 className: 'literal',
15348 begin: '\'(U|X|0|1|Z|W|L|H|-)\'',
15349 contains: [hljs.BACKSLASH_ESCAPE]
15350 },
15351 {
15352 className: 'symbol',
15353 begin: '\'[A-Za-z](_?[A-Za-z0-9])*',
15354 contains: [hljs.BACKSLASH_ESCAPE]
15355 }
15356 ]
15357 };
15358}
15359},{name:"vim",create:/*
15360Language: Vim Script
15361Author: Jun Yang <yangjvn@126.com>
15362Description: full keyword and built-in from http://vimdoc.sourceforge.net/htmldoc/
15363Category: scripting
15364*/
15365
15366function(hljs) {
15367 return {
15368 lexemes: /[!#@\w]+/,
15369 keywords: {
15370 keyword: //ex command
15371 // express version except: ! & * < = > !! # @ @@
15372 'N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope '+
15373 'cp cpf cq cr cs cst cu cuna cunme cw d|0 delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu g|0 go gr grepa gu gv ha h|0 helpf helpg helpt hi hid his i|0 ia iabc if ij il im imapc '+
15374 'ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs n|0 new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 '+
15375 'profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf q|0 quita qa r|0 rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv s|0 sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor '+
15376 'so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync t|0 tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew '+
15377 'tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up v|0 ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ '+
15378 // full version
15379 'Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload '+
15380 'bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap '+
15381 'cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor '+
15382 'endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap '+
15383 'imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview '+
15384 'lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap '+
15385 'nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext '+
15386 'ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding '+
15387 'scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace '+
15388 'startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious '+'trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew '+
15389 'vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank',
15390 built_in: //built in func
15391 'abs acos add and append argc argidx argv asin atan atan2 browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call ceil changenr char2nr cindent clearmatches col complete complete_add complete_check confirm copy cos cosh count cscope_connection cursor '+
15392 'deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists exp expand extend feedkeys filereadable filewritable filter finddir findfile float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function '+
15393 'garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getmatches getpid getpos getqflist getreg getregtype gettabvar gettabwinvar getwinposx getwinposy getwinvar glob globpath has has_key '+
15394 'haslocaldir hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert invert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime log log10 luaeval map maparg mapcheck '+
15395 'match matchadd matcharg matchdelete matchend matchlist matchstr max min mkdir mode mzeval nextnonblank nr2char or pathshorten pow prevnonblank printf pumvisible py3eval pyeval range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat '+
15396 'resolve reverse round screenattr screenchar screencol screenrow search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar setwinvar sha256 shellescape shiftwidth simplify sin '+
15397 'sinh sort soundfold spellbadword spellsuggest split sqrt str2float str2nr strchars strdisplaywidth strftime stridx string strlen strpart strridx strtrans strwidth submatch substitute synconcealed synID synIDattr '+
15398 'synIDtrans synstack system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan tanh tempname tolower toupper tr trunc type undofile undotree values virtcol visualmode wildmenumode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile xor'
15399 },
15400 illegal: /[{:]/,
15401 contains: [
15402 hljs.NUMBER_MODE,
15403 hljs.APOS_STRING_MODE,
15404 {
15405 className: 'string',
15406 // quote with escape, comment as quote
15407 begin: /"((\\")|[^"\n])*("|\n)/
15408 },
15409 {
15410 className: 'variable',
15411 begin: /[bwtglsav]:[\w\d_]*/
15412 },
15413 {
15414 className: 'function',
15415 beginKeywords: 'function function!', end: '$',
15416 relevance: 0,
15417 contains: [
15418 hljs.TITLE_MODE,
15419 {
15420 className: 'params',
15421 begin: '\\(', end: '\\)'
15422 }
15423 ]
15424 }
15425 ]
15426 };
15427}
15428},{name:"x86asm",create:/*
15429Language: Intel x86 Assembly
15430Author: innocenat <innocenat@gmail.com>
15431Description: x86 assembly language using Intel's mnemonic and NASM syntax
15432Category: assembler
15433*/
15434
15435function(hljs) {
15436 return {
15437 case_insensitive: true,
15438 lexemes: '[.%]?' + hljs.IDENT_RE,
15439 keywords: {
15440 keyword:
15441 'lock rep repe repz repne repnz xaquire xrelease bnd nobnd ' +
15442 'aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63',
15443 built_in:
15444 // Instruction pointer
15445 'ip eip rip ' +
15446 // 8-bit registers
15447 'al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ' +
15448 // 16-bit registers
15449 'ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w ' +
15450 // 32-bit registers
15451 'eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d ' +
15452 // 64-bit registers
15453 'rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 ' +
15454 // Segment registers
15455 'cs ds es fs gs ss ' +
15456 // Floating point stack registers
15457 'st st0 st1 st2 st3 st4 st5 st6 st7 ' +
15458 // MMX Registers
15459 'mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 ' +
15460 // SSE registers
15461 'xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 ' +
15462 'xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ' +
15463 // AVX registers
15464 'ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ' +
15465 'ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 ' +
15466 // AVX-512F registers
15467 'zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 ' +
15468 'zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 ' +
15469 // AVX-512F mask registers
15470 'k0 k1 k2 k3 k4 k5 k6 k7 ' +
15471 // Bound (MPX) register
15472 'bnd0 bnd1 bnd2 bnd3 ' +
15473 // Special register
15474 'cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 ' +
15475 // NASM altreg package
15476 'r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b ' +
15477 'r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d ' +
15478 'r0h r1h r2h r3h ' +
15479 'r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l ' +
15480
15481 'db dw dd dq dt ddq do dy dz ' +
15482 'resb resw resd resq rest resdq reso resy resz ' +
15483 'incbin equ times ' +
15484 'byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr',
15485
15486 meta:
15487 '%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif ' +
15488 '%if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep ' +
15489 '%endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment ' +
15490 '.nolist ' +
15491 '__FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ ' +
15492 '__UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend ' +
15493 'align alignb sectalign daz nodaz up down zero default option assume public ' +
15494
15495 'bits use16 use32 use64 default section segment absolute extern global common cpu float ' +
15496 '__utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ ' +
15497 '__float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ ' +
15498 '__Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e ' +
15499 'float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__'
15500 },
15501 contains: [
15502 hljs.COMMENT(
15503 ';',
15504 '$',
15505 {
15506 relevance: 0
15507 }
15508 ),
15509 {
15510 className: 'number',
15511 variants: [
15512 // Float number and x87 BCD
15513 {
15514 begin: '\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|' +
15515 '(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b',
15516 relevance: 0
15517 },
15518
15519 // Hex number in $
15520 { begin: '\\$[0-9][0-9A-Fa-f]*', relevance: 0 },
15521
15522 // Number in H,D,T,Q,O,B,Y suffix
15523 { begin: '\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b' },
15524
15525 // Number in X,D,T,Q,O,B,Y prefix
15526 { begin: '\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b'}
15527 ]
15528 },
15529 // Double quote string
15530 hljs.QUOTE_STRING_MODE,
15531 {
15532 className: 'string',
15533 variants: [
15534 // Single-quoted string
15535 { begin: '\'', end: '[^\\\\]\'' },
15536 // Backquoted string
15537 { begin: '`', end: '[^\\\\]`' },
15538 // Section name
15539 { begin: '\\.[A-Za-z0-9]+' }
15540 ],
15541 relevance: 0
15542 },
15543 {
15544 className: 'symbol',
15545 variants: [
15546 // Global label and local label
15547 { begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)' },
15548 // Macro-local label
15549 { begin: '^\\s*%%[A-Za-z0-9_$#@~.?]*:' }
15550 ],
15551 relevance: 0
15552 },
15553 // Macro parameter
15554 {
15555 className: 'subst',
15556 begin: '%[0-9]+',
15557 relevance: 0
15558 },
15559 // Macro parameter
15560 {
15561 className: 'subst',
15562 begin: '%!\S+',
15563 relevance: 0
15564 }
15565 ]
15566 };
15567}
15568},{name:"xl",create:/*
15569Language: XL
15570Author: Christophe de Dinechin <christophe@taodyne.com>
15571Description: An extensible programming language, based on parse tree rewriting (http://xlr.sf.net)
15572*/
15573
15574function(hljs) {
15575 var BUILTIN_MODULES =
15576 'ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo ' +
15577 'StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts';
15578
15579 var XL_KEYWORDS = {
15580 keyword:
15581 'if then else do while until for loop import with is as where when by data constant ' +
15582 'integer real text name boolean symbol infix prefix postfix block tree',
15583 literal:
15584 'true false nil',
15585 built_in:
15586 'in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin ' +
15587 'acos atan exp expm1 log log2 log10 log1p pi at text_length text_range ' +
15588 'text_find text_replace contains page slide basic_slide title_slide ' +
15589 'title subtitle fade_in fade_out fade_at clear_color color line_color ' +
15590 'line_width texture_wrap texture_transform texture scale_?x scale_?y ' +
15591 'scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y ' +
15592 'rotate_?z? rectangle circle ellipse sphere path line_to move_to ' +
15593 'quad_to curve_to theme background contents locally time mouse_?x ' +
15594 'mouse_?y mouse_buttons ' +
15595 BUILTIN_MODULES
15596 };
15597
15598 var DOUBLE_QUOTE_TEXT = {
15599 className: 'string',
15600 begin: '"', end: '"', illegal: '\\n'
15601 };
15602 var SINGLE_QUOTE_TEXT = {
15603 className: 'string',
15604 begin: '\'', end: '\'', illegal: '\\n'
15605 };
15606 var LONG_TEXT = {
15607 className: 'string',
15608 begin: '<<', end: '>>'
15609 };
15610 var BASED_NUMBER = {
15611 className: 'number',
15612 begin: '[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?'
15613 };
15614 var IMPORT = {
15615 beginKeywords: 'import', end: '$',
15616 keywords: XL_KEYWORDS,
15617 contains: [DOUBLE_QUOTE_TEXT]
15618 };
15619 var FUNCTION_DEFINITION = {
15620 className: 'function',
15621 begin: /[a-z][^\n]*->/, returnBegin: true, end: /->/,
15622 contains: [
15623 hljs.inherit(hljs.TITLE_MODE, {starts: {
15624 endsWithParent: true,
15625 keywords: XL_KEYWORDS
15626 }})
15627 ]
15628 };
15629 return {
15630 aliases: ['tao'],
15631 lexemes: /[a-zA-Z][a-zA-Z0-9_?]*/,
15632 keywords: XL_KEYWORDS,
15633 contains: [
15634 hljs.C_LINE_COMMENT_MODE,
15635 hljs.C_BLOCK_COMMENT_MODE,
15636 DOUBLE_QUOTE_TEXT,
15637 SINGLE_QUOTE_TEXT,
15638 LONG_TEXT,
15639 FUNCTION_DEFINITION,
15640 IMPORT,
15641 BASED_NUMBER,
15642 hljs.NUMBER_MODE
15643 ]
15644 };
15645}
15646},{name:"xml",create:/*
15647Language: HTML, XML
15648Category: common
15649*/
15650
15651function(hljs) {
15652 var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+';
15653 var PHP = {
15654 begin: /<\?(php)?(?!\w)/, end: /\?>/,
15655 subLanguage: 'php'
15656 };
15657 var TAG_INTERNALS = {
15658 endsWithParent: true,
15659 illegal: /</,
15660 relevance: 0,
15661 contains: [
15662 PHP,
15663 {
15664 className: 'attr',
15665 begin: XML_IDENT_RE,
15666 relevance: 0
15667 },
15668 {
15669 begin: '=',
15670 relevance: 0,
15671 contains: [
15672 {
15673 className: 'string',
15674 contains: [PHP],
15675 variants: [
15676 {begin: /"/, end: /"/},
15677 {begin: /'/, end: /'/},
15678 {begin: /[^\s\/>]+/}
15679 ]
15680 }
15681 ]
15682 }
15683 ]
15684 };
15685 return {
15686 aliases: ['html', 'xhtml', 'rss', 'atom', 'xsl', 'plist'],
15687 case_insensitive: true,
15688 contains: [
15689 {
15690 className: 'meta',
15691 begin: '<!DOCTYPE', end: '>',
15692 relevance: 10,
15693 contains: [{begin: '\\[', end: '\\]'}]
15694 },
15695 hljs.COMMENT(
15696 '<!--',
15697 '-->',
15698 {
15699 relevance: 10
15700 }
15701 ),
15702 {
15703 begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
15704 relevance: 10
15705 },
15706 {
15707 className: 'tag',
15708 /*
15709 The lookahead pattern (?=...) ensures that 'begin' only matches
15710 '<style' as a single word, followed by a whitespace or an
15711 ending braket. The '$' is needed for the lexeme to be recognized
15712 by hljs.subMode() that tests lexemes outside the stream.
15713 */
15714 begin: '<style(?=\\s|>|$)', end: '>',
15715 keywords: {name: 'style'},
15716 contains: [TAG_INTERNALS],
15717 starts: {
15718 end: '</style>', returnEnd: true,
15719 subLanguage: ['css', 'xml']
15720 }
15721 },
15722 {
15723 className: 'tag',
15724 // See the comment in the <style tag about the lookahead pattern
15725 begin: '<script(?=\\s|>|$)', end: '>',
15726 keywords: {name: 'script'},
15727 contains: [TAG_INTERNALS],
15728 starts: {
15729 end: '\<\/script\>', returnEnd: true,
15730 subLanguage: ['actionscript', 'javascript', 'handlebars', 'xml']
15731 }
15732 },
15733 PHP,
15734 {
15735 className: 'meta',
15736 begin: /<\?\w+/, end: /\?>/,
15737 relevance: 10
15738 },
15739 {
15740 className: 'tag',
15741 begin: '</?', end: '/?>',
15742 contains: [
15743 {
15744 className: 'name', begin: /[^\/><\s]+/, relevance: 0
15745 },
15746 TAG_INTERNALS
15747 ]
15748 }
15749 ]
15750 };
15751}
15752},{name:"xquery",create:/*
15753Language: XQuery
15754Author: Dirk Kirsten <dk@basex.org>
15755Description: Supports XQuery 3.1 including XQuery Update 3, so also XPath (as it is a superset)
15756Category: functional
15757*/
15758
15759function(hljs) {
15760 var KEYWORDS = 'for let if while then else return where group by xquery encoding version' +
15761 'module namespace boundary-space preserve strip default collation base-uri ordering' +
15762 'copy-namespaces order declare import schema namespace function option in allowing empty' +
15763 'at tumbling window sliding window start when only end when previous next stable ascending' +
15764 'descending empty greatest least some every satisfies switch case typeswitch try catch and' +
15765 'or to union intersect instance of treat as castable cast map array delete insert into' +
15766 'replace value rename copy modify update';
15767 var LITERAL = 'false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute';
15768 var VAR = {
15769 begin: /\$[a-zA-Z0-9\-]+/,
15770 relevance: 5
15771 };
15772
15773 var NUMBER = {
15774 className: 'number',
15775 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
15776 relevance: 0
15777 };
15778
15779 var STRING = {
15780 className: 'string',
15781 variants: [
15782 {begin: /"/, end: /"/, contains: [{begin: /""/, relevance: 0}]},
15783 {begin: /'/, end: /'/, contains: [{begin: /''/, relevance: 0}]}
15784 ]
15785 };
15786
15787 var ANNOTATION = {
15788 className: 'meta',
15789 begin: '%\\w+'
15790 };
15791
15792 var COMMENT = {
15793 className: 'comment',
15794 begin: '\\(:', end: ':\\)',
15795 relevance: 10,
15796 contains: [
15797 {
15798 className: 'doctag', begin: '@\\w+'
15799 }
15800 ]
15801 };
15802
15803 var METHOD = {
15804 begin: '{', end: '}'
15805 };
15806
15807 var CONTAINS = [
15808 VAR,
15809 STRING,
15810 NUMBER,
15811 COMMENT,
15812 ANNOTATION,
15813 METHOD
15814 ];
15815 METHOD.contains = CONTAINS;
15816
15817
15818 return {
15819 aliases: ['xpath', 'xq'],
15820 case_insensitive: false,
15821 lexemes: /[a-zA-Z\$][a-zA-Z0-9_:\-]*/,
15822 illegal: /(proc)|(abstract)|(extends)|(until)|(#)/,
15823 keywords: {
15824 keyword: KEYWORDS,
15825 literal: LITERAL
15826 },
15827 contains: CONTAINS
15828 };
15829}
15830},{name:"yaml",create:/*
15831Language: YAML
15832Author: Stefan Wienert <stwienert@gmail.com>
15833Requires: ruby.js
15834Description: YAML (Yet Another Markdown Language)
15835Category: config
15836*/
15837function(hljs) {
15838 var LITERALS = {literal: '{ } true false yes no Yes No True False null'};
15839
15840 var keyPrefix = '^[ \\-]*';
15841 var keyName = '[a-zA-Z_][\\w\\-]*';
15842 var KEY = {
15843 className: 'attr',
15844 variants: [
15845 { begin: keyPrefix + keyName + ":"},
15846 { begin: keyPrefix + '"' + keyName + '"' + ":"},
15847 { begin: keyPrefix + "'" + keyName + "'" + ":"}
15848 ]
15849 };
15850
15851 var TEMPLATE_VARIABLES = {
15852 className: 'template-variable',
15853 variants: [
15854 { begin: '\{\{', end: '\}\}' }, // jinja templates Ansible
15855 { begin: '%\{', end: '\}' } // Ruby i18n
15856 ]
15857 };
15858 var STRING = {
15859 className: 'string',
15860 relevance: 0,
15861 variants: [
15862 {begin: /'/, end: /'/},
15863 {begin: /"/, end: /"/}
15864 ],
15865 contains: [
15866 hljs.BACKSLASH_ESCAPE,
15867 TEMPLATE_VARIABLES
15868 ]
15869 };
15870
15871 return {
15872 case_insensitive: true,
15873 aliases: ['yml', 'YAML', 'yaml'],
15874 contains: [
15875 KEY,
15876 {
15877 className: 'meta',
15878 begin: '^---\s*$',
15879 relevance: 10
15880 },
15881 { // multi line string
15882 className: 'string',
15883 begin: '[\\|>] *$',
15884 returnEnd: true,
15885 contains: STRING.contains,
15886 // very simple termination: next hash key
15887 end: KEY.variants[0].begin
15888 },
15889 { // Ruby/Rails erb
15890 begin: '<%[%=-]?', end: '[%-]?%>',
15891 subLanguage: 'ruby',
15892 excludeBegin: true,
15893 excludeEnd: true,
15894 relevance: 0
15895 },
15896 { // data type
15897 className: 'type',
15898 begin: '!!' + hljs.UNDERSCORE_IDENT_RE,
15899 },
15900 { // fragment id &ref
15901 className: 'meta',
15902 begin: '&' + hljs.UNDERSCORE_IDENT_RE + '$',
15903 },
15904 { // fragment reference *ref
15905 className: 'meta',
15906 begin: '\\*' + hljs.UNDERSCORE_IDENT_RE + '$'
15907 },
15908 { // array listing
15909 className: 'bullet',
15910 begin: '^ *-',
15911 relevance: 0
15912 },
15913 STRING,
15914 hljs.HASH_COMMENT_MODE,
15915 hljs.C_NUMBER_MODE
15916 ],
15917 keywords: LITERALS
15918 };
15919}
15920},{name:"zephir",create:/*
15921 Language: Zephir
15922 Author: Oleg Efimov <efimovov@gmail.com>
15923 */
15924
15925function(hljs) {
15926 var STRING = {
15927 className: 'string',
15928 contains: [hljs.BACKSLASH_ESCAPE],
15929 variants: [
15930 {
15931 begin: 'b"', end: '"'
15932 },
15933 {
15934 begin: 'b\'', end: '\''
15935 },
15936 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
15937 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
15938 ]
15939 };
15940 var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
15941 return {
15942 aliases: ['zep'],
15943 case_insensitive: true,
15944 keywords:
15945 'and include_once list abstract global private echo interface as static endswitch ' +
15946 'array null if endwhile or const for endforeach self var let while isset public ' +
15947 'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
15948 'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
15949 'catch __METHOD__ case exception default die require __FUNCTION__ ' +
15950 'enddeclare final try switch continue endfor endif declare unset true false ' +
15951 'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
15952 'yield finally int uint long ulong char uchar double float bool boolean string' +
15953 'likely unlikely',
15954 contains: [
15955 hljs.C_LINE_COMMENT_MODE,
15956 hljs.HASH_COMMENT_MODE,
15957 hljs.COMMENT(
15958 '/\\*',
15959 '\\*/',
15960 {
15961 contains: [
15962 {
15963 className: 'doctag',
15964 begin: '@[A-Za-z]+'
15965 }
15966 ]
15967 }
15968 ),
15969 hljs.COMMENT(
15970 '__halt_compiler.+?;',
15971 false,
15972 {
15973 endsWithParent: true,
15974 keywords: '__halt_compiler',
15975 lexemes: hljs.UNDERSCORE_IDENT_RE
15976 }
15977 ),
15978 {
15979 className: 'string',
15980 begin: '<<<[\'"]?\\w+[\'"]?$', end: '^\\w+;',
15981 contains: [hljs.BACKSLASH_ESCAPE]
15982 },
15983 {
15984 // swallow composed identifiers to avoid parsing them as keywords
15985 begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
15986 },
15987 {
15988 className: 'function',
15989 beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
15990 illegal: '\\$|\\[|%',
15991 contains: [
15992 hljs.UNDERSCORE_TITLE_MODE,
15993 {
15994 className: 'params',
15995 begin: '\\(', end: '\\)',
15996 contains: [
15997 'self',
15998 hljs.C_BLOCK_COMMENT_MODE,
15999 STRING,
16000 NUMBER
16001 ]
16002 }
16003 ]
16004 },
16005 {
16006 className: 'class',
16007 beginKeywords: 'class interface', end: '{', excludeEnd: true,
16008 illegal: /[:\(\$"]/,
16009 contains: [
16010 {beginKeywords: 'extends implements'},
16011 hljs.UNDERSCORE_TITLE_MODE
16012 ]
16013 },
16014 {
16015 beginKeywords: 'namespace', end: ';',
16016 illegal: /[\.']/,
16017 contains: [hljs.UNDERSCORE_TITLE_MODE]
16018 },
16019 {
16020 beginKeywords: 'use', end: ';',
16021 contains: [hljs.UNDERSCORE_TITLE_MODE]
16022 },
16023 {
16024 begin: '=>' // No markup, just a relevance booster
16025 },
16026 STRING,
16027 NUMBER
16028 ]
16029 };
16030}
16031}]
16032 ;
16033
16034for (var i = 0; i < languages.length; ++i) {
16035 hljs.registerLanguage(languages[i].name, languages[i].create);
16036}
16037
16038module.exports = {
16039 styles: {"agate":".hljs-agate{}.hljs-agate .hljs{display:block;overflow-x:auto;padding:0.5em;background:#333;color:white;}.hljs-agate .hljs-name,.hljs-agate .hljs-strong{font-weight:bold;}.hljs-agate .hljs-code,.hljs-agate .hljs-emphasis{font-style:italic;}.hljs-agate .hljs-tag{color:#62c8f3;}.hljs-agate .hljs-variable,.hljs-agate .hljs-template-variable,.hljs-agate .hljs-selector-id,.hljs-agate .hljs-selector-class{color:#ade5fc;}.hljs-agate .hljs-string,.hljs-agate .hljs-bullet{color:#a2fca2;}.hljs-agate .hljs-type,.hljs-agate .hljs-title,.hljs-agate .hljs-section,.hljs-agate .hljs-attribute,.hljs-agate .hljs-quote,.hljs-agate .hljs-built_in,.hljs-agate .hljs-builtin-name{color:#ffa;}.hljs-agate .hljs-number,.hljs-agate .hljs-symbol,.hljs-agate .hljs-bullet{color:#d36363;}.hljs-agate .hljs-keyword,.hljs-agate .hljs-selector-tag,.hljs-agate .hljs-literal{color:#fcc28c;}.hljs-agate .hljs-comment,.hljs-agate .hljs-deletion,.hljs-agate .hljs-code{color:#888;}.hljs-agate .hljs-regexp,.hljs-agate .hljs-link{color:#c6b4f0;}.hljs-agate .hljs-meta{color:#fc9b9b;}.hljs-agate .hljs-deletion{background-color:#fc9b9b;color:#333;}.hljs-agate .hljs-addition{background-color:#a2fca2;color:#333;}.hljs-agate .hljs a{color:inherit;}.hljs-agate .hljs a:focus,.hljs-agate .hljs a:hover{color:inherit;text-decoration:underline;}","androidstudio":".hljs-androidstudio{}.hljs-androidstudio .hljs{color:#a9b7c6;background:#282b2e;display:block;overflow-x:auto;padding:0.5em;}.hljs-androidstudio .hljs-number,.hljs-androidstudio .hljs-literal,.hljs-androidstudio .hljs-symbol,.hljs-androidstudio .hljs-bullet{color:#6897BB;}.hljs-androidstudio .hljs-keyword,.hljs-androidstudio .hljs-selector-tag,.hljs-androidstudio .hljs-deletion{color:#cc7832;}.hljs-androidstudio .hljs-variable,.hljs-androidstudio .hljs-template-variable,.hljs-androidstudio .hljs-link{color:#629755;}.hljs-androidstudio .hljs-comment,.hljs-androidstudio .hljs-quote{color:#808080;}.hljs-androidstudio .hljs-meta{color:#bbb529;}.hljs-androidstudio .hljs-string,.hljs-androidstudio .hljs-attribute,.hljs-androidstudio .hljs-addition{color:#6A8759;}.hljs-androidstudio .hljs-section,.hljs-androidstudio .hljs-title,.hljs-androidstudio .hljs-type{color:#ffc66d;}.hljs-androidstudio .hljs-name,.hljs-androidstudio .hljs-selector-id,.hljs-androidstudio .hljs-selector-class{color:#e8bf6a;}.hljs-androidstudio .hljs-emphasis{font-style:italic;}.hljs-androidstudio .hljs-strong{font-weight:bold;}","arta":".hljs-arta{}.hljs-arta .hljs{display:block;overflow-x:auto;padding:0.5em;background:#222;}.hljs-arta .hljs,.hljs-arta .hljs-subst{color:#aaa;}.hljs-arta .hljs-section{color:#fff;}.hljs-arta .hljs-comment,.hljs-arta .hljs-quote,.hljs-arta .hljs-meta{color:#444;}.hljs-arta .hljs-string,.hljs-arta .hljs-symbol,.hljs-arta .hljs-bullet,.hljs-arta .hljs-regexp{color:#ffcc33;}.hljs-arta .hljs-number,.hljs-arta .hljs-addition{color:#00cc66;}.hljs-arta .hljs-built_in,.hljs-arta .hljs-builtin-name,.hljs-arta .hljs-literal,.hljs-arta .hljs-type,.hljs-arta .hljs-template-variable,.hljs-arta .hljs-attribute,.hljs-arta .hljs-link{color:#32aaee;}.hljs-arta .hljs-keyword,.hljs-arta .hljs-selector-tag,.hljs-arta .hljs-name,.hljs-arta .hljs-selector-id,.hljs-arta .hljs-selector-class{color:#6644aa;}.hljs-arta .hljs-title,.hljs-arta .hljs-variable,.hljs-arta .hljs-deletion,.hljs-arta .hljs-template-tag{color:#bb1166;}.hljs-arta .hljs-section,.hljs-arta .hljs-doctag,.hljs-arta .hljs-strong{font-weight:bold;}.hljs-arta .hljs-emphasis{font-style:italic;}","ascetic":".hljs-ascetic{}.hljs-ascetic .hljs{display:block;overflow-x:auto;padding:0.5em;background:white;color:black;}.hljs-ascetic .hljs-string,.hljs-ascetic .hljs-variable,.hljs-ascetic .hljs-template-variable,.hljs-ascetic .hljs-symbol,.hljs-ascetic .hljs-bullet,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-addition,.hljs-ascetic .hljs-attribute,.hljs-ascetic .hljs-link{color:#888;}.hljs-ascetic .hljs-comment,.hljs-ascetic .hljs-quote,.hljs-ascetic .hljs-meta,.hljs-ascetic .hljs-deletion{color:#ccc;}.hljs-ascetic .hljs-keyword,.hljs-ascetic .hljs-selector-tag,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-name,.hljs-ascetic .hljs-type,.hljs-ascetic .hljs-strong{font-weight:bold;}.hljs-ascetic .hljs-emphasis{font-style:italic;}","atelier-cave-dark":".hljs-atelier-cave-dark{}.hljs-atelier-cave-dark .hljs-comment,.hljs-atelier-cave-dark .hljs-quote{color:#7e7887;}.hljs-atelier-cave-dark .hljs-variable,.hljs-atelier-cave-dark .hljs-template-variable,.hljs-atelier-cave-dark .hljs-attribute,.hljs-atelier-cave-dark .hljs-regexp,.hljs-atelier-cave-dark .hljs-link,.hljs-atelier-cave-dark .hljs-tag,.hljs-atelier-cave-dark .hljs-name,.hljs-atelier-cave-dark .hljs-selector-id,.hljs-atelier-cave-dark .hljs-selector-class{color:#be4678;}.hljs-atelier-cave-dark .hljs-number,.hljs-atelier-cave-dark .hljs-meta,.hljs-atelier-cave-dark .hljs-built_in,.hljs-atelier-cave-dark .hljs-builtin-name,.hljs-atelier-cave-dark .hljs-literal,.hljs-atelier-cave-dark .hljs-type,.hljs-atelier-cave-dark .hljs-params{color:#aa573c;}.hljs-atelier-cave-dark .hljs-string,.hljs-atelier-cave-dark .hljs-symbol,.hljs-atelier-cave-dark .hljs-bullet{color:#2a9292;}.hljs-atelier-cave-dark .hljs-title,.hljs-atelier-cave-dark .hljs-section{color:#576ddb;}.hljs-atelier-cave-dark .hljs-keyword,.hljs-atelier-cave-dark .hljs-selector-tag{color:#955ae7;}.hljs-atelier-cave-dark .hljs-deletion,.hljs-atelier-cave-dark .hljs-addition{color:#19171c;display:inline-block;width:100%;}.hljs-atelier-cave-dark .hljs-deletion{background-color:#be4678;}.hljs-atelier-cave-dark .hljs-addition{background-color:#2a9292;}.hljs-atelier-cave-dark .hljs{display:block;overflow-x:auto;background:#19171c;color:#8b8792;padding:0.5em;}.hljs-atelier-cave-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-cave-dark .hljs-strong{font-weight:bold;}","atelier-cave-light":".hljs-atelier-cave-light{}.hljs-atelier-cave-light .hljs-comment,.hljs-atelier-cave-light .hljs-quote{color:#655f6d;}.hljs-atelier-cave-light .hljs-variable,.hljs-atelier-cave-light .hljs-template-variable,.hljs-atelier-cave-light .hljs-attribute,.hljs-atelier-cave-light .hljs-tag,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-regexp,.hljs-atelier-cave-light .hljs-link,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-selector-id,.hljs-atelier-cave-light .hljs-selector-class{color:#be4678;}.hljs-atelier-cave-light .hljs-number,.hljs-atelier-cave-light .hljs-meta,.hljs-atelier-cave-light .hljs-built_in,.hljs-atelier-cave-light .hljs-builtin-name,.hljs-atelier-cave-light .hljs-literal,.hljs-atelier-cave-light .hljs-type,.hljs-atelier-cave-light .hljs-params{color:#aa573c;}.hljs-atelier-cave-light .hljs-string,.hljs-atelier-cave-light .hljs-symbol,.hljs-atelier-cave-light .hljs-bullet{color:#2a9292;}.hljs-atelier-cave-light .hljs-title,.hljs-atelier-cave-light .hljs-section{color:#576ddb;}.hljs-atelier-cave-light .hljs-keyword,.hljs-atelier-cave-light .hljs-selector-tag{color:#955ae7;}.hljs-atelier-cave-light .hljs-deletion,.hljs-atelier-cave-light .hljs-addition{color:#19171c;display:inline-block;width:100%;}.hljs-atelier-cave-light .hljs-deletion{background-color:#be4678;}.hljs-atelier-cave-light .hljs-addition{background-color:#2a9292;}.hljs-atelier-cave-light .hljs{display:block;overflow-x:auto;background:#efecf4;color:#585260;padding:0.5em;}.hljs-atelier-cave-light .hljs-emphasis{font-style:italic;}.hljs-atelier-cave-light .hljs-strong{font-weight:bold;}","atelier-dune-dark":".hljs-atelier-dune-dark{}.hljs-atelier-dune-dark .hljs-comment,.hljs-atelier-dune-dark .hljs-quote{color:#999580;}.hljs-atelier-dune-dark .hljs-variable,.hljs-atelier-dune-dark .hljs-template-variable,.hljs-atelier-dune-dark .hljs-attribute,.hljs-atelier-dune-dark .hljs-tag,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-regexp,.hljs-atelier-dune-dark .hljs-link,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-selector-id,.hljs-atelier-dune-dark .hljs-selector-class{color:#d73737;}.hljs-atelier-dune-dark .hljs-number,.hljs-atelier-dune-dark .hljs-meta,.hljs-atelier-dune-dark .hljs-built_in,.hljs-atelier-dune-dark .hljs-builtin-name,.hljs-atelier-dune-dark .hljs-literal,.hljs-atelier-dune-dark .hljs-type,.hljs-atelier-dune-dark .hljs-params{color:#b65611;}.hljs-atelier-dune-dark .hljs-string,.hljs-atelier-dune-dark .hljs-symbol,.hljs-atelier-dune-dark .hljs-bullet{color:#60ac39;}.hljs-atelier-dune-dark .hljs-title,.hljs-atelier-dune-dark .hljs-section{color:#6684e1;}.hljs-atelier-dune-dark .hljs-keyword,.hljs-atelier-dune-dark .hljs-selector-tag{color:#b854d4;}.hljs-atelier-dune-dark .hljs{display:block;overflow-x:auto;background:#20201d;color:#a6a28c;padding:0.5em;}.hljs-atelier-dune-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-dune-dark .hljs-strong{font-weight:bold;}","atelier-dune-light":".hljs-atelier-dune-light{}.hljs-atelier-dune-light .hljs-comment,.hljs-atelier-dune-light .hljs-quote{color:#7d7a68;}.hljs-atelier-dune-light .hljs-variable,.hljs-atelier-dune-light .hljs-template-variable,.hljs-atelier-dune-light .hljs-attribute,.hljs-atelier-dune-light .hljs-tag,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-regexp,.hljs-atelier-dune-light .hljs-link,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-selector-id,.hljs-atelier-dune-light .hljs-selector-class{color:#d73737;}.hljs-atelier-dune-light .hljs-number,.hljs-atelier-dune-light .hljs-meta,.hljs-atelier-dune-light .hljs-built_in,.hljs-atelier-dune-light .hljs-builtin-name,.hljs-atelier-dune-light .hljs-literal,.hljs-atelier-dune-light .hljs-type,.hljs-atelier-dune-light .hljs-params{color:#b65611;}.hljs-atelier-dune-light .hljs-string,.hljs-atelier-dune-light .hljs-symbol,.hljs-atelier-dune-light .hljs-bullet{color:#60ac39;}.hljs-atelier-dune-light .hljs-title,.hljs-atelier-dune-light .hljs-section{color:#6684e1;}.hljs-atelier-dune-light .hljs-keyword,.hljs-atelier-dune-light .hljs-selector-tag{color:#b854d4;}.hljs-atelier-dune-light .hljs{display:block;overflow-x:auto;background:#fefbec;color:#6e6b5e;padding:0.5em;}.hljs-atelier-dune-light .hljs-emphasis{font-style:italic;}.hljs-atelier-dune-light .hljs-strong{font-weight:bold;}","atelier-estuary-dark":".hljs-atelier-estuary-dark{}.hljs-atelier-estuary-dark .hljs-comment,.hljs-atelier-estuary-dark .hljs-quote{color:#878573;}.hljs-atelier-estuary-dark .hljs-variable,.hljs-atelier-estuary-dark .hljs-template-variable,.hljs-atelier-estuary-dark .hljs-attribute,.hljs-atelier-estuary-dark .hljs-tag,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-regexp,.hljs-atelier-estuary-dark .hljs-link,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-selector-id,.hljs-atelier-estuary-dark .hljs-selector-class{color:#ba6236;}.hljs-atelier-estuary-dark .hljs-number,.hljs-atelier-estuary-dark .hljs-meta,.hljs-atelier-estuary-dark .hljs-built_in,.hljs-atelier-estuary-dark .hljs-builtin-name,.hljs-atelier-estuary-dark .hljs-literal,.hljs-atelier-estuary-dark .hljs-type,.hljs-atelier-estuary-dark .hljs-params{color:#ae7313;}.hljs-atelier-estuary-dark .hljs-string,.hljs-atelier-estuary-dark .hljs-symbol,.hljs-atelier-estuary-dark .hljs-bullet{color:#7d9726;}.hljs-atelier-estuary-dark .hljs-title,.hljs-atelier-estuary-dark .hljs-section{color:#36a166;}.hljs-atelier-estuary-dark .hljs-keyword,.hljs-atelier-estuary-dark .hljs-selector-tag{color:#5f9182;}.hljs-atelier-estuary-dark .hljs-deletion,.hljs-atelier-estuary-dark .hljs-addition{color:#22221b;display:inline-block;width:100%;}.hljs-atelier-estuary-dark .hljs-deletion{background-color:#ba6236;}.hljs-atelier-estuary-dark .hljs-addition{background-color:#7d9726;}.hljs-atelier-estuary-dark .hljs{display:block;overflow-x:auto;background:#22221b;color:#929181;padding:0.5em;}.hljs-atelier-estuary-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-estuary-dark .hljs-strong{font-weight:bold;}","atelier-estuary-light":".hljs-atelier-estuary-light{}.hljs-atelier-estuary-light .hljs-comment,.hljs-atelier-estuary-light .hljs-quote{color:#6c6b5a;}.hljs-atelier-estuary-light .hljs-variable,.hljs-atelier-estuary-light .hljs-template-variable,.hljs-atelier-estuary-light .hljs-attribute,.hljs-atelier-estuary-light .hljs-tag,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-regexp,.hljs-atelier-estuary-light .hljs-link,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-selector-id,.hljs-atelier-estuary-light .hljs-selector-class{color:#ba6236;}.hljs-atelier-estuary-light .hljs-number,.hljs-atelier-estuary-light .hljs-meta,.hljs-atelier-estuary-light .hljs-built_in,.hljs-atelier-estuary-light .hljs-builtin-name,.hljs-atelier-estuary-light .hljs-literal,.hljs-atelier-estuary-light .hljs-type,.hljs-atelier-estuary-light .hljs-params{color:#ae7313;}.hljs-atelier-estuary-light .hljs-string,.hljs-atelier-estuary-light .hljs-symbol,.hljs-atelier-estuary-light .hljs-bullet{color:#7d9726;}.hljs-atelier-estuary-light .hljs-title,.hljs-atelier-estuary-light .hljs-section{color:#36a166;}.hljs-atelier-estuary-light .hljs-keyword,.hljs-atelier-estuary-light .hljs-selector-tag{color:#5f9182;}.hljs-atelier-estuary-light .hljs-deletion,.hljs-atelier-estuary-light .hljs-addition{color:#22221b;display:inline-block;width:100%;}.hljs-atelier-estuary-light .hljs-deletion{background-color:#ba6236;}.hljs-atelier-estuary-light .hljs-addition{background-color:#7d9726;}.hljs-atelier-estuary-light .hljs{display:block;overflow-x:auto;background:#f4f3ec;color:#5f5e4e;padding:0.5em;}.hljs-atelier-estuary-light .hljs-emphasis{font-style:italic;}.hljs-atelier-estuary-light .hljs-strong{font-weight:bold;}","atelier-forest-dark":".hljs-atelier-forest-dark{}.hljs-atelier-forest-dark .hljs-comment,.hljs-atelier-forest-dark .hljs-quote{color:#9c9491;}.hljs-atelier-forest-dark .hljs-variable,.hljs-atelier-forest-dark .hljs-template-variable,.hljs-atelier-forest-dark .hljs-attribute,.hljs-atelier-forest-dark .hljs-tag,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-regexp,.hljs-atelier-forest-dark .hljs-link,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-selector-id,.hljs-atelier-forest-dark .hljs-selector-class{color:#f22c40;}.hljs-atelier-forest-dark .hljs-number,.hljs-atelier-forest-dark .hljs-meta,.hljs-atelier-forest-dark .hljs-built_in,.hljs-atelier-forest-dark .hljs-builtin-name,.hljs-atelier-forest-dark .hljs-literal,.hljs-atelier-forest-dark .hljs-type,.hljs-atelier-forest-dark .hljs-params{color:#df5320;}.hljs-atelier-forest-dark .hljs-string,.hljs-atelier-forest-dark .hljs-symbol,.hljs-atelier-forest-dark .hljs-bullet{color:#7b9726;}.hljs-atelier-forest-dark .hljs-title,.hljs-atelier-forest-dark .hljs-section{color:#407ee7;}.hljs-atelier-forest-dark .hljs-keyword,.hljs-atelier-forest-dark .hljs-selector-tag{color:#6666ea;}.hljs-atelier-forest-dark .hljs{display:block;overflow-x:auto;background:#1b1918;color:#a8a19f;padding:0.5em;}.hljs-atelier-forest-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-forest-dark .hljs-strong{font-weight:bold;}","atelier-forest-light":".hljs-atelier-forest-light{}.hljs-atelier-forest-light .hljs-comment,.hljs-atelier-forest-light .hljs-quote{color:#766e6b;}.hljs-atelier-forest-light .hljs-variable,.hljs-atelier-forest-light .hljs-template-variable,.hljs-atelier-forest-light .hljs-attribute,.hljs-atelier-forest-light .hljs-tag,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-regexp,.hljs-atelier-forest-light .hljs-link,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-selector-id,.hljs-atelier-forest-light .hljs-selector-class{color:#f22c40;}.hljs-atelier-forest-light .hljs-number,.hljs-atelier-forest-light .hljs-meta,.hljs-atelier-forest-light .hljs-built_in,.hljs-atelier-forest-light .hljs-builtin-name,.hljs-atelier-forest-light .hljs-literal,.hljs-atelier-forest-light .hljs-type,.hljs-atelier-forest-light .hljs-params{color:#df5320;}.hljs-atelier-forest-light .hljs-string,.hljs-atelier-forest-light .hljs-symbol,.hljs-atelier-forest-light .hljs-bullet{color:#7b9726;}.hljs-atelier-forest-light .hljs-title,.hljs-atelier-forest-light .hljs-section{color:#407ee7;}.hljs-atelier-forest-light .hljs-keyword,.hljs-atelier-forest-light .hljs-selector-tag{color:#6666ea;}.hljs-atelier-forest-light .hljs{display:block;overflow-x:auto;background:#f1efee;color:#68615e;padding:0.5em;}.hljs-atelier-forest-light .hljs-emphasis{font-style:italic;}.hljs-atelier-forest-light .hljs-strong{font-weight:bold;}","atelier-heath-dark":".hljs-atelier-heath-dark{}.hljs-atelier-heath-dark .hljs-comment,.hljs-atelier-heath-dark .hljs-quote{color:#9e8f9e;}.hljs-atelier-heath-dark .hljs-variable,.hljs-atelier-heath-dark .hljs-template-variable,.hljs-atelier-heath-dark .hljs-attribute,.hljs-atelier-heath-dark .hljs-tag,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-regexp,.hljs-atelier-heath-dark .hljs-link,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-selector-id,.hljs-atelier-heath-dark .hljs-selector-class{color:#ca402b;}.hljs-atelier-heath-dark .hljs-number,.hljs-atelier-heath-dark .hljs-meta,.hljs-atelier-heath-dark .hljs-built_in,.hljs-atelier-heath-dark .hljs-builtin-name,.hljs-atelier-heath-dark .hljs-literal,.hljs-atelier-heath-dark .hljs-type,.hljs-atelier-heath-dark .hljs-params{color:#a65926;}.hljs-atelier-heath-dark .hljs-string,.hljs-atelier-heath-dark .hljs-symbol,.hljs-atelier-heath-dark .hljs-bullet{color:#918b3b;}.hljs-atelier-heath-dark .hljs-title,.hljs-atelier-heath-dark .hljs-section{color:#516aec;}.hljs-atelier-heath-dark .hljs-keyword,.hljs-atelier-heath-dark .hljs-selector-tag{color:#7b59c0;}.hljs-atelier-heath-dark .hljs{display:block;overflow-x:auto;background:#1b181b;color:#ab9bab;padding:0.5em;}.hljs-atelier-heath-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-heath-dark .hljs-strong{font-weight:bold;}","atelier-heath-light":".hljs-atelier-heath-light{}.hljs-atelier-heath-light .hljs-comment,.hljs-atelier-heath-light .hljs-quote{color:#776977;}.hljs-atelier-heath-light .hljs-variable,.hljs-atelier-heath-light .hljs-template-variable,.hljs-atelier-heath-light .hljs-attribute,.hljs-atelier-heath-light .hljs-tag,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-regexp,.hljs-atelier-heath-light .hljs-link,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-selector-id,.hljs-atelier-heath-light .hljs-selector-class{color:#ca402b;}.hljs-atelier-heath-light .hljs-number,.hljs-atelier-heath-light .hljs-meta,.hljs-atelier-heath-light .hljs-built_in,.hljs-atelier-heath-light .hljs-builtin-name,.hljs-atelier-heath-light .hljs-literal,.hljs-atelier-heath-light .hljs-type,.hljs-atelier-heath-light .hljs-params{color:#a65926;}.hljs-atelier-heath-light .hljs-string,.hljs-atelier-heath-light .hljs-symbol,.hljs-atelier-heath-light .hljs-bullet{color:#918b3b;}.hljs-atelier-heath-light .hljs-title,.hljs-atelier-heath-light .hljs-section{color:#516aec;}.hljs-atelier-heath-light .hljs-keyword,.hljs-atelier-heath-light .hljs-selector-tag{color:#7b59c0;}.hljs-atelier-heath-light .hljs{display:block;overflow-x:auto;background:#f7f3f7;color:#695d69;padding:0.5em;}.hljs-atelier-heath-light .hljs-emphasis{font-style:italic;}.hljs-atelier-heath-light .hljs-strong{font-weight:bold;}","atelier-lakeside-dark":".hljs-atelier-lakeside-dark{}.hljs-atelier-lakeside-dark .hljs-comment,.hljs-atelier-lakeside-dark .hljs-quote{color:#7195a8;}.hljs-atelier-lakeside-dark .hljs-variable,.hljs-atelier-lakeside-dark .hljs-template-variable,.hljs-atelier-lakeside-dark .hljs-attribute,.hljs-atelier-lakeside-dark .hljs-tag,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-regexp,.hljs-atelier-lakeside-dark .hljs-link,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-selector-id,.hljs-atelier-lakeside-dark .hljs-selector-class{color:#d22d72;}.hljs-atelier-lakeside-dark .hljs-number,.hljs-atelier-lakeside-dark .hljs-meta,.hljs-atelier-lakeside-dark .hljs-built_in,.hljs-atelier-lakeside-dark .hljs-builtin-name,.hljs-atelier-lakeside-dark .hljs-literal,.hljs-atelier-lakeside-dark .hljs-type,.hljs-atelier-lakeside-dark .hljs-params{color:#935c25;}.hljs-atelier-lakeside-dark .hljs-string,.hljs-atelier-lakeside-dark .hljs-symbol,.hljs-atelier-lakeside-dark .hljs-bullet{color:#568c3b;}.hljs-atelier-lakeside-dark .hljs-title,.hljs-atelier-lakeside-dark .hljs-section{color:#257fad;}.hljs-atelier-lakeside-dark .hljs-keyword,.hljs-atelier-lakeside-dark .hljs-selector-tag{color:#6b6bb8;}.hljs-atelier-lakeside-dark .hljs{display:block;overflow-x:auto;background:#161b1d;color:#7ea2b4;padding:0.5em;}.hljs-atelier-lakeside-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-lakeside-dark .hljs-strong{font-weight:bold;}","atelier-lakeside-light":".hljs-atelier-lakeside-light{}.hljs-atelier-lakeside-light .hljs-comment,.hljs-atelier-lakeside-light .hljs-quote{color:#5a7b8c;}.hljs-atelier-lakeside-light .hljs-variable,.hljs-atelier-lakeside-light .hljs-template-variable,.hljs-atelier-lakeside-light .hljs-attribute,.hljs-atelier-lakeside-light .hljs-tag,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-regexp,.hljs-atelier-lakeside-light .hljs-link,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-selector-id,.hljs-atelier-lakeside-light .hljs-selector-class{color:#d22d72;}.hljs-atelier-lakeside-light .hljs-number,.hljs-atelier-lakeside-light .hljs-meta,.hljs-atelier-lakeside-light .hljs-built_in,.hljs-atelier-lakeside-light .hljs-builtin-name,.hljs-atelier-lakeside-light .hljs-literal,.hljs-atelier-lakeside-light .hljs-type,.hljs-atelier-lakeside-light .hljs-params{color:#935c25;}.hljs-atelier-lakeside-light .hljs-string,.hljs-atelier-lakeside-light .hljs-symbol,.hljs-atelier-lakeside-light .hljs-bullet{color:#568c3b;}.hljs-atelier-lakeside-light .hljs-title,.hljs-atelier-lakeside-light .hljs-section{color:#257fad;}.hljs-atelier-lakeside-light .hljs-keyword,.hljs-atelier-lakeside-light .hljs-selector-tag{color:#6b6bb8;}.hljs-atelier-lakeside-light .hljs{display:block;overflow-x:auto;background:#ebf8ff;color:#516d7b;padding:0.5em;}.hljs-atelier-lakeside-light .hljs-emphasis{font-style:italic;}.hljs-atelier-lakeside-light .hljs-strong{font-weight:bold;}","atelier-plateau-dark":".hljs-atelier-plateau-dark{}.hljs-atelier-plateau-dark .hljs-comment,.hljs-atelier-plateau-dark .hljs-quote{color:#7e7777;}.hljs-atelier-plateau-dark .hljs-variable,.hljs-atelier-plateau-dark .hljs-template-variable,.hljs-atelier-plateau-dark .hljs-attribute,.hljs-atelier-plateau-dark .hljs-tag,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-regexp,.hljs-atelier-plateau-dark .hljs-link,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-selector-id,.hljs-atelier-plateau-dark .hljs-selector-class{color:#ca4949;}.hljs-atelier-plateau-dark .hljs-number,.hljs-atelier-plateau-dark .hljs-meta,.hljs-atelier-plateau-dark .hljs-built_in,.hljs-atelier-plateau-dark .hljs-builtin-name,.hljs-atelier-plateau-dark .hljs-literal,.hljs-atelier-plateau-dark .hljs-type,.hljs-atelier-plateau-dark .hljs-params{color:#b45a3c;}.hljs-atelier-plateau-dark .hljs-string,.hljs-atelier-plateau-dark .hljs-symbol,.hljs-atelier-plateau-dark .hljs-bullet{color:#4b8b8b;}.hljs-atelier-plateau-dark .hljs-title,.hljs-atelier-plateau-dark .hljs-section{color:#7272ca;}.hljs-atelier-plateau-dark .hljs-keyword,.hljs-atelier-plateau-dark .hljs-selector-tag{color:#8464c4;}.hljs-atelier-plateau-dark .hljs-deletion,.hljs-atelier-plateau-dark .hljs-addition{color:#1b1818;display:inline-block;width:100%;}.hljs-atelier-plateau-dark .hljs-deletion{background-color:#ca4949;}.hljs-atelier-plateau-dark .hljs-addition{background-color:#4b8b8b;}.hljs-atelier-plateau-dark .hljs{display:block;overflow-x:auto;background:#1b1818;color:#8a8585;padding:0.5em;}.hljs-atelier-plateau-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-plateau-dark .hljs-strong{font-weight:bold;}","atelier-plateau-light":".hljs-atelier-plateau-light{}.hljs-atelier-plateau-light .hljs-comment,.hljs-atelier-plateau-light .hljs-quote{color:#655d5d;}.hljs-atelier-plateau-light .hljs-variable,.hljs-atelier-plateau-light .hljs-template-variable,.hljs-atelier-plateau-light .hljs-attribute,.hljs-atelier-plateau-light .hljs-tag,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-regexp,.hljs-atelier-plateau-light .hljs-link,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-selector-id,.hljs-atelier-plateau-light .hljs-selector-class{color:#ca4949;}.hljs-atelier-plateau-light .hljs-number,.hljs-atelier-plateau-light .hljs-meta,.hljs-atelier-plateau-light .hljs-built_in,.hljs-atelier-plateau-light .hljs-builtin-name,.hljs-atelier-plateau-light .hljs-literal,.hljs-atelier-plateau-light .hljs-type,.hljs-atelier-plateau-light .hljs-params{color:#b45a3c;}.hljs-atelier-plateau-light .hljs-string,.hljs-atelier-plateau-light .hljs-symbol,.hljs-atelier-plateau-light .hljs-bullet{color:#4b8b8b;}.hljs-atelier-plateau-light .hljs-title,.hljs-atelier-plateau-light .hljs-section{color:#7272ca;}.hljs-atelier-plateau-light .hljs-keyword,.hljs-atelier-plateau-light .hljs-selector-tag{color:#8464c4;}.hljs-atelier-plateau-light .hljs-deletion,.hljs-atelier-plateau-light .hljs-addition{color:#1b1818;display:inline-block;width:100%;}.hljs-atelier-plateau-light .hljs-deletion{background-color:#ca4949;}.hljs-atelier-plateau-light .hljs-addition{background-color:#4b8b8b;}.hljs-atelier-plateau-light .hljs{display:block;overflow-x:auto;background:#f4ecec;color:#585050;padding:0.5em;}.hljs-atelier-plateau-light .hljs-emphasis{font-style:italic;}.hljs-atelier-plateau-light .hljs-strong{font-weight:bold;}","atelier-savanna-dark":".hljs-atelier-savanna-dark{}.hljs-atelier-savanna-dark .hljs-comment,.hljs-atelier-savanna-dark .hljs-quote{color:#78877d;}.hljs-atelier-savanna-dark .hljs-variable,.hljs-atelier-savanna-dark .hljs-template-variable,.hljs-atelier-savanna-dark .hljs-attribute,.hljs-atelier-savanna-dark .hljs-tag,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-regexp,.hljs-atelier-savanna-dark .hljs-link,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-selector-id,.hljs-atelier-savanna-dark .hljs-selector-class{color:#b16139;}.hljs-atelier-savanna-dark .hljs-number,.hljs-atelier-savanna-dark .hljs-meta,.hljs-atelier-savanna-dark .hljs-built_in,.hljs-atelier-savanna-dark .hljs-builtin-name,.hljs-atelier-savanna-dark .hljs-literal,.hljs-atelier-savanna-dark .hljs-type,.hljs-atelier-savanna-dark .hljs-params{color:#9f713c;}.hljs-atelier-savanna-dark .hljs-string,.hljs-atelier-savanna-dark .hljs-symbol,.hljs-atelier-savanna-dark .hljs-bullet{color:#489963;}.hljs-atelier-savanna-dark .hljs-title,.hljs-atelier-savanna-dark .hljs-section{color:#478c90;}.hljs-atelier-savanna-dark .hljs-keyword,.hljs-atelier-savanna-dark .hljs-selector-tag{color:#55859b;}.hljs-atelier-savanna-dark .hljs-deletion,.hljs-atelier-savanna-dark .hljs-addition{color:#171c19;display:inline-block;width:100%;}.hljs-atelier-savanna-dark .hljs-deletion{background-color:#b16139;}.hljs-atelier-savanna-dark .hljs-addition{background-color:#489963;}.hljs-atelier-savanna-dark .hljs{display:block;overflow-x:auto;background:#171c19;color:#87928a;padding:0.5em;}.hljs-atelier-savanna-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-savanna-dark .hljs-strong{font-weight:bold;}","atelier-savanna-light":".hljs-atelier-savanna-light{}.hljs-atelier-savanna-light .hljs-comment,.hljs-atelier-savanna-light .hljs-quote{color:#5f6d64;}.hljs-atelier-savanna-light .hljs-variable,.hljs-atelier-savanna-light .hljs-template-variable,.hljs-atelier-savanna-light .hljs-attribute,.hljs-atelier-savanna-light .hljs-tag,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-regexp,.hljs-atelier-savanna-light .hljs-link,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-selector-id,.hljs-atelier-savanna-light .hljs-selector-class{color:#b16139;}.hljs-atelier-savanna-light .hljs-number,.hljs-atelier-savanna-light .hljs-meta,.hljs-atelier-savanna-light .hljs-built_in,.hljs-atelier-savanna-light .hljs-builtin-name,.hljs-atelier-savanna-light .hljs-literal,.hljs-atelier-savanna-light .hljs-type,.hljs-atelier-savanna-light .hljs-params{color:#9f713c;}.hljs-atelier-savanna-light .hljs-string,.hljs-atelier-savanna-light .hljs-symbol,.hljs-atelier-savanna-light .hljs-bullet{color:#489963;}.hljs-atelier-savanna-light .hljs-title,.hljs-atelier-savanna-light .hljs-section{color:#478c90;}.hljs-atelier-savanna-light .hljs-keyword,.hljs-atelier-savanna-light .hljs-selector-tag{color:#55859b;}.hljs-atelier-savanna-light .hljs-deletion,.hljs-atelier-savanna-light .hljs-addition{color:#171c19;display:inline-block;width:100%;}.hljs-atelier-savanna-light .hljs-deletion{background-color:#b16139;}.hljs-atelier-savanna-light .hljs-addition{background-color:#489963;}.hljs-atelier-savanna-light .hljs{display:block;overflow-x:auto;background:#ecf4ee;color:#526057;padding:0.5em;}.hljs-atelier-savanna-light .hljs-emphasis{font-style:italic;}.hljs-atelier-savanna-light .hljs-strong{font-weight:bold;}","atelier-seaside-dark":".hljs-atelier-seaside-dark{}.hljs-atelier-seaside-dark .hljs-comment,.hljs-atelier-seaside-dark .hljs-quote{color:#809980;}.hljs-atelier-seaside-dark .hljs-variable,.hljs-atelier-seaside-dark .hljs-template-variable,.hljs-atelier-seaside-dark .hljs-attribute,.hljs-atelier-seaside-dark .hljs-tag,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-regexp,.hljs-atelier-seaside-dark .hljs-link,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-selector-id,.hljs-atelier-seaside-dark .hljs-selector-class{color:#e6193c;}.hljs-atelier-seaside-dark .hljs-number,.hljs-atelier-seaside-dark .hljs-meta,.hljs-atelier-seaside-dark .hljs-built_in,.hljs-atelier-seaside-dark .hljs-builtin-name,.hljs-atelier-seaside-dark .hljs-literal,.hljs-atelier-seaside-dark .hljs-type,.hljs-atelier-seaside-dark .hljs-params{color:#87711d;}.hljs-atelier-seaside-dark .hljs-string,.hljs-atelier-seaside-dark .hljs-symbol,.hljs-atelier-seaside-dark .hljs-bullet{color:#29a329;}.hljs-atelier-seaside-dark .hljs-title,.hljs-atelier-seaside-dark .hljs-section{color:#3d62f5;}.hljs-atelier-seaside-dark .hljs-keyword,.hljs-atelier-seaside-dark .hljs-selector-tag{color:#ad2bee;}.hljs-atelier-seaside-dark .hljs{display:block;overflow-x:auto;background:#131513;color:#8ca68c;padding:0.5em;}.hljs-atelier-seaside-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-seaside-dark .hljs-strong{font-weight:bold;}","atelier-seaside-light":".hljs-atelier-seaside-light{}.hljs-atelier-seaside-light .hljs-comment,.hljs-atelier-seaside-light .hljs-quote{color:#687d68;}.hljs-atelier-seaside-light .hljs-variable,.hljs-atelier-seaside-light .hljs-template-variable,.hljs-atelier-seaside-light .hljs-attribute,.hljs-atelier-seaside-light .hljs-tag,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-regexp,.hljs-atelier-seaside-light .hljs-link,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-selector-id,.hljs-atelier-seaside-light .hljs-selector-class{color:#e6193c;}.hljs-atelier-seaside-light .hljs-number,.hljs-atelier-seaside-light .hljs-meta,.hljs-atelier-seaside-light .hljs-built_in,.hljs-atelier-seaside-light .hljs-builtin-name,.hljs-atelier-seaside-light .hljs-literal,.hljs-atelier-seaside-light .hljs-type,.hljs-atelier-seaside-light .hljs-params{color:#87711d;}.hljs-atelier-seaside-light .hljs-string,.hljs-atelier-seaside-light .hljs-symbol,.hljs-atelier-seaside-light .hljs-bullet{color:#29a329;}.hljs-atelier-seaside-light .hljs-title,.hljs-atelier-seaside-light .hljs-section{color:#3d62f5;}.hljs-atelier-seaside-light .hljs-keyword,.hljs-atelier-seaside-light .hljs-selector-tag{color:#ad2bee;}.hljs-atelier-seaside-light .hljs{display:block;overflow-x:auto;background:#f4fbf4;color:#5e6e5e;padding:0.5em;}.hljs-atelier-seaside-light .hljs-emphasis{font-style:italic;}.hljs-atelier-seaside-light .hljs-strong{font-weight:bold;}","atelier-sulphurpool-dark":".hljs-atelier-sulphurpool-dark{}.hljs-atelier-sulphurpool-dark .hljs-comment,.hljs-atelier-sulphurpool-dark .hljs-quote{color:#898ea4;}.hljs-atelier-sulphurpool-dark .hljs-variable,.hljs-atelier-sulphurpool-dark .hljs-template-variable,.hljs-atelier-sulphurpool-dark .hljs-attribute,.hljs-atelier-sulphurpool-dark .hljs-tag,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-regexp,.hljs-atelier-sulphurpool-dark .hljs-link,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-selector-id,.hljs-atelier-sulphurpool-dark .hljs-selector-class{color:#c94922;}.hljs-atelier-sulphurpool-dark .hljs-number,.hljs-atelier-sulphurpool-dark .hljs-meta,.hljs-atelier-sulphurpool-dark .hljs-built_in,.hljs-atelier-sulphurpool-dark .hljs-builtin-name,.hljs-atelier-sulphurpool-dark .hljs-literal,.hljs-atelier-sulphurpool-dark .hljs-type,.hljs-atelier-sulphurpool-dark .hljs-params{color:#c76b29;}.hljs-atelier-sulphurpool-dark .hljs-string,.hljs-atelier-sulphurpool-dark .hljs-symbol,.hljs-atelier-sulphurpool-dark .hljs-bullet{color:#ac9739;}.hljs-atelier-sulphurpool-dark .hljs-title,.hljs-atelier-sulphurpool-dark .hljs-section{color:#3d8fd1;}.hljs-atelier-sulphurpool-dark .hljs-keyword,.hljs-atelier-sulphurpool-dark .hljs-selector-tag{color:#6679cc;}.hljs-atelier-sulphurpool-dark .hljs{display:block;overflow-x:auto;background:#202746;color:#979db4;padding:0.5em;}.hljs-atelier-sulphurpool-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-sulphurpool-dark .hljs-strong{font-weight:bold;}","atelier-sulphurpool-light":".hljs-atelier-sulphurpool-light{}.hljs-atelier-sulphurpool-light .hljs-comment,.hljs-atelier-sulphurpool-light .hljs-quote{color:#6b7394;}.hljs-atelier-sulphurpool-light .hljs-variable,.hljs-atelier-sulphurpool-light .hljs-template-variable,.hljs-atelier-sulphurpool-light .hljs-attribute,.hljs-atelier-sulphurpool-light .hljs-tag,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-regexp,.hljs-atelier-sulphurpool-light .hljs-link,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-selector-id,.hljs-atelier-sulphurpool-light .hljs-selector-class{color:#c94922;}.hljs-atelier-sulphurpool-light .hljs-number,.hljs-atelier-sulphurpool-light .hljs-meta,.hljs-atelier-sulphurpool-light .hljs-built_in,.hljs-atelier-sulphurpool-light .hljs-builtin-name,.hljs-atelier-sulphurpool-light .hljs-literal,.hljs-atelier-sulphurpool-light .hljs-type,.hljs-atelier-sulphurpool-light .hljs-params{color:#c76b29;}.hljs-atelier-sulphurpool-light .hljs-string,.hljs-atelier-sulphurpool-light .hljs-symbol,.hljs-atelier-sulphurpool-light .hljs-bullet{color:#ac9739;}.hljs-atelier-sulphurpool-light .hljs-title,.hljs-atelier-sulphurpool-light .hljs-section{color:#3d8fd1;}.hljs-atelier-sulphurpool-light .hljs-keyword,.hljs-atelier-sulphurpool-light .hljs-selector-tag{color:#6679cc;}.hljs-atelier-sulphurpool-light .hljs{display:block;overflow-x:auto;background:#f5f7ff;color:#5e6687;padding:0.5em;}.hljs-atelier-sulphurpool-light .hljs-emphasis{font-style:italic;}.hljs-atelier-sulphurpool-light .hljs-strong{font-weight:bold;}","brown-paper":".hljs-brown-paper{}.hljs-brown-paper .hljs{display:block;overflow-x:auto;padding:0.5em;background:#b7a68e url(./brown-papersq.png);}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal{color:#005599;font-weight:bold;}.hljs-brown-paper .hljs,.hljs-brown-paper .hljs-subst{color:#363c69;}.hljs-brown-paper .hljs-string,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-attribute,.hljs-brown-paper .hljs-symbol,.hljs-brown-paper .hljs-bullet,.hljs-brown-paper .hljs-built_in,.hljs-brown-paper .hljs-addition,.hljs-brown-paper .hljs-variable,.hljs-brown-paper .hljs-template-tag,.hljs-brown-paper .hljs-template-variable,.hljs-brown-paper .hljs-link,.hljs-brown-paper .hljs-name{color:#2c009f;}.hljs-brown-paper .hljs-comment,.hljs-brown-paper .hljs-quote,.hljs-brown-paper .hljs-meta,.hljs-brown-paper .hljs-deletion{color:#802022;}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal,.hljs-brown-paper .hljs-doctag,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-name,.hljs-brown-paper .hljs-strong{font-weight:bold;}.hljs-brown-paper .hljs-emphasis{font-style:italic;}","codepen-embed":".hljs-codepen-embed{}.hljs-codepen-embed .hljs{display:block;overflow-x:auto;padding:0.5em;background:#222;color:#fff;}.hljs-codepen-embed .hljs-comment,.hljs-codepen-embed .hljs-quote{color:#777;}.hljs-codepen-embed .hljs-variable,.hljs-codepen-embed .hljs-template-variable,.hljs-codepen-embed .hljs-tag,.hljs-codepen-embed .hljs-regexp,.hljs-codepen-embed .hljs-meta,.hljs-codepen-embed .hljs-number,.hljs-codepen-embed .hljs-built_in,.hljs-codepen-embed .hljs-builtin-name,.hljs-codepen-embed .hljs-literal,.hljs-codepen-embed .hljs-params,.hljs-codepen-embed .hljs-symbol,.hljs-codepen-embed .hljs-bullet,.hljs-codepen-embed .hljs-link,.hljs-codepen-embed .hljs-deletion{color:#ab875d;}.hljs-codepen-embed .hljs-section,.hljs-codepen-embed .hljs-title,.hljs-codepen-embed .hljs-name,.hljs-codepen-embed .hljs-selector-id,.hljs-codepen-embed .hljs-selector-class,.hljs-codepen-embed .hljs-type,.hljs-codepen-embed .hljs-attribute{color:#9b869b;}.hljs-codepen-embed .hljs-string,.hljs-codepen-embed .hljs-keyword,.hljs-codepen-embed .hljs-selector-tag,.hljs-codepen-embed .hljs-addition{color:#8f9c6c;}.hljs-codepen-embed .hljs-emphasis{font-style:italic;}.hljs-codepen-embed .hljs-strong{font-weight:bold;}","color-brewer":".hljs-color-brewer{}.hljs-color-brewer .hljs{display:block;overflow-x:auto;padding:0.5em;background:#fff;}.hljs-color-brewer .hljs,.hljs-color-brewer .hljs-subst{color:#000;}.hljs-color-brewer .hljs-string,.hljs-color-brewer .hljs-meta,.hljs-color-brewer .hljs-symbol,.hljs-color-brewer .hljs-template-tag,.hljs-color-brewer .hljs-template-variable,.hljs-color-brewer .hljs-addition{color:#756bb1;}.hljs-color-brewer .hljs-comment,.hljs-color-brewer .hljs-quote{color:#636363;}.hljs-color-brewer .hljs-number,.hljs-color-brewer .hljs-regexp,.hljs-color-brewer .hljs-literal,.hljs-color-brewer .hljs-bullet,.hljs-color-brewer .hljs-link{color:#31a354;}.hljs-color-brewer .hljs-deletion,.hljs-color-brewer .hljs-variable{color:#88f;}.hljs-color-brewer .hljs-keyword,.hljs-color-brewer .hljs-selector-tag,.hljs-color-brewer .hljs-title,.hljs-color-brewer .hljs-section,.hljs-color-brewer .hljs-built_in,.hljs-color-brewer .hljs-doctag,.hljs-color-brewer .hljs-type,.hljs-color-brewer .hljs-tag,.hljs-color-brewer .hljs-name,.hljs-color-brewer .hljs-selector-id,.hljs-color-brewer .hljs-selector-class,.hljs-color-brewer .hljs-strong{color:#3182bd;}.hljs-color-brewer .hljs-emphasis{font-style:italic;}.hljs-color-brewer .hljs-attribute{color:#e6550d;}","dark":".hljs-dark{}.hljs-dark .hljs{display:block;overflow-x:auto;padding:0.5em;background:#444;}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-section,.hljs-dark .hljs-link{color:white;}.hljs-dark .hljs,.hljs-dark .hljs-subst{color:#ddd;}.hljs-dark .hljs-string,.hljs-dark .hljs-title,.hljs-dark .hljs-name,.hljs-dark .hljs-type,.hljs-dark .hljs-attribute,.hljs-dark .hljs-symbol,.hljs-dark .hljs-bullet,.hljs-dark .hljs-built_in,.hljs-dark .hljs-addition,.hljs-dark .hljs-variable,.hljs-dark .hljs-template-tag,.hljs-dark .hljs-template-variable{color:#d88;}.hljs-dark .hljs-comment,.hljs-dark .hljs-quote,.hljs-dark .hljs-deletion,.hljs-dark .hljs-meta{color:#777;}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-title,.hljs-dark .hljs-section,.hljs-dark .hljs-doctag,.hljs-dark .hljs-type,.hljs-dark .hljs-name,.hljs-dark .hljs-strong{font-weight:bold;}.hljs-dark .hljs-emphasis{font-style:italic;}","darkula":".hljs-darkula{}.hljs-darkula .hljs{display:block;overflow-x:auto;padding:0.5em;background:#2b2b2b;}.hljs-darkula .hljs{color:#bababa;}.hljs-darkula .hljs-strong,.hljs-darkula .hljs-emphasis{color:#a8a8a2;}.hljs-darkula .hljs-bullet,.hljs-darkula .hljs-quote,.hljs-darkula .hljs-link,.hljs-darkula .hljs-number,.hljs-darkula .hljs-regexp,.hljs-darkula .hljs-literal{color:#6896ba;}.hljs-darkula .hljs-code,.hljs-darkula .hljs-selector-class{color:#a6e22e;}.hljs-darkula .hljs-emphasis{font-style:italic;}.hljs-darkula .hljs-keyword,.hljs-darkula .hljs-selector-tag,.hljs-darkula .hljs-section,.hljs-darkula .hljs-attribute,.hljs-darkula .hljs-name,.hljs-darkula .hljs-variable{color:#cb7832;}.hljs-darkula .hljs-params{color:#b9b9b9;}.hljs-darkula .hljs-string,.hljs-darkula .hljs-subst,.hljs-darkula .hljs-type,.hljs-darkula .hljs-built_in,.hljs-darkula .hljs-builtin-name,.hljs-darkula .hljs-symbol,.hljs-darkula .hljs-selector-id,.hljs-darkula .hljs-selector-attr,.hljs-darkula .hljs-selector-pseudo,.hljs-darkula .hljs-template-tag,.hljs-darkula .hljs-template-variable,.hljs-darkula .hljs-addition{color:#e0c46c;}.hljs-darkula .hljs-comment,.hljs-darkula .hljs-deletion,.hljs-darkula .hljs-meta{color:#7f7f7f;}","default":".hljs-default{}.hljs-default .hljs{display:block;overflow-x:auto;padding:0.5em;background:#F0F0F0;}.hljs-default .hljs,.hljs-default .hljs-subst{color:#444;}.hljs-default .hljs-keyword,.hljs-default .hljs-attribute,.hljs-default .hljs-selector-tag,.hljs-default .hljs-meta-keyword,.hljs-default .hljs-doctag,.hljs-default .hljs-name{font-weight:bold;}.hljs-default .hljs-built_in,.hljs-default .hljs-literal,.hljs-default .hljs-bullet,.hljs-default .hljs-code,.hljs-default .hljs-addition{color:#1F811F;}.hljs-default .hljs-regexp,.hljs-default .hljs-symbol,.hljs-default .hljs-variable,.hljs-default .hljs-template-variable,.hljs-default .hljs-link,.hljs-default .hljs-selector-attr,.hljs-default .hljs-selector-pseudo{color:#BC6060;}.hljs-default .hljs-type,.hljs-default .hljs-string,.hljs-default .hljs-number,.hljs-default .hljs-selector-id,.hljs-default .hljs-selector-class,.hljs-default .hljs-quote,.hljs-default .hljs-template-tag,.hljs-default .hljs-deletion{color:#880000;}.hljs-default .hljs-title,.hljs-default .hljs-section{color:#880000;font-weight:bold;}.hljs-default .hljs-comment{color:#888888;}.hljs-default .hljs-meta{color:#2B6EA1;}.hljs-default .hljs-emphasis{font-style:italic;}.hljs-default .hljs-strong{font-weight:bold;}","docco":".hljs-docco{}.hljs-docco .hljs{display:block;overflow-x:auto;padding:0.5em;color:#000;background:#f8f8ff;}.hljs-docco .hljs-comment,.hljs-docco .hljs-quote{color:#408080;font-style:italic;}.hljs-docco .hljs-keyword,.hljs-docco .hljs-selector-tag,.hljs-docco .hljs-literal,.hljs-docco .hljs-subst{color:#954121;}.hljs-docco .hljs-number{color:#40a070;}.hljs-docco .hljs-string,.hljs-docco .hljs-doctag{color:#219161;}.hljs-docco .hljs-selector-id,.hljs-docco .hljs-selector-class,.hljs-docco .hljs-section,.hljs-docco .hljs-type{color:#19469d;}.hljs-docco .hljs-params{color:#00f;}.hljs-docco .hljs-title{color:#458;font-weight:bold;}.hljs-docco .hljs-tag,.hljs-docco .hljs-name,.hljs-docco .hljs-attribute{color:#000080;font-weight:normal;}.hljs-docco .hljs-variable,.hljs-docco .hljs-template-variable{color:#008080;}.hljs-docco .hljs-regexp,.hljs-docco .hljs-link{color:#b68;}.hljs-docco .hljs-symbol,.hljs-docco .hljs-bullet{color:#990073;}.hljs-docco .hljs-built_in,.hljs-docco .hljs-builtin-name{color:#0086b3;}.hljs-docco .hljs-meta{color:#999;font-weight:bold;}.hljs-docco .hljs-deletion{background:#fdd;}.hljs-docco .hljs-addition{background:#dfd;}.hljs-docco .hljs-emphasis{font-style:italic;}.hljs-docco .hljs-strong{font-weight:bold;}","far":".hljs-far{}.hljs-far .hljs{display:block;overflow-x:auto;padding:0.5em;background:#000080;}.hljs-far .hljs,.hljs-far .hljs-subst{color:#0ff;}.hljs-far .hljs-string,.hljs-far .hljs-attribute,.hljs-far .hljs-symbol,.hljs-far .hljs-bullet,.hljs-far .hljs-built_in,.hljs-far .hljs-builtin-name,.hljs-far .hljs-template-tag,.hljs-far .hljs-template-variable,.hljs-far .hljs-addition{color:#ff0;}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-section,.hljs-far .hljs-type,.hljs-far .hljs-name,.hljs-far .hljs-selector-id,.hljs-far .hljs-selector-class,.hljs-far .hljs-variable{color:#fff;}.hljs-far .hljs-comment,.hljs-far .hljs-quote,.hljs-far .hljs-doctag,.hljs-far .hljs-deletion{color:#888;}.hljs-far .hljs-number,.hljs-far .hljs-regexp,.hljs-far .hljs-literal,.hljs-far .hljs-link{color:#0f0;}.hljs-far .hljs-meta{color:#008080;}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-title,.hljs-far .hljs-section,.hljs-far .hljs-name,.hljs-far .hljs-strong{font-weight:bold;}.hljs-far .hljs-emphasis{font-style:italic;}","foundation":".hljs-foundation{}.hljs-foundation .hljs{display:block;overflow-x:auto;padding:0.5em;background:#eee;color:black;}.hljs-foundation .hljs-link,.hljs-foundation .hljs-emphasis,.hljs-foundation .hljs-attribute,.hljs-foundation .hljs-addition{color:#070;}.hljs-foundation .hljs-emphasis{font-style:italic;}.hljs-foundation .hljs-strong,.hljs-foundation .hljs-string,.hljs-foundation .hljs-deletion{color:#d14;}.hljs-foundation .hljs-strong{font-weight:bold;}.hljs-foundation .hljs-quote,.hljs-foundation .hljs-comment{color:#998;font-style:italic;}.hljs-foundation .hljs-section,.hljs-foundation .hljs-title{color:#900;}.hljs-foundation .hljs-class .hljs-title,.hljs-foundation .hljs-type{color:#458;}.hljs-foundation .hljs-variable,.hljs-foundation .hljs-template-variable{color:#336699;}.hljs-foundation .hljs-bullet{color:#997700;}.hljs-foundation .hljs-meta{color:#3344bb;}.hljs-foundation .hljs-code,.hljs-foundation .hljs-number,.hljs-foundation .hljs-literal,.hljs-foundation .hljs-keyword,.hljs-foundation .hljs-selector-tag{color:#099;}.hljs-foundation .hljs-regexp{background-color:#fff0ff;color:#880088;}.hljs-foundation .hljs-symbol{color:#990073;}.hljs-foundation .hljs-tag,.hljs-foundation .hljs-name,.hljs-foundation .hljs-selector-id,.hljs-foundation .hljs-selector-class{color:#007700;}","github-gist":".hljs-github-gist{}.hljs-github-gist .hljs{display:block;background:white;padding:0.5em;color:#333333;overflow-x:auto;}.hljs-github-gist .hljs-comment,.hljs-github-gist .hljs-meta{color:#969896;}.hljs-github-gist .hljs-string,.hljs-github-gist .hljs-variable,.hljs-github-gist .hljs-template-variable,.hljs-github-gist .hljs-strong,.hljs-github-gist .hljs-emphasis,.hljs-github-gist .hljs-quote{color:#df5000;}.hljs-github-gist .hljs-keyword,.hljs-github-gist .hljs-selector-tag,.hljs-github-gist .hljs-type{color:#a71d5d;}.hljs-github-gist .hljs-literal,.hljs-github-gist .hljs-symbol,.hljs-github-gist .hljs-bullet,.hljs-github-gist .hljs-attribute{color:#0086b3;}.hljs-github-gist .hljs-section,.hljs-github-gist .hljs-name{color:#63a35c;}.hljs-github-gist .hljs-tag{color:#333333;}.hljs-github-gist .hljs-title,.hljs-github-gist .hljs-attr,.hljs-github-gist .hljs-selector-id,.hljs-github-gist .hljs-selector-class,.hljs-github-gist .hljs-selector-attr,.hljs-github-gist .hljs-selector-pseudo{color:#795da3;}.hljs-github-gist .hljs-addition{color:#55a532;background-color:#eaffea;}.hljs-github-gist .hljs-deletion{color:#bd2c00;background-color:#ffecec;}.hljs-github-gist .hljs-link{text-decoration:underline;}","github":".hljs-github{}.hljs-github .hljs{display:block;overflow-x:auto;padding:0.5em;color:#333;background:#f8f8f8;}.hljs-github .hljs-comment,.hljs-github .hljs-quote{color:#998;font-style:italic;}.hljs-github .hljs-keyword,.hljs-github .hljs-selector-tag,.hljs-github .hljs-subst{color:#333;font-weight:bold;}.hljs-github .hljs-number,.hljs-github .hljs-literal,.hljs-github .hljs-variable,.hljs-github .hljs-template-variable,.hljs-github .hljs-tag .hljs-attr{color:#008080;}.hljs-github .hljs-string,.hljs-github .hljs-doctag{color:#d14;}.hljs-github .hljs-title,.hljs-github .hljs-section,.hljs-github .hljs-selector-id{color:#900;font-weight:bold;}.hljs-github .hljs-subst{font-weight:normal;}.hljs-github .hljs-type,.hljs-github .hljs-class .hljs-title{color:#458;font-weight:bold;}.hljs-github .hljs-tag,.hljs-github .hljs-name,.hljs-github .hljs-attribute{color:#000080;font-weight:normal;}.hljs-github .hljs-regexp,.hljs-github .hljs-link{color:#009926;}.hljs-github .hljs-symbol,.hljs-github .hljs-bullet{color:#990073;}.hljs-github .hljs-built_in,.hljs-github .hljs-builtin-name{color:#0086b3;}.hljs-github .hljs-meta{color:#999;font-weight:bold;}.hljs-github .hljs-deletion{background:#fdd;}.hljs-github .hljs-addition{background:#dfd;}.hljs-github .hljs-emphasis{font-style:italic;}.hljs-github .hljs-strong{font-weight:bold;}","googlecode":".hljs-googlecode{}.hljs-googlecode .hljs{display:block;overflow-x:auto;padding:0.5em;background:white;color:black;}.hljs-googlecode .hljs-comment,.hljs-googlecode .hljs-quote{color:#800;}.hljs-googlecode .hljs-keyword,.hljs-googlecode .hljs-selector-tag,.hljs-googlecode .hljs-section,.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-name{color:#008;}.hljs-googlecode .hljs-variable,.hljs-googlecode .hljs-template-variable{color:#660;}.hljs-googlecode .hljs-string,.hljs-googlecode .hljs-selector-attr,.hljs-googlecode .hljs-selector-pseudo,.hljs-googlecode .hljs-regexp{color:#080;}.hljs-googlecode .hljs-literal,.hljs-googlecode .hljs-symbol,.hljs-googlecode .hljs-bullet,.hljs-googlecode .hljs-meta,.hljs-googlecode .hljs-number,.hljs-googlecode .hljs-link{color:#066;}.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-type,.hljs-googlecode .hljs-attr,.hljs-googlecode .hljs-built_in,.hljs-googlecode .hljs-builtin-name,.hljs-googlecode .hljs-params{color:#606;}.hljs-googlecode .hljs-attribute,.hljs-googlecode .hljs-subst{color:#000;}.hljs-googlecode .hljs-formula{background-color:#eee;font-style:italic;}.hljs-googlecode .hljs-selector-id,.hljs-googlecode .hljs-selector-class{color:#9b703f;}.hljs-googlecode .hljs-addition{background-color:#baeeba;}.hljs-googlecode .hljs-deletion{background-color:#ffc8bd;}.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-strong{font-weight:bold;}.hljs-googlecode .hljs-emphasis{font-style:italic;}","grayscale":".hljs-grayscale{}.hljs-grayscale .hljs{display:block;overflow-x:auto;padding:0.5em;color:#333;background:#fff;}.hljs-grayscale .hljs-comment,.hljs-grayscale .hljs-quote{color:#777;font-style:italic;}.hljs-grayscale .hljs-keyword,.hljs-grayscale .hljs-selector-tag,.hljs-grayscale .hljs-subst{color:#333;font-weight:bold;}.hljs-grayscale .hljs-number,.hljs-grayscale .hljs-literal{color:#777;}.hljs-grayscale .hljs-string,.hljs-grayscale .hljs-doctag,.hljs-grayscale .hljs-formula{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat;}.hljs-grayscale .hljs-title,.hljs-grayscale .hljs-section,.hljs-grayscale .hljs-selector-id{color:#000;font-weight:bold;}.hljs-grayscale .hljs-subst{font-weight:normal;}.hljs-grayscale .hljs-class .hljs-title,.hljs-grayscale .hljs-type,.hljs-grayscale .hljs-name{color:#333;font-weight:bold;}.hljs-grayscale .hljs-tag{color:#333;}.hljs-grayscale .hljs-regexp{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat;}.hljs-grayscale .hljs-symbol,.hljs-grayscale .hljs-bullet,.hljs-grayscale .hljs-link{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat;}.hljs-grayscale .hljs-built_in,.hljs-grayscale .hljs-builtin-name{color:#000;text-decoration:underline;}.hljs-grayscale .hljs-meta{color:#999;font-weight:bold;}.hljs-grayscale .hljs-deletion{color:#fff;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat;}.hljs-grayscale .hljs-addition{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat;}.hljs-grayscale .hljs-emphasis{font-style:italic;}.hljs-grayscale .hljs-strong{font-weight:bold;}","hopscotch":".hljs-hopscotch{}.hljs-hopscotch .hljs-comment,.hljs-hopscotch .hljs-quote{color:#989498;}.hljs-hopscotch .hljs-variable,.hljs-hopscotch .hljs-template-variable,.hljs-hopscotch .hljs-attribute,.hljs-hopscotch .hljs-tag,.hljs-hopscotch .hljs-name,.hljs-hopscotch .hljs-selector-id,.hljs-hopscotch .hljs-selector-class,.hljs-hopscotch .hljs-regexp,.hljs-hopscotch .hljs-link,.hljs-hopscotch .hljs-deletion{color:#dd464c;}.hljs-hopscotch .hljs-number,.hljs-hopscotch .hljs-built_in,.hljs-hopscotch .hljs-builtin-name,.hljs-hopscotch .hljs-literal,.hljs-hopscotch .hljs-type,.hljs-hopscotch .hljs-params{color:#fd8b19;}.hljs-hopscotch .hljs-class .hljs-title{color:#fdcc59;}.hljs-hopscotch .hljs-string,.hljs-hopscotch .hljs-symbol,.hljs-hopscotch .hljs-bullet,.hljs-hopscotch .hljs-addition{color:#8fc13e;}.hljs-hopscotch .hljs-meta{color:#149b93;}.hljs-hopscotch .hljs-function,.hljs-hopscotch .hljs-section,.hljs-hopscotch .hljs-title{color:#1290bf;}.hljs-hopscotch .hljs-keyword,.hljs-hopscotch .hljs-selector-tag{color:#c85e7c;}.hljs-hopscotch .hljs{display:block;background:#322931;color:#b9b5b8;padding:0.5em;}.hljs-hopscotch .hljs-emphasis{font-style:italic;}.hljs-hopscotch .hljs-strong{font-weight:bold;}","hybrid":".hljs-hybrid{}.hljs-hybrid .hljs{display:block;overflow-x:auto;padding:0.5em;background:#1d1f21;}.hljs-hybrid .hljs::selection,.hljs-hybrid .hljs span::selection{background:#373b41;}.hljs-hybrid .hljs::-moz-selection,.hljs-hybrid .hljs span::-moz-selection{background:#373b41;}.hljs-hybrid .hljs{color:#c5c8c6;}.hljs-hybrid .hljs-title,.hljs-hybrid .hljs-name{color:#f0c674;}.hljs-hybrid .hljs-comment,.hljs-hybrid .hljs-meta,.hljs-hybrid .hljs-meta .hljs-keyword{color:#707880;}.hljs-hybrid .hljs-number,.hljs-hybrid .hljs-symbol,.hljs-hybrid .hljs-literal,.hljs-hybrid .hljs-deletion,.hljs-hybrid .hljs-link{color:#cc6666;}.hljs-hybrid .hljs-string,.hljs-hybrid .hljs-doctag,.hljs-hybrid .hljs-addition,.hljs-hybrid .hljs-regexp,.hljs-hybrid .hljs-selector-attr,.hljs-hybrid .hljs-selector-pseudo{color:#b5bd68;}.hljs-hybrid .hljs-attribute,.hljs-hybrid .hljs-code,.hljs-hybrid .hljs-selector-id{color:#b294bb;}.hljs-hybrid .hljs-keyword,.hljs-hybrid .hljs-selector-tag,.hljs-hybrid .hljs-bullet,.hljs-hybrid .hljs-tag{color:#81a2be;}.hljs-hybrid .hljs-subst,.hljs-hybrid .hljs-variable,.hljs-hybrid .hljs-template-tag,.hljs-hybrid .hljs-template-variable{color:#8abeb7;}.hljs-hybrid .hljs-type,.hljs-hybrid .hljs-built_in,.hljs-hybrid .hljs-builtin-name,.hljs-hybrid .hljs-quote,.hljs-hybrid .hljs-section,.hljs-hybrid .hljs-selector-class{color:#de935f;}.hljs-hybrid .hljs-emphasis{font-style:italic;}.hljs-hybrid .hljs-strong{font-weight:bold;}","idea":".hljs-idea{}.hljs-idea .hljs{display:block;overflow-x:auto;padding:0.5em;color:#000;background:#fff;}.hljs-idea .hljs-subst,.hljs-idea .hljs-title{font-weight:normal;color:#000;}.hljs-idea .hljs-comment,.hljs-idea .hljs-quote{color:#808080;font-style:italic;}.hljs-idea .hljs-meta{color:#808000;}.hljs-idea .hljs-tag{background:#efefef;}.hljs-idea .hljs-section,.hljs-idea .hljs-name,.hljs-idea .hljs-literal,.hljs-idea .hljs-keyword,.hljs-idea .hljs-selector-tag,.hljs-idea .hljs-type,.hljs-idea .hljs-selector-id,.hljs-idea .hljs-selector-class{font-weight:bold;color:#000080;}.hljs-idea .hljs-attribute,.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:bold;color:#0000ff;}.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:normal;}.hljs-idea .hljs-string{color:#008000;font-weight:bold;}.hljs-idea .hljs-symbol,.hljs-idea .hljs-bullet,.hljs-idea .hljs-formula{color:#000;background:#d0eded;font-style:italic;}.hljs-idea .hljs-doctag{text-decoration:underline;}.hljs-idea .hljs-variable,.hljs-idea .hljs-template-variable{color:#660e7a;}.hljs-idea .hljs-addition{background:#baeeba;}.hljs-idea .hljs-deletion{background:#ffc8bd;}.hljs-idea .hljs-emphasis{font-style:italic;}.hljs-idea .hljs-strong{font-weight:bold;}","ir-black":".hljs-ir-black{}.hljs-ir-black .hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;color:#f8f8f8;}.hljs-ir-black .hljs-comment,.hljs-ir-black .hljs-quote,.hljs-ir-black .hljs-meta{color:#7c7c7c;}.hljs-ir-black .hljs-keyword,.hljs-ir-black .hljs-selector-tag,.hljs-ir-black .hljs-tag,.hljs-ir-black .hljs-name{color:#96cbfe;}.hljs-ir-black .hljs-attribute,.hljs-ir-black .hljs-selector-id{color:#ffffb6;}.hljs-ir-black .hljs-string,.hljs-ir-black .hljs-selector-attr,.hljs-ir-black .hljs-selector-pseudo,.hljs-ir-black .hljs-addition{color:#a8ff60;}.hljs-ir-black .hljs-subst{color:#daefa3;}.hljs-ir-black .hljs-regexp,.hljs-ir-black .hljs-link{color:#e9c062;}.hljs-ir-black .hljs-title,.hljs-ir-black .hljs-section,.hljs-ir-black .hljs-type,.hljs-ir-black .hljs-doctag{color:#ffffb6;}.hljs-ir-black .hljs-symbol,.hljs-ir-black .hljs-bullet,.hljs-ir-black .hljs-variable,.hljs-ir-black .hljs-template-variable,.hljs-ir-black .hljs-literal{color:#c6c5fe;}.hljs-ir-black .hljs-number,.hljs-ir-black .hljs-deletion{color:#ff73fd;}.hljs-ir-black .hljs-emphasis{font-style:italic;}.hljs-ir-black .hljs-strong{font-weight:bold;}","kimbie.dark":".hljs-kimbie.dark{}.hljs-kimbie.dark .hljs-comment,.hljs-kimbie.dark .hljs-quote{color:#d6baad;}.hljs-kimbie.dark .hljs-variable,.hljs-kimbie.dark .hljs-template-variable,.hljs-kimbie.dark .hljs-tag,.hljs-kimbie.dark .hljs-name,.hljs-kimbie.dark .hljs-selector-id,.hljs-kimbie.dark .hljs-selector-class,.hljs-kimbie.dark .hljs-regexp,.hljs-kimbie.dark .hljs-meta{color:#dc3958;}.hljs-kimbie.dark .hljs-number,.hljs-kimbie.dark .hljs-built_in,.hljs-kimbie.dark .hljs-builtin-name,.hljs-kimbie.dark .hljs-literal,.hljs-kimbie.dark .hljs-type,.hljs-kimbie.dark .hljs-params,.hljs-kimbie.dark .hljs-deletion,.hljs-kimbie.dark .hljs-link{color:#f79a32;}.hljs-kimbie.dark .hljs-title,.hljs-kimbie.dark .hljs-section,.hljs-kimbie.dark .hljs-attribute{color:#f06431;}.hljs-kimbie.dark .hljs-string,.hljs-kimbie.dark .hljs-symbol,.hljs-kimbie.dark .hljs-bullet,.hljs-kimbie.dark .hljs-addition{color:#889b4a;}.hljs-kimbie.dark .hljs-keyword,.hljs-kimbie.dark .hljs-selector-tag,.hljs-kimbie.dark .hljs-function{color:#98676a;}.hljs-kimbie.dark .hljs{display:block;overflow-x:auto;background:#221a0f;color:#d3af86;padding:0.5em;}.hljs-kimbie.dark .hljs-emphasis{font-style:italic;}.hljs-kimbie.dark .hljs-strong{font-weight:bold;}","kimbie.light":".hljs-kimbie.light{}.hljs-kimbie.light .hljs-comment,.hljs-kimbie.light .hljs-quote{color:#a57a4c;}.hljs-kimbie.light .hljs-variable,.hljs-kimbie.light .hljs-template-variable,.hljs-kimbie.light .hljs-tag,.hljs-kimbie.light .hljs-name,.hljs-kimbie.light .hljs-selector-id,.hljs-kimbie.light .hljs-selector-class,.hljs-kimbie.light .hljs-regexp,.hljs-kimbie.light .hljs-meta{color:#dc3958;}.hljs-kimbie.light .hljs-number,.hljs-kimbie.light .hljs-built_in,.hljs-kimbie.light .hljs-builtin-name,.hljs-kimbie.light .hljs-literal,.hljs-kimbie.light .hljs-type,.hljs-kimbie.light .hljs-params,.hljs-kimbie.light .hljs-deletion,.hljs-kimbie.light .hljs-link{color:#f79a32;}.hljs-kimbie.light .hljs-title,.hljs-kimbie.light .hljs-section,.hljs-kimbie.light .hljs-attribute{color:#f06431;}.hljs-kimbie.light .hljs-string,.hljs-kimbie.light .hljs-symbol,.hljs-kimbie.light .hljs-bullet,.hljs-kimbie.light .hljs-addition{color:#889b4a;}.hljs-kimbie.light .hljs-keyword,.hljs-kimbie.light .hljs-selector-tag,.hljs-kimbie.light .hljs-function{color:#98676a;}.hljs-kimbie.light .hljs{display:block;overflow-x:auto;background:#fbebd4;color:#84613d;padding:0.5em;}.hljs-kimbie.light .hljs-emphasis{font-style:italic;}.hljs-kimbie.light .hljs-strong{font-weight:bold;}","magula":".hljs-magula{}.hljs-magula .hljs{display:block;overflow-x:auto;padding:0.5em;background-color:#f4f4f4;}.hljs-magula .hljs,.hljs-magula .hljs-subst{color:black;}.hljs-magula .hljs-string,.hljs-magula .hljs-title,.hljs-magula .hljs-symbol,.hljs-magula .hljs-bullet,.hljs-magula .hljs-attribute,.hljs-magula .hljs-addition,.hljs-magula .hljs-variable,.hljs-magula .hljs-template-tag,.hljs-magula .hljs-template-variable{color:#050;}.hljs-magula .hljs-comment,.hljs-magula .hljs-quote{color:#777;}.hljs-magula .hljs-number,.hljs-magula .hljs-regexp,.hljs-magula .hljs-literal,.hljs-magula .hljs-type,.hljs-magula .hljs-link{color:#800;}.hljs-magula .hljs-deletion,.hljs-magula .hljs-meta{color:#00e;}.hljs-magula .hljs-keyword,.hljs-magula .hljs-selector-tag,.hljs-magula .hljs-doctag,.hljs-magula .hljs-title,.hljs-magula .hljs-section,.hljs-magula .hljs-built_in,.hljs-magula .hljs-tag,.hljs-magula .hljs-name{font-weight:bold;color:navy;}.hljs-magula .hljs-emphasis{font-style:italic;}.hljs-magula .hljs-strong{font-weight:bold;}","mono-blue":".hljs-mono-blue{}.hljs-mono-blue .hljs{display:block;overflow-x:auto;padding:0.5em;background:#eaeef3;}.hljs-mono-blue .hljs{color:#00193a;}.hljs-mono-blue .hljs-keyword,.hljs-mono-blue .hljs-selector-tag,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-doctag,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-strong{font-weight:bold;}.hljs-mono-blue .hljs-comment{color:#738191;}.hljs-mono-blue .hljs-string,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-built_in,.hljs-mono-blue .hljs-literal,.hljs-mono-blue .hljs-type,.hljs-mono-blue .hljs-addition,.hljs-mono-blue .hljs-tag,.hljs-mono-blue .hljs-quote,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-selector-id,.hljs-mono-blue .hljs-selector-class{color:#0048ab;}.hljs-mono-blue .hljs-meta,.hljs-mono-blue .hljs-subst,.hljs-mono-blue .hljs-symbol,.hljs-mono-blue .hljs-regexp,.hljs-mono-blue .hljs-attribute,.hljs-mono-blue .hljs-deletion,.hljs-mono-blue .hljs-variable,.hljs-mono-blue .hljs-template-variable,.hljs-mono-blue .hljs-link,.hljs-mono-blue .hljs-bullet{color:#4c81c9;}.hljs-mono-blue .hljs-emphasis{font-style:italic;}","monokai-sublime":".hljs-monokai-sublime{}.hljs-monokai-sublime .hljs{display:block;overflow-x:auto;padding:0.5em;background:#23241f;}.hljs-monokai-sublime .hljs,.hljs-monokai-sublime .hljs-tag,.hljs-monokai-sublime .hljs-subst{color:#f8f8f2;}.hljs-monokai-sublime .hljs-strong,.hljs-monokai-sublime .hljs-emphasis{color:#a8a8a2;}.hljs-monokai-sublime .hljs-bullet,.hljs-monokai-sublime .hljs-quote,.hljs-monokai-sublime .hljs-number,.hljs-monokai-sublime .hljs-regexp,.hljs-monokai-sublime .hljs-literal,.hljs-monokai-sublime .hljs-link{color:#ae81ff;}.hljs-monokai-sublime .hljs-code,.hljs-monokai-sublime .hljs-title,.hljs-monokai-sublime .hljs-section,.hljs-monokai-sublime .hljs-selector-class{color:#a6e22e;}.hljs-monokai-sublime .hljs-strong{font-weight:bold;}.hljs-monokai-sublime .hljs-emphasis{font-style:italic;}.hljs-monokai-sublime .hljs-keyword,.hljs-monokai-sublime .hljs-selector-tag,.hljs-monokai-sublime .hljs-name,.hljs-monokai-sublime .hljs-attr{color:#f92672;}.hljs-monokai-sublime .hljs-symbol,.hljs-monokai-sublime .hljs-attribute{color:#66d9ef;}.hljs-monokai-sublime .hljs-params,.hljs-monokai-sublime .hljs-class .hljs-title{color:#f8f8f2;}.hljs-monokai-sublime .hljs-string,.hljs-monokai-sublime .hljs-type,.hljs-monokai-sublime .hljs-built_in,.hljs-monokai-sublime .hljs-builtin-name,.hljs-monokai-sublime .hljs-selector-id,.hljs-monokai-sublime .hljs-selector-attr,.hljs-monokai-sublime .hljs-selector-pseudo,.hljs-monokai-sublime .hljs-addition,.hljs-monokai-sublime .hljs-variable,.hljs-monokai-sublime .hljs-template-variable{color:#e6db74;}.hljs-monokai-sublime .hljs-comment,.hljs-monokai-sublime .hljs-deletion,.hljs-monokai-sublime .hljs-meta{color:#75715e;}","monokai":".hljs-monokai{}.hljs-monokai .hljs{display:block;overflow-x:auto;padding:0.5em;background:#272822;color:#ddd;}.hljs-monokai .hljs-tag,.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-strong,.hljs-monokai .hljs-name{color:#f92672;}.hljs-monokai .hljs-code{color:#66d9ef;}.hljs-monokai .hljs-class .hljs-title{color:white;}.hljs-monokai .hljs-attribute,.hljs-monokai .hljs-symbol,.hljs-monokai .hljs-regexp,.hljs-monokai .hljs-link{color:#bf79db;}.hljs-monokai .hljs-string,.hljs-monokai .hljs-bullet,.hljs-monokai .hljs-subst,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-emphasis,.hljs-monokai .hljs-type,.hljs-monokai .hljs-built_in,.hljs-monokai .hljs-builtin-name,.hljs-monokai .hljs-selector-attr,.hljs-monokai .hljs-selector-pseudo,.hljs-monokai .hljs-addition,.hljs-monokai .hljs-variable,.hljs-monokai .hljs-template-tag,.hljs-monokai .hljs-template-variable{color:#a6e22e;}.hljs-monokai .hljs-comment,.hljs-monokai .hljs-quote,.hljs-monokai .hljs-deletion,.hljs-monokai .hljs-meta{color:#75715e;}.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-doctag,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-type,.hljs-monokai .hljs-selector-id{font-weight:bold;}","obsidian":".hljs-obsidian{}.hljs-obsidian .hljs{display:block;overflow-x:auto;padding:0.5em;background:#282b2e;}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-selector-id{color:#93c763;}.hljs-obsidian .hljs-number{color:#ffcd22;}.hljs-obsidian .hljs{color:#e0e2e4;}.hljs-obsidian .hljs-attribute{color:#668bb0;}.hljs-obsidian .hljs-code,.hljs-obsidian .hljs-class .hljs-title,.hljs-obsidian .hljs-section{color:white;}.hljs-obsidian .hljs-regexp,.hljs-obsidian .hljs-link{color:#d39745;}.hljs-obsidian .hljs-meta{color:#557182;}.hljs-obsidian .hljs-tag,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-bullet,.hljs-obsidian .hljs-subst,.hljs-obsidian .hljs-emphasis,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-built_in,.hljs-obsidian .hljs-selector-attr,.hljs-obsidian .hljs-selector-pseudo,.hljs-obsidian .hljs-addition,.hljs-obsidian .hljs-variable,.hljs-obsidian .hljs-template-tag,.hljs-obsidian .hljs-template-variable{color:#8cbbad;}.hljs-obsidian .hljs-string,.hljs-obsidian .hljs-symbol{color:#ec7600;}.hljs-obsidian .hljs-comment,.hljs-obsidian .hljs-quote,.hljs-obsidian .hljs-deletion{color:#818e96;}.hljs-obsidian .hljs-selector-class{color:#a082bd;}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-doctag,.hljs-obsidian .hljs-title,.hljs-obsidian .hljs-section,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-strong{font-weight:bold;}","paraiso-dark":".hljs-paraiso-dark{}.hljs-paraiso-dark .hljs-comment,.hljs-paraiso-dark .hljs-quote{color:#8d8687;}.hljs-paraiso-dark .hljs-variable,.hljs-paraiso-dark .hljs-template-variable,.hljs-paraiso-dark .hljs-tag,.hljs-paraiso-dark .hljs-name,.hljs-paraiso-dark .hljs-selector-id,.hljs-paraiso-dark .hljs-selector-class,.hljs-paraiso-dark .hljs-regexp,.hljs-paraiso-dark .hljs-link,.hljs-paraiso-dark .hljs-meta{color:#ef6155;}.hljs-paraiso-dark .hljs-number,.hljs-paraiso-dark .hljs-built_in,.hljs-paraiso-dark .hljs-builtin-name,.hljs-paraiso-dark .hljs-literal,.hljs-paraiso-dark .hljs-type,.hljs-paraiso-dark .hljs-params,.hljs-paraiso-dark .hljs-deletion{color:#f99b15;}.hljs-paraiso-dark .hljs-title,.hljs-paraiso-dark .hljs-section,.hljs-paraiso-dark .hljs-attribute{color:#fec418;}.hljs-paraiso-dark .hljs-string,.hljs-paraiso-dark .hljs-symbol,.hljs-paraiso-dark .hljs-bullet,.hljs-paraiso-dark .hljs-addition{color:#48b685;}.hljs-paraiso-dark .hljs-keyword,.hljs-paraiso-dark .hljs-selector-tag{color:#815ba4;}.hljs-paraiso-dark .hljs{display:block;overflow-x:auto;background:#2f1e2e;color:#a39e9b;padding:0.5em;}.hljs-paraiso-dark .hljs-emphasis{font-style:italic;}.hljs-paraiso-dark .hljs-strong{font-weight:bold;}","paraiso-light":".hljs-paraiso-light{}.hljs-paraiso-light .hljs-comment,.hljs-paraiso-light .hljs-quote{color:#776e71;}.hljs-paraiso-light .hljs-variable,.hljs-paraiso-light .hljs-template-variable,.hljs-paraiso-light .hljs-tag,.hljs-paraiso-light .hljs-name,.hljs-paraiso-light .hljs-selector-id,.hljs-paraiso-light .hljs-selector-class,.hljs-paraiso-light .hljs-regexp,.hljs-paraiso-light .hljs-link,.hljs-paraiso-light .hljs-meta{color:#ef6155;}.hljs-paraiso-light .hljs-number,.hljs-paraiso-light .hljs-built_in,.hljs-paraiso-light .hljs-builtin-name,.hljs-paraiso-light .hljs-literal,.hljs-paraiso-light .hljs-type,.hljs-paraiso-light .hljs-params,.hljs-paraiso-light .hljs-deletion{color:#f99b15;}.hljs-paraiso-light .hljs-title,.hljs-paraiso-light .hljs-section,.hljs-paraiso-light .hljs-attribute{color:#fec418;}.hljs-paraiso-light .hljs-string,.hljs-paraiso-light .hljs-symbol,.hljs-paraiso-light .hljs-bullet,.hljs-paraiso-light .hljs-addition{color:#48b685;}.hljs-paraiso-light .hljs-keyword,.hljs-paraiso-light .hljs-selector-tag{color:#815ba4;}.hljs-paraiso-light .hljs{display:block;overflow-x:auto;background:#e7e9db;color:#4f424c;padding:0.5em;}.hljs-paraiso-light .hljs-emphasis{font-style:italic;}.hljs-paraiso-light .hljs-strong{font-weight:bold;}","railscasts":".hljs-railscasts{}.hljs-railscasts .hljs{display:block;overflow-x:auto;padding:0.5em;background:#232323;color:#e6e1dc;}.hljs-railscasts .hljs-comment,.hljs-railscasts .hljs-quote{color:#bc9458;font-style:italic;}.hljs-railscasts .hljs-keyword,.hljs-railscasts .hljs-selector-tag{color:#c26230;}.hljs-railscasts .hljs-string,.hljs-railscasts .hljs-number,.hljs-railscasts .hljs-regexp,.hljs-railscasts .hljs-variable,.hljs-railscasts .hljs-template-variable{color:#a5c261;}.hljs-railscasts .hljs-subst{color:#519f50;}.hljs-railscasts .hljs-tag,.hljs-railscasts .hljs-name{color:#e8bf6a;}.hljs-railscasts .hljs-type{color:#da4939;}.hljs-railscasts .hljs-symbol,.hljs-railscasts .hljs-bullet,.hljs-railscasts .hljs-built_in,.hljs-railscasts .hljs-builtin-name,.hljs-railscasts .hljs-attr,.hljs-railscasts .hljs-link{color:#6d9cbe;}.hljs-railscasts .hljs-params{color:#d0d0ff;}.hljs-railscasts .hljs-attribute{color:#cda869;}.hljs-railscasts .hljs-meta{color:#9b859d;}.hljs-railscasts .hljs-title,.hljs-railscasts .hljs-section{color:#ffc66d;}.hljs-railscasts .hljs-addition{background-color:#144212;color:#e6e1dc;display:inline-block;width:100%;}.hljs-railscasts .hljs-deletion{background-color:#600;color:#e6e1dc;display:inline-block;width:100%;}.hljs-railscasts .hljs-selector-class{color:#9b703f;}.hljs-railscasts .hljs-selector-id{color:#8b98ab;}.hljs-railscasts .hljs-emphasis{font-style:italic;}.hljs-railscasts .hljs-strong{font-weight:bold;}.hljs-railscasts .hljs-link{text-decoration:underline;}","rainbow":".hljs-rainbow{}.hljs-rainbow .hljs{display:block;overflow-x:auto;padding:0.5em;background:#474949;color:#d1d9e1;}.hljs-rainbow .hljs-comment,.hljs-rainbow .hljs-quote{color:#969896;font-style:italic;}.hljs-rainbow .hljs-keyword,.hljs-rainbow .hljs-selector-tag,.hljs-rainbow .hljs-literal,.hljs-rainbow .hljs-type,.hljs-rainbow .hljs-addition{color:#cc99cc;}.hljs-rainbow .hljs-number,.hljs-rainbow .hljs-selector-attr,.hljs-rainbow .hljs-selector-pseudo{color:#f99157;}.hljs-rainbow .hljs-string,.hljs-rainbow .hljs-doctag,.hljs-rainbow .hljs-regexp{color:#8abeb7;}.hljs-rainbow .hljs-title,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-built_in{color:#b5bd68;}.hljs-rainbow .hljs-variable,.hljs-rainbow .hljs-template-variable,.hljs-rainbow .hljs-selector-id,.hljs-rainbow .hljs-class .hljs-title{color:#ffcc66;}.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-strong{font-weight:bold;}.hljs-rainbow .hljs-symbol,.hljs-rainbow .hljs-bullet,.hljs-rainbow .hljs-subst,.hljs-rainbow .hljs-meta,.hljs-rainbow .hljs-link{color:#f99157;}.hljs-rainbow .hljs-deletion{color:#dc322f;}.hljs-rainbow .hljs-formula{background:#eee8d5;}.hljs-rainbow .hljs-attr,.hljs-rainbow .hljs-attribute{color:#81a2be;}.hljs-rainbow .hljs-emphasis{font-style:italic;}","school-book":".hljs-school-book{}.hljs-school-book .hljs{display:block;overflow-x:auto;padding:15px 0.5em 0.5em 30px;font-size:11px;line-height:16px;}.hljs-school-book pre{background:#f6f6ae url(./school-book.png);border-top:solid 2px #d2e8b9;border-bottom:solid 1px #d2e8b9;}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal{color:#005599;font-weight:bold;}.hljs-school-book .hljs,.hljs-school-book .hljs-subst{color:#3e5915;}.hljs-school-book .hljs-string,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-symbol,.hljs-school-book .hljs-bullet,.hljs-school-book .hljs-attribute,.hljs-school-book .hljs-built_in,.hljs-school-book .hljs-builtin-name,.hljs-school-book .hljs-addition,.hljs-school-book .hljs-variable,.hljs-school-book .hljs-template-tag,.hljs-school-book .hljs-template-variable,.hljs-school-book .hljs-link{color:#2c009f;}.hljs-school-book .hljs-comment,.hljs-school-book .hljs-quote,.hljs-school-book .hljs-deletion,.hljs-school-book .hljs-meta{color:#e60415;}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal,.hljs-school-book .hljs-doctag,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-name,.hljs-school-book .hljs-selector-id,.hljs-school-book .hljs-strong{font-weight:bold;}.hljs-school-book .hljs-emphasis{font-style:italic;}","solarized-dark":".hljs-solarized-dark{}.hljs-solarized-dark .hljs{display:block;overflow-x:auto;padding:0.5em;background:#002b36;color:#839496;}.hljs-solarized-dark .hljs-comment,.hljs-solarized-dark .hljs-quote{color:#586e75;}.hljs-solarized-dark .hljs-keyword,.hljs-solarized-dark .hljs-selector-tag,.hljs-solarized-dark .hljs-addition{color:#859900;}.hljs-solarized-dark .hljs-number,.hljs-solarized-dark .hljs-string,.hljs-solarized-dark .hljs-meta .hljs-meta-string,.hljs-solarized-dark .hljs-literal,.hljs-solarized-dark .hljs-doctag,.hljs-solarized-dark .hljs-regexp{color:#2aa198;}.hljs-solarized-dark .hljs-title,.hljs-solarized-dark .hljs-section,.hljs-solarized-dark .hljs-name,.hljs-solarized-dark .hljs-selector-id,.hljs-solarized-dark .hljs-selector-class{color:#268bd2;}.hljs-solarized-dark .hljs-attribute,.hljs-solarized-dark .hljs-attr,.hljs-solarized-dark .hljs-variable,.hljs-solarized-dark .hljs-template-variable,.hljs-solarized-dark .hljs-class .hljs-title,.hljs-solarized-dark .hljs-type{color:#b58900;}.hljs-solarized-dark .hljs-symbol,.hljs-solarized-dark .hljs-bullet,.hljs-solarized-dark .hljs-subst,.hljs-solarized-dark .hljs-meta,.hljs-solarized-dark .hljs-meta .hljs-keyword,.hljs-solarized-dark .hljs-selector-attr,.hljs-solarized-dark .hljs-selector-pseudo,.hljs-solarized-dark .hljs-link{color:#cb4b16;}.hljs-solarized-dark .hljs-built_in,.hljs-solarized-dark .hljs-deletion{color:#dc322f;}.hljs-solarized-dark .hljs-formula{background:#073642;}.hljs-solarized-dark .hljs-emphasis{font-style:italic;}.hljs-solarized-dark .hljs-strong{font-weight:bold;}","solarized-light":".hljs-solarized-light{}.hljs-solarized-light .hljs{display:block;overflow-x:auto;padding:0.5em;background:#fdf6e3;color:#657b83;}.hljs-solarized-light .hljs-comment,.hljs-solarized-light .hljs-quote{color:#93a1a1;}.hljs-solarized-light .hljs-keyword,.hljs-solarized-light .hljs-selector-tag,.hljs-solarized-light .hljs-addition{color:#859900;}.hljs-solarized-light .hljs-number,.hljs-solarized-light .hljs-string,.hljs-solarized-light .hljs-meta .hljs-meta-string,.hljs-solarized-light .hljs-literal,.hljs-solarized-light .hljs-doctag,.hljs-solarized-light .hljs-regexp{color:#2aa198;}.hljs-solarized-light .hljs-title,.hljs-solarized-light .hljs-section,.hljs-solarized-light .hljs-name,.hljs-solarized-light .hljs-selector-id,.hljs-solarized-light .hljs-selector-class{color:#268bd2;}.hljs-solarized-light .hljs-attribute,.hljs-solarized-light .hljs-attr,.hljs-solarized-light .hljs-variable,.hljs-solarized-light .hljs-template-variable,.hljs-solarized-light .hljs-class .hljs-title,.hljs-solarized-light .hljs-type{color:#b58900;}.hljs-solarized-light .hljs-symbol,.hljs-solarized-light .hljs-bullet,.hljs-solarized-light .hljs-subst,.hljs-solarized-light .hljs-meta,.hljs-solarized-light .hljs-meta .hljs-keyword,.hljs-solarized-light .hljs-selector-attr,.hljs-solarized-light .hljs-selector-pseudo,.hljs-solarized-light .hljs-link{color:#cb4b16;}.hljs-solarized-light .hljs-built_in,.hljs-solarized-light .hljs-deletion{color:#dc322f;}.hljs-solarized-light .hljs-formula{background:#eee8d5;}.hljs-solarized-light .hljs-emphasis{font-style:italic;}.hljs-solarized-light .hljs-strong{font-weight:bold;}","sunburst":".hljs-sunburst{}.hljs-sunburst .hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;color:#f8f8f8;}.hljs-sunburst .hljs-comment,.hljs-sunburst .hljs-quote{color:#aeaeae;font-style:italic;}.hljs-sunburst .hljs-keyword,.hljs-sunburst .hljs-selector-tag,.hljs-sunburst .hljs-type{color:#e28964;}.hljs-sunburst .hljs-string{color:#65b042;}.hljs-sunburst .hljs-subst{color:#daefa3;}.hljs-sunburst .hljs-regexp,.hljs-sunburst .hljs-link{color:#e9c062;}.hljs-sunburst .hljs-title,.hljs-sunburst .hljs-section,.hljs-sunburst .hljs-tag,.hljs-sunburst .hljs-name{color:#89bdff;}.hljs-sunburst .hljs-class .hljs-title,.hljs-sunburst .hljs-doctag{text-decoration:underline;}.hljs-sunburst .hljs-symbol,.hljs-sunburst .hljs-bullet,.hljs-sunburst .hljs-number{color:#3387cc;}.hljs-sunburst .hljs-params,.hljs-sunburst .hljs-variable,.hljs-sunburst .hljs-template-variable{color:#3e87e3;}.hljs-sunburst .hljs-attribute{color:#cda869;}.hljs-sunburst .hljs-meta{color:#8996a8;}.hljs-sunburst .hljs-formula{background-color:#0e2231;color:#f8f8f8;font-style:italic;}.hljs-sunburst .hljs-addition{background-color:#253b22;color:#f8f8f8;}.hljs-sunburst .hljs-deletion{background-color:#420e09;color:#f8f8f8;}.hljs-sunburst .hljs-selector-class{color:#9b703f;}.hljs-sunburst .hljs-selector-id{color:#8b98ab;}.hljs-sunburst .hljs-emphasis{font-style:italic;}.hljs-sunburst .hljs-strong{font-weight:bold;}","tomorrow-night-blue":".hljs-tomorrow-night-blue{}.hljs-tomorrow-night-blue .hljs-comment,.hljs-tomorrow-night-blue .hljs-quote{color:#7285b7;}.hljs-tomorrow-night-blue .hljs-variable,.hljs-tomorrow-night-blue .hljs-template-variable,.hljs-tomorrow-night-blue .hljs-tag,.hljs-tomorrow-night-blue .hljs-name,.hljs-tomorrow-night-blue .hljs-selector-id,.hljs-tomorrow-night-blue .hljs-selector-class,.hljs-tomorrow-night-blue .hljs-regexp,.hljs-tomorrow-night-blue .hljs-deletion{color:#ff9da4;}.hljs-tomorrow-night-blue .hljs-number,.hljs-tomorrow-night-blue .hljs-built_in,.hljs-tomorrow-night-blue .hljs-builtin-name,.hljs-tomorrow-night-blue .hljs-literal,.hljs-tomorrow-night-blue .hljs-type,.hljs-tomorrow-night-blue .hljs-params,.hljs-tomorrow-night-blue .hljs-meta,.hljs-tomorrow-night-blue .hljs-link{color:#ffc58f;}.hljs-tomorrow-night-blue .hljs-attribute{color:#ffeead;}.hljs-tomorrow-night-blue .hljs-string,.hljs-tomorrow-night-blue .hljs-symbol,.hljs-tomorrow-night-blue .hljs-bullet,.hljs-tomorrow-night-blue .hljs-addition{color:#d1f1a9;}.hljs-tomorrow-night-blue .hljs-title,.hljs-tomorrow-night-blue .hljs-section{color:#bbdaff;}.hljs-tomorrow-night-blue .hljs-keyword,.hljs-tomorrow-night-blue .hljs-selector-tag{color:#ebbbff;}.hljs-tomorrow-night-blue .hljs{display:block;overflow-x:auto;background:#002451;color:white;padding:0.5em;}.hljs-tomorrow-night-blue .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night-blue .hljs-strong{font-weight:bold;}","tomorrow-night-bright":".hljs-tomorrow-night-bright{}.hljs-tomorrow-night-bright .hljs-comment,.hljs-tomorrow-night-bright .hljs-quote{color:#969896;}.hljs-tomorrow-night-bright .hljs-variable,.hljs-tomorrow-night-bright .hljs-template-variable,.hljs-tomorrow-night-bright .hljs-tag,.hljs-tomorrow-night-bright .hljs-name,.hljs-tomorrow-night-bright .hljs-selector-id,.hljs-tomorrow-night-bright .hljs-selector-class,.hljs-tomorrow-night-bright .hljs-regexp,.hljs-tomorrow-night-bright .hljs-deletion{color:#d54e53;}.hljs-tomorrow-night-bright .hljs-number,.hljs-tomorrow-night-bright .hljs-built_in,.hljs-tomorrow-night-bright .hljs-builtin-name,.hljs-tomorrow-night-bright .hljs-literal,.hljs-tomorrow-night-bright .hljs-type,.hljs-tomorrow-night-bright .hljs-params,.hljs-tomorrow-night-bright .hljs-meta,.hljs-tomorrow-night-bright .hljs-link{color:#e78c45;}.hljs-tomorrow-night-bright .hljs-attribute{color:#e7c547;}.hljs-tomorrow-night-bright .hljs-string,.hljs-tomorrow-night-bright .hljs-symbol,.hljs-tomorrow-night-bright .hljs-bullet,.hljs-tomorrow-night-bright .hljs-addition{color:#b9ca4a;}.hljs-tomorrow-night-bright .hljs-title,.hljs-tomorrow-night-bright .hljs-section{color:#7aa6da;}.hljs-tomorrow-night-bright .hljs-keyword,.hljs-tomorrow-night-bright .hljs-selector-tag{color:#c397d8;}.hljs-tomorrow-night-bright .hljs{display:block;overflow-x:auto;background:black;color:#eaeaea;padding:0.5em;}.hljs-tomorrow-night-bright .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night-bright .hljs-strong{font-weight:bold;}","tomorrow-night-eighties":".hljs-tomorrow-night-eighties{}.hljs-tomorrow-night-eighties .hljs-comment,.hljs-tomorrow-night-eighties .hljs-quote{color:#999999;}.hljs-tomorrow-night-eighties .hljs-variable,.hljs-tomorrow-night-eighties .hljs-template-variable,.hljs-tomorrow-night-eighties .hljs-tag,.hljs-tomorrow-night-eighties .hljs-name,.hljs-tomorrow-night-eighties .hljs-selector-id,.hljs-tomorrow-night-eighties .hljs-selector-class,.hljs-tomorrow-night-eighties .hljs-regexp,.hljs-tomorrow-night-eighties .hljs-deletion{color:#f2777a;}.hljs-tomorrow-night-eighties .hljs-number,.hljs-tomorrow-night-eighties .hljs-built_in,.hljs-tomorrow-night-eighties .hljs-builtin-name,.hljs-tomorrow-night-eighties .hljs-literal,.hljs-tomorrow-night-eighties .hljs-type,.hljs-tomorrow-night-eighties .hljs-params,.hljs-tomorrow-night-eighties .hljs-meta,.hljs-tomorrow-night-eighties .hljs-link{color:#f99157;}.hljs-tomorrow-night-eighties .hljs-attribute{color:#ffcc66;}.hljs-tomorrow-night-eighties .hljs-string,.hljs-tomorrow-night-eighties .hljs-symbol,.hljs-tomorrow-night-eighties .hljs-bullet,.hljs-tomorrow-night-eighties .hljs-addition{color:#99cc99;}.hljs-tomorrow-night-eighties .hljs-title,.hljs-tomorrow-night-eighties .hljs-section{color:#6699cc;}.hljs-tomorrow-night-eighties .hljs-keyword,.hljs-tomorrow-night-eighties .hljs-selector-tag{color:#cc99cc;}.hljs-tomorrow-night-eighties .hljs{display:block;overflow-x:auto;background:#2d2d2d;color:#cccccc;padding:0.5em;}.hljs-tomorrow-night-eighties .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night-eighties .hljs-strong{font-weight:bold;}","tomorrow-night":".hljs-tomorrow-night{}.hljs-tomorrow-night .hljs-comment,.hljs-tomorrow-night .hljs-quote{color:#969896;}.hljs-tomorrow-night .hljs-variable,.hljs-tomorrow-night .hljs-template-variable,.hljs-tomorrow-night .hljs-tag,.hljs-tomorrow-night .hljs-name,.hljs-tomorrow-night .hljs-selector-id,.hljs-tomorrow-night .hljs-selector-class,.hljs-tomorrow-night .hljs-regexp,.hljs-tomorrow-night .hljs-deletion{color:#cc6666;}.hljs-tomorrow-night .hljs-number,.hljs-tomorrow-night .hljs-built_in,.hljs-tomorrow-night .hljs-builtin-name,.hljs-tomorrow-night .hljs-literal,.hljs-tomorrow-night .hljs-type,.hljs-tomorrow-night .hljs-params,.hljs-tomorrow-night .hljs-meta,.hljs-tomorrow-night .hljs-link{color:#de935f;}.hljs-tomorrow-night .hljs-attribute{color:#f0c674;}.hljs-tomorrow-night .hljs-string,.hljs-tomorrow-night .hljs-symbol,.hljs-tomorrow-night .hljs-bullet,.hljs-tomorrow-night .hljs-addition{color:#b5bd68;}.hljs-tomorrow-night .hljs-title,.hljs-tomorrow-night .hljs-section{color:#81a2be;}.hljs-tomorrow-night .hljs-keyword,.hljs-tomorrow-night .hljs-selector-tag{color:#b294bb;}.hljs-tomorrow-night .hljs{display:block;overflow-x:auto;background:#1d1f21;color:#c5c8c6;padding:0.5em;}.hljs-tomorrow-night .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night .hljs-strong{font-weight:bold;}","tomorrow":".hljs-tomorrow{}.hljs-tomorrow .hljs-comment,.hljs-tomorrow .hljs-quote{color:#8e908c;}.hljs-tomorrow .hljs-variable,.hljs-tomorrow .hljs-template-variable,.hljs-tomorrow .hljs-tag,.hljs-tomorrow .hljs-name,.hljs-tomorrow .hljs-selector-id,.hljs-tomorrow .hljs-selector-class,.hljs-tomorrow .hljs-regexp,.hljs-tomorrow .hljs-deletion{color:#c82829;}.hljs-tomorrow .hljs-number,.hljs-tomorrow .hljs-built_in,.hljs-tomorrow .hljs-builtin-name,.hljs-tomorrow .hljs-literal,.hljs-tomorrow .hljs-type,.hljs-tomorrow .hljs-params,.hljs-tomorrow .hljs-meta,.hljs-tomorrow .hljs-link{color:#f5871f;}.hljs-tomorrow .hljs-attribute{color:#eab700;}.hljs-tomorrow .hljs-string,.hljs-tomorrow .hljs-symbol,.hljs-tomorrow .hljs-bullet,.hljs-tomorrow .hljs-addition{color:#718c00;}.hljs-tomorrow .hljs-title,.hljs-tomorrow .hljs-section{color:#4271ae;}.hljs-tomorrow .hljs-keyword,.hljs-tomorrow .hljs-selector-tag{color:#8959a8;}.hljs-tomorrow .hljs{display:block;overflow-x:auto;background:white;color:#4d4d4c;padding:0.5em;}.hljs-tomorrow .hljs-emphasis{font-style:italic;}.hljs-tomorrow .hljs-strong{font-weight:bold;}","vs":".hljs-vs{}.hljs-vs .hljs{display:block;overflow-x:auto;padding:0.5em;background:white;color:black;}.hljs-vs .hljs-comment,.hljs-vs .hljs-quote,.hljs-vs .hljs-variable{color:#008000;}.hljs-vs .hljs-keyword,.hljs-vs .hljs-selector-tag,.hljs-vs .hljs-built_in,.hljs-vs .hljs-name,.hljs-vs .hljs-tag{color:#00f;}.hljs-vs .hljs-string,.hljs-vs .hljs-title,.hljs-vs .hljs-section,.hljs-vs .hljs-attribute,.hljs-vs .hljs-literal,.hljs-vs .hljs-template-tag,.hljs-vs .hljs-template-variable,.hljs-vs .hljs-type,.hljs-vs .hljs-addition{color:#a31515;}.hljs-vs .hljs-deletion,.hljs-vs .hljs-selector-attr,.hljs-vs .hljs-selector-pseudo,.hljs-vs .hljs-meta{color:#2b91af;}.hljs-vs .hljs-doctag{color:#808080;}.hljs-vs .hljs-attr{color:#f00;}.hljs-vs .hljs-symbol,.hljs-vs .hljs-bullet,.hljs-vs .hljs-link{color:#00b0e8;}.hljs-vs .hljs-emphasis{font-style:italic;}.hljs-vs .hljs-strong{font-weight:bold;}","xcode":".hljs-xcode{}.hljs-xcode .hljs{display:block;overflow-x:auto;padding:0.5em;background:#fff;color:black;}.hljs-xcode .hljs-comment,.hljs-xcode .hljs-quote{color:#006a00;}.hljs-xcode .hljs-keyword,.hljs-xcode .hljs-selector-tag,.hljs-xcode .hljs-literal{color:#aa0d91;}.hljs-xcode .hljs-name{color:#008;}.hljs-xcode .hljs-variable,.hljs-xcode .hljs-template-variable{color:#660;}.hljs-xcode .hljs-string{color:#c41a16;}.hljs-xcode .hljs-regexp,.hljs-xcode .hljs-link{color:#080;}.hljs-xcode .hljs-title,.hljs-xcode .hljs-tag,.hljs-xcode .hljs-symbol,.hljs-xcode .hljs-bullet,.hljs-xcode .hljs-number,.hljs-xcode .hljs-meta{color:#1c00cf;}.hljs-xcode .hljs-section,.hljs-xcode .hljs-class .hljs-title,.hljs-xcode .hljs-type,.hljs-xcode .hljs-attr,.hljs-xcode .hljs-built_in,.hljs-xcode .hljs-builtin-name,.hljs-xcode .hljs-params{color:#5c2699;}.hljs-xcode .hljs-attribute,.hljs-xcode .hljs-subst{color:#000;}.hljs-xcode .hljs-formula{background-color:#eee;font-style:italic;}.hljs-xcode .hljs-addition{background-color:#baeeba;}.hljs-xcode .hljs-deletion{background-color:#ffc8bd;}.hljs-xcode .hljs-selector-id,.hljs-xcode .hljs-selector-class{color:#9b703f;}.hljs-xcode .hljs-doctag,.hljs-xcode .hljs-strong{font-weight:bold;}.hljs-xcode .hljs-emphasis{font-style:italic;}","zenburn":".hljs-zenburn{}.hljs-zenburn .hljs{display:block;overflow-x:auto;padding:0.5em;background:#3f3f3f;color:#dcdcdc;}.hljs-zenburn .hljs-keyword,.hljs-zenburn .hljs-selector-tag,.hljs-zenburn .hljs-tag{color:#e3ceab;}.hljs-zenburn .hljs-template-tag{color:#dcdcdc;}.hljs-zenburn .hljs-number{color:#8cd0d3;}.hljs-zenburn .hljs-variable,.hljs-zenburn .hljs-template-variable,.hljs-zenburn .hljs-attribute{color:#efdcbc;}.hljs-zenburn .hljs-literal{color:#efefaf;}.hljs-zenburn .hljs-subst{color:#8f8f8f;}.hljs-zenburn .hljs-title,.hljs-zenburn .hljs-name,.hljs-zenburn .hljs-selector-id,.hljs-zenburn .hljs-selector-class,.hljs-zenburn .hljs-section,.hljs-zenburn .hljs-type{color:#efef8f;}.hljs-zenburn .hljs-symbol,.hljs-zenburn .hljs-bullet,.hljs-zenburn .hljs-link{color:#dca3a3;}.hljs-zenburn .hljs-deletion,.hljs-zenburn .hljs-string,.hljs-zenburn .hljs-built_in,.hljs-zenburn .hljs-builtin-name{color:#cc9393;}.hljs-zenburn .hljs-addition,.hljs-zenburn .hljs-comment,.hljs-zenburn .hljs-quote,.hljs-zenburn .hljs-meta{color:#7f9f7f;}.hljs-zenburn .hljs-emphasis{font-style:italic;}.hljs-zenburn .hljs-strong{font-weight:bold;}"},
16040 engine: hljs
16041};
16042
16043})()
16044},{}],8:[function(require,module,exports){
16045exports.addClass = function (element, className) {
16046 element.className = exports.getClasses(element)
16047 .concat([className])
16048 .join(' ');
16049};
16050
16051exports.removeClass = function (element, className) {
16052 element.className = exports.getClasses(element)
16053 .filter(function (klass) { return klass !== className; })
16054 .join(' ');
16055};
16056
16057exports.toggleClass = function (element, className) {
16058 var classes = exports.getClasses(element),
16059 index = classes.indexOf(className);
16060
16061 if (index !== -1) {
16062 classes.splice(index, 1);
16063 }
16064 else {
16065 classes.push(className);
16066 }
16067
16068 element.className = classes.join(' ');
16069};
16070
16071exports.getClasses = function (element) {
16072 return element.className
16073 .split(' ')
16074 .filter(function (s) { return s !== ''; });
16075};
16076
16077exports.hasClass = function (element, className) {
16078 return exports.getClasses(element).indexOf(className) !== -1;
16079};
16080
16081exports.getPrefixedProperty = function (element, propertyName) {
16082 var capitalizedPropertName = propertyName[0].toUpperCase() +
16083 propertyName.slice(1);
16084
16085 return element[propertyName] || element['moz' + capitalizedPropertName] ||
16086 element['webkit' + capitalizedPropertName];
16087};
16088
16089},{}],4:[function(require,module,exports){
16090var EventEmitter = require('events').EventEmitter
16091 , highlighter = require('./highlighter')
16092 , converter = require('./converter')
16093 , resources = require('./resources')
16094 , Parser = require('./parser')
16095 , Slideshow = require('./models/slideshow')
16096 , SlideshowView = require('./views/slideshowView')
16097 , DefaultController = require('./controllers/defaultController')
16098 , Dom = require('./dom')
16099 , macros = require('./macros')
16100 ;
16101
16102module.exports = Api;
16103
16104function Api (dom) {
16105 this.dom = dom || new Dom();
16106 this.macros = macros;
16107 this.version = resources.version;
16108}
16109
16110// Expose highlighter to allow enumerating available styles and
16111// including external language grammars
16112Api.prototype.highlighter = highlighter;
16113
16114Api.prototype.convert = function (markdown) {
16115 var parser = new Parser()
16116 , content = parser.parse(markdown || '', macros)[0].content
16117 ;
16118
16119 return converter.convertMarkdown(content, {}, true);
16120};
16121
16122// Creates slideshow initialized from options
16123Api.prototype.create = function (options) {
16124 var events
16125 , slideshow
16126 , slideshowView
16127 , controller
16128 ;
16129
16130 options = applyDefaults(this.dom, options);
16131
16132 events = new EventEmitter();
16133 events.setMaxListeners(0);
16134
16135 slideshow = new Slideshow(events, options);
16136 slideshowView = new SlideshowView(events, this.dom, options.container, slideshow);
16137 controller = options.controller || new DefaultController(events, this.dom, slideshowView, options.navigation);
16138
16139 return slideshow;
16140};
16141
16142function applyDefaults (dom, options) {
16143 var sourceElement;
16144
16145 options = options || {};
16146
16147 if (options.hasOwnProperty('sourceUrl')) {
16148 var req = new dom.XMLHttpRequest();
16149 req.open('GET', options.sourceUrl, false);
16150 req.send();
16151 options.source = req.responseText.replace(/\r\n/g, '\n');
16152 }
16153 else if (!options.hasOwnProperty('source')) {
16154 sourceElement = dom.getElementById('source');
16155 if (sourceElement) {
16156 options.source = unescape(sourceElement.innerHTML);
16157 sourceElement.style.display = 'none';
16158 }
16159 }
16160
16161 if (!(options.container instanceof window.HTMLElement)) {
16162 options.container = dom.getBodyElement();
16163 }
16164
16165 return options;
16166}
16167
16168function unescape (source) {
16169 source = source.replace(/&[l|g]t;/g,
16170 function (match) {
16171 return match === '&lt;' ? '<' : '>';
16172 });
16173
16174 source = source.replace(/&amp;/g, '&');
16175 source = source.replace(/&quot;/g, '"');
16176
16177 return source;
16178}
16179
16180},{"events":1,"./highlighter":7,"./converter":9,"./resources":6,"./parser":10,"./models/slideshow":11,"./views/slideshowView":12,"./controllers/defaultController":13,"./dom":14,"./macros":15}],14:[function(require,module,exports){
16181module.exports = Dom;
16182
16183function Dom () { }
16184
16185Dom.prototype.XMLHttpRequest = XMLHttpRequest;
16186
16187Dom.prototype.getHTMLElement = function () {
16188 return document.getElementsByTagName('html')[0];
16189};
16190
16191Dom.prototype.getBodyElement = function () {
16192 return document.body;
16193};
16194
16195Dom.prototype.getElementById = function (id) {
16196 return document.getElementById(id);
16197};
16198
16199Dom.prototype.getLocationHash = function () {
16200 return window.location.hash;
16201};
16202
16203Dom.prototype.setLocationHash = function (hash) {
16204 if (typeof window.history.replaceState === 'function' && document.origin !== 'null') {
16205 window.history.replaceState(undefined, undefined, hash);
16206 }
16207 else {
16208 window.location.hash = hash;
16209 }
16210};
16211
16212},{}],15:[function(require,module,exports){
16213var macros = module.exports = {};
16214
16215macros.hello = function () {
16216 return 'hello!';
16217};
16218
16219},{}],10:[function(require,module,exports){
16220(function(){var Lexer = require('./lexer');
16221
16222module.exports = Parser;
16223
16224function Parser () { }
16225
16226/*
16227 * Parses source string into list of slides.
16228 *
16229 * Output format:
16230 *
16231 * [
16232 * // Per slide
16233 * {
16234 * // Properties
16235 * properties: {
16236 * name: 'value'
16237 * },
16238 * // Notes (optional, same format as content list)
16239 * notes: [...],
16240 * // Link definitions
16241 * links: {
16242 * id: { href: 'url', title: 'optional title' },
16243 * ...
16244 * ],
16245 * content: [
16246 * // Any content but content classes are represented as strings
16247 * 'plain text ',
16248 * // Content classes are represented as objects
16249 * { block: false, class: 'the-class', content: [...] },
16250 * { block: true, class: 'the-class', content: [...] },
16251 * ...
16252 * ]
16253 * },
16254 * ...
16255 * ]
16256 */
16257Parser.prototype.parse = function (src, macros) {
16258 var self = this,
16259 lexer = new Lexer(),
16260 tokens = lexer.lex(cleanInput(src)),
16261 slides = [],
16262
16263 // The last item on the stack contains the current slide or
16264 // content class we're currently appending content to.
16265 stack = [createSlide()];
16266
16267 macros = macros || {};
16268
16269 tokens.forEach(function (token) {
16270 switch (token.type) {
16271 case 'text':
16272 case 'code':
16273 case 'fences':
16274 // Text, code and fenced code tokens are appended to their
16275 // respective parents as string literals, and are only included
16276 // in the parse process in order to reason about structure
16277 // (like ignoring a slide separator inside fenced code).
16278 appendTo(stack[stack.length - 1], token.text);
16279 break;
16280 case 'def':
16281 // Link definition
16282 stack[0].links[token.id] = {
16283 href: token.href,
16284 title: token.title
16285 };
16286 break;
16287 case 'macro':
16288 // Macro
16289 var macro = macros[token.name];
16290 if (typeof macro !== 'function') {
16291 throw new Error('Macro "' + token.name + '" not found. ' +
16292 'You need to define macro using remark.macros[\'' +
16293 token.name + '\'] = function () { ... };');
16294 }
16295 var value = macro.apply(token.obj, token.args);
16296 if (typeof value === 'string') {
16297 value = self.parse(value, macros);
16298 appendTo(stack[stack.length - 1], value[0].content[0]);
16299 }
16300 else {
16301 appendTo(stack[stack.length - 1], value === undefined ?
16302 '' : value.toString());
16303 }
16304 break;
16305 case 'content_start':
16306 // Entering content class, so create stack entry for appending
16307 // upcoming content to.
16308 //
16309 // Lexer handles open/close bracket balance, so there's no need
16310 // to worry about there being a matching closing bracket.
16311 stack.push(createContentClass(token));
16312 break;
16313 case 'content_end':
16314 // Exiting content class, so remove entry from stack and
16315 // append to previous item (outer content class or slide).
16316 appendTo(stack[stack.length - 2], stack[stack.length - 1]);
16317 stack.pop();
16318 break;
16319 case 'separator':
16320 // Slide separator (--- or --), so add current slide to list of
16321 // slides and re-initialize stack with new, blank slide.
16322 slides.push(stack[0]);
16323 stack = [createSlide()];
16324 // Tag the new slide as a continued slide if the separator
16325 // used was -- instead of --- (2 vs. 3 dashes).
16326 stack[0].properties.continued = (token.text === '--').toString();
16327 break;
16328 case 'notes_separator':
16329 // Notes separator (???), so create empty content list on slide
16330 // in which all remaining slide content will be put.
16331 stack[0].notes = [];
16332 break;
16333 }
16334 });
16335
16336 // Push current slide to list of slides.
16337 slides.push(stack[0]);
16338
16339 slides.forEach(function (slide) {
16340 slide.content[0] = extractProperties(slide.content[0] || '', slide.properties);
16341 });
16342
16343 return slides.filter(function (slide) {
16344 var exclude = (slide.properties.exclude || '').toLowerCase();
16345
16346 if (exclude === 'true') {
16347 return false;
16348 }
16349
16350 return true;
16351 });
16352};
16353
16354function createSlide () {
16355 return {
16356 content: [],
16357 properties: {
16358 continued: 'false'
16359 },
16360 links: {}
16361 };
16362}
16363
16364function createContentClass (token) {
16365 return {
16366 class: token.classes.join(' '),
16367 block: token.block,
16368 content: []
16369 };
16370}
16371
16372function appendTo (element, content) {
16373 var target = element.content;
16374
16375 if (element.notes !== undefined) {
16376 target = element.notes;
16377 }
16378
16379 // If two string are added after one another, we can just as well
16380 // go ahead and concatenate them into a single string.
16381 var lastIdx = target.length - 1;
16382 if (typeof target[lastIdx] === 'string' && typeof content === 'string') {
16383 target[lastIdx] += content;
16384 }
16385 else {
16386 target.push(content);
16387 }
16388}
16389
16390function extractProperties (source, properties) {
16391 var propertyFinder = /^\n*([-\w]+):([^$\n]*)|\n*(?:<!--\s*)([-\w]+):([^$\n]*?)(?:\s*-->)/i
16392 , match
16393 ;
16394
16395 while ((match = propertyFinder.exec(source)) !== null) {
16396 source = source.substr(0, match.index) +
16397 source.substr(match.index + match[0].length);
16398
16399 if (match[1] !== undefined) {
16400 properties[match[1].trim()] = match[2].trim();
16401 }
16402 else {
16403 properties[match[3].trim()] = match[4].trim();
16404 }
16405
16406 propertyFinder.lastIndex = match.index;
16407 }
16408
16409 return source;
16410}
16411
16412function cleanInput(source) {
16413 // If all lines are indented, we should trim them all to the same point so that code doesn't
16414 // need to start at column 0 in the source (see GitHub Issue #105)
16415
16416 // Helper to extract captures from the regex
16417 var getMatchCaptures = function (source, pattern) {
16418 var results = [], match;
16419 while ((match = pattern.exec(source)) !== null)
16420 results.push(match[1]);
16421 return results;
16422 };
16423
16424 // Calculate the minimum leading whitespace
16425 // Ensure there's at least one char that's not newline nor whitespace to ignore empty and blank lines
16426 var leadingWhitespacePattern = /^([ \t]*)[^ \t\n]/gm;
16427 var whitespace = getMatchCaptures(source, leadingWhitespacePattern).map(function (s) { return s.length; });
16428 var minWhitespace = Math.min.apply(Math, whitespace);
16429
16430 // Trim off the exact amount of whitespace, or less for blank lines (non-empty)
16431 var trimWhitespacePattern = new RegExp('^[ \\t]{0,' + minWhitespace + '}', 'gm');
16432 return source.replace(trimWhitespacePattern, '');
16433}
16434
16435})()
16436},{"./lexer":16}],11:[function(require,module,exports){
16437var Navigation = require('./slideshow/navigation')
16438 , Events = require('./slideshow/events')
16439 , utils = require('../utils')
16440 , Slide = require('./slide')
16441 , Parser = require('../parser')
16442 , macros = require('../macros')
16443 ;
16444
16445module.exports = Slideshow;
16446
16447function Slideshow (events, options) {
16448 var self = this
16449 , slides = []
16450 , links = {}
16451 ;
16452
16453 options = options || {};
16454
16455 // Extend slideshow functionality
16456 Events.call(self, events);
16457 Navigation.call(self, events);
16458
16459 self.loadFromString = loadFromString;
16460 self.update = update;
16461 self.getLinks = getLinks;
16462 self.getSlides = getSlides;
16463 self.getSlideCount = getSlideCount;
16464 self.getSlideByName = getSlideByName;
16465
16466 self.togglePresenterMode = togglePresenterMode;
16467 self.toggleHelp = toggleHelp;
16468 self.toggleBlackout = toggleBlackout;
16469 self.toggleMirrored = toggleMirrored;
16470 self.toggleFullscreen = toggleFullscreen;
16471 self.createClone = createClone;
16472
16473 self.resetTimer = resetTimer;
16474
16475 self.getRatio = getOrDefault('ratio', '4:3');
16476 self.getHighlightStyle = getOrDefault('highlightStyle', 'default');
16477 self.getHighlightLines = getOrDefault('highlightLines', false);
16478 self.getHighlightSpans = getOrDefault('highlightSpans', false);
16479 self.getHighlightLanguage = getOrDefault('highlightLanguage', '');
16480 self.getSlideNumberFormat = getOrDefault('slideNumberFormat', '%current% / %total%');
16481
16482 loadFromString(options.source);
16483
16484 events.on('toggleBlackout', function () {
16485 if (self.clone && !self.clone.closed) {
16486 self.clone.postMessage('toggleBlackout', '*');
16487 }
16488 });
16489
16490 function loadFromString (source) {
16491 source = source || '';
16492
16493 slides = createSlides(source, options);
16494 expandVariables(slides);
16495
16496 links = {};
16497 slides.forEach(function (slide) {
16498 for (var id in slide.links) {
16499 if (slide.links.hasOwnProperty(id)) {
16500 links[id] = slide.links[id];
16501 }
16502 }
16503 });
16504
16505 events.emit('slidesChanged');
16506 }
16507
16508 function update () {
16509 events.emit('resize');
16510 }
16511
16512 function getLinks () {
16513 return links;
16514 }
16515
16516 function getSlides () {
16517 return slides.map(function (slide) { return slide; });
16518 }
16519
16520 function getSlideCount () {
16521 return slides.length;
16522 }
16523
16524 function getSlideByName (name) {
16525 return slides.byName[name];
16526 }
16527
16528 function togglePresenterMode () {
16529 events.emit('togglePresenterMode');
16530 }
16531
16532 function toggleHelp () {
16533 events.emit('toggleHelp');
16534 }
16535
16536 function toggleBlackout () {
16537 events.emit('toggleBlackout');
16538 }
16539
16540 function toggleMirrored() {
16541 events.emit('toggleMirrored');
16542 }
16543
16544 function toggleFullscreen () {
16545 events.emit('toggleFullscreen');
16546 }
16547
16548 function createClone () {
16549 events.emit('createClone');
16550 }
16551
16552 function resetTimer () {
16553 events.emit('resetTimer');
16554 }
16555
16556 function getOrDefault (key, defaultValue) {
16557 return function () {
16558 if (options[key] === undefined) {
16559 return defaultValue;
16560 }
16561
16562 return options[key];
16563 };
16564 }
16565}
16566
16567function createSlides (slideshowSource, options) {
16568 var parser = new Parser()
16569 , parsedSlides = parser.parse(slideshowSource, macros)
16570 , slides = []
16571 , byName = {}
16572 , layoutSlide
16573 ;
16574
16575 slides.byName = {};
16576
16577 parsedSlides.forEach(function (slide, i) {
16578 var template, slideViewModel;
16579
16580 if (slide.properties.continued === 'true' && i > 0) {
16581 template = slides[slides.length - 1];
16582 }
16583 else if (byName[slide.properties.template]) {
16584 template = byName[slide.properties.template];
16585 }
16586 else if (slide.properties.layout === 'false') {
16587 layoutSlide = undefined;
16588 }
16589 else if (layoutSlide && slide.properties.layout !== 'true') {
16590 template = layoutSlide;
16591 }
16592
16593 if (slide.properties.continued === 'true' &&
16594 options.countIncrementalSlides === false &&
16595 slide.properties.count === undefined) {
16596 slide.properties.count = 'false';
16597 }
16598
16599 slideViewModel = new Slide(slides.length, slide, template);
16600
16601 if (slide.properties.layout === 'true') {
16602 layoutSlide = slideViewModel;
16603 }
16604
16605 if (slide.properties.name) {
16606 byName[slide.properties.name] = slideViewModel;
16607 }
16608
16609 if (slide.properties.layout !== 'true') {
16610 slides.push(slideViewModel);
16611 if (slide.properties.name) {
16612 slides.byName[slide.properties.name] = slideViewModel;
16613 }
16614 }
16615 });
16616
16617 return slides;
16618}
16619
16620function expandVariables (slides) {
16621 slides.forEach(function (slide) {
16622 slide.expandVariables();
16623 });
16624}
16625
16626},{"./slideshow/navigation":17,"../utils":8,"./slide":18,"./slideshow/events":19,"../parser":10,"../macros":15}],12:[function(require,module,exports){
16627var SlideView = require('./slideView')
16628 , Timer = require('components/timer')
16629 , NotesView = require('./notesView')
16630 , Scaler = require('../scaler')
16631 , resources = require('../resources')
16632 , utils = require('../utils')
16633 , printing = require('components/printing')
16634 ;
16635
16636module.exports = SlideshowView;
16637
16638function SlideshowView (events, dom, containerElement, slideshow) {
16639 var self = this;
16640
16641 self.events = events;
16642 self.dom = dom;
16643 self.slideshow = slideshow;
16644 self.scaler = new Scaler(events, slideshow);
16645 self.slideViews = [];
16646
16647 self.configureContainerElement(containerElement);
16648 self.configureChildElements();
16649
16650 self.updateDimensions();
16651 self.scaleElements();
16652 self.updateSlideViews();
16653
16654 self.timer = new Timer(events, self.timerElement);
16655
16656 events.on('slidesChanged', function () {
16657 self.updateSlideViews();
16658 });
16659
16660 events.on('hideSlide', function (slideIndex) {
16661 // To make sure that there is only one element fading at a time,
16662 // remove the fading class from all slides before hiding
16663 // the new slide.
16664 self.elementArea.getElementsByClassName('remark-fading').forEach(function (slide) {
16665 utils.removeClass(slide, 'remark-fading');
16666 });
16667 self.hideSlide(slideIndex);
16668 });
16669
16670 events.on('showSlide', function (slideIndex) {
16671 self.showSlide(slideIndex);
16672 });
16673
16674 events.on('forcePresenterMode', function () {
16675
16676 if (!utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
16677 utils.toggleClass(self.containerElement, 'remark-presenter-mode');
16678 self.scaleElements();
16679 printing.setPageOrientation('landscape');
16680 }
16681 });
16682
16683 events.on('togglePresenterMode', function () {
16684 utils.toggleClass(self.containerElement, 'remark-presenter-mode');
16685 self.scaleElements();
16686 events.emit('toggledPresenter', self.slideshow.getCurrentSlideIndex() + 1);
16687
16688 if (utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
16689 printing.setPageOrientation('portrait');
16690 }
16691 else {
16692 printing.setPageOrientation('landscape');
16693 }
16694 });
16695
16696 events.on('toggleHelp', function () {
16697 utils.toggleClass(self.containerElement, 'remark-help-mode');
16698 });
16699
16700 events.on('toggleBlackout', function () {
16701 utils.toggleClass(self.containerElement, 'remark-blackout-mode');
16702 });
16703
16704 events.on('toggleMirrored', function () {
16705 utils.toggleClass(self.containerElement, 'remark-mirrored-mode');
16706 });
16707
16708 events.on('hideOverlay', function () {
16709 utils.removeClass(self.containerElement, 'remark-blackout-mode');
16710 utils.removeClass(self.containerElement, 'remark-help-mode');
16711 });
16712
16713 events.on('pause', function () {
16714 utils.toggleClass(self.containerElement, 'remark-pause-mode');
16715 });
16716
16717 events.on('resume', function () {
16718 utils.toggleClass(self.containerElement, 'remark-pause-mode');
16719 });
16720
16721 handleFullscreen(self);
16722}
16723
16724function handleFullscreen(self) {
16725 var requestFullscreen = utils.getPrefixedProperty(self.containerElement, 'requestFullScreen')
16726 , cancelFullscreen = utils.getPrefixedProperty(document, 'cancelFullScreen')
16727 ;
16728
16729 self.events.on('toggleFullscreen', function () {
16730 var fullscreenElement = utils.getPrefixedProperty(document, 'fullscreenElement') ||
16731 utils.getPrefixedProperty(document, 'fullScreenElement');
16732
16733 if (!fullscreenElement && requestFullscreen) {
16734 requestFullscreen.call(self.containerElement, Element.ALLOW_KEYBOARD_INPUT);
16735 }
16736 else if (cancelFullscreen) {
16737 cancelFullscreen.call(document);
16738 }
16739 self.scaleElements();
16740 });
16741}
16742
16743SlideshowView.prototype.isEmbedded = function () {
16744 return this.containerElement !== this.dom.getBodyElement();
16745};
16746
16747SlideshowView.prototype.configureContainerElement = function (element) {
16748 var self = this;
16749
16750 self.containerElement = element;
16751
16752 utils.addClass(element, 'remark-container');
16753
16754 if (element === self.dom.getBodyElement()) {
16755 utils.addClass(self.dom.getHTMLElement(), 'remark-container');
16756
16757 forwardEvents(self.events, window, [
16758 'hashchange', 'resize', 'keydown', 'keypress', 'mousewheel',
16759 'message', 'DOMMouseScroll'
16760 ]);
16761 forwardEvents(self.events, self.containerElement, [
16762 'touchstart', 'touchmove', 'touchend', 'click', 'contextmenu'
16763 ]);
16764 }
16765 else {
16766 element.style.position = 'absolute';
16767 element.tabIndex = -1;
16768
16769 forwardEvents(self.events, window, ['resize']);
16770 forwardEvents(self.events, element, [
16771 'keydown', 'keypress', 'mousewheel',
16772 'touchstart', 'touchmove', 'touchend'
16773 ]);
16774 }
16775
16776 // Tap event is handled in slideshow view
16777 // rather than controller as knowledge of
16778 // container width is needed to determine
16779 // whether to move backwards or forwards
16780 self.events.on('tap', function (endX) {
16781 if (endX < self.containerElement.clientWidth / 2) {
16782 self.slideshow.gotoPreviousSlide();
16783 }
16784 else {
16785 self.slideshow.gotoNextSlide();
16786 }
16787 });
16788};
16789
16790function forwardEvents (target, source, events) {
16791 events.forEach(function (eventName) {
16792 source.addEventListener(eventName, function () {
16793 var args = Array.prototype.slice.call(arguments);
16794 target.emit.apply(target, [eventName].concat(args));
16795 });
16796 });
16797}
16798
16799SlideshowView.prototype.configureChildElements = function () {
16800 var self = this;
16801
16802 self.containerElement.innerHTML += resources.containerLayout;
16803
16804 self.elementArea = self.containerElement.getElementsByClassName('remark-slides-area')[0];
16805 self.previewArea = self.containerElement.getElementsByClassName('remark-preview-area')[0];
16806 self.notesArea = self.containerElement.getElementsByClassName('remark-notes-area')[0];
16807
16808 self.notesView = new NotesView (self.events, self.notesArea, function () {
16809 return self.slideViews;
16810 });
16811
16812 self.backdropElement = self.containerElement.getElementsByClassName('remark-backdrop')[0];
16813 self.helpElement = self.containerElement.getElementsByClassName('remark-help')[0];
16814
16815 self.timerElement = self.notesArea.getElementsByClassName('remark-toolbar-timer')[0];
16816 self.pauseElement = self.containerElement.getElementsByClassName('remark-pause')[0];
16817
16818 self.events.on('propertiesChanged', function (changes) {
16819 if (changes.hasOwnProperty('ratio')) {
16820 self.updateDimensions();
16821 }
16822 });
16823
16824 self.events.on('resize', onResize);
16825
16826 printing.init();
16827 printing.on('print', onPrint);
16828
16829 function onResize () {
16830 self.scaleElements();
16831 }
16832
16833 function onPrint (e) {
16834 var slideHeight;
16835
16836 if (e.isPortrait) {
16837 slideHeight = e.pageHeight * 0.4;
16838 }
16839 else {
16840 slideHeight = e.pageHeight;
16841 }
16842
16843 self.slideViews.forEach(function (slideView) {
16844 slideView.scale({
16845 clientWidth: e.pageWidth,
16846 clientHeight: slideHeight
16847 });
16848
16849 if (e.isPortrait) {
16850 slideView.scalingElement.style.top = '20px';
16851 slideView.notesElement.style.top = slideHeight + 40 + 'px';
16852 }
16853 });
16854 }
16855};
16856
16857SlideshowView.prototype.updateSlideViews = function () {
16858 var self = this;
16859
16860 self.slideViews.forEach(function (slideView) {
16861 self.elementArea.removeChild(slideView.containerElement);
16862 });
16863
16864 self.slideViews = self.slideshow.getSlides().map(function (slide) {
16865 return new SlideView(self.events, self.slideshow, self.scaler, slide);
16866 });
16867
16868 self.slideViews.forEach(function (slideView) {
16869 self.elementArea.appendChild(slideView.containerElement);
16870 });
16871
16872 self.updateDimensions();
16873
16874 if (self.slideshow.getCurrentSlideIndex() > -1) {
16875 self.showSlide(self.slideshow.getCurrentSlideIndex());
16876 }
16877};
16878
16879SlideshowView.prototype.scaleSlideBackgroundImages = function (dimensions) {
16880 var self = this;
16881
16882 self.slideViews.forEach(function (slideView) {
16883 slideView.scaleBackgroundImage(dimensions);
16884 });
16885};
16886
16887SlideshowView.prototype.showSlide = function (slideIndex) {
16888 var self = this
16889 , slideView = self.slideViews[slideIndex]
16890 , nextSlideView = self.slideViews[slideIndex + 1]
16891 ;
16892
16893 self.events.emit("beforeShowSlide", slideIndex);
16894
16895 slideView.show();
16896
16897 if (nextSlideView) {
16898 self.previewArea.innerHTML = nextSlideView.containerElement.outerHTML;
16899 }
16900 else {
16901 self.previewArea.innerHTML = '';
16902 }
16903
16904 self.events.emit("afterShowSlide", slideIndex);
16905};
16906
16907SlideshowView.prototype.hideSlide = function (slideIndex) {
16908 var self = this
16909 , slideView = self.slideViews[slideIndex]
16910 ;
16911
16912 self.events.emit("beforeHideSlide", slideIndex);
16913 slideView.hide();
16914 self.events.emit("afterHideSlide", slideIndex);
16915
16916};
16917
16918SlideshowView.prototype.updateDimensions = function () {
16919 var self = this
16920 , dimensions = self.scaler.dimensions
16921 ;
16922
16923 self.helpElement.style.width = dimensions.width + 'px';
16924 self.helpElement.style.height = dimensions.height + 'px';
16925
16926 self.scaleSlideBackgroundImages(dimensions);
16927 self.scaleElements();
16928};
16929
16930SlideshowView.prototype.scaleElements = function () {
16931 var self = this;
16932
16933 self.slideViews.forEach(function (slideView) {
16934 slideView.scale(self.elementArea);
16935 });
16936
16937 if (self.previewArea.children.length) {
16938 self.scaler.scaleToFit(self.previewArea.children[0].children[0], self.previewArea);
16939 }
16940 self.scaler.scaleToFit(self.helpElement, self.containerElement);
16941 self.scaler.scaleToFit(self.pauseElement, self.containerElement);
16942};
16943
16944},{"components/timer":"GFo1Ae","components/printing":"yoGRCZ","./slideView":20,"./notesView":21,"../scaler":22,"../resources":6,"../utils":8}],13:[function(require,module,exports){
16945(function(){// Allow override of global `location`
16946/* global location:true */
16947
16948module.exports = Controller;
16949
16950var keyboard = require('./inputs/keyboard')
16951 , mouse = require('./inputs/mouse')
16952 , touch = require('./inputs/touch')
16953 , message = require('./inputs/message')
16954 , location = require('./inputs/location')
16955 ;
16956
16957function Controller (events, dom, slideshowView, options) {
16958 options = options || {};
16959
16960 message.register(events);
16961 location.register(events, dom, slideshowView);
16962 keyboard.register(events);
16963 mouse.register(events, options);
16964 touch.register(events, options);
16965
16966 addApiEventListeners(events, slideshowView, options);
16967}
16968
16969function addApiEventListeners(events, slideshowView, options) {
16970 events.on('pause', function(event) {
16971 keyboard.unregister(events);
16972 mouse.unregister(events);
16973 touch.unregister(events);
16974 });
16975
16976 events.on('resume', function(event) {
16977 keyboard.register(events);
16978 mouse.register(events, options);
16979 touch.register(events, options);
16980 });
16981}
16982
16983})()
16984},{"./inputs/keyboard":23,"./inputs/mouse":24,"./inputs/touch":25,"./inputs/message":26,"./inputs/location":27}],16:[function(require,module,exports){
16985module.exports = Lexer;
16986
16987var CODE = 1,
16988 INLINE_CODE = 2,
16989 CONTENT = 3,
16990 FENCES = 4,
16991 DEF = 5,
16992 DEF_HREF = 6,
16993 DEF_TITLE = 7,
16994 MACRO = 8,
16995 MACRO_ARGS = 9,
16996 MACRO_OBJ = 10,
16997 SEPARATOR = 11,
16998 NOTES_SEPARATOR = 12;
16999
17000var regexByName = {
17001 CODE: /(?:^|\n)( {4}[^\n]+\n*)+/,
17002 INLINE_CODE: /`([^`]+?)`/,
17003 CONTENT: /(?:\\)?((?:\.[a-zA-Z_\-][a-zA-Z\-_0-9]*)+)\[/,
17004 FENCES: /(?:^|\n) *(`{3,}|~{3,}) *(?:\S+)? *\n(?:[\s\S]+?)\s*\4 *(?:\n+|$)/,
17005 DEF: /(?:^|\n) *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
17006 MACRO: /!\[:([^\] ]+)([^\]]*)\](?:\(([^\)]*)\))?/,
17007 SEPARATOR: /(?:^|\n)(---?)(?:\n|$)/,
17008 NOTES_SEPARATOR: /(?:^|\n)(\?{3})(?:\n|$)/
17009 };
17010
17011var block = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO|SEPARATOR|NOTES_SEPARATOR/, regexByName),
17012 inline = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO/, regexByName);
17013
17014function Lexer () { }
17015
17016Lexer.prototype.lex = function (src) {
17017 var tokens = lex(src, block),
17018 i;
17019
17020 for (i = tokens.length - 2; i >= 0; i--) {
17021 if (tokens[i].type === 'text' && tokens[i+1].type === 'text') {
17022 tokens[i].text += tokens[i+1].text;
17023 tokens.splice(i+1, 1);
17024 }
17025 }
17026
17027 return tokens;
17028};
17029
17030function lex (src, regex, tokens) {
17031 var cap, text;
17032
17033 tokens = tokens || [];
17034
17035 while ((cap = regex.exec(src)) !== null) {
17036 if (cap.index > 0) {
17037 tokens.push({
17038 type: 'text',
17039 text: src.substring(0, cap.index)
17040 });
17041 }
17042
17043 if (cap[CODE]) {
17044 tokens.push({
17045 type: 'code',
17046 text: cap[0]
17047 });
17048 }
17049 else if (cap[INLINE_CODE]) {
17050 tokens.push({
17051 type: 'text',
17052 text: cap[0]
17053 });
17054 }
17055 else if (cap[FENCES]) {
17056 tokens.push({
17057 type: 'fences',
17058 text: cap[0]
17059 });
17060 }
17061 else if (cap[DEF]) {
17062 tokens.push({
17063 type: 'def',
17064 id: cap[DEF],
17065 href: cap[DEF_HREF],
17066 title: cap[DEF_TITLE]
17067 });
17068 }
17069 else if (cap[MACRO]) {
17070 tokens.push({
17071 type: 'macro',
17072 name: cap[MACRO],
17073 args: (cap[MACRO_ARGS] || '').split(',').map(trim),
17074 obj: cap[MACRO_OBJ]
17075 });
17076 }
17077 else if (cap[SEPARATOR]) {
17078 tokens.push({
17079 type: 'separator',
17080 text: cap[SEPARATOR]
17081 });
17082 }
17083 else if (cap[NOTES_SEPARATOR]) {
17084 tokens.push({
17085 type: 'notes_separator',
17086 text: cap[NOTES_SEPARATOR]
17087 });
17088 }
17089 else if (cap[CONTENT]) {
17090 text = getTextInBrackets(src, cap.index + cap[0].length);
17091 if (text !== undefined) {
17092 src = src.substring(text.length + 1);
17093
17094 if (cap[0][0] !== '\\') {
17095 tokens.push({
17096 type: 'content_start',
17097 classes: cap[CONTENT].substring(1).split('.'),
17098 block: text.indexOf('\n') !== -1
17099 });
17100 lex(text, inline, tokens);
17101 tokens.push({
17102 type: 'content_end',
17103 block: text.indexOf('\n') !== -1
17104 });
17105 }
17106 else {
17107 tokens.push({
17108 type: 'text',
17109 text: cap[0].substring(1) + text + ']'
17110 });
17111 }
17112 }
17113 else {
17114 tokens.push({
17115 type: 'text',
17116 text: cap[0]
17117 });
17118 }
17119 }
17120
17121 src = src.substring(cap.index + cap[0].length);
17122 }
17123
17124 if (src || (!src && tokens.length === 0)) {
17125 tokens.push({
17126 type: 'text',
17127 text: src
17128 });
17129 }
17130
17131 return tokens;
17132}
17133
17134function replace (regex, replacements) {
17135 return new RegExp(regex.source.replace(/\w{2,}/g, function (key) {
17136 return replacements[key].source;
17137 }));
17138}
17139
17140function trim (text) {
17141 if (typeof text === 'string') {
17142 return text.trim();
17143 }
17144
17145 return text;
17146}
17147
17148function getTextInBrackets (src, offset) {
17149 var depth = 1,
17150 pos = offset,
17151 chr;
17152
17153 while (depth > 0 && pos < src.length) {
17154 chr = src[pos++];
17155 depth += (chr === '[' && 1) || (chr === ']' && -1) || 0;
17156 }
17157
17158 if (depth === 0) {
17159 src = src.substr(offset, pos - offset - 1);
17160 return src;
17161 }
17162}
17163
17164},{}],17:[function(require,module,exports){
17165module.exports = Navigation;
17166
17167function Navigation (events) {
17168 var self = this
17169 , currentSlideIndex = -1
17170 , started = null
17171 ;
17172
17173 self.getCurrentSlideIndex = getCurrentSlideIndex;
17174 self.gotoSlide = gotoSlide;
17175 self.gotoPreviousSlide = gotoPreviousSlide;
17176 self.gotoNextSlide = gotoNextSlide;
17177 self.gotoFirstSlide = gotoFirstSlide;
17178 self.gotoLastSlide = gotoLastSlide;
17179 self.pause = pause;
17180 self.resume = resume;
17181
17182 events.on('gotoSlide', gotoSlide);
17183 events.on('gotoPreviousSlide', gotoPreviousSlide);
17184 events.on('gotoNextSlide', gotoNextSlide);
17185 events.on('gotoFirstSlide', gotoFirstSlide);
17186 events.on('gotoLastSlide', gotoLastSlide);
17187
17188 events.on('slidesChanged', function () {
17189 if (currentSlideIndex > self.getSlideCount()) {
17190 currentSlideIndex = self.getSlideCount();
17191 }
17192 });
17193
17194 events.on('createClone', function () {
17195 if (!self.clone || self.clone.closed) {
17196 self.clone = window.open(location.href, '_blank', 'location=no');
17197 }
17198 else {
17199 self.clone.focus();
17200 }
17201 });
17202
17203 events.on('resetTimer', function() {
17204 started = false;
17205 });
17206
17207 function pause () {
17208 events.emit('pause');
17209 }
17210
17211 function resume () {
17212 events.emit('resume');
17213 }
17214
17215 function getCurrentSlideIndex () {
17216 return currentSlideIndex;
17217 }
17218
17219 function gotoSlideByIndex(slideIndex, noMessage) {
17220 var alreadyOnSlide = slideIndex === currentSlideIndex
17221 , slideOutOfRange = slideIndex < 0 || slideIndex > self.getSlideCount()-1
17222 ;
17223
17224 if (noMessage === undefined) noMessage = false;
17225
17226 if (alreadyOnSlide || slideOutOfRange) {
17227 return;
17228 }
17229
17230 if (currentSlideIndex !== -1) {
17231 events.emit('hideSlide', currentSlideIndex, false);
17232 }
17233
17234 // Use some tri-state logic here.
17235 // null = We haven't shown the first slide yet.
17236 // false = We've shown the initial slide, but we haven't progressed beyond that.
17237 // true = We've issued the first slide change command.
17238 if (started === null) {
17239 started = false;
17240 } else if (started === false) {
17241 // We've shown the initial slide previously - that means this is a
17242 // genuine move to a new slide.
17243 events.emit('start');
17244 started = true;
17245 }
17246
17247 events.emit('showSlide', slideIndex);
17248
17249 currentSlideIndex = slideIndex;
17250
17251 events.emit('slideChanged', slideIndex + 1);
17252
17253 if (!noMessage) {
17254 if (self.clone && !self.clone.closed) {
17255 self.clone.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
17256 }
17257
17258 if (window.opener) {
17259 window.opener.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
17260 }
17261 }
17262 }
17263
17264 function gotoSlide (slideNoOrName, noMessage) {
17265 var slideIndex = getSlideIndex(slideNoOrName);
17266
17267 gotoSlideByIndex(slideIndex, noMessage);
17268 }
17269
17270 function gotoPreviousSlide() {
17271 gotoSlideByIndex(currentSlideIndex - 1);
17272 }
17273
17274 function gotoNextSlide() {
17275 gotoSlideByIndex(currentSlideIndex + 1);
17276 }
17277
17278 function gotoFirstSlide () {
17279 gotoSlideByIndex(0);
17280 }
17281
17282 function gotoLastSlide () {
17283 gotoSlideByIndex(self.getSlideCount() - 1);
17284 }
17285
17286 function getSlideIndex (slideNoOrName) {
17287 var slideNo
17288 , slide
17289 ;
17290
17291 if (typeof slideNoOrName === 'number') {
17292 return slideNoOrName - 1;
17293 }
17294
17295 slideNo = parseInt(slideNoOrName, 10);
17296 if (slideNo.toString() === slideNoOrName) {
17297 return slideNo - 1;
17298 }
17299
17300 if(slideNoOrName.match(/^p\d+$/)){
17301 events.emit('forcePresenterMode');
17302 return parseInt(slideNoOrName.substr(1), 10)-1;
17303 }
17304
17305 slide = self.getSlideByName(slideNoOrName);
17306 if (slide) {
17307 return slide.getSlideIndex();
17308 }
17309
17310 return 0;
17311 }
17312}
17313
17314},{}],18:[function(require,module,exports){
17315module.exports = Slide;
17316
17317function Slide (slideIndex, slide, template) {
17318 var self = this;
17319
17320 self.properties = slide.properties || {};
17321 self.links = slide.links || {};
17322 self.content = slide.content || [];
17323 self.notes = slide.notes || '';
17324
17325 self.getSlideIndex = function () { return slideIndex; };
17326
17327 if (template) {
17328 inherit(self, template);
17329 }
17330}
17331
17332function inherit (slide, template) {
17333 inheritProperties(slide, template);
17334 inheritContent(slide, template);
17335 inheritNotes(slide, template);
17336}
17337
17338function inheritProperties (slide, template) {
17339 var property
17340 , value
17341 ;
17342
17343 for (property in template.properties) {
17344 if (!template.properties.hasOwnProperty(property) ||
17345 ignoreProperty(property)) {
17346 continue;
17347 }
17348
17349 value = [template.properties[property]];
17350
17351 if (property === 'class' && slide.properties[property]) {
17352 value.push(slide.properties[property]);
17353 }
17354
17355 if (property === 'class' || slide.properties[property] === undefined) {
17356 slide.properties[property] = value.join(', ');
17357 }
17358 }
17359}
17360
17361function ignoreProperty (property) {
17362 return property === 'name' ||
17363 property === 'layout' ||
17364 property === 'count';
17365}
17366
17367function inheritContent (slide, template) {
17368 var expandedVariables;
17369
17370 slide.properties.content = slide.content.slice();
17371 slide.content = template.content.slice();
17372
17373 expandedVariables = slide.expandVariables(/* contentOnly: */ true);
17374
17375 if (expandedVariables.content === undefined) {
17376 slide.content = slide.content.concat(slide.properties.content);
17377 }
17378
17379 delete slide.properties.content;
17380}
17381
17382function inheritNotes (slide, template) {
17383 if (template.notes) {
17384 slide.notes = template.notes + '\n\n' + slide.notes;
17385 }
17386}
17387
17388Slide.prototype.expandVariables = function (contentOnly, content, expandResult) {
17389 var properties = this.properties
17390 , i
17391 ;
17392
17393 content = content !== undefined ? content : this.content;
17394 expandResult = expandResult || {};
17395
17396 for (i = 0; i < content.length; ++i) {
17397 if (typeof content[i] === 'string') {
17398 content[i] = content[i].replace(/(\\)?(\{\{([^\}\n]+)\}\})/g, expand);
17399 }
17400 else {
17401 this.expandVariables(contentOnly, content[i].content, expandResult);
17402 }
17403 }
17404
17405 function expand (match, escaped, unescapedMatch, property) {
17406 var propertyName = property.trim()
17407 , propertyValue
17408 ;
17409
17410 if (escaped) {
17411 return contentOnly ? match[0] : unescapedMatch;
17412 }
17413
17414 if (contentOnly && propertyName !== 'content') {
17415 return match;
17416 }
17417
17418 propertyValue = properties[propertyName];
17419
17420 if (propertyValue !== undefined) {
17421 expandResult[propertyName] = propertyValue;
17422 return propertyValue;
17423 }
17424
17425 return propertyName === 'content' ? '' : unescapedMatch;
17426 }
17427
17428 return expandResult;
17429};
17430
17431},{}],19:[function(require,module,exports){
17432var EventEmitter = require('events').EventEmitter;
17433
17434module.exports = Events;
17435
17436function Events (events) {
17437 var self = this
17438 , externalEvents = new EventEmitter()
17439 ;
17440
17441 externalEvents.setMaxListeners(0);
17442
17443 self.on = function () {
17444 externalEvents.on.apply(externalEvents, arguments);
17445 return self;
17446 };
17447
17448 ['showSlide', 'hideSlide', 'beforeShowSlide', 'afterShowSlide', 'beforeHideSlide', 'afterHideSlide', 'toggledPresenter'].map(function (eventName) {
17449 events.on(eventName, function (slideIndex) {
17450 var slide = self.getSlides()[slideIndex];
17451 externalEvents.emit(eventName, slide);
17452 });
17453 });
17454}
17455
17456},{"events":1}],22:[function(require,module,exports){
17457var referenceWidth = 908
17458 , referenceHeight = 681
17459 , referenceRatio = referenceWidth / referenceHeight
17460 ;
17461
17462module.exports = Scaler;
17463
17464function Scaler (events, slideshow) {
17465 var self = this;
17466
17467 self.events = events;
17468 self.slideshow = slideshow;
17469 self.ratio = getRatio(slideshow);
17470 self.dimensions = getDimensions(self.ratio);
17471
17472 self.events.on('propertiesChanged', function (changes) {
17473 if (changes.hasOwnProperty('ratio')) {
17474 self.ratio = getRatio(slideshow);
17475 self.dimensions = getDimensions(self.ratio);
17476 }
17477 });
17478}
17479
17480Scaler.prototype.scaleToFit = function (element, container) {
17481 var self = this
17482 , containerHeight = container.clientHeight
17483 , containerWidth = container.clientWidth
17484 , scale
17485 , scaledWidth
17486 , scaledHeight
17487 , ratio = self.ratio
17488 , dimensions = self.dimensions
17489 , direction
17490 , left
17491 , top
17492 ;
17493
17494 if (containerWidth / ratio.width > containerHeight / ratio.height) {
17495 scale = containerHeight / dimensions.height;
17496 }
17497 else {
17498 scale = containerWidth / dimensions.width;
17499 }
17500
17501 scaledWidth = dimensions.width * scale;
17502 scaledHeight = dimensions.height * scale;
17503
17504 left = (containerWidth - scaledWidth) / 2;
17505 top = (containerHeight - scaledHeight) / 2;
17506
17507 element.style['-webkit-transform'] = 'scale(' + scale + ')';
17508 element.style.MozTransform = 'scale(' + scale + ')';
17509 element.style.left = Math.max(left, 0) + 'px';
17510 element.style.top = Math.max(top, 0) + 'px';
17511};
17512
17513function getRatio (slideshow) {
17514 var ratioComponents = slideshow.getRatio().split(':')
17515 , ratio
17516 ;
17517
17518 ratio = {
17519 width: parseInt(ratioComponents[0], 10)
17520 , height: parseInt(ratioComponents[1], 10)
17521 };
17522
17523 ratio.ratio = ratio.width / ratio.height;
17524
17525 return ratio;
17526}
17527
17528function getDimensions (ratio) {
17529 return {
17530 width: Math.floor(referenceWidth / referenceRatio * ratio.ratio)
17531 , height: referenceHeight
17532 };
17533}
17534
17535},{}],23:[function(require,module,exports){
17536exports.register = function (events) {
17537 addKeyboardEventListeners(events);
17538};
17539
17540exports.unregister = function (events) {
17541 removeKeyboardEventListeners(events);
17542};
17543
17544function addKeyboardEventListeners (events) {
17545 events.on('keydown', function (event) {
17546 if (event.metaKey || event.ctrlKey) {
17547 // Bail out if meta or ctrl key was pressed
17548 return;
17549 }
17550
17551 switch (event.keyCode) {
17552 case 33: // Page up
17553 case 37: // Left
17554 case 38: // Up
17555 events.emit('gotoPreviousSlide');
17556 break;
17557 case 32: // Space
17558 case 34: // Page down
17559 case 39: // Right
17560 case 40: // Down
17561 events.emit('gotoNextSlide');
17562 break;
17563 case 36: // Home
17564 events.emit('gotoFirstSlide');
17565 break;
17566 case 35: // End
17567 events.emit('gotoLastSlide');
17568 break;
17569 case 27: // Escape
17570 events.emit('hideOverlay');
17571 break;
17572 }
17573 });
17574
17575 events.on('keypress', function (event) {
17576 if (event.metaKey || event.ctrlKey) {
17577 // Bail out if meta or ctrl key was pressed
17578 return;
17579 }
17580
17581 switch (String.fromCharCode(event.which).toLowerCase()) {
17582 case 'j':
17583 events.emit('gotoNextSlide');
17584 break;
17585 case 'k':
17586 events.emit('gotoPreviousSlide');
17587 break;
17588 case 'b':
17589 events.emit('toggleBlackout');
17590 break;
17591 case 'm':
17592 events.emit('toggleMirrored');
17593 break;
17594 case 'c':
17595 events.emit('createClone');
17596 break;
17597 case 'p':
17598 events.emit('togglePresenterMode');
17599 break;
17600 case 'f':
17601 events.emit('toggleFullscreen');
17602 break;
17603 case 't':
17604 events.emit('resetTimer');
17605 break;
17606 case 'h':
17607 case '?':
17608 events.emit('toggleHelp');
17609 break;
17610 }
17611 });
17612}
17613
17614function removeKeyboardEventListeners(events) {
17615 events.removeAllListeners("keydown");
17616 events.removeAllListeners("keypress");
17617}
17618
17619},{}],24:[function(require,module,exports){
17620exports.register = function (events, options) {
17621 addMouseEventListeners(events, options);
17622};
17623
17624exports.unregister = function (events) {
17625 removeMouseEventListeners(events);
17626};
17627
17628function addMouseEventListeners (events, options) {
17629 if (options.click) {
17630 events.on('click', function (event) {
17631 if (event.target.nodeName === 'A') {
17632 // Don't interfere when clicking link
17633 return;
17634 }
17635 else if (event.button === 0) {
17636 events.emit('gotoNextSlide');
17637 }
17638 });
17639 events.on('contextmenu', function (event) {
17640 if (event.target.nodeName === 'A') {
17641 // Don't interfere when right-clicking link
17642 return;
17643 }
17644 event.preventDefault();
17645 events.emit('gotoPreviousSlide');
17646 });
17647 }
17648
17649 if (options.scroll !== false) {
17650 var scrollHandler = function (event) {
17651 if (event.wheelDeltaY > 0 || event.detail < 0) {
17652 events.emit('gotoPreviousSlide');
17653 }
17654 else if (event.wheelDeltaY < 0 || event.detail > 0) {
17655 events.emit('gotoNextSlide');
17656 }
17657 };
17658
17659 // IE9, Chrome, Safari, Opera
17660 events.on('mousewheel', scrollHandler);
17661 // Firefox
17662 events.on('DOMMouseScroll', scrollHandler);
17663 }
17664}
17665
17666function removeMouseEventListeners(events) {
17667 events.removeAllListeners('click');
17668 events.removeAllListeners('contextmenu');
17669 events.removeAllListeners('mousewheel');
17670}
17671
17672},{}],25:[function(require,module,exports){
17673exports.register = function (events, options) {
17674 addTouchEventListeners(events, options);
17675};
17676
17677exports.unregister = function (events) {
17678 removeTouchEventListeners(events);
17679};
17680
17681function addTouchEventListeners (events, options) {
17682 var touch
17683 , startX
17684 , endX
17685 ;
17686
17687 if (options.touch === false) {
17688 return;
17689 }
17690
17691 var isTap = function () {
17692 return Math.abs(startX - endX) < 10;
17693 };
17694
17695 var handleTap = function () {
17696 events.emit('tap', endX);
17697 };
17698
17699 var handleSwipe = function () {
17700 if (startX > endX) {
17701 events.emit('gotoNextSlide');
17702 }
17703 else {
17704 events.emit('gotoPreviousSlide');
17705 }
17706 };
17707
17708 events.on('touchstart', function (event) {
17709 touch = event.touches[0];
17710 startX = touch.clientX;
17711 });
17712
17713 events.on('touchend', function (event) {
17714 if (event.target.nodeName.toUpperCase() === 'A') {
17715 return;
17716 }
17717
17718 touch = event.changedTouches[0];
17719 endX = touch.clientX;
17720
17721 if (isTap()) {
17722 handleTap();
17723 }
17724 else {
17725 handleSwipe();
17726 }
17727 });
17728
17729 events.on('touchmove', function (event) {
17730 event.preventDefault();
17731 });
17732}
17733
17734function removeTouchEventListeners(events) {
17735 events.removeAllListeners("touchstart");
17736 events.removeAllListeners("touchend");
17737 events.removeAllListeners("touchmove");
17738}
17739
17740},{}],26:[function(require,module,exports){
17741exports.register = function (events) {
17742 addMessageEventListeners(events);
17743};
17744
17745function addMessageEventListeners (events) {
17746 events.on('message', navigateByMessage);
17747
17748 function navigateByMessage(message) {
17749 var cap;
17750
17751 if ((cap = /^gotoSlide:(\d+)$/.exec(message.data)) !== null) {
17752 events.emit('gotoSlide', parseInt(cap[1], 10), true);
17753 }
17754 else if (message.data === 'toggleBlackout') {
17755 events.emit('toggleBlackout');
17756 }
17757 }
17758}
17759
17760},{}],20:[function(require,module,exports){
17761var SlideNumber = require('components/slide-number')
17762 , converter = require('../converter')
17763 , highlighter = require('../highlighter')
17764 , utils = require('../utils')
17765 ;
17766
17767module.exports = SlideView;
17768
17769function SlideView (events, slideshow, scaler, slide) {
17770 var self = this;
17771
17772 self.events = events;
17773 self.slideshow = slideshow;
17774 self.scaler = scaler;
17775 self.slide = slide;
17776
17777 self.slideNumber = new SlideNumber(slide, slideshow);
17778
17779 self.configureElements();
17780 self.updateDimensions();
17781
17782 self.events.on('propertiesChanged', function (changes) {
17783 if (changes.hasOwnProperty('ratio')) {
17784 self.updateDimensions();
17785 }
17786 });
17787}
17788
17789SlideView.prototype.updateDimensions = function () {
17790 var self = this
17791 , dimensions = self.scaler.dimensions
17792 ;
17793
17794 self.scalingElement.style.width = dimensions.width + 'px';
17795 self.scalingElement.style.height = dimensions.height + 'px';
17796};
17797
17798SlideView.prototype.scale = function (containerElement) {
17799 var self = this;
17800
17801 self.scaler.scaleToFit(self.scalingElement, containerElement);
17802};
17803
17804SlideView.prototype.show = function () {
17805 utils.addClass(this.containerElement, 'remark-visible');
17806 utils.removeClass(this.containerElement, 'remark-fading');
17807};
17808
17809SlideView.prototype.hide = function () {
17810 var self = this;
17811 utils.removeClass(this.containerElement, 'remark-visible');
17812 // Don't just disappear the slide. Mark it as fading, which
17813 // keeps it on the screen, but at a reduced z-index.
17814 // Then set a timer to remove the fading state in 1s.
17815 utils.addClass(this.containerElement, 'remark-fading');
17816 setTimeout(function(){
17817 utils.removeClass(self.containerElement, 'remark-fading');
17818 }, 1000);
17819};
17820
17821SlideView.prototype.configureElements = function () {
17822 var self = this;
17823
17824 self.containerElement = document.createElement('div');
17825 self.containerElement.className = 'remark-slide-container';
17826
17827 self.scalingElement = document.createElement('div');
17828 self.scalingElement.className = 'remark-slide-scaler';
17829
17830 self.element = document.createElement('div');
17831 self.element.className = 'remark-slide';
17832
17833 self.contentElement = createContentElement(self.events, self.slideshow, self.slide);
17834 self.notesElement = createNotesElement(self.slideshow, self.slide.notes);
17835
17836 self.contentElement.appendChild(self.slideNumber.element);
17837 self.element.appendChild(self.contentElement);
17838 self.scalingElement.appendChild(self.element);
17839 self.containerElement.appendChild(self.scalingElement);
17840 self.containerElement.appendChild(self.notesElement);
17841};
17842
17843SlideView.prototype.scaleBackgroundImage = function (dimensions) {
17844 var self = this
17845 , styles = window.getComputedStyle(this.contentElement)
17846 , backgroundImage = styles.backgroundImage
17847 , match
17848 , image
17849 , scale
17850 ;
17851
17852 if ((match = /^url\(("?)([^\)]+?)\1\)/.exec(backgroundImage)) !== null) {
17853 image = new Image();
17854 image.onload = function () {
17855 if (image.width > dimensions.width ||
17856 image.height > dimensions.height) {
17857 // Background image is larger than slide
17858 if (!self.originalBackgroundSize) {
17859 // No custom background size has been set
17860 self.originalBackgroundSize = self.contentElement.style.backgroundSize;
17861 self.originalBackgroundPosition = self.contentElement.style.backgroundPosition;
17862 self.backgroundSizeSet = true;
17863
17864 if (dimensions.width / image.width < dimensions.height / image.height) {
17865 scale = dimensions.width / image.width;
17866 }
17867 else {
17868 scale = dimensions.height / image.height;
17869 }
17870
17871 self.contentElement.style.backgroundSize = image.width * scale +
17872 'px ' + image.height * scale + 'px';
17873 self.contentElement.style.backgroundPosition = '50% ' +
17874 ((dimensions.height - (image.height * scale)) / 2) + 'px';
17875 }
17876 }
17877 else {
17878 // Revert to previous background size setting
17879 if (self.backgroundSizeSet) {
17880 self.contentElement.style.backgroundSize = self.originalBackgroundSize;
17881 self.contentElement.style.backgroundPosition = self.originalBackgroundPosition;
17882 self.backgroundSizeSet = false;
17883 }
17884 }
17885 };
17886 image.src = match[2];
17887 }
17888};
17889
17890function createContentElement (events, slideshow, slide) {
17891 var element = document.createElement('div');
17892
17893 if (slide.properties.name) {
17894 element.id = 'slide-' + slide.properties.name;
17895 }
17896
17897 styleContentElement(slideshow, element, slide.properties);
17898
17899 element.innerHTML = converter.convertMarkdown(slide.content, slideshow.getLinks());
17900
17901 highlightCodeBlocks(element, slideshow);
17902
17903 return element;
17904}
17905
17906function styleContentElement (slideshow, element, properties) {
17907 element.className = '';
17908
17909 setClassFromProperties(element, properties);
17910 setHighlightStyleFromProperties(element, properties, slideshow);
17911 setBackgroundFromProperties(element, properties);
17912}
17913
17914function createNotesElement (slideshow, notes) {
17915 var element = document.createElement('div');
17916
17917 element.className = 'remark-slide-notes';
17918
17919 element.innerHTML = converter.convertMarkdown(notes);
17920
17921 highlightCodeBlocks(element, slideshow);
17922
17923 return element;
17924}
17925
17926function setBackgroundFromProperties (element, properties) {
17927 var backgroundImage = properties['background-image'];
17928 var backgroundColor = properties['background-color'];
17929
17930 if (backgroundImage) {
17931 element.style.backgroundImage = backgroundImage;
17932 }
17933 if (backgroundColor) {
17934 element.style.backgroundColor = backgroundColor;
17935 }
17936}
17937
17938function setHighlightStyleFromProperties (element, properties, slideshow) {
17939 var highlightStyle = properties['highlight-style'] ||
17940 slideshow.getHighlightStyle();
17941
17942 if (highlightStyle) {
17943 utils.addClass(element, 'hljs-' + highlightStyle);
17944 }
17945}
17946
17947function setClassFromProperties (element, properties) {
17948 utils.addClass(element, 'remark-slide-content');
17949
17950 (properties['class'] || '').split(/,| /)
17951 .filter(function (s) { return s !== ''; })
17952 .forEach(function (c) { utils.addClass(element, c); });
17953}
17954
17955function highlightCodeBlocks (content, slideshow) {
17956 var codeBlocks = content.getElementsByTagName('code'),
17957 highlightLines = slideshow.getHighlightLines(),
17958 highlightSpans = slideshow.getHighlightSpans(),
17959 meta;
17960
17961 codeBlocks.forEach(function (block) {
17962 if (block.parentElement.tagName !== 'PRE') {
17963 utils.addClass(block, 'remark-inline-code');
17964 return;
17965 }
17966
17967 if (block.className === '') {
17968 block.className = slideshow.getHighlightLanguage();
17969 }
17970
17971 if (highlightLines) {
17972 meta = extractMetadata(block);
17973 }
17974
17975 if (block.className !== '') {
17976 highlighter.engine.highlightBlock(block, ' ');
17977 }
17978
17979 wrapLines(block);
17980
17981 if (highlightLines) {
17982 highlightBlockLines(block, meta.highlightedLines);
17983 }
17984
17985 if (highlightSpans) {
17986 highlightBlockSpans(block);
17987 }
17988
17989 utils.addClass(block, 'remark-code');
17990 });
17991}
17992
17993function extractMetadata (block) {
17994 var highlightedLines = [];
17995
17996 block.innerHTML = block.innerHTML.split(/\r?\n/).map(function (line, i) {
17997 if (line.indexOf('*') === 0) {
17998 highlightedLines.push(i);
17999 return line.replace(/^\*( )?/, '$1$1');
18000 }
18001
18002 return line;
18003 }).join('\n');
18004
18005 return {
18006 highlightedLines: highlightedLines
18007 };
18008}
18009
18010function wrapLines (block) {
18011 var lines = block.innerHTML.split(/\r?\n/).map(function (line) {
18012 return '<div class="remark-code-line">' + line + '</div>';
18013 });
18014
18015 // Remove empty last line (due to last \n)
18016 if (lines.length && lines[lines.length - 1].indexOf('><') !== -1) {
18017 lines.pop();
18018 }
18019
18020 block.innerHTML = lines.join('');
18021}
18022
18023function highlightBlockLines (block, lines) {
18024 lines.forEach(function (i) {
18025 utils.addClass(block.childNodes[i], 'remark-code-line-highlighted');
18026 });
18027}
18028
18029function highlightBlockSpans (block) {
18030 var pattern = /([^`])`([^`]+?)`/g ;
18031
18032 block.childNodes.forEach(function (element) {
18033 element.innerHTML = element.innerHTML.replace(pattern,
18034 function (m,e,c) {
18035 if (e === '\\') {
18036 return m.substr(1);
18037 }
18038 return e + '<span class="remark-code-span-highlighted">' +
18039 c + '</span>';
18040 });
18041 });
18042}
18043
18044},{"components/slide-number":"GSZq7a","../converter":9,"../highlighter":7,"../utils":8}],21:[function(require,module,exports){
18045var converter = require('../converter');
18046
18047module.exports = NotesView;
18048
18049function NotesView (events, element, slideViewsAccessor) {
18050 var self = this;
18051
18052 self.events = events;
18053 self.element = element;
18054 self.slideViewsAccessor = slideViewsAccessor;
18055
18056 self.configureElements();
18057
18058 events.on('showSlide', function (slideIndex) {
18059 self.showSlide(slideIndex);
18060 });
18061}
18062
18063NotesView.prototype.showSlide = function (slideIndex) {
18064 var self = this
18065 , slideViews = self.slideViewsAccessor()
18066 , slideView = slideViews[slideIndex]
18067 , nextSlideView = slideViews[slideIndex + 1]
18068 ;
18069
18070 self.notesElement.innerHTML = slideView.notesElement.innerHTML;
18071
18072 if (nextSlideView) {
18073 self.notesPreviewElement.innerHTML = nextSlideView.notesElement.innerHTML;
18074 }
18075 else {
18076 self.notesPreviewElement.innerHTML = '';
18077 }
18078};
18079
18080NotesView.prototype.configureElements = function () {
18081 var self = this;
18082
18083 self.notesElement = self.element.getElementsByClassName('remark-notes')[0];
18084 self.notesPreviewElement = self.element.getElementsByClassName('remark-notes-preview')[0];
18085
18086 self.notesElement.addEventListener('mousewheel', function (event) {
18087 event.stopPropagation();
18088 });
18089
18090 self.notesPreviewElement.addEventListener('mousewheel', function (event) {
18091 event.stopPropagation();
18092 });
18093
18094 self.toolbarElement = self.element.getElementsByClassName('remark-toolbar')[0];
18095
18096 var commands = {
18097 increase: function () {
18098 self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) + 0.1 + 'em';
18099 self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
18100 },
18101 decrease: function () {
18102 self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) - 0.1 + 'em';
18103 self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
18104 }
18105 };
18106
18107 self.toolbarElement.getElementsByTagName('a').forEach(function (link) {
18108 link.addEventListener('click', function (e) {
18109 var command = e.target.hash.substr(1);
18110 commands[command]();
18111 e.preventDefault();
18112 });
18113 });
18114};
18115
18116},{"../converter":9}],27:[function(require,module,exports){
18117var utils = require('../../utils.js');
18118
18119exports.register = function (events, dom, slideshowView) {
18120 addLocationEventListeners(events, dom, slideshowView);
18121};
18122
18123function addLocationEventListeners (events, dom, slideshowView) {
18124 // If slideshow is embedded into custom DOM element, we don't
18125 // hook up to location hash changes, so just go to first slide.
18126 if (slideshowView.isEmbedded()) {
18127 events.emit('gotoSlide', 1);
18128 }
18129 // When slideshow is not embedded into custom DOM element, but
18130 // rather hosted directly inside document.body, we hook up to
18131 // location hash changes, and trigger initial navigation.
18132 else {
18133 events.on('hashchange', navigateByHash);
18134 events.on('slideChanged', updateHash);
18135 events.on('toggledPresenter', updateHash);
18136
18137 navigateByHash();
18138 }
18139
18140 function navigateByHash () {
18141 var slideNoOrName = (dom.getLocationHash() || '').substr(1);
18142 events.emit('gotoSlide', slideNoOrName);
18143 }
18144
18145 function updateHash (slideNoOrName) {
18146 if(utils.hasClass(slideshowView.containerElement, 'remark-presenter-mode')){
18147 dom.setLocationHash('#p' + slideNoOrName);
18148 }
18149 else{
18150 dom.setLocationHash('#' + slideNoOrName);
18151 }
18152 }
18153}
18154
18155},{"../../utils.js":8}],9:[function(require,module,exports){
18156var marked = require('marked')
18157 , converter = module.exports = {}
18158 , element = document.createElement('div')
18159 ;
18160
18161marked.setOptions({
18162 gfm: true,
18163 tables: true,
18164 breaks: false,
18165
18166 // Without this set to true, converting something like
18167 // <p>*</p><p>*</p> will become <p><em></p><p></em></p>
18168 pedantic: true,
18169
18170 sanitize: false,
18171 smartLists: true,
18172 langPrefix: ''
18173});
18174
18175converter.convertMarkdown = function (content, links, inline) {
18176 element.innerHTML = convertMarkdown(content, links || {}, inline);
18177 element.innerHTML = element.innerHTML.replace(/<p>\s*<\/p>/g, '');
18178 return element.innerHTML.replace(/\n\r?$/, '');
18179};
18180
18181function convertMarkdown (content, links, insideContentClass) {
18182 var i, tag, markdown = '', html;
18183
18184 for (i = 0; i < content.length; ++i) {
18185 if (typeof content[i] === 'string') {
18186 markdown += content[i];
18187 }
18188 else {
18189 tag = content[i].block ? 'div' : 'span';
18190 markdown += '<' + tag + ' class="' + content[i].class + '">';
18191 markdown += convertMarkdown(content[i].content, links, true);
18192 markdown += '</' + tag + '>';
18193 }
18194 }
18195
18196 var tokens = marked.Lexer.lex(markdown.replace(/^\s+/, ''));
18197 tokens.links = links;
18198 html = marked.Parser.parse(tokens);
18199
18200 if (insideContentClass) {
18201 element.innerHTML = html;
18202 if (element.children.length === 1 && element.children[0].tagName === 'P') {
18203 html = element.children[0].innerHTML;
18204 }
18205 }
18206
18207 return html;
18208}
18209
18210},{"marked":28}],28:[function(require,module,exports){
18211(function(global){/**
18212 * marked - a markdown parser
18213 * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
18214 * https://github.com/chjj/marked
18215 */
18216
18217;(function() {
18218
18219/**
18220 * Block-Level Grammar
18221 */
18222
18223var block = {
18224 newline: /^\n+/,
18225 code: /^( {4}[^\n]+\n*)+/,
18226 fences: noop,
18227 hr: /^( *[-*_]){3,} *(?:\n+|$)/,
18228 heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
18229 nptable: noop,
18230 lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
18231 blockquote: /^( *>[^\n]+(\n[^\n]+)*\n*)+/,
18232 list: /^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
18233 html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,
18234 def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
18235 table: noop,
18236 paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
18237 text: /^[^\n]+/
18238};
18239
18240block.bullet = /(?:[*+-]|\d+\.)/;
18241block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;
18242block.item = replace(block.item, 'gm')
18243 (/bull/g, block.bullet)
18244 ();
18245
18246block.list = replace(block.list)
18247 (/bull/g, block.bullet)
18248 ('hr', /\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)
18249 ();
18250
18251block._tag = '(?!(?:'
18252 + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'
18253 + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'
18254 + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';
18255
18256block.html = replace(block.html)
18257 ('comment', /<!--[\s\S]*?-->/)
18258 ('closed', /<(tag)[\s\S]+?<\/\1>/)
18259 ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)
18260 (/tag/g, block._tag)
18261 ();
18262
18263block.paragraph = replace(block.paragraph)
18264 ('hr', block.hr)
18265 ('heading', block.heading)
18266 ('lheading', block.lheading)
18267 ('blockquote', block.blockquote)
18268 ('tag', '<' + block._tag)
18269 ('def', block.def)
18270 ();
18271
18272/**
18273 * Normal Block Grammar
18274 */
18275
18276block.normal = merge({}, block);
18277
18278/**
18279 * GFM Block Grammar
18280 */
18281
18282block.gfm = merge({}, block.normal, {
18283 fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,
18284 paragraph: /^/
18285});
18286
18287block.gfm.paragraph = replace(block.paragraph)
18288 ('(?!', '(?!'
18289 + block.gfm.fences.source.replace('\\1', '\\2') + '|'
18290 + block.list.source.replace('\\1', '\\3') + '|')
18291 ();
18292
18293/**
18294 * GFM + Tables Block Grammar
18295 */
18296
18297block.tables = merge({}, block.gfm, {
18298 nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
18299 table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
18300});
18301
18302/**
18303 * Block Lexer
18304 */
18305
18306function Lexer(options) {
18307 this.tokens = [];
18308 this.tokens.links = {};
18309 this.options = options || marked.defaults;
18310 this.rules = block.normal;
18311
18312 if (this.options.gfm) {
18313 if (this.options.tables) {
18314 this.rules = block.tables;
18315 } else {
18316 this.rules = block.gfm;
18317 }
18318 }
18319}
18320
18321/**
18322 * Expose Block Rules
18323 */
18324
18325Lexer.rules = block;
18326
18327/**
18328 * Static Lex Method
18329 */
18330
18331Lexer.lex = function(src, options) {
18332 var lexer = new Lexer(options);
18333 return lexer.lex(src);
18334};
18335
18336/**
18337 * Preprocessing
18338 */
18339
18340Lexer.prototype.lex = function(src) {
18341 src = src
18342 .replace(/\r\n|\r/g, '\n')
18343 .replace(/\t/g, ' ')
18344 .replace(/\u00a0/g, ' ')
18345 .replace(/\u2424/g, '\n');
18346
18347 return this.token(src, true);
18348};
18349
18350/**
18351 * Lexing
18352 */
18353
18354Lexer.prototype.token = function(src, top) {
18355 var src = src.replace(/^ +$/gm, '')
18356 , next
18357 , loose
18358 , cap
18359 , bull
18360 , b
18361 , item
18362 , space
18363 , i
18364 , l;
18365
18366 while (src) {
18367 // newline
18368 if (cap = this.rules.newline.exec(src)) {
18369 src = src.substring(cap[0].length);
18370 if (cap[0].length > 1) {
18371 this.tokens.push({
18372 type: 'space'
18373 });
18374 }
18375 }
18376
18377 // code
18378 if (cap = this.rules.code.exec(src)) {
18379 src = src.substring(cap[0].length);
18380 cap = cap[0].replace(/^ {4}/gm, '');
18381 this.tokens.push({
18382 type: 'code',
18383 text: !this.options.pedantic
18384 ? cap.replace(/\n+$/, '')
18385 : cap
18386 });
18387 continue;
18388 }
18389
18390 // fences (gfm)
18391 if (cap = this.rules.fences.exec(src)) {
18392 src = src.substring(cap[0].length);
18393 this.tokens.push({
18394 type: 'code',
18395 lang: cap[2],
18396 text: cap[3]
18397 });
18398 continue;
18399 }
18400
18401 // heading
18402 if (cap = this.rules.heading.exec(src)) {
18403 src = src.substring(cap[0].length);
18404 this.tokens.push({
18405 type: 'heading',
18406 depth: cap[1].length,
18407 text: cap[2]
18408 });
18409 continue;
18410 }
18411
18412 // table no leading pipe (gfm)
18413 if (top && (cap = this.rules.nptable.exec(src))) {
18414 src = src.substring(cap[0].length);
18415
18416 item = {
18417 type: 'table',
18418 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
18419 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
18420 cells: cap[3].replace(/\n$/, '').split('\n')
18421 };
18422
18423 for (i = 0; i < item.align.length; i++) {
18424 if (/^ *-+: *$/.test(item.align[i])) {
18425 item.align[i] = 'right';
18426 } else if (/^ *:-+: *$/.test(item.align[i])) {
18427 item.align[i] = 'center';
18428 } else if (/^ *:-+ *$/.test(item.align[i])) {
18429 item.align[i] = 'left';
18430 } else {
18431 item.align[i] = null;
18432 }
18433 }
18434
18435 for (i = 0; i < item.cells.length; i++) {
18436 item.cells[i] = item.cells[i].split(/ *\| */);
18437 }
18438
18439 this.tokens.push(item);
18440
18441 continue;
18442 }
18443
18444 // lheading
18445 if (cap = this.rules.lheading.exec(src)) {
18446 src = src.substring(cap[0].length);
18447 this.tokens.push({
18448 type: 'heading',
18449 depth: cap[2] === '=' ? 1 : 2,
18450 text: cap[1]
18451 });
18452 continue;
18453 }
18454
18455 // hr
18456 if (cap = this.rules.hr.exec(src)) {
18457 src = src.substring(cap[0].length);
18458 this.tokens.push({
18459 type: 'hr'
18460 });
18461 continue;
18462 }
18463
18464 // blockquote
18465 if (cap = this.rules.blockquote.exec(src)) {
18466 src = src.substring(cap[0].length);
18467
18468 this.tokens.push({
18469 type: 'blockquote_start'
18470 });
18471
18472 cap = cap[0].replace(/^ *> ?/gm, '');
18473
18474 // Pass `top` to keep the current
18475 // "toplevel" state. This is exactly
18476 // how markdown.pl works.
18477 this.token(cap, top);
18478
18479 this.tokens.push({
18480 type: 'blockquote_end'
18481 });
18482
18483 continue;
18484 }
18485
18486 // list
18487 if (cap = this.rules.list.exec(src)) {
18488 src = src.substring(cap[0].length);
18489 bull = cap[2];
18490
18491 this.tokens.push({
18492 type: 'list_start',
18493 ordered: bull.length > 1
18494 });
18495
18496 // Get each top-level item.
18497 cap = cap[0].match(this.rules.item);
18498
18499 next = false;
18500 l = cap.length;
18501 i = 0;
18502
18503 for (; i < l; i++) {
18504 item = cap[i];
18505
18506 // Remove the list item's bullet
18507 // so it is seen as the next token.
18508 space = item.length;
18509 item = item.replace(/^ *([*+-]|\d+\.) +/, '');
18510
18511 // Outdent whatever the
18512 // list item contains. Hacky.
18513 if (~item.indexOf('\n ')) {
18514 space -= item.length;
18515 item = !this.options.pedantic
18516 ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')
18517 : item.replace(/^ {1,4}/gm, '');
18518 }
18519
18520 // Determine whether the next list item belongs here.
18521 // Backpedal if it does not belong in this list.
18522 if (this.options.smartLists && i !== l - 1) {
18523 b = block.bullet.exec(cap[i + 1])[0];
18524 if (bull !== b && !(bull.length > 1 && b.length > 1)) {
18525 src = cap.slice(i + 1).join('\n') + src;
18526 i = l - 1;
18527 }
18528 }
18529
18530 // Determine whether item is loose or not.
18531 // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
18532 // for discount behavior.
18533 loose = next || /\n\n(?!\s*$)/.test(item);
18534 if (i !== l - 1) {
18535 next = item.charAt(item.length - 1) === '\n';
18536 if (!loose) loose = next;
18537 }
18538
18539 this.tokens.push({
18540 type: loose
18541 ? 'loose_item_start'
18542 : 'list_item_start'
18543 });
18544
18545 // Recurse.
18546 this.token(item, false);
18547
18548 this.tokens.push({
18549 type: 'list_item_end'
18550 });
18551 }
18552
18553 this.tokens.push({
18554 type: 'list_end'
18555 });
18556
18557 continue;
18558 }
18559
18560 // html
18561 if (cap = this.rules.html.exec(src)) {
18562 src = src.substring(cap[0].length);
18563 this.tokens.push({
18564 type: this.options.sanitize
18565 ? 'paragraph'
18566 : 'html',
18567 pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',
18568 text: cap[0]
18569 });
18570 continue;
18571 }
18572
18573 // def
18574 if (top && (cap = this.rules.def.exec(src))) {
18575 src = src.substring(cap[0].length);
18576 this.tokens.links[cap[1].toLowerCase()] = {
18577 href: cap[2],
18578 title: cap[3]
18579 };
18580 continue;
18581 }
18582
18583 // table (gfm)
18584 if (top && (cap = this.rules.table.exec(src))) {
18585 src = src.substring(cap[0].length);
18586
18587 item = {
18588 type: 'table',
18589 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
18590 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
18591 cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')
18592 };
18593
18594 for (i = 0; i < item.align.length; i++) {
18595 if (/^ *-+: *$/.test(item.align[i])) {
18596 item.align[i] = 'right';
18597 } else if (/^ *:-+: *$/.test(item.align[i])) {
18598 item.align[i] = 'center';
18599 } else if (/^ *:-+ *$/.test(item.align[i])) {
18600 item.align[i] = 'left';
18601 } else {
18602 item.align[i] = null;
18603 }
18604 }
18605
18606 for (i = 0; i < item.cells.length; i++) {
18607 item.cells[i] = item.cells[i]
18608 .replace(/^ *\| *| *\| *$/g, '')
18609 .split(/ *\| */);
18610 }
18611
18612 this.tokens.push(item);
18613
18614 continue;
18615 }
18616
18617 // top-level paragraph
18618 if (top && (cap = this.rules.paragraph.exec(src))) {
18619 src = src.substring(cap[0].length);
18620 this.tokens.push({
18621 type: 'paragraph',
18622 text: cap[1].charAt(cap[1].length - 1) === '\n'
18623 ? cap[1].slice(0, -1)
18624 : cap[1]
18625 });
18626 continue;
18627 }
18628
18629 // text
18630 if (cap = this.rules.text.exec(src)) {
18631 // Top-level should never reach here.
18632 src = src.substring(cap[0].length);
18633 this.tokens.push({
18634 type: 'text',
18635 text: cap[0]
18636 });
18637 continue;
18638 }
18639
18640 if (src) {
18641 throw new
18642 Error('Infinite loop on byte: ' + src.charCodeAt(0));
18643 }
18644 }
18645
18646 return this.tokens;
18647};
18648
18649/**
18650 * Inline-Level Grammar
18651 */
18652
18653var inline = {
18654 escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,
18655 autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
18656 url: noop,
18657 tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
18658 link: /^!?\[(inside)\]\(href\)/,
18659 reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
18660 nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
18661 strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
18662 em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
18663 code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
18664 br: /^ {2,}\n(?!\s*$)/,
18665 del: noop,
18666 text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
18667};
18668
18669inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
18670inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
18671
18672inline.link = replace(inline.link)
18673 ('inside', inline._inside)
18674 ('href', inline._href)
18675 ();
18676
18677inline.reflink = replace(inline.reflink)
18678 ('inside', inline._inside)
18679 ();
18680
18681/**
18682 * Normal Inline Grammar
18683 */
18684
18685inline.normal = merge({}, inline);
18686
18687/**
18688 * Pedantic Inline Grammar
18689 */
18690
18691inline.pedantic = merge({}, inline.normal, {
18692 strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
18693 em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
18694});
18695
18696/**
18697 * GFM Inline Grammar
18698 */
18699
18700inline.gfm = merge({}, inline.normal, {
18701 escape: replace(inline.escape)('])', '~|])')(),
18702 url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
18703 del: /^~~(?=\S)([\s\S]*?\S)~~/,
18704 text: replace(inline.text)
18705 (']|', '~]|')
18706 ('|', '|https?://|')
18707 ()
18708});
18709
18710/**
18711 * GFM + Line Breaks Inline Grammar
18712 */
18713
18714inline.breaks = merge({}, inline.gfm, {
18715 br: replace(inline.br)('{2,}', '*')(),
18716 text: replace(inline.gfm.text)('{2,}', '*')()
18717});
18718
18719/**
18720 * Inline Lexer & Compiler
18721 */
18722
18723function InlineLexer(links, options) {
18724 this.options = options || marked.defaults;
18725 this.links = links;
18726 this.rules = inline.normal;
18727 this.renderer = this.options.renderer || new Renderer;
18728 this.renderer.options = this.options;
18729
18730 if (!this.links) {
18731 throw new
18732 Error('Tokens array requires a `links` property.');
18733 }
18734
18735 if (this.options.gfm) {
18736 if (this.options.breaks) {
18737 this.rules = inline.breaks;
18738 } else {
18739 this.rules = inline.gfm;
18740 }
18741 } else if (this.options.pedantic) {
18742 this.rules = inline.pedantic;
18743 }
18744}
18745
18746/**
18747 * Expose Inline Rules
18748 */
18749
18750InlineLexer.rules = inline;
18751
18752/**
18753 * Static Lexing/Compiling Method
18754 */
18755
18756InlineLexer.output = function(src, links, options) {
18757 var inline = new InlineLexer(links, options);
18758 return inline.output(src);
18759};
18760
18761/**
18762 * Lexing/Compiling
18763 */
18764
18765InlineLexer.prototype.output = function(src) {
18766 var out = ''
18767 , link
18768 , text
18769 , href
18770 , cap;
18771
18772 while (src) {
18773 // escape
18774 if (cap = this.rules.escape.exec(src)) {
18775 src = src.substring(cap[0].length);
18776 out += cap[1];
18777 continue;
18778 }
18779
18780 // autolink
18781 if (cap = this.rules.autolink.exec(src)) {
18782 src = src.substring(cap[0].length);
18783 if (cap[2] === '@') {
18784 text = cap[1].charAt(6) === ':'
18785 ? this.mangle(cap[1].substring(7))
18786 : this.mangle(cap[1]);
18787 href = this.mangle('mailto:') + text;
18788 } else {
18789 text = escape(cap[1]);
18790 href = text;
18791 }
18792 out += this.renderer.link(href, null, text);
18793 continue;
18794 }
18795
18796 // url (gfm)
18797 if (cap = this.rules.url.exec(src)) {
18798 src = src.substring(cap[0].length);
18799 text = escape(cap[1]);
18800 href = text;
18801 out += this.renderer.link(href, null, text);
18802 continue;
18803 }
18804
18805 // tag
18806 if (cap = this.rules.tag.exec(src)) {
18807 src = src.substring(cap[0].length);
18808 out += this.options.sanitize
18809 ? escape(cap[0])
18810 : cap[0];
18811 continue;
18812 }
18813
18814 // link
18815 if (cap = this.rules.link.exec(src)) {
18816 src = src.substring(cap[0].length);
18817 out += this.outputLink(cap, {
18818 href: cap[2],
18819 title: cap[3]
18820 });
18821 continue;
18822 }
18823
18824 // reflink, nolink
18825 if ((cap = this.rules.reflink.exec(src))
18826 || (cap = this.rules.nolink.exec(src))) {
18827 src = src.substring(cap[0].length);
18828 link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
18829 link = this.links[link.toLowerCase()];
18830 if (!link || !link.href) {
18831 out += cap[0].charAt(0);
18832 src = cap[0].substring(1) + src;
18833 continue;
18834 }
18835 out += this.outputLink(cap, link);
18836 continue;
18837 }
18838
18839 // strong
18840 if (cap = this.rules.strong.exec(src)) {
18841 src = src.substring(cap[0].length);
18842 out += this.renderer.strong(this.output(cap[2] || cap[1]));
18843 continue;
18844 }
18845
18846 // em
18847 if (cap = this.rules.em.exec(src)) {
18848 src = src.substring(cap[0].length);
18849 out += this.renderer.em(this.output(cap[2] || cap[1]));
18850 continue;
18851 }
18852
18853 // code
18854 if (cap = this.rules.code.exec(src)) {
18855 src = src.substring(cap[0].length);
18856 out += this.renderer.codespan(escape(cap[2], true));
18857 continue;
18858 }
18859
18860 // br
18861 if (cap = this.rules.br.exec(src)) {
18862 src = src.substring(cap[0].length);
18863 out += this.renderer.br();
18864 continue;
18865 }
18866
18867 // del (gfm)
18868 if (cap = this.rules.del.exec(src)) {
18869 src = src.substring(cap[0].length);
18870 out += this.renderer.del(this.output(cap[1]));
18871 continue;
18872 }
18873
18874 // text
18875 if (cap = this.rules.text.exec(src)) {
18876 src = src.substring(cap[0].length);
18877 out += escape(this.smartypants(cap[0]));
18878 continue;
18879 }
18880
18881 if (src) {
18882 throw new
18883 Error('Infinite loop on byte: ' + src.charCodeAt(0));
18884 }
18885 }
18886
18887 return out;
18888};
18889
18890/**
18891 * Compile Link
18892 */
18893
18894InlineLexer.prototype.outputLink = function(cap, link) {
18895 var href = escape(link.href)
18896 , title = link.title ? escape(link.title) : null;
18897
18898 return cap[0].charAt(0) !== '!'
18899 ? this.renderer.link(href, title, this.output(cap[1]))
18900 : this.renderer.image(href, title, escape(cap[1]));
18901};
18902
18903/**
18904 * Smartypants Transformations
18905 */
18906
18907InlineLexer.prototype.smartypants = function(text) {
18908 if (!this.options.smartypants) return text;
18909 return text
18910 // em-dashes
18911 .replace(/--/g, '\u2014')
18912 // opening singles
18913 .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018')
18914 // closing singles & apostrophes
18915 .replace(/'/g, '\u2019')
18916 // opening doubles
18917 .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c')
18918 // closing doubles
18919 .replace(/"/g, '\u201d')
18920 // ellipses
18921 .replace(/\.{3}/g, '\u2026');
18922};
18923
18924/**
18925 * Mangle Links
18926 */
18927
18928InlineLexer.prototype.mangle = function(text) {
18929 var out = ''
18930 , l = text.length
18931 , i = 0
18932 , ch;
18933
18934 for (; i < l; i++) {
18935 ch = text.charCodeAt(i);
18936 if (Math.random() > 0.5) {
18937 ch = 'x' + ch.toString(16);
18938 }
18939 out += '&#' + ch + ';';
18940 }
18941
18942 return out;
18943};
18944
18945/**
18946 * Renderer
18947 */
18948
18949function Renderer(options) {
18950 this.options = options || {};
18951}
18952
18953Renderer.prototype.code = function(code, lang, escaped) {
18954 if (this.options.highlight) {
18955 var out = this.options.highlight(code, lang);
18956 if (out != null && out !== code) {
18957 escaped = true;
18958 code = out;
18959 }
18960 }
18961
18962 if (!lang) {
18963 return '<pre><code>'
18964 + (escaped ? code : escape(code, true))
18965 + '\n</code></pre>';
18966 }
18967
18968 return '<pre><code class="'
18969 + this.options.langPrefix
18970 + escape(lang, true)
18971 + '">'
18972 + (escaped ? code : escape(code, true))
18973 + '\n</code></pre>\n';
18974};
18975
18976Renderer.prototype.blockquote = function(quote) {
18977 return '<blockquote>\n' + quote + '</blockquote>\n';
18978};
18979
18980Renderer.prototype.html = function(html) {
18981 return html;
18982};
18983
18984Renderer.prototype.heading = function(text, level, raw) {
18985 return '<h'
18986 + level
18987 + ' id="'
18988 + this.options.headerPrefix
18989 + raw.toLowerCase().replace(/[^\w]+/g, '-')
18990 + '">'
18991 + text
18992 + '</h'
18993 + level
18994 + '>\n';
18995};
18996
18997Renderer.prototype.hr = function() {
18998 return '<hr>\n';
18999};
19000
19001Renderer.prototype.list = function(body, ordered) {
19002 var type = ordered ? 'ol' : 'ul';
19003 return '<' + type + '>\n' + body + '</' + type + '>\n';
19004};
19005
19006Renderer.prototype.listitem = function(text) {
19007 return '<li>' + text + '</li>\n';
19008};
19009
19010Renderer.prototype.paragraph = function(text) {
19011 return '<p>' + text + '</p>\n';
19012};
19013
19014Renderer.prototype.table = function(header, body) {
19015 return '<table>\n'
19016 + '<thead>\n'
19017 + header
19018 + '</thead>\n'
19019 + '<tbody>\n'
19020 + body
19021 + '</tbody>\n'
19022 + '</table>\n';
19023};
19024
19025Renderer.prototype.tablerow = function(content) {
19026 return '<tr>\n' + content + '</tr>\n';
19027};
19028
19029Renderer.prototype.tablecell = function(content, flags) {
19030 var type = flags.header ? 'th' : 'td';
19031 var tag = flags.align
19032 ? '<' + type + ' style="text-align:' + flags.align + '">'
19033 : '<' + type + '>';
19034 return tag + content + '</' + type + '>\n';
19035};
19036
19037// span level renderer
19038Renderer.prototype.strong = function(text) {
19039 return '<strong>' + text + '</strong>';
19040};
19041
19042Renderer.prototype.em = function(text) {
19043 return '<em>' + text + '</em>';
19044};
19045
19046Renderer.prototype.codespan = function(text) {
19047 return '<code>' + text + '</code>';
19048};
19049
19050Renderer.prototype.br = function() {
19051 return '<br>';
19052};
19053
19054Renderer.prototype.del = function(text) {
19055 return '<del>' + text + '</del>';
19056};
19057
19058Renderer.prototype.link = function(href, title, text) {
19059 if (this.options.sanitize) {
19060 try {
19061 var prot = decodeURIComponent(unescape(href))
19062 .replace(/[^\w:]/g, '')
19063 .toLowerCase();
19064 } catch (e) {
19065 return '';
19066 }
19067 if (prot.indexOf('javascript:') === 0) {
19068 return '';
19069 }
19070 }
19071 var out = '<a href="' + href + '"';
19072 if (title) {
19073 out += ' title="' + title + '"';
19074 }
19075 out += '>' + text + '</a>';
19076 return out;
19077};
19078
19079Renderer.prototype.image = function(href, title, text) {
19080 var out = '<img src="' + href + '" alt="' + text + '"';
19081 if (title) {
19082 out += ' title="' + title + '"';
19083 }
19084 out += '>';
19085 return out;
19086};
19087
19088/**
19089 * Parsing & Compiling
19090 */
19091
19092function Parser(options) {
19093 this.tokens = [];
19094 this.token = null;
19095 this.options = options || marked.defaults;
19096 this.options.renderer = this.options.renderer || new Renderer;
19097 this.renderer = this.options.renderer;
19098 this.renderer.options = this.options;
19099}
19100
19101/**
19102 * Static Parse Method
19103 */
19104
19105Parser.parse = function(src, options, renderer) {
19106 var parser = new Parser(options, renderer);
19107 return parser.parse(src);
19108};
19109
19110/**
19111 * Parse Loop
19112 */
19113
19114Parser.prototype.parse = function(src) {
19115 this.inline = new InlineLexer(src.links, this.options, this.renderer);
19116 this.tokens = src.reverse();
19117
19118 var out = '';
19119 while (this.next()) {
19120 out += this.tok();
19121 }
19122
19123 return out;
19124};
19125
19126/**
19127 * Next Token
19128 */
19129
19130Parser.prototype.next = function() {
19131 return this.token = this.tokens.pop();
19132};
19133
19134/**
19135 * Preview Next Token
19136 */
19137
19138Parser.prototype.peek = function() {
19139 return this.tokens[this.tokens.length - 1] || 0;
19140};
19141
19142/**
19143 * Parse Text Tokens
19144 */
19145
19146Parser.prototype.parseText = function() {
19147 var body = this.token.text;
19148
19149 while (this.peek().type === 'text') {
19150 body += '\n' + this.next().text;
19151 }
19152
19153 return this.inline.output(body);
19154};
19155
19156/**
19157 * Parse Current Token
19158 */
19159
19160Parser.prototype.tok = function() {
19161 switch (this.token.type) {
19162 case 'space': {
19163 return '';
19164 }
19165 case 'hr': {
19166 return this.renderer.hr();
19167 }
19168 case 'heading': {
19169 return this.renderer.heading(
19170 this.inline.output(this.token.text),
19171 this.token.depth,
19172 this.token.text);
19173 }
19174 case 'code': {
19175 return this.renderer.code(this.token.text,
19176 this.token.lang,
19177 this.token.escaped);
19178 }
19179 case 'table': {
19180 var header = ''
19181 , body = ''
19182 , i
19183 , row
19184 , cell
19185 , flags
19186 , j;
19187
19188 // header
19189 cell = '';
19190 for (i = 0; i < this.token.header.length; i++) {
19191 flags = { header: true, align: this.token.align[i] };
19192 cell += this.renderer.tablecell(
19193 this.inline.output(this.token.header[i]),
19194 { header: true, align: this.token.align[i] }
19195 );
19196 }
19197 header += this.renderer.tablerow(cell);
19198
19199 for (i = 0; i < this.token.cells.length; i++) {
19200 row = this.token.cells[i];
19201
19202 cell = '';
19203 for (j = 0; j < row.length; j++) {
19204 cell += this.renderer.tablecell(
19205 this.inline.output(row[j]),
19206 { header: false, align: this.token.align[j] }
19207 );
19208 }
19209
19210 body += this.renderer.tablerow(cell);
19211 }
19212 return this.renderer.table(header, body);
19213 }
19214 case 'blockquote_start': {
19215 var body = '';
19216
19217 while (this.next().type !== 'blockquote_end') {
19218 body += this.tok();
19219 }
19220
19221 return this.renderer.blockquote(body);
19222 }
19223 case 'list_start': {
19224 var body = ''
19225 , ordered = this.token.ordered;
19226
19227 while (this.next().type !== 'list_end') {
19228 body += this.tok();
19229 }
19230
19231 return this.renderer.list(body, ordered);
19232 }
19233 case 'list_item_start': {
19234 var body = '';
19235
19236 while (this.next().type !== 'list_item_end') {
19237 body += this.token.type === 'text'
19238 ? this.parseText()
19239 : this.tok();
19240 }
19241
19242 return this.renderer.listitem(body);
19243 }
19244 case 'loose_item_start': {
19245 var body = '';
19246
19247 while (this.next().type !== 'list_item_end') {
19248 body += this.tok();
19249 }
19250
19251 return this.renderer.listitem(body);
19252 }
19253 case 'html': {
19254 var html = !this.token.pre && !this.options.pedantic
19255 ? this.inline.output(this.token.text)
19256 : this.token.text;
19257 return this.renderer.html(html);
19258 }
19259 case 'paragraph': {
19260 return this.renderer.paragraph(this.inline.output(this.token.text));
19261 }
19262 case 'text': {
19263 return this.renderer.paragraph(this.parseText());
19264 }
19265 }
19266};
19267
19268/**
19269 * Helpers
19270 */
19271
19272function escape(html, encode) {
19273 return html
19274 .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
19275 .replace(/</g, '&lt;')
19276 .replace(/>/g, '&gt;')
19277 .replace(/"/g, '&quot;')
19278 .replace(/'/g, '&#39;');
19279}
19280
19281function unescape(html) {
19282 return html.replace(/&([#\w]+);/g, function(_, n) {
19283 n = n.toLowerCase();
19284 if (n === 'colon') return ':';
19285 if (n.charAt(0) === '#') {
19286 return n.charAt(1) === 'x'
19287 ? String.fromCharCode(parseInt(n.substring(2), 16))
19288 : String.fromCharCode(+n.substring(1));
19289 }
19290 return '';
19291 });
19292}
19293
19294function replace(regex, opt) {
19295 regex = regex.source;
19296 opt = opt || '';
19297 return function self(name, val) {
19298 if (!name) return new RegExp(regex, opt);
19299 val = val.source || val;
19300 val = val.replace(/(^|[^\[])\^/g, '$1');
19301 regex = regex.replace(name, val);
19302 return self;
19303 };
19304}
19305
19306function noop() {}
19307noop.exec = noop;
19308
19309function merge(obj) {
19310 var i = 1
19311 , target
19312 , key;
19313
19314 for (; i < arguments.length; i++) {
19315 target = arguments[i];
19316 for (key in target) {
19317 if (Object.prototype.hasOwnProperty.call(target, key)) {
19318 obj[key] = target[key];
19319 }
19320 }
19321 }
19322
19323 return obj;
19324}
19325
19326
19327/**
19328 * Marked
19329 */
19330
19331function marked(src, opt, callback) {
19332 if (callback || typeof opt === 'function') {
19333 if (!callback) {
19334 callback = opt;
19335 opt = null;
19336 }
19337
19338 opt = merge({}, marked.defaults, opt || {});
19339
19340 var highlight = opt.highlight
19341 , tokens
19342 , pending
19343 , i = 0;
19344
19345 try {
19346 tokens = Lexer.lex(src, opt)
19347 } catch (e) {
19348 return callback(e);
19349 }
19350
19351 pending = tokens.length;
19352
19353 var done = function() {
19354 var out, err;
19355
19356 try {
19357 out = Parser.parse(tokens, opt);
19358 } catch (e) {
19359 err = e;
19360 }
19361
19362 opt.highlight = highlight;
19363
19364 return err
19365 ? callback(err)
19366 : callback(null, out);
19367 };
19368
19369 if (!highlight || highlight.length < 3) {
19370 return done();
19371 }
19372
19373 delete opt.highlight;
19374
19375 if (!pending) return done();
19376
19377 for (; i < tokens.length; i++) {
19378 (function(token) {
19379 if (token.type !== 'code') {
19380 return --pending || done();
19381 }
19382 return highlight(token.text, token.lang, function(err, code) {
19383 if (code == null || code === token.text) {
19384 return --pending || done();
19385 }
19386 token.text = code;
19387 token.escaped = true;
19388 --pending || done();
19389 });
19390 })(tokens[i]);
19391 }
19392
19393 return;
19394 }
19395 try {
19396 if (opt) opt = merge({}, marked.defaults, opt);
19397 return Parser.parse(Lexer.lex(src, opt), opt);
19398 } catch (e) {
19399 e.message += '\nPlease report this to https://github.com/chjj/marked.';
19400 if ((opt || marked.defaults).silent) {
19401 return '<p>An error occured:</p><pre>'
19402 + escape(e.message + '', true)
19403 + '</pre>';
19404 }
19405 throw e;
19406 }
19407}
19408
19409/**
19410 * Options
19411 */
19412
19413marked.options =
19414marked.setOptions = function(opt) {
19415 merge(marked.defaults, opt);
19416 return marked;
19417};
19418
19419marked.defaults = {
19420 gfm: true,
19421 tables: true,
19422 breaks: false,
19423 pedantic: false,
19424 sanitize: false,
19425 smartLists: false,
19426 silent: false,
19427 highlight: null,
19428 langPrefix: 'lang-',
19429 smartypants: false,
19430 headerPrefix: '',
19431 renderer: new Renderer
19432};
19433
19434/**
19435 * Expose
19436 */
19437
19438marked.Parser = Parser;
19439marked.parser = Parser.parse;
19440
19441marked.Renderer = Renderer;
19442
19443marked.Lexer = Lexer;
19444marked.lexer = Lexer.lex;
19445
19446marked.InlineLexer = InlineLexer;
19447marked.inlineLexer = InlineLexer.output;
19448
19449marked.parse = marked;
19450
19451if (typeof exports === 'object') {
19452 module.exports = marked;
19453} else if (typeof define === 'function' && define.amd) {
19454 define(function() { return marked; });
19455} else {
19456 this.marked = marked;
19457}
19458
19459}).call(function() {
19460 return this || (typeof window !== 'undefined' ? window : global);
19461}());
19462
19463})(window)
19464},{}]},{},[3])
19465;</script>
19466 <script>
19467 var slideshow = remark.create();
19468 </script>
19469 <script></script>
19470 </body>
19471</html>
19472

Built with git-ssb-web