From 3abada0f321fe80012451684ec12ae6a454f0aaf Mon Sep 17 00:00:00 2001 From: David Fischer Date: Tue, 14 Nov 2017 22:58:34 -0800 Subject: [PATCH] Allow promos to be placed in the docs footer - this is in addition to the normal left navigation - works on the RTD and Alabaster themes --- media/css/readthedocs-doc-embed.css | 38 +++- .../static-src/core/js/doc-embed/constants.js | 5 + .../static-src/core/js/doc-embed/footer.js | 3 +- .../core/static-src/core/js/sponsorship.js | 180 ++++++++++-------- .../static/core/js/readthedocs-doc-embed.js | 2 +- 5 files changed, 146 insertions(+), 82 deletions(-) diff --git a/media/css/readthedocs-doc-embed.css b/media/css/readthedocs-doc-embed.css index 1809ee31f85..0fee60f03a4 100644 --- a/media/css/readthedocs-doc-embed.css +++ b/media/css/readthedocs-doc-embed.css @@ -8,21 +8,21 @@ } .rst-other-versions { - text-align: left; + text-align: left; } .rst-other-versions a { - border: 0; + border: 0; } .rst-other-versions dl { - margin: 0; + margin: 0; } /* Fix RTD theme bottom margin */ .rst-content .line-block { - margin-bottom: 24px + margin-bottom: 24px } /* Fix for nav bottom padding with flyout */ @@ -134,11 +134,39 @@ div.rtd-pro.alabaster div.rtd-pro-about a { border-bottom: 0px; } -div.rtd-pro.alabaster div.rtd-pro-about i.fa-info-circle:before { +div.rtd-pro.alabaster div.rtd-pro-about i.fa-info-circle:before, +div.rtd-pro.rtd-pro-footer div.rtd-pro-about i.fa-info-circle:before { content: ""; color: #a3a3a3; } +/* Hide the "sponsored" note in the left navigation */ +div.rtd-pro-about span { + display: none; +} + +/* Footer promos */ +div.rtd-pro.rtd-pro-footer div.rtd-pro-about span { + display: inline; +} +div.rtd-pro.rtd-pro-footer div.rtd-pro-about { + float: none; +} +div.rtd-pro.rtd-pro-footer div.rtd-pro-about a { + text-decoration: none; +} +div.rtd-pro.rtd-pro-footer { + text-align: left; +} +div.rtd-pro.rtd-pro-footer a.rtd-pro-image-wrapper { + float: right; + margin-left: 25px; +} + +div.rtd-pro-wrapper { + clear: both; +} + @media (max-width: 768px) { div.rst-pro.wy-menu { display: none; diff --git a/readthedocs/core/static-src/core/js/doc-embed/constants.js b/readthedocs/core/static-src/core/js/doc-embed/constants.js index 6119bcd939c..596cd6d9109 100644 --- a/readthedocs/core/static-src/core/js/doc-embed/constants.js +++ b/readthedocs/core/static-src/core/js/doc-embed/constants.js @@ -10,4 +10,9 @@ exports.PROMO_SUPPORTED_THEMES = [ exports.THEME_ALABASTER ] +exports.PROMO_TYPES = { + LEFTNAV: 'doc', // Left navigation on documentation pages + FOOTER: 'site-footer' // Footer of documentation pages +}; + module.exports = exports; diff --git a/readthedocs/core/static-src/core/js/doc-embed/footer.js b/readthedocs/core/static-src/core/js/doc-embed/footer.js index b66ba9c0548..526d045259d 100644 --- a/readthedocs/core/static-src/core/js/doc-embed/footer.js +++ b/readthedocs/core/static-src/core/js/doc-embed/footer.js @@ -73,7 +73,8 @@ function injectFooter(data) { data.promo_data.text, data.promo_data.link, data.promo_data.image, - config.theme + config.theme, + data.promo_data.display_type ) if (promo) { promo.display(); diff --git a/readthedocs/core/static-src/core/js/sponsorship.js b/readthedocs/core/static-src/core/js/sponsorship.js index aabae71964c..4b9ac0339b0 100644 --- a/readthedocs/core/static-src/core/js/sponsorship.js +++ b/readthedocs/core/static-src/core/js/sponsorship.js @@ -6,13 +6,24 @@ module.exports = { Promo: Promo }; -function Promo (id, text, link, image, theme) { +function Promo (id, text, link, image, theme, display_type) { this.id = id; this.text = text; this.link = link; this.image = image; this.theme = theme || constants.THEME_RTD; + this.display_type = display_type || constants.PROMO_TYPES.LEFTNAV; this.promo = null; + + // Handler when a promo receives a click + this.click_handler = function () { + if (_gaq) { + _gaq.push( + ['rtfd._setAccount', 'UA-17997319-1'], + ['rtfd._trackEvent', 'Promo', 'Click', self.id] + ); + } + }; } Promo.prototype.create = function () { @@ -20,93 +31,112 @@ Promo.prototype.create = function () { menu, promo_class; if (this.theme == constants.THEME_RTD) { - menu = this.get_sphinx_rtd_theme_menu(); - promo_class = 'wy-menu'; + menu = this.get_sphinx_rtd_theme_promo_selector(); + promo_class = this.display_type === constants.PROMO_TYPES.FOOTER ? 'rtd-pro-footer' : 'wy-menu'; } else if (this.theme == constants.THEME_ALABASTER) { - menu = this.get_alabaster_menu(); - promo_class = 'alabaster'; + menu = this.get_alabaster_promo_selector(); + promo_class = this.display_type === constants.PROMO_TYPES.FOOTER ? 'rtd-pro-footer' : 'alabaster'; } - if (typeof(menu) != 'undefined') { - // Add elements - promo = $('
') - .attr('class', 'rtd-pro ' + promo_class); - - // Promo info - var promo_about = $('
') - .attr('class', 'rtd-pro-about'); - var promo_about_link = $('') - .attr('href', 'https://readthedocs.org/sustainability/advertising/') - .appendTo(promo_about); - var promo_about_icon = $('') - .attr('class', 'fa fa-info-circle') - .appendTo(promo_about_link); - promo_about.appendTo(promo); - - // On Click handler - function promo_click() { - if (_gaq) { - _gaq.push( - ['rtfd._setAccount', 'UA-17997319-1'], - ['rtfd._trackEvent', 'Promo', 'Click', self.id] - ); - } - } - - // Promo image - if (self.image) { - var promo_image_link = $('') - .attr('class', 'rtd-pro-image-wrapper') - .attr('href', self.link) - .attr('target', '_blank') - .on('click', promo_click); - var promo_image = $('') - .attr('class', 'rtd-pro-image') - .attr('src', self.image) - .appendTo(promo_image_link); - promo.append(promo_image_link); - } - // Create link with callback - var promo_text = $('') - .html(self.text); - $(promo_text).find('a').each(function () { - $(this) - .attr('class', 'rtd-pro-link') - .attr('href', self.link) - .attr('target', '_blank') - .on('click', promo_click); - }); - promo.append(promo_text); - - promo.appendTo(menu); - - promo.wrapper = $('
') - .attr('class', 'rtd-pro-wrapper') - .appendTo(menu); - - return promo; + if (typeof(menu) != 'undefined') { + this.place_promo(menu, promo_class); } } -Promo.prototype.get_alabaster_menu = function () { +Promo.prototype.place_promo = function (selector, promo_class) { + var self = this; + + // Add elements + var promo = $('
') + .attr('class', 'rtd-pro ' + promo_class); + + // Promo info + var promo_about = $('
') + .attr('class', 'rtd-pro-about'); + var promo_about_link = $('') + .attr('href', 'https://readthedocs.org/sustainability/advertising/') + .appendTo(promo_about); + $('').text('Sponsored ').appendTo(promo_about_link); + var promo_about_icon = $('') + .attr('class', 'fa fa-info-circle') + .appendTo(promo_about_link); + promo_about.appendTo(promo); + + // Promo image + if (self.image) { + var promo_image_link = $('') + .attr('class', 'rtd-pro-image-wrapper') + .attr('href', self.link) + .attr('target', '_blank') + .on('click', this.click_handler); + var promo_image = $('') + .attr('class', 'rtd-pro-image') + .attr('src', self.image) + .appendTo(promo_image_link); + promo.append(promo_image_link); + } + + // Create link with callback + var promo_text = $('') + .html(self.text); + $(promo_text).find('a').each(function () { + $(this) + .attr('class', 'rtd-pro-link') + .attr('href', self.link) + .attr('target', '_blank') + .on('click', this.click_handler); + }); + promo.append(promo_text); + + promo.appendTo(selector); + + promo.wrapper = $('
') + .attr('class', 'rtd-pro-wrapper') + .appendTo(selector); + + return promo; +}; + +Promo.prototype.get_alabaster_promo_selector = function () { + // Return a jQuery selector where the promo goes on the Alabaster theme var self = this, - nav_side = $('div.sphinxsidebar > div.sphinxsidebarwrapper'); + selector; + + if (self.display_type === constants.PROMO_TYPES.FOOTER) { + selector = $('
') + .attr('class', 'rtd-pro-footer-wrapper body') + .appendTo('div.bodywrapper'); + $('
').insertBefore(selector); + $('
').insertAfter(selector); + } else { + selector = $('div.sphinxsidebar > div.sphinxsidebarwrapper'); + } - if (nav_side.length) { - return nav_side; + if (selector.length) { + return selector; } -} +}; -Promo.prototype.get_sphinx_rtd_theme_menu = function () { +Promo.prototype.get_sphinx_rtd_theme_promo_selector = function () { + // Return a jQuery selector where the promo goes on the RTD theme var self = this, - nav_side = $('nav.wy-nav-side > div.wy-side-scroll'); + selector; + + if (self.display_type === constants.PROMO_TYPES.FOOTER) { + selector = $('
') + .attr('class', 'rtd-pro-footer-wrapper') + .insertBefore('footer hr'); + $('
').insertBefore(selector); + } else { + selector = $('nav.wy-nav-side > div.wy-side-scroll'); + } - if (nav_side.length) { - return nav_side; + if (selector.length) { + return selector; } -} +}; // Position promo Promo.prototype.display = function () { @@ -121,10 +151,10 @@ Promo.prototype.display = function () { if (promo) { promo.show(); } -} +}; Promo.prototype.disable = function () { -} +}; // Variant factory method Promo.from_variants = function (variants) { diff --git a/readthedocs/core/static/core/js/readthedocs-doc-embed.js b/readthedocs/core/static/core/js/readthedocs-doc-embed.js index f7f8d36c0f0..7ceb773d0cc 100644 --- a/readthedocs/core/static/core/js/readthedocs-doc-embed.js +++ b/readthedocs/core/static/core/js/readthedocs-doc-embed.js @@ -1 +1 @@ -!function t(e,r,n){function i(a,s){if(!r[a]){if(!e[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[a]={exports:{}};e[a][0].call(u.exports,function(t){var r=e[a][1][t];return i(r?r:t)},u,u.exports,t,e,r,n)}return r[a].exports}for(var o="function"==typeof require&&require,a=0;a
"),t(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var r=t(this);expand=t(''),expand.on("click",function(t){return e.toggleCurrent(r),t.stopPropagation(),!1}),r.prepend(expand)})},t.reset=function(){var t=encodeURI(window.location.hash);if(t)try{var e=$(".wy-menu-vertical").find('[href="'+t+'"]');if(0===e.length){var r=$('.document a[href="'+t+'"]'),n=r.closest("div.section");e=$(".wy-menu-vertical").find('[href="#'+n.attr("id")+'"]')}$(".wy-menu-vertical li.toctree-l1 li.current").removeClass("current"),e.closest("li.toctree-l2").addClass("current"),e.closest("li.toctree-l3").addClass("current"),e.closest("li.toctree-l4").addClass("current")}catch(i){console.log("Error expanding nav for anchor",i)}},t.onScroll=function(){this.winScroll=!1;var t=this.win.scrollTop(),e=t+this.winHeight,r=this.navBar.scrollTop(),n=r+(t-this.winPosition);t<0||e>this.docHeight||(this.navBar.scrollTop(n),this.winPosition=t)},t.onResize=function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},t.hashChange=function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},t.toggleCurrent=function(t){var e=t.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")},t}var i="undefined"!=typeof window?window.jQuery:t("jquery");e.exports.ThemeNav=n(),"undefined"!=typeof window&&(window.SphinxRtdTheme={StickyNav:e.exports.ThemeNav})},{jquery:"jquery"}],2:[function(t,e,r){function n(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}function i(t,e,r){}function o(t,e,r){}function a(t,e,r){}function s(t,e,r){}function l(t){return t.replace(S,"<").replace(A,">")}function c(t,e,r,n){if(r=g(r),"href"===e||"src"===e){if(r=_.trim(r),"#"===r)return"#";if("http://"!==r.substr(0,7)&&"https://"!==r.substr(0,8)&&"mailto:"!==r.substr(0,7)&&"#"!==r[0]&&"/"!==r[0])return""}else if("background"===e){if(R.lastIndex=0,R.test(r))return""}else if("style"===e){if(O.lastIndex=0,O.test(r))return"";if(H.lastIndex=0,H.test(r)&&(R.lastIndex=0,R.test(r)))return"";n!==!1&&(n=n||T,r=n.process(r))}return r=m(r)}function u(t){return t.replace(C,""")}function d(t){return t.replace(E,'"')}function f(t){return t.replace($,function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))})}function p(t){return t.replace(j,":").replace(I," ")}function h(t){for(var e="",r=0,n=t.length;r/g,C=/"/g,E=/"/g,$=/&#([a-zA-Z0-9]*);?/gim,j=/:?/gim,I=/&newline;?/gim,R=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,O=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,H=/u\s*r\s*l\s*\(.*/gi,D=//g;r.whiteList=n(),r.getDefaultWhiteList=n,r.onTag=i,r.onIgnoreTag=o,r.onTagAttr=a,r.onIgnoreTagAttr=s,r.safeAttrValue=c,r.escapeHtml=l,r.escapeQuote=u,r.unescapeQuote=d,r.escapeHtmlEntities=f,r.escapeDangerHtml5Entities=p,r.clearNonPrintableCharacter=h,r.friendlyAttrValue=g,r.escapeAttrValue=m,r.onIgnoreTagStripAll=v,r.StripTagBody=b,r.stripCommentTag=w,r.stripBlankChar=y,r.cssFilter=T,r.getDefaultCSSWhiteList=k},{"./util":5,cssfilter:9}],3:[function(t,e,r){function n(t,e){var r=new a(e);return r.process(t)}var i=t("./default"),o=t("./parser"),a=t("./xss");r=e.exports=n,r.FilterXSS=a;for(var s in i)r[s]=i[s];for(var s in o)r[s]=o[s];"undefined"!=typeof window&&(window.filterXSS=e.exports)},{"./default":2,"./parser":4,"./xss":6}],4:[function(t,e,r){function n(t){var e=t.indexOf(" ");if(e===-1)var r=t.slice(1,-1);else var r=t.slice(1,e+1);return r=d.trim(r).toLowerCase(),"/"===r.slice(0,1)&&(r=r.slice(1)),"/"===r.slice(-1)&&(r=r.slice(0,-1)),r}function i(t){return""===p){o+=r(t.slice(a,s)),d=t.slice(s,c+1),f=n(d),o+=e(s,o.length,f,d,i(d)),a=c+1,s=!1;continue}if(('"'===p||"'"===p)&&"="===t.charAt(c-1)){l=p;continue}}else if(p===l){l=!1;continue}}return a0;e--){var r=t[e];if(" "!==r)return"="===r?e:-1}}function c(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}function u(t){return c(t)?t.substr(1,t.length-2):t}var d=t("./util"),f=/[^a-zA-Z0-9_:\.\-]/gim;r.parseTag=o,r.parseAttr=a},{"./util":5}],5:[function(t,e,r){e.exports={indexOf:function(t,e){var r,n;if(Array.prototype.indexOf)return t.indexOf(e);for(r=0,n=t.length;r";var w=i(l),y=o[r],x=d(w.html,function(t,e){var i=f.indexOf(y,t)!==-1,o=c(r,t,e,i);if(!n(o))return o;if(i)return e=h(r,t,e,m),e?t+'="'+e+'"':t;var o=p(r,t,e,i);return n(o)?void 0:o}),l="<"+r;return x&&(l+=" "+x),w.closing&&(l+=" /"),l+=">"}var b=s(r,l,v);return n(b)?g(l):b},g);return v&&(b=v.remove(b)),b},e.exports=a},{"./default":2,"./parser":4,"./util":5,cssfilter:9}],7:[function(t,e,r){function n(t){return void 0===t||null===t}function i(t){t=t||{},t.whiteList=t.whiteList||o.whiteList,t.onAttr=t.onAttr||o.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||o.onIgnoreAttr,this.options=t}var o=t("./default"),a=t("./parser");t("./util");i.prototype.process=function(t){if(t=t||"",t=t.toString(),!t)return"";var e=this,r=e.options,i=r.whiteList,o=r.onAttr,s=r.onIgnoreAttr,l=a(t,function(t,e,r,a,l){var c=i[r],u=!1;c===!0?u=c:"function"==typeof c?u=c(a):c instanceof RegExp&&(u=c.test(a)),u!==!0&&(u=!1);var d={position:e,sourcePosition:t,source:l,isWhite:u};if(u){var f=o(r,a,d);return n(f)?r+":"+a:f}var f=s(r,a,d);if(!n(f))return f});return l},e.exports=i},{"./default":8,"./parser":10,"./util":11}],8:[function(t,e,r){function n(){var t={};return t["align-content"]=!1,t["align-items"]=!1,t["align-self"]=!1,t["alignment-adjust"]=!1,t["alignment-baseline"]=!1,t.all=!1,t["anchor-point"]=!1,t.animation=!1,t["animation-delay"]=!1,t["animation-direction"]=!1,t["animation-duration"]=!1,t["animation-fill-mode"]=!1,t["animation-iteration-count"]=!1,t["animation-name"]=!1,t["animation-play-state"]=!1,t["animation-timing-function"]=!1,t.azimuth=!1,t["backface-visibility"]=!1,t.background=!0,t["background-attachment"]=!0,t["background-clip"]=!0,t["background-color"]=!0,t["background-image"]=!0,t["background-origin"]=!0,t["background-position"]=!0,t["background-repeat"]=!0,t["background-size"]=!0,t["baseline-shift"]=!1,t.binding=!1,t.bleed=!1,t["bookmark-label"]=!1,t["bookmark-level"]=!1,t["bookmark-state"]=!1,t.border=!0,t["border-bottom"]=!0,t["border-bottom-color"]=!0,t["border-bottom-left-radius"]=!0,t["border-bottom-right-radius"]=!0,t["border-bottom-style"]=!0,t["border-bottom-width"]=!0,t["border-collapse"]=!0,t["border-color"]=!0,t["border-image"]=!0,t["border-image-outset"]=!0,t["border-image-repeat"]=!0,t["border-image-slice"]=!0,t["border-image-source"]=!0,t["border-image-width"]=!0,t["border-left"]=!0,t["border-left-color"]=!0,t["border-left-style"]=!0,t["border-left-width"]=!0,t["border-radius"]=!0,t["border-right"]=!0,t["border-right-color"]=!0,t["border-right-style"]=!0,t["border-right-width"]=!0,t["border-spacing"]=!0,t["border-style"]=!0,t["border-top"]=!0,t["border-top-color"]=!0,t["border-top-left-radius"]=!0,t["border-top-right-radius"]=!0,t["border-top-style"]=!0,t["border-top-width"]=!0,t["border-width"]=!0,t.bottom=!1,t["box-decoration-break"]=!0,t["box-shadow"]=!0,t["box-sizing"]=!0,t["box-snap"]=!0,t["box-suppress"]=!0,t["break-after"]=!0,t["break-before"]=!0,t["break-inside"]=!0,t["caption-side"]=!1,t.chains=!1,t.clear=!0,t.clip=!1,t["clip-path"]=!1,t["clip-rule"]=!1,t.color=!0,t["color-interpolation-filters"]=!0,t["column-count"]=!1,t["column-fill"]=!1,t["column-gap"]=!1,t["column-rule"]=!1,t["column-rule-color"]=!1,t["column-rule-style"]=!1,t["column-rule-width"]=!1,t["column-span"]=!1,t["column-width"]=!1,t.columns=!1,t.contain=!1,t.content=!1,t["counter-increment"]=!1,t["counter-reset"]=!1,t["counter-set"]=!1,t.crop=!1,t.cue=!1,t["cue-after"]=!1,t["cue-before"]=!1,t.cursor=!1,t.direction=!1,t.display=!0,t["display-inside"]=!0,t["display-list"]=!0,t["display-outside"]=!0,t["dominant-baseline"]=!1,t.elevation=!1,t["empty-cells"]=!1,t.filter=!1,t.flex=!1,t["flex-basis"]=!1,t["flex-direction"]=!1,t["flex-flow"]=!1,t["flex-grow"]=!1,t["flex-shrink"]=!1,t["flex-wrap"]=!1,t["float"]=!1,t["float-offset"]=!1,t["flood-color"]=!1,t["flood-opacity"]=!1,t["flow-from"]=!1,t["flow-into"]=!1,t.font=!0,t["font-family"]=!0,t["font-feature-settings"]=!0,t["font-kerning"]=!0,t["font-language-override"]=!0,t["font-size"]=!0,t["font-size-adjust"]=!0,t["font-stretch"]=!0,t["font-style"]=!0,t["font-synthesis"]=!0,t["font-variant"]=!0,t["font-variant-alternates"]=!0,t["font-variant-caps"]=!0,t["font-variant-east-asian"]=!0,t["font-variant-ligatures"]=!0,t["font-variant-numeric"]=!0,t["font-variant-position"]=!0,t["font-weight"]=!0,t.grid=!1,t["grid-area"]=!1,t["grid-auto-columns"]=!1,t["grid-auto-flow"]=!1,t["grid-auto-rows"]=!1,t["grid-column"]=!1,t["grid-column-end"]=!1,t["grid-column-start"]=!1,t["grid-row"]=!1,t["grid-row-end"]=!1,t["grid-row-start"]=!1,t["grid-template"]=!1,t["grid-template-areas"]=!1,t["grid-template-columns"]=!1,t["grid-template-rows"]=!1,t["hanging-punctuation"]=!1,t.height=!0,t.hyphens=!1,t.icon=!1,t["image-orientation"]=!1,t["image-resolution"]=!1,t["ime-mode"]=!1,t["initial-letters"]=!1,t["inline-box-align"]=!1,t["justify-content"]=!1,t["justify-items"]=!1,t["justify-self"]=!1,t.left=!1,t["letter-spacing"]=!0,t["lighting-color"]=!0,t["line-box-contain"]=!1,t["line-break"]=!1,t["line-grid"]=!1,t["line-height"]=!1,t["line-snap"]=!1,t["line-stacking"]=!1,t["line-stacking-ruby"]=!1,t["line-stacking-shift"]=!1,t["line-stacking-strategy"]=!1,t["list-style"]=!0,t["list-style-image"]=!0,t["list-style-position"]=!0,t["list-style-type"]=!0,t.margin=!0,t["margin-bottom"]=!0,t["margin-left"]=!0,t["margin-right"]=!0,t["margin-top"]=!0,t["marker-offset"]=!1,t["marker-side"]=!1,t.marks=!1,t.mask=!1,t["mask-box"]=!1,t["mask-box-outset"]=!1,t["mask-box-repeat"]=!1,t["mask-box-slice"]=!1,t["mask-box-source"]=!1,t["mask-box-width"]=!1,t["mask-clip"]=!1,t["mask-image"]=!1,t["mask-origin"]=!1,t["mask-position"]=!1,t["mask-repeat"]=!1,t["mask-size"]=!1,t["mask-source-type"]=!1,t["mask-type"]=!1,t["max-height"]=!0,t["max-lines"]=!1,t["max-width"]=!0,t["min-height"]=!0,t["min-width"]=!0,t["move-to"]=!1,t["nav-down"]=!1,t["nav-index"]=!1,t["nav-left"]=!1,t["nav-right"]=!1,t["nav-up"]=!1,t["object-fit"]=!1,t["object-position"]=!1,t.opacity=!1,t.order=!1,t.orphans=!1,t.outline=!1,t["outline-color"]=!1,t["outline-offset"]=!1,t["outline-style"]=!1,t["outline-width"]=!1,t.overflow=!1,t["overflow-wrap"]=!1,t["overflow-x"]=!1,t["overflow-y"]=!1,t.padding=!0,t["padding-bottom"]=!0,t["padding-left"]=!0,t["padding-right"]=!0,t["padding-top"]=!0,t.page=!1,t["page-break-after"]=!1,t["page-break-before"]=!1,t["page-break-inside"]=!1,t["page-policy"]=!1,t.pause=!1,t["pause-after"]=!1,t["pause-before"]=!1,t.perspective=!1,t["perspective-origin"]=!1,t.pitch=!1,t["pitch-range"]=!1,t["play-during"]=!1,t.position=!1,t["presentation-level"]=!1,t.quotes=!1,t["region-fragment"]=!1,t.resize=!1,t.rest=!1,t["rest-after"]=!1,t["rest-before"]=!1,t.richness=!1,t.right=!1,t.rotation=!1,t["rotation-point"]=!1,t["ruby-align"]=!1,t["ruby-merge"]=!1,t["ruby-position"]=!1,t["shape-image-threshold"]=!1,t["shape-outside"]=!1,t["shape-margin"]=!1,t.size=!1,t.speak=!1,t["speak-as"]=!1,t["speak-header"]=!1,t["speak-numeral"]=!1,t["speak-punctuation"]=!1,t["speech-rate"]=!1,t.stress=!1,t["string-set"]=!1,t["tab-size"]=!1,t["table-layout"]=!1,t["text-align"]=!0,t["text-align-last"]=!0,t["text-combine-upright"]=!0,t["text-decoration"]=!0,t["text-decoration-color"]=!0,t["text-decoration-line"]=!0,t["text-decoration-skip"]=!0,t["text-decoration-style"]=!0,t["text-emphasis"]=!0,t["text-emphasis-color"]=!0,t["text-emphasis-position"]=!0,t["text-emphasis-style"]=!0,t["text-height"]=!0,t["text-indent"]=!0,t["text-justify"]=!0,t["text-orientation"]=!0,t["text-overflow"]=!0,t["text-shadow"]=!0,t["text-space-collapse"]=!0,t["text-transform"]=!0,t["text-underline-position"]=!0,t["text-wrap"]=!0,t.top=!1,t.transform=!1,t["transform-origin"]=!1,t["transform-style"]=!1,t.transition=!1,t["transition-delay"]=!1,t["transition-duration"]=!1,t["transition-property"]=!1,t["transition-timing-function"]=!1,t["unicode-bidi"]=!1,t["vertical-align"]=!1,t.visibility=!1,t["voice-balance"]=!1,t["voice-duration"]=!1,t["voice-family"]=!1,t["voice-pitch"]=!1,t["voice-range"]=!1,t["voice-rate"]=!1,t["voice-stress"]=!1,t["voice-volume"]=!1,t.volume=!1,t["white-space"]=!1,t.widows=!1,t.width=!0,t["will-change"]=!1,t["word-break"]=!0,t["word-spacing"]=!0,t["word-wrap"]=!0,t["wrap-flow"]=!1,t["wrap-through"]=!1,t["writing-mode"]=!1,t["z-index"]=!1,t}function i(t,e,r){}function o(t,e,r){}r.whiteList=n(),r.getDefaultWhiteList=n,r.onAttr=i,r.onIgnoreAttr=o},{}],9:[function(t,e,r){function n(t,e){var r=new o(e);return r.process(t)}var i=t("./default"),o=t("./css");r=e.exports=n,r.FilterCSS=o;for(var a in i)r[a]=i[a];"undefined"!=typeof window&&(window.filterCSS=e.exports)},{"./css":7,"./default":8}],10:[function(t,e,r){function n(t,e){function r(){if(!o){var r=i.trim(t.slice(a,s)),n=r.indexOf(":");if(n!==-1){var c=i.trim(r.slice(0,n)),u=i.trim(r.slice(n+1));if(c){var d=e(a,l.length,c,u,r);d&&(l+=d+"; ")}}}a=s+1}t=i.trimRight(t),";"!==t[t.length-1]&&(t+=";");for(var n=t.length,o=!1,a=0,s=0,l="";s").attr({type:"hidden",name:"project",value:t.project}).appendTo("#rtd-search-form"),$("").attr({type:"hidden",name:"version",value:t.version}).appendTo("#rtd-search-form"),$("").attr({type:"hidden",name:"type",value:"file"}).appendTo("#rtd-search-form"),$("#rtd-search-form").prop("action",t.api_host+"/search/");var e=$("nav.wy-nav-side:first"),r=$(window),n="stickynav",o=function(){e.height()<=r.height()?e.addClass(n):e.removeClass(n)};r.on("resize",o),o()}}var i=t("./rtd-data");e.exports={init:n}},{"./rtd-data":15}],15:[function(t,e,r){function n(){var t=Object.create(o),e={api_host:"https://readthedocs.org"};return $.extend(t,e,window.READTHEDOCS_DATA),t}var i=t("./constants"),o={is_rtd_theme:function(){return this.get_theme_name()===i.THEME_RTD},theme_supports_promo:function(){return i.PROMO_SUPPORTED_THEMES.indexOf(this.get_theme_name())>-1},is_sphinx_builder:function(){return!("builder"in this)||"mkdocs"!=this.builder},get_theme_name:function(){return this.theme!==i.THEME_RTD&&1===$("div.rst-other-versions").length?i.THEME_RTD:this.theme},show_promo:function(){return"https://readthedocs.com"!==this.api_host&&this.is_sphinx_builder()&&this.theme_supports_promo()}};e.exports={get:n}},{"./constants":12}],16:[function(t,e,r){function n(){var t=o.get();i(t)}function i(t){var e=t.project,r=t.version,n=t.language||"en",i=t.api_host,o=function(t){var o=$.Deferred(),s=document.createElement("a");s.href=i,s.pathname="/api/v2/docsearch/",s.search="?q="+$.urlencode(t)+"&project="+e+"&version="+r+"&language="+n,o.then(function(r){var n=r.hits||{},i=n.hits||[];if(i.length)for(var o in i){var s=i[o],l=s.fields||{},c=$('
  • '),u=document.createElement("a"),d=s.highlight;if(u.href+=l.link+DOCUMENTATION_OPTIONS.FILE_SUFFIX,u.search="?highlight="+$.urlencode(t),c.append($("
    ").attr("href",u).html(l.title)),l.project!=e&&c.append($("").text(" (from project "+l.project+")")),d.content.length){var f=$('
    ').html(a(d.content[0]));f.find("em").addClass("highlighted"),c.append(f)}Search.output.append(c),c.slideDown(5)}i.length?Search.status.text(_("Search finished, found %s page(s) matching the search query.").replace("%s",i.length)):Search.query_fallback(t)}).fail(function(e){Search.query_fallback(t)}).always(function(){$("#search-progress").empty(),Search.stopPulse(),Search.title.text(_("Search Results")),Search.status.fadeIn(500)}),$.ajax({url:s.href,crossDomain:!0,xhrFields:{withCredentials:!0},complete:function(t,e){return"undefined"==typeof t.responseJSON||"undefined"==typeof t.responseJSON.results?o.reject():o.resolve(t.responseJSON.results)}}).error(function(t,e,r){return o.reject()})};if("undefined"!=typeof Search&&e&&r){var s=Search.query;Search.query_fallback=s,Search.query=o}$(document).ready(function(){"undefined"!=typeof Search&&Search.init()})}var o=t("./rtd-data"),a=t("./../../../../../../bower_components/xss/lib/index");e.exports={init:n}},{"./../../../../../../bower_components/xss/lib/index":3,"./rtd-data":15}],17:[function(t,e,r){function n(){var t=i.get();if($(document).on("click","[data-toggle='rst-current-version']",function(){var t=$("[data-toggle='rst-versions']").hasClass("shift-up")?"was_open":"was_closed";_gaq&&_gaq.push(["rtfd._setAccount","UA-17997319-1"],["rtfd._trackEvent","Flyout","Click",t])}),!("builder"in t)||"builder"in t&&"mkdocs"!=t.builder){var e=o.ThemeNav;if($(document).ready(function(){setTimeout(function(){e.navBar||e.enable()},1e3)}),t.is_rtd_theme()){var r=jquery("div.wy-side-scroll:first");if(!r.length){var n=jquery("nav.wy-nav-side:first"),a=$("
    ").addClass("wy-side-scroll");n.children().detach().appendTo(a),a.prependTo(n),e.navBar=a}}}}var i=t("./rtd-data"),o=t("./../../../../../../bower_components/sphinx-rtd-theme/js/theme.js");e.exports={init:n}},{"./../../../../../../bower_components/sphinx-rtd-theme/js/theme.js":1,"./rtd-data":15}],18:[function(t,e,r){function n(t){var e=i.get();if(!t.is_highest){var r=window.location.pathname.replace(e.version,t.slug),n=$('');n.find("a").attr("href",r).text(t.version);var o=$("div.body");o.length||(o=$("div.document")),o.prepend(n)}}var i=t("./rtd-data");e.exports={init:n}},{"./rtd-data":15}],19:[function(t,e,r){var n=(t("./sponsorship"),t("./doc-embed/footer.js")),i=t("./doc-embed/mkdocs"),o=(t("./doc-embed/rtd-data"),t("./doc-embed/sphinx")),a=t("./doc-embed/search");$(document).ready(function(){n.init(),o.init(),i.init(),a.init()})},{"./doc-embed/footer.js":13,"./doc-embed/mkdocs":14,"./doc-embed/rtd-data":15,"./doc-embed/search":16,"./doc-embed/sphinx":17,"./sponsorship":20}],20:[function(t,e,r){function n(t,e,r,n,o){this.id=t,this.text=e,this.link=r,this.image=n,this.theme=o||i.THEME_RTD,this.promo=null}var i=t("./doc-embed/constants");e.exports={Promo:n},n.prototype.create=function(){function t(){_gaq&&_gaq.push(["rtfd._setAccount","UA-17997319-1"],["rtfd._trackEvent","Promo","Click",n.id])}var e,r,n=this;if(this.theme==i.THEME_RTD?(e=this.get_sphinx_rtd_theme_menu(),r="wy-menu"):this.theme==i.THEME_ALABASTER&&(e=this.get_alabaster_menu(),r="alabaster"),"undefined"!=typeof e){promo=$("
    ").attr("class","rtd-pro "+r);var o=$("
    ").attr("class","rtd-pro-about"),a=$("").attr("href","https://readthedocs.org/sustainability/advertising/").appendTo(o);$("").attr("class","fa fa-info-circle").appendTo(a);if(o.appendTo(promo),n.image){var s=$("").attr("class","rtd-pro-image-wrapper").attr("href",n.link).attr("target","_blank").on("click",t);$("").attr("class","rtd-pro-image").attr("src",n.image).appendTo(s);promo.append(s)}var l=$("").html(n.text);return $(l).find("a").each(function(){$(this).attr("class","rtd-pro-link").attr("href",n.link).attr("target","_blank").on("click",t)}),promo.append(l),promo.appendTo(e),promo.wrapper=$("
    ").attr("class","rtd-pro-wrapper").appendTo(e),promo}},n.prototype.get_alabaster_menu=function(){var t=$("div.sphinxsidebar > div.sphinxsidebarwrapper");if(t.length)return t},n.prototype.get_sphinx_rtd_theme_menu=function(){var t=$("nav.wy-nav-side > div.wy-side-scroll");if(t.length)return t},n.prototype.display=function(){var t=this.promo;t||(t=this.promo=this.create()),t&&t.show()},n.prototype.disable=function(){},n.from_variants=function(t){if(0==t.length)return null;var e=Math.floor(Math.random()*t.length),r=t[e],i=r.text,o=r.link,a=r.image,s=r.id;return new n(s,i,o,a)}},{"./doc-embed/constants":12}]},{},[19]); \ No newline at end of file +!function t(e,r,i){function n(a,s){if(!r[a]){if(!e[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[a]={exports:{}};e[a][0].call(u.exports,function(t){var r=e[a][1][t];return n(r?r:t)},u,u.exports,t,e,r,i)}return r[a].exports}for(var o="function"==typeof require&&require,a=0;a
    "),t(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var r=t(this);expand=t(''),expand.on("click",function(t){return e.toggleCurrent(r),t.stopPropagation(),!1}),r.prepend(expand)})},t.reset=function(){var t=encodeURI(window.location.hash);if(t)try{var e=$(".wy-menu-vertical").find('[href="'+t+'"]');if(0===e.length){var r=$('.document a[href="'+t+'"]'),i=r.closest("div.section");e=$(".wy-menu-vertical").find('[href="#'+i.attr("id")+'"]')}$(".wy-menu-vertical li.toctree-l1 li.current").removeClass("current"),e.closest("li.toctree-l2").addClass("current"),e.closest("li.toctree-l3").addClass("current"),e.closest("li.toctree-l4").addClass("current")}catch(n){console.log("Error expanding nav for anchor",n)}},t.onScroll=function(){this.winScroll=!1;var t=this.win.scrollTop(),e=t+this.winHeight,r=this.navBar.scrollTop(),i=r+(t-this.winPosition);t<0||e>this.docHeight||(this.navBar.scrollTop(i),this.winPosition=t)},t.onResize=function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},t.hashChange=function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},t.toggleCurrent=function(t){var e=t.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")},t}var n="undefined"!=typeof window?window.jQuery:t("jquery");e.exports.ThemeNav=i(),"undefined"!=typeof window&&(window.SphinxRtdTheme={StickyNav:e.exports.ThemeNav})},{jquery:"jquery"}],2:[function(t,e,r){function i(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}function n(t,e,r){}function o(t,e,r){}function a(t,e,r){}function s(t,e,r){}function l(t){return t.replace(S,"<").replace(A,">")}function c(t,e,r,i){if(r=g(r),"href"===e||"src"===e){if(r=T.trim(r),"#"===r)return"#";if("http://"!==r.substr(0,7)&&"https://"!==r.substr(0,8)&&"mailto:"!==r.substr(0,7)&&"#"!==r[0]&&"/"!==r[0])return""}else if("background"===e){if(j.lastIndex=0,j.test(r))return""}else if("style"===e){if(I.lastIndex=0,I.test(r))return"";if(P.lastIndex=0,P.test(r)&&(j.lastIndex=0,j.test(r)))return"";i!==!1&&(i=i||k,r=i.process(r))}return r=m(r)}function u(t){return t.replace(E,""")}function d(t){return t.replace($,'"')}function p(t){return t.replace(O,function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))})}function f(t){return t.replace(C,":").replace(R," ")}function h(t){for(var e="",r=0,i=t.length;r/g,E=/"/g,$=/"/g,O=/&#([a-zA-Z0-9]*);?/gim,C=/:?/gim,R=/&newline;?/gim,j=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,I=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,P=/u\s*r\s*l\s*\(.*/gi,H=//g;r.whiteList=i(),r.getDefaultWhiteList=i,r.onTag=n,r.onIgnoreTag=o,r.onTagAttr=a,r.onIgnoreTagAttr=s,r.safeAttrValue=c,r.escapeHtml=l,r.escapeQuote=u,r.unescapeQuote=d,r.escapeHtmlEntities=p,r.escapeDangerHtml5Entities=f,r.clearNonPrintableCharacter=h,r.friendlyAttrValue=g,r.escapeAttrValue=m,r.onIgnoreTagStripAll=v,r.StripTagBody=b,r.stripCommentTag=w,r.stripBlankChar=y,r.cssFilter=k,r.getDefaultCSSWhiteList=_},{"./util":5,cssfilter:9}],3:[function(t,e,r){function i(t,e){var r=new a(e);return r.process(t)}var n=t("./default"),o=t("./parser"),a=t("./xss");r=e.exports=i,r.FilterXSS=a;for(var s in n)r[s]=n[s];for(var s in o)r[s]=o[s];"undefined"!=typeof window&&(window.filterXSS=e.exports)},{"./default":2,"./parser":4,"./xss":6}],4:[function(t,e,r){function i(t){var e=t.indexOf(" ");if(e===-1)var r=t.slice(1,-1);else var r=t.slice(1,e+1);return r=d.trim(r).toLowerCase(),"/"===r.slice(0,1)&&(r=r.slice(1)),"/"===r.slice(-1)&&(r=r.slice(0,-1)),r}function n(t){return""===f){o+=r(t.slice(a,s)),d=t.slice(s,c+1),p=i(d),o+=e(s,o.length,p,d,n(d)),a=c+1,s=!1;continue}if(('"'===f||"'"===f)&&"="===t.charAt(c-1)){l=f;continue}}else if(f===l){l=!1;continue}}return a0;e--){var r=t[e];if(" "!==r)return"="===r?e:-1}}function c(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}function u(t){return c(t)?t.substr(1,t.length-2):t}var d=t("./util"),p=/[^a-zA-Z0-9_:\.\-]/gim;r.parseTag=o,r.parseAttr=a},{"./util":5}],5:[function(t,e,r){e.exports={indexOf:function(t,e){var r,i;if(Array.prototype.indexOf)return t.indexOf(e);for(r=0,i=t.length;r";var w=n(l),y=o[r],x=d(w.html,function(t,e){var n=p.indexOf(y,t)!==-1,o=c(r,t,e,n);if(!i(o))return o;if(n)return e=h(r,t,e,m),e?t+'="'+e+'"':t;var o=f(r,t,e,n);return i(o)?void 0:o}),l="<"+r;return x&&(l+=" "+x),w.closing&&(l+=" /"),l+=">"}var b=s(r,l,v);return i(b)?g(l):b},g);return v&&(b=v.remove(b)),b},e.exports=a},{"./default":2,"./parser":4,"./util":5,cssfilter:9}],7:[function(t,e,r){function i(t){return void 0===t||null===t}function n(t){t=t||{},t.whiteList=t.whiteList||o.whiteList,t.onAttr=t.onAttr||o.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||o.onIgnoreAttr,this.options=t}var o=t("./default"),a=t("./parser");t("./util");n.prototype.process=function(t){if(t=t||"",t=t.toString(),!t)return"";var e=this,r=e.options,n=r.whiteList,o=r.onAttr,s=r.onIgnoreAttr,l=a(t,function(t,e,r,a,l){var c=n[r],u=!1;c===!0?u=c:"function"==typeof c?u=c(a):c instanceof RegExp&&(u=c.test(a)),u!==!0&&(u=!1);var d={position:e,sourcePosition:t,source:l,isWhite:u};if(u){var p=o(r,a,d);return i(p)?r+":"+a:p}var p=s(r,a,d);if(!i(p))return p});return l},e.exports=n},{"./default":8,"./parser":10,"./util":11}],8:[function(t,e,r){function i(){var t={};return t["align-content"]=!1,t["align-items"]=!1,t["align-self"]=!1,t["alignment-adjust"]=!1,t["alignment-baseline"]=!1,t.all=!1,t["anchor-point"]=!1,t.animation=!1,t["animation-delay"]=!1,t["animation-direction"]=!1,t["animation-duration"]=!1,t["animation-fill-mode"]=!1,t["animation-iteration-count"]=!1,t["animation-name"]=!1,t["animation-play-state"]=!1,t["animation-timing-function"]=!1,t.azimuth=!1,t["backface-visibility"]=!1,t.background=!0,t["background-attachment"]=!0,t["background-clip"]=!0,t["background-color"]=!0,t["background-image"]=!0,t["background-origin"]=!0,t["background-position"]=!0,t["background-repeat"]=!0,t["background-size"]=!0,t["baseline-shift"]=!1,t.binding=!1,t.bleed=!1,t["bookmark-label"]=!1,t["bookmark-level"]=!1,t["bookmark-state"]=!1,t.border=!0,t["border-bottom"]=!0,t["border-bottom-color"]=!0,t["border-bottom-left-radius"]=!0,t["border-bottom-right-radius"]=!0,t["border-bottom-style"]=!0,t["border-bottom-width"]=!0,t["border-collapse"]=!0,t["border-color"]=!0,t["border-image"]=!0,t["border-image-outset"]=!0,t["border-image-repeat"]=!0,t["border-image-slice"]=!0,t["border-image-source"]=!0,t["border-image-width"]=!0,t["border-left"]=!0,t["border-left-color"]=!0,t["border-left-style"]=!0,t["border-left-width"]=!0,t["border-radius"]=!0,t["border-right"]=!0,t["border-right-color"]=!0,t["border-right-style"]=!0,t["border-right-width"]=!0,t["border-spacing"]=!0,t["border-style"]=!0,t["border-top"]=!0,t["border-top-color"]=!0,t["border-top-left-radius"]=!0,t["border-top-right-radius"]=!0,t["border-top-style"]=!0,t["border-top-width"]=!0,t["border-width"]=!0,t.bottom=!1,t["box-decoration-break"]=!0,t["box-shadow"]=!0,t["box-sizing"]=!0,t["box-snap"]=!0,t["box-suppress"]=!0,t["break-after"]=!0,t["break-before"]=!0,t["break-inside"]=!0,t["caption-side"]=!1,t.chains=!1,t.clear=!0,t.clip=!1,t["clip-path"]=!1,t["clip-rule"]=!1,t.color=!0,t["color-interpolation-filters"]=!0,t["column-count"]=!1,t["column-fill"]=!1,t["column-gap"]=!1,t["column-rule"]=!1,t["column-rule-color"]=!1,t["column-rule-style"]=!1,t["column-rule-width"]=!1,t["column-span"]=!1,t["column-width"]=!1,t.columns=!1,t.contain=!1,t.content=!1,t["counter-increment"]=!1,t["counter-reset"]=!1,t["counter-set"]=!1,t.crop=!1,t.cue=!1,t["cue-after"]=!1,t["cue-before"]=!1,t.cursor=!1,t.direction=!1,t.display=!0,t["display-inside"]=!0,t["display-list"]=!0,t["display-outside"]=!0,t["dominant-baseline"]=!1,t.elevation=!1,t["empty-cells"]=!1,t.filter=!1,t.flex=!1,t["flex-basis"]=!1,t["flex-direction"]=!1,t["flex-flow"]=!1,t["flex-grow"]=!1,t["flex-shrink"]=!1,t["flex-wrap"]=!1,t["float"]=!1,t["float-offset"]=!1,t["flood-color"]=!1,t["flood-opacity"]=!1,t["flow-from"]=!1,t["flow-into"]=!1,t.font=!0,t["font-family"]=!0,t["font-feature-settings"]=!0,t["font-kerning"]=!0,t["font-language-override"]=!0,t["font-size"]=!0,t["font-size-adjust"]=!0,t["font-stretch"]=!0,t["font-style"]=!0,t["font-synthesis"]=!0,t["font-variant"]=!0,t["font-variant-alternates"]=!0,t["font-variant-caps"]=!0,t["font-variant-east-asian"]=!0,t["font-variant-ligatures"]=!0,t["font-variant-numeric"]=!0,t["font-variant-position"]=!0,t["font-weight"]=!0,t.grid=!1,t["grid-area"]=!1,t["grid-auto-columns"]=!1,t["grid-auto-flow"]=!1,t["grid-auto-rows"]=!1,t["grid-column"]=!1,t["grid-column-end"]=!1,t["grid-column-start"]=!1,t["grid-row"]=!1,t["grid-row-end"]=!1,t["grid-row-start"]=!1,t["grid-template"]=!1,t["grid-template-areas"]=!1,t["grid-template-columns"]=!1,t["grid-template-rows"]=!1,t["hanging-punctuation"]=!1,t.height=!0,t.hyphens=!1,t.icon=!1,t["image-orientation"]=!1,t["image-resolution"]=!1,t["ime-mode"]=!1,t["initial-letters"]=!1,t["inline-box-align"]=!1,t["justify-content"]=!1,t["justify-items"]=!1,t["justify-self"]=!1,t.left=!1,t["letter-spacing"]=!0,t["lighting-color"]=!0,t["line-box-contain"]=!1,t["line-break"]=!1,t["line-grid"]=!1,t["line-height"]=!1,t["line-snap"]=!1,t["line-stacking"]=!1,t["line-stacking-ruby"]=!1,t["line-stacking-shift"]=!1,t["line-stacking-strategy"]=!1,t["list-style"]=!0,t["list-style-image"]=!0,t["list-style-position"]=!0,t["list-style-type"]=!0,t.margin=!0,t["margin-bottom"]=!0,t["margin-left"]=!0,t["margin-right"]=!0,t["margin-top"]=!0,t["marker-offset"]=!1,t["marker-side"]=!1,t.marks=!1,t.mask=!1,t["mask-box"]=!1,t["mask-box-outset"]=!1,t["mask-box-repeat"]=!1,t["mask-box-slice"]=!1,t["mask-box-source"]=!1,t["mask-box-width"]=!1,t["mask-clip"]=!1,t["mask-image"]=!1,t["mask-origin"]=!1,t["mask-position"]=!1,t["mask-repeat"]=!1,t["mask-size"]=!1,t["mask-source-type"]=!1,t["mask-type"]=!1,t["max-height"]=!0,t["max-lines"]=!1,t["max-width"]=!0,t["min-height"]=!0,t["min-width"]=!0,t["move-to"]=!1,t["nav-down"]=!1,t["nav-index"]=!1,t["nav-left"]=!1,t["nav-right"]=!1,t["nav-up"]=!1,t["object-fit"]=!1,t["object-position"]=!1,t.opacity=!1,t.order=!1,t.orphans=!1,t.outline=!1,t["outline-color"]=!1,t["outline-offset"]=!1,t["outline-style"]=!1,t["outline-width"]=!1,t.overflow=!1,t["overflow-wrap"]=!1,t["overflow-x"]=!1,t["overflow-y"]=!1,t.padding=!0,t["padding-bottom"]=!0,t["padding-left"]=!0,t["padding-right"]=!0,t["padding-top"]=!0,t.page=!1,t["page-break-after"]=!1,t["page-break-before"]=!1,t["page-break-inside"]=!1,t["page-policy"]=!1,t.pause=!1,t["pause-after"]=!1,t["pause-before"]=!1,t.perspective=!1,t["perspective-origin"]=!1,t.pitch=!1,t["pitch-range"]=!1,t["play-during"]=!1,t.position=!1,t["presentation-level"]=!1,t.quotes=!1,t["region-fragment"]=!1,t.resize=!1,t.rest=!1,t["rest-after"]=!1,t["rest-before"]=!1,t.richness=!1,t.right=!1,t.rotation=!1,t["rotation-point"]=!1,t["ruby-align"]=!1,t["ruby-merge"]=!1,t["ruby-position"]=!1,t["shape-image-threshold"]=!1,t["shape-outside"]=!1,t["shape-margin"]=!1,t.size=!1,t.speak=!1,t["speak-as"]=!1,t["speak-header"]=!1,t["speak-numeral"]=!1,t["speak-punctuation"]=!1,t["speech-rate"]=!1,t.stress=!1,t["string-set"]=!1,t["tab-size"]=!1,t["table-layout"]=!1,t["text-align"]=!0,t["text-align-last"]=!0,t["text-combine-upright"]=!0,t["text-decoration"]=!0,t["text-decoration-color"]=!0,t["text-decoration-line"]=!0,t["text-decoration-skip"]=!0,t["text-decoration-style"]=!0,t["text-emphasis"]=!0,t["text-emphasis-color"]=!0,t["text-emphasis-position"]=!0,t["text-emphasis-style"]=!0,t["text-height"]=!0,t["text-indent"]=!0,t["text-justify"]=!0,t["text-orientation"]=!0,t["text-overflow"]=!0,t["text-shadow"]=!0,t["text-space-collapse"]=!0,t["text-transform"]=!0,t["text-underline-position"]=!0,t["text-wrap"]=!0,t.top=!1,t.transform=!1,t["transform-origin"]=!1,t["transform-style"]=!1,t.transition=!1,t["transition-delay"]=!1,t["transition-duration"]=!1,t["transition-property"]=!1,t["transition-timing-function"]=!1,t["unicode-bidi"]=!1,t["vertical-align"]=!1,t.visibility=!1,t["voice-balance"]=!1,t["voice-duration"]=!1,t["voice-family"]=!1,t["voice-pitch"]=!1,t["voice-range"]=!1,t["voice-rate"]=!1,t["voice-stress"]=!1,t["voice-volume"]=!1,t.volume=!1,t["white-space"]=!1,t.widows=!1,t.width=!0,t["will-change"]=!1,t["word-break"]=!0,t["word-spacing"]=!0,t["word-wrap"]=!0,t["wrap-flow"]=!1,t["wrap-through"]=!1,t["writing-mode"]=!1,t["z-index"]=!1,t}function n(t,e,r){}function o(t,e,r){}r.whiteList=i(),r.getDefaultWhiteList=i,r.onAttr=n,r.onIgnoreAttr=o},{}],9:[function(t,e,r){function i(t,e){var r=new o(e);return r.process(t)}var n=t("./default"),o=t("./css");r=e.exports=i,r.FilterCSS=o;for(var a in n)r[a]=n[a];"undefined"!=typeof window&&(window.filterCSS=e.exports)},{"./css":7,"./default":8}],10:[function(t,e,r){function i(t,e){function r(){if(!o){var r=n.trim(t.slice(a,s)),i=r.indexOf(":");if(i!==-1){var c=n.trim(r.slice(0,i)),u=n.trim(r.slice(i+1));if(c){var d=e(a,l.length,c,u,r);d&&(l+=d+"; ")}}}a=s+1}t=n.trimRight(t),";"!==t[t.length-1]&&(t+=";");for(var i=t.length,o=!1,a=0,s=0,l="";s").attr({type:"hidden",name:"project",value:t.project}).appendTo("#rtd-search-form"),$("").attr({type:"hidden",name:"version",value:t.version}).appendTo("#rtd-search-form"),$("").attr({type:"hidden",name:"type",value:"file"}).appendTo("#rtd-search-form"),$("#rtd-search-form").prop("action",t.api_host+"/search/");var e=$("nav.wy-nav-side:first"),r=$(window),i="stickynav",o=function(){e.height()<=r.height()?e.addClass(i):e.removeClass(i)};r.on("resize",o),o()}}var n=t("./rtd-data");e.exports={init:i}},{"./rtd-data":15}],15:[function(t,e,r){function i(){var t=Object.create(o),e={api_host:"https://readthedocs.org"};return $.extend(t,e,window.READTHEDOCS_DATA),t}var n=t("./constants"),o={is_rtd_theme:function(){return this.get_theme_name()===n.THEME_RTD},theme_supports_promo:function(){return n.PROMO_SUPPORTED_THEMES.indexOf(this.get_theme_name())>-1},is_sphinx_builder:function(){return!("builder"in this)||"mkdocs"!=this.builder},get_theme_name:function(){return this.theme!==n.THEME_RTD&&1===$("div.rst-other-versions").length?n.THEME_RTD:this.theme},show_promo:function(){return"https://readthedocs.com"!==this.api_host&&this.is_sphinx_builder()&&this.theme_supports_promo()}};e.exports={get:i}},{"./constants":12}],16:[function(t,e,r){function i(){var t=o.get();n(t)}function n(t){var e=t.project,r=t.version,i=t.language||"en",n=t.api_host,o=function(t){var o=$.Deferred(),s=document.createElement("a");s.href=n,s.pathname="/api/v2/docsearch/",s.search="?q="+$.urlencode(t)+"&project="+e+"&version="+r+"&language="+i,o.then(function(r){var i=r.hits||{},n=i.hits||[];if(n.length)for(var o in n){var s=n[o],l=s.fields||{},c=$('
  • '),u=document.createElement("a"),d=s.highlight;if(u.href+=l.link+DOCUMENTATION_OPTIONS.FILE_SUFFIX,u.search="?highlight="+$.urlencode(t),c.append($("
    ").attr("href",u).html(l.title)),l.project!=e&&c.append($("").text(" (from project "+l.project+")")),d.content.length){var p=$('
    ').html(a(d.content[0]));p.find("em").addClass("highlighted"),c.append(p)}Search.output.append(c),c.slideDown(5)}n.length?Search.status.text(_("Search finished, found %s page(s) matching the search query.").replace("%s",n.length)):Search.query_fallback(t)}).fail(function(e){Search.query_fallback(t)}).always(function(){$("#search-progress").empty(),Search.stopPulse(),Search.title.text(_("Search Results")),Search.status.fadeIn(500)}),$.ajax({url:s.href,crossDomain:!0,xhrFields:{withCredentials:!0},complete:function(t,e){return"undefined"==typeof t.responseJSON||"undefined"==typeof t.responseJSON.results?o.reject():o.resolve(t.responseJSON.results)}}).error(function(t,e,r){return o.reject()})};if("undefined"!=typeof Search&&e&&r){var s=Search.query;Search.query_fallback=s,Search.query=o}$(document).ready(function(){"undefined"!=typeof Search&&Search.init()})}var o=t("./rtd-data"),a=t("./../../../../../../bower_components/xss/lib/index");e.exports={init:i}},{"./../../../../../../bower_components/xss/lib/index":3,"./rtd-data":15}],17:[function(t,e,r){function i(){var t=n.get();if($(document).on("click","[data-toggle='rst-current-version']",function(){var t=$("[data-toggle='rst-versions']").hasClass("shift-up")?"was_open":"was_closed";_gaq&&_gaq.push(["rtfd._setAccount","UA-17997319-1"],["rtfd._trackEvent","Flyout","Click",t])}),!("builder"in t)||"builder"in t&&"mkdocs"!=t.builder){var e=o.ThemeNav;if($(document).ready(function(){setTimeout(function(){e.navBar||e.enable()},1e3)}),t.is_rtd_theme()){var r=jquery("div.wy-side-scroll:first");if(!r.length){var i=jquery("nav.wy-nav-side:first"),a=$("
    ").addClass("wy-side-scroll");i.children().detach().appendTo(a),a.prependTo(i),e.navBar=a}}}}var n=t("./rtd-data"),o=t("./../../../../../../bower_components/sphinx-rtd-theme/js/theme.js");e.exports={init:i}},{"./../../../../../../bower_components/sphinx-rtd-theme/js/theme.js":1,"./rtd-data":15}],18:[function(t,e,r){function i(t){var e=n.get();if(!t.is_highest){var r=window.location.pathname.replace(e.version,t.slug),i=$('');i.find("a").attr("href",r).text(t.version);var o=$("div.body");o.length||(o=$("div.document")),o.prepend(i)}}var n=t("./rtd-data");e.exports={init:i}},{"./rtd-data":15}],19:[function(t,e,r){var i=(t("./sponsorship"),t("./doc-embed/footer.js")),n=t("./doc-embed/mkdocs"),o=(t("./doc-embed/rtd-data"),t("./doc-embed/sphinx")),a=t("./doc-embed/search");$(document).ready(function(){i.init(),o.init(),n.init(),a.init()})},{"./doc-embed/footer.js":13,"./doc-embed/mkdocs":14,"./doc-embed/rtd-data":15,"./doc-embed/search":16,"./doc-embed/sphinx":17,"./sponsorship":20}],20:[function(t,e,r){function i(t,e,r,i,o,a){this.id=t,this.text=e,this.link=r,this.image=i,this.theme=o||n.THEME_RTD,this.display_type=a||n.PROMO_TYPES.LEFTNAV,this.promo=null,this.click_handler=function(){_gaq&&_gaq.push(["rtfd._setAccount","UA-17997319-1"],["rtfd._trackEvent","Promo","Click",self.id])}}var n=t("./doc-embed/constants");e.exports={Promo:i},i.prototype.create=function(){var t,e;this.theme==n.THEME_RTD?(t=this.get_sphinx_rtd_theme_promo_selector(),e=this.display_type===n.PROMO_TYPES.FOOTER?"rtd-pro-footer":"wy-menu"):this.theme==n.THEME_ALABASTER&&(t=this.get_alabaster_promo_selector(),e=this.display_type===n.PROMO_TYPES.FOOTER?"rtd-pro-footer":"alabaster"),"undefined"!=typeof t&&this.place_promo(t,e)},i.prototype.place_promo=function(t,e){var r=this,i=$("
    ").attr("class","rtd-pro "+e),n=$("
    ").attr("class","rtd-pro-about"),o=$("").attr("href","https://readthedocs.org/sustainability/advertising/").appendTo(n);$("").text("Sponsored ").appendTo(o);$("").attr("class","fa fa-info-circle").appendTo(o);if(n.appendTo(i),r.image){var a=$("").attr("class","rtd-pro-image-wrapper").attr("href",r.link).attr("target","_blank").on("click",this.click_handler);$("").attr("class","rtd-pro-image").attr("src",r.image).appendTo(a);i.append(a)}var s=$("").html(r.text);return $(s).find("a").each(function(){$(this).attr("class","rtd-pro-link").attr("href",r.link).attr("target","_blank").on("click",this.click_handler)}),i.append(s),i.appendTo(t),i.wrapper=$("
    ").attr("class","rtd-pro-wrapper").appendTo(t),i},i.prototype.get_alabaster_promo_selector=function(){var t,e=this;if(e.display_type===n.PROMO_TYPES.FOOTER?(t=$("
    ").attr("class","rtd-pro-footer-wrapper body").appendTo("div.bodywrapper"),$("
    ").insertBefore(t),$("
    ").insertAfter(t)):t=$("div.sphinxsidebar > div.sphinxsidebarwrapper"),t.length)return t},i.prototype.get_sphinx_rtd_theme_promo_selector=function(){var t,e=this;if(e.display_type===n.PROMO_TYPES.FOOTER?(t=$("
    ").attr("class","rtd-pro-footer-wrapper").insertBefore("footer hr"),$("
    ").insertBefore(t)):t=$("nav.wy-nav-side > div.wy-side-scroll"),t.length)return t},i.prototype.display=function(){var t=this.promo;t||(t=this.promo=this.create()),t&&t.show()},i.prototype.disable=function(){},i.from_variants=function(t){if(0==t.length)return null;var e=Math.floor(Math.random()*t.length),r=t[e],n=r.text,o=r.link,a=r.image,s=r.id;return new i(s,n,o,a)}},{"./doc-embed/constants":12}]},{},[19]); \ No newline at end of file