Guest User

Untitled

a guest
May 13th, 2015
307
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var XRegExp;
  2. if (XRegExp) throw Error("can't load XRegExp twice in the same frame");
  3. (function() {
  4.     function r(f, e) {
  5.         if (!XRegExp.isRegExp(f)) throw TypeError("type RegExp expected");
  6.         var a = f._xregexp;
  7.         f = XRegExp(f.source, t(f) + (e || ""));
  8.         if (a) f._xregexp = {
  9.             source: a.source,
  10.             captureNames: a.captureNames ? a.captureNames.slice(0) : null
  11.         };
  12.         return f
  13.     }
  14.  
  15.     function t(f) {
  16.         return (f.global ? "g" : "") + (f.ignoreCase ? "i" : "") + (f.multiline ? "m" : "") + (f.extended ? "x" : "") + (f.sticky ? "y" : "")
  17.     }
  18.  
  19.     function B(f, e, a, b) {
  20.         var c = u.length,
  21.             d, h, g;
  22.         v = true;
  23.         try {
  24.             for (; c--;) {
  25.                 g = u[c];
  26.                 if (a & g.scope && (!g.trigger || g.trigger.call(b))) {
  27.                     g.pattern.lastIndex = e;
  28.                     if ((h = g.pattern.exec(f)) && h.index === e) {
  29.                         d = {
  30.                             output: g.handler.call(b, h, a),
  31.                             match: h
  32.                         };
  33.                         break
  34.                     }
  35.                 }
  36.             }
  37.         } catch (i) {
  38.             throw i
  39.         } finally {
  40.             v = false
  41.         }
  42.         return d
  43.     }
  44.  
  45.     function p(f, e, a) {
  46.         if (Array.prototype.indexOf) return f.indexOf(e, a);
  47.         for (a = a || 0; a < f.length; a++)
  48.             if (f[a] === e) return a;
  49.         return -1
  50.     }
  51.     XRegExp = function(f, e) {
  52.         var a = [],
  53.             b = XRegExp.OUTSIDE_CLASS,
  54.             c = 0,
  55.             d, h;
  56.         if (XRegExp.isRegExp(f)) {
  57.             if (e !== undefined) throw TypeError("can't supply flags when constructing one RegExp from another");
  58.             return r(f)
  59.         }
  60.         if (v) throw Error("can't call the XRegExp constructor within token definition functions");
  61.         e = e || "";
  62.         for (d = {
  63.                 hasNamedCapture: false,
  64.                 captureNames: [],
  65.                 hasFlag: function(g) {
  66.                     return e.indexOf(g) > -1
  67.                 },
  68.                 setFlag: function(g) {
  69.                     e += g
  70.                 }
  71.             }; c < f.length;)
  72.             if (h = B(f, c, b, d)) {
  73.                 a.push(h.output);
  74.                 c += h.match[0].length || 1
  75.             } else if (h = n.exec.call(z[b], f.slice(c))) {
  76.             a.push(h[0]);
  77.             c += h[0].length
  78.         } else {
  79.             h = f.charAt(c);
  80.             if (h === "[") b = XRegExp.INSIDE_CLASS;
  81.             else if (h === "]") b = XRegExp.OUTSIDE_CLASS;
  82.             a.push(h);
  83.             c++
  84.         }
  85.         a = RegExp(a.join(""), n.replace.call(e, w, ""));
  86.         a._xregexp = {
  87.             source: f,
  88.             captureNames: d.hasNamedCapture ? d.captureNames : null
  89.         };
  90.         return a
  91.     };
  92.     XRegExp.version = "1.5.0";
  93.     XRegExp.INSIDE_CLASS = 1;
  94.     XRegExp.OUTSIDE_CLASS = 2;
  95.     var C = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g,
  96.         w = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g,
  97.         A = /^(?:[?*+]|{\d+(?:,\d*)?})\??/,
  98.         v = false,
  99.         u = [],
  100.         n = {
  101.             exec: RegExp.prototype.exec,
  102.             test: RegExp.prototype.test,
  103.             match: String.prototype.match,
  104.             replace: String.prototype.replace,
  105.             split: String.prototype.split
  106.         },
  107.         x = n.exec.call(/()??/, "")[1] === undefined,
  108.         D = function() {
  109.             var f = /^/g;
  110.             n.test.call(f, "");
  111.             return !f.lastIndex
  112.         }(),
  113.         y = function() {
  114.             var f = /x/g;
  115.             n.replace.call("x", f, "");
  116.             return !f.lastIndex
  117.         }(),
  118.         E = RegExp.prototype.sticky !== undefined,
  119.         z = {};
  120.     z[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/;
  121.     z[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/;
  122.     XRegExp.addToken = function(f, e, a, b) {
  123.         u.push({
  124.             pattern: r(f, "g" + (E ? "y" : "")),
  125.             handler: e,
  126.             scope: a || XRegExp.OUTSIDE_CLASS,
  127.             trigger: b || null
  128.         })
  129.     };
  130.     XRegExp.cache = function(f, e) {
  131.         var a = f + "/" + (e || "");
  132.         return XRegExp.cache[a] || (XRegExp.cache[a] = XRegExp(f, e))
  133.     };
  134.     XRegExp.copyAsGlobal = function(f) {
  135.         return r(f, "g")
  136.     };
  137.     XRegExp.escape = function(f) {
  138.         return f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
  139.     };
  140.     XRegExp.execAt = function(f, e, a, b) {
  141.         e = r(e, "g" + (b && E ? "y" : ""));
  142.         e.lastIndex = a = a || 0;
  143.         f = e.exec(f);
  144.         return b ? f && f.index === a ? f : null : f
  145.     };
  146.     XRegExp.freezeTokens = function() {
  147.         XRegExp.addToken = function() {
  148.             throw Error("can't run addToken after freezeTokens")
  149.         }
  150.     };
  151.     XRegExp.isRegExp = function(f) {
  152.         return Object.prototype.toString.call(f) === "[object RegExp]"
  153.     };
  154.     XRegExp.iterate = function(f, e, a, b) {
  155.         for (var c = r(e, "g"), d = -1, h; h = c.exec(f);) {
  156.             a.call(b, h, ++d, f, c);
  157.             c.lastIndex === h.index && c.lastIndex++
  158.         }
  159.         if (e.global) e.lastIndex = 0
  160.     };
  161.     XRegExp.matchChain = function(f, e) {
  162.         return function a(b, c) {
  163.             var d = e[c].regex ? e[c] : {
  164.                     regex: e[c]
  165.                 },
  166.                 h = r(d.regex, "g"),
  167.                 g = [],
  168.                 i;
  169.             for (i = 0; i < b.length; i++) XRegExp.iterate(b[i], h, function(k) {
  170.                 g.push(d.backref ? k[d.backref] || "" : k[0])
  171.             });
  172.             return c === e.length - 1 || !g.length ? g : a(g, c + 1)
  173.         }([f], 0)
  174.     };
  175.     RegExp.prototype.apply = function(f, e) {
  176.         return this.exec(e[0])
  177.     };
  178.     RegExp.prototype.call = function(f, e) {
  179.         return this.exec(e)
  180.     };
  181.     RegExp.prototype.exec = function(f) {
  182.         var e = n.exec.apply(this, arguments),
  183.             a;
  184.         if (e) {
  185.             if (!x && e.length > 1 && p(e, "") > -1) {
  186.                 a = RegExp(this.source, n.replace.call(t(this), "g", ""));
  187.                 n.replace.call(f.slice(e.index), a, function() {
  188.                     for (var c = 1; c < arguments.length - 2; c++)
  189.                         if (arguments[c] === undefined) e[c] = undefined
  190.                 })
  191.             }
  192.             if (this._xregexp && this._xregexp.captureNames)
  193.                 for (var b = 1; b < e.length; b++)
  194.                     if (a = this._xregexp.captureNames[b - 1]) e[a] = e[b];
  195.                     !D && this.global && !e[0].length && this.lastIndex > e.index && this.lastIndex--
  196.         }
  197.         return e
  198.     };
  199.     if (!D) RegExp.prototype.test = function(f) {
  200.         (f = n.exec.call(this, f)) && this.global && !f[0].length && this.lastIndex > f.index && this.lastIndex--;
  201.         return !!f
  202.     };
  203.     String.prototype.match = function(f) {
  204.         XRegExp.isRegExp(f) || (f = RegExp(f));
  205.         if (f.global) {
  206.             var e = n.match.apply(this, arguments);
  207.             f.lastIndex = 0;
  208.             return e
  209.         }
  210.         return f.exec(this)
  211.     };
  212.     String.prototype.replace = function(f, e) {
  213.         var a = XRegExp.isRegExp(f),
  214.             b, c;
  215.         if (a && typeof e.valueOf() === "string" && e.indexOf("${") === -1 && y) return n.replace.apply(this, arguments);
  216.         if (a) {
  217.             if (f._xregexp) b = f._xregexp.captureNames
  218.         } else f += "";
  219.         if (typeof e === "function") c = n.replace.call(this, f, function() {
  220.             if (b) {
  221.                 arguments[0] = new String(arguments[0]);
  222.                 for (var d = 0; d < b.length; d++)
  223.                     if (b[d]) arguments[0][b[d]] = arguments[d + 1]
  224.             }
  225.             if (a && f.global) f.lastIndex = arguments[arguments.length - 2] + arguments[0].length;
  226.             return e.apply(null, arguments)
  227.         });
  228.         else {
  229.             c = this + "";
  230.             c = n.replace.call(c, f, function() {
  231.                 var d = arguments;
  232.                 return n.replace.call(e, C, function(h, g, i) {
  233.                     if (g) switch (g) {
  234.                         case "$":
  235.                             return "$";
  236.                         case "&":
  237.                             return d[0];
  238.                         case "`":
  239.                             return d[d.length - 1].slice(0, d[d.length - 2]);
  240.                         case "'":
  241.                             return d[d.length - 1].slice(d[d.length - 2] + d[0].length);
  242.                         default:
  243.                             i = "";
  244.                             g = +g;
  245.                             if (!g) return h;
  246.                             for (; g > d.length - 3;) {
  247.                                 i = String.prototype.slice.call(g, -1) + i;
  248.                                 g = Math.floor(g / 10)
  249.                             }
  250.                             return (g ? d[g] || "" : "$") + i
  251.                     } else {
  252.                         g = +i;
  253.                         if (g <= d.length - 3) return d[g];
  254.                         g = b ? p(b, i) : -1;
  255.                         return g > -1 ? d[g + 1] : h
  256.                     }
  257.                 })
  258.             })
  259.         }
  260.         if (a && f.global) f.lastIndex = 0;
  261.         return c
  262.     };
  263.     String.prototype.split = function(f, e) {
  264.         if (!XRegExp.isRegExp(f)) return n.split.apply(this, arguments);
  265.         var a = this + "",
  266.             b = [],
  267.             c = 0,
  268.             d, h;
  269.         if (e === undefined || +e < 0) e = Infinity;
  270.         else {
  271.             e = Math.floor(+e);
  272.             if (!e) return []
  273.         }
  274.         for (f = XRegExp.copyAsGlobal(f); d = f.exec(a);) {
  275.             if (f.lastIndex > c) {
  276.                 b.push(a.slice(c, d.index));
  277.                 d.length > 1 && d.index < a.length && Array.prototype.push.apply(b, d.slice(1));
  278.                 h = d[0].length;
  279.                 c = f.lastIndex;
  280.                 if (b.length >= e) break
  281.             }
  282.             f.lastIndex === d.index && f.lastIndex++
  283.         }
  284.         if (c === a.length) {
  285.             if (!n.test.call(f, "") || h) b.push("")
  286.         } else b.push(a.slice(c));
  287.         return b.length > e ? b.slice(0, e) : b
  288.     };
  289.     XRegExp.addToken(/\(\?#[^)]*\)/, function(f) {
  290.         return n.test.call(A, f.input.slice(f.index + f[0].length)) ? "" : "(?:)"
  291.     });
  292.     XRegExp.addToken(/\((?!\?)/, function() {
  293.         this.captureNames.push(null);
  294.         return "("
  295.     });
  296.     XRegExp.addToken(/\(\?<([$\w]+)>/, function(f) {
  297.         this.captureNames.push(f[1]);
  298.         this.hasNamedCapture = true;
  299.         return "("
  300.     });
  301.     XRegExp.addToken(/\\k<([\w$]+)>/, function(f) {
  302.         var e = p(this.captureNames, f[1]);
  303.         return e > -1 ? "\\" + (e + 1) + (isNaN(f.input.charAt(f.index + f[0].length)) ? "" : "(?:)") : f[0]
  304.     });
  305.     XRegExp.addToken(/\[\^?]/, function(f) {
  306.         return f[0] === "[]" ? "\\b\\B" : "[\\s\\S]"
  307.     });
  308.     XRegExp.addToken(/^\(\?([imsx]+)\)/, function(f) {
  309.         this.setFlag(f[1]);
  310.         return ""
  311.     });
  312.     XRegExp.addToken(/(?:\s+|#.*)+/, function(f) {
  313.         return n.test.call(A, f.input.slice(f.index + f[0].length)) ? "" : "(?:)"
  314.     }, XRegExp.OUTSIDE_CLASS, function() {
  315.         return this.hasFlag("x")
  316.     });
  317.     XRegExp.addToken(/\./, function() {
  318.         return "[\\s\\S]"
  319.     }, XRegExp.OUTSIDE_CLASS, function() {
  320.         return this.hasFlag("s")
  321.     })
  322. })();
  323. typeof exports != "undefined" && (exports.XRegExp = XRegExp);
  324. var SyntaxHighlighter = function() {
  325.     function r(a, b) {
  326.         a.className.indexOf(b) != -1 || (a.className += " " + b)
  327.     }
  328.  
  329.     function t(a) {
  330.         return a.indexOf("highlighter_") == 0 ? a : "highlighter_" + a
  331.     }
  332.  
  333.     function B(a) {
  334.         return e.vars.highlighters[t(a)]
  335.     }
  336.  
  337.     function p(a, b, c) {
  338.         if (a == null) return null;
  339.         var d = c != true ? a.childNodes : [a.parentNode],
  340.             h = {
  341.                 "#": "id",
  342.                 ".": "className"
  343.             }[b.substr(0, 1)] || "nodeName",
  344.             g, i;
  345.         g = h != "nodeName" ? b.substr(1) : b.toUpperCase();
  346.         if ((a[h] || "").indexOf(g) != -1) return a;
  347.         for (a = 0; d && a < d.length && i == null; a++) i = p(d[a], b, c);
  348.         return i
  349.     }
  350.  
  351.     function C(a, b) {
  352.         var c = {},
  353.             d;
  354.         for (d in a) c[d] = a[d];
  355.         for (d in b) c[d] = b[d];
  356.         return c
  357.     }
  358.  
  359.     function w(a, b, c, d) {
  360.         function h(g) {
  361.             g = g || window.event;
  362.             if (!g.target) {
  363.                 g.target = g.srcElement;
  364.                 g.preventDefault = function() {
  365.                     this.returnValue = false
  366.                 }
  367.             }
  368.             c.call(d || window, g)
  369.         }
  370.         a.attachEvent ? a.attachEvent("on" + b, h) : a.addEventListener(b, h, false)
  371.     }
  372.  
  373.     function A(a, b) {
  374.         var c = e.vars.discoveredBrushes,
  375.             d = null;
  376.         if (c == null) {
  377.             c = {};
  378.             for (var h in e.brushes) {
  379.                 var g = e.brushes[h];
  380.                 d = g.aliases;
  381.                 if (d != null) {
  382.                     g.brushName = h.toLowerCase();
  383.                     for (g = 0; g < d.length; g++) c[d[g]] = h
  384.                 }
  385.             }
  386.             e.vars.discoveredBrushes = c
  387.         }
  388.         d = e.brushes[c[a]];
  389.         d == null && b != false && window.alert(e.config.strings.alert + (e.config.strings.noBrush + a));
  390.         return d
  391.     }
  392.  
  393.     function v(a, b) {
  394.         for (var c = a.split("\n"), d = 0; d < c.length; d++) c[d] = b(c[d], d);
  395.         return c.join("\n")
  396.     }
  397.  
  398.     function u(a, b) {
  399.         if (a == null || a.length == 0 || a == "\n") return a;
  400.         a = a.replace(/</g, "&lt;");
  401.         a = a.replace(/ {2,}/g, function(c) {
  402.             for (var d = "", h = 0; h < c.length - 1; h++) d += e.config.space;
  403.             return d + " "
  404.         });
  405.         if (b != null) a = v(a, function(c) {
  406.             if (c.length == 0) return "";
  407.             var d = "";
  408.             c = c.replace(/^(&nbsp;| )+/, function(h) {
  409.                 d = h;
  410.                 return ""
  411.             });
  412.             if (c.length == 0) return d;
  413.             return d + '<code class="' + b + '">' + c + "</code>"
  414.         });
  415.         return a
  416.     }
  417.  
  418.     function n(a, b) {
  419.         a.split("\n");
  420.         for (var c = "", d = 0; d < 50; d++) c += "                    ";
  421.         return a = v(a, function(h) {
  422.             if (h.indexOf("\t") == -1) return h;
  423.             for (var g = 0;
  424.                 (g = h.indexOf("\t")) != -1;) h = h.substr(0, g) + c.substr(0, b - g % b) + h.substr(g + 1, h.length);
  425.             return h
  426.         })
  427.     }
  428.  
  429.     function x(a) {
  430.         return a.replace(/^\s+|\s+$/g, "")
  431.     }
  432.  
  433.     function D(a, b) {
  434.         if (a.index < b.index) return -1;
  435.         else if (a.index > b.index) return 1;
  436.         else if (a.length < b.length) return -1;
  437.         else if (a.length > b.length) return 1;
  438.         return 0
  439.     }
  440.  
  441.     function y(a, b) {
  442.         function c(k) {
  443.             return k[0]
  444.         }
  445.         for (var d = null, h = [], g = b.func ? b.func : c;
  446.             (d = b.regex.exec(a)) != null;) {
  447.             var i = g(d, b);
  448.             if (typeof i == "string") i = [new e.Match(i, d.index, b.css)];
  449.             h = h.concat(i)
  450.         }
  451.         return h
  452.     }
  453.  
  454.     function E(a) {
  455.         var b = /(.*)((&gt;|&lt;).*)/;
  456.         return a.replace(e.regexLib.url, function(c) {
  457.             var d = "",
  458.                 h = null;
  459.             if (h = b.exec(c)) {
  460.                 c = h[1];
  461.                 d = h[2]
  462.             }
  463.             return '<a href="' + c + '">' + c + "</a>" + d
  464.         })
  465.     }
  466.  
  467.     function z() {
  468.         for (var a = document.getElementsByTagName("script"), b = [], c = 0; c < a.length; c++) a[c].type == "syntaxhighlighter" && b.push(a[c]);
  469.         return b
  470.     }
  471.  
  472.     function f(a) {
  473.         a = a.target;
  474.         var b = p(a, ".syntaxhighlighter", true);
  475.         a = p(a, ".container", true);
  476.         var c = document.createElement("textarea");
  477.         if (!(!a || !b || p(a, "textarea"))) {
  478.             B(b.id);
  479.             r(b, "source");
  480.             for (var d = a.childNodes, h = [], g = 0; g < d.length; g++) h.push(d[g].innerText || d[g].textContent);
  481.             h = h.join("\r");
  482.             c.appendChild(document.createTextNode(h));
  483.             a.appendChild(c);
  484.             c.focus();
  485.             c.select();
  486.             w(c, "blur", function() {
  487.                 c.parentNode.removeChild(c);
  488.                 b.className = b.className.replace("source", "")
  489.             })
  490.         }
  491.     }
  492.     if (typeof require != "undefined" && typeof XRegExp == "undefined") XRegExp = require("XRegExp").XRegExp;
  493.     var e = {
  494.         defaults: {
  495.             "class-name": "",
  496.             "first-line": 1,
  497.             "pad-line-numbers": false,
  498.             highlight: null,
  499.             title: null,
  500.             "smart-tabs": true,
  501.             "tab-size": 4,
  502.             gutter: true,
  503.             toolbar: true,
  504.             "quick-code": true,
  505.             collapse: false,
  506.             "auto-links": true,
  507.             light: false,
  508.             "html-script": false
  509.         },
  510.         config: {
  511.             space: "&nbsp;",
  512.             useScriptTags: true,
  513.             bloggerMode: false,
  514.             stripBrs: false,
  515.             tagName: "pre",
  516.             strings: {
  517.                 expandSource: "expand source",
  518.                 help: "?",
  519.                 alert: "SyntaxHighlighter\n\n",
  520.                 noBrush: "Can't find brush for: ",
  521.                 brushNotHtmlScript: "Brush wasn't configured for html-script option: ",
  522.                 aboutDialog: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>About SyntaxHighlighter</title></head><body style="font-family:Geneva,Arial,Helvetica,sans-serif;background-color:#fff;color:#000;font-size:1em;text-align:center;"><div style="text-align:center;margin-top:1.5em;"><div style="font-size:xx-large;">SyntaxHighlighter</div><div style="font-size:.75em;margin-bottom:3em;"><div>version 3.0.83 (July 02 2010)</div><div><a href="http://alexgorbatchev.com/SyntaxHighlighter" target="_blank" style="color:#005896">http://alexgorbatchev.com/SyntaxHighlighter</a></div><div>JavaScript code syntax highlighter.</div><div>Copyright 2004-2010 Alex Gorbatchev.</div></div><div>If you like this script, please <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2930402" style="color:#005896">donate</a> to <br/>keep development active!</div></div></body></html>'
  523.             }
  524.         },
  525.         vars: {
  526.             discoveredBrushes: null,
  527.             highlighters: {}
  528.         },
  529.         brushes: {},
  530.         regexLib: {
  531.             multiLineCComments: /\/\*[\s\S]*?\*\//gm,
  532.             singleLineCComments: /\/\/.*$/gm,
  533.             singleLinePerlComments: /#.*$/gm,
  534.             doubleQuotedString: /"([^\\"\n]|\\.)*"/g,
  535.             singleQuotedString: /'([^\\'\n]|\\.)*'/g,
  536.             multiLineDoubleQuotedString: new XRegExp('"([^\\\\"]|\\\\.)*"', "gs"),
  537.             multiLineSingleQuotedString: new XRegExp("'([^\\\\']|\\\\.)*'", "gs"),
  538.             xmlComments: /(&lt;|<)!--[\s\S]*?--(&gt;|>)/gm,
  539.             url: /\w+:\/\/[\w-.\/?%&=:@;]*/g,
  540.             phpScriptTags: {
  541.                 left: /(&lt;|<)\?=?/g,
  542.                 right: /\?(&gt;|>)/g
  543.             },
  544.             aspScriptTags: {
  545.                 left: /(&lt;|<)%=?/g,
  546.                 right: /%(&gt;|>)/g
  547.             },
  548.             scriptScriptTags: {
  549.                 left: /(&lt;|<)\s*script.*?(&gt;|>)/gi,
  550.                 right: /(&lt;|<)\/\s*script\s*(&gt;|>)/gi
  551.             }
  552.         },
  553.         toolbar: {
  554.             getHtml: function(a) {
  555.                 function b(i, k) {
  556.                     return e.toolbar.getButtonHtml(i, k, e.config.strings[k])
  557.                 }
  558.                 for (var c = '<div class="toolbar">', d = e.toolbar.items, h = d.list, g = 0; g < h.length; g++) c += (d[h[g]].getHtml || b)(a, h[g]);
  559.                 c += "</div>";
  560.                 return c
  561.             },
  562.             getButtonHtml: function(a, b, c) {
  563.                 return '<span><a href="#" class="toolbar_item command_' + b + " " + b + '">' + c + "</a></span>"
  564.             },
  565.             handler: function(a) {
  566.                 var b = a.target,
  567.                     c = b.className || "";
  568.                 b = B(p(b, ".syntaxhighlighter", true).id);
  569.                 var d = function(h) {
  570.                     return (h = RegExp(h + "_(\\w+)").exec(c)) ? h[1] : null
  571.                 }("command");
  572.                 b && d && e.toolbar.items[d].execute(b);
  573.                 a.preventDefault()
  574.             },
  575.             items: {
  576.                 list: ["expandSource", "help"],
  577.                 expandSource: {
  578.                     getHtml: function(a) {
  579.                         if (a.getParam("collapse") != true) return "";
  580.                         var b = a.getParam("title");
  581.                         return e.toolbar.getButtonHtml(a, "expandSource", b ? b : e.config.strings.expandSource)
  582.                     },
  583.                     execute: function(a) {
  584.                         a = document.getElementById(t(a.id));
  585.                         a.className = a.className.replace("collapsed", "")
  586.                     }
  587.                 },
  588.                 help: {
  589.                     execute: function() {
  590.                         var a = "scrollbars=0";
  591.                         a += ", left=" + (screen.width - 500) / 2 + ", top=" + (screen.height - 250) / 2 + ", width=500, height=250";
  592.                         a = a.replace(/^,/, "");
  593.                         a = window.open("", "_blank", a);
  594.                         a.focus();
  595.                         var b = a.document;
  596.                         b.write(e.config.strings.aboutDialog);
  597.                         b.close();
  598.                         a.focus()
  599.                     }
  600.                 }
  601.             }
  602.         },
  603.         findElements: function(a, b) {
  604.             var c;
  605.             if (b) c = [b];
  606.             else {
  607.                 c = document.getElementsByTagName(e.config.tagName);
  608.                 for (var d = [], h = 0; h < c.length; h++) d.push(c[h]);
  609.                 c = d
  610.             }
  611.             c = c;
  612.             d = [];
  613.             if (e.config.useScriptTags) c = c.concat(z());
  614.             if (c.length === 0) return d;
  615.             for (h = 0; h < c.length; h++) {
  616.                 for (var g = c[h], i = a, k = c[h].className, j = void 0, l = {}, m = new XRegExp("^\\[(?<values>(.*?))\\]$"), s = new XRegExp("(?<name>[\\w-]+)\\s*:\\s*(?<value>[\\w-%#]+|\\[.*?\\]|\".*?\"|'.*?')\\s*;?", "g");
  617.                     (j = s.exec(k)) != null;) {
  618.                     var o = j.value.replace(/^['"]|['"]$/g, "");
  619.                     if (o != null && m.test(o)) {
  620.                         o = m.exec(o);
  621.                         o = o.values.length > 0 ? o.values.split(/\s*,\s*/) : []
  622.                     }
  623.                     l[j.name] = o
  624.                 }
  625.                 g = {
  626.                     target: g,
  627.                     params: C(i, l)
  628.                 };
  629.                 g.params.brush != null && d.push(g)
  630.             }
  631.             return d
  632.         },
  633.         highlight: function(a, b) {
  634.             var c = this.findElements(a, b),
  635.                 d = null,
  636.                 h = e.config;
  637.             if (c.length !== 0)
  638.                 for (var g = 0; g < c.length; g++) {
  639.                     b = c[g];
  640.                     var i = b.target,
  641.                         k = b.params,
  642.                         j = k.brush,
  643.                         l;
  644.                     if (j != null) {
  645.                         if (k["html-script"] == "true" || e.defaults["html-script"] == true) {
  646.                             d = new e.HtmlScript(j);
  647.                             j = "htmlscript"
  648.                         } else if (d = A(j)) d = new d;
  649.                         else continue;
  650.                         l = i.innerHTML;
  651.                         if (h.useScriptTags) {
  652.                             l = l;
  653.                             var m = x(l),
  654.                                 s = false;
  655.                             if (m.indexOf("<![CDATA[") == 0) {
  656.                                 m = m.substring(9);
  657.                                 s = true
  658.                             }
  659.                             var o = m.length;
  660.                             if (m.indexOf("]]\>") == o - 3) {
  661.                                 m = m.substring(0, o - 3);
  662.                                 s = true
  663.                             }
  664.                             l = s ? m : l
  665.                         }
  666.                         if ((i.title || "") != "") k.title = i.title;
  667.                         k.brush = j;
  668.                         d.init(k);
  669.                         b = d.getDiv(l);
  670.                         if ((i.id || "") != "") b.id = i.id;
  671.                         i.parentNode.replaceChild(b, i)
  672.                     }
  673.                 }
  674.         },
  675.         all: function(a) {
  676.             w(window, "load", function() {
  677.                 e.highlight(a)
  678.             })
  679.         }
  680.     };
  681.     e.all = e.all;
  682.     e.highlight = e.highlight;
  683.     e.Match = function(a, b, c) {
  684.         this.value = a;
  685.         this.index = b;
  686.         this.length = a.length;
  687.         this.css = c;
  688.         this.brushName = null
  689.     };
  690.     e.Match.prototype.toString = function() {
  691.         return this.value
  692.     };
  693.     e.HtmlScript = function(a) {
  694.         function b(j, l) {
  695.             for (var m = 0; m < j.length; m++) j[m].index += l
  696.         }
  697.         var c = A(a),
  698.             d, h = new e.brushes.Xml,
  699.             g = this,
  700.             i = "getDiv getHtml init".split(" ");
  701.         if (c != null) {
  702.             d = new c;
  703.             for (var k = 0; k < i.length; k++)(function() {
  704.                 var j = i[k];
  705.                 g[j] = function() {
  706.                     return h[j].apply(h, arguments)
  707.                 }
  708.             })();
  709.             d.htmlScript == null ? window.alert(e.config.strings.alert + (e.config.strings.brushNotHtmlScript + a)) : h.regexList.push({
  710.                 regex: d.htmlScript.code,
  711.                 func: function(j) {
  712.                     for (var l = j.code, m = [], s = d.regexList, o = j.index + j.left.length, F = d.htmlScript, q, G = 0; G < s.length; G++) {
  713.                         q = y(l, s[G]);
  714.                         b(q, o);
  715.                         m = m.concat(q)
  716.                     }
  717.                     if (F.left != null && j.left != null) {
  718.                         q = y(j.left, F.left);
  719.                         b(q, j.index);
  720.                         m = m.concat(q)
  721.                     }
  722.                     if (F.right != null && j.right != null) {
  723.                         q = y(j.right, F.right);
  724.                         b(q, j.index + j[0].lastIndexOf(j.right));
  725.                         m = m.concat(q)
  726.                     }
  727.                     for (j = 0; j < m.length; j++) m[j].brushName = c.brushName;
  728.                     return m
  729.                 }
  730.             })
  731.         }
  732.     };
  733.     e.Highlighter = function() {};
  734.     e.Highlighter.prototype = {
  735.         getParam: function(a, b) {
  736.             var c = this.params[a];
  737.             c = c == null ? b : c;
  738.             var d = {
  739.                 "true": true,
  740.                 "false": false
  741.             }[c];
  742.             return d == null ? c : d
  743.         },
  744.         create: function(a) {
  745.             return document.createElement(a)
  746.         },
  747.         findMatches: function(a, b) {
  748.             var c = [];
  749.             if (a != null)
  750.                 for (var d = 0; d < a.length; d++)
  751.                     if (typeof a[d] == "object") c = c.concat(y(b, a[d]));
  752.             return this.removeNestedMatches(c.sort(D))
  753.         },
  754.         removeNestedMatches: function(a) {
  755.             for (var b = 0; b < a.length; b++)
  756.                 if (a[b] !== null)
  757.                     for (var c = a[b], d = c.index + c.length, h = b + 1; h < a.length && a[b] !== null; h++) {
  758.                         var g = a[h];
  759.                         if (g !== null)
  760.                             if (g.index > d) break;
  761.                             else if (g.index == c.index && g.length > c.length) a[b] = null;
  762.                         else if (g.index >= c.index && g.index < d) a[h] = null
  763.                     }
  764.                 return a
  765.         },
  766.         figureOutLineNumbers: function(a) {
  767.             var b = [],
  768.                 c = parseInt(this.getParam("first-line"));
  769.             v(a, function(d, h) {
  770.                 b.push(h + c)
  771.             });
  772.             return b
  773.         },
  774.         isLineHighlighted: function(a) {
  775.             var b = this.getParam("highlight", []);
  776.             if (typeof b != "object" && b.push == null) b = [b];
  777.             a: {
  778.                 a = a.toString();
  779.                 var c = void 0;
  780.                 for (c = c = Math.max(c || 0, 0); c < b.length; c++)
  781.                     if (b[c] == a) {
  782.                         b = c;
  783.                         break a
  784.                     }
  785.                 b = -1
  786.             }
  787.             return b != -1
  788.         },
  789.         getLineHtml: function(a, b, c) {
  790.             a = ["line", "number" + b, "index" + a, "alt" + (b % 2 == 0 ? 1 : 2).toString()];
  791.             this.isLineHighlighted(b) && a.push("highlighted");
  792.             b == 0 && a.push("break");
  793.             return '<div class="' + a.join(" ") + '">' + c + "</div>"
  794.         },
  795.         getLineNumbersHtml: function(a, b) {
  796.             var c = "",
  797.                 d = a.split("\n").length,
  798.                 h = parseInt(this.getParam("first-line")),
  799.                 g = this.getParam("pad-line-numbers");
  800.             if (g == true) g = (h + d - 1).toString().length;
  801.             else if (isNaN(g) == true) g = 0;
  802.             for (var i = 0; i < d; i++) {
  803.                 var k = b ? b[i] : h + i,
  804.                     j;
  805.                 if (k == 0) j = e.config.space;
  806.                 else {
  807.                     j = g;
  808.                     for (var l = k.toString(); l.length < j;) l = "0" + l;
  809.                     j = l
  810.                 }
  811.                 a = j;
  812.                 c += this.getLineHtml(i, k, a)
  813.             }
  814.             return c
  815.         },
  816.         getCodeLinesHtml: function(a, b) {
  817.             a = x(a);
  818.             var c = a.split("\n");
  819.             this.getParam("pad-line-numbers");
  820.             var d = parseInt(this.getParam("first-line"));
  821.             a = "";
  822.             for (var h = this.getParam("brush"), g = 0; g < c.length; g++) {
  823.                 var i = c[g],
  824.                     k = /^(&nbsp;|\s)+/.exec(i),
  825.                     j = null,
  826.                     l = b ? b[g] : d + g;
  827.                 if (k != null) {
  828.                     j = k[0].toString();
  829.                     i = i.substr(j.length);
  830.                     j = j.replace(" ", e.config.space)
  831.                 }
  832.                 i = x(i);
  833.                 if (i.length == 0) i = e.config.space;
  834.                 a += this.getLineHtml(g, l, (j != null ? '<code class="' + h + ' spaces">' + j + "</code>" : "") + i)
  835.             }
  836.             return a
  837.         },
  838.         getTitleHtml: function(a) {
  839.             return a ? "<caption>" + a + "</caption>" : ""
  840.         },
  841.         getMatchesHtml: function(a, b) {
  842.             function c(l) {
  843.                 return (l = l ? l.brushName || g : g) ? l + " " : ""
  844.             }
  845.             for (var d = 0, h = "", g = this.getParam("brush", ""), i = 0; i < b.length; i++) {
  846.                 var k = b[i],
  847.                     j;
  848.                 if (!(k === null || k.length === 0)) {
  849.                     j = c(k);
  850.                     h += u(a.substr(d, k.index - d), j + "plain") + u(k.value, j + k.css);
  851.                     d = k.index + k.length + (k.offset || 0)
  852.                 }
  853.             }
  854.             h += u(a.substr(d), c() + "plain");
  855.             return h
  856.         },
  857.         getHtml: function(a) {
  858.             var b = "",
  859.                 c = ["syntaxhighlighter"],
  860.                 d;
  861.             if (this.getParam("light") == true) this.params.toolbar = this.params.gutter = false;
  862.             className = "syntaxhighlighter";
  863.             this.getParam("collapse") == true && c.push("collapsed");
  864.             if ((gutter = this.getParam("gutter")) == false) c.push("nogutter");
  865.             c.push(this.getParam("class-name"));
  866.             c.push(this.getParam("brush"));
  867.             a = a.replace(/^[ ]*[\n]+|[\n]*[ ]*$/g, "").replace(/\r/g, " ");
  868.             b = this.getParam("tab-size");
  869.             if (this.getParam("smart-tabs") == true) a = n(a, b);
  870.             else {
  871.                 for (var h = "", g = 0; g < b; g++) h += " ";
  872.                 a = a.replace(/\t/g, h)
  873.             }
  874.             a = a;
  875.             a: {
  876.                 b = a = a;
  877.                 h = /<br\s*\/?>|&lt;br\s*\/?&gt;/gi;
  878.                 if (e.config.bloggerMode == true) b = b.replace(h, "\n");
  879.                 if (e.config.stripBrs == true) b = b.replace(h, "");
  880.                 b = b.split("\n");
  881.                 h = /^\s*/;
  882.                 g = 1E3;
  883.                 for (var i = 0; i < b.length && g > 0; i++) {
  884.                     var k = b[i];
  885.                     if (x(k).length != 0) {
  886.                         k = h.exec(k);
  887.                         if (k == null) {
  888.                             a = a;
  889.                             break a
  890.                         }
  891.                         g = Math.min(k[0].length, g)
  892.                     }
  893.                 }
  894.                 if (g > 0)
  895.                     for (i = 0; i < b.length; i++) b[i] = b[i].substr(g);
  896.                 a = b.join("\n")
  897.             }
  898.             if (gutter) d = this.figureOutLineNumbers(a);
  899.             b = this.findMatches(this.regexList, a);
  900.             b = this.getMatchesHtml(a, b);
  901.             b = this.getCodeLinesHtml(b, d);
  902.             if (this.getParam("auto-links")) b = E(b);
  903.             typeof navigator != "undefined" && navigator.userAgent && navigator.userAgent.match(/MSIE/) && c.push("ie");
  904.             return b = '<div id="' + t(this.id) + '" class="' + c.join(" ") + '">' + (this.getParam("toolbar") ? e.toolbar.getHtml(this) : "") + '<table border="0" cellpadding="0" cellspacing="0">' + this.getTitleHtml(this.getParam("title")) + "<tbody><tr>" + (gutter ? '<td class="gutter">' + this.getLineNumbersHtml(a) + "</td>" : "") + '<td class="code"><div class="container">' + b + "</div></td></tr></tbody></table></div>"
  905.         },
  906.         getDiv: function(a) {
  907.             if (a === null) a = "";
  908.             this.code = a;
  909.             var b = this.create("div");
  910.             b.innerHTML = this.getHtml(a);
  911.             this.getParam("toolbar") && w(p(b, ".toolbar"), "click", e.toolbar.handler);
  912.             this.getParam("quick-code") && w(p(b, ".code"), "dblclick", f);
  913.             return b
  914.         },
  915.         init: function(a) {
  916.             this.id = "" + Math.round(Math.random() * 1E6).toString();
  917.             e.vars.highlighters[t(this.id)] = this;
  918.             this.params = C(e.defaults, a || {});
  919.             if (this.getParam("light") == true) this.params.toolbar = this.params.gutter = false
  920.         },
  921.         getKeywords: function(a) {
  922.             a = a.replace(/^\s+|\s+$/g, "").replace(/\s+/g, "|");
  923.             return "\\b(?:" + a + ")\\b"
  924.         },
  925.         forHtmlScript: function(a) {
  926.             this.htmlScript = {
  927.                 left: {
  928.                     regex: a.left,
  929.                     css: "script"
  930.                 },
  931.                 right: {
  932.                     regex: a.right,
  933.                     css: "script"
  934.                 },
  935.                 code: new XRegExp("(?<left>" + a.left.source + ")(?<code>.*?)(?<right>" + a.right.source + ")", "sgi")
  936.             }
  937.         }
  938.     };
  939.     return e
  940. }();
  941. typeof exports != "undefined" && (exports.SyntaxHighlighter = SyntaxHighlighter);
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×