


        
        
    &lt;script&gt; Sfdump = window.Sfdump || (function (doc) { doc.documentElement.classList.add(&#039;sf-js-enabled&#039;); var rxEsc = /([.*+?^${}()|\[\]\/\\])/g, idRx = /\bsf-dump-\d+-ref[012]\w+\b/, keyHint = 0 &lt;= navigator.platform.toUpperCase().indexOf(&#039;MAC&#039;) ? &#039;Cmd&#039; : &#039;Ctrl&#039;, addEventListener = function (e, n, cb) { e.addEventListener(n, cb, false); }; if (!doc.addEventListener) { addEventListener = function (element, eventName, callback) { element.attachEvent(&#039;on&#039; + eventName, function (e) { e.preventDefault = function () {e.returnValue = false;}; e.target = e.srcElement; callback(e); }); }; } function toggle(a, recursive) { var s = a.nextSibling || {}, oldClass = s.className, arrow, newClass; if (/\bsf-dump-compact\b/.test(oldClass)) { arrow = &#039;&amp;#9660;&#039;; newClass = &#039;sf-dump-expanded&#039;; } else if (/\bsf-dump-expanded\b/.test(oldClass)) { arrow = &#039;&amp;#9654;&#039;; newClass = &#039;sf-dump-compact&#039;; } else { return false; } if (doc.createEvent &amp;&amp; s.dispatchEvent) { var event = doc.createEvent(&#039;Event&#039;); event.initEvent(&#039;sf-dump-expanded&#039; === newClass ? &#039;sfbeforedumpexpand&#039; : &#039;sfbeforedumpcollapse&#039;, true, false); s.dispatchEvent(event); } a.lastChild.innerHTML = arrow; s.className = s.className.replace(/\bsf-dump-(compact|expanded)\b/, newClass); if (recursive) { try { a = s.querySelectorAll(&#039;.&#039;+oldClass); for (s = 0; s &lt; a.length; ++s) { if (-1 == a[s].className.indexOf(newClass)) { a[s].className = newClass; a[s].previousSibling.lastChild.innerHTML = arrow; } } } catch (e) { } } return true; }; function collapse(a, recursive) { var s = a.nextSibling || {}, oldClass = s.className; if (/\bsf-dump-expanded\b/.test(oldClass)) { toggle(a, recursive); return true; } return false; }; function expand(a, recursive) { var s = a.nextSibling || {}, oldClass = s.className; if (/\bsf-dump-compact\b/.test(oldClass)) { toggle(a, recursive); return true; } return false; }; function collapseAll(root) { var a = root.querySelector(&#039;a.sf-dump-toggle&#039;); if (a) { collapse(a, true); expand(a); return true; } return false; } function reveal(node) { var previous, parents = []; while ((node = node.parentNode || {}) &amp;&amp; (previous = node.previousSibling) &amp;&amp; &#039;A&#039; === previous.tagName) { parents.push(previous); } if (0 !== parents.length) { parents.forEach(function (parent) { expand(parent); }); return true; } return false; } function highlight(root, activeNode, nodes) { resetHighlightedNodes(root); Array.from(nodes||[]).forEach(function (node) { if (!/\bsf-dump-highlight\b/.test(node.className)) { node.className = node.className + &#039; sf-dump-highlight&#039;; } }); if (!/\bsf-dump-highlight-active\b/.test(activeNode.className)) { activeNode.className = activeNode.className + &#039; sf-dump-highlight-active&#039;; } } function resetHighlightedNodes(root) { Array.from(root.querySelectorAll(&#039;.sf-dump-str, .sf-dump-key, .sf-dump-public, .sf-dump-protected, .sf-dump-private&#039;)).forEach(function (strNode) { strNode.className = strNode.className.replace(/\bsf-dump-highlight\b/, &#039;&#039;); strNode.className = strNode.className.replace(/\bsf-dump-highlight-active\b/, &#039;&#039;); }); } return function (root, x) { root = doc.getElementById(root); var indentRx = new RegExp(&#039;^(&#039;+(root.getAttribute(&#039;data-indent-pad&#039;) || &#039; &#039;).replace(rxEsc, &#039;\\$1&#039;)+&#039;)+&#039;, &#039;m&#039;), options = {&quot;maxDepth&quot;:1,&quot;maxStringLength&quot;:160,&quot;fileLinkFormat&quot;:false}, elt = root.getElementsByTagName(&#039;A&#039;), len = elt.length, i = 0, s, h, t = []; while (i &lt; len) t.push(elt[i++]); for (i in x) { options[i] = x[i]; } function a(e, f) { addEventListener(root, e, function (e, n) { if (&#039;A&#039; == e.target.tagName) { f(e.target, e); } else if (&#039;A&#039; == e.target.parentNode.tagName) { f(e.target.parentNode, e); } else { n = /\bsf-dump-ellipsis\b/.test(e.target.className) ? e.target.parentNode : e.target; if ((n = n.nextElementSibling) &amp;&amp; &#039;A&#039; == n.tagName) { if (!/\bsf-dump-toggle\b/.test(n.className)) { n = n.nextElementSibling || n; } f(n, e, true); } } }); }; function isCtrlKey(e) { return e.ctrlKey || e.metaKey; } function xpathString(str) { var parts = str.match(/[^&#039;&quot;]+|[&#039;&quot;]/g).map(function (part) { if (&quot;&#039;&quot; == part) { return &#039;&quot;\&#039;&quot;&#039;; } if (&#039;&quot;&#039; == part) { return &quot;&#039;\&quot;&#039;&quot;; } return &quot;&#039;&quot; + part + &quot;&#039;&quot;; }); return &quot;concat(&quot; + parts.join(&quot;,&quot;) + &quot;, &#039;&#039;)&quot;; } function xpathHasClass(className) { return &quot;contains(concat(&#039; &#039;, normalize-space(@class), &#039; &#039;), &#039; &quot; + className +&quot; &#039;)&quot;; } a(&#039;mouseover&#039;, function (a, e, c) { if (c) { e.target.style.cursor = &quot;pointer&quot;; } }); a(&#039;click&#039;, function (a, e, c) { if (/\bsf-dump-toggle\b/.test(a.className)) { e.preventDefault(); if (!toggle(a, isCtrlKey(e))) { var r = doc.getElementById(a.getAttribute(&#039;href&#039;).slice(1)), s = r.previousSibling, f = r.parentNode, t = a.parentNode; t.replaceChild(r, a); f.replaceChild(a, s); t.insertBefore(s, r); f = f.firstChild.nodeValue.match(indentRx); t = t.firstChild.nodeValue.match(indentRx); if (f &amp;&amp; t &amp;&amp; f[0] !== t[0]) { r.innerHTML = r.innerHTML.replace(new RegExp(&#039;^&#039;+f[0].replace(rxEsc, &#039;\\$1&#039;), &#039;mg&#039;), t[0]); } if (/\bsf-dump-compact\b/.test(r.className)) { toggle(s, isCtrlKey(e)); } } if (c) { } else if (doc.getSelection) { try { doc.getSelection().removeAllRanges(); } catch (e) { doc.getSelection().empty(); } } else { doc.selection.empty(); } } else if (/\bsf-dump-str-toggle\b/.test(a.className)) { e.preventDefault(); e = a.parentNode.parentNode; e.className = e.className.replace(/\bsf-dump-str-(expand|collapse)\b/, a.parentNode.className); } }); elt = root.getElementsByTagName(&#039;SAMP&#039;); len = elt.length; i = 0; while (i &lt; len) t.push(elt[i++]); len = t.length; for (i = 0; i &lt; len; ++i) { elt = t[i]; if (&#039;SAMP&#039; == elt.tagName) { a = elt.previousSibling || {}; if (&#039;A&#039; != a.tagName) { a = doc.createElement(&#039;A&#039;); a.className = &#039;sf-dump-ref&#039;; elt.parentNode.insertBefore(a, elt); } else { a.innerHTML += &#039; &#039;; } a.title = (a.title ? a.title+&#039;\n[&#039; : &#039;[&#039;)+keyHint+&#039;+click] Expand all children&#039;; a.innerHTML += elt.className == &#039;sf-dump-compact&#039; ? &#039;&lt;span&gt;&amp;#9654;&lt;/span&gt;&#039; : &#039;&lt;span&gt;&amp;#9660;&lt;/span&gt;&#039;; a.className += &#039; sf-dump-toggle&#039;; x = 1; if (&#039;sf-dump&#039; != elt.parentNode.className) { x += elt.parentNode.getAttribute(&#039;data-depth&#039;)/1; } } else if (/\bsf-dump-ref\b/.test(elt.className) &amp;&amp; (a = elt.getAttribute(&#039;href&#039;))) { a = a.slice(1); elt.className += &#039; sf-dump-hover&#039;; elt.className += &#039; &#039;+a; if (/[\[{]$/.test(elt.previousSibling.nodeValue)) { a = a != elt.nextSibling.id &amp;&amp; doc.getElementById(a); try { s = a.nextSibling; elt.appendChild(a); s.parentNode.insertBefore(a, s); if (/^[@#]/.test(elt.innerHTML)) { elt.innerHTML += &#039; &lt;span&gt;&amp;#9654;&lt;/span&gt;&#039;; } else { elt.innerHTML = &#039;&lt;span&gt;&amp;#9654;&lt;/span&gt;&#039;; elt.className = &#039;sf-dump-ref&#039;; } elt.className += &#039; sf-dump-toggle&#039;; } catch (e) { if (&#039;&amp;&#039; == elt.innerHTML.charAt(0)) { elt.innerHTML = &#039;&amp;#8230;&#039;; elt.className = &#039;sf-dump-ref&#039;; } } } } } if (doc.evaluate &amp;&amp; Array.from &amp;&amp; root.children.length &gt; 1) { root.setAttribute(&#039;tabindex&#039;, 0); SearchState = function () { this.nodes = []; this.idx = 0; }; SearchState.prototype = { next: function () { if (this.isEmpty()) { return this.current(); } this.idx = this.idx &lt; (this.nodes.length - 1) ? this.idx + 1 : 0; return this.current(); }, previous: function () { if (this.isEmpty()) { return this.current(); } this.idx = this.idx &gt; 0 ? this.idx - 1 : (this.nodes.length - 1); return this.current(); }, isEmpty: function () { return 0 === this.count(); }, current: function () { if (this.isEmpty()) { return null; } return this.nodes[this.idx]; }, reset: function () { this.nodes = []; this.idx = 0; }, count: function () { return this.nodes.length; }, }; function showCurrent(state) { var currentNode = state.current(), currentRect, searchRect; if (currentNode) { reveal(currentNode); highlight(root, currentNode, state.nodes); if (&#039;scrollIntoView&#039; in currentNode) { currentNode.scrollIntoView(true); currentRect = currentNode.getBoundingClientRect(); searchRect = search.getBoundingClientRect(); if (currentRect.top &lt; (searchRect.top + searchRect.height)) { window.scrollBy(0, -(searchRect.top + searchRect.height + 5)); } } } counter.textContent = (state.isEmpty() ? 0 : state.idx + 1) + &#039; of &#039; + state.count(); } var search = doc.createElement(&#039;div&#039;); search.className = &#039;sf-dump-search-wrapper sf-dump-search-hidden&#039;; search.innerHTML = &#039; &lt;input type=&quot;text&quot; class=&quot;sf-dump-search-input&quot;&gt; &lt;span class=&quot;sf-dump-search-count&quot;&gt;0 of 0&lt;\/span&gt; &lt;button type=&quot;button&quot; class=&quot;sf-dump-search-input-previous&quot; tabindex=&quot;-1&quot;&gt; &lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M1683 1331l-166 165q-19 19-45 19t-45-19L896 965l-531 531q-19 19-45 19t-45-19l-166-165q-19-19-19-45.5t19-45.5l742-741q19-19 45-19t45 19l742 741q19 19 19 45.5t-19 45.5z&quot;\/&gt;&lt;\/svg&gt; &lt;\/button&gt; &lt;button type=&quot;button&quot; class=&quot;sf-dump-search-input-next&quot; tabindex=&quot;-1&quot;&gt; &lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M1683 808l-742 741q-19 19-45 19t-45-19L109 808q-19-19-19-45.5t19-45.5l166-165q19-19 45-19t45 19l531 531 531-531q19-19 45-19t45 19l166 165q19 19 19 45.5t-19 45.5z&quot;\/&gt;&lt;\/svg&gt; &lt;\/button&gt; &#039;; root.insertBefore(search, root.firstChild); var state = new SearchState(); var searchInput = search.querySelector(&#039;.sf-dump-search-input&#039;); var counter = search.querySelector(&#039;.sf-dump-search-count&#039;); var searchInputTimer = 0; var previousSearchQuery = &#039;&#039;; addEventListener(searchInput, &#039;keyup&#039;, function (e) { var searchQuery = e.target.value; /* Don&#039;t perform anything if the pressed key didn&#039;t change the query */ if (searchQuery === previousSearchQuery) { return; } previousSearchQuery = searchQuery; clearTimeout(searchInputTimer); searchInputTimer = setTimeout(function () { state.reset(); collapseAll(root); resetHighlightedNodes(root); if (&#039;&#039; === searchQuery) { counter.textContent = &#039;0 of 0&#039;; return; } var classMatches = [ &quot;sf-dump-str&quot;, &quot;sf-dump-key&quot;, &quot;sf-dump-public&quot;, &quot;sf-dump-protected&quot;, &quot;sf-dump-private&quot;, ].map(xpathHasClass).join(&#039; or &#039;); var xpathResult = doc.evaluate(&#039;.//span[&#039; + classMatches + &#039;][contains(translate(child::text(), &#039; + xpathString(searchQuery.toUpperCase()) + &#039;, &#039; + xpathString(searchQuery.toLowerCase()) + &#039;), &#039; + xpathString(searchQuery.toLowerCase()) + &#039;)]&#039;, root, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); while (node = xpathResult.iterateNext()) state.nodes.push(node); showCurrent(state); }, 400); }); Array.from(search.querySelectorAll(&#039;.sf-dump-search-input-next, .sf-dump-search-input-previous&#039;)).forEach(function (btn) { addEventListener(btn, &#039;click&#039;, function (e) { e.preventDefault(); -1 !== e.target.className.indexOf(&#039;next&#039;) ? state.next() : state.previous(); searchInput.focus(); collapseAll(root); showCurrent(state); }) }); addEventListener(root, &#039;keydown&#039;, function (e) { var isSearchActive = !/\bsf-dump-search-hidden\b/.test(search.className); if ((114 === e.keyCode &amp;&amp; !isSearchActive) || (isCtrlKey(e) &amp;&amp; 70 === e.keyCode)) { /* F3 or CMD/CTRL + F */ if (70 === e.keyCode &amp;&amp; document.activeElement === searchInput) { /* * If CMD/CTRL + F is hit while having focus on search input, * the user probably meant to trigger browser search instead. * Let the browser execute its behavior: */ return; } e.preventDefault(); search.className = search.className.replace(/\bsf-dump-search-hidden\b/, &#039;&#039;); searchInput.focus(); } else if (isSearchActive) { if (27 === e.keyCode) { /* ESC key */ search.className += &#039; sf-dump-search-hidden&#039;; e.preventDefault(); resetHighlightedNodes(root); searchInput.value = &#039;&#039;; } else if ( (isCtrlKey(e) &amp;&amp; 71 === e.keyCode) /* CMD/CTRL + G */ || 13 === e.keyCode /* Enter */ || 114 === e.keyCode /* F3 */ ) { e.preventDefault(); e.shiftKey ? state.previous() : state.next(); collapseAll(root); showCurrent(state); } } }); } if (0 &gt;= options.maxStringLength) { return; } try { elt = root.querySelectorAll(&#039;.sf-dump-str&#039;); len = elt.length; i = 0; t = []; while (i &lt; len) t.push(elt[i++]); len = t.length; for (i = 0; i &lt; len; ++i) { elt = t[i]; s = elt.innerText || elt.textContent; x = s.length - options.maxStringLength; if (0 &lt; x) { h = elt.innerHTML; elt[elt.innerText ? &#039;innerText&#039; : &#039;textContent&#039;] = s.substring(0, options.maxStringLength); elt.className += &#039; sf-dump-str-collapse&#039;; elt.innerHTML = &#039;&lt;span class=sf-dump-str-collapse&gt;&#039;+h+&#039;&lt;a class=&quot;sf-dump-ref sf-dump-str-toggle&quot; title=&quot;Collapse&quot;&gt; &amp;#9664;&lt;/a&gt;&lt;/span&gt;&#039;+ &#039;&lt;span class=sf-dump-str-expand&gt;&#039;+elt.innerHTML+&#039;&lt;a class=&quot;sf-dump-ref sf-dump-str-toggle&quot; title=&quot;&#039;+x+&#039; remaining characters&quot;&gt; &amp;#9654;&lt;/a&gt;&lt;/span&gt;&#039;; } } } catch (e) { } }; })(document); &lt;/script&gt;&lt;style&gt; .sf-js-enabled pre.sf-dump .sf-dump-compact, .sf-js-enabled .sf-dump-str-collapse .sf-dump-str-collapse, .sf-js-enabled .sf-dump-str-expand .sf-dump-str-expand { display: none; } .sf-dump-hover:hover { background-color: #B729D9; color: #FFF !important; border-radius: 2px; } pre.sf-dump { display: block; white-space: pre; padding: 5px; overflow: initial !important; } pre.sf-dump:after { content: &quot;&quot;; visibility: hidden; display: block; height: 0; clear: both; } pre.sf-dump .sf-dump-ellipsization { display: inline-flex; } pre.sf-dump a { text-decoration: none; cursor: pointer; border: 0; outline: none; color: inherit; } pre.sf-dump img { max-width: 50em; max-height: 50em; margin: .5em 0 0 0; padding: 0; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAHUlEQVQY02O8zAABilCaiQEN0EeA8QuUcX9g3QEAAjcC5piyhyEAAAAASUVORK5CYII=) #D3D3D3; } pre.sf-dump .sf-dump-ellipsis { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } pre.sf-dump .sf-dump-ellipsis-tail { flex-shrink: 0; } pre.sf-dump code { display:inline; padding:0; background:none; } .sf-dump-public.sf-dump-highlight, .sf-dump-protected.sf-dump-highlight, .sf-dump-private.sf-dump-highlight, .sf-dump-str.sf-dump-highlight, .sf-dump-key.sf-dump-highlight { background: rgba(111, 172, 204, 0.3); border: 1px solid #7DA0B1; border-radius: 3px; } .sf-dump-public.sf-dump-highlight-active, .sf-dump-protected.sf-dump-highlight-active, .sf-dump-private.sf-dump-highlight-active, .sf-dump-str.sf-dump-highlight-active, .sf-dump-key.sf-dump-highlight-active { background: rgba(253, 175, 0, 0.4); border: 1px solid #ffa500; border-radius: 3px; } pre.sf-dump .sf-dump-search-hidden { display: none !important; } pre.sf-dump .sf-dump-search-wrapper { font-size: 0; white-space: nowrap; margin-bottom: 5px; display: flex; position: -webkit-sticky; position: sticky; top: 5px; } pre.sf-dump .sf-dump-search-wrapper &gt; * { vertical-align: top; box-sizing: border-box; height: 21px; font-weight: normal; border-radius: 0; background: #FFF; color: #757575; border: 1px solid #BBB; } pre.sf-dump .sf-dump-search-wrapper &gt; input.sf-dump-search-input { padding: 3px; height: 21px; font-size: 12px; border-right: none; border-top-left-radius: 3px; border-bottom-left-radius: 3px; color: #000; min-width: 15px; width: 100%; } pre.sf-dump .sf-dump-search-wrapper &gt; .sf-dump-search-input-next, pre.sf-dump .sf-dump-search-wrapper &gt; .sf-dump-search-input-previous { background: #F2F2F2; outline: none; border-left: none; font-size: 0; line-height: 0; } pre.sf-dump .sf-dump-search-wrapper &gt; .sf-dump-search-input-next { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } pre.sf-dump .sf-dump-search-wrapper &gt; .sf-dump-search-input-next &gt; svg, pre.sf-dump .sf-dump-search-wrapper &gt; .sf-dump-search-input-previous &gt; svg { pointer-events: none; width: 12px; height: 12px; } pre.sf-dump .sf-dump-search-wrapper &gt; .sf-dump-search-count { display: inline-block; padding: 0 5px; margin: 0; border-left: none; line-height: 21px; font-size: 12px; }pre.sf-dump, pre.sf-dump .sf-dump-default{background:none; color:#CC7832; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all}pre.sf-dump .sf-dump-num{font-weight:bold; color:#1299DA}pre.sf-dump .sf-dump-const{font-weight:bold}pre.sf-dump .sf-dump-str{font-weight:bold; color:#629755;}pre.sf-dump .sf-dump-note{color:#6897BB}pre.sf-dump .sf-dump-ref{color:#6E6E6E}pre.sf-dump .sf-dump-public{color:#262626}pre.sf-dump .sf-dump-protected{color:#262626}pre.sf-dump .sf-dump-private{color:#262626}pre.sf-dump .sf-dump-meta{color:#B729D9}pre.sf-dump .sf-dump-key{color:#789339}pre.sf-dump .sf-dump-index{color:#1299DA}pre.sf-dump .sf-dump-ellipsis{color:#CC7832}pre.sf-dump .sf-dump-ns{user-select:none;}pre.sf-dump .sf-dump-ellipsis-note{color:#6897BB}&lt;/style&gt;&lt;pre class=sf-dump id=sf-dump-1582781137 data-indent-pad=&quot;  &quot;&gt;&lt;span class=sf-dump-const&gt;null&lt;/span&gt;
&lt;/pre&gt;&lt;script&gt;Sfdump(&quot;sf-dump-1582781137&quot;)&lt;/script&gt;

    

