(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } // Blocks docReady(function () { var boxesNames = { "seealso": "See also", "definition": "Definition", "exampl": "Example", "exercice": "Exercice", "question": "Question", "summary": "Summary", "note": "Note", "answer": "Answer", "hint": "Hint", "important": "Important", "caution": "Caution", "warning": "Warning" }; for (var className in boxesNames) { var boxes = document.querySelectorAll('div.' + className); var _iterator = _createForOfIteratorHelper(boxes), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var box = _step.value; var boxTitle = document.createElement('p'); boxTitle.className = "admonition-title " + className; boxTitle.textContent = boxesNames[className]; box.parentNode.insertBefore(boxTitle, box); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } }); // Copy Source Block docReady(function () { var srcContainers = document.querySelectorAll('pre.src'); var _iterator2 = _createForOfIteratorHelper(srcContainers), _step2; try { var _loop = function _loop() { var srcContrainer = _step2.value; var boxCopy = document.createElement('div'); boxCopy.className = "src-copy"; boxCopy.textContent = "Copy"; boxCopy.onclick = function () { // Create a clone the node to not affect the original one var nodeClone = this.parentNode.cloneNode(true); // Remove Line Numbers and Copy Button var linenumNodes = nodeClone.querySelectorAll('.linenr,.src-copy'); for (var i = linenumNodes.length - 1; i >= 0; --i) { nodeClone.removeChild(linenumNodes[i]); } // Copy the filetered content to the clipboard var srcText = nodeClone.textContent; navigator.clipboard.writeText(srcText).then(function () { boxCopy.textContent = "Copied"; boxCopy.classList.add("src-copied"); setTimeout(function () { boxCopy.textContent = "Copy"; boxCopy.classList.remove("src-copied"); }, 2000); }); }; srcContrainer.prepend(boxCopy); }; for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { _loop(); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } }); // Equivalent of Jquery $.ready function docReady(fn) { // see if DOM is already available if (document.readyState === "complete" || document.readyState === "interactive") { // call on next available tick setTimeout(fn, 1); } else { document.addEventListener("DOMContentLoaded", fn); } } // Load Jquery var scr = document.createElement('script'), head = document.head || document.getElementsByTagName('head')[0]; scr.src = 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js'; scr.async = false; // optionally head.insertBefore(scr, head.firstChild); // Load Bootstrap.js var scr = document.createElement('script'), head = document.head || document.getElementsByTagName('head')[0]; scr.src = 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js'; scr.async = false; // optionally head.insertBefore(scr, head.firstChild); // After it is loaded scr.addEventListener('load', function () { $(document).ready(function () { $('#text-table-of-contents ul').first().addClass('nav'); // ScrollSpy also requires that we use // a Bootstrap nav component. $('body').scrollspy({ target: '#text-table-of-contents' }); // set the height of tableOfContents var $postamble = $('#postamble'); var $tableOfContents = $('#table-of-contents'); $tableOfContents.css({ paddingBottom: $postamble.outerHeight() }); // add TOC button var toggleSidebar = $('

Table of Contents

'); $('#content').prepend(toggleSidebar); // add close button when sidebar showed in mobile screen var closeBtn = $('Close'); var tocTitle = $('#table-of-contents').find('h2'); tocTitle.append(closeBtn); }); }); // function collapse_toc_elements_on_click (nav_li_a){ // /* // When an `a' element in the TOC is clicked, its parent // `li' element's active attribute is toggled. This causes // the element to toggle between minimized and maximized // states. The active attribute is documented in bootstrap. // https://getbootstrap.com/docs/4.0/components/navbar/#nav // */ // $(nav_li_a).parent().toggleClass("active"); // } // $( document ).ready(function() { // // When the document is loaded and ready, bind the // // function `collapse_toc_elements_on_click' to the // // `a' elements in the table of contents. // $("#text-table-of-contents a").click(function() { // collapse_toc_elements_on_click(this); // }); // }); // $( document ).ready(function() { // // Shift nav in mobile when clicking the menu. // $(document).on('click', "[data-toggle='wy-nav-top']", function() { // $("[data-toggle='wy-nav-shift']").toggleClass("shift"); // $("[data-toggle='rst-versions']").toggleClass("shift"); // }); // // Close menu when you click a link. // $(document).on('click', ".wy-menu-vertical .current ul li a", function() { // $("[data-toggle='wy-nav-shift']").removeClass("shift"); // $("[data-toggle='rst-versions']").toggleClass("shift"); // }); // $(document).on('click', "[data-toggle='rst-current-version']", function() { // $("[data-toggle='rst-versions']").toggleClass("shift-up"); // }); // // Make tables responsive // $("table.docutils:not(.field-list)").wrap("
"); // }); // $( document ).ready(function() { // $('#text-table-of-contents ul').first().addClass('nav'); // // ScrollSpy also requires that we use // // a Bootstrap nav component. // $('body').scrollspy({target: '#text-table-of-contents'}); // // set the height of tableOfContents // var $postamble = $('#postamble'); // var $tableOfContents = $('#table-of-contents'); // $tableOfContents.css({paddingBottom: $postamble.outerHeight()}); // // add TOC button // var toggleSidebar = $('

Table of Contents

'); // $('#content').prepend(toggleSidebar); // // add close button when sidebar showed in mobile screen // var closeBtn = $('Close'); // var tocTitle = $('#table-of-contents').find('h2'); // tocTitle.append(closeBtn); // }); // window.SphinxRtdTheme = (function (jquery) { // var stickyNav = (function () { // var navBar, // win, // stickyNavCssClass = 'stickynav', // applyStickNav = function () { // if (navBar.height() <= win.height()) { // navBar.addClass(stickyNavCssClass); // } else { // navBar.removeClass(stickyNavCssClass); // } // }, // enable = function () { // applyStickNav(); // win.on('resize', applyStickNav); // }, // init = function () { // navBar = jquery('nav.wy-nav-side:first'); // win = jquery(window); // }; // jquery(init); // return { // enable : enable // }; // }()); // return { // StickyNav : stickyNav // }; // }($)); },{}]},{},[1]);