From 2e8ad4f04155d878cc2a24dfcd2abcf5ab17a82c Mon Sep 17 00:00:00 2001 From: otis Date: Tue, 31 Dec 2019 22:34:50 +0800 Subject: minify css&js & async performance --- assets/css/style.css | 21 ++++++--------------- assets/js/application.min.js | 1 - assets/js/jquery.min.js | 2 -- assets/js/plugin.js.map | 1 - assets/js/plugin.min.js | 3 --- exampleSite/config.yml | 3 ++- layouts/partials/article.html | 2 +- layouts/partials/head.html | 16 ++-------------- layouts/partials/item-post.html | 2 +- layouts/partials/script.html | 6 +++--- static/fonts/FiraCode-Retina.woff | Bin 145500 -> 0 bytes static/fonts/SourceHanSans-Normal.woff | Bin 5156 -> 0 bytes 12 files changed, 15 insertions(+), 42 deletions(-) delete mode 100644 assets/js/application.min.js delete mode 100644 assets/js/jquery.min.js delete mode 100644 assets/js/plugin.js.map delete mode 100644 assets/js/plugin.min.js delete mode 100644 static/fonts/FiraCode-Retina.woff delete mode 100644 static/fonts/SourceHanSans-Normal.woff diff --git a/assets/css/style.css b/assets/css/style.css index 06944cf..ed60260 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -7,15 +7,6 @@ /** * font family */ - @font-face { - font-family: Fira Code; - src: url("../fonts/FiraCode-Retina.woff"); -} - -@font-face { - font-family: Source Han Sans; - src: url("../fonts/SourceHanSans-Normal.woff"); -} /** * */ @@ -35,7 +26,7 @@ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ html { - font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif,"Fira Code","Source Han Sans"; + font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; } @@ -156,7 +147,7 @@ code, kbd, pre, samp { - font-family: "Fira Code","Source Han Sans"; + font-family: monospace, monospace; font-size: 1em; } @@ -2948,7 +2939,7 @@ button.close { position: absolute; z-index: 1070; display: block; - font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif,"Fira Code","Source Han Sans"; + font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-style: normal; font-weight: normal; letter-spacing: normal; @@ -3265,7 +3256,7 @@ body { body { padding-right: 0 !important; - font-family: "Source Han Sans","Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif,"Fira Code"; + font-family: "Source Han Sans","Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 14px; line-height: 1.57143; color: #333333; @@ -7051,7 +7042,7 @@ body.okayNav-loaded { .donate-box .donate-head:before, .donate-box .donate-head:after { - font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif,"Fira Code","Source Han Sans"; + font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; background: none; width: 0px; height: 0px; @@ -7141,7 +7132,7 @@ body.okayNav-loaded { box-sizing: border-box; padding: 12px 28px 12px 20px; border-bottom: 1px solid #e2e2e2; - font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif,"Fira Code","Source Han Sans"; + font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; } .ins-close { diff --git a/assets/js/application.min.js b/assets/js/application.min.js deleted file mode 100644 index bcdb6ee..0000000 --- a/assets/js/application.min.js +++ /dev/null @@ -1 +0,0 @@ -$(function(){$('[data-toggle="tooltip"]').tooltip(),"undefined"!=typeof $.fn.slimScroll&&$(".sidebar .slimContent").slimScroll({height:$(window).height(),color:"rgba(0,0,0,0.15)",size:"5px",position:"right"}),$("#collapseToc").on("shown.bs.collapse",function(){"undefined"!=typeof $.fn.slimScroll&&$(".sidebar .slimContent").slimScroll().on("slimscroll")}),$(".geopattern").each(function(){$(this).geopattern($(this).data("pattern-id"))});$("#nav-main").okayNav({swipe_enabled:!1});$("[data-stick-bottom]").keepInView({fixed:!1,parentClass:"has-sticky",customClass:"sticky",trigger:"bottom",zindex:42,edgeOffset:0}),$("[data-stick-top]").keepInView({fixed:!0,parentClass:"has-sticky",customClass:"sticky",trigger:"top",zindex:42,edgeOffset:0});var t=$("ul.main-nav").hasClass("menu-highlight");if(t){for(var e=location.pathname,i=$("ul.main-nav>li"),a=-1,s=0,n=i.length;s-1||"/"===e&&("/."===o||"/"===o||"index.html"===o||"/index.html"===o))&&(a=s),$(i[s]).removeClass("active")}i[a]&&$(i[a]).addClass("active")}}); \ No newline at end of file diff --git a/assets/js/jquery.min.js b/assets/js/jquery.min.js deleted file mode 100644 index 07c00cd..0000000 --- a/assets/js/jquery.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!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(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=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)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(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 de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){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[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.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},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.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},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\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,"",""]};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&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],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=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.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"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.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,n){k.fn[n]=function(e,t){return 0\r\n bt.LEFT_DELIMITER = bt.LEFT_DELIMITER||'{%';\r\n bt.RIGHT_DELIMITER = bt.RIGHT_DELIMITER||'%}';\r\n\r\n //自定义默认是否转义,默认为默认自动转义\r\n bt.ESCAPE = true;\r\n\r\n //HTML转义\r\n bt._encodeHTML = function (source) {\r\n return String(source)\r\n .replace(/&/g,'&')\r\n .replace(//g,'>')\r\n .replace(/\\\\/g,'\')\r\n .replace(/\"/g,'"')\r\n .replace(/'/g,''');\r\n };\r\n\r\n //转义影响正则的字符\r\n bt._encodeReg = function (source) {\r\n return String(source).replace(/([.*+?^=!:${}()|[\\]/\\\\])/g,'\\\\$1');\r\n };\r\n\r\n //转义UI UI变量使用在HTML页面标签onclick等事件函数参数中\r\n bt._encodeEventHTML = function (source) {\r\n return String(source)\r\n .replace(/&/g,'&')\r\n .replace(//g,'>')\r\n .replace(/\"/g,'"')\r\n .replace(/'/g,''')\r\n .replace(/\\\\\\\\/g,'\\\\')\r\n .replace(/\\\\\\//g,'\\/')\r\n .replace(/\\\\n/g,'\\n')\r\n .replace(/\\\\r/g,'\\r');\r\n };\r\n\r\n //将字符串拼接生成函数,即编译过程(compile)\r\n bt._compile = function(str){\r\n var funBody = \"var _template_fun_array=[];\\nvar fn=(function(__data__){\\nvar _template_varName='';\\nfor(name in __data__){\\n_template_varName+=('var '+name+'=__data__[\\\"'+name+'\\\"];');\\n};\\neval(_template_varName);\\n_template_fun_array.push('\"+bt._analysisStr(str)+\"');\\n_template_varName=null;\\n})(_template_object);\\nfn = null;\\nreturn _template_fun_array.join('');\\n\";\r\n return new Function(\"_template_object\",funBody);\r\n };\r\n\r\n //判断是否是Object类型\r\n bt._isObject = function (source) {\r\n return 'function' === typeof source || !!(source && 'object' === typeof source);\r\n };\r\n\r\n //解析模板字符串\r\n bt._analysisStr = function(str){\r\n\r\n //取得分隔符\r\n var _left_ = bt.LEFT_DELIMITER;\r\n var _right_ = bt.RIGHT_DELIMITER;\r\n\r\n //对分隔符进行转义,支持正则中的元字符,可以是HTML注释 \r\n var _left = bt._encodeReg(_left_);\r\n var _right = bt._encodeReg(_right_);\r\n\r\n str = String(str)\r\n \r\n //去掉分隔符中js注释\r\n .replace(new RegExp(\"(\"+_left+\"[^\"+_right+\"]*)//.*\\n\",\"g\"), \"$1\")\r\n\r\n //去掉注释内容 <%* 这里可以任意的注释 *%>\r\n //默认支持HTML注释,将HTML注释匹配掉的原因是用户有可能用 来做分割符\r\n .replace(new RegExp(\"\", \"g\"),\"\")\r\n .replace(new RegExp(_left+\"\\\\*.*?\\\\*\"+_right, \"g\"),\"\")\r\n\r\n //把所有换行去掉 \\r回车符 \\t制表符 \\n换行符\r\n .replace(new RegExp(\"[\\\\r\\\\t\\\\n]\",\"g\"), \"\")\r\n\r\n //用来处理非分隔符内部的内容中含有 斜杠 \\ 单引号 ‘ ,处理办法为HTML转义\r\n .replace(new RegExp(_left+\"(?:(?!\"+_right+\")[\\\\s\\\\S])*\"+_right+\"|((?:(?!\"+_left+\")[\\\\s\\\\S])+)\",\"g\"),function (item, $1) {\r\n var str = '';\r\n if($1){\r\n\r\n //将 斜杠 单引 HTML转义\r\n str = $1.replace(/\\\\/g,\"\\").replace(/'/g,''');\r\n while(/<[^<]*?'[^<]*?>/g.test(str)){\r\n\r\n //将标签内的单引号转义为\\r 结合最后一步,替换为\\'\r\n str = str.replace(/(<[^<]*?)'([^<]*?>)/g,'$1\\r$2')\r\n };\r\n }else{\r\n str = item;\r\n }\r\n return str ;\r\n });\r\n\r\n\r\n str = str \r\n //定义变量,如果没有分号,需要容错 <%var val='test'%>\r\n .replace(new RegExp(\"(\"+_left+\"[\\\\s]*?var[\\\\s]*?.*?[\\\\s]*?[^;])[\\\\s]*?\"+_right,\"g\"),\"$1;\"+_right_)\r\n\r\n //对变量后面的分号做容错(包括转义模式 如<%:h=value%>) <%=value;%> 排除掉函数的情况 <%fun1();%> 排除定义变量情况 <%var val='test';%>\r\n .replace(new RegExp(\"(\"+_left+\":?[hvu]?[\\\\s]*?=[\\\\s]*?[^;|\"+_right+\"]*?);[\\\\s]*?\"+_right,\"g\"),\"$1\"+_right_)\r\n\r\n //按照 <% 分割为一个个数组,再用 \\t 和在一起,相当于将 <% 替换为 \\t\r\n //将模板按照<%分为一段一段的,再在每段的结尾加入 \\t,即用 \\t 将每个模板片段前面分隔开\r\n .split(_left_).join(\"\\t\");\r\n\r\n //支持用户配置默认是否自动转义\r\n if(bt.ESCAPE){\r\n str = str\r\n\r\n //找到 \\t=任意一个字符%> 替换为 ‘,任意字符,'\r\n //即替换简单变量 \\t=data%> 替换为 ',data,'\r\n //默认HTML转义 也支持HTML转义写法<%:h=value%> \r\n .replace(new RegExp(\"\\\\t=(.*?)\"+_right,\"g\"),\"',typeof($1) === 'undefined'?'':baidu.template._encodeHTML($1),'\");\r\n }else{\r\n str = str\r\n \r\n //默认不转义HTML转义\r\n .replace(new RegExp(\"\\\\t=(.*?)\"+_right,\"g\"),\"',typeof($1) === 'undefined'?'':$1,'\");\r\n };\r\n\r\n str = str\r\n\r\n //支持HTML转义写法<%:h=value%> \r\n .replace(new RegExp(\"\\\\t:h=(.*?)\"+_right,\"g\"),\"',typeof($1) === 'undefined'?'':baidu.template._encodeHTML($1),'\")\r\n\r\n //支持不转义写法 <%:=value%>和<%-value%>\r\n .replace(new RegExp(\"\\\\t(?::=|-)(.*?)\"+_right,\"g\"),\"',typeof($1)==='undefined'?'':$1,'\")\r\n\r\n //支持url转义 <%:u=value%>\r\n .replace(new RegExp(\"\\\\t:u=(.*?)\"+_right,\"g\"),\"',typeof($1)==='undefined'?'':encodeURIComponent($1),'\")\r\n\r\n //支持UI 变量使用在HTML页面标签onclick等事件函数参数中 <%:v=value%>\r\n .replace(new RegExp(\"\\\\t:v=(.*?)\"+_right,\"g\"),\"',typeof($1)==='undefined'?'':baidu.template._encodeEventHTML($1),'\")\r\n\r\n //将字符串按照 \\t 分成为数组,在用'); 将其合并,即替换掉结尾的 \\t 为 ');\r\n //在if,for等语句前面加上 '); ,形成 ');if ');for 的形式\r\n .split(\"\\t\").join(\"');\")\r\n\r\n //将 %> 替换为_template_fun_array.push('\r\n //即去掉结尾符,生成函数中的push方法\r\n //如:if(list.length=5){%>

',list[4],'

');}\r\n //会被替换为 if(list.length=5){_template_fun_array.push('

',list[4],'

');}\r\n .split(_right_).join(\"_template_fun_array.push('\")\r\n\r\n //将 \\r 替换为 \\\r\n .split(\"\\r\").join(\"\\\\'\");\r\n\r\n return str;\r\n };\r\n\r\n})(window);\r\n","!function(t){if(\"object\"==typeof exports)module.exports=t();else if(\"function\"==typeof define&&define.amd)define(t);else{var r;\"undefined\"!=typeof window?r=window:\"undefined\"!=typeof global?r=global:\"undefined\"!=typeof self&&(r=self),r.GeoPattern=t()}}(function(){return function t(r,s,e){function i(o,a){if(!s[o]){if(!r[o]){var h=\"function\"==typeof require&&require;if(!a&&h)return h(o,!0);if(n)return n(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var l=s[o]={exports:{}};r[o][0].call(l.exports,function(t){var s=r[o][1][t];return i(s?s:t)},l,l.exports,t,r,s,e)}return s[o].exports}for(var n=\"function\"==typeof require&&require,o=0;o.5?l/(2-o-a):l/(o+a),o){case r:i=(s-e)/l+(e>s?6:0);break;case s:i=(e-r)/l+2;break;case e:i=(r-s)/l+4}i/=6}return{h:i,s:n,l:h}}function n(t){function r(t,r,s){return 0>s&&(s+=1),s>1&&(s-=1),1/6>s?t+6*(r-t)*s:.5>s?r:2/3>s?t+(r-t)*(2/3-s)*6:t}var s,e,i,n=t.h,o=t.s,a=t.l;if(0===o)s=e=i=a;else{var h=.5>a?a*(1+o):a+o-a*o,l=2*a-h;s=r(l,h,n+1/3),e=r(l,h,n),i=r(l,h,n-1/3)}return{r:Math.round(255*s),g:Math.round(255*e),b:Math.round(255*i)}}r.exports={hex2rgb:s,rgb2hex:e,rgb2hsl:i,hsl2rgb:n,rgb2rgbString:function(t){return\"rgb(\"+[t.r,t.g,t.b].join(\",\")+\")\"}}},{}],3:[function(t,r){!function(s){\"use strict\";function e(t){return function(r,s){return\"object\"==typeof r&&(s=r,r=null),(null===r||void 0===r)&&(r=(new Date).toString()),s||(s={}),t.call(this,r,s)}}var i=t(\"./pattern\"),n=r.exports={generate:e(function(t,r){return new i(t,r)})};s&&(s.fn.geopattern=e(function(t,r){return this.each(function(){var e=s(this).attr(\"data-title-sha\");e&&(r=s.extend({hash:e},r));var i=n.generate(t,r);s(this).css(\"background-image\",i.toDataUrl())})}))}(\"undefined\"!=typeof jQuery?jQuery:null)},{\"./pattern\":4}],4:[function(t,r){(function(s){\"use strict\";function e(t,r,s){return parseInt(t.substr(r,s||1),16)}function i(t,r,s,e,i){var n=parseFloat(t),o=s-r,a=i-e;return(n-r)*a/o+e}function n(t){return t%2===0?C:j}function o(t){return i(t,0,15,M,W)}function a(t){var r=t,s=r/2,e=Math.sin(60*Math.PI/180)*r;return[0,e,s,0,s+r,0,2*r,e,s+r,2*e,s,2*e,0,e].join(\",\")}function h(t,r){var s=.66*r;return[[0,0,t/2,r-s,t/2,r,0,s,0,0],[t/2,r-s,t,0,t,s,t/2,r,t/2,r-s]].map(function(t){return t.join(\",\")})}function l(t){return[[t,0,t,3*t],[0,t,3*t,t]]}function c(t){var r=t,s=.33*r;return[s,0,r-s,0,r,s,r,r-s,r-s,r,s,r,0,r-s,0,s,s,0].join(\",\")}function f(t,r){var s=t/2;return[s,0,t,r,0,r,s,0].join(\",\")}function u(t,r){return[t/2,0,t,r/2,t/2,r,0,r/2].join(\",\")}function p(t){return[0,0,t,t,0,t,0,0].join(\",\")}function g(t,r,s,e,i){var a=p(e),h=o(i[0]),l=n(i[0]),c={stroke:S,\"stroke-opacity\":A,\"fill-opacity\":h,fill:l};t.polyline(a,c).transform({translate:[r+e,s],scale:[-1,1]}),t.polyline(a,c).transform({translate:[r+e,s+2*e],scale:[1,-1]}),h=o(i[1]),l=n(i[1]),c={stroke:S,\"stroke-opacity\":A,\"fill-opacity\":h,fill:l},t.polyline(a,c).transform({translate:[r+e,s+2*e],scale:[-1,-1]}),t.polyline(a,c).transform({translate:[r+e,s],scale:[1,1]})}function v(t,r,s,e,i){var a=o(i),h=n(i),l=p(e),c={stroke:S,\"stroke-opacity\":A,\"fill-opacity\":a,fill:h};t.polyline(l,c).transform({translate:[r,s+e],scale:[1,-1]}),t.polyline(l,c).transform({translate:[r+2*e,s+e],scale:[-1,-1]}),t.polyline(l,c).transform({translate:[r,s+e],scale:[1,1]}),t.polyline(l,c).transform({translate:[r+2*e,s+e],scale:[-1,1]})}function y(t,r){var s=t/2;return[0,0,r,s,0,t,0,0].join(\",\")}var d=t(\"extend\"),b=t(\"./color\"),m=t(\"./sha1\"),k=t(\"./svg\"),x={baseColor:\"#933c3c\"},w=[\"octogons\",\"overlappingCircles\",\"plusSigns\",\"xes\",\"sineWaves\",\"hexagons\",\"overlappingRings\",\"plaid\",\"triangles\",\"squares\",\"concentricCircles\",\"diamonds\",\"tessellation\",\"nestedSquares\",\"mosaicSquares\",\"chevrons\"],j=\"#222\",C=\"#ddd\",S=\"#000\",A=.02,M=.02,W=.15,H=r.exports=function(t,r){return this.opts=d({},x,r),this.hash=r.hash||m(t),this.svg=new k,this.generateBackground(),this.generatePattern(),this};H.prototype.toSvg=function(){return this.svg.toString()},H.prototype.toString=function(){return this.toSvg()},H.prototype.toBase64=function(){var t,r=this.toSvg();return t=\"undefined\"!=typeof window&&\"function\"==typeof window.btoa?window.btoa(r):new s(r).toString(\"base64\")},H.prototype.toDataUri=function(){return\"data:image/svg+xml;base64,\"+this.toBase64()},H.prototype.toDataUrl=function(){return'url(\"'+this.toDataUri()+'\")'},H.prototype.generateBackground=function(){var t,r,s,n;this.opts.color?s=b.hex2rgb(this.opts.color):(r=i(e(this.hash,14,3),0,4095,0,359),n=e(this.hash,17),t=b.rgb2hsl(b.hex2rgb(this.opts.baseColor)),t.h=(360*t.h-r+360)%360/360,t.s=n%2===0?Math.min(1,(100*t.s+n)/100):Math.max(0,(100*t.s-n)/100),s=b.hsl2rgb(t)),this.color=b.rgb2hex(s),this.svg.rect(0,0,\"100%\",\"100%\",{fill:b.rgb2rgbString(s)})},H.prototype.generatePattern=function(){var t=this.opts.generator;if(t){if(w.indexOf(t)<0)throw new Error(\"The generator \"+t+\" does not exist.\")}else t=w[e(this.hash,20)];return this[\"geo\"+t.slice(0,1).toUpperCase()+t.slice(1)]()},H.prototype.geoHexagons=function(){var t,r,s,h,l,c,f,u,p=e(this.hash,0),g=i(p,0,15,8,60),v=g*Math.sqrt(3),y=2*g,d=a(g);for(this.svg.setWidth(3*y+3*g),this.svg.setHeight(6*v),s=0,u=0;6>u;u++)for(f=0;6>f;f++)c=e(this.hash,s),t=f%2===0?u*v:u*v+v/2,h=o(c),r=n(c),l={fill:r,\"fill-opacity\":h,stroke:S,\"stroke-opacity\":A},this.svg.polyline(d,l).transform({translate:[f*g*1.5-y/2,t-v/2]}),0===f&&this.svg.polyline(d,l).transform({translate:[6*g*1.5-y/2,t-v/2]}),0===u&&(t=f%2===0?6*v:6*v+v/2,this.svg.polyline(d,l).transform({translate:[f*g*1.5-y/2,t-v/2]})),0===f&&0===u&&this.svg.polyline(d,l).transform({translate:[6*g*1.5-y/2,5*v+v/2]}),s++},H.prototype.geoSineWaves=function(){var t,r,s,a,h,l,c,f=Math.floor(i(e(this.hash,0),0,15,100,400)),u=Math.floor(i(e(this.hash,1),0,15,30,100)),p=Math.floor(i(e(this.hash,2),0,15,3,30));for(this.svg.setWidth(f),this.svg.setHeight(36*p),r=0;36>r;r++)l=e(this.hash,r),s=o(l),t=n(l),c=f/4*.7,h={fill:\"none\",stroke:t,opacity:s,\"stroke-width\":\"\"+p+\"px\"},a=\"M0 \"+u+\" C \"+c+\" 0, \"+(f/2-c)+\" 0, \"+f/2+\" \"+u+\" S \"+(f-c)+\" \"+2*u+\", \"+f+\" \"+u+\" S \"+(1.5*f-c)+\" 0, \"+1.5*f+\", \"+u,this.svg.path(a,h).transform({translate:[-f/4,p*r-1.5*u]}),this.svg.path(a,h).transform({translate:[-f/4,p*r-1.5*u+36*p]})},H.prototype.geoChevrons=function(){var t,r,s,a,l,c,f,u=i(e(this.hash,0),0,15,30,80),p=i(e(this.hash,0),0,15,30,80),g=h(u,p);for(this.svg.setWidth(6*u),this.svg.setHeight(6*p*.66),r=0,f=0;6>f;f++)for(c=0;6>c;c++)l=e(this.hash,r),s=o(l),t=n(l),a={stroke:S,\"stroke-opacity\":A,fill:t,\"fill-opacity\":s,\"stroke-width\":1},this.svg.group(a).transform({translate:[c*u,f*p*.66-p/2]}).polyline(g).end(),0===f&&this.svg.group(a).transform({translate:[c*u,6*p*.66-p/2]}).polyline(g).end(),r+=1},H.prototype.geoPlusSigns=function(){var t,r,s,a,h,c,f,u,p=i(e(this.hash,0),0,15,10,25),g=3*p,v=l(p);for(this.svg.setWidth(12*p),this.svg.setHeight(12*p),s=0,u=0;6>u;u++)for(f=0;6>f;f++)c=e(this.hash,s),a=o(c),r=n(c),t=u%2===0?0:1,h={fill:r,stroke:S,\"stroke-opacity\":A,\"fill-opacity\":a},this.svg.group(h).transform({translate:[f*g-f*p+t*p-p,u*g-u*p-g/2]}).rect(v).end(),0===f&&this.svg.group(h).transform({translate:[4*g-f*p+t*p-p,u*g-u*p-g/2]}).rect(v).end(),0===u&&this.svg.group(h).transform({translate:[f*g-f*p+t*p-p,4*g-u*p-g/2]}).rect(v).end(),0===f&&0===u&&this.svg.group(h).transform({translate:[4*g-f*p+t*p-p,4*g-u*p-g/2]}).rect(v).end(),s++},H.prototype.geoXes=function(){var t,r,s,a,h,c,f,u,p=i(e(this.hash,0),0,15,10,25),g=l(p),v=3*p*.943;for(this.svg.setWidth(3*v),this.svg.setHeight(3*v),s=0,u=0;6>u;u++)for(f=0;6>f;f++)c=e(this.hash,s),a=o(c),t=f%2===0?u*v-.5*v:u*v-.5*v+v/4,r=n(c),h={fill:r,opacity:a},this.svg.group(h).transform({translate:[f*v/2-v/2,t-u*v/2],rotate:[45,v/2,v/2]}).rect(g).end(),0===f&&this.svg.group(h).transform({translate:[6*v/2-v/2,t-u*v/2],rotate:[45,v/2,v/2]}).rect(g).end(),0===u&&(t=f%2===0?6*v-v/2:6*v-v/2+v/4,this.svg.group(h).transform({translate:[f*v/2-v/2,t-6*v/2],rotate:[45,v/2,v/2]}).rect(g).end()),5===u&&this.svg.group(h).transform({translate:[f*v/2-v/2,t-11*v/2],rotate:[45,v/2,v/2]}).rect(g).end(),0===f&&0===u&&this.svg.group(h).transform({translate:[6*v/2-v/2,t-6*v/2],rotate:[45,v/2,v/2]}).rect(g).end(),s++},H.prototype.geoOverlappingCircles=function(){var t,r,s,a,h,l,c,f=e(this.hash,0),u=i(f,0,15,25,200),p=u/2;for(this.svg.setWidth(6*p),this.svg.setHeight(6*p),r=0,c=0;6>c;c++)for(l=0;6>l;l++)h=e(this.hash,r),s=o(h),t=n(h),a={fill:t,opacity:s},this.svg.circle(l*p,c*p,p,a),0===l&&this.svg.circle(6*p,c*p,p,a),0===c&&this.svg.circle(l*p,6*p,p,a),0===l&&0===c&&this.svg.circle(6*p,6*p,p,a),r++},H.prototype.geoOctogons=function(){var t,r,s,a,h,l,f=i(e(this.hash,0),0,15,10,60),u=c(f);for(this.svg.setWidth(6*f),this.svg.setHeight(6*f),r=0,l=0;6>l;l++)for(h=0;6>h;h++)a=e(this.hash,r),s=o(a),t=n(a),this.svg.polyline(u,{fill:t,\"fill-opacity\":s,stroke:S,\"stroke-opacity\":A}).transform({translate:[h*f,l*f]}),r+=1},H.prototype.geoSquares=function(){var t,r,s,a,h,l,c=i(e(this.hash,0),0,15,10,60);for(this.svg.setWidth(6*c),this.svg.setHeight(6*c),r=0,l=0;6>l;l++)for(h=0;6>h;h++)a=e(this.hash,r),s=o(a),t=n(a),this.svg.rect(h*c,l*c,c,c,{fill:t,\"fill-opacity\":s,stroke:S,\"stroke-opacity\":A}),r+=1},H.prototype.geoConcentricCircles=function(){var t,r,s,a,h,l,c=e(this.hash,0),f=i(c,0,15,10,60),u=f/5;for(this.svg.setWidth(6*(f+u)),this.svg.setHeight(6*(f+u)),r=0,l=0;6>l;l++)for(h=0;6>h;h++)a=e(this.hash,r),s=o(a),t=n(a),this.svg.circle(h*f+h*u+(f+u)/2,l*f+l*u+(f+u)/2,f/2,{fill:\"none\",stroke:t,opacity:s,\"stroke-width\":u+\"px\"}),a=e(this.hash,39-r),s=o(a),t=n(a),this.svg.circle(h*f+h*u+(f+u)/2,l*f+l*u+(f+u)/2,f/4,{fill:t,\"fill-opacity\":s}),r+=1},H.prototype.geoOverlappingRings=function(){var t,r,s,a,h,l,c,f=e(this.hash,0),u=i(f,0,15,10,60),p=u/4;for(this.svg.setWidth(6*u),this.svg.setHeight(6*u),r=0,c=0;6>c;c++)for(l=0;6>l;l++)h=e(this.hash,r),s=o(h),t=n(h),a={fill:\"none\",stroke:t,opacity:s,\"stroke-width\":p+\"px\"},this.svg.circle(l*u,c*u,u-p/2,a),0===l&&this.svg.circle(6*u,c*u,u-p/2,a),0===c&&this.svg.circle(l*u,6*u,u-p/2,a),0===l&&0===c&&this.svg.circle(6*u,6*u,u-p/2,a),r+=1},H.prototype.geoTriangles=function(){var t,r,s,a,h,l,c,u,p=e(this.hash,0),g=i(p,0,15,15,80),v=g/2*Math.sqrt(3),y=f(g,v);for(this.svg.setWidth(3*g),this.svg.setHeight(6*v),r=0,u=0;6>u;u++)for(c=0;6>c;c++)l=e(this.hash,r),s=o(l),t=n(l),h={fill:t,\"fill-opacity\":s,stroke:S,\"stroke-opacity\":A},a=u%2===0?c%2===0?180:0:c%2!==0?180:0,this.svg.polyline(y,h).transform({translate:[c*g*.5-g/2,v*u],rotate:[a,g/2,v/2]}),0===c&&this.svg.polyline(y,h).transform({translate:[6*g*.5-g/2,v*u],rotate:[a,g/2,v/2]}),r+=1},H.prototype.geoDiamonds=function(){var t,r,s,a,h,l,c,f,p=i(e(this.hash,0),0,15,10,50),g=i(e(this.hash,1),0,15,10,50),v=u(p,g);for(this.svg.setWidth(6*p),this.svg.setHeight(3*g),s=0,f=0;6>f;f++)for(c=0;6>c;c++)l=e(this.hash,s),a=o(l),r=n(l),h={fill:r,\"fill-opacity\":a,stroke:S,\"stroke-opacity\":A},t=f%2===0?0:p/2,this.svg.polyline(v,h).transform({translate:[c*p-p/2+t,g/2*f-g/2]}),0===c&&this.svg.polyline(v,h).transform({translate:[6*p-p/2+t,g/2*f-g/2]}),0===f&&this.svg.polyline(v,h).transform({translate:[c*p-p/2+t,g/2*6-g/2]}),0===c&&0===f&&this.svg.polyline(v,h).transform({translate:[6*p-p/2+t,g/2*6-g/2]}),s+=1},H.prototype.geoNestedSquares=function(){var t,r,s,a,h,l,c,f=i(e(this.hash,0),0,15,4,12),u=7*f;for(this.svg.setWidth(6*(u+f)+6*f),this.svg.setHeight(6*(u+f)+6*f),r=0,c=0;6>c;c++)for(l=0;6>l;l++)h=e(this.hash,r),s=o(h),t=n(h),a={fill:\"none\",stroke:t,opacity:s,\"stroke-width\":f+\"px\"},this.svg.rect(l*u+l*f*2+f/2,c*u+c*f*2+f/2,u,u,a),h=e(this.hash,39-r),s=o(h),t=n(h),a={fill:\"none\",stroke:t,opacity:s,\"stroke-width\":f+\"px\"},this.svg.rect(l*u+l*f*2+f/2+2*f,c*u+c*f*2+f/2+2*f,3*f,3*f,a),r+=1},H.prototype.geoMosaicSquares=function(){var t,r,s,n=i(e(this.hash,0),0,15,15,50);for(this.svg.setWidth(8*n),this.svg.setHeight(8*n),t=0,s=0;4>s;s++)for(r=0;4>r;r++)r%2===0?s%2===0?v(this.svg,r*n*2,s*n*2,n,e(this.hash,t)):g(this.svg,r*n*2,s*n*2,n,[e(this.hash,t),e(this.hash,t+1)]):s%2===0?g(this.svg,r*n*2,s*n*2,n,[e(this.hash,t),e(this.hash,t+1)]):v(this.svg,r*n*2,s*n*2,n,e(this.hash,t)),t+=1},H.prototype.geoPlaid=function(){var t,r,s,i,a,h,l,c=0,f=0;for(r=0;36>r;)i=e(this.hash,r),c+=i+5,l=e(this.hash,r+1),s=o(l),t=n(l),a=l+5,this.svg.rect(0,c,\"100%\",a,{opacity:s,fill:t}),c+=a,r+=2;for(r=0;36>r;)i=e(this.hash,r),f+=i+5,l=e(this.hash,r+1),s=o(l),t=n(l),h=l+5,this.svg.rect(f,0,h,\"100%\",{opacity:s,fill:t}),f+=h,r+=2;this.svg.setWidth(f),this.svg.setHeight(c)},H.prototype.geoTessellation=function(){var t,r,s,a,h,l=i(e(this.hash,0),0,15,5,40),c=l*Math.sqrt(3),f=2*l,u=l/2*Math.sqrt(3),p=y(l,u),g=3*l+2*u,v=2*c+2*l;for(this.svg.setWidth(g),this.svg.setHeight(v),r=0;20>r;r++)switch(h=e(this.hash,r),s=o(h),t=n(h),a={stroke:S,\"stroke-opacity\":A,fill:t,\"fill-opacity\":s,\"stroke-width\":1},r){case 0:this.svg.rect(-l/2,-l/2,l,l,a),this.svg.rect(g-l/2,-l/2,l,l,a),this.svg.rect(-l/2,v-l/2,l,l,a),this.svg.rect(g-l/2,v-l/2,l,l,a);break;case 1:this.svg.rect(f/2+u,c/2,l,l,a);break;case 2:this.svg.rect(-l/2,v/2-l/2,l,l,a),this.svg.rect(g-l/2,v/2-l/2,l,l,a);break;case 3:this.svg.rect(f/2+u,1.5*c+l,l,l,a);break;case 4:this.svg.polyline(p,a).transform({translate:[l/2,-l/2],rotate:[0,l/2,u/2]}),this.svg.polyline(p,a).transform({translate:[l/2,v- -l/2],rotate:[0,l/2,u/2],scale:[1,-1]});break;case 5:this.svg.polyline(p,a).transform({translate:[g-l/2,-l/2],rotate:[0,l/2,u/2],scale:[-1,1]}),this.svg.polyline(p,a).transform({translate:[g-l/2,v+l/2],rotate:[0,l/2,u/2],scale:[-1,-1]});break;case 6:this.svg.polyline(p,a).transform({translate:[g/2+l/2,c/2]});break;case 7:this.svg.polyline(p,a).transform({translate:[g-g/2-l/2,c/2],scale:[-1,1]});break;case 8:this.svg.polyline(p,a).transform({translate:[g/2+l/2,v-c/2],scale:[1,-1]});break;case 9:this.svg.polyline(p,a).transform({translate:[g-g/2-l/2,v-c/2],scale:[-1,-1]});break;case 10:this.svg.polyline(p,a).transform({translate:[l/2,v/2-l/2]});break;case 11:this.svg.polyline(p,a).transform({translate:[g-l/2,v/2-l/2],scale:[-1,1]});break;case 12:this.svg.rect(0,0,l,l,a).transform({translate:[l/2,l/2],rotate:[-30,0,0]});break;case 13:this.svg.rect(0,0,l,l,a).transform({scale:[-1,1],translate:[-g+l/2,l/2],rotate:[-30,0,0]});break;case 14:this.svg.rect(0,0,l,l,a).transform({translate:[l/2,v/2-l/2-l],rotate:[30,0,l]});break;case 15:this.svg.rect(0,0,l,l,a).transform({scale:[-1,1],translate:[-g+l/2,v/2-l/2-l],rotate:[30,0,l]});break;case 16:this.svg.rect(0,0,l,l,a).transform({scale:[1,-1],translate:[l/2,-v+v/2-l/2-l],rotate:[30,0,l]});break;case 17:this.svg.rect(0,0,l,l,a).transform({scale:[-1,-1],translate:[-g+l/2,-v+v/2-l/2-l],rotate:[30,0,l]});break;case 18:this.svg.rect(0,0,l,l,a).transform({scale:[1,-1],translate:[l/2,-v+l/2],rotate:[-30,0,0]});break;case 19:this.svg.rect(0,0,l,l,a).transform({scale:[-1,-1],translate:[-g+l/2,-v+l/2],rotate:[-30,0,0]})}}}).call(this,t(\"buffer\").Buffer)},{\"./color\":2,\"./sha1\":5,\"./svg\":6,buffer:8,extend:9}],5:[function(t,r){\"use strict\";function s(){function t(){for(var t=16;80>t;t++){var r=f[t-3]^f[t-8]^f[t-14]^f[t-16];f[t]=r<<1|r>>>31}var s,e,i=o,n=a,p=h,g=l,v=c;for(t=0;80>t;t++){20>t?(s=g^n&(p^g),e=1518500249):40>t?(s=n^p^g,e=1859775393):60>t?(s=n&p|g&(n|p),e=2400959708):(s=n^p^g,e=3395469782);var y=(i<<5|i>>>27)+s+v+e+(0|f[t]);v=g,g=p,p=n<<30|n>>>2,n=i,i=y}for(o=o+i|0,a=a+n|0,h=h+p|0,l=l+g|0,c=c+v|0,u=0,t=0;16>t;t++)f[t]=0}function r(r){f[u]|=(255&r)<e;e++)r(t.charCodeAt(e))}function e(t){if(\"string\"==typeof t)return s(t);var e=t.length;g+=8*e;for(var i=0;e>i;i++)r(t[i])}function i(t){for(var r=\"\",s=28;s>=0;s-=4)r+=(t>>s&15).toString(16);return r}function n(){r(128),(u>14||14===u&&24>p)&&t(),u=14,p=24,r(0),r(0),r(g>0xffffffffff?g/1099511627776:0),r(g>4294967295?g/4294967296:0);for(var s=24;s>=0;s-=8)r(g>>s);return i(o)+i(a)+i(h)+i(l)+i(c)}var o=1732584193,a=4023233417,h=2562383102,l=271733878,c=3285377520,f=new Uint32Array(80),u=0,p=24,g=0;return{update:e,digest:n}}r.exports=function(t){if(void 0===t)return s();var r=s();return r.update(t),r.digest()}},{}],6:[function(t,r){\"use strict\";function s(){return this.width=100,this.height=100,this.svg=new i(\"svg\"),this.context=[],this.setAttributes(this.svg,{xmlns:\"http://www.w3.org/2000/svg\",width:this.width,height:this.height}),this}var e=t(\"extend\"),i=t(\"./xml\");r.exports=s,s.prototype.currentContext=function(){return this.context[this.context.length-1]||this.svg},s.prototype.end=function(){return this.context.pop(),this},s.prototype.currentNode=function(){var t=this.currentContext();return t.lastChild||t},s.prototype.transform=function(t){return this.currentNode().setAttribute(\"transform\",Object.keys(t).map(function(r){return r+\"(\"+t[r].join(\",\")+\")\"}).join(\" \")),this},s.prototype.setAttributes=function(t,r){Object.keys(r).forEach(function(s){t.setAttribute(s,r[s])})},s.prototype.setWidth=function(t){this.svg.setAttribute(\"width\",Math.floor(t))},s.prototype.setHeight=function(t){this.svg.setAttribute(\"height\",Math.floor(t))},s.prototype.toString=function(){return this.svg.toString()},s.prototype.rect=function(t,r,s,n,o){var a=this;if(Array.isArray(t))return t.forEach(function(t){a.rect.apply(a,t.concat(o))}),this;var h=new i(\"rect\");return this.currentContext().appendChild(h),this.setAttributes(h,e({x:t,y:r,width:s,height:n},o)),this},s.prototype.circle=function(t,r,s,n){var o=new i(\"circle\");return this.currentContext().appendChild(o),this.setAttributes(o,e({cx:t,cy:r,r:s},n)),this},s.prototype.path=function(t,r){var s=new i(\"path\");return this.currentContext().appendChild(s),this.setAttributes(s,e({d:t},r)),this},s.prototype.polyline=function(t,r){var s=this;if(Array.isArray(t))return t.forEach(function(t){s.polyline(t,r)}),this;var n=new i(\"polyline\");return this.currentContext().appendChild(n),this.setAttributes(n,e({points:t},r)),this},s.prototype.group=function(t){var r=new i(\"g\");return this.currentContext().appendChild(r),this.context.push(r),this.setAttributes(r,e({},t)),this}},{\"./xml\":7,extend:9}],7:[function(t,r){\"use strict\";var s=r.exports=function(t){return this instanceof s?(this.tagName=t,this.attributes=Object.create(null),this.children=[],this.lastChild=null,this):new s(t)};s.prototype.appendChild=function(t){return this.children.push(t),this.lastChild=t,this},s.prototype.setAttribute=function(t,r){return this.attributes[t]=r,this},s.prototype.toString=function(){var t=this;return[\"<\",t.tagName,Object.keys(t.attributes).map(function(r){return[\" \",r,'=\"',t.attributes[r],'\"'].join(\"\")}).join(\"\"),\">\",t.children.map(function(t){return t.toString()}).join(\"\"),\"\"].join(\"\")}},{}],8:[function(){},{}],9:[function(t,r){function s(t){if(!t||\"[object Object]\"!==i.call(t)||t.nodeType||t.setInterval)return!1;var r=e.call(t,\"constructor\"),s=e.call(t.constructor.prototype,\"isPrototypeOf\");if(t.constructor&&!r&&!s)return!1;var n;for(n in t);return void 0===n||e.call(t,n)}var e=Object.prototype.hasOwnProperty,i=Object.prototype.toString;r.exports=function n(){var t,r,e,i,o,a,h=arguments[0]||{},l=1,c=arguments.length,f=!1;for(\"boolean\"==typeof h&&(f=h,h=arguments[1]||{},l=2),\"object\"!=typeof h&&\"function\"!=typeof h&&(h={});c>l;l++)if(null!=(t=arguments[l]))for(r in t)e=h[r],i=t[r],h!==i&&(f&&i&&(s(i)||(o=Array.isArray(i)))?(o?(o=!1,a=e&&Array.isArray(e)?e:[]):a=e&&s(e)?e:{},h[r]=n(f,a,i)):void 0!==i&&(h[r]=i));return h}},{}]},{},[1])(1)});","/*!\r\n * IE10 viewport hack for Surface/desktop Windows 8 bug\r\n * Copyright 2014-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n */\r\n\r\n// See the Getting Started docs for more information:\r\n// http://getbootstrap.com/getting-started/#support-ie10-width\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n if (navigator.userAgent.match(/IEMobile\\/10\\.0/)) {\r\n var msViewportStyle = document.createElement('style')\r\n msViewportStyle.appendChild(\r\n document.createTextNode(\r\n '@-ms-viewport{width:auto!important}'\r\n )\r\n )\r\n document.querySelector('head').appendChild(msViewportStyle)\r\n }\r\n\r\n})();\r\n","/*!\r\n * jquery.okayNav.js 2.0.4 (https://github.com/VPenkov/okayNav)\r\n * Author: Vergil Penkov (http://vergilpenkov.com/)\r\n * MIT license: https://opensource.org/licenses/MIT\r\n */\r\n\r\n;\r\n(function(factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define(['jquery'], factory); // AMD\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = function(root, jQuery) { // Node/CommonJS\r\n if (jQuery === undefined) {\r\n if (typeof window !== 'undefined') {\r\n jQuery = require('jquery');\r\n } else {\r\n jQuery = require('jquery')(root);\r\n }\r\n }\r\n factory(jQuery);\r\n return jQuery;\r\n };\r\n } else {\r\n factory(jQuery); // Browser globals\r\n }\r\n}(function($) {\r\n // Defaults\r\n\r\n var okayNav = 'okayNav',\r\n defaults = {\r\n parent: '', // will call nav's parent() by default\r\n toggle_icon_class: 'okayNav__menu-toggle',\r\n toggle_icon_content: '',\r\n align_right: true, // If false, the menu and the kebab icon will be on the left\r\n swipe_enabled: true, // If true, you'll be able to swipe left/right to open the navigation\r\n threshold: 50, // Nav will auto open/close if swiped >= this many percent\r\n resize_delay: 10, // When resizing the window, okayNav can throttle its recalculations if enabled. Setting this to 50-250 will improve performance but make okayNav less accurate.\r\n beforeOpen: function() {}, // Will trigger before the nav gets opened\r\n afterOpen: function() {}, // Will trigger after the nav gets opened\r\n beforeClose: function() {}, // Will trigger before the nav gets closed\r\n afterClose: function() {}, // Will trigger after the nav gets closed\r\n itemHidden: function() {},\r\n itemDisplayed: function() {}\r\n };\r\n\r\n // Begin\r\n function Plugin(element, options) {\r\n var self = this;\r\n this.options = $.extend({}, defaults, options);\r\n\r\n self.navigation = $(element);\r\n self.document = $(document);\r\n self.window = $(window);\r\n\r\n this.options.parent == '' ? this.options.parent = self.navigation.parent() : '';\r\n\r\n self.nav_open = false; // Store the state of the hidden nav\r\n self.parent_full_width = 0;\r\n\r\n // Swipe stuff\r\n self.radCoef = 180 / Math.PI;\r\n self.sTouch = {\r\n x: 0,\r\n y: 0\r\n };\r\n self.cTouch = {\r\n x: 0,\r\n y: 0\r\n };\r\n self.sTime = 0;\r\n self.nav_position = 0;\r\n self.percent_open = 0;\r\n self.nav_moving = false;\r\n\r\n\r\n self.init();\r\n }\r\n\r\n $.extend(Plugin.prototype, {\r\n\r\n init: function() {\r\n var self = this;\r\n\r\n $('body').addClass('okayNav-loaded');\r\n\r\n // Add classes\r\n self.navigation\r\n .addClass('okayNav loaded')\r\n .children('ul').addClass('okayNav__nav--visible');\r\n\r\n // Append elements\r\n if (self.options.align_right) {\r\n self.navigation\r\n .append('
    ')\r\n .append('' + self.options.toggle_icon_content + '')\r\n } else {\r\n self.navigation\r\n .prepend('
      ')\r\n .prepend('' + self.options.toggle_icon_content + '')\r\n }\r\n\r\n // Cache new elements for further use\r\n self.nav_visible = self.navigation.children('.okayNav__nav--visible');\r\n self.nav_invisible = self.navigation.children('.okayNav__nav--invisible');\r\n self.toggle_icon = self.navigation.children('.' + self.options.toggle_icon_class);\r\n\r\n self.toggle_icon_width = self.toggle_icon.outerWidth(true);\r\n self.default_width = self.getChildrenWidth(self.navigation);\r\n self.parent_full_width = $(self.options.parent).outerWidth(true);\r\n self.last_visible_child_width = 0; // We'll define this later\r\n\r\n // Events are up once everything is set\r\n self.initEvents();\r\n\r\n // Trim white spaces between visible nav elements\r\n self.nav_visible.contents().filter(function() {\r\n return this.nodeType = Node.TEXT_NODE && /\\S/.test(this.nodeValue) === false;\r\n }).remove();\r\n\r\n if (self.options.swipe_enabled == true) self.initSwipeEvents();\r\n },\r\n\r\n initEvents: function() {\r\n var self = this;\r\n // Toggle hidden nav when hamburger icon is clicked and\r\n // Collapse hidden nav on click outside the header\r\n self.document.on('click.okayNav', function(e) {\r\n var _target = $(e.target);\r\n\r\n if (self.nav_open === true && _target.closest('.okayNav').length == 0)\r\n self.closeInvisibleNav();\r\n\r\n if (e.target === self.toggle_icon.get(0)) {\r\n e.preventDefault();\r\n self.toggleInvisibleNav();\r\n }\r\n });\r\n\r\n var optimizeResize = self._debounce(function() {\r\n self.recalcNav()\r\n }, self.options.resize_delay);\r\n self.window.on('load.okayNav resize.okayNav', optimizeResize);\r\n },\r\n\r\n initSwipeEvents: function() {\r\n var self = this;\r\n self.document\r\n .on('touchstart.okayNav', function(e) {\r\n self.nav_invisible.removeClass('transition-enabled');\r\n\r\n //Trigger only on touch with one finger\r\n if (e.originalEvent.touches.length == 1) {\r\n var touch = e.originalEvent.touches[0];\r\n if (\r\n ((touch.pageX < 25 && self.options.align_right == false) ||\r\n (touch.pageX > ($(self.options.parent).outerWidth(true) - 25) &&\r\n self.options.align_right == true)) ||\r\n self.nav_open === true) {\r\n\r\n self.sTouch.x = self.cTouch.x = touch.pageX;\r\n self.sTouch.y = self.cTouch.y = touch.pageY;\r\n self.sTime = Date.now();\r\n }\r\n\r\n }\r\n })\r\n .on('touchmove.okayNav', function(e) {\r\n var touch = e.originalEvent.touches[0];\r\n self._triggerMove(touch.pageX, touch.pageY);\r\n self.nav_moving = true;\r\n })\r\n .on('touchend.okayNav', function(e) {\r\n self.sTouch = {\r\n x: 0,\r\n y: 0\r\n };\r\n self.cTouch = {\r\n x: 0,\r\n y: 0\r\n };\r\n self.sTime = 0;\r\n\r\n //Close menu if not swiped enough\r\n if (self.percent_open > (100 - self.options.threshold)) {\r\n self.nav_position = 0;\r\n self.closeInvisibleNav();\r\n\r\n } else if (self.nav_moving == true) {\r\n self.nav_position = self.nav_invisible.width();\r\n self.openInvisibleNav();\r\n }\r\n\r\n self.nav_moving = false;\r\n\r\n self.nav_invisible.addClass('transition-enabled');\r\n });\r\n },\r\n\r\n _getDirection: function(dx) {\r\n if (this.options.align_right) {\r\n return (dx > 0) ? -1 : 1;\r\n } else {\r\n return (dx < 0) ? -1 : 1;\r\n }\r\n },\r\n\r\n _triggerMove: function(x, y) {\r\n var self = this;\r\n\r\n self.cTouch.x = x;\r\n self.cTouch.y = y;\r\n\r\n var currentTime = Date.now();\r\n var dx = (self.cTouch.x - self.sTouch.x);\r\n var dy = (self.cTouch.y - self.sTouch.y);\r\n\r\n var opposing = dy * dy;\r\n var distance = Math.sqrt(dx * dx + opposing);\r\n //Length of the opposing side of the 90deg triagle\r\n var dOpposing = Math.sqrt(opposing);\r\n\r\n var angle = Math.asin(Math.sin(dOpposing / distance)) * self.radCoef;\r\n var speed = distance / (currentTime - self.sTime);\r\n\r\n //Set new start position\r\n self.sTouch.x = x;\r\n self.sTouch.y = y;\r\n\r\n //Remove false swipes\r\n if (angle < 20) {\r\n var dir = self._getDirection(dx);\r\n\r\n var newPos = self.nav_position + dir * distance;\r\n var menuWidth = self.nav_invisible.width();\r\n var overflow = 0;\r\n\r\n\r\n if (newPos < 0) {\r\n overflow = -newPos;\r\n } else if (newPos > menuWidth) {\r\n overflow = menuWidth - newPos;\r\n }\r\n\r\n var size = menuWidth - (self.nav_position + dir * distance + overflow);\r\n var threshold = (size / menuWidth) * 100;\r\n\r\n //Set new position and threshold\r\n self.nav_position += dir * distance + overflow;\r\n self.percent_open = threshold;\r\n\r\n // self.nav_invisible.css('transform', 'translateX(' + (self.options.align_right ? 1 : -1) * threshold + '%)');\r\n }\r\n\r\n },\r\n\r\n /*\r\n * A few methods to allow working with elements\r\n */\r\n getParent: function() {\r\n return this.options.parent;\r\n },\r\n\r\n getVisibleNav: function() { // Visible navigation\r\n return this.nav_visible;\r\n },\r\n\r\n getInvisibleNav: function() { // Hidden behind the kebab icon\r\n return this.nav_invisible;\r\n },\r\n\r\n getNavToggleIcon: function() { // Kebab icon\r\n return this.toggle_icon;\r\n },\r\n\r\n /*\r\n * Operations\r\n */\r\n _debounce: function(func, wait, immediate) {\r\n var timeout;\r\n return function() {\r\n var context = this,\r\n args = arguments;\r\n var later = function() {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n },\r\n\r\n openInvisibleNav: function() {\r\n var self = this;\r\n\r\n !self.options.enable_swipe ? self.options.beforeOpen.call() : '';\r\n\r\n self.toggle_icon.addClass('icon--active');\r\n self.nav_invisible.addClass('nav-open');\r\n self.nav_open = true;\r\n // self.nav_invisible.css({\r\n // '-webkit-transform': 'translateX(0%)',\r\n // 'transform': 'translateX(0%)'\r\n // });\r\n\r\n self.options.afterOpen.call();\r\n },\r\n\r\n closeInvisibleNav: function() {\r\n var self = this;\r\n !self.options.enable_swipe ? self.options.beforeClose.call() : '';\r\n\r\n self.toggle_icon.removeClass('icon--active');\r\n self.nav_invisible.removeClass('nav-open');\r\n\r\n // if (self.options.align_right) {\r\n // self.nav_invisible.css({\r\n // '-webkit-transform': 'translateX(100%)',\r\n // 'transform': 'translateX(100%)'\r\n // });\r\n // } else {\r\n // self.nav_invisible.css({\r\n // '-webkit-transform': 'translateX(-100%)',\r\n // 'transform': 'translateX(-100%)'\r\n // });\r\n // }\r\n self.nav_open = false;\r\n\r\n self.options.afterClose.call();\r\n },\r\n\r\n toggleInvisibleNav: function() {\r\n var self = this;\r\n if (!self.nav_open) {\r\n self.openInvisibleNav();\r\n } else {\r\n self.closeInvisibleNav();\r\n }\r\n },\r\n\r\n\r\n /*\r\n * Math stuff\r\n */\r\n getChildrenWidth: function(el) {\r\n var children_width = 0;\r\n var children = $(el).children();\r\n for (var i = 0; i < children.length; i++) {\r\n children_width += $(children[i]).outerWidth(true);\r\n };\r\n\r\n return children_width;\r\n },\r\n\r\n getVisibleItemCount: function() {\r\n return $('li', this.nav_visible).length;\r\n },\r\n getHiddenItemCount: function() {\r\n return $('li', this.nav_invisible).length;\r\n },\r\n\r\n recalcNav: function() {\r\n var self = this;\r\n var wrapper_width = $(self.options.parent).outerWidth(true),\r\n space_taken = self.getChildrenWidth(self.options.parent),\r\n nav_full_width = self.navigation.outerWidth(true),\r\n visible_nav_items = self.getVisibleItemCount(),\r\n collapse_width = self.nav_visible.outerWidth(true) + self.toggle_icon_width,\r\n expand_width = space_taken + self.last_visible_child_width + self.toggle_icon_width,\r\n expandAll_width = space_taken - nav_full_width + self.default_width;\r\n\r\n if (wrapper_width > expandAll_width) {\r\n self._expandAllItems();\r\n self.toggle_icon.addClass('okay-invisible');\r\n return;\r\n }\r\n\r\n if (visible_nav_items > 0 &&\r\n nav_full_width <= collapse_width &&\r\n wrapper_width <= expand_width) {\r\n self._collapseNavItem();\r\n }\r\n\r\n if (wrapper_width > expand_width + self.toggle_icon_width + 15) {\r\n self._expandNavItem();\r\n }\r\n\r\n\r\n // Hide the kebab icon if no items are hidden\r\n self.getHiddenItemCount() == 0 ?\r\n self.toggle_icon.addClass('okay-invisible') :\r\n self.toggle_icon.removeClass('okay-invisible');\r\n },\r\n\r\n _collapseNavItem: function() {\r\n var self = this;\r\n var $last_child = $('li:last-child', self.nav_visible);\r\n self.last_visible_child_width = $last_child.outerWidth(true);\r\n self.document.trigger('okayNav:collapseItem', $last_child);\r\n $last_child.detach().prependTo(self.nav_invisible);\r\n self.options.itemHidden.call();\r\n // All nav items are visible by default\r\n // so we only need recursion when collapsing\r\n\r\n self.recalcNav();\r\n },\r\n\r\n _expandNavItem: function() {\r\n var self = this;\r\n var $first = $('li:first-child', self.nav_invisible);\r\n self.document.trigger('okayNav:expandItem', $first);\r\n $first.detach().appendTo(self.nav_visible);\r\n self.options.itemDisplayed.call();\r\n },\r\n\r\n _expandAllItems: function() {\r\n var self = this;\r\n $('li', self.nav_invisible).detach().appendTo(self.nav_visible);\r\n self.options.itemDisplayed.call();\r\n },\r\n\r\n _collapseAllItems: function() {\r\n var self = this;\r\n $('li', self.nav_visible).detach().appendTo(self.nav_invisible);\r\n self.options.itemHidden.call();\r\n },\r\n\r\n destroy: function() {\r\n var self = this;\r\n $('li', self.nav_invisible).appendTo(self.nav_visible);\r\n self.nav_invisible.remove();\r\n self.nav_visible.removeClass('okayNav__nav--visible');\r\n self.toggle_icon.remove();\r\n\r\n self.document.unbind('.okayNav');\r\n self.window.unbind('.okayNav');\r\n }\r\n\r\n });\r\n\r\n // Plugin wrapper\r\n $.fn[okayNav] = function(options) {\r\n var args = arguments;\r\n\r\n if (options === undefined || typeof options === 'object') {\r\n return this.each(function() {\r\n if (!$.data(this, 'plugin_' + okayNav)) {\r\n $.data(this, 'plugin_' + okayNav, new Plugin(this, options));\r\n }\r\n });\r\n\r\n } else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {\r\n\r\n var returns;\r\n this.each(function() {\r\n var instance = $.data(this, 'plugin_' + okayNav);\r\n if (instance instanceof Plugin && typeof instance[options] === 'function') {\r\n returns = instance[options].apply(instance, Array.prototype.slice.call(args, 1));\r\n }\r\n\r\n if (options === 'destroy') {\r\n $.data(this, 'plugin_' + okayNav, null);\r\n }\r\n });\r\n\r\n return returns !== undefined ? returns : this;\r\n }\r\n };\r\n}));\r\n","!function(r){\"use strict\";function t(t,e,n,o){function i(r,t){return r-=o,t-=o,!(0>r||r>=u||0>t||t>=u)&&a.isDark(r,t)}var a=r(n,e);a.addData(t),a.make(),o=o||0;var u=a.getModuleCount(),f=a.getModuleCount()+2*o,c=function(r,t,e,n){var o=this.isDark,i=1/f;this.isDark=function(a,u){var f=u*i,c=a*i,s=f+i,l=c+i;return o(a,u)&&(r>s||f>e||t>l||c>n)}};this.text=t,this.level=e,this.version=n,this.moduleCount=f,this.isDark=i,this.addBlank=c}function e(r,e,n,o,i){n=Math.max(1,n||1),o=Math.min(40,o||40);for(var a=n;o>=a;a+=1)try{return new t(r,e,a,i)}catch(r){}}function n(r,t,e){var n=e.size,o=\"bold \"+e.mSize*n+\"px \"+e.fontname,i=p(\"\")[0].getContext(\"2d\");i.font=o;var a=i.measureText(e.label).width,u=e.mSize,f=a/n,c=(1-f)*e.mPosX,s=(1-u)*e.mPosY,l=c+f,h=s+u,d=.01;1===e.mode?r.addBlank(0,s-d,n,h+d):r.addBlank(c-d,s-d,l+d,h+d),t.fillStyle=e.fontcolor,t.font=o,t.fillText(e.label,c*n,s*n+.75*e.mSize*n)}function o(r,t,e){var n=e.size,o=e.image.naturalWidth||1,i=e.image.naturalHeight||1,a=e.mSize,u=a*o/i,f=(1-u)*e.mPosX,c=(1-a)*e.mPosY,s=f+u,l=c+a,h=.01;3===e.mode?r.addBlank(0,c-h,n,l+h):r.addBlank(f-h,c-h,s+h,l+h),t.drawImage(e.image,f*n,c*n,u*n,a*n)}function i(r,t,e){p(e.background).is(\"img\")?t.drawImage(e.background,0,0,e.size,e.size):e.background&&(t.fillStyle=e.background,t.fillRect(e.left,e.top,e.size,e.size));var i=e.mode;1===i||2===i?n(r,t,e):(3===i||4===i)&&o(r,t,e)}function a(r,t,e,n,o,i,a,u){r.isDark(a,u)&&t.rect(n,o,i,i)}function u(r,t,e,n,o,i,a,u,f,c){a?r.moveTo(t+i,e):r.moveTo(t,e),u?(r.lineTo(n-i,e),r.arcTo(n,e,n,o,i)):r.lineTo(n,e),f?(r.lineTo(n,o-i),r.arcTo(n,o,t,o,i)):r.lineTo(n,o),c?(r.lineTo(t+i,o),r.arcTo(t,o,t,e,i)):r.lineTo(t,o),a?(r.lineTo(t,e+i),r.arcTo(t,e,n,e,i)):r.lineTo(t,e)}function f(r,t,e,n,o,i,a,u,f,c){a&&(r.moveTo(t+i,e),r.lineTo(t,e),r.lineTo(t,e+i),r.arcTo(t,e,t+i,e,i)),u&&(r.moveTo(n-i,e),r.lineTo(n,e),r.lineTo(n,e+i),r.arcTo(n,e,n-i,e,i)),f&&(r.moveTo(n-i,o),r.lineTo(n,o),r.lineTo(n,o-i),r.arcTo(n,o,n-i,o,i)),c&&(r.moveTo(t+i,o),r.lineTo(t,o),r.lineTo(t,o-i),r.arcTo(t,o,t+i,o,i))}function c(r,t,e,n,o,i,a,c){var s=r.isDark,l=n+i,h=o+i,d=e.radius*i,g=a-1,v=a+1,p=c-1,w=c+1,m=s(a,c),T=s(g,p),y=s(g,c),E=s(g,w),A=s(a,w),B=s(v,w),k=s(v,c),b=s(v,p),C=s(a,p);m?u(t,n,o,l,h,d,!y&&!C,!y&&!A,!k&&!A,!k&&!C):f(t,n,o,l,h,d,y&&C&&T,y&&A&&E,k&&A&&B,k&&C&&b)}function s(r,t,e){var n,o,i=r.moduleCount,u=e.size/i,f=a;for(m&&e.radius>0&&e.radius<=.5&&(f=c),t.beginPath(),n=0;i>n;n+=1)for(o=0;i>o;o+=1){var s=e.left+o*u,l=e.top+n*u,h=u;f(r,t,e,s,l,h,n,o)}if(p(e.fill).is(\"img\")){t.strokeStyle=\"rgba(0,0,0,0.5)\",t.lineWidth=2,t.stroke();var d=t.globalCompositeOperation;t.globalCompositeOperation=\"destination-out\",t.fill(),t.globalCompositeOperation=d,t.clip(),t.drawImage(e.fill,0,0,e.size,e.size),t.restore()}else t.fillStyle=e.fill,t.fill()}function l(r,t){var n=e(t.text,t.ecLevel,t.minVersion,t.maxVersion,t.quiet);if(!n)return null;var o=p(r).data(\"qrcode\",n),a=o[0].getContext(\"2d\");return i(n,a,t),s(n,a,t),o}function h(r){var t=p(\"\").attr(\"width\",r.size).attr(\"height\",r.size);return l(t,r)}function d(r){return p(\"\").attr(\"src\",h(r)[0].toDataURL(\"image/png\"))}function g(r){var t=e(r.text,r.ecLevel,r.minVersion,r.maxVersion,r.quiet);if(!t)return null;var n,o,i=r.size,a=r.background,u=Math.floor,f=t.moduleCount,c=u(i/f),s=u(.5*(i-c*f)),l={position:\"relative\",left:0,top:0,padding:0,margin:0,width:i,height:i},h={position:\"absolute\",padding:0,margin:0,width:c,height:c,\"background-color\":r.fill},d=p(\"
      \").data(\"qrcode\",t).css(l);for(a&&d.css(\"background-color\",a),n=0;f>n;n+=1)for(o=0;f>o;o+=1)t.isDark(n,o)&&p(\"
      \").css(h).css({left:s+o*c,top:s+n*c}).appendTo(d);return d}function v(r){return w&&\"canvas\"===r.render?h(r):w&&\"image\"===r.render?d(r):g(r)}var p=jQuery,w=function(){var r=document.createElement(\"canvas\");return Boolean(r.getContext&&r.getContext(\"2d\"))}(),m=\"[object Opera]\"!==Object.prototype.toString.call(window.opera),T={render:\"canvas\",minVersion:1,maxVersion:40,ecLevel:\"L\",left:0,top:0,size:200,fill:\"#000\",background:null,text:\"no text\",radius:0,quiet:0,mode:0,mSize:.1,mPosX:.5,mPosY:.5,label:\"no label\",fontname:\"sans\",fontcolor:\"#000\",image:null};p.fn.qrcode=function(r){var t=p.extend({},T,r);return this.each(function(){\"canvas\"===this.nodeName.toLowerCase()?l(this,t):p(this).append(v(t))})}}(function(){var r=function(){function r(t,e){if(\"undefined\"==typeof t.length)throw new Error(t.length+\"/\"+e);var n=function(){for(var r=0;re;e+=1){t[e]=new Array(r);for(var n=0;r>n;n+=1)t[e][n]=null}return t}(d),T(0,0),T(d-7,0),T(0,d-7),A(),E(),k(r,t),s>=7&&B(r),null==v&&(v=M(s,l,p)),b(v,t)},T=function(r,t){for(var e=-1;7>=e;e+=1)if(!(-1>=r+e||r+e>=d))for(var n=-1;7>=n;n+=1)-1>=t+n||t+n>=d||(e>=0&&6>=e&&(0==n||6==n)||n>=0&&6>=n&&(0==e||6==e)||e>=2&&4>=e&&n>=2&&4>=n?h[r+e][t+n]=!0:h[r+e][t+n]=!1)},y=function(){for(var r=0,t=0,e=0;8>e;e+=1){m(!0,e);var n=i.getLostPoint(w);(0==e||r>n)&&(r=n,t=e)}return t},E=function(){for(var r=8;d-8>r;r+=1)null==h[r][6]&&(h[r][6]=r%2==0);for(var t=8;d-8>t;t+=1)null==h[6][t]&&(h[6][t]=t%2==0)},A=function(){for(var r=i.getPatternPosition(s),t=0;t=a;a+=1)for(var u=-2;2>=u;u+=1)-2==a||2==a||-2==u||2==u||0==a&&0==u?h[n+a][o+u]=!0:h[n+a][o+u]=!1}},B=function(r){for(var t=i.getBCHTypeNumber(s),e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);h[Math.floor(e/3)][e%3+d-8-3]=n}for(var e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);h[e%3+d-8-3][Math.floor(e/3)]=n}},k=function(r,t){for(var e=l<<3|t,n=i.getBCHTypeInfo(e),o=0;15>o;o+=1){var a=!r&&1==(n>>o&1);6>o?h[o][8]=a:8>o?h[o+1][8]=a:h[d-15+o][8]=a}for(var o=0;15>o;o+=1){var a=!r&&1==(n>>o&1);8>o?h[8][d-o-1]=a:9>o?h[8][15-o-1+1]=a:h[8][15-o-1]=a}h[d-8][8]=!r},b=function(r,t){for(var e=-1,n=d-1,o=7,a=0,u=i.getMaskFunction(t),f=d-1;f>0;f-=2)for(6==f&&(f-=1);;){for(var c=0;2>c;c+=1)if(null==h[n][f-c]){var s=!1;a>>o&1));var l=u(n,f-c);l&&(s=!s),h[n][f-c]=s,o-=1,-1==o&&(a+=1,o=7)}if(n+=e,0>n||n>=d){n-=e,e=-e;break}}},C=function(t,e){for(var n=0,o=0,a=0,u=new Array(e.length),f=new Array(e.length),c=0;c=0?v.getAt(p):0}}for(var w=0,h=0;hh;h+=1)for(var c=0;ch;h+=1)for(var c=0;c8*h)throw new Error(\"code length overflow. (\"+c.getLengthInBits()+\">\"+8*h+\")\");for(c.getLengthInBits()+4<=8*h&&c.put(0,4);c.getLengthInBits()%8!=0;)c.putBit(!1);for(;!(c.getLengthInBits()>=8*h)&&(c.put(o,8),!(c.getLengthInBits()>=8*h));)c.put(a,8);return C(c,n)};return w.addData=function(r){var t=c(r);p.push(t),v=null},w.isDark=function(r,t){if(0>r||r>=d||0>t||t>=d)throw new Error(r+\",\"+t);return h[r][t]},w.getModuleCount=function(){return d},w.make=function(){m(!1,y())},w.createTableTag=function(r,t){r=r||2,t=\"undefined\"==typeof t?4*r:t;var e=\"\";e+='\";for(var n=0;n\";for(var o=0;o';e+=\"\"}return e+=\"\",e+=\"
      \"},w.createImgTag=function(r,t){r=r||2,t=\"undefined\"==typeof t?4*r:t;var e=w.getModuleCount()*r+2*t,n=t,o=e-t;return g(e,e,function(t,e){if(t>=n&&o>t&&e>=n&&o>e){var i=Math.floor((t-n)/r),a=Math.floor((e-n)/r);return w.isDark(a,i)?0:1}return 1})},w};t.stringToBytes=function(r){for(var t=new Array,e=0;ei)t.push(i);else{var a=e[r.charAt(o)];\"number\"==typeof a?(255&a)==a?t.push(a):(t.push(a>>>8),t.push(255&a)):t.push(n)}}return t}};var e={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},n={L:1,M:0,Q:3,H:2},o={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},i=function(){var t=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=1335,i=7973,u=21522,f={},c=function(r){for(var t=0;0!=r;)t+=1,r>>>=1;return t};return f.getBCHTypeInfo=function(r){for(var t=r<<10;c(t)-c(n)>=0;)t^=n<=0;)t^=i<n;n+=1)e=e.multiply(r([1,a.gexp(n)],0));return e},f.getLengthInBits=function(r,t){if(t>=1&&10>t)switch(r){case e.MODE_NUMBER:return 10;case e.MODE_ALPHA_NUM:return 9;case e.MODE_8BIT_BYTE:return 8;case e.MODE_KANJI:return 8;default:throw new Error(\"mode:\"+r)}else if(27>t)switch(r){case e.MODE_NUMBER:return 12;case e.MODE_ALPHA_NUM:return 11;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 10;default:throw new Error(\"mode:\"+r)}else{if(!(41>t))throw new Error(\"type:\"+t);switch(r){case e.MODE_NUMBER:return 14;case e.MODE_ALPHA_NUM:return 13;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 12;default:throw new Error(\"mode:\"+r)}}},f.getLostPoint=function(r){for(var t=r.getModuleCount(),e=0,n=0;t>n;n+=1)for(var o=0;t>o;o+=1){for(var i=0,a=r.isDark(n,o),u=-1;1>=u;u+=1)if(!(0>n+u||n+u>=t))for(var f=-1;1>=f;f+=1)0>o+f||o+f>=t||(0!=u||0!=f)&&a==r.isDark(n+u,o+f)&&(i+=1);i>5&&(e+=3+i-5)}for(var n=0;t-1>n;n+=1)for(var o=0;t-1>o;o+=1){var c=0;r.isDark(n,o)&&(c+=1),r.isDark(n+1,o)&&(c+=1),r.isDark(n,o+1)&&(c+=1),r.isDark(n+1,o+1)&&(c+=1),(0==c||4==c)&&(e+=3)}for(var n=0;t>n;n+=1)for(var o=0;t-6>o;o+=1)r.isDark(n,o)&&!r.isDark(n,o+1)&&r.isDark(n,o+2)&&r.isDark(n,o+3)&&r.isDark(n,o+4)&&!r.isDark(n,o+5)&&r.isDark(n,o+6)&&(e+=40);for(var o=0;t>o;o+=1)for(var n=0;t-6>n;n+=1)r.isDark(n,o)&&!r.isDark(n+1,o)&&r.isDark(n+2,o)&&r.isDark(n+3,o)&&r.isDark(n+4,o)&&!r.isDark(n+5,o)&&r.isDark(n+6,o)&&(e+=40);for(var s=0,o=0;t>o;o+=1)for(var n=0;t>n;n+=1)r.isDark(n,o)&&(s+=1);var l=Math.abs(100*s/t/t-50)/5;return e+=10*l},f}(),a=function(){for(var r=new Array(256),t=new Array(256),e=0;8>e;e+=1)r[e]=1<e;e+=1)r[e]=r[e-4]^r[e-5]^r[e-6]^r[e-8];for(var e=0;255>e;e+=1)t[r[e]]=e;var n={};return n.glog=function(r){if(1>r)throw new Error(\"glog(\"+r+\")\");return t[r]},n.gexp=function(t){for(;0>t;)t+=255;for(;t>=256;)t-=255;return r[t]},n}(),u=function(){var r=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],t=function(r,t){var e={};return e.totalCount=r,e.dataCount=t,e},e={},o=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}};return e.getRSBlocks=function(r,e){var n=o(r,e);if(\"undefined\"==typeof n)throw new Error(\"bad rs block @ typeNumber:\"+r+\"/errorCorrectLevel:\"+e);for(var i=n.length/3,a=new Array,u=0;i>u;u+=1)for(var f=n[3*u+0],c=n[3*u+1],s=n[3*u+2],l=0;f>l;l+=1)a.push(t(c,s));return a},e}(),f=function(){var r=new Array,t=0,e={};return e.getBuffer=function(){return r},e.getAt=function(t){var e=Math.floor(t/8);return 1==(r[e]>>>7-t%8&1)},e.put=function(r,t){for(var n=0;t>n;n+=1)e.putBit(1==(r>>>t-n-1&1))},e.getLengthInBits=function(){return t},e.putBit=function(e){var n=Math.floor(t/8);r.length<=n&&r.push(0),e&&(r[n]|=128>>>t%8),t+=1},e},c=function(r){var n=e.MODE_8BIT_BYTE,o=t.stringToBytes(r),i={};return i.getMode=function(){return n},i.getLength=function(r){return o.length},i.write=function(r){for(var t=0;t>>8)},t.writeBytes=function(r,e,n){e=e||0,n=n||r.length;for(var o=0;n>o;o+=1)t.writeByte(r[o+e])},t.writeString=function(r){for(var e=0;e0&&(t+=\",\"),t+=r[e];return t+=\"]\"},t},l=function(){var r=0,t=0,e=0,n=\"\",o={},i=function(r){n+=String.fromCharCode(a(63&r))},a=function(r){if(0>r);else{if(26>r)return 65+r;if(52>r)return 97+(r-26);if(62>r)return 48+(r-52);if(62==r)return 43;if(63==r)return 47}throw new Error(\"n:\"+r)};return o.writeByte=function(n){for(r=r<<8|255&n,t+=8,e+=1;t>=6;)i(r>>>t-6),t-=6},o.flush=function(){if(t>0&&(i(r<<6-t),r=0,t=0),e%3!=0)for(var o=3-e%3,a=0;o>a;a+=1)n+=\"=\"},o.toString=function(){return n},o},h=function(r){var t=r,e=0,n=0,o=0,i={};i.read=function(){for(;8>o;){if(e>=t.length){if(0==o)return-1;throw new Error(\"unexpected end of file./\"+o)}var r=t.charAt(e);if(e+=1,\"=\"==r)return o=0,-1;r.match(/^\\s$/)||(n=n<<6|a(r.charCodeAt(0)),o+=6)}var i=n>>>o-8&255;return o-=8,i};var a=function(r){if(r>=65&&90>=r)return r-65;if(r>=97&&122>=r)return r-97+26;if(r>=48&&57>=r)return r-48+52;if(43==r)return 62;if(47==r)return 63;throw new Error(\"c:\"+r)};return i},d=function(r,t){var e=r,n=t,o=new Array(r*t),i={};i.setPixel=function(r,t,n){o[t*e+r]=n},i.write=function(r){r.writeString(\"GIF87a\"),r.writeShort(e),r.writeShort(n),r.writeByte(128),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(255),r.writeByte(255),r.writeByte(255),r.writeString(\",\"),r.writeShort(0),r.writeShort(0),r.writeShort(e),r.writeShort(n),r.writeByte(0);var t=2,o=u(t);r.writeByte(t);for(var i=0;o.length-i>255;)r.writeByte(255),r.writeBytes(o,i,255),i+=255;r.writeByte(o.length-i),r.writeBytes(o,i,o.length-i),r.writeByte(0),r.writeString(\";\")};var a=function(r){var t=r,e=0,n=0,o={};return o.write=function(r,o){if(r>>>o!=0)throw new Error(\"length over\");for(;e+o>=8;)t.writeByte(255&(r<>>=8-e,n=0,e=0;n|=r<0&&t.writeByte(n)},o},u=function(r){for(var t=1<u;u+=1)i.add(String.fromCharCode(u));i.add(String.fromCharCode(t)),i.add(String.fromCharCode(e));var c=s(),l=a(c);l.write(t,n);var h=0,d=String.fromCharCode(o[h]);for(h+=1;hi;i+=1)for(var a=0;r>a;a+=1)o.setPixel(a,i,e(a,i));var u=s();o.write(u);for(var f=l(),c=u.toByteArray(),h=0;h\"};return t}();return function(r){\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports&&(module.exports=r())}(function(){return r}),!function(r){r.stringToBytes=function(r){function t(r){for(var t=[],e=0;en?t.push(n):2048>n?t.push(192|n>>6,128|63&n):55296>n||n>=57344?t.push(224|n>>12,128|n>>6&63,128|63&n):(e++,n=65536+((1023&n)<<10|1023&r.charCodeAt(e)),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return t}return t(r)}}(r),r}()),function(r){r.fn.share=function(t){function e(t,e){var n=o(e);\"prepend\"==e.mode?n.reverse():n,n.length&&r.each(n,function(n,o){var a=i(o,e),u=e.initialized?t.find(\".icon-\"+o):r('');return!u.length||(u.prop(\"aria-label\",\"分享到 \"+h[o]),u.prop(\"href\",a),\"wechat\"===o?u.prop(\"tabindex\",-1):u.prop(\"target\",\"_blank\"),void(e.initialized||(\"prepend\"==e.mode?t.prepend(u):t.append(u))))})}function n(r,t){var e=r.find(\"a.icon-wechat\");e.length&&(e.append('

      '+t.wechatQrcodeTitle+'

      '+t.wechatQrcodeHelper+\"
      \"),e.find(\".qrcode\").qrcode({render:\"image\",size:t.wechatQrcodeSize,text:t.url}),e.offset().top<100&&e.find(\".wechat-qrcode\").addClass(\"bottom\"))}function o(t){0===t.mobileSites.length&&t.sites.length&&(t.mobileSites=t.sites);var e=(u()?t.mobileSites:t.sites.length?t.sites:[]).slice(0),n=t.disabled;return\"string\"==typeof e&&(e=e.split(/\\s*,\\s*/)),\"string\"==typeof n&&(n=n.split(/\\s*,\\s*/)),a()&&n.push(\"wechat\"),n.length&&r.each(n,function(t,n){var o=r.inArray(n,e);o!==-1&&e.splice(o,1)}),e}function i(r,t){var e=l[r];t.summary=t.description;for(var n in t)if(t.hasOwnProperty(n)){var o=r+n.replace(/^[a-z]/,function(r){return r.toUpperCase()}),i=encodeURIComponent(void 0===t[o]?t[n]:t[o]);e=e.replace(new RegExp(\"{{\"+n.toUpperCase()+\"}}\",\"g\"),i)}return e}function a(){return/MicroMessenger/i.test(navigator.userAgent)}function u(){return r(window).width()<=768}var f=r(document.head),c={url:location.href,site_url:location.origin,source:f.find(\"[name=site], [name=Site]\").attr(\"content\")||document.title,title:f.find(\"[name=title], [name=Title]\").attr(\"content\")||document.title,description:f.find(\"[name=description], [name=Description]\").attr(\"content\")||\"\",image:r(\"img:first\").prop(\"src\")||\"\",imageSelector:void 0,weiboKey:\"\",wechatQrcodeTitle:\"微信扫一扫:分享\",wechatQrcodeHelper:\"

      微信里点“发现”,扫一下

      二维码便可将本文分享至朋友圈。

      \",wechatQrcodeSize:100,mobileSites:[],sites:[\"weibo\",\"qq\",\"wechat\",\"tencent\",\"douban\",\"qzone\",\"linkedin\",\"diandian\",\"facebook\",\"twitter\",\"google\"],disabled:[],initialized:!1},s=r.extend({},c,t),l={qzone:\"http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={{URL}}&title={{TITLE}}&desc={{DESCRIPTION}}&summary={{SUMMARY}}&site={{SOURCE}}\",qq:\"http://connect.qq.com/widget/shareqq/index.html?url={{URL}}&title={{TITLE}}&source={{SOURCE}}&desc={{DESCRIPTION}}&pics={{IMAGE}}\",tencent:\"http://share.v.t.qq.com/index.php?c=share&a=index&title={{TITLE}}&url={{URL}}&pic={{IMAGE}}\",weibo:\"http://service.weibo.com/share/share.php?url={{URL}}&title={{TITLE}}&pic={{IMAGE}}&appkey={{WEIBOKEY}}\",wechat:\"javascript:;\",douban:\"http://shuo.douban.com/!service/share?href={{URL}}&name={{TITLE}}&text={{DESCRIPTION}}&image={{IMAGE}}&starid=0&aid=0&style=11\",diandian:\"http://www.diandian.com/share?lo={{URL}}&ti={{TITLE}}&type=link\",linkedin:\"http://www.linkedin.com/shareArticle?mini=true&ro=true&title={{TITLE}}&url={{URL}}&summary={{SUMMARY}}&source={{SOURCE}}&armin=armin\",facebook:\"https://www.facebook.com/sharer/sharer.php?u={{URL}}&title={{TITLE}}&description={{DESCRIPTION}}&caption={{SUBHEAD}}&link={{URL}}&picture={{IMAGE}}\",twitter:\"https://twitter.com/intent/tweet?text={{TITLE}}&url={{URL}}&via={{SITE_URL}}\",google:\"https://plus.google.com/share?url={{URL}}\"},h={qzone:\"QQ空间\",qq:\"QQ\",tencent:\"腾讯微博\",weibo:\"微博\",wechat:\"微信\",douban:\"豆瓣\",diandian:\"点点\",linkedin:\"LinkedIn\",facebook:\"Facebook\",twitter:\"Twitter\",google:\"Google\"};this.each(function(){if(r(this).data(\"initialized\"))return!0;var t=r.extend({},s,r(this).data());t.imageSelector&&(t.image=r(t.imageSelector).map(function(){return r(this).prop(\"src\")}).get().join(\"||\"));var o=r(this).addClass(\"share-component social-share\");e(o,t),n(o,t),r(this).data(\"initialized\",!0)})},r(function(){r(\".share-component,.social-share\").share()})}(jQuery);","/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)\r\n * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\r\n * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\r\n *\r\n * Version: 1.3.8\r\n *\r\n */\r\n(function(e){e.fn.extend({slimScroll:function(f){var a=e.extend({width:\"auto\",height:\"250px\",size:\"7px\",color:\"#000\",position:\"right\",distance:\"1px\",start:\"top\",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:\"#333\",railOpacity:.2,railDraggable:!0,railClass:\"slimScrollRail\",barClass:\"slimScrollBar\",wrapperClass:\"slimScrollDiv\",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:\"7px\",railBorderRadius:\"7px\"},f);this.each(function(){function v(d){if(r){d=d||window.event;\r\nvar c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);e(d.target||d.srcTarget||d.srcElement).closest(\".\"+a.wrapperClass).is(b.parent())&&n(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function n(d,g,e){k=!1;var f=b.outerHeight()-c.outerHeight();g&&(g=parseInt(c.css(\"top\"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),f),g=0=b.outerHeight()?k=!0:(c.stop(!0,\r\n!0).fadeIn(\"fast\"),a.railVisible&&m.stop(!0,!0).fadeIn(\"fast\"))}function p(){a.alwaysVisible||(B=setTimeout(function(){a.disableFadeOut&&r||y||z||(c.fadeOut(\"slow\"),m.fadeOut(\"slow\"))},1E3))}var r,y,z,B,A,u,l,C,k=!1,b=e(this);if(b.parent().hasClass(a.wrapperClass)){var q=b.scrollTop(),c=b.siblings(\".\"+a.barClass),m=b.siblings(\".\"+a.railClass);x();if(e.isPlainObject(f)){if(\"height\"in f&&\"auto\"==f.height){b.parent().css(\"height\",\"auto\");b.css(\"height\",\"auto\");var h=b.parent().parent().height();b.parent().css(\"height\",\r\nh);b.css(\"height\",h)}else\"height\"in f&&(h=f.height,b.parent().css(\"height\",h),b.css(\"height\",h));if(\"scrollTo\"in f)q=parseInt(a.scrollTo);else if(\"scrollBy\"in f)q+=parseInt(a.scrollBy);else if(\"destroy\"in f){c.remove();m.remove();b.unwrap();return}n(q,!1,!0)}}else if(!(e.isPlainObject(f)&&\"destroy\"in f)){a.height=\"auto\"==a.height?b.parent().height():a.height;q=e(\"
      \").addClass(a.wrapperClass).css({position:\"relative\",overflow:\"hidden\",width:a.width,height:a.height});b.css({overflow:\"hidden\",\r\nwidth:a.width,height:a.height});var m=e(\"
      \").addClass(a.railClass).css({width:a.size,height:\"100%\",position:\"absolute\",top:0,display:a.alwaysVisible&&a.railVisible?\"block\":\"none\",\"border-radius\":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=e(\"
      \").addClass(a.barClass).css({background:a.color,width:a.size,position:\"absolute\",top:0,opacity:a.opacity,display:a.alwaysVisible?\"block\":\"none\",\"border-radius\":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,\r\nWebkitBorderRadius:a.borderRadius,zIndex:99}),h=\"right\"==a.position?{right:a.distance}:{left:a.distance};m.css(h);c.css(h);b.wrap(q);b.parent().append(c);b.parent().append(m);p();a.railDraggable&&c.bind(\"mousedown\",function(a){var b=e(document);z=!0;t=parseFloat(c.css(\"top\"));pageY=a.pageY;b.bind(\"mousemove.slimscroll\",function(a){currTop=t+a.pageY-pageY;c.css(\"top\",currTop);n(0,c.position().top,!1)});b.bind(\"mouseup.slimscroll\",function(a){z=!1;p();b.unbind(\".slimscroll\")});return!1}).bind(\"selectstart.slimscroll\",\r\nfunction(a){a.stopPropagation();a.preventDefault();return!1});m.hover(function(){w()},function(){p()});c.hover(function(){y=!0},function(){y=!1});b.hover(function(){r=!0;w();p()},function(){r=!1;p()});b.bind(\"touchstart\",function(a,b){a.originalEvent.touches.length&&(A=a.originalEvent.touches[0].pageY)});b.bind(\"touchmove\",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&(n((A-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),A=b.originalEvent.touches[0].pageY)});\r\nx();\"bottom\"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),n(0,!0)):\"top\"!==a.start&&(n(e(a.start).position().top,null,!0),a.alwaysVisible||c.hide());window.addEventListener?(this.addEventListener(\"DOMMouseScroll\",v,!1),this.addEventListener(\"mousewheel\",v,!1)):document.attachEvent(\"onmousewheel\",v)}});return this}});e.fn.extend({slimscroll:e.fn.slimScroll})})(jQuery);","/*! ###########################################################################\r\n\r\n Source: https://github.com/dutchcelt/Keep-in-View\r\n\r\n Copyright (C) 2011 - 2013, Lunatech Labs B.V., C. Egor Kloos. All rights reserved.\r\n GNU General Public License, version 3 (GPL-3.0)\r\n\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see http://www.opensource.org/licenses/gpl-3.0.html\r\n\r\n ########################################################################### */\r\n\r\n// Uses AMD or browser globals to create a jQuery plugin.\r\n\r\n(function(factory) {\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(['jquery'], factory);\r\n } else {\r\n // Browser globals\r\n factory(jQuery);\r\n }\r\n\r\n}(function($) {\r\n\r\n $.fn.keepInView = function(settings) {\r\n\r\n return this.each(function(index, stickyElem) {\r\n\r\n var $elem;\r\n var $parent;\r\n\r\n var defaults = {\r\n\r\n // Position will be fixed regardless of scroll position when set to true\r\n fixed: false,\r\n\r\n // Vertical offset that applies to both top and bottom;\r\n edgeOffset: 0,\r\n\r\n // Override z-index if you can't or don't want to set this with CSS\r\n zindex: $(stickyElem).css('zIndex'),\r\n\r\n // Override all scripted positions with your own custom CSS classname\r\n // The set classname will be triggered when element scrolls out of view\r\n // The Script will add a suffix of '-top' or '-bottom'\r\n customClass: false,\r\n\r\n // Only trigger this script on scrolling out at the 'top', 'bottom' the default is 'both'.\r\n trigger: 'both',\r\n\r\n // Scrollable box\r\n scrollable: false,\r\n\r\n // Set the height and width (user can override these if necessary)\r\n h: $(stickyElem).height(),\r\n w: $(stickyElem).width(),\r\n\r\n // If a pageload scrolls to a hash you can use this to offset anchors if the 'sticky' element is covering the anchored content\r\n // Beware that if the anchor itself contains content that it will also move up the page.\r\n // This feature is best used with the clone feature below.\r\n offsetAnchor: false, // boolean.\r\n\r\n // Clone the sticky element and prepend to its parent.\r\n // Beware that the original item is not removed from the page so make sure that the cloned element will cover it.\r\n // The cloned item can be styled via the classname \"KIV-cloned\"\r\n cloned: false // boolean.\r\n\r\n };\r\n\r\n var options = $.extend({}, defaults, settings);\r\n\r\n if (options.cloned) {\r\n $parent = $(stickyElem).parents().eq(0);\r\n $elem = $(stickyElem).clone().prependTo($parent).hide().addClass(\"KIV-cloned\");\r\n $(stickyElem).addClass(\"KIV-original\")\r\n } else {\r\n $elem = $(stickyElem);\r\n }\r\n\r\n var offset = $(stickyElem).offset(),\r\n position = $(stickyElem).css('position'),\r\n leftPosition = $(stickyElem).css('left'),\r\n marginOffset = (leftPosition === \"auto\") ? parseInt($(stickyElem).css('marginLeft'), 10) : 0,\r\n cssObject = (function() {\r\n return {\r\n position: 'fixed',\r\n left: leftPosition - marginOffset + 'px',\r\n width: (options.scrollable) ? options.w - 15 : options.w,\r\n height: (options.scrollable) ? ($(window).height() - offset.top) + \"px\" : options.h,\r\n zIndex: options.zindex\r\n }\r\n })(),\r\n prepCSS = function(cssSettings) {\r\n $elem.css($.extend({}, cssObject, cssSettings));\r\n },\r\n fixCSS = function(t) {\r\n $elem.css({ top: t + 'px' });\r\n if (options.offsetAnchor) {\r\n $(stickyElem).css({ visibility: \"hidden\" });\r\n $elem.slideDown(\"normal\");\r\n }\r\n }\r\n\r\n if (options.offsetAnchor) {\r\n\r\n // It is possible that there a lot of anchors!\r\n // Using an array instead of a loop by 'shifting' the array\r\n // This speeds up the iterations and setTimeout prevents the browser from locking up.\r\n\r\n // put all the dom elements collected by jQuery in to an array\r\n var $anchors = $(\"a[name]\");\r\n var anchorArray = $.makeArray($anchors);\r\n\r\n var arrayShifter = function() {\r\n\r\n var start = +new Date();\r\n\r\n do {\r\n\r\n var anchor = anchorArray.shift();\r\n // Invoke lazyLoad method with the current item\r\n if (anchorArray[0] !== void 0) {\r\n $(anchor).css({ position: \"relative\", display: \"block\", top: \"-\" + $elem.outerHeight() + \"px\" });\r\n }\r\n\r\n } while (anchorArray[0] !== void 0 && (+new Date() - start < 50)); // increase to 100ms if needed.\r\n\r\n if (anchorArray[0] !== void 0) {\r\n setTimeout(arrayShifter, 0);\r\n }\r\n\r\n };\r\n arrayShifter();\r\n }\r\n\r\n\r\n var setElem = function(opts) {\r\n\r\n // Making sure that $elem doesn't fire if it is taller than the window (like a sidebar)\r\n // To prevent elastic scrolling fireing set the body in css to 'overflow: hidden'.\r\n // Then wrap your content in a div with 'overflow: auto'.\r\n\r\n if ($elem.height() > $(window).height() && !options.scrollable) {\r\n return false;\r\n }\r\n\r\n if (options.clearStyle) {\r\n $elem.removeAttr(\"style\");\r\n }\r\n var scrolledOutAt = \"\";\r\n var windowHeight = $(window).height();\r\n var outerHeight = $elem.outerHeight();\r\n $parent = $(stickyElem).parents().eq(0);\r\n if (windowHeight < parseInt(offset.top + outerHeight - Math.abs($(window).scrollTop()) + options.edgeOffset, 10) && !options.fixed) {\r\n scrolledOutAt = \"bottom\";\r\n }\r\n\r\n if (($(window).scrollTop()) > offset.top - options.edgeOffset && !options.fixed) {\r\n scrolledOutAt = \"top\";\r\n }\r\n\r\n // if (!options.customClass) {\r\n\r\n\r\n if (options.scrollable) {\r\n prepCSS({ height: (windowHeight - offset.top) + \"px\", overflow: \"auto\" });\r\n } else {\r\n prepCSS();\r\n\r\n }\r\n\r\n if (scrolledOutAt === \"bottom\" && (options.trigger === 'both' || options.trigger === 'bottom')) {\r\n if (options.scrollable) {\r\n prepCSS({ height: windowHeight + \"px\", top: (windowHeight - outerHeight - options.edgeOffset) + \"px\", overflow: \"auto\" });\r\n } else {\r\n fixCSS((windowHeight - outerHeight - options.edgeOffset));\r\n }\r\n\r\n } else if (scrolledOutAt === \"top\" && (options.trigger === 'both' || options.trigger === 'top')) {\r\n if (options.scrollable) {\r\n prepCSS({ height: windowHeight + \"px\", top: options.edgeOffset + \"px\", overflow: \"auto\" });\r\n } else {\r\n fixCSS(options.edgeOffset);\r\n }\r\n\r\n } else if (options.fixed) {\r\n $elem.css({ top: options.edgeOffset, left: offset.left, height: \"auto\" });\r\n } else {\r\n if (options.scrollable) {\r\n $elem.css({ position: position, top: offset.top + \"px\", height: (windowHeight - offset.top + $(window).scrollTop()) + \"px\" });\r\n } else {\r\n if (options.offsetAnchor) {\r\n $(stickyElem).css({ visibility: \"visible\" });\r\n $elem.hide();\r\n } else {\r\n $elem.removeAttr('style');\r\n }\r\n }\r\n }\r\n\r\n // } else \r\n if (options.customClass) {\r\n // console.log(scrolledOutAt);\r\n if (options.trigger === 'both') {\r\n if (scrolledOutAt === \"bottom\" || scrolledOutAt === \"top\") {\r\n $elem.addClass(options.customClass + \"-\" + scrolledOutAt);\r\n } else if (!scrolledOutAt) {\r\n $elem.removeClass(options.customClass + \"-top\").removeClass(options.customClass + \"-bottom\");\r\n }\r\n } else if (scrolledOutAt === options.trigger) {\r\n $elem.addClass(options.customClass + \"-\" + options.trigger);\r\n } else if (!scrolledOutAt) {\r\n $elem.removeClass(options.customClass + \"-\" + options.trigger);\r\n }\r\n }\r\n\r\n if (options.parentClass) {\r\n if (options.trigger === 'both') {\r\n \tvar elemClass = options.customClass + \"-\";\r\n if ($parent.find('[class*=\"'+elemClass+'\"]')) {\r\n $parent.addClass(options.parentClass);\r\n } else {\r\n $parent.removeClass(options.parentClass);\r\n }\r\n } else if (scrolledOutAt === options.trigger) {\r\n \tvar elemClass = options.customClass + \"-\" + options.trigger;\r\n if ($parent.find('[class*=\"'+elemClass+'\"]')) {\r\n $parent.addClass(options.parentClass);\r\n } else {\r\n $parent.removeClass(options.parentClass);\r\n }\r\n } else if (!scrolledOutAt) {\r\n $parent.removeClass(options.parentClass);\r\n }\r\n }\r\n // end if\r\n }\r\n\r\n var staySticky = function() {\r\n options.w = $elem.width();\r\n options.h = $elem.height();\r\n offset = $elem.offset();\r\n options.clearStyle = true;\r\n requestAnimationFrame(setElem);\r\n }\r\n var setElemRequest = function() {\r\n options.clearStyle = false;\r\n requestAnimationFrame(setElem);\r\n }\r\n\r\n var killSticky = function() {\r\n $elem.removeAttr('style').off(\".sticky\");\r\n $(window).off('.sticky', staySticky).off('.sticky', setElemRequest);\r\n }\r\n\r\n $elem.on('update.sticky', staySticky);\r\n $elem.on('unstick.sticky', killSticky);\r\n $(window).on('resize.sticky', $elem, staySticky).on('scroll.sticky', $elem, setElemRequest).trigger('scroll');\r\n\r\n });\r\n };\r\n\r\n}));\r\n","/* ========================================================================\r\n * Bootstrap: collapse.js v3.3.7\r\n * http://getbootstrap.com/javascript/#collapse\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n/* jshint latedef: false */\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // COLLAPSE PUBLIC CLASS DEFINITION\r\n // ================================\r\n\r\n var Collapse = function (element, options) {\r\n this.$element = $(element)\r\n this.options = $.extend({}, Collapse.DEFAULTS, options)\r\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\r\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\r\n this.transitioning = null\r\n\r\n if (this.options.parent) {\r\n this.$parent = this.getParent()\r\n } else {\r\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\r\n }\r\n\r\n if (this.options.toggle) this.toggle()\r\n }\r\n\r\n Collapse.VERSION = '3.3.7'\r\n\r\n Collapse.TRANSITION_DURATION = 350\r\n\r\n Collapse.DEFAULTS = {\r\n toggle: true\r\n }\r\n\r\n Collapse.prototype.dimension = function () {\r\n var hasWidth = this.$element.hasClass('width')\r\n return hasWidth ? 'width' : 'height'\r\n }\r\n\r\n Collapse.prototype.show = function () {\r\n if (this.transitioning || this.$element.hasClass('in')) return\r\n\r\n var activesData\r\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\r\n\r\n if (actives && actives.length) {\r\n activesData = actives.data('bs.collapse')\r\n if (activesData && activesData.transitioning) return\r\n }\r\n\r\n var startEvent = $.Event('show.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n if (actives && actives.length) {\r\n Plugin.call(actives, 'hide')\r\n activesData || actives.data('bs.collapse', null)\r\n }\r\n\r\n var dimension = this.dimension()\r\n\r\n this.$element\r\n .removeClass('collapse')\r\n .addClass('collapsing')[dimension](0)\r\n .attr('aria-expanded', true)\r\n\r\n this.$trigger\r\n .removeClass('collapsed')\r\n .attr('aria-expanded', true)\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.$element\r\n .removeClass('collapsing')\r\n .addClass('collapse in')[dimension]('')\r\n this.transitioning = 0\r\n this.$element\r\n .trigger('shown.bs.collapse')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\r\n\r\n this.$element\r\n .one('bsTransitionEnd', $.proxy(complete, this))\r\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\r\n }\r\n\r\n Collapse.prototype.hide = function () {\r\n if (this.transitioning || !this.$element.hasClass('in')) return\r\n\r\n var startEvent = $.Event('hide.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n var dimension = this.dimension()\r\n\r\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\r\n\r\n this.$element\r\n .addClass('collapsing')\r\n .removeClass('collapse in')\r\n .attr('aria-expanded', false)\r\n\r\n this.$trigger\r\n .addClass('collapsed')\r\n .attr('aria-expanded', false)\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.transitioning = 0\r\n this.$element\r\n .removeClass('collapsing')\r\n .addClass('collapse')\r\n .trigger('hidden.bs.collapse')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n this.$element\r\n [dimension](0)\r\n .one('bsTransitionEnd', $.proxy(complete, this))\r\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\r\n }\r\n\r\n Collapse.prototype.toggle = function () {\r\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\r\n }\r\n\r\n Collapse.prototype.getParent = function () {\r\n return $(this.options.parent)\r\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\r\n .each($.proxy(function (i, element) {\r\n var $element = $(element)\r\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\r\n }, this))\r\n .end()\r\n }\r\n\r\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\r\n var isOpen = $element.hasClass('in')\r\n\r\n $element.attr('aria-expanded', isOpen)\r\n $trigger\r\n .toggleClass('collapsed', !isOpen)\r\n .attr('aria-expanded', isOpen)\r\n }\r\n\r\n function getTargetFromTrigger($trigger) {\r\n var href\r\n var target = $trigger.attr('data-target')\r\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\r\n\r\n return $(target)\r\n }\r\n\r\n\r\n // COLLAPSE PLUGIN DEFINITION\r\n // ==========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.collapse')\r\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n\r\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\r\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.collapse\r\n\r\n $.fn.collapse = Plugin\r\n $.fn.collapse.Constructor = Collapse\r\n\r\n\r\n // COLLAPSE NO CONFLICT\r\n // ====================\r\n\r\n $.fn.collapse.noConflict = function () {\r\n $.fn.collapse = old\r\n return this\r\n }\r\n\r\n\r\n // COLLAPSE DATA-API\r\n // =================\r\n\r\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\r\n var $this = $(this)\r\n\r\n if (!$this.attr('data-target')) e.preventDefault()\r\n\r\n var $target = getTargetFromTrigger($this)\r\n var data = $target.data('bs.collapse')\r\n var option = data ? 'toggle' : $this.data()\r\n\r\n Plugin.call($target, option)\r\n })\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: modal.js v3.3.7\r\n * http://getbootstrap.com/javascript/#modals\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // MODAL CLASS DEFINITION\r\n // ======================\r\n\r\n var Modal = function (element, options) {\r\n this.options = options\r\n this.$body = $(document.body)\r\n this.$element = $(element)\r\n this.$dialog = this.$element.find('.modal-dialog')\r\n this.$backdrop = null\r\n this.isShown = null\r\n this.originalBodyPad = null\r\n this.scrollbarWidth = 0\r\n this.ignoreBackdropClick = false\r\n\r\n if (this.options.remote) {\r\n this.$element\r\n .find('.modal-content')\r\n .load(this.options.remote, $.proxy(function () {\r\n this.$element.trigger('loaded.bs.modal')\r\n }, this))\r\n }\r\n }\r\n\r\n Modal.VERSION = '3.3.7'\r\n\r\n Modal.TRANSITION_DURATION = 300\r\n Modal.BACKDROP_TRANSITION_DURATION = 150\r\n\r\n Modal.DEFAULTS = {\r\n backdrop: true,\r\n keyboard: true,\r\n show: true\r\n }\r\n\r\n Modal.prototype.toggle = function (_relatedTarget) {\r\n return this.isShown ? this.hide() : this.show(_relatedTarget)\r\n }\r\n\r\n Modal.prototype.show = function (_relatedTarget) {\r\n var that = this\r\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\r\n\r\n this.$element.trigger(e)\r\n\r\n if (this.isShown || e.isDefaultPrevented()) return\r\n\r\n this.isShown = true\r\n\r\n this.checkScrollbar()\r\n this.setScrollbar()\r\n this.$body.addClass('modal-open')\r\n\r\n this.escape()\r\n this.resize()\r\n\r\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\r\n\r\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\r\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\r\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\r\n })\r\n })\r\n\r\n this.backdrop(function () {\r\n var transition = $.support.transition && that.$element.hasClass('fade')\r\n\r\n if (!that.$element.parent().length) {\r\n that.$element.appendTo(that.$body) // don't move modals dom position\r\n }\r\n\r\n that.$element\r\n .show()\r\n .scrollTop(0)\r\n\r\n that.adjustDialog()\r\n\r\n if (transition) {\r\n that.$element[0].offsetWidth // force reflow\r\n }\r\n\r\n that.$element.addClass('in')\r\n\r\n that.enforceFocus()\r\n\r\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\r\n\r\n transition ?\r\n that.$dialog // wait for modal to slide in\r\n .one('bsTransitionEnd', function () {\r\n that.$element.trigger('focus').trigger(e)\r\n })\r\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\r\n that.$element.trigger('focus').trigger(e)\r\n })\r\n }\r\n\r\n Modal.prototype.hide = function (e) {\r\n if (e) e.preventDefault()\r\n\r\n e = $.Event('hide.bs.modal')\r\n\r\n this.$element.trigger(e)\r\n\r\n if (!this.isShown || e.isDefaultPrevented()) return\r\n\r\n this.isShown = false\r\n\r\n this.escape()\r\n this.resize()\r\n\r\n $(document).off('focusin.bs.modal')\r\n\r\n this.$element\r\n .removeClass('in')\r\n .off('click.dismiss.bs.modal')\r\n .off('mouseup.dismiss.bs.modal')\r\n\r\n this.$dialog.off('mousedown.dismiss.bs.modal')\r\n\r\n $.support.transition && this.$element.hasClass('fade') ?\r\n this.$element\r\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\r\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\r\n this.hideModal()\r\n }\r\n\r\n Modal.prototype.enforceFocus = function () {\r\n $(document)\r\n .off('focusin.bs.modal') // guard against infinite focus loop\r\n .on('focusin.bs.modal', $.proxy(function (e) {\r\n if (document !== e.target &&\r\n this.$element[0] !== e.target &&\r\n !this.$element.has(e.target).length) {\r\n this.$element.trigger('focus')\r\n }\r\n }, this))\r\n }\r\n\r\n Modal.prototype.escape = function () {\r\n if (this.isShown && this.options.keyboard) {\r\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\r\n e.which == 27 && this.hide()\r\n }, this))\r\n } else if (!this.isShown) {\r\n this.$element.off('keydown.dismiss.bs.modal')\r\n }\r\n }\r\n\r\n Modal.prototype.resize = function () {\r\n if (this.isShown) {\r\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\r\n } else {\r\n $(window).off('resize.bs.modal')\r\n }\r\n }\r\n\r\n Modal.prototype.hideModal = function () {\r\n var that = this\r\n this.$element.hide()\r\n this.backdrop(function () {\r\n that.$body.removeClass('modal-open')\r\n that.resetAdjustments()\r\n that.resetScrollbar()\r\n that.$element.trigger('hidden.bs.modal')\r\n })\r\n }\r\n\r\n Modal.prototype.removeBackdrop = function () {\r\n this.$backdrop && this.$backdrop.remove()\r\n this.$backdrop = null\r\n }\r\n\r\n Modal.prototype.backdrop = function (callback) {\r\n var that = this\r\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\r\n\r\n if (this.isShown && this.options.backdrop) {\r\n var doAnimate = $.support.transition && animate\r\n\r\n this.$backdrop = $(document.createElement('div'))\r\n .addClass('modal-backdrop ' + animate)\r\n .appendTo(this.$body)\r\n\r\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\r\n if (this.ignoreBackdropClick) {\r\n this.ignoreBackdropClick = false\r\n return\r\n }\r\n if (e.target !== e.currentTarget) return\r\n this.options.backdrop == 'static'\r\n ? this.$element[0].focus()\r\n : this.hide()\r\n }, this))\r\n\r\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\r\n\r\n this.$backdrop.addClass('in')\r\n\r\n if (!callback) return\r\n\r\n doAnimate ?\r\n this.$backdrop\r\n .one('bsTransitionEnd', callback)\r\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\r\n callback()\r\n\r\n } else if (!this.isShown && this.$backdrop) {\r\n this.$backdrop.removeClass('in')\r\n\r\n var callbackRemove = function () {\r\n that.removeBackdrop()\r\n callback && callback()\r\n }\r\n $.support.transition && this.$element.hasClass('fade') ?\r\n this.$backdrop\r\n .one('bsTransitionEnd', callbackRemove)\r\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\r\n callbackRemove()\r\n\r\n } else if (callback) {\r\n callback()\r\n }\r\n }\r\n\r\n // these following methods are used to handle overflowing modals\r\n\r\n Modal.prototype.handleUpdate = function () {\r\n this.adjustDialog()\r\n }\r\n\r\n Modal.prototype.adjustDialog = function () {\r\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\r\n\r\n this.$element.css({\r\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\r\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\r\n })\r\n }\r\n\r\n Modal.prototype.resetAdjustments = function () {\r\n this.$element.css({\r\n paddingLeft: '',\r\n paddingRight: ''\r\n })\r\n }\r\n\r\n Modal.prototype.checkScrollbar = function () {\r\n var fullWindowWidth = window.innerWidth\r\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\r\n var documentElementRect = document.documentElement.getBoundingClientRect()\r\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\r\n }\r\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\r\n this.scrollbarWidth = this.measureScrollbar()\r\n }\r\n\r\n Modal.prototype.setScrollbar = function () {\r\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\r\n this.originalBodyPad = document.body.style.paddingRight || ''\r\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\r\n }\r\n\r\n Modal.prototype.resetScrollbar = function () {\r\n this.$body.css('padding-right', this.originalBodyPad)\r\n }\r\n\r\n Modal.prototype.measureScrollbar = function () { // thx walsh\r\n var scrollDiv = document.createElement('div')\r\n scrollDiv.className = 'modal-scrollbar-measure'\r\n this.$body.append(scrollDiv)\r\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\r\n this.$body[0].removeChild(scrollDiv)\r\n return scrollbarWidth\r\n }\r\n\r\n\r\n // MODAL PLUGIN DEFINITION\r\n // =======================\r\n\r\n function Plugin(option, _relatedTarget) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.modal')\r\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n\r\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\r\n if (typeof option == 'string') data[option](_relatedTarget)\r\n else if (options.show) data.show(_relatedTarget)\r\n })\r\n }\r\n\r\n var old = $.fn.modal\r\n\r\n $.fn.modal = Plugin\r\n $.fn.modal.Constructor = Modal\r\n\r\n\r\n // MODAL NO CONFLICT\r\n // =================\r\n\r\n $.fn.modal.noConflict = function () {\r\n $.fn.modal = old\r\n return this\r\n }\r\n\r\n\r\n // MODAL DATA-API\r\n // ==============\r\n\r\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\r\n var $this = $(this)\r\n var href = $this.attr('href')\r\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\r\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\r\n\r\n if ($this.is('a')) e.preventDefault()\r\n\r\n $target.one('show.bs.modal', function (showEvent) {\r\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\r\n $target.one('hidden.bs.modal', function () {\r\n $this.is(':visible') && $this.trigger('focus')\r\n })\r\n })\r\n Plugin.call($target, option, this)\r\n })\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: scrollspy.js v3.3.7\r\n * http://getbootstrap.com/javascript/#scrollspy\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // SCROLLSPY CLASS DEFINITION\r\n // ==========================\r\n\r\n function ScrollSpy(element, options) {\r\n this.$body = $(document.body)\r\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\r\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\r\n this.selector = (this.options.target || '') + ' .nav li > a'\r\n this.offsets = []\r\n this.targets = []\r\n this.activeTarget = null\r\n this.scrollHeight = 0\r\n\r\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\r\n this.refresh()\r\n this.process()\r\n }\r\n\r\n ScrollSpy.VERSION = '3.3.7'\r\n\r\n ScrollSpy.DEFAULTS = {\r\n offset: 10\r\n }\r\n\r\n ScrollSpy.prototype.getScrollHeight = function () {\r\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\r\n }\r\n\r\n ScrollSpy.prototype.refresh = function () {\r\n var that = this\r\n var offsetMethod = 'offset'\r\n var offsetBase = 0\r\n\r\n this.offsets = []\r\n this.targets = []\r\n this.scrollHeight = this.getScrollHeight()\r\n\r\n if (!$.isWindow(this.$scrollElement[0])) {\r\n offsetMethod = 'position'\r\n offsetBase = this.$scrollElement.scrollTop()\r\n }\r\n\r\n this.$body\r\n .find(this.selector)\r\n .map(function () {\r\n var $el = $(this)\r\n var href = $el.data('target') || $el.attr('href')\r\n var $href = /^#./.test(href) && $(href)\r\n\r\n return ($href\r\n && $href.length\r\n && $href.is(':visible')\r\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\r\n })\r\n .sort(function (a, b) { return a[0] - b[0] })\r\n .each(function () {\r\n that.offsets.push(this[0])\r\n that.targets.push(this[1])\r\n })\r\n }\r\n\r\n ScrollSpy.prototype.process = function () {\r\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\r\n var scrollHeight = this.getScrollHeight()\r\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\r\n var offsets = this.offsets\r\n var targets = this.targets\r\n var activeTarget = this.activeTarget\r\n var i\r\n\r\n if (this.scrollHeight != scrollHeight) {\r\n this.refresh()\r\n }\r\n\r\n if (scrollTop >= maxScroll) {\r\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\r\n }\r\n\r\n if (activeTarget && scrollTop < offsets[0]) {\r\n this.activeTarget = null\r\n return this.clear()\r\n }\r\n\r\n for (i = offsets.length; i--;) {\r\n activeTarget != targets[i]\r\n && scrollTop >= offsets[i]\r\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\r\n && this.activate(targets[i])\r\n }\r\n }\r\n\r\n ScrollSpy.prototype.activate = function (target) {\r\n this.activeTarget = target\r\n\r\n this.clear()\r\n\r\n var selector = this.selector +\r\n '[data-target=\"' + target + '\"],' +\r\n this.selector + '[href=\"' + target + '\"]'\r\n\r\n var active = $(selector)\r\n .parents('li')\r\n .addClass('active')\r\n\r\n if (active.parent('.dropdown-menu').length) {\r\n active = active\r\n .closest('li.dropdown')\r\n .addClass('active')\r\n }\r\n\r\n active.trigger('activate.bs.scrollspy')\r\n }\r\n\r\n ScrollSpy.prototype.clear = function () {\r\n $(this.selector)\r\n .parentsUntil(this.options.target, '.active')\r\n .removeClass('active')\r\n }\r\n\r\n\r\n // SCROLLSPY PLUGIN DEFINITION\r\n // ===========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.scrollspy')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.scrollspy\r\n\r\n $.fn.scrollspy = Plugin\r\n $.fn.scrollspy.Constructor = ScrollSpy\r\n\r\n\r\n // SCROLLSPY NO CONFLICT\r\n // =====================\r\n\r\n $.fn.scrollspy.noConflict = function () {\r\n $.fn.scrollspy = old\r\n return this\r\n }\r\n\r\n\r\n // SCROLLSPY DATA-API\r\n // ==================\r\n\r\n $(window).on('load.bs.scrollspy.data-api', function () {\r\n $('[data-spy=\"scroll\"]').each(function () {\r\n var $spy = $(this)\r\n Plugin.call($spy, $spy.data())\r\n })\r\n })\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: tab.js v3.3.7\r\n * http://getbootstrap.com/javascript/#tabs\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // TAB CLASS DEFINITION\r\n // ====================\r\n\r\n var Tab = function (element) {\r\n // jscs:disable requireDollarBeforejQueryAssignment\r\n this.element = $(element)\r\n // jscs:enable requireDollarBeforejQueryAssignment\r\n }\r\n\r\n Tab.VERSION = '3.3.7'\r\n\r\n Tab.TRANSITION_DURATION = 150\r\n\r\n Tab.prototype.show = function () {\r\n var $this = this.element\r\n var $ul = $this.closest('ul:not(.dropdown-menu)')\r\n var selector = $this.data('target')\r\n\r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n }\r\n\r\n if ($this.parent('li').hasClass('active')) return\r\n\r\n var $previous = $ul.find('.active:last a')\r\n var hideEvent = $.Event('hide.bs.tab', {\r\n relatedTarget: $this[0]\r\n })\r\n var showEvent = $.Event('show.bs.tab', {\r\n relatedTarget: $previous[0]\r\n })\r\n\r\n $previous.trigger(hideEvent)\r\n $this.trigger(showEvent)\r\n\r\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\r\n\r\n var $target = $(selector)\r\n\r\n this.activate($this.closest('li'), $ul)\r\n this.activate($target, $target.parent(), function () {\r\n $previous.trigger({\r\n type: 'hidden.bs.tab',\r\n relatedTarget: $this[0]\r\n })\r\n $this.trigger({\r\n type: 'shown.bs.tab',\r\n relatedTarget: $previous[0]\r\n })\r\n })\r\n }\r\n\r\n Tab.prototype.activate = function (element, container, callback) {\r\n var $active = container.find('> .active')\r\n var transition = callback\r\n && $.support.transition\r\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\r\n\r\n function next() {\r\n $active\r\n .removeClass('active')\r\n .find('> .dropdown-menu > .active')\r\n .removeClass('active')\r\n .end()\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', false)\r\n\r\n element\r\n .addClass('active')\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', true)\r\n\r\n if (transition) {\r\n element[0].offsetWidth // reflow for transition\r\n element.addClass('in')\r\n } else {\r\n element.removeClass('fade')\r\n }\r\n\r\n if (element.parent('.dropdown-menu').length) {\r\n element\r\n .closest('li.dropdown')\r\n .addClass('active')\r\n .end()\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', true)\r\n }\r\n\r\n callback && callback()\r\n }\r\n\r\n $active.length && transition ?\r\n $active\r\n .one('bsTransitionEnd', next)\r\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\r\n next()\r\n\r\n $active.removeClass('in')\r\n }\r\n\r\n\r\n // TAB PLUGIN DEFINITION\r\n // =====================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.tab')\r\n\r\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.tab\r\n\r\n $.fn.tab = Plugin\r\n $.fn.tab.Constructor = Tab\r\n\r\n\r\n // TAB NO CONFLICT\r\n // ===============\r\n\r\n $.fn.tab.noConflict = function () {\r\n $.fn.tab = old\r\n return this\r\n }\r\n\r\n\r\n // TAB DATA-API\r\n // ============\r\n\r\n var clickHandler = function (e) {\r\n e.preventDefault()\r\n Plugin.call($(this), 'show')\r\n }\r\n\r\n $(document)\r\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\r\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: tooltip.js v3.3.7\r\n * http://getbootstrap.com/javascript/#tooltip\r\n * Inspired by the original jQuery.tipsy by Jason Frame\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // TOOLTIP PUBLIC CLASS DEFINITION\r\n // ===============================\r\n\r\n var Tooltip = function (element, options) {\r\n this.type = null\r\n this.options = null\r\n this.enabled = null\r\n this.timeout = null\r\n this.hoverState = null\r\n this.$element = null\r\n this.inState = null\r\n\r\n this.init('tooltip', element, options)\r\n }\r\n\r\n Tooltip.VERSION = '3.3.7'\r\n\r\n Tooltip.TRANSITION_DURATION = 150\r\n\r\n Tooltip.DEFAULTS = {\r\n animation: true,\r\n placement: 'top',\r\n selector: false,\r\n template: '
      ',\r\n trigger: 'hover focus',\r\n title: '',\r\n delay: 0,\r\n html: false,\r\n container: false,\r\n viewport: {\r\n selector: 'body',\r\n padding: 0\r\n }\r\n }\r\n\r\n Tooltip.prototype.init = function (type, element, options) {\r\n this.enabled = true\r\n this.type = type\r\n this.$element = $(element)\r\n this.options = this.getOptions(options)\r\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\r\n this.inState = { click: false, hover: false, focus: false }\r\n\r\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\r\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\r\n }\r\n\r\n var triggers = this.options.trigger.split(' ')\r\n\r\n for (var i = triggers.length; i--;) {\r\n var trigger = triggers[i]\r\n\r\n if (trigger == 'click') {\r\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\r\n } else if (trigger != 'manual') {\r\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\r\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\r\n\r\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\r\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\r\n }\r\n }\r\n\r\n this.options.selector ?\r\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\r\n this.fixTitle()\r\n }\r\n\r\n Tooltip.prototype.getDefaults = function () {\r\n return Tooltip.DEFAULTS\r\n }\r\n\r\n Tooltip.prototype.getOptions = function (options) {\r\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\r\n\r\n if (options.delay && typeof options.delay == 'number') {\r\n options.delay = {\r\n show: options.delay,\r\n hide: options.delay\r\n }\r\n }\r\n\r\n return options\r\n }\r\n\r\n Tooltip.prototype.getDelegateOptions = function () {\r\n var options = {}\r\n var defaults = this.getDefaults()\r\n\r\n this._options && $.each(this._options, function (key, value) {\r\n if (defaults[key] != value) options[key] = value\r\n })\r\n\r\n return options\r\n }\r\n\r\n Tooltip.prototype.enter = function (obj) {\r\n var self = obj instanceof this.constructor ?\r\n obj : $(obj.currentTarget).data('bs.' + this.type)\r\n\r\n if (!self) {\r\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\r\n $(obj.currentTarget).data('bs.' + this.type, self)\r\n }\r\n\r\n if (obj instanceof $.Event) {\r\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\r\n }\r\n\r\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\r\n self.hoverState = 'in'\r\n return\r\n }\r\n\r\n clearTimeout(self.timeout)\r\n\r\n self.hoverState = 'in'\r\n\r\n if (!self.options.delay || !self.options.delay.show) return self.show()\r\n\r\n self.timeout = setTimeout(function () {\r\n if (self.hoverState == 'in') self.show()\r\n }, self.options.delay.show)\r\n }\r\n\r\n Tooltip.prototype.isInStateTrue = function () {\r\n for (var key in this.inState) {\r\n if (this.inState[key]) return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n Tooltip.prototype.leave = function (obj) {\r\n var self = obj instanceof this.constructor ?\r\n obj : $(obj.currentTarget).data('bs.' + this.type)\r\n\r\n if (!self) {\r\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\r\n $(obj.currentTarget).data('bs.' + this.type, self)\r\n }\r\n\r\n if (obj instanceof $.Event) {\r\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\r\n }\r\n\r\n if (self.isInStateTrue()) return\r\n\r\n clearTimeout(self.timeout)\r\n\r\n self.hoverState = 'out'\r\n\r\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\r\n\r\n self.timeout = setTimeout(function () {\r\n if (self.hoverState == 'out') self.hide()\r\n }, self.options.delay.hide)\r\n }\r\n\r\n Tooltip.prototype.show = function () {\r\n var e = $.Event('show.bs.' + this.type)\r\n\r\n if (this.hasContent() && this.enabled) {\r\n this.$element.trigger(e)\r\n\r\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\r\n if (e.isDefaultPrevented() || !inDom) return\r\n var that = this\r\n\r\n var $tip = this.tip()\r\n\r\n var tipId = this.getUID(this.type)\r\n\r\n this.setContent()\r\n $tip.attr('id', tipId)\r\n this.$element.attr('aria-describedby', tipId)\r\n\r\n if (this.options.animation) $tip.addClass('fade')\r\n\r\n var placement = typeof this.options.placement == 'function' ?\r\n this.options.placement.call(this, $tip[0], this.$element[0]) :\r\n this.options.placement\r\n\r\n var autoToken = /\\s?auto?\\s?/i\r\n var autoPlace = autoToken.test(placement)\r\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\r\n\r\n $tip\r\n .detach()\r\n .css({ top: 0, left: 0, display: 'block' })\r\n .addClass(placement)\r\n .data('bs.' + this.type, this)\r\n\r\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\r\n this.$element.trigger('inserted.bs.' + this.type)\r\n\r\n var pos = this.getPosition()\r\n var actualWidth = $tip[0].offsetWidth\r\n var actualHeight = $tip[0].offsetHeight\r\n\r\n if (autoPlace) {\r\n var orgPlacement = placement\r\n var viewportDim = this.getPosition(this.$viewport)\r\n\r\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\r\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\r\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\r\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\r\n placement\r\n\r\n $tip\r\n .removeClass(orgPlacement)\r\n .addClass(placement)\r\n }\r\n\r\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\r\n\r\n this.applyPlacement(calculatedOffset, placement)\r\n\r\n var complete = function () {\r\n var prevHoverState = that.hoverState\r\n that.$element.trigger('shown.bs.' + that.type)\r\n that.hoverState = null\r\n\r\n if (prevHoverState == 'out') that.leave(that)\r\n }\r\n\r\n $.support.transition && this.$tip.hasClass('fade') ?\r\n $tip\r\n .one('bsTransitionEnd', complete)\r\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\r\n complete()\r\n }\r\n }\r\n\r\n Tooltip.prototype.applyPlacement = function (offset, placement) {\r\n var $tip = this.tip()\r\n var width = $tip[0].offsetWidth\r\n var height = $tip[0].offsetHeight\r\n\r\n // manually read margins because getBoundingClientRect includes difference\r\n var marginTop = parseInt($tip.css('margin-top'), 10)\r\n var marginLeft = parseInt($tip.css('margin-left'), 10)\r\n\r\n // we must check for NaN for ie 8/9\r\n if (isNaN(marginTop)) marginTop = 0\r\n if (isNaN(marginLeft)) marginLeft = 0\r\n\r\n offset.top += marginTop\r\n offset.left += marginLeft\r\n\r\n // $.fn.offset doesn't round pixel values\r\n // so we use setOffset directly with our own function B-0\r\n $.offset.setOffset($tip[0], $.extend({\r\n using: function (props) {\r\n $tip.css({\r\n top: Math.round(props.top),\r\n left: Math.round(props.left)\r\n })\r\n }\r\n }, offset), 0)\r\n\r\n $tip.addClass('in')\r\n\r\n // check to see if placing tip in new offset caused the tip to resize itself\r\n var actualWidth = $tip[0].offsetWidth\r\n var actualHeight = $tip[0].offsetHeight\r\n\r\n if (placement == 'top' && actualHeight != height) {\r\n offset.top = offset.top + height - actualHeight\r\n }\r\n\r\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\r\n\r\n if (delta.left) offset.left += delta.left\r\n else offset.top += delta.top\r\n\r\n var isVertical = /top|bottom/.test(placement)\r\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\r\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\r\n\r\n $tip.offset(offset)\r\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\r\n }\r\n\r\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\r\n this.arrow()\r\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\r\n .css(isVertical ? 'top' : 'left', '')\r\n }\r\n\r\n Tooltip.prototype.setContent = function () {\r\n var $tip = this.tip()\r\n var title = this.getTitle()\r\n\r\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\r\n $tip.removeClass('fade in top bottom left right')\r\n }\r\n\r\n Tooltip.prototype.hide = function (callback) {\r\n var that = this\r\n var $tip = $(this.$tip)\r\n var e = $.Event('hide.bs.' + this.type)\r\n\r\n function complete() {\r\n if (that.hoverState != 'in') $tip.detach()\r\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\r\n that.$element\r\n .removeAttr('aria-describedby')\r\n .trigger('hidden.bs.' + that.type)\r\n }\r\n callback && callback()\r\n }\r\n\r\n this.$element.trigger(e)\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n $tip.removeClass('in')\r\n\r\n $.support.transition && $tip.hasClass('fade') ?\r\n $tip\r\n .one('bsTransitionEnd', complete)\r\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\r\n complete()\r\n\r\n this.hoverState = null\r\n\r\n return this\r\n }\r\n\r\n Tooltip.prototype.fixTitle = function () {\r\n var $e = this.$element\r\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\r\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\r\n }\r\n }\r\n\r\n Tooltip.prototype.hasContent = function () {\r\n return this.getTitle()\r\n }\r\n\r\n Tooltip.prototype.getPosition = function ($element) {\r\n $element = $element || this.$element\r\n\r\n var el = $element[0]\r\n var isBody = el.tagName == 'BODY'\r\n\r\n var elRect = el.getBoundingClientRect()\r\n if (elRect.width == null) {\r\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\r\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\r\n }\r\n var isSvg = window.SVGElement && el instanceof window.SVGElement\r\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\r\n // See https://github.com/twbs/bootstrap/issues/20280\r\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\r\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\r\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\r\n\r\n return $.extend({}, elRect, scroll, outerDims, elOffset)\r\n }\r\n\r\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\r\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\r\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\r\n\r\n }\r\n\r\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\r\n var delta = { top: 0, left: 0 }\r\n if (!this.$viewport) return delta\r\n\r\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\r\n var viewportDimensions = this.getPosition(this.$viewport)\r\n\r\n if (/right|left/.test(placement)) {\r\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\r\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\r\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\r\n delta.top = viewportDimensions.top - topEdgeOffset\r\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\r\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\r\n }\r\n } else {\r\n var leftEdgeOffset = pos.left - viewportPadding\r\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\r\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\r\n delta.left = viewportDimensions.left - leftEdgeOffset\r\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\r\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\r\n }\r\n }\r\n\r\n return delta\r\n }\r\n\r\n Tooltip.prototype.getTitle = function () {\r\n var title\r\n var $e = this.$element\r\n var o = this.options\r\n\r\n title = $e.attr('data-original-title')\r\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\r\n\r\n return title\r\n }\r\n\r\n Tooltip.prototype.getUID = function (prefix) {\r\n do prefix += ~~(Math.random() * 1000000)\r\n while (document.getElementById(prefix))\r\n return prefix\r\n }\r\n\r\n Tooltip.prototype.tip = function () {\r\n if (!this.$tip) {\r\n this.$tip = $(this.options.template)\r\n if (this.$tip.length != 1) {\r\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\r\n }\r\n }\r\n return this.$tip\r\n }\r\n\r\n Tooltip.prototype.arrow = function () {\r\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\r\n }\r\n\r\n Tooltip.prototype.enable = function () {\r\n this.enabled = true\r\n }\r\n\r\n Tooltip.prototype.disable = function () {\r\n this.enabled = false\r\n }\r\n\r\n Tooltip.prototype.toggleEnabled = function () {\r\n this.enabled = !this.enabled\r\n }\r\n\r\n Tooltip.prototype.toggle = function (e) {\r\n var self = this\r\n if (e) {\r\n self = $(e.currentTarget).data('bs.' + this.type)\r\n if (!self) {\r\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\r\n $(e.currentTarget).data('bs.' + this.type, self)\r\n }\r\n }\r\n\r\n if (e) {\r\n self.inState.click = !self.inState.click\r\n if (self.isInStateTrue()) self.enter(self)\r\n else self.leave(self)\r\n } else {\r\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\r\n }\r\n }\r\n\r\n Tooltip.prototype.destroy = function () {\r\n var that = this\r\n clearTimeout(this.timeout)\r\n this.hide(function () {\r\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\r\n if (that.$tip) {\r\n that.$tip.detach()\r\n }\r\n that.$tip = null\r\n that.$arrow = null\r\n that.$viewport = null\r\n that.$element = null\r\n })\r\n }\r\n\r\n\r\n // TOOLTIP PLUGIN DEFINITION\r\n // =========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.tooltip')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data && /destroy|hide/.test(option)) return\r\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.tooltip\r\n\r\n $.fn.tooltip = Plugin\r\n $.fn.tooltip.Constructor = Tooltip\r\n\r\n\r\n // TOOLTIP NO CONFLICT\r\n // ===================\r\n\r\n $.fn.tooltip.noConflict = function () {\r\n $.fn.tooltip = old\r\n return this\r\n }\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: transition.js v3.3.7\r\n * http://getbootstrap.com/javascript/#transitions\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\r\n // ============================================================\r\n\r\n function transitionEnd() {\r\n var el = document.createElement('bootstrap')\r\n\r\n var transEndEventNames = {\r\n WebkitTransition : 'webkitTransitionEnd',\r\n MozTransition : 'transitionend',\r\n OTransition : 'oTransitionEnd otransitionend',\r\n transition : 'transitionend'\r\n }\r\n\r\n for (var name in transEndEventNames) {\r\n if (el.style[name] !== undefined) {\r\n return { end: transEndEventNames[name] }\r\n }\r\n }\r\n\r\n return false // explicit for ie8 ( ._.)\r\n }\r\n\r\n // http://blog.alexmaccaw.com/css-transitions\r\n $.fn.emulateTransitionEnd = function (duration) {\r\n var called = false\r\n var $el = this\r\n $(this).one('bsTransitionEnd', function () { called = true })\r\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\r\n setTimeout(callback, duration)\r\n return this\r\n }\r\n\r\n $(function () {\r\n $.support.transition = transitionEnd()\r\n\r\n if (!$.support.transition) return\r\n\r\n $.event.special.bsTransitionEnd = {\r\n bindType: $.support.transition.end,\r\n delegateType: $.support.transition.end,\r\n handle: function (e) {\r\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\r\n }\r\n }\r\n })\r\n\r\n}(jQuery);\r\n"]} \ No newline at end of file diff --git a/assets/js/plugin.min.js b/assets/js/plugin.min.js deleted file mode 100644 index e6bdb16..0000000 --- a/assets/js/plugin.min.js +++ /dev/null @@ -1,3 +0,0 @@ -!function(t){var e="undefined"==typeof module?t.baidu=t.baidu||{}:module.exports;e.template=function(e,n){var o=function(){if(!t.document)return i._compile(e);var n=document.getElementById(e);if(n){if(i.cache[e])return i.cache[e];var o=/^(textarea|input)$/i.test(n.nodeName)?n.value:n.innerHTML;return i._compile(o)}return i._compile(e)}(),r=i._isObject(n)?o(n):o;return o=null,r};var i=e.template;i.versions=i.versions||[],i.versions.push("1.0.6"),i.cache={},i.LEFT_DELIMITER=i.LEFT_DELIMITER||"{%",i.RIGHT_DELIMITER=i.RIGHT_DELIMITER||"%}",i.ESCAPE=!0,i._encodeHTML=function(t){return String(t).replace(/&/g,"&").replace(//g,">").replace(/\\/g,"\").replace(/"/g,""").replace(/'/g,"'")},i._encodeReg=function(t){return String(t).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")},i._encodeEventHTML=function(t){return String(t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\n/g,"\n").replace(/\\r/g,"\r")},i._compile=function(t){var e="var _template_fun_array=[];\nvar fn=(function(__data__){\nvar _template_varName='';\nfor(name in __data__){\n_template_varName+=('var '+name+'=__data__[\"'+name+'\"];');\n};\neval(_template_varName);\n_template_fun_array.push('"+i._analysisStr(t)+"');\n_template_varName=null;\n})(_template_object);\nfn = null;\nreturn _template_fun_array.join('');\n";return new Function("_template_object",e)},i._isObject=function(t){return"function"==typeof t||!(!t||"object"!=typeof t)},i._analysisStr=function(t){var e=i.LEFT_DELIMITER,n=i.RIGHT_DELIMITER,o=i._encodeReg(e),r=i._encodeReg(n);return t=String(t).replace(new RegExp("("+o+"[^"+r+"]*)//.*\n","g"),"$1").replace(new RegExp("","g"),"").replace(new RegExp(o+"\\*.*?\\*"+r,"g"),"").replace(new RegExp("[\\r\\t\\n]","g"),"").replace(new RegExp(o+"(?:(?!"+r+")[\\s\\S])*"+r+"|((?:(?!"+o+")[\\s\\S])+)","g"),function(t,e){var i="";if(e)for(i=e.replace(/\\/g,"\").replace(/'/g,"'");/<[^<]*?'[^<]*?>/g.test(i);)i=i.replace(/(<[^<]*?)'([^<]*?>)/g,"$1\r$2");else i=t;return i}),t=t.replace(new RegExp("("+o+"[\\s]*?var[\\s]*?.*?[\\s]*?[^;])[\\s]*?"+r,"g"),"$1;"+n).replace(new RegExp("("+o+":?[hvu]?[\\s]*?=[\\s]*?[^;|"+r+"]*?);[\\s]*?"+r,"g"),"$1"+n).split(e).join("\t"),t=i.ESCAPE?t.replace(new RegExp("\\t=(.*?)"+r,"g"),"',typeof($1) === 'undefined'?'':baidu.template._encodeHTML($1),'"):t.replace(new RegExp("\\t=(.*?)"+r,"g"),"',typeof($1) === 'undefined'?'':$1,'"),t=t.replace(new RegExp("\\t:h=(.*?)"+r,"g"),"',typeof($1) === 'undefined'?'':baidu.template._encodeHTML($1),'").replace(new RegExp("\\t(?::=|-)(.*?)"+r,"g"),"',typeof($1)==='undefined'?'':$1,'").replace(new RegExp("\\t:u=(.*?)"+r,"g"),"',typeof($1)==='undefined'?'':encodeURIComponent($1),'").replace(new RegExp("\\t:v=(.*?)"+r,"g"),"',typeof($1)==='undefined'?'':baidu.template._encodeEventHTML($1),'").split("\t").join("');").split(n).join("_template_fun_array.push('").split("\r").join("\\'")}}(window),!function(t){if("object"==typeof exports)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.GeoPattern=t()}}(function(){return function t(e,i,n){function o(s,a){if(!i[s]){if(!e[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(r)return r(s,!0);throw new Error("Cannot find module '"+s+"'")}var h=i[s]={exports:{}};e[s][0].call(h.exports,function(t){var i=e[s][1][t];return o(i?i:t)},h,h.exports,t,e,i,n)}return i[s].exports}for(var r="function"==typeof require&&require,s=0;s.5?h/(2-s-a):h/(s+a),s){case e:o=(i-n)/h+(n>i?6:0);break;case i:o=(n-e)/h+2;break;case n:o=(e-i)/h+4}o/=6}return{h:o,s:r,l:l}}function r(t){function e(t,e,i){return 0>i&&(i+=1),i>1&&(i-=1),1/6>i?t+6*(e-t)*i:.5>i?e:2/3>i?t+(e-t)*(2/3-i)*6:t}var i,n,o,r=t.h,s=t.s,a=t.l;if(0===s)i=n=o=a;else{var l=.5>a?a*(1+s):a+s-a*s,h=2*a-l;i=e(h,l,r+1/3),n=e(h,l,r),o=e(h,l,r-1/3)}return{r:Math.round(255*i),g:Math.round(255*n),b:Math.round(255*o)}}e.exports={hex2rgb:i,rgb2hex:n,rgb2hsl:o,hsl2rgb:r,rgb2rgbString:function(t){return"rgb("+[t.r,t.g,t.b].join(",")+")"}}},{}],3:[function(t,e){!function(i){"use strict";function n(t){return function(e,i){return"object"==typeof e&&(i=e,e=null),(null===e||void 0===e)&&(e=(new Date).toString()),i||(i={}),t.call(this,e,i)}}var o=t("./pattern"),r=e.exports={generate:n(function(t,e){return new o(t,e)})};i&&(i.fn.geopattern=n(function(t,e){return this.each(function(){var n=i(this).attr("data-title-sha");n&&(e=i.extend({hash:n},e));var o=r.generate(t,e);i(this).css("background-image",o.toDataUrl())})}))}("undefined"!=typeof jQuery?jQuery:null)},{"./pattern":4}],4:[function(t,e){(function(i){"use strict";function n(t,e,i){return parseInt(t.substr(e,i||1),16)}function o(t,e,i,n,o){var r=parseFloat(t),s=i-e,a=o-n;return(r-e)*a/s+n}function r(t){return t%2===0?k:_}function s(t){return o(t,0,15,S,I)}function a(t){var e=t,i=e/2,n=Math.sin(60*Math.PI/180)*e;return[0,n,i,0,i+e,0,2*e,n,i+e,2*n,i,2*n,0,n].join(",")}function l(t,e){var i=.66*e;return[[0,0,t/2,e-i,t/2,e,0,i,0,0],[t/2,e-i,t,0,t,i,t/2,e,t/2,e-i]].map(function(t){return t.join(",")})}function h(t){return[[t,0,t,3*t],[0,t,3*t,t]]}function c(t){var e=t,i=.33*e;return[i,0,e-i,0,e,i,e,e-i,e-i,e,i,e,0,e-i,0,i,i,0].join(",")}function u(t,e){var i=t/2;return[i,0,t,e,0,e,i,0].join(",")}function f(t,e){return[t/2,0,t,e/2,t/2,e,0,e/2].join(",")}function p(t){return[0,0,t,t,0,t,0,0].join(",")}function d(t,e,i,n,o){var a=p(n),l=s(o[0]),h=r(o[0]),c={stroke:E,"stroke-opacity":x,"fill-opacity":l,fill:h};t.polyline(a,c).transform({translate:[e+n,i],scale:[-1,1]}),t.polyline(a,c).transform({translate:[e+n,i+2*n],scale:[1,-1]}),l=s(o[1]),h=r(o[1]),c={stroke:E,"stroke-opacity":x,"fill-opacity":l,fill:h},t.polyline(a,c).transform({translate:[e+n,i+2*n],scale:[-1,-1]}),t.polyline(a,c).transform({translate:[e+n,i],scale:[1,1]})}function g(t,e,i,n,o){var a=s(o),l=r(o),h=p(n),c={stroke:E,"stroke-opacity":x,"fill-opacity":a,fill:l};t.polyline(h,c).transform({translate:[e,i+n],scale:[1,-1]}),t.polyline(h,c).transform({translate:[e+2*n,i+n],scale:[-1,-1]}),t.polyline(h,c).transform({translate:[e,i+n],scale:[1,1]}),t.polyline(h,c).transform({translate:[e+2*n,i+n],scale:[-1,1]})}function v(t,e){var i=t/2;return[0,0,e,i,0,t,0,0].join(",")}var m=t("extend"),y=t("./color"),b=t("./sha1"),w=t("./svg"),T={baseColor:"#933c3c"},C=["octogons","overlappingCircles","plusSigns","xes","sineWaves","hexagons","overlappingRings","plaid","triangles","squares","concentricCircles","diamonds","tessellation","nestedSquares","mosaicSquares","chevrons"],_="#222",k="#ddd",E="#000",x=.02,S=.02,I=.15,A=e.exports=function(t,e){return this.opts=m({},T,e),this.hash=e.hash||b(t),this.svg=new w,this.generateBackground(),this.generatePattern(),this};A.prototype.toSvg=function(){return this.svg.toString()},A.prototype.toString=function(){return this.toSvg()},A.prototype.toBase64=function(){var t,e=this.toSvg();return t="undefined"!=typeof window&&"function"==typeof window.btoa?window.btoa(e):new i(e).toString("base64")},A.prototype.toDataUri=function(){return"data:image/svg+xml;base64,"+this.toBase64()},A.prototype.toDataUrl=function(){return'url("'+this.toDataUri()+'")'},A.prototype.generateBackground=function(){var t,e,i,r;this.opts.color?i=y.hex2rgb(this.opts.color):(e=o(n(this.hash,14,3),0,4095,0,359),r=n(this.hash,17),t=y.rgb2hsl(y.hex2rgb(this.opts.baseColor)),t.h=(360*t.h-e+360)%360/360,t.s=r%2===0?Math.min(1,(100*t.s+r)/100):Math.max(0,(100*t.s-r)/100),i=y.hsl2rgb(t)),this.color=y.rgb2hex(i),this.svg.rect(0,0,"100%","100%",{fill:y.rgb2rgbString(i)})},A.prototype.generatePattern=function(){var t=this.opts.generator;if(t){if(C.indexOf(t)<0)throw new Error("The generator "+t+" does not exist.")}else t=C[n(this.hash,20)];return this["geo"+t.slice(0,1).toUpperCase()+t.slice(1)]()},A.prototype.geoHexagons=function(){var t,e,i,l,h,c,u,f,p=n(this.hash,0),d=o(p,0,15,8,60),g=d*Math.sqrt(3),v=2*d,m=a(d);for(this.svg.setWidth(3*v+3*d),this.svg.setHeight(6*g),i=0,f=0;6>f;f++)for(u=0;6>u;u++)c=n(this.hash,i),t=u%2===0?f*g:f*g+g/2,l=s(c),e=r(c),h={fill:e,"fill-opacity":l,stroke:E,"stroke-opacity":x},this.svg.polyline(m,h).transform({translate:[u*d*1.5-v/2,t-g/2]}),0===u&&this.svg.polyline(m,h).transform({translate:[6*d*1.5-v/2,t-g/2]}),0===f&&(t=u%2===0?6*g:6*g+g/2,this.svg.polyline(m,h).transform({translate:[u*d*1.5-v/2,t-g/2]})),0===u&&0===f&&this.svg.polyline(m,h).transform({translate:[6*d*1.5-v/2,5*g+g/2]}),i++},A.prototype.geoSineWaves=function(){var t,e,i,a,l,h,c,u=Math.floor(o(n(this.hash,0),0,15,100,400)),f=Math.floor(o(n(this.hash,1),0,15,30,100)),p=Math.floor(o(n(this.hash,2),0,15,3,30));for(this.svg.setWidth(u),this.svg.setHeight(36*p),e=0;36>e;e++)h=n(this.hash,e),i=s(h),t=r(h),c=u/4*.7,l={fill:"none",stroke:t,opacity:i,"stroke-width":""+p+"px"},a="M0 "+f+" C "+c+" 0, "+(u/2-c)+" 0, "+u/2+" "+f+" S "+(u-c)+" "+2*f+", "+u+" "+f+" S "+(1.5*u-c)+" 0, "+1.5*u+", "+f,this.svg.path(a,l).transform({translate:[-u/4,p*e-1.5*f]}),this.svg.path(a,l).transform({translate:[-u/4,p*e-1.5*f+36*p]})},A.prototype.geoChevrons=function(){var t,e,i,a,h,c,u,f=o(n(this.hash,0),0,15,30,80),p=o(n(this.hash,0),0,15,30,80),d=l(f,p);for(this.svg.setWidth(6*f),this.svg.setHeight(6*p*.66),e=0,u=0;6>u;u++)for(c=0;6>c;c++)h=n(this.hash,e),i=s(h),t=r(h),a={stroke:E,"stroke-opacity":x,fill:t,"fill-opacity":i,"stroke-width":1},this.svg.group(a).transform({translate:[c*f,u*p*.66-p/2]}).polyline(d).end(),0===u&&this.svg.group(a).transform({translate:[c*f,6*p*.66-p/2]}).polyline(d).end(),e+=1},A.prototype.geoPlusSigns=function(){var t,e,i,a,l,c,u,f,p=o(n(this.hash,0),0,15,10,25),d=3*p,g=h(p);for(this.svg.setWidth(12*p),this.svg.setHeight(12*p),i=0,f=0;6>f;f++)for(u=0;6>u;u++)c=n(this.hash,i),a=s(c),e=r(c),t=f%2===0?0:1,l={fill:e,stroke:E,"stroke-opacity":x,"fill-opacity":a},this.svg.group(l).transform({translate:[u*d-u*p+t*p-p,f*d-f*p-d/2]}).rect(g).end(),0===u&&this.svg.group(l).transform({translate:[4*d-u*p+t*p-p,f*d-f*p-d/2]}).rect(g).end(),0===f&&this.svg.group(l).transform({translate:[u*d-u*p+t*p-p,4*d-f*p-d/2]}).rect(g).end(),0===u&&0===f&&this.svg.group(l).transform({translate:[4*d-u*p+t*p-p,4*d-f*p-d/2]}).rect(g).end(),i++},A.prototype.geoXes=function(){var t,e,i,a,l,c,u,f,p=o(n(this.hash,0),0,15,10,25),d=h(p),g=3*p*.943;for(this.svg.setWidth(3*g),this.svg.setHeight(3*g),i=0,f=0;6>f;f++)for(u=0;6>u;u++)c=n(this.hash,i),a=s(c),t=u%2===0?f*g-.5*g:f*g-.5*g+g/4,e=r(c),l={fill:e,opacity:a},this.svg.group(l).transform({translate:[u*g/2-g/2,t-f*g/2],rotate:[45,g/2,g/2]}).rect(d).end(),0===u&&this.svg.group(l).transform({translate:[6*g/2-g/2,t-f*g/2],rotate:[45,g/2,g/2]}).rect(d).end(),0===f&&(t=u%2===0?6*g-g/2:6*g-g/2+g/4,this.svg.group(l).transform({translate:[u*g/2-g/2,t-6*g/2],rotate:[45,g/2,g/2]}).rect(d).end()),5===f&&this.svg.group(l).transform({translate:[u*g/2-g/2,t-11*g/2],rotate:[45,g/2,g/2]}).rect(d).end(),0===u&&0===f&&this.svg.group(l).transform({translate:[6*g/2-g/2,t-6*g/2],rotate:[45,g/2,g/2]}).rect(d).end(),i++},A.prototype.geoOverlappingCircles=function(){var t,e,i,a,l,h,c,u=n(this.hash,0),f=o(u,0,15,25,200),p=f/2;for(this.svg.setWidth(6*p),this.svg.setHeight(6*p),e=0,c=0;6>c;c++)for(h=0;6>h;h++)l=n(this.hash,e),i=s(l),t=r(l),a={fill:t,opacity:i},this.svg.circle(h*p,c*p,p,a),0===h&&this.svg.circle(6*p,c*p,p,a),0===c&&this.svg.circle(h*p,6*p,p,a),0===h&&0===c&&this.svg.circle(6*p,6*p,p,a),e++},A.prototype.geoOctogons=function(){var t,e,i,a,l,h,u=o(n(this.hash,0),0,15,10,60),f=c(u);for(this.svg.setWidth(6*u),this.svg.setHeight(6*u),e=0,h=0;6>h;h++)for(l=0;6>l;l++)a=n(this.hash,e),i=s(a),t=r(a),this.svg.polyline(f,{fill:t,"fill-opacity":i,stroke:E,"stroke-opacity":x}).transform({translate:[l*u,h*u]}),e+=1},A.prototype.geoSquares=function(){var t,e,i,a,l,h,c=o(n(this.hash,0),0,15,10,60);for(this.svg.setWidth(6*c),this.svg.setHeight(6*c),e=0,h=0;6>h;h++)for(l=0;6>l;l++)a=n(this.hash,e),i=s(a),t=r(a),this.svg.rect(l*c,h*c,c,c,{fill:t,"fill-opacity":i,stroke:E,"stroke-opacity":x}),e+=1},A.prototype.geoConcentricCircles=function(){var t,e,i,a,l,h,c=n(this.hash,0),u=o(c,0,15,10,60),f=u/5;for(this.svg.setWidth(6*(u+f)),this.svg.setHeight(6*(u+f)),e=0,h=0;6>h;h++)for(l=0;6>l;l++)a=n(this.hash,e),i=s(a),t=r(a),this.svg.circle(l*u+l*f+(u+f)/2,h*u+h*f+(u+f)/2,u/2,{fill:"none",stroke:t,opacity:i,"stroke-width":f+"px"}),a=n(this.hash,39-e),i=s(a),t=r(a),this.svg.circle(l*u+l*f+(u+f)/2,h*u+h*f+(u+f)/2,u/4,{fill:t,"fill-opacity":i}),e+=1},A.prototype.geoOverlappingRings=function(){var t,e,i,a,l,h,c,u=n(this.hash,0),f=o(u,0,15,10,60),p=f/4;for(this.svg.setWidth(6*f),this.svg.setHeight(6*f),e=0,c=0;6>c;c++)for(h=0;6>h;h++)l=n(this.hash,e),i=s(l),t=r(l),a={fill:"none",stroke:t,opacity:i,"stroke-width":p+"px"},this.svg.circle(h*f,c*f,f-p/2,a),0===h&&this.svg.circle(6*f,c*f,f-p/2,a),0===c&&this.svg.circle(h*f,6*f,f-p/2,a),0===h&&0===c&&this.svg.circle(6*f,6*f,f-p/2,a),e+=1},A.prototype.geoTriangles=function(){var t,e,i,a,l,h,c,f,p=n(this.hash,0),d=o(p,0,15,15,80),g=d/2*Math.sqrt(3),v=u(d,g);for(this.svg.setWidth(3*d),this.svg.setHeight(6*g),e=0,f=0;6>f;f++)for(c=0;6>c;c++)h=n(this.hash,e),i=s(h),t=r(h),l={fill:t,"fill-opacity":i,stroke:E,"stroke-opacity":x},a=f%2===0?c%2===0?180:0:c%2!==0?180:0,this.svg.polyline(v,l).transform({translate:[c*d*.5-d/2,g*f],rotate:[a,d/2,g/2]}),0===c&&this.svg.polyline(v,l).transform({translate:[6*d*.5-d/2,g*f],rotate:[a,d/2,g/2]}),e+=1},A.prototype.geoDiamonds=function(){var t,e,i,a,l,h,c,u,p=o(n(this.hash,0),0,15,10,50),d=o(n(this.hash,1),0,15,10,50),g=f(p,d);for(this.svg.setWidth(6*p),this.svg.setHeight(3*d),i=0,u=0;6>u;u++)for(c=0;6>c;c++)h=n(this.hash,i),a=s(h),e=r(h),l={fill:e,"fill-opacity":a,stroke:E,"stroke-opacity":x},t=u%2===0?0:p/2,this.svg.polyline(g,l).transform({translate:[c*p-p/2+t,d/2*u-d/2]}),0===c&&this.svg.polyline(g,l).transform({translate:[6*p-p/2+t,d/2*u-d/2]}),0===u&&this.svg.polyline(g,l).transform({translate:[c*p-p/2+t,d/2*6-d/2]}),0===c&&0===u&&this.svg.polyline(g,l).transform({translate:[6*p-p/2+t,d/2*6-d/2]}),i+=1},A.prototype.geoNestedSquares=function(){var t,e,i,a,l,h,c,u=o(n(this.hash,0),0,15,4,12),f=7*u;for(this.svg.setWidth(6*(f+u)+6*u),this.svg.setHeight(6*(f+u)+6*u),e=0,c=0;6>c;c++)for(h=0;6>h;h++)l=n(this.hash,e),i=s(l),t=r(l),a={fill:"none",stroke:t,opacity:i,"stroke-width":u+"px"},this.svg.rect(h*f+h*u*2+u/2,c*f+c*u*2+u/2,f,f,a),l=n(this.hash,39-e),i=s(l),t=r(l),a={fill:"none",stroke:t,opacity:i,"stroke-width":u+"px"},this.svg.rect(h*f+h*u*2+u/2+2*u,c*f+c*u*2+u/2+2*u,3*u,3*u,a),e+=1},A.prototype.geoMosaicSquares=function(){var t,e,i,r=o(n(this.hash,0),0,15,15,50);for(this.svg.setWidth(8*r),this.svg.setHeight(8*r),t=0,i=0;4>i;i++)for(e=0;4>e;e++)e%2===0?i%2===0?g(this.svg,e*r*2,i*r*2,r,n(this.hash,t)):d(this.svg,e*r*2,i*r*2,r,[n(this.hash,t),n(this.hash,t+1)]):i%2===0?d(this.svg,e*r*2,i*r*2,r,[n(this.hash,t),n(this.hash,t+1)]):g(this.svg,e*r*2,i*r*2,r,n(this.hash,t)),t+=1},A.prototype.geoPlaid=function(){var t,e,i,o,a,l,h,c=0,u=0;for(e=0;36>e;)o=n(this.hash,e),c+=o+5,h=n(this.hash,e+1),i=s(h),t=r(h),a=h+5,this.svg.rect(0,c,"100%",a,{opacity:i,fill:t}),c+=a,e+=2;for(e=0;36>e;)o=n(this.hash,e),u+=o+5,h=n(this.hash,e+1),i=s(h),t=r(h),l=h+5,this.svg.rect(u,0,l,"100%",{opacity:i,fill:t}),u+=l,e+=2;this.svg.setWidth(u),this.svg.setHeight(c)},A.prototype.geoTessellation=function(){var t,e,i,a,l,h=o(n(this.hash,0),0,15,5,40),c=h*Math.sqrt(3),u=2*h,f=h/2*Math.sqrt(3),p=v(h,f),d=3*h+2*f,g=2*c+2*h;for(this.svg.setWidth(d),this.svg.setHeight(g),e=0;20>e;e++)switch(l=n(this.hash,e),i=s(l),t=r(l),a={stroke:E,"stroke-opacity":x,fill:t,"fill-opacity":i,"stroke-width":1},e){case 0:this.svg.rect(-h/2,-h/2,h,h,a),this.svg.rect(d-h/2,-h/2,h,h,a),this.svg.rect(-h/2,g-h/2,h,h,a),this.svg.rect(d-h/2,g-h/2,h,h,a);break;case 1:this.svg.rect(u/2+f,c/2,h,h,a);break;case 2:this.svg.rect(-h/2,g/2-h/2,h,h,a),this.svg.rect(d-h/2,g/2-h/2,h,h,a);break;case 3:this.svg.rect(u/2+f,1.5*c+h,h,h,a);break;case 4:this.svg.polyline(p,a).transform({translate:[h/2,-h/2],rotate:[0,h/2,f/2]}),this.svg.polyline(p,a).transform({translate:[h/2,g- -h/2],rotate:[0,h/2,f/2],scale:[1,-1]});break;case 5:this.svg.polyline(p,a).transform({translate:[d-h/2,-h/2],rotate:[0,h/2,f/2],scale:[-1,1]}),this.svg.polyline(p,a).transform({translate:[d-h/2,g+h/2],rotate:[0,h/2,f/2],scale:[-1,-1]});break;case 6:this.svg.polyline(p,a).transform({translate:[d/2+h/2,c/2]});break;case 7:this.svg.polyline(p,a).transform({translate:[d-d/2-h/2,c/2],scale:[-1,1]});break;case 8:this.svg.polyline(p,a).transform({translate:[d/2+h/2,g-c/2],scale:[1,-1]});break;case 9:this.svg.polyline(p,a).transform({translate:[d-d/2-h/2,g-c/2],scale:[-1,-1]});break;case 10:this.svg.polyline(p,a).transform({translate:[h/2,g/2-h/2]});break;case 11:this.svg.polyline(p,a).transform({translate:[d-h/2,g/2-h/2],scale:[-1,1]});break;case 12:this.svg.rect(0,0,h,h,a).transform({translate:[h/2,h/2],rotate:[-30,0,0]});break;case 13:this.svg.rect(0,0,h,h,a).transform({scale:[-1,1],translate:[-d+h/2,h/2],rotate:[-30,0,0]});break;case 14:this.svg.rect(0,0,h,h,a).transform({translate:[h/2,g/2-h/2-h],rotate:[30,0,h]});break;case 15:this.svg.rect(0,0,h,h,a).transform({scale:[-1,1],translate:[-d+h/2,g/2-h/2-h],rotate:[30,0,h]});break;case 16:this.svg.rect(0,0,h,h,a).transform({scale:[1,-1],translate:[h/2,-g+g/2-h/2-h],rotate:[30,0,h]});break;case 17:this.svg.rect(0,0,h,h,a).transform({scale:[-1,-1],translate:[-d+h/2,-g+g/2-h/2-h],rotate:[30,0,h]});break;case 18:this.svg.rect(0,0,h,h,a).transform({scale:[1,-1],translate:[h/2,-g+h/2],rotate:[-30,0,0]});break;case 19:this.svg.rect(0,0,h,h,a).transform({scale:[-1,-1],translate:[-d+h/2,-g+h/2],rotate:[-30,0,0]})}}}).call(this,t("buffer").Buffer)},{"./color":2,"./sha1":5,"./svg":6,buffer:8,extend:9}],5:[function(t,e){"use strict";function i(){function t(){for(var t=16;80>t;t++){var e=u[t-3]^u[t-8]^u[t-14]^u[t-16];u[t]=e<<1|e>>>31}var i,n,o=s,r=a,p=l,d=h,g=c;for(t=0;80>t;t++){20>t?(i=d^r&(p^d),n=1518500249):40>t?(i=r^p^d,n=1859775393):60>t?(i=r&p|d&(r|p),n=2400959708):(i=r^p^d,n=3395469782);var v=(o<<5|o>>>27)+i+g+n+(0|u[t]);g=d,d=p,p=r<<30|r>>>2,r=o,o=v}for(s=s+o|0,a=a+r|0,l=l+p|0,h=h+d|0,c=c+g|0,f=0,t=0;16>t;t++)u[t]=0}function e(e){u[f]|=(255&e)<n;n++)e(t.charCodeAt(n))}function n(t){if("string"==typeof t)return i(t);var n=t.length;d+=8*n;for(var o=0;n>o;o++)e(t[o])}function o(t){for(var e="",i=28;i>=0;i-=4)e+=(t>>i&15).toString(16);return e}function r(){e(128),(f>14||14===f&&24>p)&&t(),f=14,p=24,e(0),e(0),e(d>0xffffffffff?d/1099511627776:0),e(d>4294967295?d/4294967296:0);for(var i=24;i>=0;i-=8)e(d>>i);return o(s)+o(a)+o(l)+o(h)+o(c)}var s=1732584193,a=4023233417,l=2562383102,h=271733878,c=3285377520,u=new Uint32Array(80),f=0,p=24,d=0;return{update:n,digest:r}}e.exports=function(t){if(void 0===t)return i();var e=i();return e.update(t),e.digest()}},{}],6:[function(t,e){"use strict";function i(){return this.width=100,this.height=100,this.svg=new o("svg"),this.context=[],this.setAttributes(this.svg,{xmlns:"http://www.w3.org/2000/svg",width:this.width,height:this.height}),this}var n=t("extend"),o=t("./xml");e.exports=i,i.prototype.currentContext=function(){return this.context[this.context.length-1]||this.svg},i.prototype.end=function(){return this.context.pop(),this},i.prototype.currentNode=function(){var t=this.currentContext();return t.lastChild||t},i.prototype.transform=function(t){return this.currentNode().setAttribute("transform",Object.keys(t).map(function(e){return e+"("+t[e].join(",")+")"}).join(" ")),this},i.prototype.setAttributes=function(t,e){Object.keys(e).forEach(function(i){t.setAttribute(i,e[i])})},i.prototype.setWidth=function(t){this.svg.setAttribute("width",Math.floor(t))},i.prototype.setHeight=function(t){this.svg.setAttribute("height",Math.floor(t))},i.prototype.toString=function(){return this.svg.toString()},i.prototype.rect=function(t,e,i,r,s){var a=this;if(Array.isArray(t))return t.forEach(function(t){a.rect.apply(a,t.concat(s))}),this;var l=new o("rect");return this.currentContext().appendChild(l),this.setAttributes(l,n({x:t,y:e,width:i,height:r},s)),this},i.prototype.circle=function(t,e,i,r){var s=new o("circle");return this.currentContext().appendChild(s),this.setAttributes(s,n({cx:t,cy:e,r:i},r)),this},i.prototype.path=function(t,e){var i=new o("path");return this.currentContext().appendChild(i),this.setAttributes(i,n({d:t},e)),this},i.prototype.polyline=function(t,e){var i=this;if(Array.isArray(t))return t.forEach(function(t){i.polyline(t,e)}),this;var r=new o("polyline");return this.currentContext().appendChild(r),this.setAttributes(r,n({points:t},e)),this},i.prototype.group=function(t){var e=new o("g");return this.currentContext().appendChild(e),this.context.push(e),this.setAttributes(e,n({},t)),this}},{"./xml":7,extend:9}],7:[function(t,e){"use strict";var i=e.exports=function(t){return this instanceof i?(this.tagName=t,this.attributes=Object.create(null),this.children=[],this.lastChild=null,this):new i(t)};i.prototype.appendChild=function(t){return this.children.push(t),this.lastChild=t,this},i.prototype.setAttribute=function(t,e){return this.attributes[t]=e,this},i.prototype.toString=function(){var t=this;return["<",t.tagName,Object.keys(t.attributes).map(function(e){return[" ",e,'="',t.attributes[e],'"'].join("")}).join(""),">",t.children.map(function(t){return t.toString()}).join(""),""].join("")}},{}],8:[function(){},{}],9:[function(t,e){function i(t){if(!t||"[object Object]"!==o.call(t)||t.nodeType||t.setInterval)return!1;var e=n.call(t,"constructor"),i=n.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!e&&!i)return!1;var r;for(r in t);return void 0===r||n.call(t,r)}var n=Object.prototype.hasOwnProperty,o=Object.prototype.toString;e.exports=function r(){var t,e,n,o,s,a,l=arguments[0]||{},h=1,c=arguments.length,u=!1;for("boolean"==typeof l&&(u=l,l=arguments[1]||{},h=2),"object"!=typeof l&&"function"!=typeof l&&(l={});c>h;h++)if(null!=(t=arguments[h]))for(e in t)n=l[e],o=t[e],l!==o&&(u&&o&&(i(o)||(s=Array.isArray(o)))?(s?(s=!1,a=n&&Array.isArray(n)?n:[]):a=n&&i(n)?n:{},l[e]=r(u,a,o)):void 0!==o&&(l[e]=o));return l}},{}]},{},[1])(1)}),function(){"use strict";if(navigator.userAgent.match(/IEMobile\/10\.0/)){var t=document.createElement("style");t.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")),document.querySelector("head").appendChild(t)}}(),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=function(e,i){return void 0===i&&(i="undefined"!=typeof window?require("jquery"):require("jquery")(e)),t(i),i}:t(jQuery)}(function(t){function e(e,i){var o=this;this.options=t.extend({},n,i),o.navigation=t(e),o.document=t(document),o.window=t(window),""==this.options.parent?this.options.parent=o.navigation.parent():"",o.nav_open=!1,o.parent_full_width=0,o.radCoef=180/Math.PI,o.sTouch={x:0,y:0},o.cTouch={x:0,y:0},o.sTime=0,o.nav_position=0,o.percent_open=0,o.nav_moving=!1,o.init()}var i="okayNav",n={parent:"",toggle_icon_class:"okayNav__menu-toggle",toggle_icon_content:"",align_right:!0,swipe_enabled:!0,threshold:50,resize_delay:10,beforeOpen:function(){},afterOpen:function(){},beforeClose:function(){},afterClose:function(){},itemHidden:function(){},itemDisplayed:function(){}};t.extend(e.prototype,{init:function(){var e=this;t("body").addClass("okayNav-loaded"),e.navigation.addClass("okayNav loaded").children("ul").addClass("okayNav__nav--visible"),e.options.align_right?e.navigation.append('