<!DOCTYPE html>
|
<html lang="en">
|
<head>
|
<meta charset="UTF-8">
|
<title> </title>
|
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,500,600" rel="stylesheet">
|
<style>
|
/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript&plugins=line-highlight+line-numbers+toolbar+show-language */
|
/**
|
* prism.js default theme for JavaScript, CSS and HTML
|
* Based on dabblet (http://dabblet.com)
|
* @author Lea Verou
|
*/
|
code[class*="language-"],
|
pre[class*="language-"] {
|
color: black;
|
background: none;
|
text-shadow: 0 1px white;
|
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
text-align: left;
|
white-space: pre;
|
word-spacing: normal;
|
word-break: normal;
|
word-wrap: normal;
|
line-height: 1.5;
|
|
-moz-tab-size: 4;
|
-o-tab-size: 4;
|
tab-size: 4;
|
|
-webkit-hyphens: none;
|
-moz-hyphens: none;
|
-ms-hyphens: none;
|
hyphens: none;
|
}
|
|
pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
|
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
|
text-shadow: none;
|
background: #b3d4fc;
|
}
|
|
pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
|
code[class*="language-"]::selection, code[class*="language-"] ::selection {
|
text-shadow: none;
|
background: #b3d4fc;
|
}
|
|
@media print {
|
code[class*="language-"],
|
pre[class*="language-"] {
|
text-shadow: none;
|
}
|
}
|
|
/* Code blocks */
|
pre[class*="language-"] {
|
padding: 1em;
|
margin: .5em 0;
|
overflow: auto;
|
}
|
|
:not(pre) > code[class*="language-"],
|
pre[class*="language-"] {
|
background: #f5f2f0;
|
}
|
|
/* Inline code */
|
:not(pre) > code[class*="language-"] {
|
padding: .1em;
|
border-radius: .3em;
|
white-space: normal;
|
}
|
|
.token.comment,
|
.token.prolog,
|
.token.doctype,
|
.token.cdata {
|
color: slategray;
|
}
|
|
.token.punctuation {
|
color: #999;
|
}
|
|
.namespace {
|
opacity: .7;
|
}
|
|
.token.property,
|
.token.tag,
|
.token.boolean,
|
.token.number,
|
.token.constant,
|
.token.symbol,
|
.token.deleted {
|
color: #905;
|
}
|
|
.token.selector,
|
.token.attr-name,
|
.token.string,
|
.token.char,
|
.token.builtin,
|
.token.inserted {
|
color: #690;
|
}
|
|
.token.operator,
|
.token.entity,
|
.token.url,
|
.language-css .token.string,
|
.style .token.string {
|
color: #a67f59;
|
background: hsla(0, 0%, 100%, .5);
|
}
|
|
.token.atrule,
|
.token.attr-value,
|
.token.keyword {
|
color: #07a;
|
}
|
|
.token.function {
|
color: #DD4A68;
|
}
|
|
.token.regex,
|
.token.important,
|
.token.variable {
|
color: #e90;
|
}
|
|
.token.important,
|
.token.bold {
|
font-weight: bold;
|
}
|
.token.italic {
|
font-style: italic;
|
}
|
|
.token.entity {
|
cursor: help;
|
}
|
|
pre[data-line] {
|
position: relative;
|
padding: 1em 0 1em 3em;
|
}
|
|
.line-highlight {
|
position: absolute;
|
left: 0;
|
right: 0;
|
padding: inherit 0;
|
margin-top: 1em; /* Same as .prism’s padding-top */
|
|
background: hsla(24, 20%, 50%,.08);
|
background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
|
|
pointer-events: none;
|
|
line-height: inherit;
|
white-space: pre;
|
}
|
|
.line-highlight:before,
|
.line-highlight[data-end]:after {
|
content: attr(data-start);
|
position: absolute;
|
top: .4em;
|
left: .6em;
|
min-width: 1em;
|
padding: 0 .5em;
|
background-color: hsla(24, 20%, 50%,.4);
|
color: hsl(24, 20%, 95%);
|
font: bold 65%/1.5 sans-serif;
|
text-align: center;
|
vertical-align: .3em;
|
border-radius: 999px;
|
text-shadow: none;
|
box-shadow: 0 1px white;
|
}
|
|
.line-highlight[data-end]:after {
|
content: attr(data-end);
|
top: auto;
|
bottom: .4em;
|
}
|
|
pre.line-numbers {
|
position: relative;
|
padding-left: 3.8em;
|
counter-reset: linenumber;
|
}
|
|
pre.line-numbers > code {
|
position: relative;
|
}
|
|
.line-numbers .line-numbers-rows {
|
position: absolute;
|
pointer-events: none;
|
top: 0;
|
font-size: 100%;
|
left: -3.8em;
|
width: 3em; /* works for line-numbers below 1000 lines */
|
letter-spacing: -1px;
|
border-right: 1px solid #999;
|
|
-webkit-user-select: none;
|
-moz-user-select: none;
|
-ms-user-select: none;
|
user-select: none;
|
|
}
|
|
.line-numbers-rows > span {
|
pointer-events: none;
|
display: block;
|
counter-increment: linenumber;
|
}
|
|
.line-numbers-rows > span:before {
|
content: counter(linenumber);
|
color: #999;
|
display: block;
|
padding-right: 0.8em;
|
text-align: right;
|
}
|
pre.code-toolbar {
|
position: relative;
|
}
|
|
pre.code-toolbar > .toolbar {
|
position: absolute;
|
top: .3em;
|
right: .2em;
|
transition: opacity 0.3s ease-in-out;
|
opacity: 0;
|
}
|
|
pre.code-toolbar:hover > .toolbar {
|
opacity: 1;
|
}
|
|
pre.code-toolbar > .toolbar .toolbar-item {
|
display: inline-block;
|
}
|
|
pre.code-toolbar > .toolbar a {
|
cursor: pointer;
|
}
|
|
pre.code-toolbar > .toolbar button {
|
background: none;
|
border: 0;
|
color: inherit;
|
font: inherit;
|
line-height: normal;
|
overflow: visible;
|
padding: 0;
|
-webkit-user-select: none; /* for button */
|
-moz-user-select: none;
|
-ms-user-select: none;
|
}
|
|
pre.code-toolbar > .toolbar a,
|
pre.code-toolbar > .toolbar button,
|
pre.code-toolbar > .toolbar span {
|
color: #bbb;
|
font-size: .8em;
|
padding: 0 .5em;
|
background: #f5f2f0;
|
background: rgba(224, 224, 224, 0.2);
|
box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
|
border-radius: .5em;
|
}
|
|
pre.code-toolbar > .toolbar a:hover,
|
pre.code-toolbar > .toolbar a:focus,
|
pre.code-toolbar > .toolbar button:hover,
|
pre.code-toolbar > .toolbar button:focus,
|
pre.code-toolbar > .toolbar span:hover,
|
pre.code-toolbar > .toolbar span:focus {
|
color: inherit;
|
text-decoration: none;
|
}
|
</style>
|
|
<style>
|
@keyframes hover-color {
|
from {
|
border-color: #c0c0c0; }
|
to {
|
border-color: #3e97eb; } }
|
|
.magic-radio,
|
.magic-checkbox {
|
position: absolute;
|
display: none; }
|
|
.magic-radio[disabled],
|
.magic-checkbox[disabled] {
|
cursor: not-allowed; }
|
|
.magic-radio + label,
|
.magic-checkbox + label {
|
position: relative;
|
display: block;
|
padding-left: 30px;
|
cursor: pointer;
|
vertical-align: middle; }
|
.magic-radio + label:hover:before,
|
.magic-checkbox + label:hover:before {
|
animation-duration: 0.4s;
|
animation-fill-mode: both;
|
animation-name: hover-color; }
|
.magic-radio + label:before,
|
.magic-checkbox + label:before {
|
position: absolute;
|
top: 0;
|
left: 0;
|
display: inline-block;
|
width: 20px;
|
height: 20px;
|
content: '';
|
border: 1px solid #c0c0c0; }
|
.magic-radio + label:after,
|
.magic-checkbox + label:after {
|
position: absolute;
|
display: none;
|
content: ''; }
|
|
.magic-radio[disabled] + label,
|
.magic-checkbox[disabled] + label {
|
cursor: not-allowed;
|
color: #e4e4e4; }
|
.magic-radio[disabled] + label:hover, .magic-radio[disabled] + label:before, .magic-radio[disabled] + label:after,
|
.magic-checkbox[disabled] + label:hover,
|
.magic-checkbox[disabled] + label:before,
|
.magic-checkbox[disabled] + label:after {
|
cursor: not-allowed; }
|
.magic-radio[disabled] + label:hover:before,
|
.magic-checkbox[disabled] + label:hover:before {
|
border: 1px solid #e4e4e4;
|
animation-name: none; }
|
.magic-radio[disabled] + label:before,
|
.magic-checkbox[disabled] + label:before {
|
border-color: #e4e4e4; }
|
|
.magic-radio:checked + label:before,
|
.magic-checkbox:checked + label:before {
|
animation-name: none; }
|
|
.magic-radio:checked + label:after,
|
.magic-checkbox:checked + label:after {
|
display: block; }
|
|
.magic-radio + label:before {
|
border-radius: 50%; }
|
|
.magic-radio + label:after {
|
top: 6px;
|
left: 6px;
|
width: 8px;
|
height: 8px;
|
border-radius: 50%;
|
background: #3e97eb; }
|
|
.magic-radio:checked + label:before {
|
border: 1px solid #3e97eb; }
|
|
.magic-radio:checked[disabled] + label:before {
|
border: 1px solid #c9e2f9; }
|
|
.magic-radio:checked[disabled] + label:after {
|
background: #c9e2f9; }
|
|
.magic-checkbox + label:before {
|
border-radius: 3px; }
|
|
.magic-checkbox + label:after {
|
top: 2px;
|
left: 7px;
|
box-sizing: border-box;
|
width: 6px;
|
height: 12px;
|
transform: rotate(45deg);
|
border-width: 2px;
|
border-style: solid;
|
border-color: #fff;
|
border-top: 0;
|
border-left: 0; }
|
|
.magic-checkbox:checked + label:before {
|
border: #3e97eb;
|
background: #3e97eb; }
|
|
.magic-checkbox:checked[disabled] + label:before {
|
border: #c9e2f9;
|
background: #c9e2f9; }
|
</style>
|
|
<style>
|
html, body {
|
height: 100%;
|
width: 100%;
|
}
|
|
body {
|
font-family: 'Source Sans Pro', sans-serif;
|
font-size: 14px;
|
line-height: 24px;
|
color: #444;
|
}
|
|
* {
|
padding: 0;
|
margin: 0;
|
}
|
|
.error-page {
|
display: flex;
|
flex-direction: column;
|
width: 100%;
|
height: 100%;
|
}
|
|
.error-stack {
|
background: #edecea;
|
padding: 100px 80px;
|
box-sizing: border-box;
|
}
|
|
.error-status {
|
color: #afafaf;
|
font-size: 150px;
|
position: absolute;
|
opacity: 0.2;
|
right: 80px;
|
top: 80px;
|
font-weight: 600;
|
margin-bottom: 10px;
|
}
|
|
.error-name {
|
color: #db5461;
|
font-size: 18px;
|
font-family: menlo, 'sans-serif';
|
font-weight: 600;
|
margin-bottom: 15px;
|
}
|
|
.error-message {
|
font-weight: 300;
|
font-size: 40px;
|
line-height: 48px;
|
}
|
|
.error-title {
|
border-bottom: 1px solid #d0cfcf;
|
padding-bottom: 40px;
|
margin-bottom: 20px;
|
}
|
|
.error-frames {
|
display: flex;
|
flex-direction: row-reverse;
|
}
|
|
.frame-preview {
|
min-width: 50%;
|
background: #fff;
|
box-shadow: 0px 0px 9px #d3d3d3;
|
height: 100%;
|
box-sizing: border-box;
|
overflow: auto;
|
}
|
|
.frame-stack {
|
min-width: 50%;
|
margin-right: 40px;
|
flex: 1;
|
padding: 10px 0;
|
box-sizing: border-box;
|
}
|
|
.frames-list {
|
overflow: auto;
|
max-height: 334px;
|
}
|
|
.frames-filter-selector {
|
margin-bottom: 30px;
|
margin-left: 8px;
|
}
|
|
.unselectable {
|
-webkit-user-select: none; /* Chrome/Safari */
|
-moz-user-select: none; /* Firefox */
|
-ms-user-select: none; /* IE10+ */
|
|
/* Rules below not implemented in browsers yet */
|
-o-user-select: none;
|
user-select: none;
|
}
|
|
.request-details {
|
padding: 50px 80px;
|
}
|
|
.request-title {
|
text-transform: uppercase;
|
font-size: 18px;
|
letter-spacing: 1px;
|
padding: 0 5px 5px 5px;
|
margin-bottom: 15px;
|
}
|
|
.request-details table {
|
width: 100%;
|
border-collapse: collapse;
|
margin-bottom: 80px;
|
}
|
|
.request-details table td {
|
padding: 6px 5px;
|
font-size: 14px;
|
letter-spacing: 0.4px;
|
color: #455275;
|
border-bottom: 1px solid #e8e8e8;
|
word-break: break-word;
|
}
|
|
.request-details table td.title {
|
color: #999;
|
width: 40%;
|
font-size: 14px;
|
font-weight: 600;
|
text-transform: uppercase;
|
}
|
|
code[class*="language-"], pre[class*="language-"] {
|
background: transparent;
|
font-size: 13px;
|
line-height: 1.8;
|
}
|
|
.line-numbers .line-numbers-rows {
|
border: none;
|
}
|
|
.frame-row {
|
display: flex;
|
justify-content: space-between;
|
padding: 6px 34px 6px 10px;
|
position: relative;
|
cursor: pointer;
|
transition: background 300ms ease;
|
}
|
|
.frame-row.native-frame {
|
display: none;
|
opacity: 0.4;
|
}
|
|
.frame-row.native-frame.force-show {
|
display: flex;
|
}
|
|
.frame-row:after {
|
content: "";
|
background: #db5461;
|
position: absolute;
|
top: 50%;
|
right: 10px;
|
transform: translateY(-50%);
|
height: 10px;
|
width: 10px;
|
border-radius: 24px;
|
}
|
|
.frame-row:hover, .frame-row.active {
|
background: #fff;
|
}
|
|
.frame-row.active {
|
opacity: 1;
|
}
|
|
.frame-row-filepath {
|
color: #455275;
|
font-weight: 600;
|
margin-right: 15px;
|
}
|
|
.frame-context {
|
display: none;
|
}
|
|
.frame-row-code {
|
overflow: hidden;
|
color: #999;
|
}
|
|
#frame-file {
|
color: #455275;
|
font-weight: 600;
|
border-bottom: 1px solid #e8e8e8;
|
padding: 10px 22px;
|
}
|
|
#frame-method {
|
color: #999;
|
font-weight: 400;
|
border-top: 1px solid #e8e8e8;
|
padding: 10px 22px;
|
}
|
|
.is-hidden {
|
display: none;
|
}
|
|
.open {
|
text-decoration: none;
|
color: gray;
|
margin-right: 10px;
|
border: 1px solid grey;
|
float: right;
|
padding: 1px 5px;
|
border-radius: 20px;
|
}
|
|
@media only screen and (max-width: 970px) {
|
.error-frames {
|
flex-direction: column-reverse;
|
}
|
|
.frame-preview {
|
width: 100%;
|
}
|
|
.frame-stack {
|
width: 100%;
|
}
|
}
|
</style>
|
</head>
|
<body>
|
<section class="error-page">
|
|
<section class="error-stack">
|
|
<h3 class="error-status unselectable">{{ status }}</h3>
|
|
<div class="error-title">
|
<h4 class="error-name"> {{ name }} </h4>
|
<h2 class="error-message"> {{ message }} </h2>
|
</div>
|
|
<div class="error-frames">
|
<div class="frame-preview is-hidden">
|
<div id="frame-file"></div>
|
<div id="frame-code"><pre class="line-numbers"><code id="code-drop"></code></pre></div>
|
<div id="frame-method"></div>
|
</div>
|
|
<div class="frame-stack">
|
{{#hasInternal}}
|
<div class="frames-filter-selector unselectable">
|
<input type="checkbox" class="magic-checkbox" name="frames-filter" id="frames-filter">
|
<label for="frames-filter">Show all frames</label>
|
</div>
|
{{/hasInternal}}
|
|
<div class="frames-list">
|
{{#frames}}
|
{{index}}
|
<div class="frame-row {{classes}}">
|
<div class="frame-row-filepath">
|
{{ file }}:{{ line }}:{{ column }}
|
</div>
|
<div class="frame-row-code">
|
{{ method }}
|
</div>
|
<div class="frame-context"
|
data-start="{{context.start}}"
|
data-line="{{line}}"
|
data-file="{{file}}"
|
data-method="{{method}}"
|
data-line-column="{{line}}:{{column}}"
|
data-lang="{{ lang }}"
|
data-open="{{ open }}"
|
>{{ context.pre }}
|
{{ context.line }}
|
{{ context.post }}
|
</div>
|
</div>
|
{{/frames}}
|
</div>
|
</div>
|
</div>
|
</section>
|
|
<section class="request-details">
|
<h2 class="request-title"> Request Details </h2>
|
|
<table>
|
<tr>
|
<td class="title"> URI </td>
|
<td> {{ request.url }} </td>
|
</tr>
|
|
<tr>
|
<td class="title"> Request Method </td>
|
<td> {{ request.method }} </td>
|
</tr>
|
|
<tr>
|
<td class="title"> HTTP Version </td>
|
<td> {{ request.httpVersion }} </td>
|
</tr>
|
|
<tr>
|
<td class="title"> Connection </td>
|
<td> {{ request.connection }} </td>
|
</tr>
|
</table>
|
|
<h2 class="request-title"> Headers </h2>
|
|
<table>
|
{{#request.headers}}
|
<tr>
|
<td class="title"> {{ key }} </td>
|
<td> {{ value }} </td>
|
</tr>
|
{{/request.headers}}
|
</table>
|
|
<h2 class="request-title"> Cookies </h2>
|
<table>
|
{{#request.cookies}}
|
<tr>
|
<td class="title"> {{ key }} </td>
|
<td> {{ value }} </td>
|
</tr>
|
{{/request.cookies}}
|
</table>
|
</section>
|
|
<script type="text/javascript">
|
var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(\w+)\b/i,t=0,n=_self.Prism={util:{encode:function(e){return e instanceof a?new a(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function(e){var t=n.util.type(e);switch(t){case"Object":var a={};for(var r in e)e.hasOwnProperty(r)&&(a[r]=n.util.clone(e[r]));return a;case"Array":return e.map&&e.map(function(e){return n.util.clone(e)})}return e}},languages:{extend:function(e,t){var a=n.util.clone(n.languages[e]);for(var r in t)a[r]=t[r];return a},insertBefore:function(e,t,a,r){r=r||n.languages;var i=r[e];if(2==arguments.length){a=arguments[1];for(var l in a)a.hasOwnProperty(l)&&(i[l]=a[l]);return i}var o={};for(var s in i)if(i.hasOwnProperty(s)){if(s==t)for(var l in a)a.hasOwnProperty(l)&&(o[l]=a[l]);o[s]=i[s]}return n.languages.DFS(n.languages,function(t,n){n===r[e]&&t!=e&&(this[t]=o)}),r[e]=o},DFS:function(e,t,a,r){r=r||{};for(var i in e)e.hasOwnProperty(i)&&(t.call(e,i,e[i],a||i),"Object"!==n.util.type(e[i])||r[n.util.objId(e[i])]?"Array"!==n.util.type(e[i])||r[n.util.objId(e[i])]||(r[n.util.objId(e[i])]=!0,n.languages.DFS(e[i],t,i,r)):(r[n.util.objId(e[i])]=!0,n.languages.DFS(e[i],t,null,r)))}},plugins:{},highlightAll:function(e,t){var a={callback:t,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};n.hooks.run("before-highlightall",a);for(var r,i=a.elements||document.querySelectorAll(a.selector),l=0;r=i[l++];)n.highlightElement(r,e===!0,a.callback)},highlightElement:function(t,a,r){for(var i,l,o=t;o&&!e.test(o.className);)o=o.parentNode;o&&(i=(o.className.match(e)||[,""])[1].toLowerCase(),l=n.languages[i]),t.className=t.className.replace(e,"").replace(/\s+/g," ")+" language-"+i,o=t.parentNode,/pre/i.test(o.nodeName)&&(o.className=o.className.replace(e,"").replace(/\s+/g," ")+" language-"+i);var s=t.textContent,u={element:t,language:i,grammar:l,code:s};if(n.hooks.run("before-sanity-check",u),!u.code||!u.grammar)return u.code&&(u.element.textContent=u.code),n.hooks.run("complete",u),void 0;if(n.hooks.run("before-highlight",u),a&&_self.Worker){var g=new Worker(n.filename);g.onmessage=function(e){u.highlightedCode=e.data,n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,r&&r.call(u.element),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},g.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else u.highlightedCode=n.highlight(u.code,u.grammar,u.language),n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,r&&r.call(t),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},highlight:function(e,t,r){var i=n.tokenize(e,t);return a.stringify(n.util.encode(i),r)},tokenize:function(e,t){var a=n.Token,r=[e],i=t.rest;if(i){for(var l in i)t[l]=i[l];delete t.rest}e:for(var l in t)if(t.hasOwnProperty(l)&&t[l]){var o=t[l];o="Array"===n.util.type(o)?o:[o];for(var s=0;s<o.length;++s){var u=o[s],g=u.inside,c=!!u.lookbehind,h=!!u.greedy,f=0,d=u.alias;if(h&&!u.pattern.global){var p=u.pattern.toString().match(/[imuy]*$/)[0];u.pattern=RegExp(u.pattern.source,p+"g")}u=u.pattern||u;for(var m=0,y=0;m<r.length;y+=r[m].length,++m){var v=r[m];if(r.length>e.length)break e;if(!(v instanceof a)){u.lastIndex=0;var b=u.exec(v),k=1;if(!b&&h&&m!=r.length-1){if(u.lastIndex=y,b=u.exec(e),!b)break;for(var w=b.index+(c?b[1].length:0),_=b.index+b[0].length,A=m,P=y,j=r.length;j>A&&_>P;++A)P+=r[A].length,w>=P&&(++m,y=P);if(r[m]instanceof a||r[A-1].greedy)continue;k=A-m,v=e.slice(y,P),b.index-=y}if(b){c&&(f=b[1].length);var w=b.index+f,b=b[0].slice(f),_=w+b.length,x=v.slice(0,w),O=v.slice(_),S=[m,k];x&&S.push(x);var N=new a(l,g?n.tokenize(b,g):b,d,b,h);S.push(N),O&&S.push(O),Array.prototype.splice.apply(r,S)}}}}}return r},hooks:{all:{},add:function(e,t){var a=n.hooks.all;a[e]=a[e]||[],a[e].push(t)},run:function(e,t){var a=n.hooks.all[e];if(a&&a.length)for(var r,i=0;r=a[i++];)r(t)}}},a=n.Token=function(e,t,n,a,r){this.type=e,this.content=t,this.alias=n,this.length=0|(a||"").length,this.greedy=!!r};if(a.stringify=function(e,t,r){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return a.stringify(n,t,e)}).join("");var i={type:e.type,content:a.stringify(e.content,t,r),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:r};if("comment"==i.type&&(i.attributes.spellcheck="true"),e.alias){var l="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}n.hooks.run("wrap",i);var o=Object.keys(i.attributes).map(function(e){return e+'="'+(i.attributes[e]||"").replace(/"/g,""")+'"'}).join(" ");return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+(o?" "+o:"")+">"+i.content+"</"+i.tag+">"},!_self.document)return _self.addEventListener?(_self.addEventListener("message",function(e){var t=JSON.parse(e.data),a=t.language,r=t.code,i=t.immediateClose;_self.postMessage(n.highlight(r,n.languages[a],a)),i&&_self.close()},!1),_self.Prism):_self.Prism;var r=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return r&&(n.filename=r.src,document.addEventListener&&!r.hasAttribute("data-manual")&&("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
|
Prism.languages.markup={comment:/<!--[\w\W]*?-->/,prolog:/<\?[\w\W]+?\?>/,doctype:/<!DOCTYPE[\w\W]+?>/i,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup;
|
Prism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:{pattern:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.util.clone(Prism.languages.css),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/(<style[\w\W]*?>)[\w\W]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag));
|
Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:{pattern:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};
|
Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*\*?|\/|~|\^|%|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\\\|\\?[^\\])*?`/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/(<script[\w\W]*?>)[\w\W]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript"}}),Prism.languages.js=Prism.languages.javascript;
|
!function(){function e(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function t(e,t){return t=" "+t+" ",(" "+e.className+" ").replace(/[\n\t]/g," ").indexOf(t)>-1}function n(e,n,i){for(var o,a=n.replace(/\s+/g,"").split(","),l=+e.getAttribute("data-line-offset")||0,d=r()?parseInt:parseFloat,c=d(getComputedStyle(e).lineHeight),s=0;o=a[s++];){o=o.split("-");var u=+o[0],m=+o[1]||u,h=document.createElement("div");h.textContent=Array(m-u+2).join(" \n"),h.setAttribute("aria-hidden","true"),h.className=(i||"")+" line-highlight",t(e,"line-numbers")||(h.setAttribute("data-start",u),m>u&&h.setAttribute("data-end",m)),h.style.top=(u-l-1)*c+"px",t(e,"line-numbers")?e.appendChild(h):(e.querySelector("code")||e).appendChild(h)}}function i(){var t=location.hash.slice(1);e(".temporary.line-highlight").forEach(function(e){e.parentNode.removeChild(e)});var i=(t.match(/\.([\d,-]+)$/)||[,""])[1];if(i&&!document.getElementById(t)){var r=t.slice(0,t.lastIndexOf(".")),o=document.getElementById(r);o&&(o.hasAttribute("data-line")||o.setAttribute("data-line",""),n(o,i,"temporary "),document.querySelector(".temporary.line-highlight").scrollIntoView())}}if("undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector){var r=function(){var e;return function(){if("undefined"==typeof e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding=0,t.style.border=0,t.innerHTML=" <br /> ",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}}(),o=0;Prism.hooks.add("complete",function(t){var r=t.element.parentNode,a=r&&r.getAttribute("data-line");r&&a&&/pre/i.test(r.nodeName)&&(clearTimeout(o),e(".line-highlight",r).forEach(function(e){e.parentNode.removeChild(e)}),n(r,a),o=setTimeout(i,1))}),window.addEventListener&&window.addEventListener("hashchange",i)}}();
|
!function(){"undefined"!=typeof self&&self.Prism&&self.document&&Prism.hooks.add("complete",function(e){if(e.code){var t=e.element.parentNode,s=/\s*\bline-numbers\b\s*/;if(t&&/pre/i.test(t.nodeName)&&(s.test(t.className)||s.test(e.element.className))&&!e.element.querySelector(".line-numbers-rows")){s.test(e.element.className)&&(e.element.className=e.element.className.replace(s,"")),s.test(t.className)||(t.className+=" line-numbers");var n,a=e.code.match(/\n(?!$)/g),l=a?a.length+1:1,r=new Array(l+1);r=r.join("<span></span>"),n=document.createElement("span"),n.setAttribute("aria-hidden","true"),n.className="line-numbers-rows",n.innerHTML=r,t.hasAttribute("data-start")&&(t.style.counterReset="linenumber "+(parseInt(t.getAttribute("data-start"),10)-1)),e.element.appendChild(n)}}})}();
|
!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var t=[],e={},n=function(){};Prism.plugins.toolbar={};var a=Prism.plugins.toolbar.registerButton=function(n,a){var o;o="function"==typeof a?a:function(t){var e;return"function"==typeof a.onClick?(e=document.createElement("button"),e.type="button",e.addEventListener("click",function(){a.onClick.call(this,t)})):"string"==typeof a.url?(e=document.createElement("a"),e.href=a.url):e=document.createElement("span"),e.textContent=a.text,e},t.push(e[n]=o)},o=Prism.plugins.toolbar.hook=function(a){var o=a.element.parentNode;if(o&&/pre/i.test(o.nodeName)&&!o.classList.contains("code-toolbar")){o.classList.add("code-toolbar");var r=document.createElement("div");r.classList.add("toolbar"),document.body.hasAttribute("data-toolbar-order")&&(t=document.body.getAttribute("data-toolbar-order").split(",").map(function(t){return e[t]||n})),t.forEach(function(t){var e=t(a);if(e){var n=document.createElement("div");n.classList.add("toolbar-item"),n.appendChild(e),r.appendChild(n)}}),o.appendChild(r)}};a("label",function(t){var e=t.element.parentNode;if(e&&/pre/i.test(e.nodeName)&&e.hasAttribute("data-label")){var n,a,o=e.getAttribute("data-label");try{a=document.querySelector("template#"+o)}catch(r){}return a?n=a.content:(e.hasAttribute("data-url")?(n=document.createElement("a"),n.href=e.getAttribute("data-url")):n=document.createElement("span"),n.textContent=o),n}}),Prism.hooks.add("complete",o)}}();
|
!function(){if("undefined"!=typeof self&&self.Prism&&self.document){if(!Prism.plugins.toolbar)return console.warn("Show Languages plugin loaded before Toolbar plugin."),void 0;var e={html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",css:"CSS",clike:"C-like",javascript:"JavaScript",abap:"ABAP",actionscript:"ActionScript",apacheconf:"Apache Configuration",apl:"APL",applescript:"AppleScript",asciidoc:"AsciiDoc",aspnet:"ASP.NET (C#)",autoit:"AutoIt",autohotkey:"AutoHotkey",basic:"BASIC",csharp:"C#",cpp:"C++",coffeescript:"CoffeeScript","css-extras":"CSS Extras",fsharp:"F#",glsl:"GLSL",graphql:"GraphQL",http:"HTTP",inform7:"Inform 7",json:"JSON",latex:"LaTeX",livescript:"LiveScript",lolcode:"LOLCODE",matlab:"MATLAB",mel:"MEL",nasm:"NASM",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",ocaml:"OCaml",parigp:"PARI/GP",php:"PHP","php-extras":"PHP Extras",powershell:"PowerShell",properties:".properties",protobuf:"Protocol Buffers",jsx:"React JSX",rest:"reST (reStructuredText)",sas:"SAS",sass:"Sass (Sass)",scss:"Sass (Scss)",sql:"SQL",typescript:"TypeScript",vhdl:"VHDL",vim:"vim",wiki:"Wiki markup",xojo:"Xojo (REALbasic)",yaml:"YAML"};Prism.plugins.toolbar.registerButton("show-language",function(t){var a=t.element.parentNode;if(a&&/pre/i.test(a.nodeName)){var s=a.getAttribute("data-language")||e[t.language]||t.language.substring(0,1).toUpperCase()+t.language.substring(1),r=document.createElement("span");return r.textContent=s,r}})}}();
|
</script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/zepto/1.2.0/zepto.min.js"></script>
|
<script>
|
Zepto(function ($) {
|
var nativeFramesLength = $('.frame-row.native-frame').length
|
var allFramesLength = $('.frame-row').length
|
|
function filterFrames () {
|
$('.frame-preview').removeClass('is-hidden')
|
var isSelected = $('#frames-filter').prop('checked')
|
if (isSelected) {
|
$('.frame-row.native-frame').addClass('force-show')
|
} else {
|
$('.frame-row.native-frame').removeClass('force-show')
|
}
|
}
|
|
function displayFirstView () {
|
if (nativeFramesLength !== allFramesLength) {
|
$('.frame-preview').removeClass('is-hidden')
|
}
|
}
|
|
function showFrameContext (frame) {
|
$frameContext = $(frame).find('.frame-context')
|
var $context = $frameContext.html()
|
$context = $context.trim().length === 0 ? 'Missing stack frames' : $context
|
|
var $line = $frameContext.attr('data-line')
|
var $start = $frameContext.attr('data-start')
|
var $file = $frameContext.attr('data-file')
|
var $method = $frameContext.attr('data-method')
|
var $lineColumn = $frameContext.attr('data-line-column')
|
var $lang = $frameContext.attr('data-lang')
|
var $open = $frameContext.attr('data-open')
|
|
if ($open) {
|
$file += '<a href="#" onClick="fetch(\''+ $open + '\')" class="open">open in editor</a>'
|
}
|
|
$('#code-drop').parent('pre').attr('data-line', $line);
|
$('#code-drop').parent('pre').attr('data-start', $start);
|
$('#code-drop').parent('pre').attr('data-line-offset', (Number($start) - 1))
|
|
$('#code-drop').attr('class', 'language-' + $lang)
|
$('.toolbar-item > span').html($lang.toUpperCase())
|
|
$('#code-drop').html($context)
|
$('#frame-file').html($file)
|
$('#frame-method').html($method + '@' + $lineColumn)
|
Prism.highlightAll()
|
}
|
|
$('.frame-row').click(function () {
|
$('.frame-row').removeClass('active')
|
$(this).addClass('active')
|
showFrameContext(this)
|
})
|
|
$('#frames-filter').click(function () {
|
filterFrames()
|
})
|
|
displayFirstView()
|
showFrameContext($('.frame-row.active')[0])
|
})
|
</script>
|
</section>
|
</body>
|
</html>
|