├── .gitignore ├── README.md ├── README_zh-CN.md ├── assets ├── images │ ├── FM_2019Cover_final.jpg │ ├── FM_2019Cover_small.jpg │ ├── browsers-work.png │ ├── front-end-skills.png │ ├── frontend.png │ ├── full-stack.jpg │ ├── fullstack1.png │ ├── fullstack2.png │ ├── growth-iot.jpg │ ├── how-does-seo-work.jpg │ ├── how-does-seo-work.png │ ├── how-the-internet-works.jpg │ ├── how_dns_works.jpg │ ├── statcounter.png │ ├── things.jpg │ ├── vscode.png │ ├── web-api.png │ ├── web-tech-employed.jpg │ ├── what-is-front-end-dev.png │ ├── what-is-web-hosting-infographic.jpg │ └── who-runs-the-internet-infographic.jpg ├── jquery-3.3.1.slim.min.js ├── lozad-1.14.0.min.js ├── pathway.js ├── prism.css ├── prism.js ├── reset.css ├── slideout.min.js └── styles.css ├── exports ├── Front-End Developer Handbook 2019.epub └── Front-end Developer Handbook 2019.pdf ├── open-in-web-browser.html └── open-in-web-browser_zh-CN.html /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Front-End Developer Handbook 2019 2 | 3 | ### Written by [Cody Lindley](http://codylindley.com/) 4 | 5 | _Sponsored by [Frontend Masters](https://frontendmasters.com/), advancing your skills with in-depth, modern front-end engineering courses_ 6 | 7 | This is a guide that anyone could use to learn about the practice of front-end development. It broadly outlines and discusses the practice of front-end engineering: how to learn it and what tools are used when practicing it in 2019. 8 | 9 | It is specifically written with the intention of being a professional resource for potential and currently practicing front-end developers to equip themselves with learning materials and development tools. Secondarily, it can be used by managers, CTOs, instructors, and head hunters to gain insights into the practice of front-end development. 10 | 11 | The content of the handbook favors web technologies (HTML, CSS, DOM, and JavaScript) and those solutions that are directly built on top of these open technologies. The materials referenced and discussed in the book are either best in class or the current offering to a problem. 12 | 13 | The book should not be considered a comprehensive outline of all resources available to a front-end developer. The value of the book is tied up in a terse, focused, and timely curation of just enough categorical information so as not to overwhelm anyone on any one particular subject matter. 14 | 15 | The intention is to release an update to the content yearly. 16 | 17 | --- 18 | 19 | **Read Online**: 20 | 21 | - [https://frontendmasters.com/books/front-end-handbook/2019/](https://frontendmasters.com/books/front-end-handbook/2019/) 22 | 23 | **Download**: 24 | 25 | - [PDF](https://github.com/FrontendMasters/front-end-handbook-2019/raw/master/exports/Front-end%20Developer%20Handbook%202019.pdf) 26 | - [EPUB](https://github.com/FrontendMasters/front-end-handbook-2019/raw/master/exports/Front-End%20Developer%20Handbook%202019.epub) 27 | 28 | --- 29 | 30 | Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. 31 | -------------------------------------------------------------------------------- /README_zh-CN.md: -------------------------------------------------------------------------------- 1 | # 2019前端开发人员手册 2 | 3 | ### 作者: [Cody Lindley](http://codylindley.com/) 4 | 5 | _由 [Frontend Masters](https://frontendmasters.com/)赞助, 通过深入的现代前端开发课程提升您的技能_ 6 | 7 | 这是一份任何人都可以用来了解前端开发实践的指南。 它概括地描绘了2019年前端工程的开发实践之路:如何学习前端以及开发实践时使用到了哪些工具。 8 | 9 | 本手册特别希望能成为目前正在练习前端开发人员潜在的专业资源,为他们提供完备匹配的学习材料和开发工具。 除此之外,管理人员、首席技术官、教师和猎头都可以使用它来深入了解前端开发。 10 | 11 | 本手册的内容支持Web技术(HTML,CSS,DOM和JavaScript)以及直接构建在这些开放技术之上的解决方案。 书中引用和讨论的材料要么是最好的,要么是目前提出的问题。 12 | 13 | 本书并没有完全概述所有前端开发人员可用的资源,欢迎大家建议补充。 本书的价值在于帮助前端开发人员简洁,集中,及时地掌握足够的分类信息,以免任何人对任何一个特定主题产生误解。 14 | 15 | 手册目标是每年都发布内容更新。 16 | 17 | --- 18 | 19 | **在线阅读地址**: 20 | 21 | - [https://frontendmasters.com/books/front-end-handbook/2019/](https://frontendmasters.com/books/front-end-handbook/2019/) 22 | 23 | **下载**: 24 | 25 | - [PDF](https://github.com/FrontendMasters/front-end-handbook-2019/raw/master/exports/Front-end%20Developer%20Handbook%202019.pdf) 26 | - [EPUB](https://github.com/FrontendMasters/front-end-handbook-2019/raw/master/exports/Front-End%20Developer%20Handbook%202019.epub) 27 | 28 | --- 29 | 30 | Creative Commons License
手册编写工作基于协议 Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. 31 | -------------------------------------------------------------------------------- /assets/images/FM_2019Cover_final.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/FM_2019Cover_final.jpg -------------------------------------------------------------------------------- /assets/images/FM_2019Cover_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/FM_2019Cover_small.jpg -------------------------------------------------------------------------------- /assets/images/browsers-work.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/browsers-work.png -------------------------------------------------------------------------------- /assets/images/front-end-skills.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/front-end-skills.png -------------------------------------------------------------------------------- /assets/images/frontend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/frontend.png -------------------------------------------------------------------------------- /assets/images/full-stack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/full-stack.jpg -------------------------------------------------------------------------------- /assets/images/fullstack1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/fullstack1.png -------------------------------------------------------------------------------- /assets/images/fullstack2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/fullstack2.png -------------------------------------------------------------------------------- /assets/images/growth-iot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/growth-iot.jpg -------------------------------------------------------------------------------- /assets/images/how-does-seo-work.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/how-does-seo-work.jpg -------------------------------------------------------------------------------- /assets/images/how-does-seo-work.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/how-does-seo-work.png -------------------------------------------------------------------------------- /assets/images/how-the-internet-works.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/how-the-internet-works.jpg -------------------------------------------------------------------------------- /assets/images/how_dns_works.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/how_dns_works.jpg -------------------------------------------------------------------------------- /assets/images/statcounter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/statcounter.png -------------------------------------------------------------------------------- /assets/images/things.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/things.jpg -------------------------------------------------------------------------------- /assets/images/vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/vscode.png -------------------------------------------------------------------------------- /assets/images/web-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/web-api.png -------------------------------------------------------------------------------- /assets/images/web-tech-employed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/web-tech-employed.jpg -------------------------------------------------------------------------------- /assets/images/what-is-front-end-dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/what-is-front-end-dev.png -------------------------------------------------------------------------------- /assets/images/what-is-web-hosting-infographic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/what-is-web-hosting-infographic.jpg -------------------------------------------------------------------------------- /assets/images/who-runs-the-internet-infographic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/50cc61d4bb75218c321c94b11dfda04dfca6d7f4/assets/images/who-runs-the-internet-infographic.jpg -------------------------------------------------------------------------------- /assets/jquery-3.3.1.slim.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery v3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */ 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,u=n.push,s=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,d=f.toString,p=d.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},v=function e(t){return null!=t&&t===t.window},y={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in y)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function b(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var x="3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",w=function(e,t){return new w.fn.init(e,t)},C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:x,constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,u,s,l,c,f,d,p,h,g,v,y,m,b,x="sizzle"+1*new Date,w=e.document,C=0,T=0,E=ae(),N=ae(),k=ae(),A=function(e,t){return e===t&&(f=!0),0},D={}.hasOwnProperty,S=[],L=S.pop,j=S.push,q=S.push,O=S.slice,P=function(e,t){for(var n=0,r=e.length;n+~]|"+I+")"+I+"*"),_=new RegExp("="+I+"*([^\\]'\"]*?)"+I+"*\\]","g"),U=new RegExp(M),V=new RegExp("^"+R+"$"),X={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+I+"*(even|odd|(([+-]|)(\\d*)n|)"+I+"*(?:([+-]|)"+I+"*(\\d+)|))"+I+"*\\)|)","i"),bool:new RegExp("^(?:"+H+")$","i"),needsContext:new RegExp("^"+I+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+I+"*((?:-\\d)?\\d*)"+I+"*\\)|)(?=[^-]|$)","i")},Q=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,G=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,J=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+I+"?|("+I+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){d()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{q.apply(S=O.call(w.childNodes),w.childNodes),S[w.childNodes.length].nodeType}catch(e){q={apply:S.length?function(e,t){j.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,u,l,c,f,h,y,m=t&&t.ownerDocument,C=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==C&&9!==C&&11!==C)return r;if(!i&&((t?t.ownerDocument||t:w)!==p&&d(t),t=t||p,g)){if(11!==C&&(f=K.exec(e)))if(o=f[1]){if(9===C){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&b(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return q.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return q.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!k[e+" "]&&(!v||!v.test(e))){if(1!==C)m=t,y=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=x),u=(h=a(e)).length;while(u--)h[u]="#"+c+" "+ye(h[u]);y=h.join(","),m=J.test(e)&&ge(t.parentNode)||t}if(y)try{return q.apply(r,m.querySelectorAll(y)),r}catch(e){}finally{c===x&&t.removeAttribute("id")}}}return s(e.replace($,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function ue(e){return e[x]=!0,e}function se(e){var t=p.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function de(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return ue(function(t){return t=+t,ue(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},d=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==p&&9===a.nodeType&&a.documentElement?(p=a,h=p.documentElement,g=!o(p),w!==p&&(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=se(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=se(function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=G.test(p.getElementsByClassName),n.getById=se(function(e){return h.appendChild(e).id=x,!p.getElementsByName||!p.getElementsByName(x).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},y=[],v=[],(n.qsa=G.test(p.querySelectorAll))&&(se(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+I+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+I+"*(?:value|"+H+")"),e.querySelectorAll("[id~="+x+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+x+"+*").length||v.push(".#.+[+~]")}),se(function(e){e.innerHTML="";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+I+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(n.matchesSelector=G.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&se(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),y.push("!=",M)}),v=v.length&&new RegExp(v.join("|")),y=y.length&&new RegExp(y.join("|")),t=G.test(h.compareDocumentPosition),b=t||G.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===p||e.ownerDocument===w&&b(w,e)?-1:t===p||t.ownerDocument===w&&b(w,t)?1:c?P(c,e)-P(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],u=[t];if(!i||!o)return e===p?-1:t===p?1:i?-1:o?1:c?P(c,e)-P(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)u.unshift(n);while(a[r]===u[r])r++;return r?ce(a[r],u[r]):a[r]===w?-1:u[r]===w?1:0},p):p},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&d(e),t=t.replace(_,"='$1']"),n.matchesSelector&&g&&!k[t+" "]&&(!y||!y.test(t))&&(!v||!v.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,p,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==p&&d(e),b(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==p&&d(e);var i=r.attrHandle[t.toLowerCase()],o=i&&D.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(A),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:ue,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return X.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&U.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+I+")"+e+"("+I+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(W," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),u="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,s){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",v=t.parentNode,y=u&&t.nodeName.toLowerCase(),m=!s&&!u,b=!1;if(v){if(o){while(g){d=t;while(d=d[g])if(u?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&m){b=(p=(l=(c=(f=(d=v)[x]||(d[x]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===C&&l[1])&&l[2],d=p&&v.childNodes[p];while(d=++p&&d&&d[g]||(b=p=0)||h.pop())if(1===d.nodeType&&++b&&d===t){c[e]=[C,p,b];break}}else if(m&&(b=p=(l=(c=(f=(d=t)[x]||(d[x]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===C&&l[1]),!1===b)while(d=++p&&d&&d[g]||(b=p=0)||h.pop())if((u?d.nodeName.toLowerCase()===y:1===d.nodeType)&&++b&&(m&&((c=(f=d[x]||(d[x]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]=[C,b]),d===t))break;return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[x]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ue(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=P(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:ue(function(e){var t=[],n=[],r=u(e.replace($,"$1"));return r[x]?ue(function(e,t,n,i){var o,a=r(e,null,i,[]),u=e.length;while(u--)(o=a[u])&&(e[u]=!(t[u]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:ue(function(e){return function(t){return oe(e,t).length>0}}),contains:ue(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:ue(function(e){return V.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:pe(!1),disabled:pe(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xe(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else y=we(y===a?y.splice(h,y.length):y),i?i(null,a,y,s):q.apply(a,y)})}function Te(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],u=a||r.relative[" "],s=a?1:0,c=me(function(e){return e===t},u,!0),f=me(function(e){return P(t,e)>-1},u,!0),d=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];s1&&be(d),s>1&&ye(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),n,s0,i=e.length>0,o=function(o,a,u,s,c){var f,h,v,y=0,m="0",b=o&&[],x=[],w=l,T=o||i&&r.find.TAG("*",c),E=C+=null==w?1:Math.random()||.1,N=T.length;for(c&&(l=a===p||a||c);m!==N&&null!=(f=T[m]);m++){if(i&&f){h=0,a||f.ownerDocument===p||(d(f),u=!g);while(v=e[h++])if(v(f,a||p,u)){s.push(f);break}c&&(C=E)}n&&((f=!v&&f)&&y--,o&&b.push(f))}if(y+=m,n&&m!==y){h=0;while(v=t[h++])v(b,x,a,u);if(o){if(y>0)while(m--)b[m]||x[m]||(x[m]=L.call(s));x=we(x)}q.apply(s,x),c&&!o&&x.length>0&&y+t.length>1&&oe.uniqueSort(s)}return c&&(C=E,l=w),b};return n?ue(o):o}return u=oe.compile=function(e,t){var n,r=[],i=[],o=k[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Te(t[n]))[x]?r.push(o):i.push(o);(o=k(e,Ee(i,r))).selector=e}return o},s=oe.select=function(e,t,n,i){var o,s,l,c,f,d="function"==typeof e&&e,p=!i&&a(e=d.selector||e);if(n=n||[],1===p.length){if((s=p[0]=p[0].slice(0)).length>2&&"ID"===(l=s[0]).type&&9===t.nodeType&&g&&r.relative[s[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;d&&(t=t.parentNode),e=e.slice(s.shift().value.length)}o=X.needsContext.test(e)?0:s.length;while(o--){if(l=s[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),J.test(s[0].type)&&ge(t.parentNode)||t))){if(s.splice(o,1),!(e=i.length&&ye(s)))return q.apply(n,i),n;break}}}return(d||u(e,p))(i,t,!g,n,!t||J.test(e)&&ge(t.parentNode)||t),n},n.sortStable=x.split("").sort(A).join("")===x,n.detectDuplicates=!!f,d(),n.sortDetached=se(function(e){return 1&e.compareDocumentPosition(p.createElement("fieldset"))}),se(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&se(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),se(function(e){return null==e.getAttribute("disabled")})||le(H,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var N=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},k=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},A=w.expr.match.needsContext;function D(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var S=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function L(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return s.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(L(this,e||[],!1))},not:function(e){return this.pushStack(L(this,e||[],!0))},is:function(e){return!!L(this,"string"==typeof e&&A.test(e)?w(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:q.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),S.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,j=w(r);var O=/^(?:parents|prev(?:Until|All))/,P={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?s.call(w(e),this[0]):s.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function H(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return N(e,"parentNode")},parentsUntil:function(e,t,n){return N(e,"parentNode",n)},next:function(e){return H(e,"nextSibling")},prev:function(e){return H(e,"previousSibling")},nextAll:function(e){return N(e,"nextSibling")},prevAll:function(e){return N(e,"previousSibling")},nextUntil:function(e,t,n){return N(e,"nextSibling",n)},prevUntil:function(e,t,n){return N(e,"previousSibling",n)},siblings:function(e){return k((e.parentNode||{}).firstChild,e)},children:function(e){return k(e.firstChild)},contents:function(e){return D(e,"iframe")?e.contentDocument:(D(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(P[e]||w.uniqueSort(i),O.test(e)&&i.reverse()),this.pushStack(i)}});var I=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(I)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],u=-1,s=function(){for(i=i||e.once,r=t=!0;a.length;u=-1){n=a.shift();while(++u-1)o.splice(n,1),n<=u&&u--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||s()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function B(e){return e}function M(e){throw e}function W(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var u=this,s=arguments,l=function(){var e,l;if(!(t=o&&(r!==M&&(u=void 0,s=[e]),n.rejectWith(u,s))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:B,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:B)),n[2][3].add(a(0,e,g(r)?r:M))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],u=t[5];i[t[1]]=a.add,u&&a.add(function(){r=u},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),u=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&(W(e,a.done(u(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)W(i[n],u(n),a.reject);return a.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&$.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function z(){r.removeEventListener("DOMContentLoaded",z),e.removeEventListener("load",z),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",z),e.addEventListener("load",z));var _=function(e,t,n,r,i,o,a){var u=0,s=e.length,l=null==n;if("object"===b(n)){i=!0;for(u in n)_(e,t,u,n[u],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;u1,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=K.get(e,t),n&&(!r||Array.isArray(n)?r=K.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return K.get(e,n)||K.access(e,n,{empty:w.Callbacks("once memory").add(function(){K.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&D(e,t)?w.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var xe=r.documentElement,we=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function Ne(){return!1}function ke(){try{return r.activeElement}catch(e){}}function Ae(e,t,n,r,i,o){var a,u;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(u in t)Ae(e,u,n,r,t[u],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ne;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,u,s,l,c,f,d,p,h,g,v=K.get(e);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(xe,i),n.guid||(n.guid=w.guid++),(s=v.events)||(s=v.events={}),(a=v.handle)||(a=v.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(I)||[""]).length;while(l--)p=g=(u=Te.exec(t[l])||[])[1],h=(u[2]||"").split(".").sort(),p&&(f=w.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=w.event.special[p]||{},c=w.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=s[p])||((d=s[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(p,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),w.event.global[p]=!0)}},remove:function(e,t,n,r,i){var o,a,u,s,l,c,f,d,p,h,g,v=K.hasData(e)&&K.get(e);if(v&&(s=v.events)){l=(t=(t||"").match(I)||[""]).length;while(l--)if(u=Te.exec(t[l])||[],p=g=u[1],h=(u[2]||"").split(".").sort(),p){f=w.event.special[p]||{},d=s[p=(r?f.delegateType:f.bindType)||p]||[],u=u[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;while(o--)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||u&&!u.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||w.removeEvent(e,p,v.handle),delete s[p])}else for(p in s)w.event.remove(e,p+t[l],n,r,!0);w.isEmptyObject(s)&&K.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,u,s=new Array(arguments.length),l=(K.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(s[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&u.push({elem:l,handlers:o})}return l=this,s\x20\t\r\n\f]*)[^>]*)\/>/gi,Se=/\s*$/g;function qe(e,t){return D(e,"table")&&D(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function Oe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Pe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,r,i,o,a,u,s,l;if(1===t.nodeType){if(K.hasData(e)&&(o=K.access(e),a=K.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof v&&!h.checkClone&&Le.test(v))return e.each(function(i){var o=e.eq(i);y&&(t[0]=v.call(this,i,o.html())),Re(o,t,n,r)});if(d&&(i=be(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(u=w.map(ve(i,"script"),Oe)).length;f")},clone:function(e,t,n){var r,i,o,a,u=e.cloneNode(!0),s=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ve(u),r=0,i=(o=ve(e)).length;r0&&ye(a,!s&&ve(e,"script")),u},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[K.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[K.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return _(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Se.test(e)&&!ge[(pe.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(s+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-s-u-.5))),s}function et(e,t,n){var r=We(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(Me.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,u=Q(t),s=Ue.test(t),l=e.style;if(s||(t=Ke(u)),a=w.cssHooks[t]||w.cssHooks[u],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[u]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(s?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,u=Q(t);return Ue.test(t)||(t=Ke(u)),(a=w.cssHooks[t]||w.cssHooks[u])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Xe&&(i=Xe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!_e.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):ue(e,Ve,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=We(e),a="border-box"===w.css(e,"boxSizing",!1,o),u=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(u-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),u&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Je(e,n,u)}}}),w.cssHooks.marginLeft=ze(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Je)}),w.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=We(e),i=t.length;a1)}}),w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var tt,nt=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return _(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?tt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&D(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(I);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),tt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=nt[t]||w.find.attr;nt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=nt[a],nt[a]=i,i=null!=n(e,t,r)?a:null,nt[a]=o),i}});var rt=/^(?:input|select|textarea|button)$/i,it=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return _(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):rt.test(e.nodeName)||it.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function ot(e){return(e.match(I)||[]).join(" ")}function at(e){return e.getAttribute&&e.getAttribute("class")||""}function ut(e){return Array.isArray(e)?e:"string"==typeof e?e.match(I)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,u,s=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,at(this)))});if((t=ut(e)).length)while(n=this[s++])if(i=at(n),r=1===n.nodeType&&" "+ot(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(u=ot(r))&&n.setAttribute("class",u)}return this},removeClass:function(e){var t,n,r,i,o,a,u,s=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,at(this)))});if(!arguments.length)return this.attr("class","");if((t=ut(e)).length)while(n=this[s++])if(i=at(n),r=1===n.nodeType&&" "+ot(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(u=ot(r))&&n.setAttribute("class",u)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,at(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=ut(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=at(this))&&K.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":K.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+ot(at(n))+" ").indexOf(t)>-1)return!0;return!1}});var st=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(st,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:ot(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,u=a?null:[],s=a?o+1:i.length;for(r=o<0?s:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var lt=/^(?:focusinfocus|focusoutblur)$/,ct=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,u,s,l,c,d,p,h,y=[i||r],m=f.call(t,"type")?t.type:t,b=f.call(t,"namespace")?t.namespace.split("."):[];if(u=h=s=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!lt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(b=m.split(".")).shift(),b.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=b.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),p=w.event.special[m]||{},o||!p.trigger||!1!==p.trigger.apply(i,n))){if(!o&&!p.noBubble&&!v(i)){for(l=p.delegateType||m,lt.test(l+m)||(u=u.parentNode);u;u=u.parentNode)y.push(u),s=u;s===(i.ownerDocument||r)&&y.push(s.defaultView||s.parentWindow||e)}a=0;while((u=y[a++])&&!t.isPropagationStopped())h=u,t.type=a>1?l:p.bindType||m,(d=(K.get(u,"events")||{})[t.type]&&K.get(u,"handle"))&&d.apply(u,n),(d=c&&u[c])&&d.apply&&Y(u)&&(t.result=d.apply(u,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||p._default&&!1!==p._default.apply(y.pop(),n)||!Y(i)||c&&g(i[m])&&!v(i)&&((s=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,ct),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,ct),w.event.triggered=void 0,s&&(i[c]=s)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=K.access(r,t);i||r.addEventListener(e,n,!0),K.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=K.access(r,t)-1;i?K.access(r,t,i):(r.removeEventListener(e,n,!0),K.remove(r,t))}}});var ft=/\[\]$/,dt=/\r?\n/g,pt=/^(?:submit|button|image|reset|file)$/i,ht=/^(?:input|select|textarea|keygen)/i;function gt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||ft.test(e)?r(e,i):gt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==b(t))r(e,t);else for(i in t)gt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)gt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&ht.test(this.nodeName)&&!pt.test(e)&&(this.checked||!de.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(dt,"\r\n")}}):{name:t.name,value:n.replace(dt,"\r\n")}}).get()}}),w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="
",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=S.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=be([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.offset={setOffset:function(e,t,n){var r,i,o,a,u,s,l,c=w.css(e,"position"),f=w(e),d={};"static"===c&&(e.style.position="relative"),u=f.offset(),o=w.css(e,"top"),s=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+s).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(s)||0),g(t)&&(t=t.call(e,n,w.extend({},u))),null!=t.top&&(d.top=t.top-u.top+a),null!=t.left&&(d.left=t.left-u.left+i),"using"in t?t.using.call(e,d):f.css(d)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||xe})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return _(this,function(e,r,i){var o;if(v(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=ze(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),Me.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),u=n||(!0===i||!0===o?"margin":"border");return _(this,function(t,n,i){var o;return v(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,u):w.style(t,n,i,u)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=D,w.isFunction=g,w.isWindow=v,w.camelCase=Q,w.type=b,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var vt=e.jQuery,yt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=yt),t&&e.jQuery===w&&(e.jQuery=vt),w},t||(e.jQuery=e.$=w),w}); 3 | -------------------------------------------------------------------------------- /assets/lozad-1.14.0.min.js: -------------------------------------------------------------------------------- 1 | /*! lozad.js - v1.14.0 - 2019-10-19 2 | * https://github.com/ApoorvSaxena/lozad.js 3 | * Copyright (c) 2019 Apoorv Saxena; Licensed MIT */ 4 | !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).lozad=e()}(this,function(){"use strict"; 5 | /** 6 | * Detect IE browser 7 | * @const {boolean} 8 | * @private 9 | */var d="undefined"!=typeof document&&document.documentMode,c={rootMargin:"0px",threshold:0,load:function(t){if("picture"===t.nodeName.toLowerCase()){var e=document.createElement("img");d&&t.getAttribute("data-iesrc")&&(e.src=t.getAttribute("data-iesrc")),t.getAttribute("data-alt")&&(e.alt=t.getAttribute("data-alt")),t.append(e)}if("video"===t.nodeName.toLowerCase()&&!t.getAttribute("data-src")&&t.children){for(var r=t.children,a=void 0,o=0;o<=r.length-1;o++)(a=r[o].getAttribute("data-src"))&&(r[o].src=a);t.load()}if(t.getAttribute("data-src")&&(t.src=t.getAttribute("data-src")),t.getAttribute("data-srcset")&&t.setAttribute("srcset",t.getAttribute("data-srcset")),t.getAttribute("data-background-image"))t.style.backgroundImage="url('"+t.getAttribute("data-background-image").split(",").join("'),url('")+"')";else if(t.getAttribute("data-background-image-set")){var i=t.getAttribute("data-background-image-set").split(","),n=i[0].substr(0,i[0].indexOf(" "))||i[0];// Substring before ... 1x 10 | n=-1===n.indexOf("url(")?"url("+n+")":n,1===i.length?t.style.backgroundImage=n:t.setAttribute("style",(t.getAttribute("style")||"")+"background-image: "+n+"; background-image: -webkit-image-set("+i+"); background-image: image-set("+i+")")}t.getAttribute("data-toggle-class")&&t.classList.toggle(t.getAttribute("data-toggle-class"))},loaded:function(){}};function l(t){t.setAttribute("data-loaded",!0)}var b=function(t){return"true"===t.getAttribute("data-loaded")};return function(){var r,a,o=0=2)){var i=e||{},o=i.message||"empty",s=i.stack||(new Error).stack;r.errorCount++;var a=(self.location||"").toString(),c={agentPlatform:"browser",console:[{message:JSON.stringify(e),severity:"log",timestamp:(new Date).toISOString()}],customer:{token:r.tjsToken,application:r.tjsApp,userId:r.token,version:"1.13.1"},entry:"catch",environment:{originalUrl:a,userAgent:navigator.userAgent},message:o,url:a,stack:s,timestamp:(new Date).toISOString(),version:r.tjsVersion};null!=t&&c.console.push({message:t,severity:"log",timestamp:(new Date).toISOString()});var u=new XMLHttpRequest;u.open("POST",r.getErrorUrl()),u.send(JSON.stringify(c)),n++}}};function i(){return"undefined"==typeof document}function o(e){return(e=e||"").indexOf("?")>=0&&(e=e.split("?")[0]),e.length>=1e3&&(e=e.substr(0,1e3)),e}function s(e,t){if((e=""+e).length<=t)return e;var n=e.length-t;return e.substr(0,t)+"...{"+n+"}"}function a(e,t){return void 0===t&&(t=0),parseFloat(e.toFixed(t))}var c=["com","net","gov","edu","org"];function u(e,t,n){var r=e[t]||l;e[t]=n(r)}function l(){}function p(){return Math.floor(1e3*(Date.now()+Math.random()))}function f(e,t){try{for(var n=t.split("."),r=e,i=0;i25?delete e[t]:e[t]=s(e[t],100)})),e}function h(e){return Object.prototype.toString.call(e)}function g(e){return v(e)&&1===e.nodeType}function m(e){return"number"==typeof e||v(e)&&"[object Number]"===h(e)}function v(e){return!(!e||"object"!=typeof e)}function y(e){return"string"==typeof e||!function(e){return"[object Array]"===h(e)}(e)&&v(e)&&"[object String]"===h(e)}function w(e){if(!v(e))return!1;var t=h(e);return"[object Error]"===t||"[object DOMException]"===t||y(e.name)&&y(e.message)}function S(e){function t(e){for(var t="<"+e.tagName.toLowerCase(),n=e.attributes||[],r=0;r"}var n,r="undefined";if(""===e)return"Empty String";if(void 0===e)return r;if(y(e)||m(e)||function(e){return"boolean"==typeof e||v(e)&&"[object Boolean]"===h(e)}(e)||function(e){return!(!e||"function"!=typeof e)}(e))return""+e;if(g(e))return t(e);if("symbol"==typeof e)return Symbol.prototype.toString.call(e);try{n=JSON.stringify(e,(function(e,n){return void 0===n?r:m(n)&&isNaN(n)?"NaN":w(n)?{name:n.name,message:n.message,stack:n.stack}:g(n)?t(n):n}))}catch(t){var i="";for(var o in e)if(e.hasOwnProperty(o))try{i+=',"'+o+'":"'+e[o]+'"'}catch(e){}n=i?"{"+i.replace(",","")+"}":"Unserializable Object"}return n.replace(/"undefined"/g,r).replace(/"NaN"/g,"NaN")}function E(e){if(!e)return"";if((e=e.toString()).startsWith("http")||i())return e;try{return new URL(e,document.baseURI).toString()}catch(t){return e}}var T,b,R,_,k=new(function(){function t(){var e=this;this.apiEntries=[],this.addEntry=function(t){t.url&&0===t.url.indexOf("http")&&(e.options.monitorSelfCalls||0!==t.url.indexOf(e.options.ingestUrl))&&e.apiEntries.push(t)}}return t.prototype.install=function(e){this.options=e,this.wrapFetch(),this.wrapXhr()},t.prototype.getApis=function(e){if(void 0===e&&(e=!1),e||this.apiEntries.length>=10){var t=this.apiEntries;return this.apiEntries=[],t}return[]},t.prototype.wrapFetch=function(){var t=this;u(e.g,"fetch",(function(n){return function(r,s){var c=r instanceof Request?r.url:r,u=r instanceof Request?r.method:(s||{}).method||"GET",l=n.apply(e.g,arguments);return l.__rm_state__={source:i()?"worker":"fetch",startedOn:a(performance.now()),method:u,requestUrl:E(c),pageUrl:o(self.location.toString())},l.then((function(e){var n=l.__rm_state__;if(n){var r=performance.now(),i={source:n.source,method:n.method,startedOn:n.startedOn,pageUrl:n.pageUrl,duration:a(r)-n.startedOn,statusCode:e.status,contentLength:e.headers.get("content-length"),contentType:e.headers.get("content-type"),url:e.url||n.requestUrl};t.addEntry(i)}return e})).catch((function(e){var n=l.__rm_state__;if(n){var r=performance.now(),i={source:n.source,method:n.method,startedOn:n.startedOn,pageUrl:n.pageUrl,duration:a(r)-n.startedOn,statusCode:0,contentLength:null,contentType:null,url:n.requestUrl};t.addEntry(i)}throw e}))}}))},t.prototype.wrapXhr=function(){if(!i()){var e=this;u(XMLHttpRequest.prototype,"open",(function(e){return function(t,n){var r=this;return r.__rm_state__={source:"xhr",method:t,requestUrl:E((n||"").toString())},e.apply(r,arguments)}})),u(XMLHttpRequest.prototype,"send",(function(t){return function(){var n=this,r=n.__rm_state__;return r?(n.__rm_state__=Object.assign(r,{startedOn:a(performance.now()),pageUrl:o(self.location.toString())}),n.addEventListener("readystatechange",(function(){if(4===n.readyState){var t=n.__rm_state__,r=performance.now(),i={source:t.source,method:t.method,startedOn:t.startedOn,pageUrl:t.pageUrl,duration:a(r)-t.startedOn,statusCode:n.status,url:n.responseURL||t.requestUrl,contentLength:n.getResponseHeader("content-length"),contentType:n.getResponseHeader("content-type")};e.addEntry(i)}}),!0),t.apply(n,arguments)):t.apply(n,arguments)}}))}},t}()),C=new(function(){function e(){this.errorEntries=[]}return e.prototype.install=function(e){this.options=e,this.watchGlobal(),this.watchPromise(),this.wrapConsole()},e.prototype.getErrors=function(e){if(void 0===e&&(e=!1),e||this.errorEntries.length>=1){var t=this.errorEntries;return this.errorEntries=[],t}return[]},e.prototype.addError=function(e){null!=e.message&&0!==e.message.toString().indexOf("Script error")&&this.errorEntries.push(e)},e.prototype.watchGlobal=function(){self.addEventListener("error",(function(e){try{if(!e||!e.error)return;C.addError({name:e.error.name,message:e.error.message,stack:e.error.stack,cause:e.error.cause?S(e.error.cause):void 0,time:a(performance.now()),entry:"global",pageUrl:self.location.toString()})}catch(e){r.error(e,"global error handler")}}))},e.prototype.watchPromise=function(){self.addEventListener("unhandledrejection",(function(e){try{if(!e)return;var t=e.reason;if(null==t)return;w(t)||(t=new Error(S(t))),C.addError({name:t.name,message:t.message,stack:t.stack,cause:t.cause?S(t.cause):void 0,time:a(performance.now()),entry:"promise",pageUrl:self.location.toString()})}catch(e){r.error(e,"promise error handler")}}))},e.prototype.wrapConsole=function(){u(self.console,"error",(function(e){return function(){try{var t,n=Array.prototype.slice.call(arguments);t=1===n.length&&w(n[0])?n[0]:new Error(1===n.length?S(n[0]):S(n)),C.addError({name:t.name,message:t.message,stack:t.stack,cause:t.cause?S(t.cause):void 0,time:a(performance.now()),entry:"console",pageUrl:self.location.toString()})}catch(e){r.error(e,"console error handler")}return e.apply(this,arguments)}}))},e}()),O="__rm_sid__",I="__rm_sid_ts__",L={_sessionId:0,_storageDisabled:!1,getSessionId:function(){if(!self.performance)return 0;var e=Date.now(),t=0;if(this._storageDisabled&&this._sessionId)return this._sessionId;try{this._sessionId=parseInt(localStorage.getItem(O),10),t=parseInt(localStorage.getItem(I),10)}catch(e){this._storageDisabled=!0}if(!this._sessionId||this.isSessionExpired(e,t)){this._sessionId=p(),j.addEvent({name:"session_start",time:a(performance.now()),pageUrl:self.location.toString(),referrer:i()?"":document.referrer});try{localStorage.setItem(O,this._sessionId.toString()),this.refreshSession()}catch(e){this._storageDisabled=!0}}return this._sessionId},refreshSession:function(){try{localStorage.setItem(I,Date.now().toString())}catch(e){}},isSessionExpired:function(e,t){return!t||t+18e5=1){var t=this.eventEntries;return this.eventEntries=[],t}return[]},e.prototype.addEvent=function(e){L.refreshSession(),this.eventEntries.push(e)},e.prototype.wrapActivity=function(){i()||(document.addEventListener("click",this.onDocumentClicked,!0),document.addEventListener("blur",this.onInputChanged,!0),document.addEventListener("scroll",this.onFirstScroll,{once:!0,capture:!0,passive:!0}))},e.prototype.wrapHistory=function(){var e=this;if(this.isCompatible()){var t=this;self.addEventListener("popstate",(function(){e.addEvent({name:"popstate",time:a(performance.now()),pageUrl:self.location.toString()})}),!0),u(history,"pushState",(function(e){return function(){var n=e.apply(this,arguments);return t.addEvent({name:"pushState",time:a(performance.now()),pageUrl:self.location.toString()}),n}}))}},e.prototype.isCompatible=function(){return!i()&&!f(self,"chrome.app.runtime")&&f(self,"addEventListener")&&f(self,"history.pushState")},e.prototype.onSelectInputChanged=function(e){if(e.multiple)for(var t=0;t=0&&e.options[e.selectedIndex]&&this.writeActivityEvent(e,"input",e.options[e.selectedIndex].value)},e.prototype.writeActivityEvent=function(e,t,n,r){"password"===this.getElementType(e)&&(n=void 0),this.addEvent({name:t,time:a(performance.now()),pageUrl:self.location.toString(),element:{tag:e.tagName.toLowerCase(),attributes:this.getElementAttributes(e),value:this.getMetaValue(n,r),text:e.innerText?s(e.innerText,100):""}})},e.prototype.getElementFromEvent=function(e){return e.target||document.elementFromPoint(e.clientX,e.clientY)},e.prototype.getDescribedElement=function(e,t,n){if(e.closest){if(!(e=e.closest(t)))return null}else if(e.tagName.toLowerCase()!==t.toLowerCase())return null;if(!n)return e;for(var r=this.getElementType(e),i=0;i=0}))},e.prototype.binResources=function(e){var t=this,n=[],r=[],i=[],o=[],s=[],a=[];return e.forEach((function(e){t.isImage(e)?n.push(e):t.isScript(e)?r.push(e):t.isXhr(e)?i.push(e):t.isCss(e)?o.push(e):t.isFont(e)?s.push(e):a.push(e)})),{allImages:n,allScripts:r,allXhr:i,allCss:o,allFonts:s,allOther:a}},e.prototype.isImage=function(e){if("img"===e.initiatorType)return!0;try{if("css"===e.initiatorType||"link"===e.initiatorType){var t=new URL(e.name).pathname.toLowerCase();return[".jpg",".jpeg",".png",".gif",".svg",".raw",".webp",".heif",".avif"].some((function(e){return t.endsWith(e)}))}}catch(e){}return!1},e.prototype.isScript=function(e){if("script"===e.initiatorType)return!0;try{if("link"===e.initiatorType||"other"===e.initiatorType)return new URL(e.name).pathname.toLowerCase().endsWith(".js")}catch(e){}return!1},e.prototype.isXhr=function(e){return"fetch"===e.initiatorType||"xmlhttprequest"===e.initiatorType},e.prototype.isCss=function(e){if("link"!==e.initiatorType&&"css"!==e.initiatorType)return!1;try{return new URL(e.name).pathname.toLowerCase().endsWith("css")}catch(e){}return!1},e.prototype.isFont=function(e){if("link"!==e.initiatorType&&"css"!==e.initiatorType&&"other"!==e.initiatorType)return!1;try{var t=new URL(e.name).pathname.toLowerCase();return[".woff",".woff2",".ttf",".eot",".otf"].some((function(e){return t.endsWith(e)}))}catch(e){}return!1},e.prototype.isThirdParty=function(e){try{return new URL(e).origin!==self.location.origin}catch(e){}return!1},e.prototype.getWallClockTimeForResources=function(e){return a(this.getTimeRangesForResources(e).reduce((function(e,t){return e+t.duration}),0))},e.prototype.getTimeRangesForResources=function(e){e=e.sort((function(e,t){return e.startTime-t.startTime}));var t=[];return e.forEach((function(e){var n=t[t.length-1];n&&n.isWithinRange(e)?n.applyTiming(e):t.push(new F(e))})),t},e.prototype.sentResources=function(){this.hasSent=!0,e.cachedResourceTimings=null},e.cachedResourceTimings=null,e}(),F=function(){function e(e){this.start=e.startTime,this.end=e.responseEnd}return Object.defineProperty(e.prototype,"duration",{get:function(){return this.end-this.start},enumerable:!1,configurable:!0}),e.prototype.isWithinRange=function(e){return e.startTime<=this.end},e.prototype.applyTiming=function(e){this.end=0?r="back-forward-cache":n&&(r=document.prerendering||B()>0?"prerender":n.type.replace(/_/g,"-")),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v3-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},H=function(e,t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){t(e.getEntries())}));return r.observe(Object.assign({type:e,buffered:!0},n||{})),r}}catch(e){}},z=function(e,t){var n=function n(r){"pagehide"!==r.type&&"hidden"!==document.visibilityState||(e(r),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},W=function(e,t,n,r){var i,o;return function(s){t.value>=0&&(s||r)&&((o=t.value-(i||0))||void 0===i)&&(i=t.value,t.delta=o,t.rating=function(e,t){return e>t[1]?"poor":e>t[0]?"needs-improvement":"good"}(t.value,n),e(t))}},V=-1,X=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},$=function(){z((function(e){var t=e.timeStamp;V=t}),!0)},Q=function(){return V<0&&(V=X(),$(),D((function(){setTimeout((function(){V=X(),$()}),0)}))),{get firstHiddenTime(){return V}}},J=function(e,t){t=t||{};var n,r=[1800,3e3],i=Q(),o=N("FCP"),s=function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(c&&c.disconnect(),e.startTime=0&&b1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){ee(e,t),i()},r=function(){i()},i=function(){removeEventListener("pointerup",n,Z),removeEventListener("pointercancel",r,Z)};addEventListener("pointerup",n,Z),addEventListener("pointercancel",r,Z)}(t,e):ee(t,e)}},re=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,ne,Z)}))},ie={},oe=function(){function e(){var e=this;this.vitalsSent=!1,this.metricQueue=new Set,this.addToQueue=function(t){e.metricQueue.add(t)},i()||(function(e,t){t=t||{};var n=[.1,.25];Y||(J((function(e){G=e.value})),Y=!0);var r,i=function(t){G>-1&&e(t)},o=N("CLS",0),s=0,a=[],c=function(e){e.forEach((function(e){if(!e.hadRecentInput){var t=a[0],n=a[a.length-1];s&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(s+=e.value,a.push(e)):(s=e.value,a=[e]),s>o.value&&(o.value=s,o.entries=a,r())}}))},u=H("layout-shift",c);u&&(r=W(i,o,n,t.reportAllChanges),z((function(){c(u.takeRecords()),r(!0)})),D((function(){s=0,G=-1,o=N("CLS",0),r=W(i,o,n,t.reportAllChanges)})))}(this.addToQueue,{reportAllChanges:!0}),function(e,t){t=t||{};var n,r=[100,300],i=Q(),o=N("FID"),s=function(e){e.startTime=50||n.duration<=0||"xmlhttprequest"!==n.initiatorType&&"fetch"!==n.initiatorType)){var i=o(n.name);if(function(e,t){var n=function(e){try{if(!e||0!==e.indexOf("http"))return null;var t=new URL(e).hostname;if(!t)return null;var n=t.split("."),i=n.pop();if("localhost"===i)return i;if("127.0.0.1"===t)return t;var o=n.pop();return 2===o.length&&(o=n.pop()),c.indexOf(o)>=0&&(o=n.pop()),"".concat(o,".")}catch(t){return r.error(t,"Page Url: ".concat(e)),null}}(t);if(!n)return!1;try{var i=new URL(e).hostname;return!!i&&i.indexOf(n)>=0}catch(t){return r.error(t,"Problem parsing first party url: ".concat(e)),!1}}(i,self.location.toString())){var s=i+n.startTime;e.entryHash[s]||(e.options.monitorSelfCalls||0!==e.getIngestUrl().indexOf(i))&&(r.errorCount>0&&0===r.getErrorUrl().indexOf(i)||(e.entryHash[s]=!0,t.push({url:i,start:a(n.startTime),duration:a(n.duration)})))}}})),t},e.prototype.getDevice=function(){try{if(/Mobi|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))return"mobile"}catch(e){}return"desktop"},e.prototype.getNetworkType=function(){try{var e=null===navigator||void 0===navigator?void 0:navigator.connection;return e?"".concat(e.effectiveType,":").concat(e.downlink,":").concat(e.rtt):null}catch(e){return null}},e.prototype.getPayload=function(e){var t;return void 0===e&&(e=!1),this.endpoints=this.endpoints.concat(this.getEndpointEntries()),{token:this.options.token,timeOrigin:new Date(this.timeOrigin).toISOString(),timeSent:(new Date).toISOString(),device:this.getDevice(),pageViewId:this.pageViewId,sessionId:this.sessionId,page:this.pageService.getPageEntry(),endpoints:ae([],this.endpoints,!0),vitals:null===(t=this.webVitalsObserver)||void 0===t?void 0:t.getVitals(this.pageService.getPageUrl()),resources:this.resourceService.getResources(),tags:this.options.tags,metadata:this.metadata,networkType:this.getNetworkType(),api:k.getApis(e),events:j.getEvents(e),errors:C.getErrors(e),js:this.resourceService.getAllThirdPartyJs(),env:{lang:navigator.language,width:i()?null:null===screen||void 0===screen?void 0:screen.width,height:i()?null:null===screen||void 0===screen?void 0:screen.height,dpr:i()?null:null===window||void 0===window?void 0:window.devicePixelRatio},user:this.user}},e.prototype.payloadHasData=function(e){return!(this.shutdownSend||this.sendCount>=60||!e||!(e.page||e.endpoints.length||e.vitals||e.resources||e.api.length||e.events.length||e.errors.length||e.js.length))},e.prototype.shouldSendInterval=function(e){return!!this.payloadHasData(e)&&!!(e.page||e.vitals||e.resources||i()||e.endpoints.length>=10||e.api.length>0||e.events.length>0||e.errors.length>0||e.js.length>0)},e.prototype.checkAndSend=function(){var e=this;try{var t=this.getPayload();if(t.source="polling",!this.shouldSendInterval(t))return;this.clearPayloadAfterSend(t);var n=new XMLHttpRequest;n.open("POST",this.getIngestUrl()),n.setRequestHeader("Content-Type","application/json"),n.addEventListener("load",(function(){n.status>=400&&(e.shutdownSend=!0)})),n.send(JSON.stringify(t))}catch(e){r.error(e)}},e.prototype.clearPayloadAfterSend=function(e){var t;this.sendCount++,this.endpoints.length=0,e.page&&this.pageService.sentPage(),e.vitals&&(null===(t=this.webVitalsObserver)||void 0===t||t.sentVitals()),e.resources&&this.resourceService.sentResources()},e.prototype.manageResourceBuffer=function(){var e=this;performance.setResourceTimingBufferSize&&performance.setResourceTimingBufferSize(1e3);var t=function(t){e.resourceService.cacheResources(),performance.clearResourceTimings()};if(performance.addEventListener)try{performance.addEventListener("resourcetimingbufferfull",t)}catch(e){}else performance.onresourcetimingbufferfull=t},e.defaults={token:null,ingestUrl:"https://in.requestmetrics.com/v1",monitorSelfCalls:!1,tags:[]},e}(),ue={__agent:null,version:"1.13.1",install:function(e){try{if(ue.__agent)return void console.warn("Request Metrics is already installed.");if("undefined"==typeof self)return void console.warn("Request Metrics does not operate in this environment.");if(!e||!e.token)return void console.error("You must provide a token to install Request Metrics.");r.token=e.token,ue.__agent=new ce(e)}catch(e){r.error(e)}},identify:function(e,t){try{return ue.__agent?e?ue.__agent.identify(e,t):void console.warn("You must provide a userId."):void console.warn("Request Metrics isn't installed.")}catch(e){r.error(e)}},sendEvent:function(e,t,n){void 0===n&&(n=null);try{return ue.__agent?e?ue.__agent.sendEvent(e,t,n):void console.warn("You must provide an event name."):void console.warn("Request Metrics isn't installed.")}catch(e){r.error(e)}},track:function(e,t,n){void 0===n&&(n=null);try{return ue.__agent?w(e)?ue.__agent.track(e,t,n):void console.warn("You must provide an instance of Error"):void console.warn("Request Metrics isn't installed.")}catch(e){r.error(e)}},addMetadata:function(e){try{if(!ue.__agent)return void console.warn("Request Metrics isn't installed.");if(!e)return;return ue.__agent.addMetadata(e)}catch(e){r.error(e)}}},le=ue;return function(){try{if(i())return;if(!document.querySelector)return;if(self.RM&&self.RM._options)return ue.install(self.RM._options),self.RM._userId&&ue.identify(self.RM._userId,self.RM._identifyOptions),self.RM._events&&self.RM._events.forEach((function(e){ue.sendEvent(e.eventName,e.metadata,e.time)})),self.RM._errors&&self.RM._errors.forEach((function(e){ue.track(e.error,e.metadata,e.time)})),void(self.RM._metadata&&ue.addMetadata(self.RM._metadata));var e=document.querySelector("[data-rm-token]");if(!e)return;var t=e.getAttribute("data-rm-token");if(!t)return;var n=(e.getAttribute("data-rm-tags")||"").split(",").filter((function(e){return e}));r.token=t,ue.install({token:t,ingestUrl:e.getAttribute("data-rm-ingest"),monitorSelfCalls:!!e.getAttribute("data-rm-monitor-self"),tags:n});var o=e.getAttribute("data-rm-userId");o&&ue.identify(o)}catch(e){r.error(e)}}(),t}()})); 2 | 3 | if (location.host === "frontendmasters.com") { 4 | RM.install({ 5 | token: "b4dw8ec:b9ht8wy", 6 | ingestUrl: "https://pathway.frontendmasters.com/v1", 7 | }); 8 | } 9 | -------------------------------------------------------------------------------- /assets/prism.css: -------------------------------------------------------------------------------- 1 | /* PrismJS 1.13.0 2 | http://prismjs.com/download.html#themes=prism-twilight&languages=clike+javascript&plugins=line-highlight+line-numbers+toolbar+copy-to-clipboard */ 3 | 4 | /** 5 | * prism.js Twilight theme 6 | * Based (more or less) on the Twilight theme originally of Textmate fame. 7 | * @author Remy Bach 8 | */ 9 | 10 | code[class*="language-"], 11 | pre[class*="language-"] { 12 | color: white; 13 | background: none; 14 | font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; 15 | text-align: left; 16 | text-shadow: 0 -0.1em 0.2em black; 17 | white-space: pre; 18 | word-spacing: normal; 19 | word-break: normal; 20 | word-wrap: normal; 21 | line-height: 1.5; 22 | -moz-tab-size: 4; 23 | -o-tab-size: 4; 24 | tab-size: 4; 25 | -webkit-hyphens: none; 26 | -moz-hyphens: none; 27 | -ms-hyphens: none; 28 | hyphens: none; 29 | font-size: 14px; 30 | } 31 | 32 | pre[class*="language-"], 33 | :not(pre)>code[class*="language-"] { 34 | background: #1c2023; 35 | /* #141414 */ 36 | } 37 | 38 | /* Code blocks */ 39 | 40 | pre[class*="language-"] { 41 | border-radius: 0.5em; 42 | /* #282A2B */ 43 | box-shadow: 1px 1px 0.5em black inset; 44 | margin: 0.5em 0; 45 | overflow: auto; 46 | padding: 1em; 47 | } 48 | 49 | pre[class*="language-"]::-moz-selection { 50 | /* Firefox */ 51 | background: hsl(200, 4%, 16%); 52 | /* #282A2B */ 53 | } 54 | 55 | pre[class*="language-"]::selection { 56 | /* Safari */ 57 | background: hsl(200, 4%, 16%); 58 | /* #282A2B */ 59 | } 60 | 61 | /* Text Selection colour */ 62 | 63 | pre[class*="language-"]::-moz-selection, 64 | pre[class*="language-"] ::-moz-selection, 65 | code[class*="language-"]::-moz-selection, 66 | code[class*="language-"] ::-moz-selection { 67 | text-shadow: none; 68 | background: hsla(0, 0%, 93%, 0.15); 69 | /* #EDEDED */ 70 | } 71 | 72 | pre[class*="language-"]::selection, 73 | pre[class*="language-"] ::selection, 74 | code[class*="language-"]::selection, 75 | code[class*="language-"] ::selection { 76 | text-shadow: none; 77 | background: hsla(0, 0%, 93%, 0.15); 78 | /* #EDEDED */ 79 | } 80 | 81 | /* Inline code */ 82 | 83 | :not(pre)>code[class*="language-"] { 84 | border-radius: 0.3em; 85 | border: 0.13em solid hsl(0, 0%, 33%); 86 | /* #545454 */ 87 | box-shadow: 1px 1px 0.3em -0.1em black inset; 88 | padding: 0.15em 0.2em 0.05em; 89 | white-space: normal; 90 | } 91 | 92 | .token.comment, 93 | .token.prolog, 94 | .token.doctype, 95 | .token.cdata { 96 | color: hsl(0, 0%, 47%); 97 | /* #777777 */ 98 | } 99 | 100 | .token.punctuation { 101 | opacity: 0.7; 102 | } 103 | 104 | .namespace { 105 | opacity: 0.7; 106 | } 107 | 108 | .token.tag, 109 | .token.boolean, 110 | .token.number, 111 | .token.deleted { 112 | color: hsl(14, 58%, 55%); 113 | /* #CF6A4C */ 114 | } 115 | 116 | .token.keyword, 117 | .token.property, 118 | .token.selector, 119 | .token.constant, 120 | .token.symbol, 121 | .token.builtin { 122 | color: hsl(53, 89%, 79%); 123 | /* #F9EE98 */ 124 | } 125 | 126 | .token.attr-name, 127 | .token.attr-value, 128 | .token.string, 129 | .token.char, 130 | .token.operator, 131 | .token.entity, 132 | .token.url, 133 | .language-css .token.string, 134 | .style .token.string, 135 | .token.variable, 136 | .token.inserted { 137 | color: hsl(76, 21%, 52%); 138 | /* #8F9D6A */ 139 | } 140 | 141 | .token.atrule { 142 | color: hsl(218, 22%, 55%); 143 | /* #7587A6 */ 144 | } 145 | 146 | .token.regex, 147 | .token.important { 148 | color: hsl(42, 75%, 65%); 149 | /* #E9C062 */ 150 | } 151 | 152 | .token.important, 153 | .token.bold { 154 | font-weight: bold; 155 | } 156 | 157 | .token.italic { 158 | font-style: italic; 159 | } 160 | 161 | .token.entity { 162 | cursor: help; 163 | } 164 | 165 | pre[data-line] { 166 | padding: 1em 0 1em 3em; 167 | position: relative; 168 | } 169 | 170 | /* Markup */ 171 | 172 | .language-markup .token.tag, 173 | .language-markup .token.attr-name, 174 | .language-markup .token.punctuation { 175 | color: hsl(33, 33%, 52%); 176 | /* #AC885B */ 177 | } 178 | 179 | /* Make the tokens sit above the line highlight so the colours don't look faded. */ 180 | 181 | .token { 182 | position: relative; 183 | z-index: 1; 184 | } 185 | 186 | .line-highlight { 187 | background: hsla(0, 0%, 33%, 0.25); 188 | /* #545454 */ 189 | background: linear-gradient( to right, hsla(0, 0%, 33%, 0.1) 70%, hsla(0, 0%, 33%, 0)); 190 | /* #545454 */ 191 | border-bottom: 1px dashed hsl(0, 0%, 33%); 192 | /* #545454 */ 193 | border-top: 1px dashed hsl(0, 0%, 33%); 194 | /* #545454 */ 195 | left: 0; 196 | line-height: inherit; 197 | margin-top: 0.75em; 198 | /* Same as .prism’s padding-top */ 199 | padding: inherit 0; 200 | pointer-events: none; 201 | position: absolute; 202 | right: 0; 203 | white-space: pre; 204 | z-index: 0; 205 | } 206 | 207 | .line-highlight:before, 208 | .line-highlight[data-end]:after { 209 | background-color: hsl(215, 15%, 59%); 210 | /* #8794A6 */ 211 | border-radius: 999px; 212 | box-shadow: 0 1px white; 213 | color: hsl(24, 20%, 95%); 214 | /* #F5F2F0 */ 215 | content: attr(data-start); 216 | font: bold 65%/1.5 sans-serif; 217 | left: 0.6em; 218 | min-width: 1em; 219 | padding: 0 0.5em; 220 | position: absolute; 221 | text-align: center; 222 | text-shadow: none; 223 | top: 0.4em; 224 | vertical-align: 0.3em; 225 | } 226 | 227 | .line-highlight[data-end]:after { 228 | bottom: 0.4em; 229 | content: attr(data-end); 230 | top: auto; 231 | } 232 | 233 | pre[data-line] { 234 | position: relative; 235 | padding: 1em 0 1em 3em; 236 | } 237 | 238 | .line-highlight { 239 | position: absolute; 240 | left: 0; 241 | right: 0; 242 | padding: inherit 0; 243 | margin-top: 1em; 244 | /* Same as .prism’s padding-top */ 245 | background: hsla(24, 20%, 50%, 0.08); 246 | background: linear-gradient( to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0)); 247 | pointer-events: none; 248 | line-height: inherit; 249 | white-space: pre; 250 | } 251 | 252 | .line-highlight:before, 253 | .line-highlight[data-end]:after { 254 | content: attr(data-start); 255 | position: absolute; 256 | top: 0.4em; 257 | left: 0.6em; 258 | min-width: 1em; 259 | padding: 0 0.5em; 260 | background-color: hsla(24, 20%, 50%, 0.4); 261 | color: hsl(24, 20%, 95%); 262 | font: bold 65%/1.5 sans-serif; 263 | text-align: center; 264 | vertical-align: 0.3em; 265 | border-radius: 999px; 266 | text-shadow: none; 267 | box-shadow: 0 1px white; 268 | } 269 | 270 | .line-highlight[data-end]:after { 271 | content: attr(data-end); 272 | top: auto; 273 | bottom: 0.4em; 274 | } 275 | 276 | .line-numbers .line-highlight:before, 277 | .line-numbers .line-highlight:after { 278 | content: none; 279 | } 280 | 281 | pre.line-numbers { 282 | position: relative; 283 | padding-left: 3.8em; 284 | counter-reset: linenumber; 285 | } 286 | 287 | pre.line-numbers>code { 288 | position: relative; 289 | white-space: inherit; 290 | } 291 | 292 | .line-numbers .line-numbers-rows { 293 | position: absolute; 294 | pointer-events: none; 295 | top: 0; 296 | font-size: 100%; 297 | left: -3.8em; 298 | width: 3em; 299 | /* works for line-numbers below 1000 lines */ 300 | letter-spacing: -1px; 301 | border-right: 1px solid #999; 302 | -webkit-user-select: none; 303 | -moz-user-select: none; 304 | -ms-user-select: none; 305 | user-select: none; 306 | } 307 | 308 | .line-numbers-rows>span { 309 | pointer-events: none; 310 | display: block; 311 | counter-increment: linenumber; 312 | } 313 | 314 | .line-numbers-rows>span:before { 315 | content: counter(linenumber); 316 | color: rgb(80, 80, 80); 317 | display: block; 318 | padding-right: 0.8em; 319 | text-align: right; 320 | } 321 | 322 | div.code-toolbar { 323 | position: relative; 324 | margin-top: -3px; 325 | } 326 | 327 | div.code-toolbar>.toolbar { 328 | position: absolute; 329 | top: 0.3em; 330 | right: 0.2em; 331 | transition: opacity 0.3s ease-in-out; 332 | opacity: 0; 333 | } 334 | 335 | div.code-toolbar:hover>.toolbar { 336 | opacity: 1; 337 | } 338 | 339 | div.code-toolbar>.toolbar .toolbar-item { 340 | display: inline-block; 341 | } 342 | 343 | div.code-toolbar>.toolbar a { 344 | cursor: pointer; 345 | } 346 | 347 | div.code-toolbar>.toolbar button { 348 | background: none; 349 | border: 0; 350 | color: inherit; 351 | font: inherit; 352 | line-height: normal; 353 | overflow: visible; 354 | padding: 0; 355 | -webkit-user-select: none; 356 | /* for button */ 357 | -moz-user-select: none; 358 | -ms-user-select: none; 359 | } 360 | 361 | div.code-toolbar>.toolbar a, 362 | div.code-toolbar>.toolbar button, 363 | div.code-toolbar>.toolbar span { 364 | color: #bbb; 365 | font-size: 0.8em; 366 | padding: 0 0.5em; 367 | background: #f5f2f0; 368 | background: rgba(224, 224, 224, 0.2); 369 | box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2); 370 | border-radius: 0.5em; 371 | } 372 | 373 | div.code-toolbar>.toolbar a:hover, 374 | div.code-toolbar>.toolbar a:focus, 375 | div.code-toolbar>.toolbar button:hover, 376 | div.code-toolbar>.toolbar button:focus, 377 | div.code-toolbar>.toolbar span:hover, 378 | div.code-toolbar>.toolbar span:focus { 379 | color: inherit; 380 | text-decoration: none; 381 | } -------------------------------------------------------------------------------- /assets/prism.js: -------------------------------------------------------------------------------- 1 | /* PrismJS 1.15.0 2 | https://prismjs.com/download.html#themes=prism-twilight&languages=markup+css+clike+javascript&plugins=line-highlight+line-numbers+toolbar+copy-to-clipboard */ 3 | var _self = 4 | "undefined" != typeof window 5 | ? window 6 | : "undefined" != typeof WorkerGlobalScope && 7 | self instanceof WorkerGlobalScope 8 | ? self 9 | : {}, 10 | Prism = (function() { 11 | var e = /\blang(?:uage)?-([\w-]+)\b/i, 12 | t = 0, 13 | n = (_self.Prism = { 14 | manual: _self.Prism && _self.Prism.manual, 15 | disableWorkerMessageHandler: 16 | _self.Prism && _self.Prism.disableWorkerMessageHandler, 17 | util: { 18 | encode: function(e) { 19 | return e instanceof r 20 | ? new r(e.type, n.util.encode(e.content), e.alias) 21 | : "Array" === n.util.type(e) 22 | ? e.map(n.util.encode) 23 | : e 24 | .replace(/&/g, "&") 25 | .replace(/ e.length) return; 207 | if (!(w instanceof s)) { 208 | if (m && b != t.length - 1) { 209 | h.lastIndex = k; 210 | var _ = h.exec(e); 211 | if (!_) break; 212 | for ( 213 | var j = _.index + (d ? _[1].length : 0), 214 | P = _.index + _[0].length, 215 | A = b, 216 | x = k, 217 | O = t.length; 218 | O > A && (P > x || (!t[A].type && !t[A - 1].greedy)); 219 | ++A 220 | ) 221 | (x += t[A].length), j >= x && (++b, (k = x)); 222 | if (t[b] instanceof s) continue; 223 | (I = A - b), (w = e.slice(k, x)), (_.index -= k); 224 | } else { 225 | h.lastIndex = 0; 226 | var _ = h.exec(w), 227 | I = 1; 228 | } 229 | if (_) { 230 | d && (p = _[1] ? _[1].length : 0); 231 | var j = _.index + p, 232 | _ = _[0].slice(p), 233 | P = j + _.length, 234 | N = w.slice(0, j), 235 | S = w.slice(P), 236 | C = [b, I]; 237 | N && (++b, (k += N.length), C.push(N)); 238 | var E = new s(u, f ? n.tokenize(_, f) : _, y, _, m); 239 | if ( 240 | (C.push(E), 241 | S && C.push(S), 242 | Array.prototype.splice.apply(t, C), 243 | 1 != I && n.matchGrammar(e, t, r, b, k, !0, u), 244 | i) 245 | ) 246 | break; 247 | } else if (i) break; 248 | } 249 | } 250 | } 251 | } 252 | }, 253 | tokenize: function(e, t) { 254 | var r = [e], 255 | a = t.rest; 256 | if (a) { 257 | for (var l in a) t[l] = a[l]; 258 | delete t.rest; 259 | } 260 | return n.matchGrammar(e, r, t, 0, 0, !1), r; 261 | }, 262 | hooks: { 263 | all: {}, 264 | add: function(e, t) { 265 | var r = n.hooks.all; 266 | (r[e] = r[e] || []), r[e].push(t); 267 | }, 268 | run: function(e, t) { 269 | var r = n.hooks.all[e]; 270 | if (r && r.length) for (var a, l = 0; (a = r[l++]); ) a(t); 271 | } 272 | } 273 | }), 274 | r = (n.Token = function(e, t, n, r, a) { 275 | (this.type = e), 276 | (this.content = t), 277 | (this.alias = n), 278 | (this.length = 0 | (r || "").length), 279 | (this.greedy = !!a); 280 | }); 281 | if ( 282 | ((r.stringify = function(e, t, a) { 283 | if ("string" == typeof e) return e; 284 | if ("Array" === n.util.type(e)) 285 | return e 286 | .map(function(n) { 287 | return r.stringify(n, t, e); 288 | }) 289 | .join(""); 290 | var l = { 291 | type: e.type, 292 | content: r.stringify(e.content, t, a), 293 | tag: "span", 294 | classes: ["token", e.type], 295 | attributes: {}, 296 | language: t, 297 | parent: a 298 | }; 299 | if (e.alias) { 300 | var i = "Array" === n.util.type(e.alias) ? e.alias : [e.alias]; 301 | Array.prototype.push.apply(l.classes, i); 302 | } 303 | n.hooks.run("wrap", l); 304 | var o = Object.keys(l.attributes) 305 | .map(function(e) { 306 | return ( 307 | e + '="' + (l.attributes[e] || "").replace(/"/g, """) + '"' 308 | ); 309 | }) 310 | .join(" "); 311 | return ( 312 | "<" + 313 | l.tag + 314 | ' class="' + 315 | l.classes.join(" ") + 316 | '"' + 317 | (o ? " " + o : "") + 318 | ">" + 319 | l.content + 320 | "" 323 | ); 324 | }), 325 | !_self.document) 326 | ) 327 | return _self.addEventListener 328 | ? (n.disableWorkerMessageHandler || 329 | _self.addEventListener( 330 | "message", 331 | function(e) { 332 | var t = JSON.parse(e.data), 333 | r = t.language, 334 | a = t.code, 335 | l = t.immediateClose; 336 | _self.postMessage(n.highlight(a, n.languages[r], r)), 337 | l && _self.close(); 338 | }, 339 | !1 340 | ), 341 | _self.Prism) 342 | : _self.Prism; 343 | var a = 344 | document.currentScript || 345 | [].slice.call(document.getElementsByTagName("script")).pop(); 346 | return ( 347 | a && 348 | ((n.filename = a.src), 349 | n.manual || 350 | a.hasAttribute("data-manual") || 351 | ("loading" !== document.readyState 352 | ? window.requestAnimationFrame 353 | ? window.requestAnimationFrame(n.highlightAll) 354 | : window.setTimeout(n.highlightAll, 16) 355 | : document.addEventListener("DOMContentLoaded", n.highlightAll))), 356 | _self.Prism 357 | ); 358 | })(); 359 | "undefined" != typeof module && module.exports && (module.exports = Prism), 360 | "undefined" != typeof global && (global.Prism = Prism); 361 | (Prism.languages.markup = { 362 | comment: //, 363 | prolog: /<\?[\s\S]+?\?>/, 364 | doctype: //i, 365 | cdata: //i, 366 | tag: { 367 | pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, 368 | greedy: !0, 369 | inside: { 370 | tag: { 371 | pattern: /^<\/?[^\s>\/]+/i, 372 | inside: { punctuation: /^<\/?/, namespace: /^[^\s>\/:]+:/ } 373 | }, 374 | "attr-value": { 375 | pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i, 376 | inside: { 377 | punctuation: [/^=/, { pattern: /(^|[^\\])["']/, lookbehind: !0 }] 378 | } 379 | }, 380 | punctuation: /\/?>/, 381 | "attr-name": { 382 | pattern: /[^\s>\/]+/, 383 | inside: { namespace: /^[^\s>\/:]+:/ } 384 | } 385 | } 386 | }, 387 | entity: /&#?[\da-z]{1,8};/i 388 | }), 389 | (Prism.languages.markup.tag.inside["attr-value"].inside.entity = 390 | Prism.languages.markup.entity), 391 | Prism.hooks.add("wrap", function(a) { 392 | "entity" === a.type && 393 | (a.attributes.title = a.content.replace(/&/, "&")); 394 | }), 395 | (Prism.languages.xml = Prism.languages.markup), 396 | (Prism.languages.html = Prism.languages.markup), 397 | (Prism.languages.mathml = Prism.languages.markup), 398 | (Prism.languages.svg = Prism.languages.markup); 399 | (Prism.languages.css = { 400 | comment: /\/\*[\s\S]*?\*\//, 401 | atrule: { 402 | pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, 403 | inside: { rule: /@[\w-]+/ } 404 | }, 405 | url: /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, 406 | selector: /[^{}\s][^{};]*?(?=\s*\{)/, 407 | string: { 408 | pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 409 | greedy: !0 410 | }, 411 | property: /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, 412 | important: /\B!important\b/i, 413 | function: /[-a-z0-9]+(?=\()/i, 414 | punctuation: /[(){};:]/ 415 | }), 416 | (Prism.languages.css.atrule.inside.rest = Prism.languages.css), 417 | Prism.languages.markup && 418 | (Prism.languages.insertBefore("markup", "tag", { 419 | style: { 420 | pattern: /()[\s\S]*?(?=<\/style>)/i, 421 | lookbehind: !0, 422 | inside: Prism.languages.css, 423 | alias: "language-css", 424 | greedy: !0 425 | } 426 | }), 427 | Prism.languages.insertBefore( 428 | "inside", 429 | "attr-value", 430 | { 431 | "style-attr": { 432 | pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, 433 | inside: { 434 | "attr-name": { 435 | pattern: /^\s*style/i, 436 | inside: Prism.languages.markup.tag.inside 437 | }, 438 | punctuation: /^\s*=\s*['"]|['"]\s*$/, 439 | "attr-value": { pattern: /.+/i, inside: Prism.languages.css } 440 | }, 441 | alias: "language-css" 442 | } 443 | }, 444 | Prism.languages.markup.tag 445 | )); 446 | Prism.languages.clike = { 447 | comment: [ 448 | { pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: !0 }, 449 | { pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0 } 450 | ], 451 | string: { 452 | pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 453 | greedy: !0 454 | }, 455 | "class-name": { 456 | pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, 457 | lookbehind: !0, 458 | inside: { punctuation: /[.\\]/ } 459 | }, 460 | keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, 461 | boolean: /\b(?:true|false)\b/, 462 | function: /[a-z0-9_]+(?=\()/i, 463 | number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, 464 | operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, 465 | punctuation: /[{}[\];(),.:]/ 466 | }; 467 | (Prism.languages.javascript = Prism.languages.extend("clike", { 468 | "class-name": [ 469 | Prism.languages.clike["class-name"], 470 | /[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/ 471 | ], 472 | keyword: [ 473 | { pattern: /((?:^|})\s*)(?:catch|finally)\b/, lookbehind: !0 }, 474 | /\b(?:as|async|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|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/ 475 | ], 476 | number: /\b(?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/, 477 | function: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\(|\.(?:apply|bind|call)\()/, 478 | operator: /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ 479 | })), 480 | (Prism.languages.javascript[ 481 | "class-name" 482 | ][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/), 483 | Prism.languages.insertBefore("javascript", "keyword", { 484 | regex: { 485 | pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/, 486 | lookbehind: !0, 487 | greedy: !0 488 | }, 489 | "function-variable": { 490 | pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i, 491 | alias: "function" 492 | }, 493 | constant: /\b[A-Z][A-Z\d_]*\b/ 494 | }), 495 | Prism.languages.insertBefore("javascript", "string", { 496 | "template-string": { 497 | pattern: /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/, 498 | greedy: !0, 499 | inside: { 500 | interpolation: { 501 | pattern: /\${[^}]+}/, 502 | inside: { 503 | "interpolation-punctuation": { 504 | pattern: /^\${|}$/, 505 | alias: "punctuation" 506 | }, 507 | rest: Prism.languages.javascript 508 | } 509 | }, 510 | string: /[\s\S]+/ 511 | } 512 | } 513 | }), 514 | Prism.languages.markup && 515 | Prism.languages.insertBefore("markup", "tag", { 516 | script: { 517 | pattern: /()[\s\S]*?(?=<\/script>)/i, 518 | lookbehind: !0, 519 | inside: Prism.languages.javascript, 520 | alias: "language-javascript", 521 | greedy: !0 522 | } 523 | }), 524 | (Prism.languages.js = Prism.languages.javascript); 525 | !(function() { 526 | function e(e, t) { 527 | return Array.prototype.slice.call((t || document).querySelectorAll(e)); 528 | } 529 | function t(e, t) { 530 | return ( 531 | (t = " " + t + " "), 532 | (" " + e.className + " ").replace(/[\n\t]/g, " ").indexOf(t) > -1 533 | ); 534 | } 535 | function n(e, n, i) { 536 | n = "string" == typeof n ? n : e.getAttribute("data-line"); 537 | for ( 538 | var o, 539 | l = n.replace(/\s+/g, "").split(","), 540 | a = +e.getAttribute("data-line-offset") || 0, 541 | s = r() ? parseInt : parseFloat, 542 | d = s(getComputedStyle(e).lineHeight), 543 | u = t(e, "line-numbers"), 544 | c = 0; 545 | (o = l[c++]); 546 | 547 | ) { 548 | var p = o.split("-"), 549 | m = +p[0], 550 | f = +p[1] || m, 551 | h = 552 | e.querySelector('.line-highlight[data-range="' + o + '"]') || 553 | document.createElement("div"); 554 | if ( 555 | (h.setAttribute("aria-hidden", "true"), 556 | h.setAttribute("data-range", o), 557 | (h.className = (i || "") + " line-highlight"), 558 | u && Prism.plugins.lineNumbers) 559 | ) { 560 | var g = Prism.plugins.lineNumbers.getLine(e, m), 561 | y = Prism.plugins.lineNumbers.getLine(e, f); 562 | g && (h.style.top = g.offsetTop + "px"), 563 | y && 564 | (h.style.height = 565 | y.offsetTop - g.offsetTop + y.offsetHeight + "px"); 566 | } else 567 | h.setAttribute("data-start", m), 568 | f > m && h.setAttribute("data-end", f), 569 | (h.style.top = (m - a - 1) * d + "px"), 570 | (h.textContent = new Array(f - m + 2).join(" \n")); 571 | u ? e.appendChild(h) : (e.querySelector("code") || e).appendChild(h); 572 | } 573 | } 574 | function i() { 575 | var t = location.hash.slice(1); 576 | e(".temporary.line-highlight").forEach(function(e) { 577 | e.parentNode.removeChild(e); 578 | }); 579 | var i = (t.match(/\.([\d,-]+)$/) || [, ""])[1]; 580 | if (i && !document.getElementById(t)) { 581 | var r = t.slice(0, t.lastIndexOf(".")), 582 | o = document.getElementById(r); 583 | o && 584 | (o.hasAttribute("data-line") || o.setAttribute("data-line", ""), 585 | n(o, i, "temporary "), 586 | document.querySelector(".temporary.line-highlight").scrollIntoView()); 587 | } 588 | } 589 | if ( 590 | "undefined" != typeof self && 591 | self.Prism && 592 | self.document && 593 | document.querySelector 594 | ) { 595 | var r = (function() { 596 | var e; 597 | return function() { 598 | if ("undefined" == typeof e) { 599 | var t = document.createElement("div"); 600 | (t.style.fontSize = "13px"), 601 | (t.style.lineHeight = "1.5"), 602 | (t.style.padding = 0), 603 | (t.style.border = 0), 604 | (t.innerHTML = " 
 "), 605 | document.body.appendChild(t), 606 | (e = 38 === t.offsetHeight), 607 | document.body.removeChild(t); 608 | } 609 | return e; 610 | }; 611 | })(), 612 | o = 0; 613 | Prism.hooks.add("before-sanity-check", function(t) { 614 | var n = t.element.parentNode, 615 | i = n && n.getAttribute("data-line"); 616 | if (n && i && /pre/i.test(n.nodeName)) { 617 | var r = 0; 618 | e(".line-highlight", n).forEach(function(e) { 619 | (r += e.textContent.length), e.parentNode.removeChild(e); 620 | }), 621 | r && 622 | /^( \n)+$/.test(t.code.slice(-r)) && 623 | (t.code = t.code.slice(0, -r)); 624 | } 625 | }), 626 | Prism.hooks.add("complete", function l(e) { 627 | var r = e.element.parentNode, 628 | a = r && r.getAttribute("data-line"); 629 | if (r && a && /pre/i.test(r.nodeName)) { 630 | clearTimeout(o); 631 | var s = Prism.plugins.lineNumbers, 632 | d = e.plugins && e.plugins.lineNumbers; 633 | t(r, "line-numbers") && s && !d 634 | ? Prism.hooks.add("line-numbers", l) 635 | : (n(r, a), (o = setTimeout(i, 1))); 636 | } 637 | }), 638 | window.addEventListener("hashchange", i), 639 | window.addEventListener("resize", function() { 640 | var e = document.querySelectorAll("pre[data-line]"); 641 | Array.prototype.forEach.call(e, function(e) { 642 | n(e); 643 | }); 644 | }); 645 | } 646 | })(); 647 | !(function() { 648 | if ("undefined" != typeof self && self.Prism && self.document) { 649 | var e = "line-numbers", 650 | t = /\n(?!$)/g, 651 | n = function(e) { 652 | var n = r(e), 653 | s = n["white-space"]; 654 | if ("pre-wrap" === s || "pre-line" === s) { 655 | var l = e.querySelector("code"), 656 | i = e.querySelector(".line-numbers-rows"), 657 | a = e.querySelector(".line-numbers-sizer"), 658 | o = l.textContent.split(t); 659 | a || 660 | ((a = document.createElement("span")), 661 | (a.className = "line-numbers-sizer"), 662 | l.appendChild(a)), 663 | (a.style.display = "block"), 664 | o.forEach(function(e, t) { 665 | a.textContent = e || "\n"; 666 | var n = a.getBoundingClientRect().height; 667 | i.children[t].style.height = n + "px"; 668 | }), 669 | (a.textContent = ""), 670 | (a.style.display = "none"); 671 | } 672 | }, 673 | r = function(e) { 674 | return e 675 | ? window.getComputedStyle 676 | ? getComputedStyle(e) 677 | : e.currentStyle || null 678 | : null; 679 | }; 680 | window.addEventListener("resize", function() { 681 | Array.prototype.forEach.call(document.querySelectorAll("pre." + e), n); 682 | }), 683 | Prism.hooks.add("complete", function(e) { 684 | if (e.code) { 685 | var r = e.element.parentNode, 686 | s = /\s*\bline-numbers\b\s*/; 687 | if ( 688 | r && 689 | /pre/i.test(r.nodeName) && 690 | (s.test(r.className) || s.test(e.element.className)) && 691 | !e.element.querySelector(".line-numbers-rows") 692 | ) { 693 | s.test(e.element.className) && 694 | (e.element.className = e.element.className.replace(s, " ")), 695 | s.test(r.className) || (r.className += " line-numbers"); 696 | var l, 697 | i = e.code.match(t), 698 | a = i ? i.length + 1 : 1, 699 | o = new Array(a + 1); 700 | (o = o.join("")), 701 | (l = document.createElement("span")), 702 | l.setAttribute("aria-hidden", "true"), 703 | (l.className = "line-numbers-rows"), 704 | (l.innerHTML = o), 705 | r.hasAttribute("data-start") && 706 | (r.style.counterReset = 707 | "linenumber " + 708 | (parseInt(r.getAttribute("data-start"), 10) - 1)), 709 | e.element.appendChild(l), 710 | n(r), 711 | Prism.hooks.run("line-numbers", e); 712 | } 713 | } 714 | }), 715 | Prism.hooks.add("line-numbers", function(e) { 716 | (e.plugins = e.plugins || {}), (e.plugins.lineNumbers = !0); 717 | }), 718 | (Prism.plugins.lineNumbers = { 719 | getLine: function(t, n) { 720 | if ("PRE" === t.tagName && t.classList.contains(e)) { 721 | var r = t.querySelector(".line-numbers-rows"), 722 | s = parseInt(t.getAttribute("data-start"), 10) || 1, 723 | l = s + (r.children.length - 1); 724 | s > n && (n = s), n > l && (n = l); 725 | var i = n - s; 726 | return r.children[i]; 727 | } 728 | } 729 | }); 730 | } 731 | })(); 732 | !(function() { 733 | if ("undefined" != typeof self && self.Prism && self.document) { 734 | var t = [], 735 | e = {}, 736 | n = function() {}; 737 | Prism.plugins.toolbar = {}; 738 | var a = (Prism.plugins.toolbar.registerButton = function(n, a) { 739 | var o; 740 | (o = 741 | "function" == typeof a 742 | ? a 743 | : function(t) { 744 | var e; 745 | return ( 746 | "function" == typeof a.onClick 747 | ? ((e = document.createElement("button")), 748 | (e.type = "button"), 749 | e.addEventListener("click", function() { 750 | a.onClick.call(this, t); 751 | })) 752 | : "string" == typeof a.url 753 | ? ((e = document.createElement("a")), (e.href = a.url)) 754 | : (e = document.createElement("span")), 755 | (e.textContent = a.text), 756 | e 757 | ); 758 | }), 759 | t.push((e[n] = o)); 760 | }), 761 | o = (Prism.plugins.toolbar.hook = function(a) { 762 | var o = a.element.parentNode; 763 | if ( 764 | o && 765 | /pre/i.test(o.nodeName) && 766 | !o.parentNode.classList.contains("code-toolbar") 767 | ) { 768 | var r = document.createElement("div"); 769 | r.classList.add("code-toolbar"), 770 | o.parentNode.insertBefore(r, o), 771 | r.appendChild(o); 772 | var i = document.createElement("div"); 773 | i.classList.add("toolbar"), 774 | document.body.hasAttribute("data-toolbar-order") && 775 | (t = document.body 776 | .getAttribute("data-toolbar-order") 777 | .split(",") 778 | .map(function(t) { 779 | return e[t] || n; 780 | })), 781 | t.forEach(function(t) { 782 | var e = t(a); 783 | if (e) { 784 | var n = document.createElement("div"); 785 | n.classList.add("toolbar-item"), 786 | n.appendChild(e), 787 | i.appendChild(n); 788 | } 789 | }), 790 | r.appendChild(i); 791 | } 792 | }); 793 | a("label", function(t) { 794 | var e = t.element.parentNode; 795 | if (e && /pre/i.test(e.nodeName) && e.hasAttribute("data-label")) { 796 | var n, 797 | a, 798 | o = e.getAttribute("data-label"); 799 | try { 800 | a = document.querySelector("template#" + o); 801 | } catch (r) {} 802 | return ( 803 | a 804 | ? (n = a.content) 805 | : (e.hasAttribute("data-url") 806 | ? ((n = document.createElement("a")), 807 | (n.href = e.getAttribute("data-url"))) 808 | : (n = document.createElement("span")), 809 | (n.textContent = o)), 810 | n 811 | ); 812 | } 813 | }), 814 | Prism.hooks.add("complete", o); 815 | } 816 | })(); 817 | !(function() { 818 | if ("undefined" != typeof self && self.Prism && self.document) { 819 | if (!Prism.plugins.toolbar) 820 | return ( 821 | console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."), 822 | void 0 823 | ); 824 | var o = window.ClipboardJS || void 0; 825 | o || "function" != typeof require || (o = require("clipboard")); 826 | var e = []; 827 | if (!o) { 828 | var t = document.createElement("script"), 829 | n = document.querySelector("head"); 830 | (t.onload = function() { 831 | if ((o = window.ClipboardJS)) for (; e.length; ) e.pop()(); 832 | }), 833 | (t.src = 834 | "https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"), 835 | n.appendChild(t); 836 | } 837 | Prism.plugins.toolbar.registerButton("copy-to-clipboard", function(t) { 838 | function n() { 839 | var e = new o(i, { 840 | text: function() { 841 | return t.code; 842 | } 843 | }); 844 | e.on("success", function() { 845 | (i.textContent = "Copied!"), r(); 846 | }), 847 | e.on("error", function() { 848 | (i.textContent = "Press Ctrl+C to copy"), r(); 849 | }); 850 | } 851 | function r() { 852 | setTimeout(function() { 853 | i.textContent = "Copy"; 854 | }, 5e3); 855 | } 856 | var i = document.createElement("a"); 857 | return (i.textContent = "Copy"), o ? n() : e.push(n), i; 858 | }); 859 | } 860 | })(); 861 | /* PrismJS 1.15.0 862 | https://prismjs.com/download.html#themes=prism-twilight&languages=markup+css+clike+javascript&plugins=line-highlight+line-numbers+toolbar+copy-to-clipboard */ 863 | var _self = 864 | "undefined" != typeof window 865 | ? window 866 | : "undefined" != typeof WorkerGlobalScope && 867 | self instanceof WorkerGlobalScope 868 | ? self 869 | : {}, 870 | Prism = (function() { 871 | var e = /\blang(?:uage)?-([\w-]+)\b/i, 872 | t = 0, 873 | n = (_self.Prism = { 874 | manual: _self.Prism && _self.Prism.manual, 875 | disableWorkerMessageHandler: 876 | _self.Prism && _self.Prism.disableWorkerMessageHandler, 877 | util: { 878 | encode: function(e) { 879 | return e instanceof r 880 | ? new r(e.type, n.util.encode(e.content), e.alias) 881 | : "Array" === n.util.type(e) 882 | ? e.map(n.util.encode) 883 | : e 884 | .replace(/&/g, "&") 885 | .replace(/ e.length) return; 1067 | if (!(w instanceof s)) { 1068 | if (m && b != t.length - 1) { 1069 | h.lastIndex = k; 1070 | var _ = h.exec(e); 1071 | if (!_) break; 1072 | for ( 1073 | var j = _.index + (d ? _[1].length : 0), 1074 | P = _.index + _[0].length, 1075 | A = b, 1076 | x = k, 1077 | O = t.length; 1078 | O > A && (P > x || (!t[A].type && !t[A - 1].greedy)); 1079 | ++A 1080 | ) 1081 | (x += t[A].length), j >= x && (++b, (k = x)); 1082 | if (t[b] instanceof s) continue; 1083 | (I = A - b), (w = e.slice(k, x)), (_.index -= k); 1084 | } else { 1085 | h.lastIndex = 0; 1086 | var _ = h.exec(w), 1087 | I = 1; 1088 | } 1089 | if (_) { 1090 | d && (p = _[1] ? _[1].length : 0); 1091 | var j = _.index + p, 1092 | _ = _[0].slice(p), 1093 | P = j + _.length, 1094 | N = w.slice(0, j), 1095 | S = w.slice(P), 1096 | C = [b, I]; 1097 | N && (++b, (k += N.length), C.push(N)); 1098 | var E = new s(u, f ? n.tokenize(_, f) : _, y, _, m); 1099 | if ( 1100 | (C.push(E), 1101 | S && C.push(S), 1102 | Array.prototype.splice.apply(t, C), 1103 | 1 != I && n.matchGrammar(e, t, r, b, k, !0, u), 1104 | i) 1105 | ) 1106 | break; 1107 | } else if (i) break; 1108 | } 1109 | } 1110 | } 1111 | } 1112 | }, 1113 | tokenize: function(e, t) { 1114 | var r = [e], 1115 | a = t.rest; 1116 | if (a) { 1117 | for (var l in a) t[l] = a[l]; 1118 | delete t.rest; 1119 | } 1120 | return n.matchGrammar(e, r, t, 0, 0, !1), r; 1121 | }, 1122 | hooks: { 1123 | all: {}, 1124 | add: function(e, t) { 1125 | var r = n.hooks.all; 1126 | (r[e] = r[e] || []), r[e].push(t); 1127 | }, 1128 | run: function(e, t) { 1129 | var r = n.hooks.all[e]; 1130 | if (r && r.length) for (var a, l = 0; (a = r[l++]); ) a(t); 1131 | } 1132 | } 1133 | }), 1134 | r = (n.Token = function(e, t, n, r, a) { 1135 | (this.type = e), 1136 | (this.content = t), 1137 | (this.alias = n), 1138 | (this.length = 0 | (r || "").length), 1139 | (this.greedy = !!a); 1140 | }); 1141 | if ( 1142 | ((r.stringify = function(e, t, a) { 1143 | if ("string" == typeof e) return e; 1144 | if ("Array" === n.util.type(e)) 1145 | return e 1146 | .map(function(n) { 1147 | return r.stringify(n, t, e); 1148 | }) 1149 | .join(""); 1150 | var l = { 1151 | type: e.type, 1152 | content: r.stringify(e.content, t, a), 1153 | tag: "span", 1154 | classes: ["token", e.type], 1155 | attributes: {}, 1156 | language: t, 1157 | parent: a 1158 | }; 1159 | if (e.alias) { 1160 | var i = "Array" === n.util.type(e.alias) ? e.alias : [e.alias]; 1161 | Array.prototype.push.apply(l.classes, i); 1162 | } 1163 | n.hooks.run("wrap", l); 1164 | var o = Object.keys(l.attributes) 1165 | .map(function(e) { 1166 | return ( 1167 | e + '="' + (l.attributes[e] || "").replace(/"/g, """) + '"' 1168 | ); 1169 | }) 1170 | .join(" "); 1171 | return ( 1172 | "<" + 1173 | l.tag + 1174 | ' class="' + 1175 | l.classes.join(" ") + 1176 | '"' + 1177 | (o ? " " + o : "") + 1178 | ">" + 1179 | l.content + 1180 | "" 1183 | ); 1184 | }), 1185 | !_self.document) 1186 | ) 1187 | return _self.addEventListener 1188 | ? (n.disableWorkerMessageHandler || 1189 | _self.addEventListener( 1190 | "message", 1191 | function(e) { 1192 | var t = JSON.parse(e.data), 1193 | r = t.language, 1194 | a = t.code, 1195 | l = t.immediateClose; 1196 | _self.postMessage(n.highlight(a, n.languages[r], r)), 1197 | l && _self.close(); 1198 | }, 1199 | !1 1200 | ), 1201 | _self.Prism) 1202 | : _self.Prism; 1203 | var a = 1204 | document.currentScript || 1205 | [].slice.call(document.getElementsByTagName("script")).pop(); 1206 | return ( 1207 | a && 1208 | ((n.filename = a.src), 1209 | n.manual || 1210 | a.hasAttribute("data-manual") || 1211 | ("loading" !== document.readyState 1212 | ? window.requestAnimationFrame 1213 | ? window.requestAnimationFrame(n.highlightAll) 1214 | : window.setTimeout(n.highlightAll, 16) 1215 | : document.addEventListener("DOMContentLoaded", n.highlightAll))), 1216 | _self.Prism 1217 | ); 1218 | })(); 1219 | "undefined" != typeof module && module.exports && (module.exports = Prism), 1220 | "undefined" != typeof global && (global.Prism = Prism); 1221 | (Prism.languages.markup = { 1222 | comment: //, 1223 | prolog: /<\?[\s\S]+?\?>/, 1224 | doctype: //i, 1225 | cdata: //i, 1226 | tag: { 1227 | pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, 1228 | greedy: !0, 1229 | inside: { 1230 | tag: { 1231 | pattern: /^<\/?[^\s>\/]+/i, 1232 | inside: { punctuation: /^<\/?/, namespace: /^[^\s>\/:]+:/ } 1233 | }, 1234 | "attr-value": { 1235 | pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i, 1236 | inside: { 1237 | punctuation: [/^=/, { pattern: /(^|[^\\])["']/, lookbehind: !0 }] 1238 | } 1239 | }, 1240 | punctuation: /\/?>/, 1241 | "attr-name": { 1242 | pattern: /[^\s>\/]+/, 1243 | inside: { namespace: /^[^\s>\/:]+:/ } 1244 | } 1245 | } 1246 | }, 1247 | entity: /&#?[\da-z]{1,8};/i 1248 | }), 1249 | (Prism.languages.markup.tag.inside["attr-value"].inside.entity = 1250 | Prism.languages.markup.entity), 1251 | Prism.hooks.add("wrap", function(a) { 1252 | "entity" === a.type && 1253 | (a.attributes.title = a.content.replace(/&/, "&")); 1254 | }), 1255 | (Prism.languages.xml = Prism.languages.markup), 1256 | (Prism.languages.html = Prism.languages.markup), 1257 | (Prism.languages.mathml = Prism.languages.markup), 1258 | (Prism.languages.svg = Prism.languages.markup); 1259 | (Prism.languages.css = { 1260 | comment: /\/\*[\s\S]*?\*\//, 1261 | atrule: { 1262 | pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, 1263 | inside: { rule: /@[\w-]+/ } 1264 | }, 1265 | url: /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, 1266 | selector: /[^{}\s][^{};]*?(?=\s*\{)/, 1267 | string: { 1268 | pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 1269 | greedy: !0 1270 | }, 1271 | property: /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, 1272 | important: /\B!important\b/i, 1273 | function: /[-a-z0-9]+(?=\()/i, 1274 | punctuation: /[(){};:]/ 1275 | }), 1276 | (Prism.languages.css.atrule.inside.rest = Prism.languages.css), 1277 | Prism.languages.markup && 1278 | (Prism.languages.insertBefore("markup", "tag", { 1279 | style: { 1280 | pattern: /()[\s\S]*?(?=<\/style>)/i, 1281 | lookbehind: !0, 1282 | inside: Prism.languages.css, 1283 | alias: "language-css", 1284 | greedy: !0 1285 | } 1286 | }), 1287 | Prism.languages.insertBefore( 1288 | "inside", 1289 | "attr-value", 1290 | { 1291 | "style-attr": { 1292 | pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, 1293 | inside: { 1294 | "attr-name": { 1295 | pattern: /^\s*style/i, 1296 | inside: Prism.languages.markup.tag.inside 1297 | }, 1298 | punctuation: /^\s*=\s*['"]|['"]\s*$/, 1299 | "attr-value": { pattern: /.+/i, inside: Prism.languages.css } 1300 | }, 1301 | alias: "language-css" 1302 | } 1303 | }, 1304 | Prism.languages.markup.tag 1305 | )); 1306 | Prism.languages.clike = { 1307 | comment: [ 1308 | { pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: !0 }, 1309 | { pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0 } 1310 | ], 1311 | string: { 1312 | pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 1313 | greedy: !0 1314 | }, 1315 | "class-name": { 1316 | pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, 1317 | lookbehind: !0, 1318 | inside: { punctuation: /[.\\]/ } 1319 | }, 1320 | keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, 1321 | boolean: /\b(?:true|false)\b/, 1322 | function: /[a-z0-9_]+(?=\()/i, 1323 | number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, 1324 | operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, 1325 | punctuation: /[{}[\];(),.:]/ 1326 | }; 1327 | (Prism.languages.javascript = Prism.languages.extend("clike", { 1328 | "class-name": [ 1329 | Prism.languages.clike["class-name"], 1330 | /[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/ 1331 | ], 1332 | keyword: [ 1333 | { pattern: /((?:^|})\s*)(?:catch|finally)\b/, lookbehind: !0 }, 1334 | /\b(?:as|async|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|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/ 1335 | ], 1336 | number: /\b(?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/, 1337 | function: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\(|\.(?:apply|bind|call)\()/, 1338 | operator: /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ 1339 | })), 1340 | (Prism.languages.javascript[ 1341 | "class-name" 1342 | ][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/), 1343 | Prism.languages.insertBefore("javascript", "keyword", { 1344 | regex: { 1345 | pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/, 1346 | lookbehind: !0, 1347 | greedy: !0 1348 | }, 1349 | "function-variable": { 1350 | pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i, 1351 | alias: "function" 1352 | }, 1353 | constant: /\b[A-Z][A-Z\d_]*\b/ 1354 | }), 1355 | Prism.languages.insertBefore("javascript", "string", { 1356 | "template-string": { 1357 | pattern: /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/, 1358 | greedy: !0, 1359 | inside: { 1360 | interpolation: { 1361 | pattern: /\${[^}]+}/, 1362 | inside: { 1363 | "interpolation-punctuation": { 1364 | pattern: /^\${|}$/, 1365 | alias: "punctuation" 1366 | }, 1367 | rest: Prism.languages.javascript 1368 | } 1369 | }, 1370 | string: /[\s\S]+/ 1371 | } 1372 | } 1373 | }), 1374 | Prism.languages.markup && 1375 | Prism.languages.insertBefore("markup", "tag", { 1376 | script: { 1377 | pattern: /()[\s\S]*?(?=<\/script>)/i, 1378 | lookbehind: !0, 1379 | inside: Prism.languages.javascript, 1380 | alias: "language-javascript", 1381 | greedy: !0 1382 | } 1383 | }), 1384 | (Prism.languages.js = Prism.languages.javascript); 1385 | !(function() { 1386 | function e(e, t) { 1387 | return Array.prototype.slice.call((t || document).querySelectorAll(e)); 1388 | } 1389 | function t(e, t) { 1390 | return ( 1391 | (t = " " + t + " "), 1392 | (" " + e.className + " ").replace(/[\n\t]/g, " ").indexOf(t) > -1 1393 | ); 1394 | } 1395 | function n(e, n, i) { 1396 | n = "string" == typeof n ? n : e.getAttribute("data-line"); 1397 | for ( 1398 | var o, 1399 | l = n.replace(/\s+/g, "").split(","), 1400 | a = +e.getAttribute("data-line-offset") || 0, 1401 | s = r() ? parseInt : parseFloat, 1402 | d = s(getComputedStyle(e).lineHeight), 1403 | u = t(e, "line-numbers"), 1404 | c = 0; 1405 | (o = l[c++]); 1406 | 1407 | ) { 1408 | var p = o.split("-"), 1409 | m = +p[0], 1410 | f = +p[1] || m, 1411 | h = 1412 | e.querySelector('.line-highlight[data-range="' + o + '"]') || 1413 | document.createElement("div"); 1414 | if ( 1415 | (h.setAttribute("aria-hidden", "true"), 1416 | h.setAttribute("data-range", o), 1417 | (h.className = (i || "") + " line-highlight"), 1418 | u && Prism.plugins.lineNumbers) 1419 | ) { 1420 | var g = Prism.plugins.lineNumbers.getLine(e, m), 1421 | y = Prism.plugins.lineNumbers.getLine(e, f); 1422 | g && (h.style.top = g.offsetTop + "px"), 1423 | y && 1424 | (h.style.height = 1425 | y.offsetTop - g.offsetTop + y.offsetHeight + "px"); 1426 | } else 1427 | h.setAttribute("data-start", m), 1428 | f > m && h.setAttribute("data-end", f), 1429 | (h.style.top = (m - a - 1) * d + "px"), 1430 | (h.textContent = new Array(f - m + 2).join(" \n")); 1431 | u ? e.appendChild(h) : (e.querySelector("code") || e).appendChild(h); 1432 | } 1433 | } 1434 | function i() { 1435 | var t = location.hash.slice(1); 1436 | e(".temporary.line-highlight").forEach(function(e) { 1437 | e.parentNode.removeChild(e); 1438 | }); 1439 | var i = (t.match(/\.([\d,-]+)$/) || [, ""])[1]; 1440 | if (i && !document.getElementById(t)) { 1441 | var r = t.slice(0, t.lastIndexOf(".")), 1442 | o = document.getElementById(r); 1443 | o && 1444 | (o.hasAttribute("data-line") || o.setAttribute("data-line", ""), 1445 | n(o, i, "temporary "), 1446 | document.querySelector(".temporary.line-highlight").scrollIntoView()); 1447 | } 1448 | } 1449 | if ( 1450 | "undefined" != typeof self && 1451 | self.Prism && 1452 | self.document && 1453 | document.querySelector 1454 | ) { 1455 | var r = (function() { 1456 | var e; 1457 | return function() { 1458 | if ("undefined" == typeof e) { 1459 | var t = document.createElement("div"); 1460 | (t.style.fontSize = "13px"), 1461 | (t.style.lineHeight = "1.5"), 1462 | (t.style.padding = 0), 1463 | (t.style.border = 0), 1464 | (t.innerHTML = " 
 "), 1465 | document.body.appendChild(t), 1466 | (e = 38 === t.offsetHeight), 1467 | document.body.removeChild(t); 1468 | } 1469 | return e; 1470 | }; 1471 | })(), 1472 | o = 0; 1473 | Prism.hooks.add("before-sanity-check", function(t) { 1474 | var n = t.element.parentNode, 1475 | i = n && n.getAttribute("data-line"); 1476 | if (n && i && /pre/i.test(n.nodeName)) { 1477 | var r = 0; 1478 | e(".line-highlight", n).forEach(function(e) { 1479 | (r += e.textContent.length), e.parentNode.removeChild(e); 1480 | }), 1481 | r && 1482 | /^( \n)+$/.test(t.code.slice(-r)) && 1483 | (t.code = t.code.slice(0, -r)); 1484 | } 1485 | }), 1486 | Prism.hooks.add("complete", function l(e) { 1487 | var r = e.element.parentNode, 1488 | a = r && r.getAttribute("data-line"); 1489 | if (r && a && /pre/i.test(r.nodeName)) { 1490 | clearTimeout(o); 1491 | var s = Prism.plugins.lineNumbers, 1492 | d = e.plugins && e.plugins.lineNumbers; 1493 | t(r, "line-numbers") && s && !d 1494 | ? Prism.hooks.add("line-numbers", l) 1495 | : (n(r, a), (o = setTimeout(i, 1))); 1496 | } 1497 | }), 1498 | window.addEventListener("hashchange", i), 1499 | window.addEventListener("resize", function() { 1500 | var e = document.querySelectorAll("pre[data-line]"); 1501 | Array.prototype.forEach.call(e, function(e) { 1502 | n(e); 1503 | }); 1504 | }); 1505 | } 1506 | })(); 1507 | !(function() { 1508 | if ("undefined" != typeof self && self.Prism && self.document) { 1509 | var e = "line-numbers", 1510 | t = /\n(?!$)/g, 1511 | n = function(e) { 1512 | var n = r(e), 1513 | s = n["white-space"]; 1514 | if ("pre-wrap" === s || "pre-line" === s) { 1515 | var l = e.querySelector("code"), 1516 | i = e.querySelector(".line-numbers-rows"), 1517 | a = e.querySelector(".line-numbers-sizer"), 1518 | o = l.textContent.split(t); 1519 | a || 1520 | ((a = document.createElement("span")), 1521 | (a.className = "line-numbers-sizer"), 1522 | l.appendChild(a)), 1523 | (a.style.display = "block"), 1524 | o.forEach(function(e, t) { 1525 | a.textContent = e || "\n"; 1526 | var n = a.getBoundingClientRect().height; 1527 | i.children[t].style.height = n + "px"; 1528 | }), 1529 | (a.textContent = ""), 1530 | (a.style.display = "none"); 1531 | } 1532 | }, 1533 | r = function(e) { 1534 | return e 1535 | ? window.getComputedStyle 1536 | ? getComputedStyle(e) 1537 | : e.currentStyle || null 1538 | : null; 1539 | }; 1540 | window.addEventListener("resize", function() { 1541 | Array.prototype.forEach.call(document.querySelectorAll("pre." + e), n); 1542 | }), 1543 | Prism.hooks.add("complete", function(e) { 1544 | if (e.code) { 1545 | var r = e.element.parentNode, 1546 | s = /\s*\bline-numbers\b\s*/; 1547 | if ( 1548 | r && 1549 | /pre/i.test(r.nodeName) && 1550 | (s.test(r.className) || s.test(e.element.className)) && 1551 | !e.element.querySelector(".line-numbers-rows") 1552 | ) { 1553 | s.test(e.element.className) && 1554 | (e.element.className = e.element.className.replace(s, " ")), 1555 | s.test(r.className) || (r.className += " line-numbers"); 1556 | var l, 1557 | i = e.code.match(t), 1558 | a = i ? i.length + 1 : 1, 1559 | o = new Array(a + 1); 1560 | (o = o.join("")), 1561 | (l = document.createElement("span")), 1562 | l.setAttribute("aria-hidden", "true"), 1563 | (l.className = "line-numbers-rows"), 1564 | (l.innerHTML = o), 1565 | r.hasAttribute("data-start") && 1566 | (r.style.counterReset = 1567 | "linenumber " + 1568 | (parseInt(r.getAttribute("data-start"), 10) - 1)), 1569 | e.element.appendChild(l), 1570 | n(r), 1571 | Prism.hooks.run("line-numbers", e); 1572 | } 1573 | } 1574 | }), 1575 | Prism.hooks.add("line-numbers", function(e) { 1576 | (e.plugins = e.plugins || {}), (e.plugins.lineNumbers = !0); 1577 | }), 1578 | (Prism.plugins.lineNumbers = { 1579 | getLine: function(t, n) { 1580 | if ("PRE" === t.tagName && t.classList.contains(e)) { 1581 | var r = t.querySelector(".line-numbers-rows"), 1582 | s = parseInt(t.getAttribute("data-start"), 10) || 1, 1583 | l = s + (r.children.length - 1); 1584 | s > n && (n = s), n > l && (n = l); 1585 | var i = n - s; 1586 | return r.children[i]; 1587 | } 1588 | } 1589 | }); 1590 | } 1591 | })(); 1592 | !(function() { 1593 | if ("undefined" != typeof self && self.Prism && self.document) { 1594 | var t = [], 1595 | e = {}, 1596 | n = function() {}; 1597 | Prism.plugins.toolbar = {}; 1598 | var a = (Prism.plugins.toolbar.registerButton = function(n, a) { 1599 | var o; 1600 | (o = 1601 | "function" == typeof a 1602 | ? a 1603 | : function(t) { 1604 | var e; 1605 | return ( 1606 | "function" == typeof a.onClick 1607 | ? ((e = document.createElement("button")), 1608 | (e.type = "button"), 1609 | e.addEventListener("click", function() { 1610 | a.onClick.call(this, t); 1611 | })) 1612 | : "string" == typeof a.url 1613 | ? ((e = document.createElement("a")), (e.href = a.url)) 1614 | : (e = document.createElement("span")), 1615 | (e.textContent = a.text), 1616 | e 1617 | ); 1618 | }), 1619 | t.push((e[n] = o)); 1620 | }), 1621 | o = (Prism.plugins.toolbar.hook = function(a) { 1622 | var o = a.element.parentNode; 1623 | if ( 1624 | o && 1625 | /pre/i.test(o.nodeName) && 1626 | !o.parentNode.classList.contains("code-toolbar") 1627 | ) { 1628 | var r = document.createElement("div"); 1629 | r.classList.add("code-toolbar"), 1630 | o.parentNode.insertBefore(r, o), 1631 | r.appendChild(o); 1632 | var i = document.createElement("div"); 1633 | i.classList.add("toolbar"), 1634 | document.body.hasAttribute("data-toolbar-order") && 1635 | (t = document.body 1636 | .getAttribute("data-toolbar-order") 1637 | .split(",") 1638 | .map(function(t) { 1639 | return e[t] || n; 1640 | })), 1641 | t.forEach(function(t) { 1642 | var e = t(a); 1643 | if (e) { 1644 | var n = document.createElement("div"); 1645 | n.classList.add("toolbar-item"), 1646 | n.appendChild(e), 1647 | i.appendChild(n); 1648 | } 1649 | }), 1650 | r.appendChild(i); 1651 | } 1652 | }); 1653 | a("label", function(t) { 1654 | var e = t.element.parentNode; 1655 | if (e && /pre/i.test(e.nodeName) && e.hasAttribute("data-label")) { 1656 | var n, 1657 | a, 1658 | o = e.getAttribute("data-label"); 1659 | try { 1660 | a = document.querySelector("template#" + o); 1661 | } catch (r) {} 1662 | return ( 1663 | a 1664 | ? (n = a.content) 1665 | : (e.hasAttribute("data-url") 1666 | ? ((n = document.createElement("a")), 1667 | (n.href = e.getAttribute("data-url"))) 1668 | : (n = document.createElement("span")), 1669 | (n.textContent = o)), 1670 | n 1671 | ); 1672 | } 1673 | }), 1674 | Prism.hooks.add("complete", o); 1675 | } 1676 | })(); 1677 | !(function() { 1678 | if ("undefined" != typeof self && self.Prism && self.document) { 1679 | if (!Prism.plugins.toolbar) 1680 | return ( 1681 | console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."), 1682 | void 0 1683 | ); 1684 | var o = window.ClipboardJS || void 0; 1685 | o || "function" != typeof require || (o = require("clipboard")); 1686 | var e = []; 1687 | if (!o) { 1688 | var t = document.createElement("script"), 1689 | n = document.querySelector("head"); 1690 | (t.onload = function() { 1691 | if ((o = window.ClipboardJS)) for (; e.length; ) e.pop()(); 1692 | }), 1693 | (t.src = 1694 | "https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"), 1695 | n.appendChild(t); 1696 | } 1697 | Prism.plugins.toolbar.registerButton("copy-to-clipboard", function(t) { 1698 | function n() { 1699 | var e = new o(i, { 1700 | text: function() { 1701 | return t.code; 1702 | } 1703 | }); 1704 | e.on("success", function() { 1705 | (i.textContent = "Copied!"), r(); 1706 | }), 1707 | e.on("error", function() { 1708 | (i.textContent = "Press Ctrl+C to copy"), r(); 1709 | }); 1710 | } 1711 | function r() { 1712 | setTimeout(function() { 1713 | i.textContent = "Copy"; 1714 | }, 5e3); 1715 | } 1716 | var i = document.createElement("a"); 1717 | return (i.textContent = "Copy"), o ? n() : e.push(n), i; 1718 | }); 1719 | } 1720 | })(); 1721 | -------------------------------------------------------------------------------- /assets/reset.css: -------------------------------------------------------------------------------- 1 | html { 2 | box-sizing: border-box; 3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; 4 | font-weight: 400; 5 | font-style: normal; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | body { 11 | overflow-x: hidden; 12 | position: relative; 13 | } 14 | 15 | * { 16 | margin: 0; 17 | padding: 0; 18 | } 19 | 20 | *, 21 | *::before, 22 | *::after { 23 | box-sizing: inherit; 24 | } 25 | 26 | a { 27 | color: inherit; 28 | text-decoration: none; 29 | } 30 | 31 | ul { 32 | list-style: none; 33 | } 34 | 35 | img { 36 | display: inline-block; 37 | vertical-align: top; 38 | width: 100%; 39 | } 40 | 41 | pre, 42 | code { 43 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; 44 | } -------------------------------------------------------------------------------- /assets/slideout.min.js: -------------------------------------------------------------------------------- 1 | !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Slideout=t()}}(function(){var t,e,n;return function i(t,e,n){function o(r,a){if(!e[r]){if(!t[r]){var u=typeof require=="function"&&require;if(!a&&u)return u(r,!0);if(s)return s(r,!0);var l=new Error("Cannot find module '"+r+"'");throw l.code="MODULE_NOT_FOUND",l}var f=e[r]={exports:{}};t[r][0].call(f.exports,function(e){var n=t[r][1][e];return o(n?n:e)},f,f.exports,i,t,e,n)}return e[r].exports}var s=typeof require=="function"&&require;for(var r=0;rt._tolerance?t.open():t.close()}t._moved=false};this.panel.addEventListener(f.end,this._onTouchEndFn);this._onTouchMoveFn=function(e){if(r||t._preventOpen||typeof e.touches==="undefined"||d(e.target)){return}var n=e.touches[0].clientX-t._startOffsetX;var i=t._currentOffsetX=n;if(Math.abs(i)>t._padding){return}if(Math.abs(n)>20){t._opening=true;var o=n*t._orientation;if(t._opened&&o>0||!t._opened&&o<0){return}if(!t._moved){t.emit("translatestart")}if(o<=0){i=n+t._padding*t._orientation;t._opening=false}if(!(t._moved&&u.classList.contains("slideout-open"))){u.classList.add("slideout-open")}t.panel.style[h+"transform"]=t.panel.style.transform="translateX("+i+"px)";t.emit("translate",i);t._moved=true}};this.panel.addEventListener(f.move,this._onTouchMoveFn);return this};_.prototype.enableTouch=function(){this._touch=true;return this};_.prototype.disableTouch=function(){this._touch=false;return this};_.prototype.destroy=function(){this.close();a.removeEventListener(f.move,this._preventMove);this.panel.removeEventListener(f.start,this._resetTouchFn);this.panel.removeEventListener("touchcancel",this._onTouchCancelFn);this.panel.removeEventListener(f.end,this._onTouchEndFn);this.panel.removeEventListener(f.move,this._onTouchMoveFn);a.removeEventListener("scroll",this._onScrollFn);this.open=this.close=function(){};return this};e.exports=_},{decouple:2,emitter:3}],2:[function(t,e,n){"use strict";var i=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function o(t,e,n){var o,s=false;function r(t){o=t;a()}function a(){if(!s){i(u);s=true}}function u(){n.call(t,o);s=false}t.addEventListener(e,r,false);return r}e.exports=o},{}],3:[function(t,e,n){"use strict";var i=function(t,e){if(!(t instanceof e)){throw new TypeError("Cannot call a class as a function")}};n.__esModule=true;var o=function(){function t(){i(this,t)}t.prototype.on=function e(t,n){this._eventCollection=this._eventCollection||{};this._eventCollection[t]=this._eventCollection[t]||[];this._eventCollection[t].push(n);return this};t.prototype.once=function n(t,e){var n=this;function i(){n.off(t,i);e.apply(this,arguments)}i.listener=e;this.on(t,i);return this};t.prototype.off=function o(t,e){var n=undefined;if(!this._eventCollection||!(n=this._eventCollection[t])){return this}n.forEach(function(t,i){if(t===e||t.listener===e){n.splice(i,1)}});if(n.length===0){delete this._eventCollection[t]}return this};t.prototype.emit=function s(t){var e=this;for(var n=arguments.length,i=Array(n>1?n-1:0),o=1;o